def test_bad_metadata(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.Metadata( pd.DataFrame({'value': ['a', 'b', 'c']}, index=['sample1', 'sample2', 'sample3'])) with tempfile.TemporaryDirectory() as output_dir: with self.assertRaises(ValueError): alpha_correlation(output_dir, alpha_div, md)
def test_bad_method(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.MetadataCategory( pd.Series(['1.0', '2.0', '3.0'], name='value', index=['sample1', 'sample2', 'sample3'])) with tempfile.TemporaryDirectory() as output_dir: with self.assertRaises(ValueError): alpha_correlation(output_dir, alpha_div, md, method='bad!')
def test_extra_alpha_div(self): alpha_div = pd.Series([2.0, 4.0, 6.0, 8.0], name='alpha-div', index=['sample1', 'sample2', 'sample3', 'sample4']) md = qiime2.Metadata( pd.DataFrame( {'value': [1.0, 2.0, 3.0]}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: with self.assertRaisesRegex(ValueError, 'not present.*metadata.*sample4'): alpha_correlation(output_dir, alpha_div, md)
def test_all_metadata_columns_filtered(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) # Non-numeric and empty columns are filtered. md = qiime2.Metadata( pd.DataFrame( {'col1': ['a', 'b', 'a'], 'col2': [np.nan, np.nan, np.nan]}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: with self.assertRaisesRegex( ValueError, 'contains only non-numeric or empty columns'): alpha_correlation(output_dir, alpha_div, md)
def test_extra_metadata(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.Metadata( pd.DataFrame({'value': ['1.0', '2.0', '3.0', '4.0']}, index=['sample1', 'sample2', 'sample3', 'sample4'])) with tempfile.TemporaryDirectory() as output_dir: alpha_correlation(output_dir, alpha_div, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) jsonp_fp = os.path.join(output_dir, 'category-value.jsonp') self.assertTrue(os.path.exists(jsonp_fp)) self.assertTrue('"sampleSize": 3' in open(jsonp_fp).read())
def test_extra_alpha_div_intersect(self): alpha_div = pd.Series( [2.0, 4.0, 6.0, 8.0], name='alpha-div', index=['sample1', 'sample2', 'sample3', 'sample4']) md = qiime2.Metadata( pd.DataFrame({'value': [1.0, 2.0, 3.0]}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: alpha_correlation(output_dir, alpha_div, md, intersect_ids=True) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) jsonp_fp = os.path.join(output_dir, 'column-value.jsonp') self.assertTrue(os.path.exists(jsonp_fp))
def test_nan_metadata(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.Metadata( pd.DataFrame( {'value': [1.0, 2.0, np.nan]}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: alpha_correlation(output_dir, alpha_div, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) jsonp_fp = os.path.join(output_dir, 'column-value.jsonp') self.assertTrue(os.path.exists(jsonp_fp)) with open(jsonp_fp) as jsonp_fh: jsonp_content = jsonp_fh.read() self.assertTrue('"filtered": 2' in jsonp_content) self.assertTrue('"initial": 3' in jsonp_content)
def test_pearson(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.Metadata( pd.DataFrame( {'value': [1.0, 2.0, 3.0]}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: alpha_correlation(output_dir, alpha_div, md, method='pearson') index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) jsonp_fp = os.path.join(output_dir, 'column-value.jsonp') self.assertTrue(os.path.exists(jsonp_fp)) with open(jsonp_fp) as jsonp_fh: jsonp_content = jsonp_fh.read() self.assertTrue('Pearson' in jsonp_content) self.assertTrue('"sampleSize": 3' in jsonp_content) self.assertTrue('"data":' in jsonp_content) self.assertFalse('filtered' in jsonp_content)
def test_non_numeric_metadata(self): alpha_div = pd.Series([2.0, 4.0, 6.0], name='alpha-div', index=['sample1', 'sample2', 'sample3']) md = qiime2.Metadata( pd.DataFrame( {'col1': [4, 5, 6], 'col2': ['a', 'b', 'c']}, index=pd.Index(['sample1', 'sample2', 'sample3'], name='id'))) with tempfile.TemporaryDirectory() as output_dir: alpha_correlation(output_dir, alpha_div, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) self.assertTrue(os.path.exists( os.path.join(output_dir, 'column-col1.jsonp'))) self.assertFalse(os.path.exists( os.path.join(output_dir, 'column-col2.jsonp'))) with open(index_fp) as index_fh: index_content = index_fh.read() self.assertTrue('contain numeric data' in index_content) self.assertTrue('<strong>col2' in index_content)