import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.xml.binding.embl.EntryType.Feature.Qualifier;
import jalview.xml.binding.embl.XrefType;
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
public class EmblXmlSourceTest
{
new int[]
{ 1, 3 }, 3, 1);
- DBRefEntry[] dbrefs = dna.getDBRefs();
- assertEquals(7, dbrefs.length);
+ List<DBRefEntry> dbrefs = dna.getDBRefs();
+ assertEquals(7, dbrefs.size());
- DBRefEntry dbRefEntry = dbrefs[0];
+ DBRefEntry dbRefEntry = dbrefs.get(0);
assertEquals("EMBL", dbRefEntry.getSource());
assertEquals("X07547", dbRefEntry.getAccessionId());
assertEquals("1", dbRefEntry.getVersion());
assertNull(dbRefEntry.getMap().getTo());
assertEquals(mapToSelf, dbRefEntry.getMap().getMap());
- dbRefEntry = dbrefs[1];
+ dbRefEntry = dbrefs.get(1);
// DBRefEntry constructor puts dbSource in upper case
assertEquals("EUROPEPMC", dbRefEntry.getSource());
assertEquals("PMC107176", dbRefEntry.getAccessionId());
assertEquals("9573186", dbRefEntry.getVersion());
assertNull(dbRefEntry.getMap());
- dbRefEntry = dbrefs[2];
+ dbRefEntry = dbrefs.get(2);
assertEquals("MD5", dbRefEntry.getSource());
assertEquals("ac73317", dbRefEntry.getAccessionId());
assertEquals("0", dbRefEntry.getVersion());
assertNull(dbRefEntry.getMap());
- dbRefEntry = dbrefs[3];
+ dbRefEntry = dbrefs.get(3);
assertEquals("UNIPROT", dbRefEntry.getSource());
assertEquals("B0BCM4", dbRefEntry.getAccessionId());
assertSame(peptides.get(1), dbRefEntry.getMap().getTo());
assertEquals(cds1Map, dbRefEntry.getMap().getMap());
- dbRefEntry = dbrefs[4];
+ dbRefEntry = dbrefs.get(4);
assertEquals("UNIPROT", dbRefEntry.getSource());
assertEquals("P0CE20", dbRefEntry.getAccessionId());
assertSame(peptides.get(2), dbRefEntry.getMap().getTo());
assertEquals(cds1Map, dbRefEntry.getMap().getMap());
- dbRefEntry = dbrefs[5];
+ dbRefEntry = dbrefs.get(5);
assertEquals("UNIPROT", dbRefEntry.getSource());
assertEquals("B0BCM3", dbRefEntry.getAccessionId());
assertSame(peptides.get(4), dbRefEntry.getMap().getTo());
assertEquals(cds2Map, dbRefEntry.getMap().getMap());
- dbRefEntry = dbrefs[6];
+ dbRefEntry = dbrefs.get(6);
assertEquals("EMBLCDSPROTEIN", dbRefEntry.getSource());
assertEquals("CAA12345.6", dbRefEntry.getAccessionId());
assertSame(peptides.get(5), dbRefEntry.getMap().getTo());
// dbrefs for first CDS EMBL product CAA30420.1
dbrefs = peptides.get(0).getDBRefs();
- assertEquals(5, dbrefs.length);
- assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
- assertEquals("CAA30420.1", dbrefs[0].getAccessionId());
+ assertEquals(5, dbrefs.size());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+ assertEquals("CAA30420.1", dbrefs.get(0).getAccessionId());
// TODO: verify getPrimaryDBRefs() for peptide products
- assertEquals(cds1Map.getInverse(), dbrefs[0].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
- assertEquals("CAA30420.1", dbrefs[1].getAccessionId());
- assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
- assertEquals("CAA30420.1", dbrefs[2].getAccessionId());
- assertNull(dbrefs[2].getMap());
+ assertEquals(cds1Map.getInverse(), dbrefs.get(0).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+ assertEquals("CAA30420.1", dbrefs.get(1).getAccessionId());
+ assertEquals(proteinToCdsMap1, dbrefs.get(1).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+ assertEquals("CAA30420.1", dbrefs.get(2).getAccessionId());
+ assertNull(dbrefs.get(2).getMap());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"),
- dbrefs[3]);
- assertNull(dbrefs[3].getMap());
+ dbrefs.get(3));
+ assertNull(dbrefs.get(3).getMap());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"),
- dbrefs[4]);
- assertNull(dbrefs[4].getMap());
+ dbrefs.get(4));
+ assertNull(dbrefs.get(4).getMap());
// dbrefs for first CDS first Uniprot xref
dbrefs = peptides.get(1).getDBRefs();
- assertEquals(2, dbrefs.length);
+ assertEquals(2, dbrefs.size());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"),
- dbrefs[0]);
- assertNull(dbrefs[0].getMap());
- assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
- assertEquals("X07547", dbrefs[1].getAccessionId());
- assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap());
+ dbrefs.get(0));
+ assertNull(dbrefs.get(0).getMap());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+ assertEquals("X07547", dbrefs.get(1).getAccessionId());
+ assertEquals(cds1Map.getInverse(), dbrefs.get(1).getMap().getMap());
// dbrefs for first CDS second Uniprot xref
dbrefs = peptides.get(2).getDBRefs();
- assertEquals(2, dbrefs.length);
+ assertEquals(2, dbrefs.size());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"),
- dbrefs[0]);
- assertNull(dbrefs[0].getMap());
- assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
- assertEquals("X07547", dbrefs[1].getAccessionId());
- assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap());
+ dbrefs.get(0));
+ assertNull(dbrefs.get(0).getMap());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+ assertEquals("X07547", dbrefs.get(1).getAccessionId());
+ assertEquals(cds1Map.getInverse(), dbrefs.get(1).getMap().getMap());
// dbrefs for second CDS EMBL product CAA30421.1
dbrefs = peptides.get(3).getDBRefs();
- assertEquals(4, dbrefs.length);
- assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
- assertEquals("CAA30421.1", dbrefs[0].getAccessionId());
- assertEquals(cds2Map.getInverse(), dbrefs[0].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
- assertEquals("CAA30421.1", dbrefs[1].getAccessionId());
- assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
- assertEquals("CAA30421.1", dbrefs[2].getAccessionId());
- assertNull(dbrefs[2].getMap());
+ assertEquals(4, dbrefs.size());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+ assertEquals("CAA30421.1", dbrefs.get(0).getAccessionId());
+ assertEquals(cds2Map.getInverse(), dbrefs.get(0).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+ assertEquals("CAA30421.1", dbrefs.get(1).getAccessionId());
+ assertEquals(proteinToCdsMap1, dbrefs.get(1).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+ assertEquals("CAA30421.1", dbrefs.get(2).getAccessionId());
+ assertNull(dbrefs.get(2).getMap());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"),
- dbrefs[3]);
- assertNull(dbrefs[3].getMap());
+ dbrefs.get(3));
+ assertNull(dbrefs.get(3).getMap());
// dbrefs for second CDS second Uniprot xref
dbrefs = peptides.get(4).getDBRefs();
- assertEquals(2, dbrefs.length);
+ assertEquals(2, dbrefs.size());
assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"),
- dbrefs[0]);
- assertNull(dbrefs[0].getMap());
- assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
- assertEquals("X07547", dbrefs[1].getAccessionId());
- assertEquals(cds2Map.getInverse(), dbrefs[1].getMap().getMap());
+ dbrefs.get(0));
+ assertNull(dbrefs.get(0).getMap());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+ assertEquals("X07547", dbrefs.get(1).getAccessionId());
+ assertEquals(cds2Map.getInverse(), dbrefs.get(1).getMap().getMap());
// dbrefs for third CDS inferred EMBL product CAA12345.6
dbrefs = peptides.get(5).getDBRefs();
- assertEquals(3, dbrefs.length);
- assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
- assertEquals("CAA12345.6", dbrefs[0].getAccessionId());
- assertEquals(cds3Map.getInverse(), dbrefs[0].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
- assertEquals("CAA12345.6", dbrefs[1].getAccessionId());
- assertEquals(proteinToCdsMap2, dbrefs[1].getMap().getMap());
- assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
- assertEquals("CAA12345.6", dbrefs[2].getAccessionId());
- assertNull(dbrefs[2].getMap());
+ assertEquals(3, dbrefs.size());
+ assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+ assertEquals("CAA12345.6", dbrefs.get(0).getAccessionId());
+ assertEquals(cds3Map.getInverse(), dbrefs.get(0).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+ assertEquals("CAA12345.6", dbrefs.get(1).getAccessionId());
+ assertEquals(proteinToCdsMap2, dbrefs.get(1).getMap().getMap());
+ assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+ assertEquals("CAA12345.6", dbrefs.get(2).getAccessionId());
+ assertNull(dbrefs.get(2).getMap());
}
@Test(groups = "Functional")
// exact length match:
assertSame(exons, EmblXmlSource.adjustForProteinLength(6, exons));
- // match if we assume exons include stop codon not in protein:
- assertSame(exons, EmblXmlSource.adjustForProteinLength(5, exons));
+ // truncate last exon by 3bp (e.g. stop codon)
+ int[] truncated = EmblXmlSource.adjustForProteinLength(5, exons);
+ assertEquals("[11, 15, 21, 25, 31, 35]", Arrays.toString(truncated));
// truncate last exon by 6bp
- int[] truncated = EmblXmlSource.adjustForProteinLength(4, exons);
+ truncated = EmblXmlSource.adjustForProteinLength(4, exons);
assertEquals("[11, 15, 21, 25, 31, 32]", Arrays.toString(truncated));
// remove last exon and truncate preceding by 1bp