Skip to content
Snippets Groups Projects
Verified Commit 6a3bd949 authored by Laurent Modolo's avatar Laurent Modolo
Browse files

rm existing pipeline

parent 854bb339
Branches
Tags
No related merge requests found
/*
* Ribowave :
* Inputs : gtf genome files
* Inputs : bam file
* Inputs : genome size file
*/
/* PARAMETERS */
params.gtf = ""
params.genome = ""
params.bam = ""
params.genomesize = ""
log.info "gtf file : ${params.gtf}"
log.info "genome fasta file : ${params.genome}"
log.info "bam file(s) : ${params.bam}"
log.info "genomesize file : ${params.genomesize}"
Channel
.fromPath( params.gtf )
.ifEmpty { error "Cannot find any fasta files matching: ${params.gtf}" }
.set { gtf_file }
Channel
.fromPath( params.genome )
.ifEmpty { error "Cannot find any fasta files matching: ${params.genome}" }
.set { genome_file }
Channel
.fromPath( params.bam )
.ifEmpty { error "Cannot find any fastq files matching: ${params.bam}" }
.set { bam_files }
bam_files.into {bam_deter_P_site ; bam_track_P_site}
Channel
.fromPath( params.genomesize )
.ifEmpty { error "Cannot find any index files matching: ${params.genomesize}" }
.set { genomesize_file }
/* CREATE ANNOTATION */
process create_annot {
publishDir "results/ribowave/annotation", mode: 'copy'
input:
file gtf from gtf_file
file genome from genome_file
output:
file "*" into annot_file
file "start_codon.bed" into start_codon_channel
file "final.ORFs" into finalORF_channel
file "exons.gtf" into exon_gtf_channel
script:
"""
/Ribowave/scripts/create_annotation.sh -G ${gtf} -f ${genome} -o ./ -s /Ribowave/scripts
"""
}
/* P-site determination */
process determination_P_site {
tag "$bam.baseName"
publishDir "results/ribowave", mode: 'copy'
input:
file bam from bam_deter_P_site
file start from start_codon_channel
output:
file "*" into p_site_channel
file "*psite1nt.txt" into psite1nt_channel
script:
"""
/Ribowave/scripts/P-site_determination.sh -i ${bam} -S ${start} -o ./ -n ${bam.baseName} -s /Ribowave/scripts
"""
}
/* P-site track */
process track_P_site {
tag "$bam.baseName"
publishDir "results/ribowave", mode: 'copy'
input:
file bam from bam_track_P_site
file exon from exon_gtf_channel
file genomesize from genomesize_file
file p_site from psite1nt_channel
output:
file "*" into track_p_site_channel
file "final.psite" into psite_channel
script:
"""
/Ribowave/scripts/create_track_Ribo.sh -i ${bam} -G ${exon} -g ${genomesize} -P ${p_site} -o ./ -n ${bam.baseName} -s /Ribowave/scripts
"""
}
/* ribowave Identifying translated ORF */
process ribowave_transORF {
publishDir "results/ribowave", mode: 'copy'
input:
file psite from psite_channel
file finalORF from finalORF_channel
output:
file "*" into ribowave_channel
script:
"""
/Ribowave/scripts/Ribowave -PD -a ${psite} -b ${finalORF} -o ./ -n ${bam.baseName} -s /Ribowave/scripts -p 2
"""
}
params.fastq = "$baseDir/data/fastq/*_{1,2}.fastq" /* we can use now a param -fastq to specify where are fastq files. this path is the default path */
params.fasta = "$baseDir/data/fasta/*.fasta"
params.bed = "$baseDir/data/annot/*.bed"
log.info "fastq files : ${params.fastq}"
log.info "fasta file : ${params.fasta}"
log.info "bed file : ${params.bed}"
Channel
.fromFilePairs( params.fastq )
.ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
.set { fastq_files }
Channel
.fromPath( params.fasta )
.ifEmpty { error "Cannot find any fasta files matching: ${params.fasta}" }
.set { fasta_files }
Channel
.fromPath( params.bed )
.ifEmpty { error "Cannot find any bed files matching: ${params.bed}" }
.set { bed_files }
process adaptor_removal {
tag "$pair_id"
publishDir "results/fastq/adaptor_removal/", mode: 'copy'
input:
set pair_id, file(reads) from fastq_files
output:
file "*_cut_R{1,2}.fastq.gz" into fastq_files_cut
script:
"""
cutadapt -a AGATCGGAAGAG -g CTCTTCCGATCT -A AGATCGGAAGAG -G CTCTTCCGATCT \
-o ${pair_id}_cut_R1.fastq.gz -p ${pair_id}_cut_R2.fastq.gz \
${reads[0]} ${reads[1]} > ${pair_id}_report.txt
"""
}
process trimming {
tag "${reads}"
cpus 4
publishDir "results/fastq/trimming/", mode: 'copy'
input:
file reads from fastq_files_cut
output:
file "*_trim_R{1,2}.fastq.gz" into fastq_files_trim
script:
"""
UrQt --t 20 --m ${task.cpus} --gz \
--in ${reads[0]} --inpair ${reads[1]} \
--out ${reads[0].baseName}_trim_R1.fastq.gz --outpair ${reads[1].baseName}_trim_R2.fastq.gz \
> ${reads[0].baseName}_trimming_report.txt
"""
}
process fasta_from_bed {
tag "${bed.baseName}"
cpus 4
publishDir "results/fasta/", mode: 'copy'
input:
file fasta from fasta_files
file bed from bed_files
output:
file "*_extracted.fasta" into fasta_files_extracted
script:
"""
bedtools getfasta -name \
-fi ${fasta} -bed ${bed} -fo ${bed.baseName}_extracted.fasta
"""
}
process index_fasta {
tag "$fasta.baseName"
publishDir "results/mapping/index/", mode: 'copy'
input:
file fasta from fasta_files_extracted
output:
file "*.index*" into index_files
script:
"""
kallisto index -k 31 --make-unique -i ${fasta.baseName}.index ${fasta} \
> ${fasta.baseName}_kallisto_report.txt
"""
}
process mapping_fastq {
tag "$reads"
cpus 4
publishDir "results/mapping/quantification/", mode: 'copy'
input:
file reads from fastq_files_trim
file index from index_files.toList()
output:
file "*" into counts_files
script:
"""
mkdir ${reads[0].baseName}
kallisto quant -i ${index} -t ${task.cpus} \
--bias --bootstrap-samples 100 -o ${reads[0].baseName} \
${reads[0]} ${reads[1]} &> ${reads[0].baseName}_kallisto_report.txt
"""
}
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$adaptor_removal {
container = "cutadapt:1.14"
}
}
}
sge {
process{
$adaptor_removal {
beforeScript = "module purge; module load cutadapt/1.14"
executor = "sge"
cpus = 1
memory = "5GB"
time = "6h"
queueSize = 1000
pollInterval = '60sec'
queue = 'h6-E5-2667v4deb128'
penv = 'openmp8'
}
}
}
}
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$trimming {
container = "urqt:d62c1f8"
}
}
}
sge {
process{
$trimming {
beforeScript = "module purge; module load UrQt/d62c1f8"
executor = "sge"
cpus = 4
memory = "5GB"
time = "6h"
queueSize = 1000
pollInterval = '60sec'
queue = 'h6-E5-2667v4deb128'
penv = 'openmp8'
}
}
}
}
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$fasta_from_bed {
container = "bedtools:2.25.0"
}
}
}
sge {
process{
$fasta_from_bed {
beforeScript = "module purge; module load BEDtools/2.25.0"
executor = "sge"
cpus = 1
memory = "5GB"
time = "6h"
queueSize = 1000
pollInterval = '60sec'
queue = 'h6-E5-2667v4deb128'
penv = 'openmp8'
}
}
}
}
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$index_fasta {
container = "kallisto:0.43.1"
}
$mapping_fastq {
container = "kallisto:0.43.1"
}
}
}
sge {
process{
$index_fasta {
beforeScript = "module purge; module load Kallisto/0.43.1"
executor = "sge"
cpus = 1
memory = "5GB"
time = "6h"
queueSize = 1000
pollInterval = '60sec'
queue = 'h6-E5-2667v4deb128'
penv = 'openmp8'
}
$mapping_fastq {
beforeScript = "module purge; module load Kallisto/0.43.1"
executor = "sge"
cpus = 4
memory = "5GB"
time = "6h"
queueSize = 1000
pollInterval = '60sec'
queue = 'h6-E5-2667v4deb128'
penv = 'openmp8'
}
}
}
}
Channel
.fromPath( "data/tiny_dataset/fasta/*.fasta" )
.set { fasta_file }
process sample_fasta {
publishDir "results/sampling/", mode: 'copy'
input:
file fasta from fasta_file
output:
file "*_sample.fasta" into fasta_sample
script:
"""
head ${fasta} > ${fasta.baseName}_sample.fasta
"""
}
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$create_annot {
container = "ribowave:1.0"
}
$determination_P_site {
container = "ribowave:1.0"
}
$track_P_site {
container = "ribowave:1.0"
}
$ribowave_transORF {
container = "ribowave:1.0"
}
}
}
sge {
process{
$create_annot {
beforeScript = "source /home/elabaron/.bashrc; module load BEDtools/2.25.0"
executor = "sge"
cpus = 8
memory = "5GB"
time = "6h"
queue = '*-E5-2667*'
penv = 'openmp8'
}
$determination_P_site {
beforeScript = "source /home/elabaron/.bashrc; module load BEDtools/2.25.0"
executor = "sge"
cpus = 8
memory = "5GB"
time = "6h"
queue = '*-E5-2667*'
penv = 'openmp8'
}
$track_P_site {
beforeScript = "source /home/elabaron/.bashrc; module load BEDtools/2.25.0"
executor = "sge"
cpus = 8
memory = "5GB"
time = "6h"
queue = '*-E5-2667*'
penv = 'openmp8'
}
$ribowave_transORF {
beforeScript = "source /home/elabaron/.bashrc; module load BEDtools/2.25.0"
executor = "sge"
cpus = 8
memory = "128GB"
time = "6h"
queue = '*-E5-2667*'
penv = 'openmp8'
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment