X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FAverageDistanceEngineTest.java;h=0e80368e95d3ba5d13d66d006fa3f78e603daadd;hb=80b889f0cca49103e1b20ed806755a0719789906;hp=9550a21dc369c5381506a5700e339966fcd834d8;hpb=8288438dd58cfc2d1fe18a060afda0d647b85c32;p=jalview.git diff --git a/test/jalview/analysis/AverageDistanceEngineTest.java b/test/jalview/analysis/AverageDistanceEngineTest.java index 9550a21..0e80368 100644 --- a/test/jalview/analysis/AverageDistanceEngineTest.java +++ b/test/jalview/analysis/AverageDistanceEngineTest.java @@ -32,66 +32,78 @@ import jalview.ws.datamodel.alphafold.PAEContactMatrix; public class AverageDistanceEngineTest { - @BeforeClass(alwaysRun = true) - public void setUpJvOptionPane() + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + + @BeforeMethod(alwaysRun = true) + public void loadProperties() + { + Cache.loadProperties("test/jalview/bin/TestProps.jvprops"); + } + + @Test(groups = { "Functional" }) + public void testUPGMAEngine() throws Exception + { + AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded( + "examples/test_fab41.result/sample.a3m", DataSourceType.FILE); + AlignmentI seqs = af.getViewport().getAlignment(); + SequenceI target = seqs.getSequenceAt(0); + File testPAE = new File( + "examples/test_fab41.result/test_fab41_predicted_aligned_error_v1.json"); + List pae_obj = (List) Platform + .parseJSON(new FileInputStream(testPAE)); + if (pae_obj == null) { - JvOptionPane.setInteractiveMode(false); - JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + Assert.fail("JSON PAE file did not parse properly."); } + ContactMatrixI matrix = new PAEContactMatrix(target, + (Map) pae_obj.get(0)); + AlignmentAnnotation aa = target.addContactList(matrix); + System.out.println("Matrix has max=" + matrix.getMax() + " and min=" + + matrix.getMin()); + long start = System.currentTimeMillis(); + AverageDistanceEngine clusterer = new AverageDistanceEngine( + af.getViewport(), null, matrix); + System.out.println("built a tree in " + + (System.currentTimeMillis() - start) * 0.001 + " seconds."); + StringBuffer sb = new StringBuffer(); + System.out.println("Newick string\n" + + new jalview.io.NewickFile(clusterer.getTopNode(), true, true) + .print()); - @BeforeMethod(alwaysRun = true) - public void loadProperties() + double height = clusterer.findHeight(clusterer.getTopNode()); + // compute height fraction to cut + // PAE matrixes are absolute measure in angstrom, so + // cluster all regions within threshold (e.g. 2A) - if height above + // threshold. Otherwise all nodes are in one cluster + double thr = .2; + List groups; + if (height > thr) { - Cache.loadProperties("test/jalview/bin/TestProps.jvprops"); + float cut = (float) (thr / height); + System.out.println("Threshold " + cut + " for height=" + height); + groups = clusterer.groupNodes(cut); } - @Test(groups={"Functional"}) - public void testUPGMAEngine() throws Exception + else { - AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded("examples/test_fab41.result/sample.a3m",DataSourceType.FILE); - AlignmentI seqs = af.getViewport().getAlignment(); - SequenceI target = seqs.getSequenceAt(0); - File testPAE = new File("examples/test_fab41.result/test_fab41_predicted_aligned_error_v1.json"); - List pae_obj = (List) Platform.parseJSON(new FileInputStream(testPAE)); - if (pae_obj == null) - { - Assert.fail("JSON PAE file did not parse properly."); - } - ContactMatrixI matrix = new PAEContactMatrix(target, - (Map) pae_obj.get(0)); - AlignmentAnnotation aa = target.addContactList(matrix); - System.out.println("Matrix has max="+matrix.getMax()+" and min="+matrix.getMin()); - long start = System.currentTimeMillis(); - AverageDistanceEngine clusterer = new AverageDistanceEngine(af.getViewport(), null, matrix); - System.out.println("built a tree in "+(System.currentTimeMillis()-start)*0.001+" seconds."); - StringBuffer sb = new StringBuffer(); - System.out.println("Newick string\n"+ new jalview.io.NewickFile(clusterer.getTopNode(),true,true).print()); - - double height = clusterer.findHeight(clusterer.getTopNode()); - // compute height fraction to cut - // PAE matrixes are absolute measure in angstrom, so - // cluster all regions within threshold (e.g. 2A) - if height above threshold. Otherwise all nodes are in one cluster - double thr=.2; - List groups; - if (height>thr) - { - float cut = (float) (thr/height); - System.out.println("Threshold "+cut+" for height="+height); - groups = clusterer.groupNodes(cut); - } else{ - groups=new ArrayList(); - groups.add(clusterer.getTopNode()); - } - int n=1; - for (BinaryNode root:groups) + groups = new ArrayList(); + groups.add(clusterer.getTopNode()); + } + int n = 1; + for (BinaryNode root : groups) + { + System.out.println("Cluster " + n++); + for (BinaryNode leaf : clusterer.findLeaves(root)) { - System.out.println("Cluster "+n++); - for (BinaryNode leaf:clusterer.findLeaves(root)) - { - System.out.print(" "+leaf.getName()); - } - System.out.println("\\"); + System.out.print(" " + leaf.getName()); } - + System.out.println("\\"); } + } + }