Hot answers tagged

9

If you need to process multiple files, you could use Biopython to parse a PDB structure. from Bio.PDB import PDBParser # create parser parser = PDBParser() # read structure from file structure = parser.get_structure('PHA-L', '1fat.pdb') model = structure[0] chain = model['A'] # this example uses only the first residue of a single chain. # it is easy to ...


9

There is a very nice database, pdbcull (also known as the PISCES server in the literature). It filters the PDB for high resolution and reduced sequence identity. It also seems to be updated regularly. Depending on the cut-offs, you get between 3000 and 35000 structures. If you are specifically interested in rotamers, you may want to look at top8000 instead, ...


8

I suggest you take a look at rna-pdb-tools we do way more than you need! :-) The tools can get you a sequence, secondary structure and much more using various algorithms, and all is well documented http://rna-pdb-tools.readthedocs.io/en/latest/ To get sequence http://rna-pdb-tools.readthedocs.io/en/latest/main.html#get-sequence $ rna_pdb_tools.py --...


6

A popular (and I would say, respected and trusted) website is PDBsum https://www.ebi.ac.uk/pdbsum (which also has a Wikipedia article about it: https://en.wikipedia.org/wiki/PDBsum) They measure protein-protein (prot-prot) contacts as any Nitrogen, Carbon, or Oxygen element atoms (N, C, O) within 4.0 Angstroms (Å) when measuring the 3d euclidean distance. ...


6

So binaryCIF is newer and is heavily inspired by MMTF. NGL, the most "loved" JS library (IMO) to show protein fetches proteins as MMTF, while Mol* uses bCIF —Mol* has the official repo of the bCIF format. Alex Rose, developed the former at the RCSB PDB, and the latter in collaboration with the PDBe. He also worked with Antony Bradley, the main ...


5

If you choose to perform your own culling of the PDB, resolution is probably the first thing you'll want to look at, which as Davidmh mentions is the main selection criteria for PISCES. High quality structures will also have better R-factor values. You can also give preference based on experimental technique, in descending order of quality: Neutron ...


5

The page https://www.wwpdb.org/ftp/pdb-ftp-sites gives the addresses of interest. PDB has an FTP site downloadable via rsync and the latter has a dry run mode. rsync --port=33444 -rlpt -v -z --dry-run --stats rsync.rcsb.org::ftp_data/structures/divided/pdb/ You get a bunch of folders names and the following: Number of files: 182479 Number of files ...


4

From this document, it looks like REMARK 250 is the way to go.


4

Could you use CCP4's NCONT program? There's a GUI and a command line interface, whatever suits. You can specify which chains you want to target and interact with and set a cut off for distance. The bonus here is once you're in you have a nice suite of other structural tools to use. If you're just doing it once, the GUI is friendly enough to work things out, ...


4

