def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) map_file_name, otu_file_name, valid_states_str, num_seqs_per_otu = \ opts.map_fname, opts.otu_table_fp, opts.valid_states, \ opts.num_seqs_per_otu map_infile = open(map_file_name, 'U') otu_infile = open(otu_file_name, 'U') map_out_fname = opts.map_out_fname otu_out_fname = opts.otu_out_fname if map_out_fname is None and otu_out_fname is None: map_out_fname = map_file_name + '.filtered.xls' otu_out_fname = otu_file_name + '.filtered.xls' elif otu_out_fname is None: otu_out_fname = map_out_fname + '-otu.filtered.xls' elif map_out_fname is None: map_out_fname = otu_out_fname + '-map.filtered.xls' # write out the filtered mapping file map_outfile = open(map_out_fname, 'w') otu_outfile = open(otu_out_fname, 'w') filter_otus_and_map(map_infile, otu_infile, map_outfile, otu_outfile, valid_states_str, num_seqs_per_otu)
def main(): option_parser, opts, args =\ parse_command_line_parameters(**script_info) otu_table_fp = opts.otu_table_fp mapping_fp = opts.mapping_fp mapping_field = opts.mapping_field output_dir = opts.output_dir otu_table_base_name = splitext(split(otu_table_fp)[1])[0] mapping_data, headers, comments = parse_mapping_file(open(mapping_fp,'U')) try: field_index = headers.index(mapping_field) except ValueError: option_parser.error("Field is not in mapping file (search is case "+\ "and white-space sensitive). \n\tProvided field: "+\ "%s. \n\tValid fields: %s" % (mapping_field,' '.join(headers))) mapping_values = set([e[field_index] for e in mapping_data]) create_dir(output_dir) for v in mapping_values: v_fp_str = v.replace(' ','_') otu_table_output_fp = join(output_dir,'%s_%s.txt' % (otu_table_base_name, v_fp_str)) mapping_output_fp = join(output_dir,'mapping_%s.txt' % v_fp_str) filter_otus_and_map(open(mapping_fp,'U'), open(otu_table_fp,'U'), open(mapping_output_fp,'w'), open(otu_table_output_fp,'w'), valid_states_str="%s:%s" % (mapping_field,v), num_seqs_per_otu=1)
def get_result(valid_states_str, num_seqs_per_otu): otu_infile = StringIO(self.otu_tax_str) map_infile = StringIO(self.map_str) otu_outfile = StringIO('') map_outfile = StringIO('') filter_otus_and_map(map_infile, otu_infile, map_outfile, otu_outfile, valid_states_str, num_seqs_per_otu) otu_outfile.seek(0) map_outfile.seek(0) return otu_outfile.read(), map_outfile.read()