Skip to content
Snippets Groups Projects
ribowave.nf 4.01 KiB
Newer Older
elabaron's avatar
elabaron committed
/*
* 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
"""
}