JAL-1926 JAL-1479 updated PDBfile fetcher to add sourceDBRef on importing sequences
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 29 Oct 2015 13:59:29 +0000 (13:59 +0000)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 29 Oct 2015 13:59:29 +0000 (13:59 +0000)
src/MCview/PDBfile.java
src/jalview/datamodel/Sequence.java
src/jalview/ws/dbsources/Pdb.java
src/jalview/ws/sifts/SiftsClient.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();
index c8bd902..fd710bd 100755 (executable)
@@ -219,6 +219,7 @@ public class Sequence extends ASequence implements SequenceI
     initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(),
             seq.getEnd());
     description = seq.getDescription();
+    sourceDBRef = seq.getSourceDBRef();
     if (seq.getSequenceFeatures() != null)
     {
       SequenceFeature[] sf = seq.getSequenceFeatures();
index 4a50196..7f8c76c 100644 (file)
@@ -97,7 +97,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
    */
   public AlignmentI getSequenceRecords(String queries) throws Exception
   {
-    AlignmentI pdbfile = null;
+    AlignmentI pdbAlignment = null;
     Vector result = new Vector();
     String chain = null;
     String id = null;
@@ -131,12 +131,12 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
     try
     {
 
-      pdbfile = new FormatAdapter().readFile(file,
+      pdbAlignment = new FormatAdapter().readFile(file,
               jalview.io.AppletFormatAdapter.FILE, "PDB");
-      if (pdbfile != null)
+      if (pdbAlignment != null)
       {
         List<SequenceI> toremove = new ArrayList<SequenceI>();
-        for (SequenceI pdbcs : pdbfile.getSequences())
+        for (SequenceI pdbcs : pdbAlignment.getSequences())
         {
           String chid = null;
           // Mapping map=null;
@@ -188,18 +188,18 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
         // now remove marked sequences
         for (SequenceI pdbcs : toremove)
         {
-          pdbfile.deleteSequence(pdbcs);
+          pdbAlignment.deleteSequence(pdbcs);
           if (pdbcs.getAnnotation() != null)
           {
             for (AlignmentAnnotation aa : pdbcs.getAnnotation())
             {
-              pdbfile.deleteAnnotation(aa);
+              pdbAlignment.deleteAnnotation(aa);
             }
           }
         }
       }
 
-      if (pdbfile == null || pdbfile.getHeight() < 1)
+      if (pdbAlignment == null || pdbAlignment.getHeight() < 1)
       {
         throw new Exception(MessageManager.formatMessage(
                 "exception.no_pdb_records_for_chain", new String[] { id,
@@ -211,7 +211,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
       stopQuery();
       throw (ex);
     }
-    return pdbfile;
+    return pdbAlignment;
   }
 
   /*
index 176c511..b9d023b 100644 (file)
@@ -519,7 +519,6 @@ public class SiftsClient implements SiftsClientI
             && getAllMappingAccession().contains(accessionId);
   }
 
-
   @Override
   public Entity getEntityById(String id) throws SiftsException
   {
@@ -568,7 +567,6 @@ public class SiftsClient implements SiftsClientI
             : strName.length();
     int len = 72 - maxid - 1;
 
-    // int nochunks = 2;// mp.getWrapHeight();
     int nochunks = ((seqRes.length()) / len)
             + ((seqRes.length()) % len > 0 ? 1 : 0);
     // output mappings