科学 Agent 实战用 nf-core/rnaseq 打通 Bulk RNA-seq 的 Reads → Counts 标准化流程【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills本指南以开源仓库 scientific-agent-skills 中bulk-rnaseqskill 的 Path A 实践文档skills/bulk-rnaseq/references/upstream-nfcore.md为主体系统讲解如何驱动社区审计过的 nf-core/rnaseq 流程完成从原始 FASTQ 到基因级表达矩阵的完整链路。读完本文你将掌握 samplesheet 的编写与校验、对齐/定量器选型、关键运行参数、输出目录解读以及如何把 nf-core 输出的计数矩阵无痛交接给 PyDESeq2 做差异表达分析。认识 Path A为什么用 nf-core/rnaseq 完成 reads → counts 阶段在 bulk RNA-seq 的完整工作流中bulk-rnaseqskill 把「原始测序 reads 到富集通路和图表」分为两大阶段其中reads → counts基因计数矩阵这一上游阶段有两条可互换路径Path A — nf-core/rnaseq一条命令驱动经过社区审计的标准流程适合追求可复现、规模化与完整 QC 报告的场景Path B — 独立工具链逐条手工执行 FastQC/fastp/STAR/Salmon/featureCounts适合少量样本与受限环境详见 skills/bulk-rnaseq/references/upstream-manual.md。nf-core/rnaseq是一条领域标准级的流程其内部把 reads → counts 阶段链式组织为FastQC → 修剪Trim Galore 或 fastp→ 可选污染/rRNA 去除 → 比对 定量STARSalmon、STARRSEM 或 HISAT2→ tximport 基因/转录本计数合并 → 全面 QC → MultiQC且每个 process 都有经过评审的默认参数和独立容器。仓库的整体路由决策Path A 与 Path B 的取舍可以回看 skills/bulk-rnaseq/SKILL.md 的 Two Upstream Paths 一节——总体建议是「不确定时优先 Path A」。需要说明的分工边界本文档只覆盖 nf-core/rnaseq怎么跑、产出什么至于 Nextflow 引擎本身profile、executor、容器 Docker/Singularity/Conda/Wave、HPC/云、-resume缓存、离线nf-core pipelines download属于仓库中nextflowskill 的范畴本仓库的技能组织刻意避免重复。撰写本文时当前稳定修订版本为3.26.0——nf-core 官方一贯建议始终用-r把流程修订版本钉死这是可复现分析的第一道保险。第一步编写并校验 samplesheetnf-core/rnaseq的输入不是散落的文件路径而是一个CSV samplesheet。表头必须完整四列含义与约束如下列名含义与规则sample样本 ID。多行共享同一sample值会被视为同一份样本跨多个 lane 测序流程会自动合并这些行fastq_1R1 FASTQ 的本地路径或 URL须为 gzip 压缩单端时这是唯一的 reads 列fastq_2R2 FASTQ单端数据留空即可strandedness文库链特异性auto推荐流程会用 Salmon 自动推断并对不匹配发出警告或你知道试剂盒信息时填写forward/reverse/unstranded。Illumina TruSeq Stranded mRNA 通常为reverse最小可用示例注意最后一个样本是单端sample,fastq_1,fastq_2,strandedness CONTROL_REP1,/data/ctrl1_R1.fastq.gz,/data/ctrl1_R2.fastq.gz,auto CONTROL_REP2,/data/ctrl2_R1.fastq.gz,/data/ctrl2_R2.fastq.gz,auto TREATED_REP1,/data/trt1_R1.fastq.gz,/data/trt1_R2.fastq.gz,auto TREATED_REP2,/data/trt1_R1.fastq.gz,,auto启动前先校验validate_samplesheet.py在投入昂贵计算资源之前用仓库自带的校验脚本把「便宜的错误」先拦下来python skills/bulk-rnaseq/scripts/validate_samplesheet.py --samplesheet samplesheet.csv从 skills/bulk-rnaseq/scripts/validate_samplesheet.py 的源码看该校验器承担着「错误(致命) vs 警告(建议)」的精细分级这正是它作为流水线前门闸门的产品逻辑致命错误errors缺sample/fastq_1列空单元格fastq_1与fastq_2指向同一文件同一个 R1 文件被多行复用strandedness不在合法集合{auto, forward, reverse, unstranded}匹配大小写不敏感同一sample混用双端与单端行本地 FASTQ 文件不存在。警告warnings缺少strandedness列nf-core 建议加上并用auto同一sample出现在多行会做 lane 合并属于正常现象远程 URLhttp://、https://、ftp://、s3://、gs://、az://无法校验存在性文件扩展名异常。脚本退出码约定为0 表示通过可带警告、1 表示存在错误便于接入 CI 或作为投递任务前的硬性门槛。更进一步的用法是附带设计元数据做「实验设计体检」python skills/bulk-rnaseq/scripts/validate_samplesheet.py \ --samplesheet samplesheet.csv \ --metadata metadata.csv --condition-col condition其中--min-replicates默认 3表示每组建议的生物学重复数--condition-col默认condition。传入 metadata 后会额外检查某个condition组只有 1 个重复无法估计组内方差判为错误小于--min-replicates给警告以及batch 与 condition 完全嵌套每个 batch 只含单一条件会被标记为混淆警告——这类设计在统计学上无法把批次效应与生物学效应分开是代价最昂贵的隐性错误。这些分级规则都已被仓库测试固化见 tests/bulk-rnaseq/test_scripts.py例如 duplicated FASTQ 是 fatal、同一样本跨 lane 是 warning、单样本组无法估计方差是 fatal、交叉crossedbatch 设计不会被误报。实验设计背后更完整的原理与阈值请阅读 skills/bulk-rnaseq/references/design-and-qc.md。选择比对器 / 定量器--aligner 与 --pseudo_alignerPath A 用--aligner选择「基因组比对」工具用--pseudo_aligner选择「轻量」定量工具默认值都经过精心挑选选项作用适用场景--aligner star_salmon默认STAR 基因组比对Salmon 基于 BAM 对转录组定量标准、可辩护的默认选择——同时得到 counts和一份可用于 QC/IGV 的基因组 BAM--aligner star_rsemSTAR RSEM明确需要 RSEM 估计值--aligner hisat2HISAT2 比对无内置转录本定量比 STAR 内存占用低--pseudo_aligner salmon配合--skip_alignment仅 Salmon 准比对不产出 BAM最快最轻量不需要基因组 BAM除非有明确理由否则推荐star_salmon。也可以在同一命令里加--pseudo_aligner salmon与 aligner 并存同时获得两套结果。运行 nf-core/rnaseq从冒烟测试到正式跑批三步走运行范式# 1. 先用内嵌小数据冒烟测试证明环境可用 nextflow run nf-core/rnaseq -r 3.26.0 -profile test,docker --outdir test_results # 2. 正式运行使用 iGenomes 参考基因组 key nextflow run nf-core/rnaseq -r 3.26.0 \ -profile docker \ --input samplesheet.csv \ --genome GRCh38 \ --aligner star_salmon \ --outdir results \ -resume # 3. 或显式提供自己的参考文件比 iGenomes key 更可复现 nextflow run nf-core/rnaseq -r 3.26.0 \ -profile singularity \ --input samplesheet.csv \ --fasta /ref/genome.fa --gtf /ref/annotation.gtf \ --aligner star_salmon --outdir results -resume要点-profile test,docker里的test会拉取流程自带的极小数据集用于在任何大跑批前证明 Nextflow 容器环境链路通畅--genome GRCh38这类 iGenomes key 使用方便但对自己指定--fasta/--gtf并固定版本更能保证可复现-resume让流程利用 Nextflow 的缓存机制从断点续跑避免重复计算。交互式生成一份经过校验、带完整参数说明的命令与参数文件可用nf-core pipelines launch rnaseq其引擎细节属于nextflowskill 范畴。高频实用参数速查参数作用与备注--save_reference保留构建好的 STAR/Salmon 索引避免重跑或其它项目重复建索引--trimmer trimgalore\|fastp选择修剪工具默认trimgalore--remove_ribo_rna启用 SortMeRNA rRNA 去除适用于未经 poly-A/ribo 耗竭的文库或想定量 rRNA 污染占比时--extra_salmon_quant_args--gcBias透传工具级参数给 Salmon--skip_*如--skip_markduplicates、--skip_stringtie按需跳过关卡加速迭代--gencode使用 GENCODE而非 Ensembl注释时务必开启确保基因 ID/biotype 解析正确引用基因组版本需要刻意选择并记录在案。--genome GRCh38的 iGenomes key 胜在便捷但自管--fasta/--gtf并把参考版本钉死是更可复现的做法——二者都应在 methods 部分明确记录版本号。读懂输出--outdir 下的关键产物以默认star_salmon为例--outdir下最重要的路径如下results/ ├── multiqc/ # MultiQC 报告——第一个要读的文件 ├── star_salmon/ │ ├── salmon.merged.gene_counts.tsv # 原始估计基因计数tximport, countsFromAbundanceno │ ├── salmon.merged.gene_counts_length_scaled.tsv # 长度标定计数——用于 DESeq2 │ ├── salmon.merged.gene_tpm.tsv # TPM用于可视化勿用于 DESeq2 │ ├── salmon.merged.gene_counts.rds # SummarizedExperimentR 对象 │ ├── SAMPLE/ # 每样本 Salmon 定量目录 │ └── deseq2_qc/ # 流程已生成的 PCA 与样本距离图 └── pipeline_info/ # 执行报告、软件版本、参数记录三个 gene-level TSV 的语义区分至关重要这也呼应了bulk-rnaseqskill「禁止把 TPM/FPKM 喂给 DESeq2」的核心红线salmon.merged.gene_counts.tsv——tximport 以countsFromAbundanceno得到的原始估计计数salmon.merged.gene_counts_length_scaled.tsv——长度标定计数是 PyDESeq2 的正确入口salmon.merged.gene_tpm.tsv——TPM仅供可视化绝不能用于差异表达分析。MultiQC 报告聚合了全流程各阶段的质控指标是你在正式做差异分析前必读的第一份材料pipeline_info/则保存了执行报告、软件版本与最终参数直接支撑 methods 章节的复现描述。QC 指标如何解读比对率、重复率、rRNA 比例等阈值详见 skills/bulk-rnaseq/references/design-and-qc.md。关键事实Path A 已内置 tximport无需再跑计数桥接脚本一个经常被忽略但极其省事的点nf-core/rnaseq 流程内部已经运行了 tximport因此走 Path A 时不需要再调用本 skill 的 skills/bulk-rnaseq/scripts/build_counts_matrix.py——直接使用star_salmon/下的合并 TSV 即可。对比之下Path B独立 STAR/Salmon/featureCounts才需要该脚本做quant.sf的基因级聚合。交接 PyDESeq2把 length-scaled 计数整理成整数矩阵salmon.merged.gene_counts_length_scaled.tsv是「基因 × 样本」布局带前导gene_id通常还有gene_name列且数值为非整数估计值。PyDESeq2 要求整数计数交接代码如下import pandas as pd df pd.read_csv(results/star_salmon/salmon.merged.gene_counts_length_scaled.tsv, sep\t) df df.drop(columns[c for c in [gene_name] if c in df.columns]).set_index(gene_id) counts df.round().astype(int) # genes x samples, integer counts.to_csv(counts.csv) # 交给 pydeseq2 skill它会转置为 samples x genes随后构造metadata.csvindex 与 counts 列名一致的 sample ID列含condition、batch等即可进入pydeseq2skill 的差异表达阶段。方向约定不要弄反counts.csv保持「基因 × 样本」转置.T交给下游 DE 环节统一处理不要自己转两次——这一约定在 skills/bulk-rnaseq/references/counts-and-handoff.md 有专门说明。两个补充建议先用流程自带的 QC 图做第一道检查star_salmon/deseq2_qc/下的 PCA 与样本距离图是运行你自己的对比contrast之前最便宜的 sanity check——它能暴露样本标签颠倒、离群样本与隐藏批次。直接四舍五入使用 length-scaled 计数的依据length-scaled 数值已把文库大小与转录本长度信息折算进数值中因此就近取整并按计数处理是基因级差异表达的成熟近似。R 侧的「正统」路线是tximport → DESeqDataSetFromTximport以原始计数 每条基因的平均转录本长度 offset 让 DESeq2 在模型内部处理长度PyDESeq2 不接受该 offset所以「length-scaled 取整」是 Python 生态的标准等价方案也是 nf-core 面向下游分析对外呈现的形式。完整论证与基于 offset 的替代路线请阅读 skills/bulk-rnaseq/references/counts-and-handoff.md。从差异表走向富集与可视化工作流收尾Path A 产出的gene_id多为带版本后缀的 Ensembl ID如ENSG00000141510.17而富集工具库Enrichr/MSigDB/g:Profiler通常要求基因 symbol。交接pathway-enrichmentskill 之前务必完成 ID 映射strip 版本后缀、Ensembl→symbol这是「富集结果全为空」的头号原因——nf-core 输出的gene_name列在 Path A 上恰好直接提供了 symbol记得保留它。GSEApreranked用全量基因列表按 Wald 检验的stat排序不先做阈值截断ORA用阈值化命中列表padj 0.05可选加|log2FoldChange| 1可考虑上/下调分别做。之后可交给scientific-visualizationskill 产出火山图、MA 图、热图与富集气泡图。至此从原始 FASTQ 到差异基因与富集通路的完整链路在 Path A 上闭环。小结Path A 的正确打开方式把 nf-core/rnaseq 用好本质上是一套纪律用 samplesheet 明确输入并用校验脚本提前拦截 → 固定修订版本-r 3.26.0与参考基因组版本 → 默认star_salmon、按需裁剪--skip_*→ 先看 MultiQC 再看deseq2_qc→ 用 length-scaled 计数四舍五入交接 PyDESeq2。这套流程的每一步决策依据分别沉淀在 skills/bulk-rnaseq/SKILL.md整体路由、skills/bulk-rnaseq/references/design-and-qc.md实验设计与 QC 阈值、skills/bulk-rnaseq/references/counts-and-handoff.md计数交接细节可继续按需深挖。【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考