def test_values(self): """Adapted from cogent's `test_principal_coordinate_analysis`: "I took the example in the book (see intro info), and did the principal coordinates analysis, plotted the data and it looked right".""" with warnings.catch_warnings(): warnings.filterwarnings('ignore', category=RuntimeWarning) ordination = PCoA(self.dist_matrix) scores = ordination.scores() exp_eigvals = np.array([ 0.73599103, 0.26260032, 0.14926222, 0.06990457, 0.02956972, 0.01931184, 0., 0., 0., 0., 0., 0., 0., 0. ]) exp_site = np.loadtxt(get_data_path('exp_PCoAzeros_site')) exp_prop_expl = np.array([ 0.58105792, 0.20732046, 0.1178411, 0.05518899, 0.02334502, 0.01524651, 0., 0., 0., 0., 0., 0., 0., 0. ]) exp_site_ids = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13' ] # Note the absolute value because column can have signs swapped npt.assert_almost_equal(scores.eigvals, exp_eigvals) npt.assert_almost_equal(np.abs(scores.site), exp_site) npt.assert_almost_equal(scores.proportion_explained, exp_prop_expl) npt.assert_equal(scores.site_ids, exp_site_ids)
def pcoa(lines): """Run PCoA on the distance matrix present on lines""" # Parse the distance matrix dist_mtx = DistanceMatrix.from_file(lines) # Create the PCoA object pcoa_obj = PCoA(dist_mtx) # Get the PCoA results and return them return pcoa_obj.scores()
def setup(self): with open(get_data_path('PCoA_sample_data_3'), 'U') as lines: dist_matrix = DistanceMatrix.from_file(lines) self.ordination = PCoA(dist_matrix) self.ids = [ 'PC.636', 'PC.635', 'PC.356', 'PC.481', 'PC.354', 'PC.593', 'PC.355', 'PC.607', 'PC.634' ]
def test_input(self): with npt.assert_raises(TypeError): PCoA([[1, 2], [3, 4]])
def setup(self): matrix = np.loadtxt(get_data_path('PCoA_sample_data_2')) self.ids = [str(i) for i in range(matrix.shape[0])] dist_matrix = DistanceMatrix(matrix, self.ids) self.ordination = PCoA(dist_matrix)