def resamplestats(args):
    """
    %prog resamplestats prefix run.log

    Prepare resample results table. Ten subsets of original data were generated
    and ALLMAPS were iterated through them, creating `run.log` which contains the
    timing results. The anchor rate can be found in `prefix.0.{1-10}.summary.txt`.
    """
    p = OptionParser(resamplestats.__doc__)
    opts, args = p.parse_args(args)

    if len(args) != 2:
        sys.exit(not p.print_help())

    pf, runlog = args
    fp = open(runlog)
    Real = "real"
    times = []
    for row in fp:
        # real    10m31.513s
        if not row.startswith(Real):
            continue
        tag, time = row.split()
        assert tag == Real
        m, s = time.split('m')
        s = s.rstrip('s')
        m, s = float(m), float(s)
        time = m + s / 60
        times.append(time)

    N = len(times)

    rates = []
    for i in xrange(-N + 1, 1, 1):
        summaryfile = "{0}.{1}.summary.txt".format(pf, 2 ** i)
        fp = open(summaryfile)
        lines = fp.readlines()
        # Total bases    580,791,244 (80.8%)    138,298,666 (19.2%)
        pct = float(lines[-2].split()[3].strip("()%"))
        rates.append(pct / 100.)

    assert len(rates) == N

    print("ratio\tanchor-rate\ttime(m)")
    for j, i in enumerate(xrange(-N + 1, 1, 1)):
        print("{0}\t{1:.3f}\t{2:.3f}".format(i, rates[j], times[j]))
def resamplestats ( args ) : p = OptionParser ( resamplestats . __doc__ ) opts , args = p . parse_args ( args ) if len ( args ) != 2 : sys . exit ( not p . print_help ( ) ) pf , runlog = args fp = open ( runlog ) Real = "real" times = [ ] for row in fp : if not row . startswith ( Real ) : continue tag , time = row . split ( ) assert tag == Real m , s = time . split ( 'm' ) s = s . rstrip ( 's' ) m , s = float ( m ) , float ( s ) time = m + s / 60 times . append ( time ) N = len ( times ) rates = [ ] for i in xrange ( - N + 1 , 1 , 1 ) : summaryfile = "{0}.{1}.summary.txt" . format ( pf , 2 ** i ) fp = open ( summaryfile ) lines = fp . readlines ( ) pct = float ( lines [ - 2 ] . split ( ) [ 3 ] . strip ( "()%" ) ) rates . append ( pct / 100. ) assert len ( rates ) == N print ( "ratio\tanchor-rate\ttime(m)" ) for j , i in enumerate ( xrange ( - N + 1 , 1 , 1 ) ) : print ( "{0}\t{1:.3f}\t{2:.3f}" . format ( i , rates [ j ] , times [ j ] ) )
%prog resamplestats prefix run.log

    Prepare resample results table. Ten subsets of original data were generated
    and ALLMAPS were iterated through them, creating `run.log` which contains the
    timing results. The anchor rate can be found in `prefix.0.{1-10}.summary.txt`.