def batchlobstr(args):
    p = OptionParser(batchlobstr.__doc__)
    p.add_option("--sep", default=",", help="Separator for building commandline")
    p.set_home("lobstr", default="s3://hli-mv-data-science/htang/str-build/lobSTR/")
    p.set_aws_opts(store="hli-mv-data-science/htang/str-data")
    opts, args = p.parse_args(args)

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

    samplesfile, = args
    store = opts.output_path
    computed = ls_s3(store)
    fp = open(samplesfile)
    skipped = total = 0
    for row in fp:
        total += 1
        sample, s3file = row.strip().split(",")[:2]
        exec_id, sample_id = sample.split("_")
        bamfile = s3file.replace(".gz", "").replace(".vcf", ".bam")

        gzfile = sample + ".{0}.vcf.gz".format("hg38")
        if gzfile in computed:
            skipped += 1
            continue

        print opts.sep.join("python -m jcvi.variation.str lobstr".split() + \
                            ["hg38",
                            "--input_bam_path", bamfile,
                            "--output_path", store,
                            "--sample_id", sample_id,
                            "--workflow_execution_id", exec_id,
                            "--lobstr_home", opts.lobstr_home,
                            "--workdir", opts.workdir])
    fp.close()
    logging.debug("Total skipped: {0}".format(percentage(skipped, total)))
Test if we're unsubscribed, we don't get messages
dataset/ETHPy150Open tanghaibao/jcvi/variation/str.py/batchlobstr--crossover with--dataset/ETHPy150Open ebu/radiodns-plugit/RadioVisServer/tests.py/MainTests.test_unsubscribe_dontmnessage