X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblSeqProxy.java;h=0bfeda1121211a99e65976ef798a8853065f2182;hb=949fed115506ff00c221669e096546f9c39a6ace;hp=8698b78bdb75acb09837ece49adfdfa70aaf0847;hpb=a9f0472fe6fd4737b47d7955d198e76923e6aabc;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblSeqProxy.java b/src/jalview/ext/ensembl/EnsemblSeqProxy.java index 8698b78..0bfeda1 100644 --- a/src/jalview/ext/ensembl/EnsemblSeqProxy.java +++ b/src/jalview/ext/ensembl/EnsemblSeqProxy.java @@ -36,6 +36,9 @@ import java.util.Map.Entry; */ public abstract class EnsemblSeqProxy extends EnsemblRestClient { + private static final List CROSS_REFERENCES = Arrays + .asList(new String[] { "CCDS" }); + protected static final String CONSEQUENCE_TYPE = "consequence_type"; protected static final String PARENT = "Parent"; @@ -173,7 +176,11 @@ public abstract class EnsemblSeqProxy extends EnsemblRestClient addFeaturesAndProduct(accId, alignment); } - inProgress = false; + for (SequenceI seq : alignment.getSequences()) + { + getCrossReferences(seq); + } + System.out.println(getClass().getName() + " took " + (System.currentTimeMillis() - now) + "ms to fetch"); return alignment; @@ -265,8 +272,6 @@ public abstract class EnsemblSeqProxy extends EnsemblRestClient proteinSeq.createDatasetSequence(); querySeq.createDatasetSequence(); - getProteinCrossReferences(proteinSeq); - MapList mapList = mapCdsToProtein(querySeq, proteinSeq); if (mapList != null) { @@ -293,26 +298,35 @@ public abstract class EnsemblSeqProxy extends EnsemblRestClient * Get Uniprot and PDB xrefs from Ensembl, and attach them to the protein * sequence * - * @param proteinSeq + * @param seq */ - protected void getProteinCrossReferences(SequenceI proteinSeq) + protected void getCrossReferences(SequenceI seq) { - while (proteinSeq.getDatasetSequence() != null) + while (seq.getDatasetSequence() != null) { - proteinSeq = proteinSeq.getDatasetSequence(); + seq = seq.getDatasetSequence(); } EnsemblXref xrefFetcher = new EnsemblXref(); - List xrefs = xrefFetcher.getCrossReferences( - proteinSeq.getName(), "PDB", "Uniprot/SPTREMBL", - "Uniprot/SWISSPROT"); + List xrefs = xrefFetcher.getCrossReferences(seq.getName(), + getCrossReferenceDatabases()); for (DBRefEntry xref : xrefs) { - proteinSeq.addDBRef(xref); + seq.addDBRef(xref); } } /** + * Returns a list of database names to be used when fetching cross-references. + * + * @return + */ + protected List getCrossReferenceDatabases() + { + return CROSS_REFERENCES; + } + + /** * Returns a mapping from dna to protein by inspecting sequence features of * type "CDS" on the dna. *