JAL-3210 Merge branch 'develop' into trialMerge
[jalview.git] / test / jalview / analysis / AlignmentUtilsTests.java
index a7a7d34..d54ff8a 100644 (file)
@@ -51,6 +51,7 @@ import jalview.io.FormatAdapter;
 import jalview.io.gff.SequenceOntologyI;
 import jalview.util.MapList;
 import jalview.util.MappingUtils;
+import jalview.ws.params.InvalidArgumentException;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -974,7 +975,7 @@ public class AlignmentUtilsTests
     assertTrue(AlignmentUtils.haveCrossRef(seq2, seq1));
 
     // now the other way round
-    seq1.setDBRefs(null);
+       seq1.setDBRefs(null);
     seq2.addDBRef(new DBRefEntry("EMBL", "1", "A12345"));
     assertTrue(AlignmentUtils.haveCrossRef(seq1, seq2));
     assertTrue(AlignmentUtils.haveCrossRef(seq2, seq1));
@@ -1052,11 +1053,11 @@ public class AlignmentUtilsTests
     DBRefEntry dna1xref = new DBRefEntry("UNIPROT", "ENSEMBL", "pep1",
             new Mapping(mapfordna1));
     dna1.addDBRef(dna1xref);
-    assertEquals(2, dna1.getDBRefs().length); // to self and to pep1
+    assertEquals(2, dna1.getDBRefs().size()); // to self and to pep1
     DBRefEntry dna2xref = new DBRefEntry("UNIPROT", "ENSEMBL", "pep2",
             new Mapping(mapfordna2));
     dna2.addDBRef(dna2xref);
-    assertEquals(2, dna2.getDBRefs().length); // to self and to pep2
+    assertEquals(2, dna2.getDBRefs().size()); // to self and to pep2
 
     /*
      * execute method under test:
@@ -1084,8 +1085,8 @@ public class AlignmentUtilsTests
      * verify CDS has a dbref with mapping to peptide
      */
     assertNotNull(cds1Dss.getDBRefs());
-    assertEquals(2, cds1Dss.getDBRefs().length);
-    dbref = cds1Dss.getDBRefs()[0];
+    assertEquals(2, cds1Dss.getDBRefs().size());
+    dbref = cds1Dss.getDBRefs().get(0);
     assertEquals(dna1xref.getSource(), dbref.getSource());
     // version is via ensembl's primary ref
     assertEquals(dna1xref.getVersion(), dbref.getVersion());
@@ -1101,8 +1102,8 @@ public class AlignmentUtilsTests
      */
     assertNotNull(pep1.getDBRefs());
     // FIXME pep1.getDBRefs() is 1 - is that the correct behaviour ?
-    assertEquals(2, pep1.getDBRefs().length);
-    dbref = pep1.getDBRefs()[1];
+    assertEquals(2, pep1.getDBRefs().size());
+    dbref = pep1.getDBRefs().get(1);
     assertEquals("ENSEMBL", dbref.getSource());
     assertEquals("0", dbref.getVersion());
     assertEquals("CDS|dna1", dbref.getAccessionId());
@@ -1113,14 +1114,14 @@ public class AlignmentUtilsTests
     /*
      * verify cDNA has added a dbref with mapping to CDS
      */
-    assertEquals(3, dna1.getDBRefs().length);
-    DBRefEntry dbRefEntry = dna1.getDBRefs()[2];
+    assertEquals(3, dna1.getDBRefs().size());
+    DBRefEntry dbRefEntry = dna1.getDBRefs().get(2);
     assertSame(cds1Dss, dbRefEntry.getMap().getTo());
     MapList dnaToCdsMapping = new MapList(new int[] { 4, 6, 10, 12 },
             new int[] { 1, 6 }, 1, 1);
     assertEquals(dnaToCdsMapping, dbRefEntry.getMap().getMap());
-    assertEquals(3, dna2.getDBRefs().length);
-    dbRefEntry = dna2.getDBRefs()[2];
+    assertEquals(3, dna2.getDBRefs().size());
+    dbRefEntry = dna2.getDBRefs().get(2);
     assertSame(cds2Dss, dbRefEntry.getMap().getTo());
     dnaToCdsMapping = new MapList(new int[] { 1, 3, 7, 9, 13, 15 },
             new int[] { 1, 9 }, 1, 1);
@@ -1129,14 +1130,14 @@ public class AlignmentUtilsTests
     /*
      * verify CDS has added a dbref with mapping to cDNA
      */
-    assertEquals(2, cds1Dss.getDBRefs().length);
-    dbRefEntry = cds1Dss.getDBRefs()[1];
+    assertEquals(2, cds1Dss.getDBRefs().size());
+    dbRefEntry = cds1Dss.getDBRefs().get(1);
     assertSame(dna1.getDatasetSequence(), dbRefEntry.getMap().getTo());
     MapList cdsToDnaMapping = new MapList(new int[] { 1, 6 }, new int[] {
         4, 6, 10, 12 }, 1, 1);
     assertEquals(cdsToDnaMapping, dbRefEntry.getMap().getMap());
