🔧
tool
Nextflow简介
Nextflow采用数据流编程模型,更适合复杂的并行计算: ```groovy // main.nf params.reads = "data/*_{R1,R2}.fastq.gz" params.genome = "reference/genome.fa" params.gtf = "reference/genes.gtf" // 定义进程 process FASTQC { tag "$...
📖 定义
Nextflow采用数据流编程模型,更适合复杂的并行计算:
// main.nf
params.reads = "data/*_{R1,R2}.fastq.gz"
params.genome = "reference/genome.fa"
params.gtf = "reference/genes.gtf"
// 定义进程
process FASTQC {
tag "$sample_id"
input:
tuple val(sample_id), path(reads)
output:
path "fastqc_*"
script:
"""
fastqc -t 2 -o . ${reads}
"""
}
process STAR_ALIGN {
tag "$sample_id"
cpus 8
input:
tuple val(sample_id), path(reads)
path index
output:
tuple val(sample_id), path("*.sorted.bam")
script:
"""
STAR --runThreadN 8 \
--genomeDir $index \
--readFilesIn ${reads[0]} ${reads[1]} \
--readFilesCommand zcat \
--outSAMtype BAM SortedByCoordinate \
--outFileNamePrefix ${sample_id}_
mv ${sample_id}_Aligned.sortedByCoord.out.bam ${sample_id}.sorted.bam
"""
}
// 工作流
workflow {
Channel
.fromFilePairs(params.reads, checkIfExists: true)
.set { read_pairs }
FASTQC(read_pairs)
STAR_ALIGN(read_pairs, params.genome)
}