X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FStockholmFileTest.java;h=bb822a06cabf7b70ab54d9d7540e4281d35e2dcf;hb=c794c5033adeee182b03a5ea92c0a7495a29661f;hp=96c6828165e9090da289e896d86bdbb96cf4112a;hpb=77e9234c6d0a7695cb959d4f6227e4ebc9bf4575;p=jalview.git diff --git a/test/jalview/io/StockholmFileTest.java b/test/jalview/io/StockholmFileTest.java index 96c6828..bb822a0 100644 --- a/test/jalview/io/StockholmFileTest.java +++ b/test/jalview/io/StockholmFileTest.java @@ -20,18 +20,12 @@ */ 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.AlignmentAnnotation; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.Annotation; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceI; -import jalview.gui.JvOptionPane; - import java.io.File; import java.util.Arrays; import java.util.BitSet; @@ -45,6 +39,17 @@ import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +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; + public class StockholmFileTest { @@ -93,14 +98,57 @@ 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); + System.out.println(toStockholm); + // bleh - java.util.Regex sucks + assertTrue( + Pattern.compile( + "^#=GS\\s+FER2_SPIOL(/\\d+-\\d+)?\\s+AC\\s+P00224$", + Pattern.MULTILINE).matcher(toStockholm) + .find(), + "Couldn't locate UNIPROT Accession in generated Stockholm file."); + AlignmentI fromStockholm = af.readFile(toStockholm, + DataSourceType.PASTE, FileFormat.Stockholm); + SequenceI importedSeq = fromStockholm.getSequenceAt(0); + assertTrue(importedSeq.getDBRefs() + .size() == 1, + "Expected just one database reference to be added to sequence."); + assertTrue( + importedSeq.getDBRefs().get(0).getAccessionId().indexOf( + " ") == -1, + "Spaces were found in accession ID."); + 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