コード例 #1
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_bind_to_parent_array(self):
     """bind_to_parent_array should bind tree to array correctly"""
     a = reshape(arange(33), (11, 3))
     index_tree(self.t3)
     bindings = bind_to_parent_array(self.t3, a)
     self.assertEqual(len(bindings), 10)
     self.assertEqual(bindings[0][0], a[8])
     self.assertEqual(bindings[0][1], a[10])
     self.assertEqual(bindings[1][0], a[4])
     self.assertEqual(bindings[1][1], a[8])
     self.assertEqual(bindings[2][0], a[0])
     self.assertEqual(bindings[2][1], a[4])
     self.assertEqual(bindings[3][0], a[1])
     self.assertEqual(bindings[3][1], a[4])
     self.assertEqual(bindings[4][0], a[2])
     self.assertEqual(bindings[4][1], a[4])
     self.assertEqual(bindings[5][0], a[5])
     self.assertEqual(bindings[5][1], a[8])
     self.assertEqual(bindings[6][0], a[3])
     self.assertEqual(bindings[6][1], a[5])
     self.assertEqual(bindings[7][0], a[9])
     self.assertEqual(bindings[7][1], a[10])
     self.assertEqual(bindings[8][0], a[6])
     self.assertEqual(bindings[8][1], a[9])
     self.assertEqual(bindings[9][0], a[7])
     self.assertEqual(bindings[9][1], a[9])
コード例 #2
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_bind_to_parent_array(self):
     """bind_to_parent_array should bind tree to array correctly"""
     a = reshape(arange(33), (11,3))
     index_tree(self.t3)
     bindings = bind_to_parent_array(self.t3, a)
     self.assertEqual(len(bindings), 10)
     self.assertEqual(bindings[0][0], a[8])
     self.assertEqual(bindings[0][1], a[10])
     self.assertEqual(bindings[1][0], a[4])
     self.assertEqual(bindings[1][1], a[8])
     self.assertEqual(bindings[2][0], a[0])
     self.assertEqual(bindings[2][1], a[4])
     self.assertEqual(bindings[3][0], a[1])
     self.assertEqual(bindings[3][1], a[4])
     self.assertEqual(bindings[4][0], a[2])
     self.assertEqual(bindings[4][1], a[4])
     self.assertEqual(bindings[5][0], a[5])
     self.assertEqual(bindings[5][1], a[8])
     self.assertEqual(bindings[6][0], a[3])
     self.assertEqual(bindings[6][1], a[5])
     self.assertEqual(bindings[7][0], a[9])
     self.assertEqual(bindings[7][1], a[10])
     self.assertEqual(bindings[8][0], a[6])
     self.assertEqual(bindings[8][1], a[9])
     self.assertEqual(bindings[9][0], a[7])
     self.assertEqual(bindings[9][1], a[9])
コード例 #3
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_index_tree(self):
     """index_tree should produce correct index and node map"""
     #test for first tree: contains singleton outgroup
     t1 = self.t1
     id_1, child_1 = index_tree(t1)
     nodes_1 = [n._leaf_index for n in t1.traverse(self_before=False, \
         self_after=True)]
     self.assertEqual(nodes_1, [0, 1, 2, 3, 6, 4, 5, 7, 8])
     self.assertEqual(child_1, [(2, 0, 1), (6, 2, 3), (7, 4, 5), (8, 6, 7)])
     #test for second tree: strictly bifurcating
     t2 = self.t2
     id_2, child_2 = index_tree(t2)
     nodes_2 = [n._leaf_index for n in t2.traverse(self_before=False, \
         self_after=True)]
     self.assertEqual(nodes_2, [0, 1, 4, 2, 3, 5, 8, 6, 7, 9, 10])
     self.assertEqual(child_2, [(4, 0, 1), (5, 2, 3), (8, 4, 5), (9, 6, 7),
                                (10, 8, 9)])
     #test for third tree: contains trifurcation and single-child parent
     t3 = self.t3
     id_3, child_3 = index_tree(t3)
     nodes_3 = [n._leaf_index for n in t3.traverse(self_before=False, \
         self_after=True)]
     self.assertEqual(nodes_3, [0, 1, 2, 4, 3, 5, 8, 6, 7, 9, 10])
     self.assertEqual(child_3, [(4, 0, 2), (5, 3, 3), (8, 4, 5), (9, 6, 7),
                                (10, 8, 9)])
