Commit f48afa99 authored by Thomas Van Parys's avatar Thomas Van Parys
Browse files

Allow a storage location and process specific store_ parameters (fixes #38)

parent 63438268
...@@ -90,6 +90,12 @@ activate_venv = """ ...@@ -90,6 +90,12 @@ activate_venv = """
set -eu set -eu
""" """
if (!params.storage_path){
storage_path = "$workflow.projectDir/storage"
} else {
storage_path = "$params.storage_path"
}
// Pipeline name must be alphanumeric // Pipeline name must be alphanumeric
assert params.name =~ /[a-zA-Z0-9_]+/ assert params.name =~ /[a-zA-Z0-9_]+/
...@@ -357,7 +363,10 @@ process allVsAllProteomes { ...@@ -357,7 +363,10 @@ process allVsAllProteomes {
tag "$hitsName" tag "$hitsName"
publishDir "${params.output}/proteome_blast_all_vs_all", mode: 'copy' publishDir "${params.output}/proteome_blast_all_vs_all", mode: 'copy'
//storeDir "${params.storage}/proteome_blast_all_vs_all"
if (params.storage_blast){
storeDir "$storage_path/$params.storage_blast"
}
input: input:
set file(fasta), database, databaseName, hitsName, speciesName, databaseSpeciesName from allVsAllInput set file(fasta), database, databaseName, hitsName, speciesName, databaseSpeciesName from allVsAllInput
...@@ -457,7 +466,10 @@ process ips { ...@@ -457,7 +466,10 @@ process ips {
module 'iprscan' // known stable iprscan/x86_64/5.22-61 . TODO old comment: the newer version crashed with stack trace due to a dependency problem (may have been fixed by now) module 'iprscan' // known stable iprscan/x86_64/5.22-61 . TODO old comment: the newer version crashed with stack trace due to a dependency problem (may have been fixed by now)
// this version is stable, newer versions caused all sorts of errors. TODO old comment: the newer version crashed with stack trace due to a dependency problem (may have been fixed by now) // this version is stable, newer versions caused all sorts of errors. TODO old comment: the newer version crashed with stack trace due to a dependency problem (may have been fixed by now)
publishDir "${params.output}/interproscan", mode: 'copy' publishDir "${params.output}/interproscan", mode: 'copy'
//storeDir "${params.storage}/interproscan"
if (params.storage_interproscan){
storeDir "$storage_path/$params.storage_interproscan"
}
tag "$species" tag "$species"
cpus 8 cpus 8
......
...@@ -69,14 +69,31 @@ params.venv_home = '' ...@@ -69,14 +69,31 @@ params.venv_home = ''
/* /*
* Storage can be used to permanently store intermediate data that * Storage can be used to permanently store intermediate data that
* can be re-used over different runs (eg. interpro scan) * can be re-used over different runs (eg. interproscan)
* *
* It uses the Cedalion id's and will simply skip a process when the * It uses the Cedalion id's and will simply skip a process when the
* exact output filename is found in storage. * exact output filename is found in storage.
* *
* It will NOT check if input or process has changed! * It will NOT check if input or process has changed!
*/ */
params.storage = 'storage'
/*
* Absolute path to permanent storage folder.
* When empty, this defaults to `storage` under the project dir.
*/
params.storage_path = ''
/*
* Storage subfolder to retrieve stored data from
*
* To avoid unknowingly re-using obsolete output, it's
* recommended to keep these values empty and set them
* only on the commandline as eg. `--storage_interproscan ips`
*/
params.storage_interproscan = ""
params.storage_blast = ""
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Executor and per-process configuration // Executor and per-process configuration
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment