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) { if (jalviewInputMatrix.width() != jalviewInputMatrix.height()) { // some kind of warning? } DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix, matrixIdentifiers); return foresterMatrix; } public static DistanceMatrix createForesterDistanceMatrix( final MatrixI jalviewInputMatrix, final SequenceI[] matrixSequences) { if (jalviewInputMatrix.width() != jalviewInputMatrix.height()) { // some kind of warning? } DistanceMatrix foresterMatrix = new ForesterMatrix(jalviewInputMatrix, matrixSequences); return foresterMatrix; } }