コード例 #4
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
 def test_sum_descendants(self):
     """sum_descendants should sum total descendants w/ each state"""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  # fill with junk
     bindings = bind_to_array(child, a)
     # load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     sum_descendants(bindings)
     self.assertEqual(
         a,
         array(
             [
                 [0, 1, 0],
                 [0, 1, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 3, 0],
                 [1, 0, 0],
                 [0, 0, 1],
                 [0, 1, 0],
                 [1, 3, 0],
                 [0, 1, 1],
                 [1, 4, 1],
             ]
         ),
     )
コード例 #5
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
 def test_bool_descendants(self):
     """bool_descendants should be true if any descendant true"""
     # self.t3 = DndParser('(((a,b,c),(d)),(e,f))', UniFracTreeNode)
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  # fill with junk
     bindings = bind_to_array(child, a)
     # load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     bool_descendants(bindings)
     self.assertEqual(
         a,
         array(
             [
                 [0, 1, 0],
                 [0, 1, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 0, 1],
                 [0, 1, 0],
                 [1, 1, 0],
                 [0, 1, 1],
                 [1, 1, 1],
             ]
         ),
     )
コード例 #6
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
    def test_fitch_descendants_missing_data(self):
        """fitch_descendants should work with missing data"""
        #tree and envs for testing missing values
        t_str = '(((a:1,b:2):4,(c:3,d:1):2):1,(e:2,f:1):3);'
        env_str = """a   A
b   B
c   D
d   C
e   C
f   D"""
        t = DndParser(t_str, UniFracTreeNode)
        node_index, nodes = index_tree(t)
        env_counts = count_envs(env_str.split('\n'))

        count_array, unique_envs, env_to_index, node_to_index = \
            index_envs(env_counts, node_index)

        branch_lengths = get_branch_lengths(node_index)
        #test just the AB pair
        ab_counts = count_array[:, 0:2]
        bindings = bind_to_array(nodes, ab_counts)
        changes = fitch_descendants(bindings, counter=FitchCounter)
        self.assertEqual(changes, 1)
        orig_result = ab_counts.copy()
        #check that the original Fitch counter gives the expected
        #incorrect parsimony result
        changes = fitch_descendants(bindings, counter=FitchCounterDense)
        self.assertEqual(changes, 5)
        new_result = ab_counts.copy()
        #check that the two versions fill the array with the same values
        self.assertEqual(orig_result, new_result)
コード例 #7
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
    def test_fitch_descendants_missing_data(self):
        """fitch_descendants should work with missing data"""
        #tree and envs for testing missing values
        t_str = '(((a:1,b:2):4,(c:3,d:1):2):1,(e:2,f:1):3);'
        env_str = """a   A
b   B
c   D
d   C
e   C
f   D"""
        t = DndParser(t_str, UniFracTreeNode)
        node_index, nodes = index_tree(t)
        env_counts = count_envs(env_str.split('\n'))
    
        count_array, unique_envs, env_to_index, node_to_index = \
            index_envs(env_counts, node_index)    

        branch_lengths = get_branch_lengths(node_index)
        #test just the AB pair
        ab_counts = count_array[:, 0:2]
        bindings = bind_to_array(nodes, ab_counts)
        changes = fitch_descendants(bindings, counter=FitchCounter)
        self.assertEqual(changes, 1)
        orig_result = ab_counts.copy()
        #check that the original Fitch counter gives the expected 
        #incorrect parsimony result
        changes = fitch_descendants(bindings, counter=FitchCounterDense)
        self.assertEqual(changes, 5)
        new_result = ab_counts.copy()
        #check that the two versions fill the array with the same values
        self.assertEqual(orig_result, new_result)
コード例 #8
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
 def test_fitch_descendants(self):
     """fitch_descendants should assign states by fitch parsimony, ret. #"""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  # fill with junk
     bindings = bind_to_array(child, a)
     # load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     changes = fitch_descendants(bindings)
     self.assertEqual(changes, 2)
     self.assertEqual(
         a,
         array(
             [
                 [0, 1, 0],
                 [0, 1, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 0, 1],
                 [0, 1, 0],
                 [1, 1, 0],
                 [0, 1, 1],
                 [0, 1, 0],
             ]
         ),
     )
