diff --git a/src/RNAseq.nf b/src/RNAseq.nf index a7b2c46e307125cc216e7b7bc4654f1683fb3ed8..e70438dd3aed764a0557f8aff49e4e6daf2788b1 100644 --- a/src/RNAseq.nf +++ b/src/RNAseq.nf @@ -1,20 +1,39 @@ log.info "fastq files : ${params.fastq}" log.info "fasta file : ${params.fasta}" log.info "bed file : ${params.bed}" +log.info "fasta files : ${params.fasta}" +log.info "fastq files : ${params.fastq}" +log.info "index files : ${params.index}" + +params.fasta = "$baseDir/data/bam/*.fasta" +params.fasta = "$baseDir/data/fasta/*.fasta" +params.bed = "$baseDir/data/annot/*.bed" +params.fastq = "$baseDir/data/fastq/*_{1,2}.fastq" +params.index = "$baseDir/data/index/*.index.*" Channel .fromFilePairs( params.fastq ) .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" } .set { fastq_files } - params.fasta = "$baseDir/data/fasta/*.fasta" - params.bed = "$baseDir/data/annot/*.bed" +Channel + .fromPath( params.index ) + .ifEmpty { error "Cannot find any index files matching: ${params.index}" } + .set { index_files } - Channel +Channel + .fromPath( params.fasta ) + .ifEmpty { error "Cannot find any bam files matching: ${params.fasta}" } + .set { fasta_file } +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 +Channel .fromPath( params.bed ) .ifEmpty { error "Cannot find any bed files matching: ${params.bed}" } .set { bed_files } @@ -73,3 +92,41 @@ 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_file + + output: + file "*.index*" into index_files + file "*_kallisto_report.txt" into index_files_report + + script: +""" +kallisto index -k 31 --make-unique -i ${fasta.baseName}.index ${fasta} \ +2> ${fasta.baseName}_kallisto_report.txt +""" +} + +process mapping_fastq { + tag "$reads" + publishDir "results/mapping/quantification/", mode: 'copy' + + input: + set pair_id, file(reads) from fastq_files + file index from index_files.collect() + + output: + file "*" into counts_files + + script: +""" +mkdir ${pair_id} +kallisto quant -i ${index} -t ${task.cpus} \ +--bias --bootstrap-samples 100 -o ${pair_id} \ +${reads[0]} ${reads[1]} &> ${pair_id}/kallisto_report.txt +""" +}