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
No related tags found
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