{\r
rfs = jalview.util.DBRefUtils.selectRefs(rfs,\r
DBRefSource.DNACODINGDBS); // could attempt to find other cross\r
- // refs and return here - ie PDB xrefs\r
- // (not dna, not protein seq)\r
+ // refs and return here - ie PDB xrefs\r
+ // (not dna, not protein seq)\r
}\r
return rfs;\r
}\r
{\r
System.out.println("Attempting to find ds Xrefs refs.");\r
DBRefEntry[] lrfs = CrossRef.findXDbRefs(!dna, seqs[s].getDBRef()); // less\r
- // ambiguous\r
- // would\r
- // be a\r
- // 'find\r
- // primary\r
- // dbRefEntry'\r
- // method.\r
+ // ambiguous\r
+ // would\r
+ // be a\r
+ // 'find\r
+ // primary\r
+ // dbRefEntry'\r
+ // method.\r
// filter for desired source xref here\r
found = CrossRef.searchDatasetXrefs(dss, !dna, lrfs, dataset,\r
rseqs, cf);\r
xrfs = t;\r
try\r
{\r
- retrieved = sftch.getSequences(xrfs);\r
+ retrieved = sftch.getSequences(xrfs); // problem here is we don't know which of xrfs resulted in which retrieved element\r
} catch (Exception e)\r
{\r
System.err\r
{\r
for (int rs = 0; rs < retrieved.length; rs++)\r
{\r
+ // TODO: examine each sequence for 'redundancy'\r
+ jalview.datamodel.DBRefEntry[] dbr = retrieved[rs].getDBRef();\r
+ if (dbr != null && dbr.length > 0)\r
+ {\r
+ for (int di = 0; di < dbr.length; di++)\r
+ {\r
+ // find any entry where we should put in the sequence being cross-referenced into the map\r
+ jalview.datamodel.Mapping map = dbr[di].getMap();\r
+ if (map != null)\r
+ {\r
+ if (map.getTo() != null && map.getMap() != null)\r
+ {\r
+ // should search the local dataset to find any existing candidates for To !\r
+ try\r
+ {\r
+ // compare ms with dss and replace with dss in mapping if map is congruent\r
+ SequenceI ms = map.getTo();\r
+ int sf = map.getMap().getToLowest();\r
+ int st = map.getMap().getToHighest();\r
+ SequenceI mappedrg = ms.getSubSequence(sf, st);\r
+ SequenceI loc = dss.getSubSequence(sf, st);\r
+ if (mappedrg.getLength()>0 && mappedrg.getSequenceAsString().equals(\r
+ loc.getSequenceAsString()))\r
+ {\r
+ System.err\r
+ .println("Mapping updated for retrieved crossreference");\r
+ // method to update all refs of existing To on retrieved sequence with dss and merge any props on To onto dss.\r
+ map.setTo(dss);\r
+ }\r
+ } catch (Exception e)\r
+ {\r
+ System.err\r
+ .println("Exception when consolidating Mapped sequence set...");\r
+ e.printStackTrace(System.err);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ retrieved[rs].updatePDBIds();\r
rseqs.addElement(retrieved[rs]);\r
}\r
}\r
{\r
rseqs.addElement(nxt);\r
boolean foundmap = cf != null; // don't search if we aren't given\r
- // a codon map object\r
+ // a codon map object\r
for (int r = 0; foundmap && r < cands.length; r++)\r
{\r
if (cands[r].hasMap())\r