コード例 #9
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
    def setUp(self):
        """Define a couple of standard trees"""
        self.t1 = DndParser("(((a,b),c),(d,e))", UniFracTreeNode)
        self.t2 = DndParser("(((a,b),(c,d)),(e,f))", UniFracTreeNode)
        self.t3 = DndParser("(((a,b,c),(d)),(e,f))", UniFracTreeNode)
        self.t4 = DndParser("((c)b,((f,g,h)e,i)d)", UniFracTreeNode)
        self.t4.Name = "a"
        self.t_str = "((a:1,b:2):4,(c:3,(d:1,e:1):2):3)"

        self.t = DndParser(self.t_str, UniFracTreeNode)
        self.env_str = """
a   A   1
a   C   2
b   A   1
b   B   1
c   B   1
d   B   3
e   C   1"""
        self.env_counts = count_envs(self.env_str.splitlines())
        self.node_index, self.nodes = index_tree(self.t)
        self.count_array, self.unique_envs, self.env_to_index, self.node_to_index = index_envs(
            self.env_counts, self.node_index
        )
        self.branch_lengths = get_branch_lengths(self.node_index)

        self.old_t_str = "((org1:0.11,org2:0.22,(org3:0.12,org4:0.23)g:0.33)b:0.2,(org5:0.44,org6:0.55)c:0.3,org7:0.4)"

        self.old_t = DndParser(self.old_t_str, UniFracTreeNode)
        self.old_env_str = """
org1    env1    1
org1    env2    1
org2    env2    1
org3    env2    1
org4    env3    1
org5    env1    1
org6    env1    1
org7    env3    1
"""
        self.old_env_counts = count_envs(self.old_env_str.splitlines())
        self.old_node_index, self.old_nodes = index_tree(self.old_t)
        self.old_count_array, self.old_unique_envs, self.old_env_to_index, self.old_node_to_index = index_envs(
            self.old_env_counts, self.old_node_index
        )
        self.old_branch_lengths = get_branch_lengths(self.old_node_index)
コード例 #10
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_delete_empty_parents(self):
     """delete_empty_parents should remove empty parents from bound indices"""
     id_to_node, node_first_last = index_tree(self.t)
     bound_indices = bind_to_array(node_first_last, self.count_array[:,0:1])
     bool_descendants(bound_indices)
     self.assertEqual(len(bound_indices), 4)
     deleted = delete_empty_parents(bound_indices)
     self.assertEqual(len(deleted), 2)
     for d in deleted:
         self.assertEqual(d[0][0], 1)
コード例 #11
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
    def setUp(self):
        """Define a couple of standard trees"""
        self.t1 = DndParser('(((a,b),c),(d,e))', UniFracTreeNode)
        self.t2 = DndParser('(((a,b),(c,d)),(e,f))', UniFracTreeNode)
        self.t3 = DndParser('(((a,b,c),(d)),(e,f))', UniFracTreeNode)
        self.t4 = DndParser('((c)b,((f,g,h)e,i)d)', UniFracTreeNode)
        self.t4.Name = 'a'
        self.t_str = '((a:1,b:2):4,(c:3,(d:1,e:1):2):3)'

        self.t = DndParser(self.t_str, UniFracTreeNode)
        self.env_str = """
a   A   1
a   C   2
b   A   1
b   B   1
c   B   1
d   B   3
e   C   1"""
        self.env_counts = count_envs(self.env_str.splitlines())
        self.node_index, self.nodes = index_tree(self.t)
        self.count_array, self.unique_envs, self.env_to_index, \
            self.node_to_index = index_envs(self.env_counts, self.node_index)
        self.branch_lengths = get_branch_lengths(self.node_index)

        self.old_t_str = '((org1:0.11,org2:0.22,(org3:0.12,org4:0.23)g:0.33)b:0.2,(org5:0.44,org6:0.55)c:0.3,org7:0.4)'

        self.old_t = DndParser(self.old_t_str, UniFracTreeNode)
        self.old_env_str = """
org1    env1    1
org1    env2    1
org2    env2    1
org3    env2    1
org4    env3    1
org5    env1    1
org6    env1    1
org7    env3    1
"""
        self.old_env_counts = count_envs(self.old_env_str.splitlines())
        self.old_node_index, self.old_nodes = index_tree(self.old_t)
        self.old_count_array, self.old_unique_envs, self.old_env_to_index, \
            self.old_node_to_index = index_envs(self.old_env_counts, self.old_node_index)
        self.old_branch_lengths = get_branch_lengths(self.old_node_index)
