a b/conf/modules.config
1
/*
2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
    Config file for defining DSL2 per module options and publishing paths
4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
    Available keys to override module options:
6
        ext.args   = Additional arguments appended to command in module.
7
        ext.args2  = Second set of arguments appended to command in module (multi-tool modules).
8
        ext.args3  = Third set of arguments appended to command in module (multi-tool modules).
9
        ext.prefix = File name prefix for output files.
10
----------------------------------------------------------------------------------------
11
*/
12
13
process {
14
15
    // ==============================================================================
16
    // config for preprocess_ibis_bedfile_to_stimulus
17
    // ==============================================================================
18
19
    withName: "CENTER_AROUND_PEAK" {
20
        publishDir = [
21
            enabled: false
22
        ]
23
        ext.args   = { "-v N=${params.bed_peak_size}" }
24
        ext.prefix = { "${meta.id}.centered" }
25
        ext.suffix = { "bed" }
26
    }
27
28
    withName: "EXTRACT_FOREGROUND" {
29
        publishDir = [
30
            enabled: false
31
        ]
32
        ext.args = {[
33
            separator: '\t'
34
        ]}
35
        ext.prefix = { "${meta.id}.foreground" }
36
    }
37
38
    withName: "EXTRACT_BACKGROUND_ALIENS" {
39
        publishDir = [
40
            enabled: false
41
        ]
42
        ext.args = {[
43
            separator: '\t'
44
        ]}
45
        ext.prefix = { "${meta.id}.background_aliens" }
46
    }
47
48
    withName: "EXTRACT_BACKGROUND_SHADE" {
49
        publishDir = [
50
            enabled: false
51
        ]
52
        ext.args = {[
53
            meta.shade_args ? "${meta.shade_args}" : '',
54
            "| awk '\$3 - \$2 >= ${params.bed_peak_size}'",  // keep only the peaks that have certain size
55
        ].join(' ').trim()}
56
        ext.prefix = { "${meta.id}.background_shade" }
57
    }
58
59
    withName: "EXTRACT_BACKGROUND_SHUFFLE" {
60
        publishDir = [
61
            enabled: false
62
        ]
63
        ext.prefix = { "${meta.id}.background_shuffle" }
64
    }
65
66
    withName: "BEDTOOLS_SUBTRACT" {
67
        publishDir = [
68
            enabled: false
69
        ]
70
        ext.prefix = { "${meta.id}.background_${meta.background_type}.clean" }
71
        ext.args = {"-A"} // remove entire feature if any overlap
72
    }
73
74
    withName: "BACKGROUND_FOREGROUND_TO_STIMULUS_CSV" {
75
        publishDir = [
76
            path: {"${params.outdir}/data"},
77
            mode: params.publish_dir_mode,
78
            pattern: "*.csv",
79
            saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
80
        ]
81
        ext.prefix = { "${meta.id}.stimulus" }
82
        ext.suffix = { "csv" }
83
        ext.args = {[
84
            "-v column_name=background_type",
85
            "-v column_value=${meta.background_type}"
86
        ].join(' ').trim()}
87
    }
88
89
    // ==============================================================================
90
    // main config
91
    // ==============================================================================
92
93
    withName: "STIMULUS_SPLIT_TRANSFORM" {
94
        publishDir = [
95
            path: { "${params.outdir}/configs/${meta.id}" },
96
            mode: params.publish_dir_mode,
97
            saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
98
        ]
99
        tag = { "${meta.id}" }
100
        if (params.container_dev) {
101
            container = params.container_dev
102
        }
103
    }
104
105
    withName: "STIMULUS_SPLIT_DATA" {
106
        publishDir = [
107
            enabled: false
108
        ]
109
        ext.prefix = { "${meta.id}-split-${meta.split_id}" }
110
        tag = { "${meta.id} - split: ${meta.split_id}" }
111
        if (params.container_dev) {
112
            container = params.container_dev
113
        }
114
    }
115
116
    withName: "STIMULUS_TRANSFORM_CSV" {
117
        publishDir = [
118
            path: { "${params.outdir}/transformed_data/${meta.id}" },
119
            mode: params.publish_dir_mode,
120
            when: params.save_data,
121
            saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
122
        ]
123
        ext.prefix = { "${meta.id}-split-${meta.split_id}-trans-${meta.transform_id}" }
124
        tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id}" }
125
        if (params.container_dev) {
126
            container = params.container_dev
127
        }
128
    }
129
130
    withName: "CHECK_MODEL" {
131
        ext.args = { [
132
            params.check_model_num_samples ? "-n ${params.check_model_num_samples}" : '',
133
            params.debug_mode ? "--debug_mode" : ''
134
        ].flatten().unique(false).join(' ').trim()}
135
        tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id}" }
136
        if (params.container_dev) {
137
            container = params.container_dev
138
        }
139
    }
140
141
    withName: "STIMULUS_TUNE" {
142
        ext.args = { [
143
            params.debug_mode ? "--debug_mode" : ''
144
        ].flatten().unique(false).join(' ').trim()}
145
        publishDir = [
146
            path: { "${params.outdir}/tune_results/${meta.id}/${meta.split_id}/${meta.transform_id}" },
147
            mode: params.publish_dir_mode,
148
            saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
149
        ]
150
        ext.prefix = { "${meta.id}-split-${meta.split_id}-trans-${meta.transform_id}-rep-${meta.replicate}" }
151
        tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id} - replicate: ${meta.replicate}" }
152
        if (params.container_dev) {
153
            container = params.container_dev
154
        }
155
    }
156
157
    withName: "STIMULUS_PREDICT" {
158
        ext.prefix = { "${meta.id}-split-${meta.split_id}-transf-${meta.transform_id}-rep-${meta.replicate}" }
159
        tag = { "${meta.id} - split: ${meta.split_id} - transform: ${meta.transform_id} - replicate: ${meta.replicate}" }
160
        if (params.container_dev) {
161
            container = params.container_dev
162
        }
163
    }
164
165
    withName: "STIMULUS_COMPARE_TENSORS_COSINE" {
166
        ext.args = { "--mode cosine_similarity" }
167
        if (params.container_dev) {
168
            container = params.container_dev
169
        }
170
    }
171
172
    withName: "CONCAT_COSINE" {
173
        ext.prefix = { "summary_cosine" }
174
        publishDir = [
175
            path: { "${params.outdir}/evaluation_results/" },
176
            mode: params.publish_dir_mode,
177
            saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
178
        ]
179
    }
180
}
181