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')
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)
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)