[de0dc9]: / conf / modules.config

Download this file

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 }
        ]
    }
}