コード例 #12
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
 def test_index_tree(self):
     """index_tree should produce correct index and node map"""
     # test for first tree: contains singleton outgroup
     t1 = self.t1
     id_1, child_1 = index_tree(t1)
     nodes_1 = [n._leaf_index for n in t1.traverse(self_before=False, self_after=True)]
     self.assertEqual(nodes_1, [0, 1, 2, 3, 6, 4, 5, 7, 8])
     self.assertEqual(child_1, [(2, 0, 1), (6, 2, 3), (7, 4, 5), (8, 6, 7)])
     # test for second tree: strictly bifurcating
     t2 = self.t2
     id_2, child_2 = index_tree(t2)
     nodes_2 = [n._leaf_index for n in t2.traverse(self_before=False, self_after=True)]
     self.assertEqual(nodes_2, [0, 1, 4, 2, 3, 5, 8, 6, 7, 9, 10])
     self.assertEqual(child_2, [(4, 0, 1), (5, 2, 3), (8, 4, 5), (9, 6, 7), (10, 8, 9)])
     # test for third tree: contains trifurcation and single-child parent
     t3 = self.t3
     id_3, child_3 = index_tree(t3)
     nodes_3 = [n._leaf_index for n in t3.traverse(self_before=False, self_after=True)]
     self.assertEqual(nodes_3, [0, 1, 2, 4, 3, 5, 8, 6, 7, 9, 10])
     self.assertEqual(child_3, [(4, 0, 2), (5, 3, 3), (8, 4, 5), (9, 6, 7), (10, 8, 9)])
コード例 #13
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_delete_empty_parents(self):
     """delete_empty_parents should remove empty parents from bound indices"""
     id_to_node, node_first_last = index_tree(self.t)
     bound_indices = bind_to_array(node_first_last, self.count_array[:,
                                                                     0:1])
     bool_descendants(bound_indices)
     self.assertEqual(len(bound_indices), 4)
     deleted = delete_empty_parents(bound_indices)
     self.assertEqual(len(deleted), 2)
     for d in deleted:
         self.assertEqual(d[0][0], 1)
コード例 #14
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_sum_descendants(self):
     """sum_descendants should sum total descendants w/ each state"""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  #fill with junk
     bindings = bind_to_array(child, a)
     #load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     sum_descendants(bindings)
     self.assertEqual(a, \
         array([[0,1,0],[0,1,0],[0,1,0],[1,0,0],[0,3,0],[1,0,0],\
         [0,0,1],[0,1,0],[1,3,0],[0,1,1],[1,4,1]])
     )
コード例 #15
0
ファイル: test_fast_tree.py プロジェクト: yesimon/pycogent
 def test_traverse_reduce(self):
     """traverse_reduce should reduce array in traversal order."""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  # fill with junk
     bindings = bind_to_array(child, a)
     # load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     f = logical_or.reduce
     traverse_reduce(bindings, f)
     self.assertEqual(
         a,
         array(
             [
                 [0, 1, 0],
                 [0, 1, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 0, 1],
                 [0, 1, 0],
                 [1, 1, 0],
                 [0, 1, 1],
                 [1, 1, 1],
             ]
         ),
     )
     f = sum
     traverse_reduce(bindings, f)
     self.assertEqual(
         a,
         array(
             [
                 [0, 1, 0],
                 [0, 1, 0],
                 [0, 1, 0],
                 [1, 0, 0],
                 [0, 3, 0],
                 [1, 0, 0],
                 [0, 0, 1],
                 [0, 1, 0],
                 [1, 3, 0],
                 [0, 1, 1],
                 [1, 4, 1],
             ]
         ),
     )
コード例 #16
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_bool_descendants(self):
     """bool_descendants should be true if any descendant true"""
     #self.t3 = DndParser('(((a,b,c),(d)),(e,f))', UniFracTreeNode)
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  #fill with junk
     bindings = bind_to_array(child, a)
     #load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     bool_descendants(bindings)
     self.assertEqual(a, \
         array([[0,1,0],[0,1,0],[0,1,0],[1,0,0],[0,1,0],[1,0,0],\
         [0,0,1],[0,1,0],[1,1,0],[0,1,1],[1,1,1]])
     )
