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)
Пример #2
0
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)
Пример #3
0
 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()