예제 #1
0
 def test_inputs_from_dict2D(self):
     """inputs_from_dict2D makes an array object and PhyloNode list"""
     matrix = [('1', '2', 0.86), ('2', '1', 0.86), \
             ('1', '3', 0.92), ('3', '1', 0.92), ('2', '3', 0.67), \
             ('3', '2', 0.67)]
     row_order = ['3', '2', '1']
     matrix_d2d = Dict2D(matrix, RowOrder=row_order, \
             ColOrder=row_order, Pad=True, Default = 999999999999999)
     matrix_array, PhyloNode_order = inputs_from_dict2D(matrix_d2d)
     self.assertFloatEqual(matrix_array[0][2], 0.92)
     self.assertFloatEqual(matrix_array[1][0], 0.67)
     self.assertEqual(PhyloNode_order[0].Name, '3')
     self.assertEqual(PhyloNode_order[2].Name, '1')
예제 #2
0
 def test_inputs_from_dict2D(self):
     """inputs_from_dict2D makes an array object and PhyloNode list"""
     matrix = [('1', '2', 0.86), ('2', '1', 0.86), \
             ('1', '3', 0.92), ('3', '1', 0.92), ('2', '3', 0.67), \
             ('3', '2', 0.67)]
     row_order = ['3', '2', '1']
     matrix_d2d = Dict2D(matrix, RowOrder=row_order, \
             ColOrder=row_order, Pad=True, Default = 999999999999999)
     matrix_array, PhyloNode_order = inputs_from_dict2D(matrix_d2d)
     self.assertFloatEqual(matrix_array[0][2], 0.92)
     self.assertFloatEqual(matrix_array[1][0], 0.67)
     self.assertEqual(PhyloNode_order[0].Name, '3')
     self.assertEqual(PhyloNode_order[2].Name, '1')
예제 #3
0
def PCoA(pairwise_distances):
    """runs principle coordinates analysis on a distance matrix
    
    Takes a dictionary with tuple pairs mapped to distances as input. 
    Returns a cogent Table object.
    """
    items_in_matrix = []
    for i in pairwise_distances:
        if i[0] not in items_in_matrix:
            items_in_matrix.append(i[0])
        if i[1] not in items_in_matrix:
            items_in_matrix.append(i[1])
    dict2d_input = [(i[0], i[1], pairwise_distances[i]) for i in pairwise_distances]
    dict2d_input.extend([(i[1], i[0], pairwise_distances[i]) for i in pairwise_distances])
    dict2d_input = Dict2D(dict2d_input, RowOrder=items_in_matrix, ColOrder=items_in_matrix, Pad=True, Default=0.0)
    matrix_a, node_order = inputs_from_dict2D(dict2d_input)
    point_matrix, eigvals = principal_coordinates_analysis(matrix_a)
    return output_pca(point_matrix, eigvals, items_in_matrix)
예제 #4
0
def PCoA(pairwise_distances):
    """runs principle coordinates analysis on a distance matrix
    
    Takes a dictionary with tuple pairs mapped to distances as input. 
    Returns a cogent Table object.
    """
    items_in_matrix = []
    for i in pairwise_distances:
        if i[0] not in items_in_matrix:
            items_in_matrix.append(i[0])
        if i[1] not in items_in_matrix:
            items_in_matrix.append(i[1])
    dict2d_input = [(i[0], i[1], pairwise_distances[i]) for i in \
            pairwise_distances]
    dict2d_input.extend([(i[1], i[0], pairwise_distances[i]) for i in \
            pairwise_distances])
    dict2d_input = Dict2D(dict2d_input, RowOrder=items_in_matrix, \
            ColOrder=items_in_matrix, Pad=True, Default=0.0)
    matrix_a, node_order = inputs_from_dict2D(dict2d_input)
    point_matrix, eigvals = principal_coordinates_analysis(matrix_a)
    return output_pca(point_matrix, eigvals, items_in_matrix)