def run(self): f = self.begin_output() for filename in self.filenames: any = False name = os.path.splitext(os.path.split(filename)[1])[0] try: iterator = io.read_sequences(filename, qualities=True) except grace.Error: iterator = None if iterator is not None: total = 0 total_length = 0 for seq in io.read_sequences(filename, qualities=True): total += 1 total_length += len(seq[1]) print >> f, grace.datum(name, 'sequences', total) print >> f, grace.datum(name, 'average length', float(total_length) / total) print >> f any = True try: iterator = annotation.read_annotations(filename) except grace.Error: iterator = None if iterator: total = 0 counts = {} for item in iterator: total += 1 counts[item.type] = counts.get(item.type, 0) + 1 print >> f, grace.datum(name, 'features', total) for key in sorted(counts): print >> f, grace.datum(name, key + ' features', counts[key]) print >> f any = True if not any: raise grace.Error( filename + ' is neither a sequence file nor an annotation file that nesoni can read.' ) self.end_output(f)
def run(self): f = self.begin_output() for filename in self.filenames: any = False name = os.path.splitext(os.path.split(filename)[1])[0] try: iterator = io.read_sequences(filename, qualities=True) except grace.Error: iterator = None if iterator is not None: total = 0 total_length = 0 for seq in io.read_sequences(filename, qualities=True): total += 1 total_length += len(seq[1]) print >> f, grace.datum(name, 'sequences', total) print >> f, grace.datum(name, 'average length', float(total_length)/total) print >> f any = True try: iterator = annotation.read_annotations(filename) except grace.Error: iterator = None if iterator: total = 0 counts = { } for item in iterator: total += 1 counts[item.type] = counts.get(item.type,0)+1 print >> f, grace.datum(name, 'features', total) for key in sorted(counts): print >> f, grace.datum(name, key + ' features', counts[key]) print >> f any = True if not any: raise grace.Error(filename + ' is neither a sequence file nor an annotation file that nesoni can read.') self.end_output(f)
def run(self): f = self.begin_output() for filename in self.filenames: info = io.get_file_info(filename) any = False name = os.path.splitext(os.path.split(filename)[1])[0] if info.matches('sequences'): total = 0 total_length = 0 for seq in io.read_sequences(filename, qualities=True): total += 1 total_length += len(seq[1]) print >> f, grace.datum(name, 'sequences', total) print >> f, grace.datum(name, 'total bases', total_length) if total: print >> f, grace.datum(name, 'average length', float(total_length) / total) print >> f any = True if info.matches('annotations'): total = 0 counts = {} for item in annotation.read_annotations(filename, "/"): total += 1 counts[item.type] = counts.get(item.type, 0) + 1 print >> f, grace.datum(name, 'features', total) for key in sorted(counts): print >> f, grace.datum(name, key + ' features', counts[key]) print >> f any = True if info.matches('type-vcf'): reader_f = io.open_possibly_compressed_file(filename) reader = vcf.Reader(reader_f) n = 0 for item in reader: n += 1 print >> f, grace.datum(name, 'variants', n) any = True if not any: raise grace.Error('Don\'t know what to do with ' + filename) self.end_output(f)
def run(self): f = self.begin_output() for filename in self.filenames: info = io.get_file_info(filename) any = False name = os.path.splitext(os.path.split(filename)[1])[0] if info.matches('sequences'): total = 0 total_length = 0 for seq in io.read_sequences(filename, qualities=True): total += 1 total_length += len(seq[1]) print >> f, grace.datum(name, 'sequences', total) print >> f, grace.datum(name, 'total bases', total_length) if total: print >> f, grace.datum(name, 'average length', float(total_length)/total) print >> f any = True if info.matches('annotations'): total = 0 counts = { } for item in annotation.read_annotations(filename): total += 1 counts[item.type] = counts.get(item.type,0)+1 print >> f, grace.datum(name, 'features', total) for key in sorted(counts): print >> f, grace.datum(name, key + ' features', counts[key]) print >> f any = True if info.matches('type-vcf'): reader_f = io.open_possibly_compressed_file(filename) reader = vcf.Reader(reader_f) n = 0 for item in reader: n += 1 print >> f, grace.datum(name, 'variants', n) any = True if not any: raise grace.Error('Don\'t know what to do with ' + filename) self.end_output(f)