JAL-2805 added derive sequence when creating jalview sequence
[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.deriveSequence();
51
52
53   }
54
55
56   // public static org.forester.phylogeny.data.Accession
57   // createForesterAccession(
58   // SequenceI jalviewSequence)
59   // {
60   //
61   //
62   // org.forester.phylogeny.data.Accession foresterAcs = new
63   // org.forester.phylogeny.data.Accession();
64   //
65   // return foresterAcs;
66   // }
67
68   public static DistanceMatrix createForesterDistanceMatrix(
69           final MatrixI jalviewInputMatrix,
70           final String[] matrixIdentifiers)
71   {
72
73     DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
74             matrixIdentifiers);
75     return foresterMatrix;
76
77   }
78
79   public static DistanceMatrix createForesterDistanceMatrix(
80           final MatrixI jalviewInputMatrix,
81           final SequenceI[] matrixSequences)
82   {
83     DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
84             matrixSequences);
85     return foresterMatrix;
86
87   }
88
89
90 }