def main(): """Run a few length or intersection calculations on human BED files. """ parser = argparse.ArgumentParser( description='Compute coverage and other stats of BED files.') parser.add_argument('bed_files', nargs='+', metavar='BEDFILE', help='One or more BED files.') parser.add_argument('-o', '--output', metavar='FN_OUT', help='Save the intersection file.') args = parser.parse_args() get_coverage_chrom = ft.partial(get_coverage, pred=in_mapped_contig) beds = map(get_coverage_chrom, args.bed_files) if len(beds) > 1: intersect = reduce(overlap_coverages, beds) beds.append(intersect) if args.output is not None: intersect.saveas(args.output) args.bed_files.append(args.output) else: args.bed_files.append('intersect') bases = map(number_of_bases_covered, beds) percents = map(lambda x: 100 * float(x) / genome_length, bases) print "filename, number of bases, percent of genome" for fn, base, perc in zip(args.bed_files, bases, percents): print fn, to_si(base), '%.2f' % perc
def main(): """Run a few length or intersection calculations on human BED files. """ parser = argparse.ArgumentParser( description='Compute coverage and other stats of BED files.') parser.add_argument('bed_files', nargs='+', metavar='BEDFILE', help='One or more BED files.') parser.add_argument('-v', '--verbose', action='store_true', help='Print runtime information') args = parser.parse_args() get_coverage_v = ft.partial(get_coverage, verbose=args.verbose) beds = map(get_coverage_v, args.bed_files) if len(beds) > 1: intersect = reduce(overlap_coverages, beds) beds.append(intersect) args.bed_files.append('intersect') bases = map(number_of_bases_covered, beds) percents = map(lambda x: 100 * float(x) / genome_length, bases) print "filename, number of bases, percent of genome" for fn, base, perc in zip(args.bed_files, bases, percents): print fn, to_si(base), '%.2f' % perc