コード例 #17
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_fitch_descendants(self):
     """fitch_descendants should assign states by fitch parsimony, ret. #"""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  #fill with junk
     bindings = bind_to_array(child, a)
     #load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     changes = fitch_descendants(bindings)
     self.assertEqual(changes, 2)
     self.assertEqual(a, \
         array([[0,1,0],[0,1,0],[0,1,0],[1,0,0],[0,1,0],[1,0,0],\
         [0,0,1],[0,1,0],[1,1,0],[0,1,1],[0,1,0]])
     )
コード例 #18
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_traverse_reduce(self):
     """traverse_reduce should reduce array in traversal order."""
     id_, child = index_tree(self.t3)
     a = zeros((11, 3)) + 99  #fill with junk
     bindings = bind_to_array(child, a)
     #load in leaf envs
     a[0] = a[1] = a[2] = a[7] = [0, 1, 0]
     a[3] = [1, 0, 0]
     a[6] = [0, 0, 1]
     f = logical_or.reduce
     traverse_reduce(bindings, f)
     self.assertEqual(a,\
         array([[0,1,0],[0,1,0],[0,1,0],[1,0,0],[0,1,0],[1,0,0],\
         [0,0,1],[0,1,0],[1,1,0],[0,1,1],[1,1,1]])
     )
     f = sum
     traverse_reduce(bindings, f)
     self.assertEqual( a, \
         array([[0,1,0],[0,1,0],[0,1,0],[1,0,0],[0,3,0],[1,0,0],\
         [0,0,1],[0,1,0],[1,3,0],[0,1,1],[1,4,1]])
     )
コード例 #19
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_bind_to_array(self):
     """bind_to_array should return correct array ranges"""
     a = reshape(arange(33), (11,3))
     id_, child = index_tree(self.t3)
     bindings = bind_to_array(child, a)
     self.assertEqual(len(bindings), 5)
     self.assertEqual(bindings[0][0], a[4])
     self.assertEqual(bindings[0][1], a[0:3])
     self.assertEqual(bindings[0][1].shape, (3,3))
     self.assertEqual(bindings[1][0], a[5])
     self.assertEqual(bindings[1][1], a[3:4])
     self.assertEqual(bindings[1][1].shape, (1,3))
     self.assertEqual(bindings[2][0], a[8])
     self.assertEqual(bindings[2][1], a[4:6])
     self.assertEqual(bindings[2][1].shape, (2,3))
     self.assertEqual(bindings[3][0], a[9])
     self.assertEqual(bindings[3][1], a[6:8])
     self.assertEqual(bindings[3][1].shape, (2,3))
     self.assertEqual(bindings[4][0], a[10])
     self.assertEqual(bindings[4][1], a[8:10])
     self.assertEqual(bindings[4][1].shape, (2,3))
コード例 #20
0
ファイル: test_fast_tree.py プロジェクト: carze/clovr-base
 def test_bind_to_array(self):
     """bind_to_array should return correct array ranges"""
     a = reshape(arange(33), (11, 3))
     id_, child = index_tree(self.t3)
     bindings = bind_to_array(child, a)
     self.assertEqual(len(bindings), 5)
     self.assertEqual(bindings[0][0], a[4])
     self.assertEqual(bindings[0][1], a[0:3])
     self.assertEqual(bindings[0][1].shape, (3, 3))
     self.assertEqual(bindings[1][0], a[5])
     self.assertEqual(bindings[1][1], a[3:4])
     self.assertEqual(bindings[1][1].shape, (1, 3))
     self.assertEqual(bindings[2][0], a[8])
     self.assertEqual(bindings[2][1], a[4:6])
     self.assertEqual(bindings[2][1].shape, (2, 3))
     self.assertEqual(bindings[3][0], a[9])
     self.assertEqual(bindings[3][1], a[6:8])
     self.assertEqual(bindings[3][1].shape, (2, 3))
     self.assertEqual(bindings[4][0], a[10])
     self.assertEqual(bindings[4][1], a[8:10])
     self.assertEqual(bindings[4][1].shape, (2, 3))
