예제 #1
0
            pass
        else:
            taxa_in_alignment.append(record.id)

tree = EvolTree(tree_file)
out_tree_name = os.path.basename(tree_file)
out_tree_name = os.path.splitext(out_tree_name)[0]
out_tree_name = out_tree_name + '_' + gene_name + '.tre'

# If there is a new alignment, prune the tree down to the taxa that remain in
# the new alignment and write a new tree because EvolTree is shit and can't
# use the pruned tree saved in memory
if empty_seq_count >= 1:
    if len(taxa_in_alignment) >= 1:
        tree.prune(taxa_in_alignment, preserve_branch_length=True)
        tree.unroot()
        tree.write(outfile=out_tree_name, format=0)
        tree = EvolTree(out_tree_name)

tree.link_to_alignment(alignment_file)

tree.workdir = os.getcwd()

# Record list of all node_ids in the tree for later retrieving omega from a
# background branch in the b_free model
list_of_node_ids = []
for node in tree.traverse('postorder'):
    list_of_node_ids.append(node.node_id)

test_taxa = []
with open(test_taxa_file, 'r') as test_taxa_list: