rovertsins
rovertsins

Reputation: 1

How to execute only jobs where "Reason" is equal to "missing output files"

In the version of Snakemake that I have just updated to (7.15.2), "snakemake -n" will return the "Reason" for each job. This could be for example "input files updated by another job", "missing output files" or "updated input files". I only want to run jobs where the reason is "missing output files", and ignore all jobs that have any other reason. In a previous version of Snakemake (7.3.2), there was some command line flag like "--rerun-triggers-mtime" or something (can't remember exactly what) that allowed this.

How can i do this on snakemake 7.15.2?

Upvotes: 0

Views: 811

Answers (1)

dariober
dariober

Reputation: 9062

You could get a summary of the workflow to extract the missing files, then use this list of missing files as input to the actual execution. E.g.:

# Show summary of jobs
snakemake -S

# Get filenames where status (column 6) is missing:
x=`snakemake -S | awk -v FS='\t' '$6 == "missing"' | cut -f 1`

# Run workflow
snakemake -j 1 -n $x 

Upvotes: 3

Related Questions