Skip to content

Commit f50ba81

Browse files
committed
Add -recomb_map option for parallel_singer
singer_master already supports it.
1 parent d290cb8 commit f50ba81

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

SINGER/SINGER/parallel_singer

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def index_vcf(vcf_prefix, block_length):
1414
subprocess.run(["python", indexer, vcf_prefix, str(block_length)])
1515

1616

17-
def run_singer_in_parallel(vcf_prefix, output_prefix, mutation_rate, ratio, block_length, num_iters, thinning_interval, Ne, polar, num_cores):
17+
def run_singer_in_parallel(vcf_prefix, output_prefix, mutation_rate, ratio, block_length, num_iters, thinning_interval, Ne, polar, num_cores, recomb_map):
1818
"""Run singer in parallel using the specified parameters."""
1919

2020
# Read the breakpoints from the index file
@@ -31,7 +31,9 @@ def run_singer_in_parallel(vcf_prefix, output_prefix, mutation_rate, ratio, bloc
3131

3232
# Base command
3333
cmd = f"{singer_master_executable} -Ne {Ne} -m {mutation_rate} -ratio {ratio} -vcf {vcf_prefix} -output {output_prefix}_{i}_{i+1} -start {start} -end {start + block_length} -n {num_iters} -thin {thinning_interval} -polar {polar}"
34-
34+
if recomb_map:
35+
cmd += f" -recomb_map \"{recomb_map}\""
36+
3537
cmd_list.append(cmd)
3638

3739
# Execute the commands in parallel
@@ -57,8 +59,9 @@ def main():
5759
parser.add_argument("-thin", type=int, required=True, help="Thinning interval length.")
5860
parser.add_argument("-polar", type=float, default=0.5, required=False, help="Site flip probability. Default: 0.5.")
5961
parser.add_argument("-freq", type=float, default=1, required=False, help="Convert to tskit every {freq} samples. Default: 1.")
60-
parser.add_argument("-num_cores", type=int, default=20, required=False, help="Number of cores. Default: 20.")
61-
62+
parser.add_argument("-num_cores", type=int, default=20, required=False, help="Number of cores. Default: 20.")
63+
parser.add_argument("-recomb_map", default=None, required=False, help="Recombination map to use.")
64+
6265
if len(sys.argv) == 1:
6366
parser.print_help(sys.stderr)
6467
sys.exit(1)
@@ -79,7 +82,7 @@ def main():
7982
print(f"Number of cores: {args.num_cores}")
8083

8184
index_vcf(args.vcf, args.L)
82-
run_singer_in_parallel(args.vcf, args.output, args.m, args.ratio, args.L, args.n, args.thin, args.Ne, args.polar, args.num_cores)
85+
run_singer_in_parallel(args.vcf, args.output, args.m, args.ratio, args.L, args.n, args.thin, args.Ne, args.polar, args.num_cores, args.recomb_map)
8386
convert_long_ARG(args.vcf, args.output, args.n, args.freq)
8487

8588
if __name__ == "__main__":

0 commit comments

Comments
 (0)