def setUp(self): tree_str = "[&R] ((((H**o:0.21,Pongo:0.21)N1:0.28,Macaca:0.49)N2:0.13,Ateles:0.62)N3:0.38,Galago:1.00)N4:0.0;" data_str = """ #NEXUS BEGIN DATA; DIMENSIONS NTAX=5 NCHAR=2; FORMAT DATATYPE = CONTINUOUS GAP = - MISSING = ?; MATRIX H**o 4.09434 4.74493 Pongo 3.61092 3.33220 Macaca 2.37024 3.36730 Ateles 2.02815 2.89037 Galago -1.46968 2.30259 ; END; """ taxa = dendropy.TaxonNamespace() self.tree = dendropy.Tree.get_from_string(tree_str, 'newick', taxon_namespace=taxa) self.char_matrix = dendropy.ContinuousCharacterMatrix.get_from_string( data_str, 'nexus', taxon_namespace=taxa) self.pic = continuous.PhylogeneticIndependentConstrasts( tree=self.tree, char_matrix=self.char_matrix) self.expected_vals = [] self.expected_vals.append({ # state, corrected edge length, contrast, contrast_var "N1": (3.852630000, 0.385000000, 0.483420000, 0.420000000), "N2": (3.200378400, 0.345600000, 1.482390000, 0.875000000), "N3": (2.780823579, 0.601905551, 1.172228400, 0.965600000), "N4": (1.183724613, 0.375743470, 4.250503579, 1.601905551), }) self.expected_vals.append({ # state, corrected edge length, contrast, contrast_var "N1": (4.038565000, 0.385000000, 1.412730000, 0.420000000), "N2": (3.743208400, 0.345600000, 0.671265000, 0.875000000), "N3": (3.437967150, 0.601905551, 0.852838400, 0.965600000), "N4": (3.011356599, 0.375743470, 1.135377150, 1.601905551), })
def pic_compute(tree_sim,Z_singleset,taxa1,order_sim): simchar_dict = {} keys = ["B.mysticetus", "B.acutorostrata", "C.marginata", "B.borealis", "B.physalus", "E.robustus", "B.musculus", "B.omurai", "E.australis", "M.novaeangliae", "B.bonaerensis", "B.brydei", "B.edeni", "E.glacialis", "E.japonica"] for i in range(15): simchar_dict[keys[i]] = [Z_singleset[i]] simchars = dendropy.ContinuousCharacterMatrix.from_dict(simchar_dict, taxon_namespace=taxa1) simpic = continuous.PhylogeneticIndependentConstrasts(tree=tree_sim, char_matrix=simchars) sim_ctree = simpic.contrasts_tree(character_index=0, annotate_pic_statistics=True, state_values_as_node_labels=False, corrected_edge_lengths=False) sim_pic = [] sim_label = [] for nd in sim_ctree.postorder_internal_node_iter(): sim_pic.append(nd.pic_contrast_standardized) sim_label.append(int(nd.label)) sim_pic_ordered = np.array(sim_pic)[np.argsort(sim_label)] return sim_pic_ordered,order_sim
import dendropy from dendropy.model import continuous taxa = dendropy.TaxonNamespace() tree = dendropy.Tree.get(path="primates.cc.tre", schema="newick", taxon_namespace=taxa) chars = dendropy.ContinuousCharacterMatrix.get(path="primates.cc.nex", schema="nexus", taxon_namespace=taxa) pic = continuous.PhylogeneticIndependentConstrasts(tree=tree, char_matrix=chars) ctree1 = pic.contrasts_tree(character_index=0, annotate_pic_statistics=True, state_values_as_node_labels=False, corrected_edge_lengths=False) for nd in ctree1.postorder_internal_node_iter(): row = [ nd.pic_state_value, nd.pic_state_variance, nd.pic_contrast_raw, nd.pic_edge_length_error ] row_str = [(("%10.8f") % i) for i in row] row_str = " ".join(row_str) label = nd.label.ljust(6) print "%s %s" % (label, row_str)
def testResolve(self): pic = continuous.PhylogeneticIndependentConstrasts( tree=self.tree, char_matrix=self.char_matrix, polytomy_strategy="Resolve") ctree = pic.contrasts_tree(1)
def testError(self): pic = continuous.PhylogeneticIndependentConstrasts( tree=self.tree, char_matrix=self.char_matrix, polytomy_strategy="error") self.assertRaises(ValueError, pic.contrasts_tree, 1)
def testErrorOnDefault(self): pic = continuous.PhylogeneticIndependentConstrasts( tree=self.tree, char_matrix=self.char_matrix) self.assertRaises(ValueError, pic.contrasts_tree, 1)
"Eubalaena_japonica" ] obsZ_ordered_sim = length[[ np.where(sim_species_label[i] == extantlabels_array)[0][0] for i in range(15) ]] obsZ = obsZ_ordered_sim meantrait = np.mean(obsZ) # PIC calculation taxa1 = dendropy.TaxonNamespace() dataset_combined = dendropy.DataSet.get(path=files + "bw_char.nex", schema="nexus") tree_emp = dataset_combined.tree_lists[0][0] chars_emp = dataset_combined.char_matrices[0] pic_emp = continuous.PhylogeneticIndependentConstrasts(tree=tree_emp, char_matrix=chars_emp) ctree_emp = pic_emp.contrasts_tree(character_index=0, annotate_pic_statistics=True, state_values_as_node_labels=False, corrected_edge_lengths=False) emp_pic = [] label = [] for nd in ctree_emp.postorder_internal_node_iter(): emp_pic.append(nd.pic_contrast_standardized) label.append(int(nd.label)) emp_pic_orded_node = abs(np.array(emp_pic)[np.argsort(label)]) tree_sim = dendropy.Tree.get(path=files + "bw.nex", schema="nexus", taxon_namespace=taxa1)