nf-hack17-tutorial
Nextflow hands-on
实现RNA-Seq pipeline的概念证明
- 索引一个transcriptome文件
- 执行质量控制
- 进行量化
- 创建MultiQC报告
1 定义管道参数
该脚本script1.nf
定义了管道输入参数。使用以下命令运行它,以及不同的管道输入参数:
nextflow run script1.nf
nextflow run script1.nf --reads this/and/that
运行结果:
peng@sin-try2:~/nf-hack17-tutorial$ nextflow run script1.nf
N E X T F L O W ~ version 21.04.0-edge
Launching `script1.nf` [lonely_sammet] - revision: cd2b226e8a
reads: /home/peng/nf-hack17-tutorial/data/ggal/*_{
1,2}.fq
peng@sin-try2:~/nf-hack17-tutorial$ nextflow run script1.nf --reads this
N E X T F L O W ~ version 21.04.0-edge
Launching `script1.nf` [agitated_plateau] - revision: cd2b226e8a
reads: this
peng@sin-try2:~/nf-hack17-tutorial$ nextflow run script1.nf --reads and
N E X T F L O W ~ version 21.04.0-edge
Launching `script1.nf` [curious_lamport] - revision: cd2b226e8a
reads: and
peng@sin-try2:~/nf-hack17-tutorial$ nextflow run script1.nf --reads that
N E X T F L O W ~ version 21.04.0-edge
Launching `script1.nf` [ridiculous_franklin] - revision: cd2b226e8a
reads: that
练习 1.1
修改script1.nf
添加第四个名为的参数outdir
并将其设置为将用作管道输出目录的默认路径。
params.outdir = "results"
练习 1.2
修改script1.nf
以使用单个println
命令和多行字符串 语句打印所有管道参数
println """
reads: $params.reads
transcriptome: $params.transcriptome
multiqc: $params.multiqc
outdir: $params.outdir
"""
2 创建转录组索引
Nextflow 允许使用process
定义执行任何命令或用户脚本。
通过提供三个主要声明来定义流程:流程输入、流程输出 和最后的命令脚本。
第二个示例添加了该index
过程。它将转录组文件作为输入并使用该salmon
工具创建转录组索引。
请注意输入声明如何在进程上下文中定义一个transcriptome
变量,该变量在命令脚本中用于在 Salmon 命令行中引用该文件。
尝试使用以下命令运行它:
nextflow run script2.nf -with-singularity
使用了Docker 容器nextflow/rnaseq-nf
中定义的nextflow.config
文件 。
为了避免添加选项-with-docker
,在nextflow.config
文件中添加以下行
docker.enabled = true
练习 2.1
默认情况下启用 Docker 执行在nextflow.config
文件中添加上述设置
练习 2.2
使用println 运算符打印index_ch
通道的输出(不要将它与println
之前看到的语句混淆)
Channel
.from('foo', 'bar', 'baz', 'qux')
.println()
//index_ch.println()
练习 2.3
使用命令tree -a work
查看 Nextflow 如何组织流程工作目录
3 成对收集读取文件
如何将读取的文件配对,以便它们可以被Salmon映射
编辑脚本script3.nf
并添加以下语句作为最后一行:
read_pairs_ch.println()