22c4df048b2c899fc62eec376a1b1da491091d9e
[jalview.git] / src / jalview / ext / forester / DataConversions.java
1 package jalview.ext.forester;
2
3 import jalview.datamodel.SequenceI;
4 import jalview.ext.archaeopteryx.TreeNode;
5 import jalview.ext.treeviewer.ExternalTreeNodeI;
6 import jalview.math.MatrixI;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 import org.forester.evoinference.matrix.distance.DistanceMatrix;
12 import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
13 import org.forester.phylogeny.PhylogenyNode;
14
15 public final class DataConversions
16 {
17   public static org.forester.phylogeny.data.Sequence createForesterSequence(
18           final SequenceI jalviewSequence, final boolean sequenceIsAligned)
19   {
20     org.forester.phylogeny.data.Sequence foresterSeq = new org.forester.phylogeny.data.Sequence();
21
22     if (jalviewSequence.getDescription() != null)
23     {
24       foresterSeq.setName(jalviewSequence.getDescription());
25     }
26     foresterSeq.setMolecularSequenceAligned(sequenceIsAligned); // all tree
27                                                                 // sequences
28                                                                 // should
29                                                                 // be aligned
30                                                                 // already
31     foresterSeq.setMolecularSequence(jalviewSequence.getSequenceAsString());
32     if (jalviewSequence.isProtein()) // add checks for DNA or RNA (infer from
33                                      // forester itself?)
34     {
35       try
36       {
37         foresterSeq.setType("protein");
38       } catch (final PhyloXmlDataFormatException ignore)
39       {
40         // do nothing
41       }
42
43     }
44
45     return foresterSeq;
46
47   }
48
49
50   // public static org.forester.phylogeny.data.Accession
51   // createForesterAccession(
52   // SequenceI jalviewSequence)
53   // {
54   //
55   //
56   // org.forester.phylogeny.data.Accession foresterAcs = new
57   // org.forester.phylogeny.data.Accession();
58   //
59   // return foresterAcs;
60   // }
61
62   public static DistanceMatrix createForesterDistanceMatrix(
63           final MatrixI jalviewInputMatrix,
64           final String[] matrixIdentifiers)
65   {
66
67     DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
68             matrixIdentifiers);
69     return foresterMatrix;
70
71   }
72
73   public static DistanceMatrix createForesterDistanceMatrix(
74           final MatrixI jalviewInputMatrix,
75           final SequenceI[] matrixSequences)
76   {
77     DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
78             matrixSequences);
79     return foresterMatrix;
80
81   }
82
83   public static List<ExternalTreeNodeI> getConvertedTreeNodes(
84           List<PhylogenyNode> aptxNodes)
85   {
86     List<ExternalTreeNodeI> jalviewNodes = new ArrayList<>();
87     for (PhylogenyNode aptxNode : aptxNodes)
88     {
89       jalviewNodes.add(new TreeNode(aptxNode));
90     }
91     return jalviewNodes;
92   }
93 }