ML_TREE
Calculating the maximum likelihood tree from a multiple sequence alignment is easy, and only requires nexus files containing the taxa and sequences.
Currently, there is only support for DNA, but SNP, Bimarkers, and other data types are in the works.
from PhyNetPy.tools import ML_TREE
from PhyNetPy.GTR import *
filenames = ["file1.nex", "file2.nex"]
log_output = "out.txt"
tree_output = "ml_tree.tree"
# Default, with substitution model JC() and number of iterations = 3000
likelihoods_1 = ML_TREE(filenames, tree_output, log_output)
# num_iter keyword set
likelihoods_2 = ML_TREE(filenames, tree_output, log_output, num_iter=5000)
# submodel keyword set
likelihoods_3 = ML_TREE(filenames, tree_output, log_output, submodel=K2P(.4, .6))
Here is a sample nexus file:
#NEXUS
BEGIN TAXA;
DIMENSIONS NTAX=4;
TAXLABELS
seq_1
seq_2
seq_3
seq_4
;
END;
BEGIN CHARACTERS;
DIMENSIONS NCHAR=5;
FORMAT DATATYPE=DNA MISSING=? GAP=- MATCHCHAR=. ;
MATRIX
seq_1 GACCC
seq_2 GACCG
seq_3 CACCT
seq_4 CACCC
;
END;