X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fws%2Fjabaws%2FRNAStructExportImport.java;fp=test%2Fjalview%2Fws%2Fjabaws%2FRNAStructExportImport.java;h=510b913e31c27e16c669a0928a9c2b24a82d1e5a;hb=24c4dce749cbfccc4435e442090d04013e3e1b99;hp=0000000000000000000000000000000000000000;hpb=c7aec7d18ae7567c160be71b318139a9aa2b1c32;p=jalview.git diff --git a/test/jalview/ws/jabaws/RNAStructExportImport.java b/test/jalview/ws/jabaws/RNAStructExportImport.java new file mode 100644 index 0000000..510b913 --- /dev/null +++ b/test/jalview/ws/jabaws/RNAStructExportImport.java @@ -0,0 +1,198 @@ +package jalview.ws.jabaws; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Vector; + +import jalview.api.AlignCalcManagerI; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.Annotation; +import jalview.io.AnnotationFile; +import jalview.io.FormatAdapter; +import jalview.io.StockholmFileTest; +import jalview.ws.jws2.AADisorderClient; +import jalview.ws.jws2.Jws2Discoverer; +import jalview.ws.jws2.RNAalifoldClient; +import jalview.ws.jws2.jabaws2.Jws2Instance; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class RNAStructExportImport +{ + public static String testseqs = "examples/unfolded_RF00031.aln"; + + public static Jws2Discoverer disc; + + public static Jws2Instance rnaalifoldws; + + jalview.ws.jws2.RNAalifoldClient alifoldClient; + + public static jalview.gui.AlignFrame af = null; + + @BeforeClass + public static void setUpBeforeClass() throws Exception + { + + + System.out.println("test1"); + + jalview.bin.Cache.initLogger(); + disc = JalviewJabawsTestUtils.getJabawsDiscoverer(); + + System.out.println("test2"); + + for (Jws2Instance svc : disc.getServices()) + { + + System.out.println("Service type: " + svc.serviceType); + + if (svc.getServiceTypeURI().toLowerCase().contains("rnaalifoldws")) + { + rnaalifoldws = svc; + } + } + + System.out.println("State of rnaalifoldws: " + rnaalifoldws); + + if (rnaalifoldws == null) System.exit(0); + + System.out.println("test3"); + + jalview.io.FileLoader fl = new jalview.io.FileLoader(false); + + // Following this method a long way we find some (probably important!) + // code that I have just commented out! + af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE); + + assertNotNull("Couldn't load test data ('" + testseqs + "')", af); + + System.out.println("test5"); + + } + + @AfterClass + public static void tearDownAfterClass() throws Exception + { + if (af != null) + { + af.setVisible(false); + af.dispose(); + } + } + + /** + * test for patches to JAL-1294 + */ + @Test + public void testRNAStructExport() + { + alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, null); + + System.out.println("Service action text:\n" + alifoldClient.getServiceActionText()); + + + System.out.println("START FOLDING"); + af.getViewport().getCalcManager().startWorker(alifoldClient); + + + do + { + try + { + Thread.sleep(50); + } catch (InterruptedException x) + { + } + ; + } while (af.getViewport().getCalcManager().isWorking()); + + System.out.println("END FOLDING"); + + // ALL FOR TESTING + AlignCalcManagerI test = af.getViewport().getCalcManager(); + RNAalifoldClient testWorker = ((RNAalifoldClient)test.getRegisteredWorkersOfClass(RNAalifoldClient.class).get(0)); + testWorker.updateResultAnnotation(true); + System.out.println("Annotation from RNAalifoldclient"); + for (Annotation ann : testWorker.ourAnnots.get(0).annotations) { + System.out.print(ann.toString()+"|"); + } + System.out.println(); + + + // Why are the AlignViewport.alignment and the RNAalifoldClient alignment + // Annotations different + AlignmentI orig_alig = af.getViewport().getAlignment(); + + System.out.println("orig_alig has class: " + orig_alig.getClass()); + + // some time before here but after the RNAalifoldClient Update method + // the alignment annotation is replaced.... + + System.out.println("orig_alig annotation:\n"); + for (AlignmentAnnotation an : orig_alig.getAlignmentAnnotation()) { + for (Annotation ann : an.annotations) { + System.out.print(ann.toString()+"|"); + } + System.out.println(); + } + + + testAnnotationFileIO("Testing RNAalifold Annotation IO", orig_alig); + + } + + public static void testAnnotationFileIO(String testname, AlignmentI al) + { + try + { + String aligfileout = new FormatAdapter().formatSequences("CLUSTAL", + al.getSequencesArray()); + + // test +// System.out.println("aligfileout:\n" + aligfileout); + + String anfileout = new AnnotationFile().printAnnotations( + al.getAlignmentAnnotation(), al.getGroups(), + al.getProperties()); + assertTrue( + "Test " + + testname + + "\nAlignment annotation file was not regenerated. Null string", + anfileout != null); + assertTrue( + "Test " + + testname + + "\nAlignment annotation file was not regenerated. Empty string", + anfileout.length() > "JALVIEW_ANNOTATION".length()); + + System.out.println("Output annotation file:\n" + anfileout + + "\n<