Skip to content
Snippets Groups Projects
Commit f17ea6ff authored by nservant's avatar nservant
Browse files

[MODIF] update cooltools

parent dda1608f
No related branches found
No related tags found
No related merge requests found
......@@ -204,4 +204,23 @@ process {
]
ext.args = "--balance"
}
}
//********************************
// COMPARTMENTS
withName: 'CALL_COMPARTMENTS' {
ext.args = '--bigwig'
}
//********************************
// TADS
withName: 'INSULATION' {
ext.args = '15 25 50 --window-pixels'
}
withName: 'HIC_FIND_TADS' {
ext.args = '--correctForMultipleTesting fdr'
}
}
\ No newline at end of file
// Import generic module functions
include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:]
options = initOptions(params.options)
process compartment_calling {
tag "$sample - $res"
label 'process_medium'
publishDir "${params.outdir}/compartments", mode: 'copy'
when:
!params.skip_compartments
input:
tuple val(sample), val(res), path(cool), val(r)
path(fasta)
path(chrsize)
output:
path("*compartments*") optional true, emit:out_compartments
script:
"""
cooltools genome binnify --all-names ${chrsize} ${res} > genome_bins.txt
cooltools genome gc genome_bins.txt ${fasta} > genome_gc.txt
cooltools call-compartments --contact-type cis -o ${sample}_compartments ${cool}
awk -F"\t" 'NR>1{OFS="\t"; if(\$6==""){\$6=0}; print \$1,\$2,\$3,\$6}' ${sample}_compartments.cis.vecs.tsv | sort -k1,1 -k2,2n > ${sample}_compartments.cis.E1.bedgraph
"""
}
File moved
File moved
/*
* cooltools - call_compartments
*/
process CALL_COMPARTMENTS {
label 'process_medium'
input:
tuple val(meta), val(res), path(cool)
path(fasta)
path(chrsize)
output:
path("*compartments*"), emit: results
path("versions.yml"), emit: versions
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
"""
cooltools genome binnify --all-names ${chrsize} ${res} > genome_bins.txt
cooltools genome gc genome_bins.txt ${fasta} > genome_gc.txt
cooltools eigs-cis ${args} -o ${prefix}_compartments ${cool}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
cooltools: \$(cooltools --version 2>&1 | sed 's/cooletools, version //')
END_VERSIONS
"""
}
/*
* Cooltools - diamond-insulation
*/
process INSULATION {
label 'process_medium'
input:
tuple val(meta), path(cool)
output:
path("*tsv"), emit:results
path("versions.yml"), emit:versions
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
"""
cooltools insulation ${cool} ${args} > ${prefix}_insulation.tsv
cat <<-END_VERSIONS > versions.yml
"${task.process}":
cooltools: \$(cooltools --version 2>&1 | sed 's/cooltools, version //')
END_VERSIONS
"""
}
// Import generic module functions
include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:]
options = initOptions(params.options)
process tads_insulation {
tag "$sample - $res"
label 'process_medium'
publishDir "${params.outdir}/tads/insulation", mode: 'copy'
when:
!params.skip_tads && params.tads_caller =~ 'insulation'
input:
tuple val(sample), val(res), path(cool), val(r)
output:
path("*tsv"), emit:insulation_tads
script:
"""
cooltools diamond-insulation --window-pixels ${cool} 15 25 50 > ${sample}_insulation.tsv
"""
}
File moved
params.options = [:]
include { COMPARTMENT_CALLING } from '../../modules/local/compartment_calling' addParams( options: params.options )
include { CALL_COMPARTMENTS } from '../../modules/local/cooltools/eigs-cis'
workflow COMPARTMENTS {
take:
take:
cool
fasta
chrsize
main:
ch_versions = Channel.empty()
main:
CALL_COMPARTMENTS (
cool,
fasta.collect(),
chrsize.collect()
)
ch_versions = ch_versions.mix(CALL_COMPARTMENTS.out.versions)
emit:
emit:
versions = ch_versions
compartments = CALL_COMPARTMENTS.out.results
}
\ No newline at end of file
......@@ -8,9 +8,9 @@ include { COOLER_CLOAD } from '../../modules/nf-core/modules/cooler/cload/main'
include { COOLER_DUMP } from '../../modules/nf-core/modules/cooler/dump/main'
include { COOLER_ZOOMIFY } from '../../modules/nf-core/modules/cooler/zoomify/main'
include { COOLER_BALANCE } from '../../modules/local/balance'
include { COOLER_BALANCE } from '../../modules/local/cooler/balance'
include { SPLIT_COOLER_DUMP } from '../../modules/local/split_cooler_dump'
include { COOLER_MAKEBINS } from '../../modules/local/makebins'
include { COOLER_MAKEBINS } from '../../modules/local/cooler/makebins'
workflow COOLER {
......
params.options = [:]
include { TADS_HICEXPLORER } from '../../modules/local/tads_hicexplorer' addParams( options: params.options )
include { TADS_INSULATION } from '../../modules/local/tads_insulation' addParams( options: params.options )
include { INSULATION } from '../../modules/local/cooltools/insulation'
include { HIC_FIND_TADS } from '../../modules/local/hicexplorer/hicFindTADs'
workflow TADS {
take:
take:
cool
main:
ch_versions = Channel.empty()
ch_tads = Channel.empty()
main:
if (params.tads_caller =~ 'insulation'){
INSULATION(cool)
ch_versions = ch_versions.mix(INSULATION.out.versions)
ch_tads = ch_tads.mix(INSULATION.out.results)
}
if (params.tads_caller =~ 'hicexplorer'){
HIC_FIND_TADS(cool)
ch_versions = ch_versions.mix(HIC_FIND_TADS.out.versions)
ch_tads = ch_tads.mix(HIC_FIND_TADS.out.results)
}
emit:
emit:
tads = ch_tads
}
\ No newline at end of file
......@@ -96,9 +96,9 @@ ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multi
//
// MODULE: Local to the pipeline
//
//include { GET_SOFTWARE_VERSIONS } from '../modules/local/get_software_versions' addParams( options: [publish_files : ['tsv':'']] )
//include { OUTPUT_DOCUMENTATION } from '../modules/local/output_documentation' addParams( options: [publish_files : ['tsv':'']] )
//include { GET_SOFTWARE_VERSIONS } from '../modules/local/get_software_versions'
//include { OUTPUT_DOCUMENTATION } from '../modules/local/output_documentation'
include { HIC_PLOT_DIST_VS_COUNTS } from '../modules/local/hicexplorer/hicPlotDistVsCounts'
//
// SUBWORKFLOW: Consisting of a mix of local and nf-core/modules
//
......@@ -106,8 +106,8 @@ include { INPUT_CHECK } from '../subworkflows/local/input_check'
include { PREPARE_GENOME } from '../subworkflows/local/prepare_genome'
include { HICPRO } from '../subworkflows/local/hicpro'
include { COOLER } from '../subworkflows/local/cooler'
//include { COMPARTMENTS } from '../subworkflows/local/compartments'
//include { TADS } from '../subworkflows/local/tads'
include { COMPARTMENTS } from '../subworkflows/local/compartments'
include { TADS } from '../subworkflows/local/tads'
/*
========================================================================================
......@@ -190,6 +190,53 @@ workflow HIC {
ch_map_res
)
//
// MODULE: HICEXPLORER/HIC_PLOT_DIST_VS_COUNTS
//
if (!params.skip_dist_decay){
COOLER.out.cool
.combine(ch_ddecay_res)
.filter{ it[1] == it[3] }
.map { it -> [it[0], it[2]]}
.set{ ch_distdecay }
HIC_PLOT_DIST_VS_COUNTS(
ch_distdecay
)
}
//
// SUB-WORKFLOW: COMPARTMENT CALLING
//
if (!params.skip_compartments){
COOLER.out.cool
.combine(ch_comp_res)
.filter{ it[1] == it[3] }
.map { it -> [it[0], it[1], it[2]]}
.set{ ch_cool_compartments }
COMPARTMENTS(
ch_cool_compartments,
ch_fasta,
PREPARE_GENOME.out.chromosome_size
)
}
//
// SUB-WORKFLOW : TADS CALLING
//
if (!params.skip_tads){
COOLER.out.cool
.combine(ch_tads_res)
.filter{ it[1] == it[3] }
.map { it -> [it[0], it[2]]}
.set{ ch_cool_tads }
TADS(
ch_cool_tads
)
}
//
// MODULE: MultiQC
//
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment