/* * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.datamodel.xdb.embl; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNull; import jalview.datamodel.DBRefEntry; import java.util.Vector; import org.testng.annotations.Test; public class EmblFileTest { @Test(groups = { "Functional" }) public void testGetEmblFile() { Vector entries = EmblTestHelper.getEmblFile().getEntries(); assertEquals(1, entries.size()); EmblEntry entry = entries.get(0); assertEquals("X07547", entry.getAccession()); assertEquals("C. trachomatis plasmid", entry.getDescription()); assertEquals("STD", entry.getDataClass()); assertEquals("PRO", entry.getTaxonomicDivision()); assertEquals("1999-02-10", entry.getLastUpdatedDate()); assertEquals("58", entry.getLastUpdatedRelease()); assertEquals("1988-11-10", entry.getFirstPublicDate()); assertEquals("18", entry.getFirstPublicRelease()); assertEquals("genomic DNA", entry.getMoleculeType()); assertEquals("1", entry.getSequenceVersion()); assertEquals("8", entry.getEntryVersion()); assertEquals("linear", entry.getTopology()); assertEquals("7499", entry.getSequenceLength()); /* * FIXME these assertions fail - values are null - why?? Adding or removing * attributes in the test XML modifies behaviour. eg. inserting an attribute * _before_ lastUpdated results in a null value in this field. */ assertEquals("1988-11-10", entry.getFirstPublicDate()); assertEquals("18", entry.getFirstPublicRelease()); assertEquals(2, entry.getKeywords().size()); assertEquals("plasmid", entry.getKeywords().get(0)); assertEquals("unidentified reading frame", entry.getKeywords().get(1)); /* * dbrefs */ assertEquals(2, entry.getDbRefs().size()); DBRefEntry dbref = entry.getDbRefs().get(0); assertEquals("EuropePMC", dbref.getSource()); assertEquals("PMC107176", dbref.getAccessionId()); assertEquals("9573186", dbref.getVersion()); dbref = entry.getDbRefs().get(1); assertEquals("MD5", dbref.getSource()); assertEquals("ac73317", dbref.getAccessionId()); // blank version has been converted to "0" assertEquals("0", dbref.getVersion()); /* * three sequence features for CDS */ assertEquals(3, entry.getFeatures().size()); /* * first CDS */ EmblFeature ef = entry.getFeatures().get(0); assertEquals("CDS", ef.getName()); assertEquals("complement(46..57)", ef.getLocation()); assertEquals(2, ef.getDbRefs().size()); dbref = ef.getDbRefs().get(0); assertEquals("UniProtKB/Swiss-Prot", dbref.getSource()); assertEquals("B0BCM4", dbref.getAccessionId()); assertEquals("2.1", dbref.getVersion()); dbref = ef.getDbRefs().get(1); assertEquals("UniProtKB/Swiss-Prot", dbref.getSource()); assertEquals("P0CE20", dbref.getAccessionId()); // blank version gets converted to "0": assertEquals("0", dbref.getVersion()); // CDS feature qualifiers assertEquals(3, ef.getQualifiers().size()); Qualifier q = ef.getQualifiers().get(0); assertEquals("note", q.getName()); assertEquals(2, q.getValues().length); assertEquals("ORF 8 (AA 1-330)", q.getValues()[0]); assertEquals("pickle", q.getValues()[1]); assertNull(q.getEvidence()); q = ef.getQualifiers().get(1); assertEquals("protein_id", q.getName()); assertEquals(1, q.getValues().length); assertEquals("CAA30420.1", q.getValues()[0]); q = ef.getQualifiers().get(2); assertEquals("translation", q.getName()); assertEquals(1, q.getValues().length); assertEquals("MLCF", q.getValues()[0]); assertEquals(1, q.getEvidence().length); assertEquals("Keith", q.getEvidence()[0]); /* * second CDS */ ef = entry.getFeatures().get(1); assertEquals("CDS", ef.getName()); assertEquals("4..15", ef.getLocation()); assertEquals(1, ef.getDbRefs().size()); dbref = ef.getDbRefs().get(0); assertEquals("UniProtKB/Swiss-Prot", dbref.getSource()); assertEquals("B0BCM3", dbref.getAccessionId()); assertEquals("0", dbref.getVersion()); assertEquals(2, ef.getQualifiers().size()); q = ef.getQualifiers().get(0); assertEquals("protein_id", q.getName()); assertEquals(1, q.getValues().length); assertEquals("CAA30421.1", q.getValues()[0]); q = ef.getQualifiers().get(1); assertEquals("translation", q.getName()); assertEquals(1, q.getValues().length); assertEquals("MSSS", q.getValues()[0]); /* * third CDS */ ef = entry.getFeatures().get(2); assertEquals("CDS", ef.getName()); assertEquals("join(4..6,10..15)", ef.getLocation()); assertNull(ef.getDbRefs()); assertEquals(2, ef.getQualifiers().size()); q = ef.getQualifiers().get(0); assertEquals("protein_id", q.getName()); assertEquals(1, q.getValues().length); assertEquals("CAA12345.6", q.getValues()[0]); q = ef.getQualifiers().get(1); assertEquals("translation", q.getName()); assertEquals(1, q.getValues().length); assertEquals("MSS", q.getValues()[0]); /* * Sequence - verify newline not converted to space (JAL-2029) */ EmblSequence seq = entry.getSequence(); assertEquals( "GGTATGTCCTCTAGTACAAACACCCCCAATATTGTGATATAATTAAAAACATAGCAT", seq.getSequence()); /* * getSequence() converts empty DBRefEntry.version to "0" */ assertEquals("0", entry.getDbRefs().get(1).getVersion()); assertEquals("0", entry.getFeatures().get(0).getDbRefs().get(1) .getVersion()); } }