79489135

Date: 2025-03-06 11:18:49
Score: 0.5
Natty:
Report link

Your main command being run within the run_metropolis rule is:

./run_extended_metropolis.sh metropolis_extended

The replica number is not specified here, so how does this program know what output file name to create? My assumption is that within the shell script it looks for the existing files matching beta_0.1_b_0.01/data_1_first500/replica_*.csv and then creates a file with the next number in sequence.

This is not going to wash with Snakemake, since Snakemake is not running the jobs in order of the {replica} wildcard. See how it starts with replica 309. Even if you forced it to run in order, presumably you want your workflow to be able to run jobs in parallel, or retry failed jobs.

You are going to need to modify your bash_script so that the output file name can be explicitly supplied by Snakemake, not picked by the script. Depending on what that script does, you may even find it easier to invoke metropolis_extended directly.

If you get this working, then as pointed out by @cornelius-roemer in the comment above, you also have some extraneous stuff in your Snakefile:

And you should also use an explicit log: directive to specify the log file, rather than {params.outdir}/debug.log.

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @cornelius-roemer
  • Low reputation (0.5):
Posted by: Tim Booth