X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FCrossRef.java;h=71b0aa0b9adb5cd92d39b5f7908fa3dcc349e4ed;hb=655b78299307682a4c7a6e5af0ed4618cbc9c924;hp=31b35ec85eb7576c3620b5957a7b57d3c80b02ce;hpb=6be186417258f0fd90a426a13032d3092a67ce6c;p=jalview.git diff --git a/src/jalview/analysis/CrossRef.java b/src/jalview/analysis/CrossRef.java index 31b35ec..71b0aa0 100644 --- a/src/jalview/analysis/CrossRef.java +++ b/src/jalview/analysis/CrossRef.java @@ -421,19 +421,27 @@ public class CrossRef if (retrieved != null) { - updateDbrefMappings(seq, xrfs, retrieved, cf, fromDna); + boolean addedXref = false; for (SequenceI retrievedSequence : retrieved) { // dataset gets contaminated ccwith non-ds sequences. why ??! // try: Ensembl -> Nuc->Ensembl, Nuc->Uniprot-->Protein->EMBL-> SequenceI retrievedDss = retrievedSequence.getDatasetSequence() == null ? retrievedSequence : retrievedSequence.getDatasetSequence(); - importCrossRefSeq(cf, dss, retrievedDss); - rseqs.add(retrievedDss); - if (dataset.findIndex(retrievedDss) == -1) + addedXref |= importCrossRefSeq(cf, dss, retrievedDss); + } + if (!addedXref) + { + // try again, after looking for matching IDs + // shouldn't need to do this unless the dbref mechanism has broken. + updateDbrefMappings(seq, xrfs, retrieved, cf, fromDna); + for (SequenceI retrievedSequence : retrieved) { - dataset.addSequence(retrievedDss); - matcher.add(retrievedDss); + // dataset gets contaminated ccwith non-ds sequences. why ??! + // try: Ensembl -> Nuc->Ensembl, Nuc->Uniprot-->Protein->EMBL-> + SequenceI retrievedDss = retrievedSequence.getDatasetSequence() == null ? retrievedSequence + : retrievedSequence.getDatasetSequence(); + addedXref |= importCrossRefSeq(cf, dss, retrievedDss); } } }