X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FAverageDistanceEngineTest.java;h=760e0ba9ff6b8ae2f20462af4b265038bec38bed;hb=refs%2Fheads%2Fimprovement%2FJAL-3847_some_attempts_to_set_gradle_and_groovy_versions;hp=3697efd8c550f2100383c781c77871cae664813d;hpb=8fbc01654883e68f8843ad6632efaabfaf21692e;p=jalview.git diff --git a/test/jalview/analysis/AverageDistanceEngineTest.java b/test/jalview/analysis/AverageDistanceEngineTest.java index 3697efd..760e0ba 100644 --- a/test/jalview/analysis/AverageDistanceEngineTest.java +++ b/test/jalview/analysis/AverageDistanceEngineTest.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -16,6 +17,7 @@ import jalview.bin.Cache; import jalview.bin.Console; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.BinaryNode; import jalview.datamodel.ContactMatrixI; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; @@ -30,39 +32,77 @@ 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, false); + 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) + { + float cut = (float) (thr / height); + System.out.println("Threshold " + cut + " for height=" + height); + groups = clusterer.groupNodes(cut); + } + else { - Cache.loadProperties("test/jalview/bin/TestProps.jvprops"); + groups = new ArrayList(); + groups.add(clusterer.getTopNode()); } - @Test - public void testUPGMAEngine() throws Exception + int n = 1; + for (BinaryNode root : groups) { - 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) + System.out.println("Cluster " + n++); + for (BinaryNode leaf : clusterer.findLeaves(root)) { - Assert.fail("JSON PAE file did not parse properly."); + System.out.print(" " + leaf.getName()); } - ContactMatrixI matrix = new PAEContactMatrix(target, - (Map) pae_obj.get(0)); - AlignmentAnnotation aa = target.addContactList(matrix); - 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()); - + System.out.println("\\"); } + } }