X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FStockholmFileTest.java;h=9fdd7b90a82befc998c7841766bf972f3472f498;hb=af259f508805faf2da90585ee9a67cd7853bf5aa;hp=e86c8ad79f8852be2aa0ecb0a2a4208eaf546928;hpb=483abbfd34bb2e47698f4cb04e21531c2b11924a;p=jalview.git diff --git a/test/jalview/io/StockholmFileTest.java b/test/jalview/io/StockholmFileTest.java index e86c8ad..9fdd7b9 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,55 @@ 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().length == 1, + "Expected just one database reference to be added to sequence."); + assertTrue( + importedSeq.getDBRefs()[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 @@ -257,8 +303,8 @@ public class StockholmFileTest assertEquals("Threshold line not identical.", aa_original[i].threshold, aa_new[i].threshold); // graphGroup may differ, but pattern should be the same - Integer o_ggrp = new Integer(aa_original[i].graphGroup + 2); - Integer n_ggrp = new Integer(aa_new[i].graphGroup + 2); + Integer o_ggrp = Integer.valueOf(aa_original[i].graphGroup + 2); + Integer n_ggrp = Integer.valueOf(aa_new[i].graphGroup + 2); BitSet orig_g = orig_groups.get(o_ggrp); BitSet new_g = new_groups.get(n_ggrp); if (orig_g == null)