for name, seq in known_sequences.items(): f.write(">"+str(name)+"\n") f.write(seq+"\n") ### Align if verbose: print "aligning..." aln_file_name = os.path.splitext(temp_file_name)[0] + ".afa" align_muscle(temp_file_name, aln_file_name, gapopen=-1000.0) ### Build tree if verbose: print "building tree..." tree, aln = build_tree_FT(aln_file_name) ### Show in pretty format pretty_tree = PhyloTree(str(tree), alignment=aln_file_name, alg_format="fasta") pretty_tree.ladderize() ts = TreeStyle() pretty_tree.render(outfile, tree_style=ts) ### Clean up your mess os.remove(temp_file_name) os.remove(aln_file_name) ### TODO # highlight adapter rows # root on adapter? # tweak alignment parameters so it's better # understand muscle alignment score. how can we rationally change parameters to improve?