import sys filename=sys.argv[1] model=sys.argv[2] numb=sys.argv[3] from Bio import Phylo, AlignIO from Bio.Phylo.TreeConstruction import DistanceCalculator, DistanceTreeConstructor align = AlignIO.read(filename,'fasta') comalign=align[:,0:1] for j in range(align.get_alignment_length()): flag=0 for i in align[:,j:(j+1)]: if i.seq == "-": flag=1 break if flag == 0: comalign=comalign+align[:,j:(j+1)] comalign=comalign[:,1:] AlignIO.write(comalign, filename+".complete.phylip", "phylip") calculator = DistanceCalculator(model) distMatrix = calculator.get_distance(comalign) constructor = DistanceTreeConstructor() UPGMATree = constructor.upgma(distMatrix) Phylo.draw_ascii(UPGMATree) #Phylo.draw(UPGMATree) import matplotlib import matplotlib.pyplot as plt from Bio import Phylo from io import StringIO def plot_tree(tree, output_file): matplotlib.rc('font', size=6) # set the size of the figure fig = plt.figure(figsize=(10, 20), dpi=100) # alternatively # fig.set_size_inches(10, 20) axes = fig.add_subplot(1, 1, 1) Phylo.draw(tree, axes=axes) plt.savefig(output_file, dpi=100) return print("bootstrap: "+numb) from Bio.Phylo.Consensus import * calculator = DistanceCalculator(model) constructor = DistanceTreeConstructor(calculator,'upgma') trees = bootstrap_trees(comalign, int(numb), constructor) tree = list (trees) support_tree = get_support(UPGMATree, tree) #Phylo.draw(support_tree) for node in support_tree.get_nonterminals(): node.name = None plot_tree(support_tree, filename+".png")