Hello, have a posterior distribution of 1000 trees that I have to reroot on the edge leading to Coracias caudatus. My code is:
#! /usr/bin/env python
import dendropy, getopt, sys
def reroot( tree ):
mrca = tree.mrca( taxon_labels = [ "Coracias caudatus" ] ) # Hardcoded
tree.reroot_at_edge( mrca.edge, update_bipartitions = True )
return tree
try:
len(sys.argv)==3
except getopt.GetoptError:
print( 'Fewer or more than two argument; try something like reroot_trees.py ./input_trees.nex ./output_trees.tre' )
sys.exit(2)
input_file = [ open( sys.argv[1], "r" ) ]
tree_yielder = dendropy.Tree.yield_from_files( files = input_file, schema = 'nexus', extract_comment_metadata = True, rooting = 'force-unrooted' )
tree_count = 1
rerooted_trees = 0
output_trees = dendropy.TreeList()
for input_tree in tree_yielder:
output_tree = reroot( input_tree )
output_trees.append( output_tree )
tree_count = tree_count + 1
if tree_count > 9:
rerooted_trees = rerooted_trees + tree_count
print ( " ".join( [ "Rerooted", str( rerooted_trees ), "trees" ] ) )
tree_count = 1
output_trees.write_to_path( dest = sys.argv[2], schema = "nexus" )
--
The beginning of the first rerooted tree looks like:
TREE tree_2428 = [&R] (Coracias_caudatus,((((Ailuroedus_melanotis:34.866504931,(Prionodura_newtoniana:19.09327959...
Am I doing something wrong?
Cheers!
--
Marcos S. Barbeitos
Departamento de Zoologia - Sala 360
Setor de Ciências Biológicas
Universidade Federal do Paraná
Caixa Postal 19020
Curitiba, PR 81531-990
Brazil
Phone: (55 41) 3361-1634