diff --git a/build_pop.py b/build_pop.py index 4e8596a99f6c585d42dc6f3cfd1e483918ba9c97..b735b8f1d9ea53b574a34418b742092b5f1a2698 100755 --- a/build_pop.py +++ b/build_pop.py @@ -317,17 +317,10 @@ def confirm(deletions: dict, variants: dict): return input("Continue [Y/n]? ") in ["y", "Y", ""] -def main(): - args = parse_args() - reference = args.reference - sv_list = args.sv_list - output_dir = args.output_directory - tmp_dir = tempfile.mkdtemp() - haploid = args.haploid - nb_inds = args.nb_inds - +def init(output_dir, erase_output, sv_list, nb_inds, reference, proba_del, haploid, force_polymorphism, + coverage, read_len, insert_len_mean, insert_len_sd, threads, quiet=True): if os.path.isdir(output_dir): - if args.erase_output: + if erase_output: shutil.rmtree(output_dir) else: eprint("Error: output directory {0} already exists.".format(output_dir)) @@ -342,6 +335,8 @@ def main(): if not os.path.isfile(reference + ".fai"): os.system("samtools faidx " + reference) + tmp_dir = tempfile.mkdtemp() + prg_path = os.path.dirname(os.path.realpath(__file__)) os.mkdir(output_dir) @@ -357,21 +352,42 @@ def main(): print("GENERATE RANDOM DELETIONS VARIANTS...\n") try: - sv_sim = VariantsSimulator(sv_list, args.threads) - deletions = sv_sim.get_random_deletions(args.proba_del, args.reference) + sv_sim = VariantsSimulator(sv_list, threads) + deletions = sv_sim.get_random_deletions(proba_del, reference) print("") except InputException as e: print(e) return False - if args.quiet or confirm(deletions, sv_sim.variants): - genotypes_for_inds = build_genotypes_vcf_list(deletions, output_vcf, haploid, args.force_polymorphism, nb_inds, + if quiet or confirm(deletions, sv_sim.variants): + genotypes_for_inds = build_genotypes_vcf_list(deletions, output_vcf, haploid, force_polymorphism, nb_inds, tmp_dir, prg_path) build_fastas_chromosomes(reference, genotypes_for_inds, haploid, output_dir) - generate_samples_fastq(haploid, nb_inds, output_dir, args.coverage, args.read_len, args.insert_len_mean, - args.insert_len_sd, prg_path, args.threads) + generate_samples_fastq(haploid, nb_inds, output_dir, coverage, read_len, insert_len_mean, + insert_len_sd, prg_path, threads) print("DONE!\n") else: print("Aborted!\n") + +def main(): + args = parse_args() + reference = args.reference + sv_list = args.sv_list + output_dir = args.output_directory + haploid = args.haploid + nb_inds = args.nb_inds + erase_output = args.erase_output + proba_del = args.proba_del + threads = args.threads + force_polymorphism = args.force_polymorphism + coverage = args.coverage + read_len = args.read_len + insert_len_mean = args.insert_len_mean + insert_len_sd = args.insert_len_sd + quiet = args.quiet + + init(output_dir, erase_output, sv_list, nb_inds, reference, proba_del, haploid, force_polymorphism, + coverage, read_len, insert_len_mean, insert_len_sd, threads, quiet) + if __name__ == '__main__': sys.exit(main())