def parse(self, fp, separator): con_names = [] con_bins = [] reader = CSVReader() for (cid, bid) in reader.readCSV(fp, separator): con_names.append(cid) con_bins.append(bid) return (con_names, con_bins)
def readOtuTable_(self, otu_file): """Parse singleM otu table""" reader = CSVReader() cols = None for l in reader.readCSV(otu_file, "\t"): if cols is None: cols = [l.index('read_names'), l.index('gene')] try: cols += [l.index('taxonomy')] except ValueError: pass continue yield tuple(l[i] for i in cols)
def readTaxTable(self, otu_file): """Parse graftm taxonomy table""" reader = CSVReader() for (cname, taxstring) in reader.readCSV(otu_file, "\t"): # strip _(num)_(num)_(num) suffix parsed = cname for _ in range(3): parsed = parsed.rstrip('1234567890') if not parsed.endswith('_') or len(parsed) < 2: raise ValueError( 'Error encountered when parsing contig name: %s' % cname) parsed = parsed[:-1] yield (parsed, taxstring)