JAL-1926 JAL-1479 updated PDBfile fetcher to add sourceDBRef on importing sequences
[jalview.git] / src / MCview / PDBfile.java
index c1018a3..a7ecc52 100755 (executable)
@@ -24,6 +24,7 @@ import jalview.analysis.AlignSeq;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
 import jalview.io.FileParse;
@@ -94,11 +95,13 @@ public class PDBfile extends jalview.io.AlignFile
     doParse();
   }
 
+  @Override
   public String print()
   {
     return null;
   }
 
+  @Override
   public void parse() throws IOException
   {
     // TODO set the filename sensibly - try using data source name.
@@ -285,8 +288,8 @@ public class PDBfile extends jalview.io.AlignFile
    */
   protected SequenceI postProcessChain(PDBChain chain)
   {
-    SequenceI dataset = chain.sequence;
-    dataset.setName(id + "|" + dataset.getName());
+    SequenceI pdbSequence = chain.sequence;
+    pdbSequence.setName(id + "|" + pdbSequence.getName());
     PDBEntry entry = new PDBEntry();
     entry.setId(id);
     entry.setType(PDBEntry.Type.PDB);
@@ -305,9 +308,16 @@ public class PDBfile extends jalview.io.AlignFile
       // TODO: decide if we should dump the datasource to disk
       entry.setFile(getDataName());
     }
-    dataset.addPDBId(entry);
+    pdbSequence.addPDBId(entry);
+
+    DBRefEntry sourceDBRef = new DBRefEntry();
+    sourceDBRef.setAccessionId(id);
+    sourceDBRef.setSource("PDB");
+    sourceDBRef.setStartRes(pdbSequence.getStart());
+    sourceDBRef.setEndRes(pdbSequence.getEnd());
+    pdbSequence.setSourceDBRef(sourceDBRef);
     // PDBChain objects maintain reference to dataset
-    SequenceI chainseq = dataset.deriveSequence();
+    SequenceI chainseq = pdbSequence.deriveSequence();
     seqs.addElement(chainseq);
 
     AlignmentAnnotation[] chainannot = chainseq.getAnnotation();