Context The PDB file format is a fixed-column file format designed in 1970s for storing structural models of macromolecules. The format has been around for long time, has many uses, and although it has official spec the files in circulation may not strictly conform to it. It always has a list of atoms with coordinates (the first two lines are added to ...


4

For the correspondence between PDB and Uniprot entries you can use SIFTS -- a semi-automated mapping between PDB and UniProt maintained by PDBe. The pipeline that creates the mappings uses BLAST and a few other criteria to decide which UniProt entry should be assigned to each PDB entry. The SIFTS website has all the data in CSV files.


4

I have not used Rpdb but I have used, and would recommend, bio3d. To read the PDB file 1A4G: library(bio3d) pdb1a4g <- read.pdb("1a4g") To get the SEQRES information, there are two options. Get it from the pdb object directly: seq1a4g <- pdb1a4g$seqres Or call pdbseq: seq1a4g <- pdbseq(pdb1a4g) Using the second method, the 17th position (note ...


4

BiomaRt cannot do that I'm afraid. There is an Ensembl REST API endpoint that will get you the genomic location of protein coordinates. It needs an Ensembl peptide ID an input though, so you could use the xref endpoint first to get that. There's a bit of sample code in R on those pages, you could use that to script together if you've got a list of these.


4

Yes you can modify the reference PDB file and look for the changes and for this purpose you need visualizers. One among these is Chimera. You can easily carry out the energy minimization steps using Chimera, first mutate your PDB file manually and then provide it as an input for Chimera and the steps for doing energy minimization are fairly simple as given ...


4

If your file is in PDB format as the one shown here in .pdb format then you can simply extract your desired fields using sed which is a programming language used to parse and transform text. As for this structure i.e 6C4A in .pdb format HETNAM and HETSYN can be extracted using sed as follows: sed -n -e '/HETNAM/ p' -e '/HETSYN/ p' 6C4A.pdb HETNAM EJA ...


4

To expand on the comment by marcin: fetch downloads files in mmCIF format by default (https://pymolwiki.org/index.php/Fetch). Not all PDB entries have PDB format files, e.g. due to too many chains. Presumably this is why the change was made, though mmCIF files tend to be larger and hence download slower. When calling save with the .pdb file extension the ...


4

When I wondered it myself years ago and I found a good explanation in a mailing list archive. I think it was this one, by Frances C. Bernstein: The problem with numbering started when people wanted to compare the 'same' proteins from different species. They found that there were the following possibilities that gave rise to differences: More ...


4

There are other ways to do it (many and some might be easier), but if you want to do it with BioPython PDB module you can iterate the residues like this: # You can use a dict to convert three letter code to one letter code d3to1 = {'CYS': 'C', 'ASP': 'D', 'SER': 'S', 'GLN': 'Q', 'LYS': 'K', 'ILE': 'I', 'PRO': 'P', 'THR': 'T', 'PHE': 'F', 'ASN': 'N', '...


4

JSmol sounds like what you want - it'll let you display 3D structures from PDB files onto webpages using JavaScript. If you just want to view the structure rather than display them on webpages, there's many programs that exist already like Swiss-PdbViewer and Pymol. There's even web-interfaces that let you upload a PDB file and they display it for you like ...


4

If you want to share a PDB file, you could try Michelanglo. It allows you to upload a PDB file (among other things) edit a description panel (which can feature special links that control the protein view and representation) and share the link with whomever —without needing any installations on either side. Here is the page of shared protein: gallery (...


4

In general, if you simply want to extract that part of the PDB file, you could loop over it (it's plain text) and check the fields you're interested in: with open('2ly4.pdb') as pdb: for line in pdb: if line[:4] == 'ATOM': chain = line[21] res_idx = int(line[23:26]) if chain == 'A' and 1 <= res_idx <= 30: ...


3

Let's check it. I copied your file fragment into a.pdb. >>> from Bio import PDB >>> for res in PDB.PDBParser().get_structure('pdb', 'a.pdb')[0].get_residues(): ... print(res.get_full_id()) ... ('pdb', 0, 'A', (' ', 22, ' ')) ('pdb', 0, 'A', (' ', 23, ' ')) So BioPython (ver. 1.66) gives 22 and 23 as expected.


3

I found the answer and I thought it may be useful for others. we can use pypdb package for that purpose (it works in unix systems): import pypdb all_info = pypdb.get_all_info('1kf6') print(all_info) the output is as follows: {'polymer': [{'@entityNr': '1', '@length': '602', '@type': 'protein', '@weight': '66057.6', 'chain': [{'@id': 'A'}, {'@id': 'M'}], '...


3

The general procedure is: Find the sequence for the same (or as similar as you can find (see mentions of blast in the comments above)) gene in other species. You can use uniprot or any other large sequence database for this. You now have a large set of sequences related to yours, which you'll need to compare. Search the methods section of your favorite ...


3

Glycine has a single hydrogen atom as its side chain: All the six bond angles with the CA atom in the middle are about 109° (C-CA-N, C-CA-HA3, C-CA-HA2, N-CA-HA3, N-CA-HA2 and HA3-CA-HA2 using the CCD naming convention). This defines the rough direction of the hydrogen atoms. But which of the two hydrogens is the side chain? If it is a left-handed protein,...


3

As explained in the website the data introduced must be: Format must be FASTA, Clustal, plain string, or a valid UniProtKB AC So you need to paste just the protein sequence. Without seeing the data you paste I would guess that you don't use a valid plain string. As Jonathan Moore explains below a FASTA format is: >SEQUENCE_1 ...


3

Solution I found: (c/p of body) class RNASelect(Select): def accept_residue(self, residue): return 1 if ((residue.id[0] != 'H_ MG') and ((residue.get_resname() == ' A' or residue.get_resname() == ' U' or residue.get_resname() == ' G' or residue.get_resname() == ' C' or residue.get_resname() == ' T') or (residue.id[0][0:2] == 'H_' and (...


3

The easiest way is to check annotations in mmCIF or PDB files. Looking at my page with statistics of mmCIF tags, last updated in March: _struct_conn_type.id 59137×metalc 42706×covale 36195×disulf 10725×hydrog _struct_conn.conn_type_id 5350402×hydrog 1733277×metalc 559092×covale 226472×disulf Which means 226472 disulfide bonds in 36195 PDB entries ...


3

The NCBI BLAST can be used with the PDB DB (which NCBI has). The PDB codes are stored as 4 letter codes underscore chain, e.g. 1GFL_B. The catch is segment identifiers —but generally they are the same peptide so shouldn't be an issue. You can search specifically the PDB DB in NCBI (not the RCSB PDB) by setting the database to PDB.


3

If you go to the wwPDB ftp site https://ftp.wwpdb.org/ in your browser you can find the biological unit structures (and anything else available in the PDB). The caveat of course is that a biounit structure has to have been generated for your structure. By way of some examples, to get all biological units you could do (note the ftp instead of https in front ...


Only top voted, non community-wiki answers of a minimum length are eligible