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

add ribowave module

parent c13d38c7
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment