def test_run_correlation_OTUs(self): """run_correlation_OTUs works""" category_info = {'sample1':'0.1', 'sample2':'0.2', 'sample3':'0.3', 'sample4':'0.4'} OTU_sample_info = {'0': {'sample1': '0', 'sample2': '1', 'sample3': '2', 'sample4': '3'}, '1': {'sample1': '7', 'sample2': '5', 'sample3': '3', 'sample4': '1'}, '2': {'sample1': '4', 'sample2': '4.2', 'sample3': '4', 'sample4': '4'}, '3': {'sample1': '0', 'sample2': '1', 'sample3': '0', 'sample4': '1'}} OTU_list = ['1', '0', '2', '3'] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) #OTU 0 should be positively correlated, 1 negative, and 2&3 neutral self.assertFloatEqual(result['0'][0], 1.0)#r self.assertFloatEqual(result['0'][1], 0.0)#prob self.assertEqual(result['0'][2], "[3.0, 0.0, 2.0, 1.0]") self.assertEqual(result['0'][3], "[0.40000000000000002, 0.10000000000000001, 0.29999999999999999, 0.20000000000000001]") self.assertFloatEqual(result['1'], [-0.99999999999999956, 4.4408920985006281e-16, '[1.0, 7.0, 3.0, 5.0]', '[0.40000000000000002, 0.10000000000000001, 0.29999999999999999, 0.20000000000000001]']) #test that appropriate error is raised is categorical category_info = {'sample1':'A', 'sample2':'B', 'sample3':'A', 'sample4':'B'} self.assertRaises(ValueError, run_correlation_OTUs, OTU_list, category_info, OTU_sample_info)
def test_run_correlation_OTUs(self): """run_single_correlation works""" category_info = { 'sample1': '0.1', 'sample2': '0.2', 'sample3': '0.3', 'sample4': '0.4' } OTU_sample_info = { '0': { 'sample1': '0', 'sample2': '1', 'sample3': '2', 'sample4': '3' }, '1': { 'sample1': '7', 'sample2': '5', 'sample3': '3', 'sample4': '1' }, '2': { 'sample1': '4', 'sample2': '4.2', 'sample3': '4', 'sample4': '4' }, '3': { 'sample1': '0', 'sample2': '1', 'sample3': '0', 'sample4': '1' } } OTU_list = ['1', '0', '2', '3'] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) #OTU 0 should be positively correlated, 1 negative, and 2&3 neutral self.assertFloatEqual(result['0'], [1.0, 0.0, 0.0]) self.assertFloatEqual(result['1'], [ -0.99999999999999956, 4.4408920985006281e-16, 1.7763568394002513e-15 ]) self.assertFloatEqual( result['2'], [-0.25819888974715061, 0.74180111025284945, 2.9672044410113978]) self.assertFloatEqual( result['3'], [0.44721359549995815, 0.55278640450004191, 2.2111456180001676]) #test that appropriate error is raised is categorical category_info = { 'sample1': 'A', 'sample2': 'B', 'sample3': 'A', 'sample4': 'B' } self.assertRaises(ValueError, run_correlation_OTUs, OTU_list, category_info, OTU_sample_info)
def test_output_results_correlation(self): """output_results_correlation works""" category_info = { 'sample1': '0.1', 'sample2': '0.2', 'sample3': '0.3', 'sample4': '0.4' } OTU_sample_info = { '0': { 'sample1': '0', 'sample2': '1', 'sample3': '2', 'sample4': '3' }, '1': { 'sample1': '7', 'sample2': '5', 'sample3': '3', 'sample4': '1' }, '2': { 'sample1': '4', 'sample2': '4.2', 'sample3': '4', 'sample4': '4' }, '3': { 'sample1': '0', 'sample2': '1', 'sample3': '0', 'sample4': '1' } } taxonomy_info = { '0': 'taxon1', '1': 'taxon2', '2': 'taxon3', '3': 'taxon4' } OTU_list = ['1', '0', '2', '3'] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) output = output_results_correlation(result, taxonomy_info) self.assertEqual( output[0], 'OTU\tprob\tBonferroni_corrected\tFDR_corrected\tr\tConsensus Lineage' ) self.assertEqual( output[1], '1\t4.4408920985e-16\t1.7763568394e-15\t8.881784197e-16\t-1.0\ttaxon2' ) self.assertEqual(len(output), 5)
def test_output_results_correlation(self): """output_results_correlation works""" category_info = {"sample1": "0.1", "sample2": "0.2", "sample3": "0.3", "sample4": "0.4"} OTU_sample_info = { "0": {"sample1": "0", "sample2": "1", "sample3": "2", "sample4": "3"}, "1": {"sample1": "7", "sample2": "5", "sample3": "3", "sample4": "1"}, "2": {"sample1": "4", "sample2": "4.2", "sample3": "4", "sample4": "4"}, "3": {"sample1": "0", "sample2": "1", "sample3": "0", "sample4": "1"}, } taxonomy_info = {"0": "taxon1", "1": "taxon2", "2": "taxon3", "3": "taxon4"} OTU_list = ["1", "0", "2", "3"] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) output = output_results_correlation(result, taxonomy_info) self.assertEqual(output[0], "OTU\tprob\tBonferroni_corrected\tFDR_corrected\tr\tConsensus Lineage") self.assertEqual(output[1], "1\t4.4408920985e-16\t1.7763568394e-15\t8.881784197e-16\t-1.0\ttaxon2") self.assertEqual(len(output), 5)
def test_run_correlation_OTUs(self): """run_single_correlation works""" category_info = {"sample1": "0.1", "sample2": "0.2", "sample3": "0.3", "sample4": "0.4"} OTU_sample_info = { "0": {"sample1": "0", "sample2": "1", "sample3": "2", "sample4": "3"}, "1": {"sample1": "7", "sample2": "5", "sample3": "3", "sample4": "1"}, "2": {"sample1": "4", "sample2": "4.2", "sample3": "4", "sample4": "4"}, "3": {"sample1": "0", "sample2": "1", "sample3": "0", "sample4": "1"}, } OTU_list = ["1", "0", "2", "3"] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) # OTU 0 should be positively correlated, 1 negative, and 2&3 neutral self.assertFloatEqual(result["0"], [1.0, 0.0, 0.0]) self.assertFloatEqual(result["1"], [-0.99999999999999956, 4.4408920985006281e-16, 1.7763568394002513e-15]) self.assertFloatEqual(result["2"], [-0.25819888974715061, 0.74180111025284945, 2.9672044410113978]) self.assertFloatEqual(result["3"], [0.44721359549995815, 0.55278640450004191, 2.2111456180001676]) # test that appropriate error is raised is categorical category_info = {"sample1": "A", "sample2": "B", "sample3": "A", "sample4": "B"} self.assertRaises(ValueError, run_correlation_OTUs, OTU_list, category_info, OTU_sample_info)
def test_output_results_correlation(self): """output_results_correlation works""" category_info = {'sample1':'0.1', 'sample2':'0.2', 'sample3':'0.3', 'sample4':'0.4'} OTU_sample_info = {'0': {'sample1': '0', 'sample2': '1', 'sample3': '2', 'sample4': '3'}, '1': {'sample1': '7', 'sample2': '5', 'sample3': '3', 'sample4': '1'}, '2': {'sample1': '4', 'sample2': '4.2', 'sample3': '4', 'sample4': '4'}, '3': {'sample1': '0', 'sample2': '1', 'sample3': '0', 'sample4': '1'}} taxonomy_info = {'0': 'taxon1', '1': 'taxon2', '2': 'taxon3', '3': 'taxon4'} OTU_list = ['1', '0', '2', '3'] result = run_correlation_OTUs(OTU_list, category_info, OTU_sample_info) output = output_results_correlation(result, taxonomy_info) self.assertEqual(output[0], 'OTU\tprob\totu_values_y\tcat_values_x\tBonferroni_corrected\tFDR_corrected\tr\tConsensus Lineage') self.assertEqual(output[1], '1\t4.4408920985e-16\t[1.0, 7.0, 3.0, 5.0]\t[0.40000000000000002, 0.10000000000000001, 0.29999999999999999, 0.20000000000000001]\t1.7763568394e-15\t8.881784197e-16\t-1.0\ttaxon2') self.assertEqual(len(output), 5)