Solution
process '2_rnaseq_mapping_star' {
input:
file genome from genome_file (1)
file genomeDir from genome_dir_ch (2)
set replicateId, file(reads) from reads_ch (3)
output:
set replicateId, file('Aligned.sortedByCoord.out.bam'), file('Aligned.sortedByCoord.out.bam.bai') into aligned_bam_ch (4)
script:
"""
# ngs-nf-dev Align reads to genome
STAR --genomeDir $genomeDir \
--readFilesIn $reads \
--runThreadN ${task.cpus} \
--readFilesCommand zcat \
--outFilterType BySJout \
--alignSJoverhangMin 8 \
--alignSJDBoverhangMin 1 \
--outFilterMismatchNmax 999
# 2nd pass (improve alignmets using table of splice junctions and create a new index)
mkdir genomeDir
STAR --runMode genomeGenerate \
--genomeDir genomeDir \
--genomeFastaFiles $genome \
--sjdbFileChrStartEnd SJ.out.tab \
--sjdbOverhang 75 \
--runThreadN ${task.cpus}
# Final read alignments
STAR --genomeDir genomeDir \
--readFilesIn $reads \
--runThreadN ${task.cpus} \
--readFilesCommand zcat \
--outFilterType BySJout \
--alignSJoverhangMin 8 \
--alignSJDBoverhangMin 1 \
--outFilterMismatchNmax 999 \
--outSAMtype BAM SortedByCoordinate \
--outSAMattrRGline ID:$replicateId LB:library PL:illumina PU:machine SM:GM12878
# Index the BAM file
samtools index Aligned.sortedByCoord.out.bam (5)
"""
}
| 1 | the genome fasta file. |
| 2 | the STAR genome index directory from the genome_dir_ch channel created in the process 1C_prepare_star_genome_index. |
| 3 | set containing replicate ID and pairs of reads. |
| 4 | set containing the replicate ID, resulting bam file and bam index. |
| 5 | line specifying the name of the resulting bam file which is indexed with samtools to create a bam index file (.bai). |