diff --git a/modules/getvisualisations.nf b/modules/getvisualisations.nf index dd61b33..44bc0c9 100644 --- a/modules/getvisualisations.nf +++ b/modules/getvisualisations.nf @@ -102,4 +102,44 @@ process GET_ARCS { get_arcs.R --clusters $clusters --genes $genes --breaks $breaks --output ${sample_id} """ +} + +process EXPORT_BEDPE { + + tag "${sample_id}" + label 'process_low' + + publishDir "${params.outdir}/igv", mode: 'copy', overwrite: true + + input: + val(type) + tuple val(sample_id), path(hybrids) + + output: + tuple val(sample_id), path("${sample_id}.${type}.bedpe.gz"), emit: bedpe + + script: + """ + #!/usr/bin/env Rscript + + suppressPackageStartupMessages(library(data.table)) + suppressPackageStartupMessages(library(toscatools)) + + hybrids.dt <- fread("$hybrids") + hybrids.dt <- toscatools::reorient_hybrids(hybrids.dt) + + if("$type" == "hybrids") { + bedpe.colnames <- c("L_seqnames", "L_start", "L_end", "R_seqnames", "R_start", "R_end", "name", "total_count", "L_strand", "R_strand") + bedpe.dt <- hybrids.dt[, ..bedpe.colnames] + } else if("$type" == "clusters") { + bedpe.colnames <- c("L_seqnames", "L_start", "L_end", "R_seqnames", "R_start", "R_end", "name", "count", "L_strand", "R_strand") + bedpe.dt <- hybrids.dt[, ..bedpe.colnames] + } + + bedpe.dt[, `:=` (L_start = L_start - 1, + R_start = R_start - 1)] + + fwrite(bedpe.dt, "${sample_id}.${type}.bedpe.gz", sep = "\t", col.names = FALSE, quote = FALSE) + """ + } \ No newline at end of file diff --git a/workflows/getvisualisations.nf b/workflows/getvisualisations.nf index 4cec2c9..e0d8d21 100644 --- a/workflows/getvisualisations.nf +++ b/workflows/getvisualisations.nf @@ -3,9 +3,11 @@ // Specify DSL2 nextflow.enable.dsl=2 -include { EXPORT_GENOMIC_BED as EXPORT_HYBRID_GENOMIC_BED; +include { EXPORT_GENOMIC_BED as EXPORT_HYBRIDS_GENOMIC_BED; EXPORT_GENOMIC_BED as EXPORT_CLUSTERS_GENOMIC_BED; EXPORT_GENOMIC_BAM; + EXPORT_BEDPE as EXPORT_HYBRIDS_BEDPE; + EXPORT_BEDPE as EXPORT_CLUSTERS_BEDPE; GET_CONTACT_MAPS; GET_ARCS } from '../modules/getvisualisations.nf' @@ -20,10 +22,13 @@ workflow GET_VISUALISATIONS { goi main: - EXPORT_HYBRID_GENOMIC_BED("hybrids", hybrids) - EXPORT_GENOMIC_BAM(EXPORT_HYBRID_GENOMIC_BED.out.bed, genome_fai.collect()) + EXPORT_HYBRIDS_GENOMIC_BED("hybrids", hybrids) + EXPORT_GENOMIC_BAM(EXPORT_HYBRIDS_GENOMIC_BED.out.bed, genome_fai.collect()) EXPORT_CLUSTERS_GENOMIC_BED("clusters", clusters) + EXPORT_HYBRIDS_BEDPE("hybrids", hybrids) + EXPORT_CLUSTERS_BEDPE("clusters", clusters) + if(params.goi) { GET_CONTACT_MAPS(hybrids, transcript_fai.collect(), goi.collect())