@@ -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
8588if __name__ == "__main__" :
0 commit comments