/* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) * Copyright (C) 2015 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.assertFalse; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertTrue; import jalview.datamodel.DBRefEntry; import java.io.StringReader; import java.util.Vector; import org.testng.annotations.Test; public class EmblFileTest { // adapted from http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/embl/x53828/emblxml private static final String TESTDATA = "" + "" + "" + "Chicken LDH-A mRNA for lactate dehydrogenase A chain (EC 1.1.1.27)" + "L-lactate dehydrogenasechutney" + "" + "" + "L-lactate dehydrogenase A-chainpickle" + "MSLKDHLIHNKeith" + "" + "" + "601058" + "" + "GTGACG"; @Test(groups = { "Functional" }) public void testGetEmblFile() { Vector entries = EmblFile.getEmblFile( new StringReader(TESTDATA)).getEntries(); assertEquals(1, entries.size()); EmblEntry entry = entries.get(0); assertEquals("X53828", entry.getAccession()); assertEquals( "Chicken LDH-A mRNA for lactate dehydrogenase A chain (EC 1.1.1.27)", entry.getDesc()); assertEquals("2005-04-18", entry.getLastUpdated()); /* * 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("25", entry.getRCreated()); // assertEquals("83", entry.getRLastUpdated()); assertEquals(2, entry.getKeywords().size()); assertEquals("L-lactate dehydrogenase", entry.getKeywords().get(0)); assertEquals("chutney", entry.getKeywords().get(1)); /* * dbrefs */ assertEquals(1, entry.getDbRefs().size()); DBRefEntry dbref = entry.getDbRefs().get(0); assertEquals("EuropePMC", dbref.getSource()); assertEquals("PMC1460223", dbref.getAccessionId()); assertEquals("9649548", dbref.getVersion()); /* * sequence features */ assertEquals(1, entry.getFeatures().size()); EmblFeature ef = entry.getFeatures().get(0); assertEquals("CDS", ef.getName()); assertEquals(2, ef.getDbRefs().size()); dbref = ef.getDbRefs().get(0); assertEquals("GOA", dbref.getSource()); assertEquals("P00340", dbref.getAccessionId()); assertEquals("2.1", dbref.getVersion()); dbref = ef.getDbRefs().get(1); assertEquals("InterPro", dbref.getSource()); assertEquals("IPR001236", dbref.getAccessionId()); assertEquals("", dbref.getVersion()); assertEquals(2, ef.getQualifiers().size()); // feature qualifiers Qualifier q = ef.getQualifiers().get(0); assertEquals("note", q.getName()); assertEquals(2, q.getValues().length); assertEquals("L-lactate dehydrogenase A-chain", q.getValues()[0]); assertEquals("pickle", q.getValues()[1]); assertNull(q.getEvidence()); q = ef.getQualifiers().get(1); assertEquals("translation", q.getName()); assertEquals(1, q.getValues().length); assertEquals("MSLKDHLIHN", q.getValues()[0]); assertEquals(1, q.getEvidence().length); assertEquals("Keith", q.getEvidence()[0]); // feature locations assertEquals(1, ef.getLocations().size()); EmblFeatureLocations fl = ef.getLocations().get(0); assertEquals("single", fl.getLocationType()); assertTrue(fl.isLocationComplement()); assertEquals(1, fl.getLocElements().size()); EmblFeatureLocElement le = fl.getLocElements().get(0); assertEquals("range", le.getType()); assertEquals("X53828", le.getAccession()); assertEquals("1", le.getVersion()); assertFalse(le.isComplement()); assertEquals(2, le.getBasePositions().length); BasePosition bp = le.getBasePositions()[0]; assertEquals("simple", bp.getType()); assertEquals("60", bp.getPos()); bp = le.getBasePositions()[1]; assertEquals("join", bp.getType()); assertEquals("1058", bp.getPos()); /* * Sequence */ EmblSequence seq = entry.getSequence(); assertEquals("mRNA", seq.getType()); assertEquals("2", seq.getVersion()); assertEquals("GTGACG", seq.getSequence()); } }