1 package jalview.analysis;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
10 import org.junit.Assert;
11 import org.testng.annotations.BeforeClass;
12 import org.testng.annotations.BeforeMethod;
13 import org.testng.annotations.Test;
15 import jalview.bin.Cache;
16 import jalview.bin.Console;
17 import jalview.datamodel.AlignmentAnnotation;
18 import jalview.datamodel.AlignmentI;
19 import jalview.datamodel.ContactMatrixI;
20 import jalview.datamodel.SequenceI;
21 import jalview.gui.AlignFrame;
22 import jalview.gui.JvOptionPane;
23 import jalview.io.DataSourceType;
24 import jalview.io.FastaFile;
25 import jalview.io.FileLoader;
26 import jalview.io.FormatAdapter;
27 import jalview.util.Platform;
28 import jalview.ws.datamodel.alphafold.PAEContactMatrix;
30 public class AverageDistanceEngineTest
33 @BeforeClass(alwaysRun = true)
34 public void setUpJvOptionPane()
36 JvOptionPane.setInteractiveMode(false);
37 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
40 @BeforeMethod(alwaysRun = true)
41 public void loadProperties()
43 Cache.loadProperties("test/jalview/bin/TestProps.jvprops");
46 public void testUPGMAEngine() throws Exception
48 AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded("examples/test_fab41.result/sample.a3m",DataSourceType.FILE);
49 AlignmentI seqs = af.getViewport().getAlignment();
50 SequenceI target = seqs.getSequenceAt(0);
51 File testPAE = new File("examples/test_fab41.result/test_fab41_predicted_aligned_error_v1.json");
52 List<Object> pae_obj = (List<Object>) Platform.parseJSON(new FileInputStream(testPAE));
55 Assert.fail("JSON PAE file did not parse properly.");
57 ContactMatrixI matrix = new PAEContactMatrix(target,
58 (Map<String, Object>) pae_obj.get(0));
59 AlignmentAnnotation aa = target.addContactList(matrix);
60 long start = System.currentTimeMillis();
61 AverageDistanceEngine clusterer = new AverageDistanceEngine(af.getViewport(), null, matrix);
62 System.out.println("built a tree in "+(System.currentTimeMillis()-start)*0.001+" seconds.");
63 StringBuffer sb = new StringBuffer();
64 System.out.println("Newick string\n"+ new jalview.io.NewickFile(clusterer.getTopNode(),true,true).print());