
nf-core 流程部署:快速入门

欢迎开始你的 nf-core 之旅!本指南将在 30 分钟内指导你完成第一次 RNA-seq 分析。
你将学到什么
本教程将带你完成:
- 环境检查和配置
- 获取测试数据
- 运行 nf-core RNA-seq 流程
- 查看和解读结果
前置准备
检查你的系统
你需要:
- 操作系统:macOS、Linux 或 Windows (WSL)
- 内存:至少 8 GB(推荐 16 GB)
- 磁盘空间:至少 10 GB 可用空间
- 互联网连接:用于下载软件和数据
检查已安装的软件
打开终端,运行以下命令:
# 检查 Docker(必需)
docker --version
# 检查 Nextflow(稍后安装)
nextflow -version
# 检查 Java(Nextflow 需要)
java -version如果 Docker 没有安装,请访问 https://docs.docker.com/get-docker/ 下载安装。
步骤 1:安装 Nextflow
Nextflow 是运行 nf-core 流程的框架。
# 下载 Nextflow
curl -s https://get.nextflow.io | bash
# 移动到可执行路径
sudo mv nextflow /usr/local/bin/
# 验证安装
nextflow -version你应该看到类似这样的输出:
nextflow version 23.10.1.5924步骤 2:运行测试流程
在处理真实数据之前,我们先运行一个测试来确保环境配置正确。
# 创建工作目录
mkdir -p nfcore_tutorial
cd nfcore_tutorial
# 运行 RNA-seq 测试流程
nextflow run nf-core/rnaseq \
-profile test,docker \
--outdir test_results这个命令会做什么:
- 下载 nf-core/rnaseq 流程
- 使用 Docker 容器运行
- 使用小型测试数据集
- 将结果保存到
test_results/目录
预期时间:5-15 分钟(取决于网络速度)
成功标志:
Pipeline completed successfully验证测试结果
# 检查输出
ls test_results/multiqc/multiqc_report.html如果文件存在,说明测试成功!
步骤 3:准备你的数据
现在我们准备分析真实数据。你有两个选择:
选项 A:使用你自己的数据
如果你有 FASTQ 格式的测序数据:
# 确保你的数据组织如下:
data/
├── sample1_R1.fastq.gz
├── sample1_R2.fastq.gz
├── sample2_R1.fastq.gz
└── sample2_R2.fastq.gz选项 B:下载公共数据(推荐新手)
我们将从 GEO 数据库下载一个小的 RNA-seq 数据集:
# 创建数据目录
mkdir -p data
# 使用 SRA 工具下载数据
# 注意:这是一个示例,你需要先安装 SRA toolkit
# 或使用工具提供的辅助脚本
python scripts/sra_geo_fetch.py download GSE110004 \
-o ./data \
--max-samples 2步骤 4:创建样本信息表
nf-core 需要一个 CSV 文件来描述你的样本。
创建 samplesheet.csv
cat > samplesheet.csv << EOF
sample,fastq_1,fastq_2,strandedness
control_1,$PWD/data/control_1_R1.fastq.gz,$PWD/data/control_1_R2.fastq.gz,auto
treatment_1,$PWD/data/treatment_1_R1.fastq.gz,$PWD/data/treatment_1_R2.fastq.gz,auto
EOF字段说明:
sample:样本名称fastq_1:R1(read 1)文件的绝对路径fastq_2:R2(read 2)文件的绝对路径strandedness:链特异性(auto = 自动检测)
验证样本信息表
# 检查格式
head samplesheet.csv
# 检查文件是否存在
cut -d',' -f2 samplesheet.csv | xargs ls -lh
cut -d',' -f3 samplesheet.csv | xargs ls -lh步骤 5:选择参考基因组
RNA-seq 分析需要参考基因组。
常用基因组
| 物种 | 基因组 ID | 描述 |
|---|---|---|
| 人类 | GRCh38 | 最新人类参考基因组 |
| 人类 | GRCh37 | 旧版(hg19) |
| 小鼠 | GRCm39 | 小鼠参考基因组 |
查看可用基因组
python scripts/manage_genomes.py list下载基因组(首次使用)
# 下载人类 GRCh38 基因组
python scripts/manage_genomes.py download GRCh38注意:基因组文件较大(~3 GB),下载可能需要时间。
步骤 6:运行完整分析
现在一切准备就绪,运行完整的 RNA-seq 分析!
nextflow run nf-core/rnaseq \
-r 3.22.2 \
-profile docker \
--input samplesheet.csv \
--genome GRCh38 \
--outdir results \
-resume参数说明:
-r 3.22.2:固定流程版本-profile docker:使用 Docker 容器--input:样本信息表--genome:参考基因组--outdir:输出目录-resume:如果中断,可以从断点继续
预期时间:1-4 小时(取决于样本数量和大小)
监控进度:
# 在另一个终端查看日志
tail -f .nextflow.log
# 或查看 MultiQC 报告(实时更新)
# 在浏览器中打开:results/multiqc/multiqc_report.html步骤 7:查看和解读结果
分析完成后,查看结果目录:
ls -lh results/关键输出文件
1. MultiQC 报告
results/multiqc/multiqc_report.html用途:整合所有样本的质量控制和分析结果 打开方式:在浏览器中打开
2. 基因计数矩阵
results/star_salmon/salmon.merged.gene_counts.tsv用途:每个基因在每个样本中的表达量(原始计数) 格式:TSV 文件,可在 Excel 中打开
3. TPM 表达矩阵
results/star_salmon/salmon.merged.gene_tpm.tsv用途:归一化的表达值(TPM) 用途:用于样本间比较和可视化
查看 MultiQC 报告
MultiQC 是一个交互式的 HTML 报告,包含:
质量控制:
- 测序质量分布
- GC 含量
- 序列长度分布
- 过滤和剪接统计
比对统计:
- 比对率
- 基因覆盖度
- 插入片段大小
表达分析:
- 样本间相关性
- 主成分分析(PCA)
- 样本聚类
步骤 8:下一步分析
nf-core RNA-seq 流程提供了定量的基因表达数据。下一步分析可能包括:
差异表达分析
虽然 nf-core 不包含差异表达分析,但你可以使用其他工具:
# 使用 DESeq2(R 包)
library(DESeq2)
# 读取基因计数
counts <- read.table("results/star_salmon/salmon.merged.gene_counts.tsv",
header=TRUE, row.names=1)
# 创建样本信息
coldata <- data.frame(
condition = c("control", "control", "treatment", "treatment")
)
# 运行 DESeq2
dds <- DESeqDataSetFromMatrix(countData=counts,
colData=coldata,
design=~condition)
dds <- DESeq(dds)
results <- results(dds)可视化
# 使用 Python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 读取 TPM 数据
tpm = pd.read_csv("results/star_salmon/salmon.merged.gene_tpm.tsv",
sep='\t', index_col=0)
# 绘制热图
sns.clustermap(tpm.corr())
plt.savefig('sample_correlation.png')常见问题
Q1: 测试流程失败
症状:测试流程报错
检查:
# 检查 Docker 是否运行
docker ps
# 查看详细错误
cat .nextflow.logQ2: 内存不足
症状:流程被系统杀死
解决:
# 限制内存使用
nextflow run nf-core/rnaseq \
-profile docker \
--input samplesheet.csv \
--genome GRCh38 \
--max_memory '8.GB'Q3: 分析时间太长
解决:
- 使用更少的样本
- 使用
-resume从断点继续 - 考虑使用 HPC 或云服务
恭喜你!
你已经完成了第一次 RNA-seq 分析!
现在你可以:
- 查看 MultiQC 报告了解数据质量
- 使用基因计数矩阵进行差异表达分析
- 尝试不同的参数和选项
下一步学习
- 阅读工作流程清单,了解完整的步骤
- 查看应用场景,学习真实案例
- 了解工作原理,理解 Nextflow 的机制
继续探索吧!