コード例 #21
0
    def setUp(self):
        """Define some standard trees."""
        self.t_str = '((a:1,b:2):4,(c:3,(d:1,e:1):2):3)'
        self.t = DndParser(self.t_str, UniFracTreeNode)
        self.env_str = """
a   A   1
a   C   2
b   A   1
b   B   1
c   B   1
d   B   3
e   C   1"""
        self.env_counts = count_envs(self.env_str.splitlines())
        self.missing_env_str = """
a   A   1
a   C   2
e   C   1"""
        self.missing_env_counts = count_envs(self.missing_env_str.splitlines())
        self.extra_tip_str = """
q   A   1
w   C   2
e   A   1
r   B   1
t   B   1
y   B   3
u   C   1"""
        self.extra_tip_counts = count_envs(self.extra_tip_str.splitlines())
        self.wrong_tip_str = """
q   A   1
w   C   2
r   B   1
t   B   1
y   B   3
u   C   1"""
        self.wrong_tip_counts = count_envs(self.wrong_tip_str.splitlines())

        self.t2_str = '(((a:1,b:1):1,c:5):2,d:4)'
        self.t2 = DndParser(self.t2_str, UniFracTreeNode)
        self.env2_str = """
a   B   1
b   A   1
c   A   2
c   C   2
d   B   1
d   C   1"""
        self.env2_counts = count_envs(self.env2_str.splitlines())
        self.trees = [self.t, self.t2]
        self.envs = [self.env_counts, self.env2_counts]

        self.mc_1 = array([.5, .4, .3, .2, .1, .6, .7, .8, .9, 1.0])

        # from old EnvsNode tests
        self.old_t_str = '((org1:0.11,org2:0.22,(org3:0.12,org4:0.23)g:0.33)b:0.2,(org5:0.44,org6:0.55)c:0.3,org7:0.4)'

        self.old_t = DndParser(self.old_t_str, UniFracTreeNode)
        self.old_env_str = """
org1    env1    1
org1    env2    1
org2    env2    1
org3    env2    1
org4    env3    1
org5    env1    1
org6    env1    1
org7    env3    1
"""
        self.old_env_counts = count_envs(self.old_env_str.splitlines())
        self.old_node_index, self.old_nodes = index_tree(self.old_t)
        self.old_count_array, self.old_unique_envs, self.old_env_to_index, \
            self.old_node_to_index = index_envs(self.old_env_counts, self.old_node_index)
        self.old_branch_lengths = get_branch_lengths(self.old_node_index)
コード例 #22
0
    def setUp(self):
        """Define some standard trees."""
        self.t_str = '((a:1,b:2):4,(c:3,(d:1,e:1):2):3)'
        self.t = DndParser(self.t_str, UniFracTreeNode)
        self.env_str = """
a   A   1
a   C   2
b   A   1
b   B   1
c   B   1
d   B   3
e   C   1"""
        self.env_counts = count_envs(self.env_str.splitlines())
        self.missing_env_str = """
a   A   1
a   C   2
e   C   1"""
        self.missing_env_counts = count_envs(self.missing_env_str.splitlines())
        self.extra_tip_str = """
q   A   1
w   C   2
e   A   1
r   B   1
t   B   1
y   B   3
u   C   1"""
        self.extra_tip_counts = count_envs(self.extra_tip_str.splitlines())
        self.wrong_tip_str = """
q   A   1
w   C   2
r   B   1
t   B   1
y   B   3
u   C   1"""
        self.wrong_tip_counts = count_envs(self.wrong_tip_str.splitlines())

        self.t2_str = '(((a:1,b:1):1,c:5):2,d:4)'
        self.t2 = DndParser(self.t2_str, UniFracTreeNode)
        self.env2_str = """
a   B   1
b   A   1
c   A   2
c   C   2
d   B   1
d   C   1"""
        self.env2_counts = count_envs(self.env2_str.splitlines())
        self.trees = [self.t, self.t2]
        self.envs = [self.env_counts, self.env2_counts]

        self.mc_1 = array([.5, .4, .3, .2, .1, .6, .7, .8, .9, 1.0])
       
        # from old EnvsNode tests
        self.old_t_str = '((org1:0.11,org2:0.22,(org3:0.12,org4:0.23)g:0.33)b:0.2,(org5:0.44,org6:0.55)c:0.3,org7:0.4)'

        self.old_t = DndParser(self.old_t_str, UniFracTreeNode)
        self.old_env_str = """
org1    env1    1
org1    env2    1
org2    env2    1
org3    env2    1
org4    env3    1
org5    env1    1
org6    env1    1
org7    env3    1
"""
        self.old_env_counts = count_envs(self.old_env_str.splitlines())
        self.old_node_index, self.old_nodes = index_tree(self.old_t)
        self.old_count_array, self.old_unique_envs, self.old_env_to_index, \
            self.old_node_to_index = index_envs(self.old_env_counts, self.old_node_index)
        self.old_branch_lengths = get_branch_lengths(self.old_node_index)