Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / datamodel / xdb / embl / EmblEntry.java
diff --git a/src/jalview/datamodel/xdb/embl/EmblEntry.java b/src/jalview/datamodel/xdb/embl/EmblEntry.java
deleted file mode 100644 (file)
index ffe138b..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-package jalview.datamodel.xdb.embl;\r
-\r
-import jalview.datamodel.DBRefEntry;\r
-import jalview.datamodel.Sequence;\r
-import jalview.datamodel.SequenceFeature;\r
-import jalview.datamodel.SequenceI;\r
-\r
-import java.util.Iterator;\r
-import java.util.Vector;\r
-\r
-public class EmblEntry {\r
-  String accession;\r
-  String version;\r
-  String taxDivision;\r
-  String desc;\r
-  String rCreated;\r
-  String rLastUpdated;\r
-  String lastUpdated;\r
-  Vector keywords;\r
-  Vector refs;\r
-  Vector dbRefs;\r
-  Vector features;\r
-  EmblSequence sequence;\r
-  /**\r
-   * @return the accession\r
-   */\r
-  public String getAccession() {\r
-    return accession;\r
-  }\r
-  /**\r
-   * @param accession the accession to set\r
-   */\r
-  public void setAccession(String accession) {\r
-    this.accession = accession;\r
-  }\r
-  /**\r
-   * @return the dbRefs\r
-   */\r
-  public Vector getDbRefs() {\r
-    return dbRefs;\r
-  }\r
-  /**\r
-   * @param dbRefs the dbRefs to set\r
-   */\r
-  public void setDbRefs(Vector dbRefs) {\r
-    this.dbRefs = dbRefs;\r
-  }\r
-  /**\r
-   * @return the desc\r
-   */\r
-  public String getDesc() {\r
-    return desc;\r
-  }\r
-  /**\r
-   * @param desc the desc to set\r
-   */\r
-  public void setDesc(String desc) {\r
-    this.desc = desc;\r
-  }\r
-  /**\r
-   * @return the features\r
-   */\r
-  public Vector getFeatures() {\r
-    return features;\r
-  }\r
-  /**\r
-   * @param features the features to set\r
-   */\r
-  public void setFeatures(Vector features) {\r
-    this.features = features;\r
-  }\r
-  /**\r
-   * @return the keywords\r
-   */\r
-  public Vector getKeywords() {\r
-    return keywords;\r
-  }\r
-  /**\r
-   * @param keywords the keywords to set\r
-   */\r
-  public void setKeywords(Vector keywords) {\r
-    this.keywords = keywords;\r
-  }\r
-  /**\r
-   * @return the lastUpdated\r
-   */\r
-  public String getLastUpdated() {\r
-    return lastUpdated;\r
-  }\r
-  /**\r
-   * @param lastUpdated the lastUpdated to set\r
-   */\r
-  public void setLastUpdated(String lastUpdated) {\r
-    this.lastUpdated = lastUpdated;\r
-  }\r
-  /**\r
-   * @return the refs\r
-   */\r
-  public Vector getRefs() {\r
-    return refs;\r
-  }\r
-  /**\r
-   * @param refs the refs to set\r
-   */\r
-  public void setRefs(Vector refs) {\r
-    this.refs = refs;\r
-  }\r
-  /**\r
-   * @return the releaseCreated\r
-   */\r
-  public String getRCreated() {\r
-    return rCreated;\r
-  }\r
-  /**\r
-   * @param releaseCreated the releaseCreated to set\r
-   */\r
-  public void setRcreated(String releaseCreated) {\r
-    this.rCreated = releaseCreated;\r
-  }\r
-  /**\r
-   * @return the releaseLastUpdated\r
-   */\r
-  public String getRLastUpdated() {\r
-    return rLastUpdated;\r
-  }\r
-  /**\r
-   * @param releaseLastUpdated the releaseLastUpdated to set\r
-   */\r
-  public void setRLastUpdated(String releaseLastUpdated) {\r
-    this.rLastUpdated = releaseLastUpdated;\r
-  }\r
-  /**\r
-   * @return the sequence\r
-   */\r
-  public EmblSequence getSequence() {\r
-    return sequence;\r
-  }\r
-  /**\r
-   * @param sequence the sequence to set\r
-   */\r
-  public void setSequence(EmblSequence sequence) {\r
-    this.sequence = sequence;\r
-  }\r
-  /**\r
-   * @return the taxDivision\r
-   */\r
-  public String getTaxDivision() {\r
-    return taxDivision;\r
-  }\r
-  /**\r
-   * @param taxDivision the taxDivision to set\r
-   */\r
-  public void setTaxDivision(String taxDivision) {\r
-    this.taxDivision = taxDivision;\r
-  }\r
-  /**\r
-   * @return the version\r
-   */\r
-  public String getVersion() {\r
-    return version;\r
-  }\r
-  /**\r
-   * @param version the version to set\r
-   */\r
-  public void setVersion(String version) {\r
-    this.version = version;\r
-  }\r
-\r
-  /**\r
-   * Recover annotated sequences from EMBL file\r
-   * @param noNa don't return nucleic acid sequences \r
-   * @param sourceDb TODO\r
-   * @param noProtein don't return any translated protein sequences marked in features\r
-   * @return dataset sequences with DBRefs and features - DNA always comes first\r
-   */\r
-  public jalview.datamodel.SequenceI[] getSequences(boolean noNa, boolean noPeptide, String sourceDb) {\r
-    Vector seqs=new Vector();\r
-    Sequence dna=null;\r
-    if (!noNa) {\r
-      dna = new Sequence(sourceDb+"|"+accession, sequence.getSequence());\r
-      dna.setDescription(desc);\r
-      dna.addDBRef(new DBRefEntry(sourceDb, version, accession));\r
-      // TODO: add mapping for parentAccession attribute\r
-      // TODO: transform EMBL Database refs to canonical form\r
-      if (dbRefs!=null)\r
-        for (Iterator i=dbRefs.iterator(); i.hasNext(); dna.addDBRef((DBRefEntry)i.next()));\r
-    }\r
-    for (Iterator i=features.iterator(); i.hasNext(); ) {\r
-      EmblFeature feature = (EmblFeature) i.next();\r
-      if (!noNa) {\r
-        if (feature.dbRefs!=null && feature.dbRefs.size()>0) {\r
-          for (Iterator dbr=feature.dbRefs.iterator(); dbr.hasNext(); dna.addDBRef((DBRefEntry)dbr.next()) )\r
-            ;\r
-        }\r
-      }\r
-      if (feature.getName().equalsIgnoreCase("CDS")) {\r
-        // extract coding region(s)\r
-        jalview.datamodel.Mapping map = null;\r
-        int[] exon=null;\r
-        if (feature.locations!=null && feature.locations.size()>0) {\r
-          for (Iterator locs=feature.locations.iterator();\r
-          locs.hasNext(); ) {\r
-            EmblFeatureLocations loc = (EmblFeatureLocations) locs.next();\r
-            int[] se = loc.getElementRanges();\r
-            if (exon==null) {\r
-              exon=se;\r
-            } else {\r
-              int[] t=new int[exon.length+se.length];\r
-              System.arraycopy(exon, 0, t, 0, exon.length);\r
-              System.arraycopy(se, 0, t, exon.length,se.length);\r
-              exon=t;\r
-            }\r
-          }\r
-        }\r
-        String prseq=null;\r
-        String prname=null;\r
-        String prid=null;\r
-        int prstart=1;\r
-        // get qualifiers\r
-        if (feature.getQualifiers()!=null && feature.getQualifiers().size()>0) {\r
-          for (Iterator quals=feature.getQualifiers().iterator(); quals.hasNext(); ) {\r
-            Qualifier q = (Qualifier) quals.next();\r
-            if (q.getName().equals("translation")) \r
-            {\r
-              prseq=q.getValue();\r
-            } \r
-            else\r
-              if (q.getName().equals("protein_id")) \r
-              {\r
-                prid=q.getValue();\r
-              }\r
-              else\r
-                if (q.getName().equals("codon_start"))\r
-                {\r
-                  prstart = Integer.parseInt(q.getValue());\r
-                }\r
-                else\r
-                  if (q.getName().equals("product")) {\r
-                    prname = q.getValue();\r
-                  }\r
-          }\r
-        }\r
-        Sequence product=null;\r
-        if (prseq!=null && prname!=null && prid!=null) {\r
-          // extract proteins.\r
-          if (!noPeptide) {\r
-            product = new Sequence(sourceDb+"|"+"EMBLCDS|"+prid+"|"+prname, prseq, prstart, prstart+prseq.length()-1);\r
-            product.setDescription("Protein Product from "+sourceDb);\r
-            seqs.add(product);\r
-          }\r
-          // we have everything - create the mapping and perhaps the protein sequence\r
-          map = new jalview.datamodel.Mapping(product, exon, new int[] { prstart, prstart+prseq.length()-1}, 3, 1);\r
-          // add cds feature to dna seq - this may include the stop codon\r
-          for (int xint=0;xint<exon.length; xint+=2) {\r
-            SequenceFeature sf = new SequenceFeature();\r
-            sf.setBegin(exon[xint]);\r
-            sf.setEnd(exon[xint+1]);\r
-            sf.setType(feature.getName());\r
-            sf.setFeatureGroup(jalview.datamodel.DBRefSource.EMBL);\r
-            sf.setDescription("Exon "+(1+xint)+" for protein '"+prname+"' EMBLCDS:"+prid);\r
-            dna.addSequenceFeature(sf);\r
-          }\r
-        }\r
-        // add dbRefs to sequence\r
-        if (feature.dbRefs!=null && feature.dbRefs.size()>0) \r
-        {\r
-          for (Iterator dbr=feature.dbRefs.iterator(); dbr.hasNext();  ) \r
-          {\r
-            DBRefEntry ref = (DBRefEntry)dbr.next();\r
-            ref.setSource(jalview.util.DBRefUtils.getCanonicalName(ref.getSource()));\r
-            if (ref.getSource().equals(jalview.datamodel.DBRefSource.UNIPROT)) \r
-            {\r
-              ref.setMap(map);\r
-            }\r
-            if (product!=null) {\r
-              DBRefEntry pref = new DBRefEntry(ref.getSource(), ref.getVersion(), ref.getAccessionId());\r
-              pref.setMap(null); // reference is direct\r
-            }\r
-            dna.addDBRef(ref);\r
-          }\r
-        }\r
-        \r
-      } else {\r
-        // General feature type.\r
-        if (!noNa) {\r
-          if (feature.dbRefs!=null && feature.dbRefs.size()>0) {\r
-            for (Iterator dbr=feature.dbRefs.iterator(); dbr.hasNext(); dna.addDBRef((DBRefEntry)dbr.next()) )\r
-              ;\r
-          }\r
-        }\r
-      }\r
-\r
-    }\r
-    if (!noNa) {\r
-      seqs.add(dna);\r
-    }\r
-    SequenceI[] sqs = new SequenceI[seqs.size()];\r
-    for (int i=0,j=seqs.size();i<j; i++) {\r
-      sqs[i] = (SequenceI) seqs.elementAt(i);\r
-      seqs.set(i, null);\r
-    }\r
-    return sqs;\r
-  }\r
-}\r