Merge branch 'kjvdh/features/PhylogenyViewer_tabbedsupport' into merge/2_11_2/kjvdh...
[jalview.git] / src / jalview / ext / forester / DataConversions.java
diff --git a/src/jalview/ext/forester/DataConversions.java b/src/jalview/ext/forester/DataConversions.java
new file mode 100644 (file)
index 0000000..be97e0e
--- /dev/null
@@ -0,0 +1,76 @@
+package jalview.ext.forester;
+
+import jalview.datamodel.SequenceI;
+import jalview.math.MatrixI;
+
+import org.forester.evoinference.matrix.distance.DistanceMatrix;
+import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
+
+public final class DataConversions
+{
+  public static org.forester.phylogeny.data.Sequence createForesterSequence(
+          final SequenceI jalviewSequence, final boolean sequenceIsAligned)
+  {
+    org.forester.phylogeny.data.Sequence foresterSeq = new org.forester.phylogeny.data.Sequence();
+
+    if (jalviewSequence.getDescription() != null)
+    {
+      foresterSeq.setName(jalviewSequence.getDescription());
+    }
+    foresterSeq.setMolecularSequenceAligned(sequenceIsAligned); // all tree
+                                                                // sequences
+                                                                // should
+                                                                // be aligned
+                                                                // already
+    foresterSeq.setMolecularSequence(jalviewSequence.getSequenceAsString());
+    if (jalviewSequence.isProtein()) // add checks for DNA or RNA (infer from
+                                     // forester itself?)
+    {
+      try
+      {
+        foresterSeq.setType("protein");
+      } catch (final PhyloXmlDataFormatException ignore)
+      {
+        // do nothing
+      }
+
+    }
+
+    return foresterSeq;
+
+  }
+
+
+  // public static org.forester.phylogeny.data.Accession
+  // createForesterAccession(
+  // SequenceI jalviewSequence)
+  // {
+  //
+  //
+  // org.forester.phylogeny.data.Accession foresterAcs = new
+  // org.forester.phylogeny.data.Accession();
+  //
+  // return foresterAcs;
+  // }
+
+  public static DistanceMatrix createForesterDistanceMatrix(
+          final MatrixI jalviewInputMatrix,
+          final String[] matrixIdentifiers)
+  {
+
+    DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
+            matrixIdentifiers);
+    return foresterMatrix;
+
+  }
+
+  public static DistanceMatrix createForesterDistanceMatrix(
+          final MatrixI jalviewInputMatrix,
+          final SequenceI[] matrixSequences)
+  {
+    DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix,
+            matrixSequences);
+    return foresterMatrix;
+
+  }
+}