X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2FPDBSequenceFetcherTest.java;h=27d2643eea1254bf08225b9510fb07c79307be6a;hb=834ebffc22ed9e72b139cadf5652d1a7006da9b3;hp=6f0bf26df232e5708a58212280c55cd19b97d437;hpb=2bf5ab62374818b10dc4842137d02abb57e140aa;p=jalview.git diff --git a/test/jalview/ws/PDBSequenceFetcherTest.java b/test/jalview/ws/PDBSequenceFetcherTest.java index 6f0bf26..27d2643 100644 --- a/test/jalview/ws/PDBSequenceFetcherTest.java +++ b/test/jalview/ws/PDBSequenceFetcherTest.java @@ -1,60 +1,122 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 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.ws; - -import static org.junit.Assert.*; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.SequenceI; -import jalview.ws.seqfetcher.DbSourceProxy; - -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -public class PDBSequenceFetcherTest -{ - - SequenceFetcher sf; - - @Before - public void setUp() throws Exception - { - sf = new SequenceFetcher(false); - } - - @Test - public void testRnaSeqRetrieve() throws Exception - { - List sps = sf.getSourceProxy("PDB"); - AlignmentI response = sps.get(0).getSequenceRecords("2GIS"); - assertTrue(response != null); - assertTrue(response.getHeight() == 1); - for (SequenceI sq : response.getSequences()) - { - assertTrue("No annotation transfered to sequence.", - sq.getAnnotation().length > 0); - assertTrue("No PDBEntry on sequence.", sq.getPDBId().size() > 0); - assertTrue("No RNA annotation on sequence.", sq.getRNA() != null); - } - } - -} +/* + * 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.ws; + +import static org.testng.AssertJUnit.assertTrue; + +import jalview.bin.Cache; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.SequenceI; +import jalview.structure.StructureViewSettings; +import jalview.ws.seqfetcher.DbSourceProxy; + +import java.util.List; + +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class PDBSequenceFetcherTest +{ + + SequenceFetcher sf; + + @BeforeMethod(alwaysRun = true) + public void setUp() throws Exception + { + // ensure 'add annotation from structure' is selected + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("ADD_SS_ANN", + Boolean.TRUE.toString()); + + sf = new SequenceFetcher(false); + } + + /** + * Test that RNA structure can be added by a call to the RNAML service. + * + * Note this test depends on http://arn-ibmc.in2p3.fr/api/compute/2d which is + * not always reliable. + * + * @throws Exception + */ + @Test(groups = { "Network" }, enabled = true) + public void testRnaSeqRetrieve() throws Exception + { + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("DEFAULT_STRUCTURE_FORMAT", + "PDB"); + List sps = sf.getSourceProxy("PDB"); + AlignmentI response = sps.get(0).getSequenceRecords("2GIS"); + assertTrue(response != null); + assertTrue(response.getHeight() == 1); + for (SequenceI sq : response.getSequences()) + { + assertTrue("No annotation transfered to sequence.", + sq.getAnnotation().length > 0); + assertTrue("No PDBEntry on sequence.", + sq.getAllPDBEntries().size() > 0); + assertTrue( + "No RNA annotation on sequence, possibly http://arn-ibmc.in2p3.fr/api/compute/2d not available?", + sq.getRNA() != null); + } + } + + @Test(groups = { "Network" }, enabled = true) + public void testPdbSeqRetrieve() throws Exception + { + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + StructureViewSettings.setCurrentDefaultFormat("PDB"); + + testRetrieveProteinSeqFromPDB(); + } + + @Test(groups = { "Network" }, enabled = true) + public void testmmCifSeqRetrieve() throws Exception + { + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + StructureViewSettings.setCurrentDefaultFormat("mmCIF"); + testRetrieveProteinSeqFromPDB(); + } + + private void testRetrieveProteinSeqFromPDB() throws Exception + { + List sps = sf.getSourceProxy("PDB"); + AlignmentI response = sps.get(0).getSequenceRecords("1QIP"); + assertTrue(response != null); + assertTrue(response.getHeight() == 4); + for (SequenceI sq : response.getSequences()) + { + assertTrue("No annotation transfered to sequence.", + sq.getAnnotation().length > 0); + assertTrue("No PDBEntry on sequence.", + sq.getAllPDBEntries().size() > 0); + org.testng.Assert + .assertEquals(sq.getEnd() - sq.getStart() + 1, + sq.getLength(), + "Sequence start/end doesn't match number of residues in sequence"); + } + } + +}