From: Jim Procter Date: Sun, 3 Sep 2017 10:38:15 +0000 (+0100) Subject: Merge branch 'features/JAL-2681_duplicatecrossrefs' into documentation/JAL-2675_relea... X-Git-Tag: Release_2_10_3b1~142^2~4 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=7786addeb6e86d7e89afd560f6058d429dd893fc;hp=806c9dc4a3d841fe36e7d17ab45d783a9fc95f26;p=jalview.git Merge branch 'features/JAL-2681_duplicatecrossrefs' into documentation/JAL-2675_release2102b1 --- diff --git a/src/jalview/datamodel/xdb/embl/EmblEntry.java b/src/jalview/datamodel/xdb/embl/EmblEntry.java index fe3f6ef..2de100b 100644 --- a/src/jalview/datamodel/xdb/embl/EmblEntry.java +++ b/src/jalview/datamodel/xdb/embl/EmblEntry.java @@ -279,7 +279,7 @@ public class EmblEntry String translation = null; String proteinName = ""; String proteinId = null; - Map vals = new Hashtable(); + Map vals = new Hashtable<>(); /* * codon_start 1/2/3 in EMBL corresponds to phase 0/1/2 in CDS diff --git a/src/jalview/ws/dbsources/EmblXmlSource.java b/src/jalview/ws/dbsources/EmblXmlSource.java index 21b226b..ca90d60 100644 --- a/src/jalview/ws/dbsources/EmblXmlSource.java +++ b/src/jalview/ws/dbsources/EmblXmlSource.java @@ -91,7 +91,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy File reply) throws Exception { EmblFile efile = null; - List seqs = new ArrayList(); + List seqs = new ArrayList<>(); if (reply != null && reply.exists()) { @@ -107,7 +107,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy * EmbFile reads something like (e.g.) this ungrammatical phrase * Entry: display type is either not supported or entry is not found. */ - List peptides = new ArrayList(); + List peptides = new ArrayList<>(); if (efile != null && efile.getEntries() != null) { for (EmblEntry entry : efile.getEntries()) diff --git a/src/jalview/ws/seqfetcher/ASequenceFetcher.java b/src/jalview/ws/seqfetcher/ASequenceFetcher.java index 977f9da..9284f82 100644 --- a/src/jalview/ws/seqfetcher/ASequenceFetcher.java +++ b/src/jalview/ws/seqfetcher/ASequenceFetcher.java @@ -126,15 +126,16 @@ public class ASequenceFetcher */ public SequenceI[] getSequences(List refs, boolean dna) { - Vector rseqs = new Vector(); - Hashtable> queries = new Hashtable>(); + Vector rseqs = new Vector<>(); + Hashtable> queries = new Hashtable<>(); for (DBRefEntry ref : refs) { - if (!queries.containsKey(ref.getSource())) + String canonical = DBRefUtils.getCanonicalName(ref.getSource()); + if (!queries.containsKey(canonical)) { - queries.put(ref.getSource(), new ArrayList()); + queries.put(canonical, new ArrayList()); } - List qset = queries.get(ref.getSource()); + List qset = queries.get(canonical); if (!qset.contains(ref.getAccessionId())) { qset.add(ref.getAccessionId()); @@ -154,14 +155,14 @@ public class ASequenceFetcher continue; } - Stack queriesLeft = new Stack(); + Stack queriesLeft = new Stack<>(); queriesLeft.addAll(query); List proxies = getSourceProxy(db); for (DbSourceProxy fetcher : proxies) { - List queriesMade = new ArrayList(); - HashSet queriesFound = new HashSet(); + List queriesMade = new ArrayList<>(); + HashSet queriesFound = new HashSet<>(); try { if (fetcher.isDnaCoding() != dna) @@ -306,13 +307,13 @@ public class ASequenceFetcher Map dblist = fetchableDbs.get(db); if (dblist == null) { - return new ArrayList(); + return new ArrayList<>(); } /* * sort so that primary sources precede secondary */ - List dbs = new ArrayList(dblist.values()); + List dbs = new ArrayList<>(dblist.values()); Collections.sort(dbs, proxyComparator); return dbs; } @@ -357,14 +358,14 @@ public class ASequenceFetcher { if (fetchableDbs == null) { - fetchableDbs = new Hashtable>(); + fetchableDbs = new Hashtable<>(); } Map slist = fetchableDbs .get(proxy.getDbSource()); if (slist == null) { fetchableDbs.put(proxy.getDbSource(), - slist = new Hashtable()); + slist = new Hashtable<>()); } slist.put(proxy.getDbName(), proxy); } @@ -391,7 +392,7 @@ public class ASequenceFetcher return null; } String[] sources = null; - Vector src = new Vector(); + Vector src = new Vector<>(); Enumeration dbs = fetchableDbs.keys(); while (dbs.hasMoreElements()) { @@ -413,7 +414,7 @@ public class ASequenceFetcher public DbSourceProxy[] getDbSourceProxyInstances(Class class1) { - List prlist = new ArrayList(); + List prlist = new ArrayList<>(); for (String fetchable : getSupportedDb()) { for (DbSourceProxy pr : getSourceProxy(fetchable)) diff --git a/test/jalview/io/CrossRef2xmlTests.java b/test/jalview/io/CrossRef2xmlTests.java index ec5855f..0715857 100644 --- a/test/jalview/io/CrossRef2xmlTests.java +++ b/test/jalview/io/CrossRef2xmlTests.java @@ -31,10 +31,12 @@ import jalview.gui.CrossRefAction; import jalview.gui.Desktop; import jalview.gui.Jalview2XML; import jalview.gui.JvOptionPane; +import jalview.util.DBRefUtils; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -65,10 +67,13 @@ public class CrossRef2xmlTests extends Jalview2xmlBase public void testRetrieveAndShowCrossref() throws Exception { - List failedDBRetr = new ArrayList(); - List failedXrefMenuItems = new ArrayList(); - List failedProjectRecoveries = new ArrayList(); - + List failedDBRetr = new ArrayList<>(); + List failedXrefMenuItems = new ArrayList<>(); + List failedProjectRecoveries = new ArrayList<>(); + // only search for ensembl or Uniprot crossrefs + List limit=Arrays.asList(new String[] { + DBRefUtils.getCanonicalName("ENSEMBL"), + DBRefUtils.getCanonicalName("Uniprot")}); // for every set of db queries // retrieve db query // verify presence of expected xrefs @@ -85,12 +90,11 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // . codonframes // // - HashMap dbtoviewBit = new HashMap(); - List keyseq = new ArrayList(); - HashMap savedProjects = new HashMap(); + HashMap dbtoviewBit = new HashMap<>(); + List keyseq = new ArrayList<>(); + HashMap savedProjects = new HashMap<>(); - for (String[] did : new String[][] { { "ENSEMBL", "ENSG00000157764" }, - { "UNIPROT", "P01731" } }) + for (String[] did : new String[][] { { "UNIPROT", "P00338" } }) { // pass counters - 0 - first pass, 1 means retrieve project rather than // perform action @@ -163,7 +167,8 @@ public class CrossRef2xmlTests extends Jalview2xmlBase ptypes = (seqs == null || seqs.length == 0) ? null : new CrossRef( seqs, dataset).findXrefSourcesForSequences(dna); - + filterDbRefs(ptypes, limit); + // start of pass2: retrieve each cross-ref for fetched or restored // project. do // first cross ref and recover crossref loop @@ -176,7 +181,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // build next key so we an retrieve all views String nextxref = first + " -> " + db + "{" + firstcr_ap + "}"; // perform crossref action, or retrieve stored project - List cra_views = new ArrayList(); + List cra_views = new ArrayList<>(); CrossRefAction cra = null; if (pass2 == 0) @@ -237,7 +242,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase } } - HashMap> xrptypes = new HashMap>(); + HashMap> xrptypes = new HashMap<>(); // first save/verify views. for (AlignmentViewPanel avp : cra_views) { @@ -274,7 +279,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase nextxref = first + " -> " + db + "{" + firstcr_ap++ + "}"; for (String xrefdb : xrptypes.get(nextxref)) { - List cra_views2 = new ArrayList(); + List cra_views2 = new ArrayList<>(); int q = 0; String nextnextxref = nextxref + " -> " + xrefdb + "{" + q + "}"; @@ -437,6 +442,25 @@ public class CrossRef2xmlTests extends Jalview2xmlBase } } + private void filterDbRefs(List ptypes, List limit) + { + if (limit != null) + { + int p = 0; + while (ptypes.size() > p) + { + if (!limit.contains(ptypes.get(p))) + { + ptypes.remove(p); + } + else + { + p++; + } + } + } + } + /** * wrapper to trap known defect for AH002001 testcase * @@ -480,7 +504,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase private void assertType(boolean expectProtein, AlignmentViewPanel alignmentViewPanel, String message) { - List nonType = new ArrayList(); + List nonType = new ArrayList<>(); for (SequenceI sq : alignmentViewPanel.getAlignViewport() .getAlignment().getSequences()) {