Skip to content

Commit d78df0c

Browse files
author
Andreas Prlic
committed
small improvements
1 parent ed6f9c9 commit d78df0c

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

structure/seqres.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,46 @@ The *mmCIF/PDBx* file format contains the information how the Seqres and atom re
3535

3636
</pre>
3737

38+
## Mapping from Uniprot to Atom records
39+
40+
The mapping between PDB and UniProt changes over time. The [PDBe](http://www.pdbe.org) has a project that provides up-to-date mappings between the two databases, the [SIFTs](http://www.ebi.ac.uk/pdbe/docs/sifts/) project.
41+
42+
BioJava contains a parser for the SIFTs XML files. The [SiftsMappingProvider](http://www.biojava.org/docs/api/org/biojava/bio/structure/io/sifts/SiftsMappingProvider.html) also acts similar to the AtomCache class, that we [discussed earlier](caching.md) and can automatically download and locally install SIFTs files.
43+
44+
Here, how to request the mapping for one particular PDB ID.
45+
46+
<pre>
47+
List<SiftsEntity> entities = SiftsMappingProvider.getSiftsMapping("1gc1");
48+
49+
for (SiftsEntity e : entities){
50+
System.out.println(e.getEntityId() + " " +e.getType());
51+
52+
for ( SiftsSegment seg: e.getSegments()) {
53+
System.out.println(" Segment: " + seg.getSegId() + " " + seg.getStart() + " " + seg.getEnd()) ;
54+
55+
for ( SiftsResidue res: seg.getResidues() ) {
56+
System.out.println(" " + res);
57+
}
58+
}
59+
60+
}
61+
</pre>
62+
63+
This gives the following output:
64+
65+
<pre>
66+
C protein
67+
Segment: 1gc1_C_1_181 1 181
68+
SiftsResidue [pdbResNum=1, pdbResName=LYS, chainId=C, uniProtResName=K, uniProtPos=26, naturalPos=1, seqResName=LYS, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
69+
SiftsResidue [pdbResNum=2, pdbResName=LYS, chainId=C, uniProtResName=K, uniProtPos=27, naturalPos=2, seqResName=LYS, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
70+
SiftsResidue [pdbResNum=3, pdbResName=VAL, chainId=C, uniProtResName=V, uniProtPos=28, naturalPos=3, seqResName=VAL, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
71+
SiftsResidue [pdbResNum=4, pdbResName=VAL, chainId=C, uniProtResName=V, uniProtPos=29, naturalPos=4, seqResName=VAL, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
72+
SiftsResidue [pdbResNum=5, pdbResName=LEU, chainId=C, uniProtResName=L, uniProtPos=30, naturalPos=5, seqResName=LEU, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
73+
SiftsResidue [pdbResNum=6, pdbResName=GLY, chainId=C, uniProtResName=G, uniProtPos=31, naturalPos=6, seqResName=GLY, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
74+
SiftsResidue [pdbResNum=7, pdbResName=LYS, chainId=C, uniProtResName=K, uniProtPos=32, naturalPos=7, seqResName=LYS, pdbId=1gc1, uniProtAccessionId=P01730, notObserved=false]
75+
...
76+
</pre>
77+
78+
As you can see for each residue in the Uniprot / PDB sequence the matching counterpart is provided (if there is one).
3879

3980

0 commit comments

Comments
 (0)