예제 #1
0
def save_study(study, selected_snps, simulated_gencode, prefix, _save):
    Utilities.ensure_requisite_folders(prefix)
    _save(study)

    selected_snps_ = prefix + ".selected_snps.txt.gz"
    Utilities.write_iterable_to_file(selected_snps, selected_snps_)

    gencode_path = os.path.join(os.path.split(prefix)[0],  "gene_annotation.txt.gz")
    Utilities.save_dataframe(simulated_gencode, gencode_path)
예제 #2
0
def run(args):
    if os.path.exists(args.output):
        logging.info("Output exists. Nope.")
        return

    logging.info("Loading samples")
    samples = {x for x in TextFileTools.load_list(args.samples_whitelist)}

    logging.info("Processing file")
    Utilities.ensure_requisite_folders(args.output)
    Utilities.write_iterable_to_file(input_generator(args.input_file, samples), args.output)

    logging.info("Finished")
예제 #3
0
def run(args):
    if (not args.output
            and not args.output_blacklist) or (args.output
                                               and args.output_blacklist):
        logging.info("Provide only one output argument")
        return

    if args.output and os.path.exists(args.output):
        logging.info("Output path %s exists. Nope.", args.output)
        return

    if args.output_blacklist and os.path.exists(args.output_blacklist):
        logging.info("Output path for skipped variants %s exists. Nope.",
                     args.output_blacklist)
        return

    start = timer()
    logging.info("Started parsing DB SNP file")

    if args.output:
        Utilities.ensure_requisite_folders(args.output)
        entries = Utilities.lineify(
            DBSnp.generate(args.input,
                           args.fields,
                           args.keep_zero_based,
                           recode_observed=args.recode_observed))
        Utilities.write_iterable_to_file(entries, args.output,
                                         Utilities.to_line(args.fields))
    else:
        Utilities.ensure_requisite_folders(args.output_blacklist)
        entries = Utilities.lineify(
            DBSnp.generate_skips(args.input,
                                 args.fields,
                                 args.keep_zero_based,
                                 recode_observed=args.recode_observed))
        Utilities.write_iterable_to_file(
            entries, args.output_blacklist,
            Utilities.to_line(args.fields + ["reason"]))

    end = timer()
    logging.info("Finished parsing at %s", str(end - start))
예제 #4
0
def run(args):
    delim = args.delimiter
    out_delim = delim if delim else "\t"
    Utilities.write_iterable_to_file(
        _get_lines(args.input_file, args.columns, delim, out_delim),
        args.output_file)