Closed half-adder closed 1 year ago
Hi half-adder,
so it looks like the memory assignment in DNA cluster_config.yaml should indeed read 'Bowtie2' with a capital B.
After you've changed the setting in the yaml, did you save a copy and rerun your DNA-mapping command with --clusterConfigFile modified_cluster_config.yaml
?
Where did you change the _default_
memory value - in the shared cluster config? If so, than you might need to run 'snakePipes config' afterwards and provide this new config with --clusterConfig
.
If you changed it in the merged cluster config yaml found in your output folder, than please save a copy, and provide to your DNA-mapping command as above.
Memory is always assigned per cpu, such that your total memory usage for a rule is threads*mem-per-cpu. This variable is populated by snakemake, taking the "memory" asset from the cluster config, or using the default memory (1G) otherwise.
Let me know if this was clear and if it fixed your issue. We'll fix the misspelling on our side.
Best,
Katarzyna
I am trying to adjust memory allocation per-rule in the DNA-mapping pipeline and not having success (running on test data). It seems that no matter what I set the
Bowtie2
job memory to, it uses 1GB.In the DNA-mapping.cluster_config.yaml file, the
snakemake_cmd
parameter looks like this:I added a statement to the DNA-mapping script to print the snakemake command being run which is the following:
I edited the
bowtie2
rule inDNA-mapping.cluster_config.yaml
to allocate 8G of memory (note that I changed the lowercase b to uppercase to match the rule name in the snakefiles. I also tried leaving the b lowercase):I also edited the
__default__
rule in the cluster config file to allocate 5G of memory:When I run the DNA-mapping command, snakemake prints out the following info for the Bowtie2 job:
As you can see, the memory allocated seems to be 1G instead of 8G (as it should be if pulling from the Bowtie2 cluster config rule) or 5G (as it should be if pulling from the
__default__
rule).Am I missing something here? How should I be defining the memory allocation?
Also what is the point of
--mem-per-cpu {cluster.memory}
? Looking through the code I have not been able to determine how snakePipes/snakemake/SLURM populates that field.