def batchlobstr(args):
    """
    %prog batchlobstr samples.csv

    Run lobSTR sequentially on list of samples. Each line contains:
    sample-name,s3-location
    """
    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)))
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 ) ) )
%prog batchlobstr samples.csv

    Run lobSTR sequentially on list of samples. Each line contains:
    sample-name,s3-location