-    assertEquals(2, cds2Dss.getDBRefs().length);
-    dbRefEntry = cds2Dss.getDBRefs()[1];
+    assertEquals(2, cds2Dss.getDBRefs().size());
+    dbRefEntry = cds2Dss.getDBRefs().get(1);
     assertSame(dna2.getDatasetSequence(), dbRefEntry.getMap().getTo());
     cdsToDnaMapping = new MapList(new int[] { 1, 9 }, new int[] { 1, 3, 7,
         9, 13, 15 }, 1, 1);
@@ -2040,44 +2041,48 @@ public class AlignmentUtilsTests
     String dbSnp = "dbSNP";
     String cosmic = "COSMIC";
 
+    /*
+     * NB setting "id" (as returned by Ensembl for features in JSON format);
+     * previously "ID" (as returned for GFF3 format)
+     */
     SequenceFeature sf1 = new SequenceFeature("sequence_variant", "", 1, 1,
             0f, ensembl);
     sf1.setValue("alleles", "A,G"); // AAA -> GAA -> K/E
-    sf1.setValue("ID", "var1.125A>G");
+    sf1.setValue("id", "var1.125A>G");
 
     SequenceFeature sf2 = new SequenceFeature("sequence_variant", "", 1, 1,
             0f, dbSnp);
     sf2.setValue("alleles", "A,C"); // AAA -> CAA -> K/Q
-    sf2.setValue("ID", "var2");
+    sf2.setValue("id", "var2");
     sf2.setValue("clinical_significance", "Dodgy");
 
     SequenceFeature sf3 = new SequenceFeature("sequence_variant", "", 1, 1,
             0f, dbSnp);
     sf3.setValue("alleles", "A,T"); // AAA -> TAA -> stop codon
-    sf3.setValue("ID", "var3");
+    sf3.setValue("id", "var3");
     sf3.setValue("clinical_significance", "Bad");
 
     SequenceFeature sf4 = new SequenceFeature("sequence_variant", "", 3, 3,
             0f, cosmic);
     sf4.setValue("alleles", "A,G"); // AAA -> AAG synonymous
-    sf4.setValue("ID", "var4");
+    sf4.setValue("id", "var4");
     sf4.setValue("clinical_significance", "None");
 
     SequenceFeature sf5 = new SequenceFeature("sequence_variant", "", 3, 3,
             0f, ensembl);
     sf5.setValue("alleles", "A,T"); // AAA -> AAT -> K/N
-    sf5.setValue("ID", "sequence_variant:var5"); // prefix gets stripped off
+    sf5.setValue("id", "sequence_variant:var5"); // prefix gets stripped off
     sf5.setValue("clinical_significance", "Benign");
 
     SequenceFeature sf6 = new SequenceFeature("sequence_variant", "", 6, 6,
             0f, dbSnp);
     sf6.setValue("alleles", "T,C"); // TTT -> TTC synonymous
-    sf6.setValue("ID", "var6");
+    sf6.setValue("id", "var6");
 
     SequenceFeature sf7 = new SequenceFeature("sequence_variant", "", 8, 8,
             0f, cosmic);
     sf7.setValue("alleles", "C,A,G"); // CCC -> CAC,CGC -> P/H/R
-    sf7.setValue("ID", "var7");
+    sf7.setValue("id", "var7");
     sf7.setValue("clinical_significance", "Good");
 
     List<DnaVariant> codon1Variants = new ArrayList<>();
@@ -2149,9 +2154,9 @@ public class AlignmentUtilsTests
     assertEquals(1, sf.getEnd());
     assertEquals("nonsynonymous_variant", sf.getType());
     assertEquals("p.Lys1Asn", sf.getDescription());
-    assertEquals("var5", sf.getValue("ID"));
+    assertEquals("var5", sf.getValue("id"));
     assertEquals("Benign", sf.getValue("clinical_significance"));
