From e96ca940b22241bb3b03555dde23a43cc4f844a7 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Fri, 14 Feb 2020 13:49:02 +0000 Subject: [PATCH] JAL-3529 failing test for bug --- test/jalview/io/StockholmFileTest.java | 41 +++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/test/jalview/io/StockholmFileTest.java b/test/jalview/io/StockholmFileTest.java index ba4312a..d8d524f 100644 --- a/test/jalview/io/StockholmFileTest.java +++ b/test/jalview/io/StockholmFileTest.java @@ -20,17 +20,22 @@ */ package jalview.io; +import static org.testng.Assert.assertTrue; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; import static org.testng.AssertJUnit.fail; +import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.JvOptionPane; +import jalview.util.DBRefUtils; import java.io.File; import java.util.Arrays; @@ -93,14 +98,44 @@ public class StockholmFileTest } /** + * JAL-3529 - verify uniprot refs for sequences are output for sequences + * retrieved via Pfam + */ + @Test(groups = { "Functional" }) + public void dbrefOutput() throws Exception + { + // sequences retrieved in a Pfam domain alignment also have a PFAM database + // reference + SequenceI sq = new Sequence("FER2_SPIOL", "AASSDDDFFF"); + sq.addDBRef(new DBRefEntry("UNIPROT", "1", "P00224")); + sq.addDBRef(new DBRefEntry("PFAM", "1", "P00224.1")); + sq.addDBRef(new DBRefEntry("PFAM", "1", "PF00111")); + AppletFormatAdapter af = new AppletFormatAdapter(); + String toStockholm = af.formatSequences(FileFormat.Stockholm, + new Alignment(new SequenceI[] + { sq }), false); + assertTrue(toStockholm.indexOf("P00224") > -1, + "Couldn't locate UNIPROT Accession in generated Stockholm file."); + AlignmentI fromStockholm = af.readFile(toStockholm, + DataSourceType.PASTE, FileFormat.Stockholm); + SequenceI importedSeq = fromStockholm.getSequenceAt(0); + List dbrefs = DBRefUtils.searchRefs(importedSeq.getDBRefs(), + "P00224"); + assertTrue(dbrefs.size() == 1, + "Couldn't find Uniprot DBRef on re-imported sequence."); + + } + + /** * test alignment data in given file can be imported, exported and reimported * with no dataloss * * @param f - * - source datafile (IdentifyFile.identify() should work with it) + * - source datafile (IdentifyFile.identify() + * should work with it) * @param ioformat - * - label for IO class used to write and read back in the data from - * f + * - label for IO class used to write and read + * back in the data from f * @param ignoreFeatures * @param ignoreRowVisibility * @param allowNullAnnotations -- 1.7.10.2