X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Futil%2FDBRefUtils.java;h=b9939e6437720485175f1777e269b59244701ca3;hb=9f20cd3f523c61db9fa6c44022d50baa692356f4;hp=e6aa47246536da0f8e6a6e950c08df3ff2264a5e;hpb=37de9310bec3501cbc6381e0c3dcb282fcaad812;p=jalview.git diff --git a/src/jalview/util/DBRefUtils.java b/src/jalview/util/DBRefUtils.java index e6aa472..b9939e6 100755 --- a/src/jalview/util/DBRefUtils.java +++ b/src/jalview/util/DBRefUtils.java @@ -65,6 +65,9 @@ public class DBRefUtils canonicalSourceNameLookup.put("ensembl-tr", DBRefSource.ENSEMBL); canonicalSourceNameLookup.put("ensembl-gn", DBRefSource.ENSEMBL); + canonicalSourceNameLookup.put("ensemblgenomes", + DBRefSource.ENSEMBLGENOMES); + // Make sure we have lowercase entries for all canonical string lookups Set keys = canonicalSourceNameLookup.keySet(); for (String k : keys) @@ -100,14 +103,14 @@ public class DBRefUtils HashSet srcs = new HashSet(); for (String src : sources) { - srcs.add(src); + srcs.add(src.toUpperCase()); } List res = new ArrayList(); for (DBRefEntry dbr : dbrefs) { String source = getCanonicalName(dbr.getSource()); - if (srcs.contains(source)) + if (srcs.contains(source.toUpperCase())) { res.add(dbr); } @@ -140,8 +143,8 @@ public class DBRefUtils return false; } String coordsys = dasCoordinateSystemsLookup.get(string.toLowerCase()); - return coordsys == null ? false : coordsys.equals(dBRefEntry - .getSource()); + return coordsys == null ? false + : coordsys.equals(dBRefEntry.getSource()); } /** @@ -160,6 +163,20 @@ public class DBRefUtils return null; } String canonical = canonicalSourceNameLookup.get(source.toLowerCase()); + if (canonical==null) + { + if (source.toLowerCase().startsWith("ensembl")) + { + canonical = DBRefSource.ENSEMBL; + for (String ensembls: new String[] { "Protists","Plants","Bacteria","Fungi","Metazoa"}) + { + if (source.toLowerCase().endsWith(ensembls.toLowerCase())) + { + canonical = DBRefSource.ENSEMBLGENOMES; + } + } + } + } return canonical == null ? source : canonical; } @@ -257,9 +274,8 @@ public class DBRefUtils if (refa.getAccessionId() == null || refb.getAccessionId().equals(refa.getAccessionId())) { - if (refa.getMap() == null - || (refb.getMap() != null && refb.getMap().equals( - refa.getMap()))) + if (refa.getMap() == null || (refb.getMap() != null + && refb.getMap().equals(refa.getMap()))) { return true; } @@ -301,19 +317,18 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null - && refb.getSource() != null + 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 - // FIXME should be && not || here? + // FIXME should be && not || here? || refb.getAccessionId().equals(refa.getAccessionId())) { if ((refa.getMap() == null || refb.getMap() == null) - || (refa.getMap() != null && refb.getMap() != null && refb - .getMap().equals(refa.getMap()))) + || (refa.getMap() != null && refb.getMap() != null + && refb.getMap().equals(refa.getMap()))) { return true; } @@ -334,8 +349,7 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null - && refb.getSource() != null + if (refa.getSource() != null && refb.getSource() != null && DBRefUtils.getCanonicalName(refb.getSource()).equals( DBRefUtils.getCanonicalName(refa.getSource()))) { @@ -346,11 +360,12 @@ public class DBRefUtils if ((refa.getMap() == null && refb.getMap() == null) || (refa.getMap() != null && refb.getMap() != null)) { - if ((refb.getMap().getMap() == null && refa.getMap().getMap() == null) + if ((refb.getMap().getMap() == null + && refa.getMap().getMap() == null) || (refb.getMap().getMap() != null - && refa.getMap().getMap() != null && refb - .getMap().getMap().getInverse() - .equals(refa.getMap().getMap()))) + && refa.getMap().getMap() != null + && refb.getMap().getMap().getInverse() + .equals(refa.getMap().getMap()))) { return true; } @@ -372,8 +387,7 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null - && refb.getSource() != null + if (refa.getSource() != null && refb.getSource() != null && DBRefUtils.getCanonicalName(refb.getSource()).equals( DBRefUtils.getCanonicalName(refa.getSource()))) { @@ -388,12 +402,13 @@ public class DBRefUtils { return true; } - if (refa.getMap() != null - && refb.getMap() != null - && ((refb.getMap().getMap() == null && refa.getMap() - .getMap() == null) || (refb.getMap().getMap() != null - && refa.getMap().getMap() != null && refb - .getMap().getMap().equals(refa.getMap().getMap())))) + if (refa.getMap() != null && refb.getMap() != null + && ((refb.getMap().getMap() == null + && refa.getMap().getMap() == null) + || (refb.getMap().getMap() != null + && refa.getMap().getMap() != null + && refb.getMap().getMap() + .equals(refa.getMap().getMap())))) { return true; } @@ -413,8 +428,7 @@ public class DBRefUtils @Override public boolean matches(DBRefEntry refa, DBRefEntry refb) { - if (refa.getSource() != null - && refb.getSource() != null + if (refa.getSource() != null && refb.getSource() != null && DBRefUtils.getCanonicalName(refb.getSource()).equals( DBRefUtils.getCanonicalName(refa.getSource()))) { @@ -428,11 +442,12 @@ public class DBRefUtils return true; } if ((refa.getMap() != null && refb.getMap() != null) - && (refb.getMap().getMap() == null && refa.getMap() - .getMap() == null) + && (refb.getMap().getMap() == null + && refa.getMap().getMap() == null) || (refb.getMap().getMap() != null - && refa.getMap().getMap() != null && (refb - .getMap().getMap().equals(refa.getMap().getMap())))) + && refa.getMap().getMap() != null + && (refb.getMap().getMap() + .equals(refa.getMap().getMap())))) { return true; } @@ -561,8 +576,8 @@ public class DBRefUtils { return true; } - return DBRefUtils.getCanonicalName(o1).equals( - DBRefUtils.getCanonicalName(o2)); + return DBRefUtils.getCanonicalName(o1) + .equals(DBRefUtils.getCanonicalName(o2)); } /** @@ -578,8 +593,8 @@ public class DBRefUtils public static DBRefEntry[] selectDbRefs(boolean selectDna, DBRefEntry[] refs) { - return selectRefs(refs, selectDna ? DBRefSource.DNACODINGDBS - : DBRefSource.PROTEINDBS); + return selectRefs(refs, + selectDna ? DBRefSource.DNACODINGDBS : DBRefSource.PROTEINDBS); // could attempt to find other cross // refs here - ie PDB xrefs // (not dna, not protein seq) @@ -693,8 +708,7 @@ public class DBRefUtils } // collate candidates and promote them - DBRefEntry[] candidates = selectRefs( - selfs.toArray(new DBRefEntry[0]), + DBRefEntry[] candidates = selectRefs(selfs.toArray(new DBRefEntry[0]), promType.toArray(new String[0])); if (candidates != null) { @@ -724,9 +738,9 @@ public class DBRefUtils toPromote.add(cand); if (!cand.isPrimaryCandidate()) { - System.out.println("Warning: Couldn't promote dbref " - + cand.toString() + " for sequence " - + sequence.toString()); + System.out.println( + "Warning: Couldn't promote dbref " + cand.toString() + + " for sequence " + sequence.toString()); } } }