Skip to content
Snippets Groups Projects
Commit 3884efc1 authored by elabaron's avatar elabaron
Browse files

add ribowave module

parent c13d38c7
Branches
Tags
No related merge requests found
FROM ubuntu:16.04
MAINTAINER Emmanuel Labaronne
ENV BEDTOOLS_VERSION=2.25.0*
ENV PACKAGES bedtools=${BEDTOOLS_VERSION}* \
r-base \
r-base-dev \
git
RUN apt-get update &&\
apt-get install -y --no-install-recommends ${PACKAGES} && \
apt-get clean
RUN printf "install.packages(c('reshape','ggplot2','wmtsa','parallel'), dep=TRUE, repos='http://cran.us.r-project.org') \n source('http://bioconductor.org/biocLite.R') \n biocLite('rhdf5')" > installpackages.R && \
Rscript installpackages.R
RUN git clone https://github.com/lulab/Ribowave.git &&\
chmod -R +x Ribowave/scripts
#!/bin/sh
docker build src/docker_modules/RiboWave/1.0 -t 'ribowave:1.0'
profiles {
docker {
docker.temp = 'auto'
docker.enabled = true
process {
$create_annot {
container = "ribowave:1.0"
}
$determination_P_site {
container = "ribowave:1.0"
}
}
}
sge {
process{
$create_annot {
beforeScript = ""
executor = ""
cpus = 1
memory = ""
time = ""
queueSize = 1000
pollInterval = ''
queue = ''
penv = ''
}
}
}
}
/*
* Ribowave :
* Inputs : fastq files
* Inputs : fasta files
* Output : bam files
*/
/* Create annotation */
params.gtf = "/media/manu/ManuDisque/gencode/gencode.v28.annotation.gtf"
params.genome = "/media/manu/ManuDisque/gencode/GRCh38.p12.genome.fa"
log.info "gtf file : ${params.gtf}"
log.info "genome fasta file : ${params.genome}"
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 }
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
script:
"""
/Ribowave/scripts/create_annotation.sh -G ${gtf} -f ${genome} -o ./ -s /Ribowave/scripts
"""
}
/*
* P-site determination
*/
params.bam = ""
params.start = ""
params.jobname = ""
log.info "bam file(s) : ${params.bam}"
log.info "start_codon file : ${params.start}"
log.info "job name : ${params.jobname}"
Channel
.fromPath( params.bam )
.ifEmpty { error "Cannot find any fastq files matching: ${params.bam}" }
.set { bam_files }
Channel
.fromPath( params.start )
.ifEmpty { error "Cannot find any index files matching: ${params.start}" }
.set { start_file }
process determination_P_site {
publishDir "results/ribowave/", mode: 'copy'
input:
file bam from bam_files
file start from start_file
output:
file "*" into p_site_channel
script:
"""
/Ribowave/scripts/P-site_determination.sh -i ${bam} -S ${start} -o ./ -n ${params.jobname} -s /Ribowave/scripts
"""
}
/*
* P-site track
*/
params.bam = ""
params.exon = ""
params.genome = ""
params.jobname = ""
params.p_site = ""
log.info "bam file(s) : ${params.bam}"
log.info "exon file : ${params.exon}"
log.info "genome file : ${params.genome}"
log.info "job name : ${params.jobname}"
log.info "job name : ${params.p_site}"
Channel
.fromPath( params.bam )
.ifEmpty { error "Cannot find any fastq files matching: ${params.bam}" }
.set { bam_files }
Channel
.fromPath( params.exon )
.ifEmpty { error "Cannot find any index files matching: ${params.exon}" }
.set { exon_file }
Channel
.fromPath( params.genome )
.ifEmpty { error "Cannot find any index files matching: ${params.genome}" }
.set { genome_file }
Channel
.fromPath( params.p_site )
.ifEmpty { error "Cannot find any index files matching: ${params.p_site}" }
.set { p_site_file }
process determination_P_site {
publishDir "results/ribowave/track_P_site", mode: 'copy'
input:
file bam from bam_files
file exon from exon_file
file genome from genome_file
file p_site from p_site_file
output:
file "*" into det_p_site_channel
script:
"""
/Ribowave/scripts/create_track_Ribo.sh -i ${bam} -G ${exon} -g ${genome} -P ${p_site} -o ./ -n ${params.jobname} -s /Ribowave/scripts
"""
}
/*
* for single-end data
*/
params.fastq = "$baseDir/data/fastq/*.fastq"
params.index = "$baseDir/data/index/*.index*"
params.mean = 200
params.sd = 100
log.info "fastq files : ${params.fastq}"
log.info "index files : ${params.index}"
log.info "mean read size: ${params.mean}"
log.info "sd read size: ${params.sd}"
Channel
.fromPath( params.fastq )
.ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
.set { fastq_files }
Channel
.fromPath( params.index )
.ifEmpty { error "Cannot find any index files matching: ${params.index}" }
.set { index_files }
process mapping_fastq {
tag "$reads.baseName"
cpus 4
publishDir "results/mapping/quantification/", mode: 'copy'
input:
file reads from fastq_files
file index from index_files.toList()
output:
file "*" into count_files
script:
"""
mkdir ${reads.baseName}
kallisto quant -i ${index} -t ${task.cpus} --single
--bias --bootstrap-samples 100 -o ${reads.baseName} \
-l ${params.mean} -s ${params.sd} -o ./ \
${reads} > ${reads.baseName}_kallisto_report.txt
"""
}
../../nextflow/nextflow src/nf_modules/Ribowave/test/Pipeline.nf -resume -with-dag results/ribowave_dag.pdf -with-timeline results/ribowave_timeline -c src/nf_modules/Ribowave/ribowave.config -profile docker --gtf /media/manu/ManuDisque/gencode/gencode.v27.annotation.gtf --genome /media/manu/ManuDisque/gencode/GRCh38.p10.genome.fa --bam /media/manu/ManuDisque/HIV_project/hg38/U937_CHX_hg38_allmerge_uniqMapped_sorted.bam --jobname U937_CHY_merged
params.bam = ""
params.start = ""
params.jobname = ""
log.info "bam file(s) : ${params.bam}"
log.info "start_codon file : ${params.start}"
log.info "job name : ${params.jobname}"
Channel
.fromPath( params.bam )
.ifEmpty { error "Cannot find any fastq files matching: ${params.bam}" }
.set { bam_files }
Channel
.fromPath( params.start )
.ifEmpty { error "Cannot find any index files matching: ${params.start}" }
.set { start_file }
process p_site {
publishDir "results/ribowave/P-site", mode: 'copy'
input:
file bam from bam_files
file start from start_file
output:
file "*" into p_site_channel
script:
"""
/Ribowave/scripts/P-site_determination.sh -i ${bam} -S ${start} -o ./ -n ${params.jobname} -s /Ribowave/scripts
"""
}
/*
* Ribowave :
* Inputs : fastq files
* Inputs : fasta files
* Output : bam files
*/
params.gtf = "/media/manu/ManuDisque/gencode/gencode.v28.annotation.gtf"
params.genome = "/media/manu/ManuDisque/gencode/GRCh38.p12.genome.fa"
params.bam = ""
params.jobname = ""
log.info "gtf file : ${params.gtf}"
log.info "genome fasta file : ${params.genome}"
log.info "bam file(s) : ${params.bam}"
log.info "job name : ${params.jobname}"
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 }
process create_annot {
publishDir "results/ribowave/gtf27/annot", mode: 'copy'
input:
file gtf from gtf_file
file genome from genome_file
output:
file "*" into annot_file_save
file "start_codon.bed" into annot_file
script:
"""
/Ribowave/scripts/create_annotation.sh -G ${gtf} -f ${genome} -o ./ -s /Ribowave/scripts
"""
}
process determination_P_site {
publishDir "results/ribowave/gtf27/deter_P_site", mode: 'copy'
input:
file bam from bam_files
file start from annot_file
output:
file "*" into p_site_channel
script:
"""
/Ribowave/scripts/P-site_determination.sh -i ${bam} -S ${start} -o ./ -n ${params.jobname} -s /Ribowave/scripts
"""
}
params.gtf = "/media/manu/ManuDisque/gencode/gencode.v28.annotation.gtf"
params.genome = "/media/manu/ManuDisque/gencode/GRCh38.p12.genome.fa"
log.info "gtf file : ${params.gtf}"
log.info "genome fasta file : ${params.genome}"
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 }
process create_annot {
publishDir "results/ribowave/", mode: 'copy'
input:
file gtf from gtf_file
file genome from genome_file
output:
file "*" into annot_file
script:
"""
mkdir annotation
/Ribowave/scripts/create_annotation.sh -G ${gtf} -f ${genome} -o annotation -s /Ribowave/scripts
"""
}
params.bam = ""
params.exon = ""
params.genome = ""
params.jobname = ""
params.p_site = ""
log.info "bam file(s) : ${params.bam}"
log.info "exon file : ${params.exon}"
log.info "genome file : ${params.genome}"
log.info "job name : ${params.jobname}"
log.info "job name : ${params.p_site}"
Channel
.fromPath( params.bam )
.ifEmpty { error "Cannot find any fastq files matching: ${params.bam}" }
.set { bam_files }
Channel
.fromPath( params.exon )
.ifEmpty { error "Cannot find any index files matching: ${params.exon}" }
.set { exon_file }
Channel
.fromPath( params.genome )
.ifEmpty { error "Cannot find any index files matching: ${params.genome}" }
.set { genome_file }
Channel
.fromPath( params.p_site )
.ifEmpty { error "Cannot find any index files matching: ${params.p_site}" }
.set { p_site_file }
process determination_P_site {
publishDir "results/ribowave/track_P_site", mode: 'copy'
input:
file bam from bam_files
file exon from exon_file
file genome from genome_file
file p_site from p_site_file
output:
file "*" into det_p_site_channel
script:
"""
/Ribowave/scripts/create_track_Ribo.sh -i ${bam} -G ${exon} -g ${genome} -P ${p_site} -o ./ -n ${params.jobname} -s /Ribowave/scripts
"""
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment