X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FDBRefUtils.java;h=e6aa47246536da0f8e6a6e950c08df3ff2264a5e;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=a1f06e5faf993764db1ae985606cfecf99cb1f8e;hpb=3ed5c0f91614bb7a3620ec3a968a54bafdbd74ad;p=jalview.git diff --git a/src/jalview/util/DBRefUtils.java b/src/jalview/util/DBRefUtils.java index a1f06e5..e6aa472 100755 --- a/src/jalview/util/DBRefUtils.java +++ b/src/jalview/util/DBRefUtils.java @@ -26,9 +26,9 @@ import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; -import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Set; @@ -248,7 +248,8 @@ public class DBRefUtils public boolean matches(DBRefEntry refa, DBRefEntry refb) { if (refa.getSource() == null - || refb.getSource().equals(refa.getSource())) + || DBRefUtils.getCanonicalName(refb.getSource()).equals( + DBRefUtils.getCanonicalName(refa.getSource()))) { if (refa.getVersion() == null || refb.getVersion().equals(refa.getVersion())) @@ -279,7 +280,7 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (nullOrEqual(refa.getSource(), refb.getSource()) + if (nullOrEqualSource(refa.getSource(), refb.getSource()) && nullOrEqual(refa.getVersion(), refb.getVersion()) && nullOrEqual(refa.getAccessionId(), refb.getAccessionId()) && nullOrEqual(refa.getMap(), refb.getMap())) @@ -300,8 +301,10 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null && refb.getSource() != null - && refb.getSource().equals(refa.getSource())) + if (refa.getSource() != null + && refb.getSource() != null + && DBRefUtils.getCanonicalName(refb.getSource()).equals( + DBRefUtils.getCanonicalName(refa.getSource()))) { // We dont care about version if (refa.getAccessionId() != null && refb.getAccessionId() != null @@ -331,8 +334,10 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null && refb.getSource() != null - && refb.getSource().equals(refa.getSource())) + if (refa.getSource() != null + && refb.getSource() != null + && DBRefUtils.getCanonicalName(refb.getSource()).equals( + DBRefUtils.getCanonicalName(refa.getSource()))) { // We dont care about version if (refa.getAccessionId() != null && refb.getAccessionId() != null @@ -367,8 +372,10 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null && refb.getSource() != null - && refb.getSource().equals(refa.getSource())) + if (refa.getSource() != null + && refb.getSource() != null + && DBRefUtils.getCanonicalName(refb.getSource()).equals( + DBRefUtils.getCanonicalName(refa.getSource()))) { // We dont care about version // if ((refa.getVersion()==null || refb.getVersion()==null) @@ -406,8 +413,10 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null && refb.getSource() != null - && refb.getSource().equals(refa.getSource())) + if (refa.getSource() != null + && refb.getSource() != null + && DBRefUtils.getCanonicalName(refb.getSource()).equals( + DBRefUtils.getCanonicalName(refa.getSource()))) { // We dont care about version @@ -498,9 +507,7 @@ public class DBRefUtils PDBEntry pdbr = new PDBEntry(); pdbr.setId(pdbid); pdbr.setType(PDBEntry.Type.PDB); - pdbr.setProperty(new Hashtable()); pdbr.setChainCode(chaincode); - // pdbr.getProperty().put("CHAIN", chaincode); seq.addPDBId(pdbr); } else @@ -538,6 +545,27 @@ public class DBRefUtils } /** + * canonicalise source string before comparing. null is always wildcard + * + * @param o1 + * - null or source string to compare + * @param o2 + * - null or source string to compare + * @return true if either o1 or o2 are null, or o1 equals o2 under + * DBRefUtils.getCanonicalName + * (o1).equals(DBRefUtils.getCanonicalName(o2)) + */ + public static boolean nullOrEqualSource(String o1, String o2) + { + if (o1 == null || o2 == null) + { + return true; + } + return DBRefUtils.getCanonicalName(o1).equals( + DBRefUtils.getCanonicalName(o2)); + } + + /** * Selects just the DNA or protein references from a set of references * * @param selectDna @@ -582,4 +610,127 @@ public class DBRefUtils return matches; } + /** + * promote direct database references to primary for nucleotide or protein + * sequences if they have an appropriate primary ref + *
Seq Type | + *Primary DB | + *Direct which will be promoted | + *
---|---|---|
peptides | + *Ensembl | + *Uniprot | + *
peptides | + *Ensembl | + *Uniprot | + *
dna | + *Ensembl | + *ENA | + *