X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FCrossRef.java;h=1783f376c2a2f0a735e90114babd3430932c760c;hb=b1f3e3bac931d7f309f60e50b18c435c65586de8;hp=00bb63ac01bb6d1dd5a791060384876065bd5301;hpb=beff7ac7ab7be2c24ccb179be16b8816d2c18610;p=jalview.git diff --git a/src/jalview/analysis/CrossRef.java b/src/jalview/analysis/CrossRef.java index 00bb63a..1783f37 100644 --- a/src/jalview/analysis/CrossRef.java +++ b/src/jalview/analysis/CrossRef.java @@ -443,6 +443,11 @@ public class CrossRef addedXref |= importCrossRefSeq(cf, newDsSeqs, doNotAdd, dss, retrievedDss); } + // JBPNote: What assumptions are made for dbref structures on + // retrieved sequences ? + // addedXref will be true means importCrossRefSeq found + // sequences with dbrefs with mappings to sequences congruent with dss + if (!addedXref) { // try again, after looking for matching IDs @@ -483,7 +488,7 @@ public class CrossRef private void removeAlreadyRetrievedSeqs(List sourceRefs, boolean fromDna) { - List dbrSourceSet = new ArrayList(sourceRefs); + List dbrSourceSet = new ArrayList<>(sourceRefs); List dsSeqs = dataset.getSequences(); for (int ids = 0, nds = dsSeqs.size(); ids < nds; ids++) { @@ -516,7 +521,9 @@ public class CrossRef /** * process sequence retrieved via a dbref on source sequence to resolve and - * transfer data + * transfer data JBPNote: as of 2022-02-03 - this assumes retrievedSequence + * has dbRefs with Mapping references to a sequence congruent with + * sourceSequence * * @param cf * @param sourceSequence @@ -535,10 +542,11 @@ public class CrossRef List dbr = retrievedSequence.getDBRefs(); if (dbr != null) { - for (int ib = 0, nb = dbr.size(); ib < nb; ib++) + for (int ib = 0, nb = dbr.size(); ib < nb; ib++) { - DBRefEntry dbref = dbr.get(ib); + DBRefEntry dbref = dbr.get(ib); + // matched will return null if the dbref has no map SequenceI matched = findInDataset(dbref); if (matched == sourceSequence) { @@ -550,7 +558,7 @@ public class CrossRef Mapping map = dbref.getMap(); if (map != null) { - SequenceI ms = map.getTo(); + SequenceI ms = map.getTo(); if (ms != null && map.getMap() != null) { if (ms == sourceSequence) @@ -716,7 +724,7 @@ public class CrossRef * Returns null or the first sequence in the dataset which is identical to * xref.mapTo, and has a) a primary dbref matching xref, or if none found, the * first one with an ID source|xrefacc - * + * JBPNote: Could refactor this to AlignmentI/DatasetI * @param xref * with map and mapped-to sequence * @return @@ -814,7 +822,7 @@ public class CrossRef * Updates any empty mappings in the cross-references with one to a compatible * retrieved sequence if found, and adds any new mappings to the * AlignedCodonFrame - * + * JBPNote: TODO: this relies on sequence IDs like UNIPROT|ACCESSION - which do not always happen. * @param mapFrom * @param xrefs * @param retrieved @@ -929,7 +937,7 @@ public class CrossRef if (fromDna) { - AlignmentUtils.computeProteinFeatures(mapFrom, mapTo, mapping); + // AlignmentUtils.computeProteinFeatures(mapFrom, mapTo, mapping); mappings.addMap(mapFrom, mapTo, mapping); } else