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