-    assertEquals("ID=var5;clinical_significance=Benign",
+    assertEquals("id=var5;clinical_significance=Benign",
             sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
@@ -2165,9 +2170,9 @@ public class AlignmentUtilsTests
     assertEquals(1, sf.getEnd());
     assertEquals("nonsynonymous_variant", sf.getType());
     assertEquals("p.Lys1Gln", sf.getDescription());
-    assertEquals("var2", sf.getValue("ID"));
+    assertEquals("var2", sf.getValue("id"));
     assertEquals("Dodgy", sf.getValue("clinical_significance"));
-    assertEquals("ID=var2;clinical_significance=Dodgy", sf.getAttributes());
+    assertEquals("id=var2;clinical_significance=Dodgy", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "p.Lys1Gln var2|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var2",
@@ -2180,9 +2185,9 @@ public class AlignmentUtilsTests
     assertEquals(1, sf.getEnd());
     assertEquals("nonsynonymous_variant", sf.getType());
     assertEquals("p.Lys1Glu", sf.getDescription());
-    assertEquals("var1.125A>G", sf.getValue("ID"));
+    assertEquals("var1.125A>G", sf.getValue("id"));
     assertNull(sf.getValue("clinical_significance"));
-    assertEquals("ID=var1.125A>G", sf.getAttributes());
+    assertEquals("id=var1.125A>G", sf.getAttributes());
     assertEquals(1, sf.links.size());
     // link to variation is urlencoded
     assertEquals(
@@ -2196,9 +2201,9 @@ public class AlignmentUtilsTests
     assertEquals(1, sf.getEnd());
     assertEquals("stop_gained", sf.getType());
     assertEquals("Aaa/Taa", sf.getDescription());
-    assertEquals("var3", sf.getValue("ID"));
+    assertEquals("var3", sf.getValue("id"));
     assertEquals("Bad", sf.getValue("clinical_significance"));
-    assertEquals("ID=var3;clinical_significance=Bad", sf.getAttributes());
+    assertEquals("id=var3;clinical_significance=Bad", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "Aaa/Taa var3|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var3",
@@ -2211,9 +2216,9 @@ public class AlignmentUtilsTests
     assertEquals(1, sf.getEnd());
     assertEquals("synonymous_variant", sf.getType());
     assertEquals("aaA/aaG", sf.getDescription());
-    assertEquals("var4", sf.getValue("ID"));
+    assertEquals("var4", sf.getValue("id"));
     assertEquals("None", sf.getValue("clinical_significance"));
-    assertEquals("ID=var4;clinical_significance=None", sf.getAttributes());
+    assertEquals("id=var4;clinical_significance=None", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "aaA/aaG var4|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var4",
@@ -2226,9 +2231,9 @@ public class AlignmentUtilsTests
     assertEquals(2, sf.getEnd());
     assertEquals("synonymous_variant", sf.getType());
     assertEquals("ttT/ttC", sf.getDescription());
-    assertEquals("var6", sf.getValue("ID"));
+    assertEquals("var6", sf.getValue("id"));
     assertNull(sf.getValue("clinical_significance"));
-    assertEquals("ID=var6", sf.getAttributes());
+    assertEquals("id=var6", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "ttT/ttC var6|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var6",
@@ -2242,9 +2247,9 @@ public class AlignmentUtilsTests
     assertEquals(3, sf.getEnd());
     assertEquals("nonsynonymous_variant", sf.getType());
     assertEquals("p.Pro3Arg", sf.getDescription());
-    assertEquals("var7", sf.getValue("ID"));
+    assertEquals("var7", sf.getValue("id"));
     assertEquals("Good", sf.getValue("clinical_significance"));
-    assertEquals("ID=var7;clinical_significance=Good", sf.getAttributes());
+    assertEquals("id=var7;clinical_significance=Good", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "p.Pro3Arg var7|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var7",
@@ -2257,9 +2262,9 @@ public class AlignmentUtilsTests
     assertEquals(3, sf.getEnd());
     assertEquals("nonsynonymous_variant", sf.getType());
     assertEquals("p.Pro3His", sf.getDescription());
-    assertEquals("var7", sf.getValue("ID"));
+    assertEquals("var7", sf.getValue("id"));
     assertEquals("Good", sf.getValue("clinical_significance"));
-    assertEquals("ID=var7;clinical_significance=Good", sf.getAttributes());
+    assertEquals("id=var7;clinical_significance=Good", sf.getAttributes());
     assertEquals(1, sf.links.size());
     assertEquals(
             "p.Pro3His var7|http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=var7",
@@ -2680,7 +2685,7 @@ public class AlignmentUtilsTests
      * transcript 'CDS' is 10-16, 17-21
      * which is 'gene' 158-164, 210-214
      */
-    MapList toMap = toLoci.getMap();
+    MapList toMap = toLoci.getMapping();
     assertEquals(1, toMap.getFromRanges().size());
     assertEquals(2, toMap.getFromRanges().get(0).length);
     assertEquals(1, toMap.getFromRanges().get(0)[0]);
@@ -2703,7 +2708,7 @@ public class AlignmentUtilsTests
     AlignmentUtils.transferGeneLoci(from, map, to);
     assertEquals("GRCh38", toLoci.getAssemblyId());
     assertEquals("7", toLoci.getChromosomeId());
-    toMap = toLoci.getMap();
+    toMap = toLoci.getMapping();
     assertEquals("[ [1, 12] ] 1:1 to [ [158, 164] [210, 214] ]",
             toMap.toString());
   }