Skip to content

Commit 8a0da08

Browse files
committed
Function to clone forester DistanceMatrix
1 parent 9cabf41 commit 8a0da08

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

biojava-phylo/src/main/java/org/biojava/nbio/phylo/ForesterWrapper.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.biojava.nbio.core.sequence.io.template.FastaHeaderFormatInterface;
99
import org.biojava.nbio.core.sequence.template.Compound;
1010
import org.biojava.nbio.core.sequence.template.Sequence;
11+
import org.forester.evoinference.matrix.distance.BasicSymmetricalDistanceMatrix;
12+
import org.forester.evoinference.matrix.distance.DistanceMatrix;
1113
import org.forester.io.parsers.FastaParser;
1214
import org.forester.io.writers.PhylogenyWriter;
1315
import org.forester.msa.Msa;
@@ -77,5 +79,25 @@ public static String getNewickString(Phylogeny phylo, boolean simpleNewick,
7779
writeDistances);
7880
return newickString.toString();
7981
}
82+
83+
/**
84+
* Helper function to clone a forester DistanceMatrix.
85+
*
86+
* @param distM forester DistanceMatrix
87+
* @return identical copy of the forester DistanceMatrix
88+
*/
89+
public static DistanceMatrix cloneDM(DistanceMatrix distM) {
90+
91+
int n = distM.getSize();
92+
DistanceMatrix cloneDM = new BasicSymmetricalDistanceMatrix(n);
93+
94+
for (int i = 0; i < n; i++) {
95+
cloneDM.setIdentifier(i, distM.getIdentifier(i));
96+
for (int j = 0; j < n; j++) {
97+
cloneDM.setValue(i, j, distM.getValue(i, j));
98+
}
99+
}
100+
return cloneDM;
101+
}
80102

81103
}

0 commit comments

Comments
 (0)