182 lines (162 with data), 6.5 kB
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config file for defining DSL2 per module options and publishing paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Available keys to override module options:
ext.args = Additional arguments appended to command in module.
ext.args2 = Second set of arguments appended to command in module (multi-tool modules).
ext.args3 = Third set of arguments appended to command in module (multi-tool modules).
ext.prefix = File name prefix for output files.
----------------------------------------------------------------------------------------
*/
process {
// ==============================================================================
// config for preprocess_ibis_bedfile_to_stimulus
// ==============================================================================
withName: "CENTER_AROUND_PEAK" {
publishDir = [
enabled: false
]
ext.args = { "-v N=${params.bed_peak_size}" }
ext.prefix = { "${meta.id}.centered" }
ext.suffix = { "bed" }
}
withName: "EXTRACT_FOREGROUND" {
publishDir = [
enabled: false
]
ext.args = {[
separator: '\t'
]}
ext.prefix = { "${meta.id}.foreground" }
}
withName: "EXTRACT_BACKGROUND_ALIENS" {
publishDir = [
enabled: false
]
ext.args = {[
separator: '\t'
]}
ext.prefix = { "${meta.id}.background_aliens" }
}
withName: "EXTRACT_BACKGROUND_SHADE" {
publishDir = [
enabled: false
]
ext.args = {[
meta.shade_args ? "${meta.shade_args}" : '',
"| awk '\$3 - \$2 >= ${params.bed_peak_size}'", // keep only the peaks that have certain size
].join(' ').trim()}
ext.prefix = { "${meta.id}.background_shade" }
}
withName: "EXTRACT_BACKGROUND_SHUFFLE" {
publishDir = [
enabled: false
]
ext.prefix = { "${meta.id}.background_shuffle" }
}
withName: "BEDTOOLS_SUBTRACT" {
publishDir = [
enabled: false
]
ext.prefix = { "${meta.id}.background_${meta.background_type}.clean" }
ext.args = {"-A"} // remove entire feature if any overlap
}
withName: "BACKGROUND_FOREGROUND_TO_STIMULUS_CSV" {
publishDir = [
path: {"${params.outdir}/data"},
mode: params.publish_dir_mode,
pattern: "*.csv",
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
ext.prefix = { "${meta.id}.stimulus" }
ext.suffix = { "csv" }
ext.args = {[
"-v column_name=background_type",
"-v column_value=${meta.background_type}"
].join(' ').trim()}
}
// ==============================================================================
// main config
// ==============================================================================
withName: "STIMULUS_SPLIT_TRANSFORM" {
publishDir = [
path: { "${params.outdir}/configs/${meta.id}" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
tag = { "${meta.id}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "STIMULUS_SPLIT_DATA" {
publishDir = [
enabled: false
]
ext.prefix = { "${meta.id}-split-${meta.split_id}" }
tag = { "${meta.id} - split: ${meta.split_id}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "STIMULUS_TRANSFORM_CSV" {
publishDir = [
path: { "${params.outdir}/transformed_data/${meta.id}" },
mode: params.publish_dir_mode,
when: params.save_data,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
ext.prefix = { "${meta.id}-split-${meta.split_id}-trans-${meta.transform_id}" }
tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "CHECK_MODEL" {
ext.args = { [
params.check_model_num_samples ? "-n ${params.check_model_num_samples}" : '',
params.debug_mode ? "--debug_mode" : ''
].flatten().unique(false).join(' ').trim()}
tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "STIMULUS_TUNE" {
ext.args = { [
params.debug_mode ? "--debug_mode" : ''
].flatten().unique(false).join(' ').trim()}
publishDir = [
path: { "${params.outdir}/tune_results/${meta.id}/${meta.split_id}/${meta.transform_id}" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
ext.prefix = { "${meta.id}-split-${meta.split_id}-trans-${meta.transform_id}-rep-${meta.replicate}" }
tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id} - replicate: ${meta.replicate}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "STIMULUS_PREDICT" {
ext.prefix = { "${meta.id}-split-${meta.split_id}-transf-${meta.transform_id}-rep-${meta.replicate}" }
tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id} - replicate: ${meta.replicate}" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "STIMULUS_COMPARE_TENSORS_COSINE" {
ext.args = { "--mode cosine_similarity" }
if (params.container_dev) {
container = params.container_dev
}
}
withName: "CONCAT_COSINE" {
ext.prefix = { "summary_cosine" }
publishDir = [
path: { "${params.outdir}/evaluation_results/" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}
}