In this PR we move all output/target definitions to separate files. The new process for defining and using outputs is as follows:
1) For a process, create a snakemake file in targets like targets/preprocess.smk
2) Create an outputs dictionary that maps a rule name to a list of file path outputs. Ex:
3) Define output types as None, temp, protected, etc
4) Map outputs to their types with lib.shared.target_utils.map_outputs
5) Use these outputs in a Snakemake rule. Ex:
# Apply Laplacian-of-Gaussian filter to all channels
rule log_filter:
conda:
"../envs/sbs_process.yml"
input:
SBS_PROCESS_OUTPUTS["align"],
output:
SBS_PROCESS_OUTPUTS_MAPPED["log_filter"],
params:
skip_index=0,
script:
"../scripts/sbs_process/log_filter.py"
@mat10d this is ready for review! Let me know if you have any questions!
In this PR we move all output/target definitions to separate files. The new process for defining and using outputs is as follows:
1) For a process, create a snakemake file in targets like
targets/preprocess.smk
2) Create an outputs dictionary that maps a rule name to a list of file path outputs. Ex:3) Define output types as
None
,temp
,protected
, etc 4) Map outputs to their types withlib.shared.target_utils.map_outputs
5) Use these outputs in a Snakemake rule. Ex:@mat10d this is ready for review! Let me know if you have any questions!