def test_filter_table_samples(self): """_filter_table_samples removes small samples from OTU table """ otu_table = """# QIIME v%s OTU table\n#OTU ID\tsample1\tsample2\tsample3 0\t0\t2\t0 1\t1\t0\t0 2\t1\t1\t1""" % __version__ otu_table = otu_table.split('\n') result = _filter_table_samples(otu_table, 2) self.assertEqual(result, "# QIIME v%s OTU table\n#OTU ID\tsample1\tsample2\n0\t0\t2\n1\t1\t0\n2\t1\t1" % __version__) result = _filter_table_samples(otu_table, 1) self.assertEqual(result, '\n'.join(otu_table)) result = _filter_table_samples(otu_table, 3) self.assertEqual(result, "# QIIME v%s OTU table\n#OTU ID\tsample2\n0\t2\n1\t0\n2\t1" % __version__)
def test_filter_table_samples(self): """_filter_table_samples removes small samples from OTU table """ otu_table = """#Full OTU Counts #OTU ID\tsample1\tsample2\tsample3 0\t0\t2\t0 1\t1\t0\t0 2\t1\t1\t1""".split('\n') result = _filter_table_samples(otu_table, 2) self.assertEqual(result, "#Full OTU Counts\n#OTU ID\tsample1\tsample2\n0\t0\t2\n1\t1\t0\n2\t1\t1") result = _filter_table_samples(otu_table, 1) self.assertEqual(result, '\n'.join(otu_table)) result = _filter_table_samples(otu_table, 3) self.assertEqual(result, "#Full OTU Counts\n#OTU ID\tsample2\n0\t2\n1\t0\n2\t1")
def test_filter_table_samples(self): """_filter_table_samples removes small samples from OTU table """ otu_table = """#Full OTU Counts #OTU ID\tsample1\tsample2\tsample3 0\t0\t2\t0 1\t1\t0\t0 2\t1\t1\t1""".split('\n') result = _filter_table_samples(otu_table, 2) self.assertEqual( result, "#Full OTU Counts\n#OTU ID\tsample1\tsample2\n0\t0\t2\n1\t1\t0\n2\t1\t1" ) result = _filter_table_samples(otu_table, 1) self.assertEqual(result, '\n'.join(otu_table)) result = _filter_table_samples(otu_table, 3) self.assertEqual( result, "#Full OTU Counts\n#OTU ID\tsample2\n0\t2\n1\t0\n2\t1")
def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) # process options (was originally process_options()) filepath=opts.otu_table_fp filename=filepath.strip().split('/')[-1] filename=filename.split('.')[0] params={} params['otu_file'] = opts.otu_table_fp params['min_otu_count'] = opts.min_count params['min_otu_samples'] = opts.min_samples params['seqs_per_sample']=opts.seqs_per_sample seqs_per_sample=params['seqs_per_sample'] otu_file=open(params['otu_file'], 'U') filtered_table_path=open(opts.output_otu_table_fp, 'w') if opts.include_taxonomy: included_taxa = set(map(strip, split_tax(opts.include_taxonomy))) else: included_taxa = set() if opts.exclude_taxonomy: excluded_taxa = set(map(strip, split_tax(opts.exclude_taxonomy))) else: excluded_taxa=set() params['included_taxa']=included_taxa params['excluded_taxa']=excluded_taxa seq_sample_output=[] if seqs_per_sample and params['min_otu_count']==1 and \ params['min_otu_samples']==2 and opts.include_taxonomy=='' and \ opts.exclude_taxonomy=='': otu_file2=otu_file.readlines() filtered_table = _filter_table_samples(otu_file2,seqs_per_sample) filtered_table_path.write(filtered_table) filtered_table_path.close() elif seqs_per_sample and (params['min_otu_count']<>1 or \ params['min_otu_samples']<>2 or opts.include_taxonomy<>'' or \ opts.exclude_taxonomy<>''): raise ValueError, 'You cannot supply seqs per sample with other filtering options. These features are mutually exclusive.' else: filter_table(params,filtered_table_path,otu_file)