ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何对本地 FASTQ 运行 nf-core/rnaseq 完成 RNA-seq 差异表达分析

如何对本地 FASTQ 运行 nf-core/rnaseq 完成 RNA-seq 差异表达分析 如何对本地 FASTQ 运行 nf-core/rnaseq 完成 RNA-seq 差异表达分析【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins手里有一批本地 RNA-seq FASTQ成对测序数据目标是在本机或集群上跑通 nf-core/rnaseq 流程拿到 QC 报告与基因计数文件再用 DESeq2 完成差异表达分析。knowledge-work-plugins 仓库中的nextflow-development技能位于bio-research/skills/nextflow-development/给出了一条完整操作路径环境检查、test profile 验证、samplesheet 生成、正式运行和结果核验。本文按这条路径展开对应文档是 SKILL.md 与 rnaseq.md。前提本地机器上有 FASTQ 文件若是从 GEO/SRA 下载数据则不在本文范围RNA-seq 对应的管线版本固定为rnaseq 3.22.2。命令在哪个目录执行技能自带一批辅助脚本check_environment.py、generate_samplesheet.py、manage_genomes.py源文档中的脚本命令以技能目录为工作目录书写例如python scripts/check_environment.py。下文中这类命令默认在bio-research/skills/nextflow-development/目录下执行nextflow run命令则在你的数据目录包含samplesheet.csv的位置执行其输出目录相对该位置。第一步环境检查全部通过才继续环境不达标管线必然失败所以先跑预检脚本python scripts/check_environment.py脚本会检查 Docker、Nextflow、Java、系统资源与网络。所有关键项critical checks必须通过。源文档给出的对应修复方式问题修复Docker 未安装按官方渠道安装 Docker安装文档见 installation.md 中的 Linux/macOS 小节Docker Permission deniedsudo usermod -aG docker $USER后重新登录Docker 守护进程未运行sudo systemctl start dockerNextflow 未安装curl -s https://get.nextflow.io \| bash mv nextflow ~/bin/Nextflow 版本 23.04nextflow self-updateJava 未安装或版本 11sudo apt install openjdk-11-jdkHPC 或 Singularity 环境的问题如缓存目录配置见 troubleshooting.md 的 HPC/Singularity 小节。任一项检查失败时先解决它不要进入下一步。第二步用 test profile 验证环境正式跑数据前先用管线自带的小数据集验证环境这一步必须通过nextflow run nf-core/rnaseq -r 3.22.2 -profile test,docker --outdir test_rnaseqrnaseq.md给出的预期耗时约 15 分钟生成multiqc/multiqc_report.html。验证命令ls test_rnaseq/multiqc/multiqc_report.html grep Pipeline completed successfully .nextflow.log两条都成功文件存在、日志含完成语句说明 Docker 镜像拉取、Nextflow 与 Java 都可用。test 失败时先查 troubleshooting.md。第三步生成并校验 samplesheetrnaseq 的输入是一张 CSV samplesheet列定义如下来自 rnaseq.md列必填取值sample是字母数字允许下划线fastq_1是R1 的绝对路径fastq_2否R2 的绝对路径单端数据留空strandedness是auto、forward、reverse、unstranded文档示例示例结果路径需替换为你自己的文件sample,fastq_1,fastq_2,strandedness CONTROL_REP1,/path/to/ctrl1_R1.fq.gz,/path/to/ctrl1_R2.fq.gz,auto CONTROL_REP2,/path/to/ctrl2_R1.fq.gz,/path/to/ctrl2_R2.fq.gz,auto TREATMENT_REP1,/path/to/treat1_R1.fq.gz,/path/to/treat1_R2.fq.gz,autostrandedness 的取值说明auto从数据推断文档推荐forward对应 TruSeq Stranded、dUTP 方案reverse对应连接ligation-based方案unstranded对应非链特异性方案。注意fastq_1/fastq_2必须是绝对路径troubleshooting 文档把 No such file 错误直接归因于相对路径。如果不想手写 CSV可以用技能自带的生成脚本自动发现 FASTQ、配对 R1/R2、推断样本元数据并在写入前校验python scripts/generate_samplesheet.py /path/to/data rnaseq -o samplesheet.csv把/path/to/data替换为存放 FASTQ 的目录。已有 samplesheet 时则单独校验python scripts/generate_samplesheet.py --validate samplesheet.csv rnaseq数据类型拿不准时SKILL.md 提供了一个可选的自动检测脚本python scripts/detect_data_type.py /path/to/data。第四步确认参考基因组可用--genome参数接收 iGenomes key运行前先检查python scripts/manage_genomes.py check GRCh38 # 若未安装 python scripts/manage_genomes.py download GRCh38manage_genomes.py的download子命令会下载基因组资源需要磁盘空间与网络执行前确认目标目录容量足够。SKILL.md 列出的常用基因组GRCh38人、GRCh37legacy、GRCm39小鼠、R64-1-1酵母、BDGP6果蝇。而 rnaseq.md 的参数表示例给出的是GRCh38、GRCh37、mm10、BDGP6——两处对小鼠的 key 写法不一致GRCm39与mm10请按你的数据物种以实际可用的 iGenomes key 为准本文不替文档选定其一。下文的正式运行命令以人源GRCh38为例人源数据可直接沿用。第五步正式运行 rnaseq最小运行命令来自 rnaseq.md 的 Minimal runnextflow run nf-core/rnaseq -r 3.22.2 -profile docker \ --input samplesheet.csv --outdir results --genome GRCh38推荐加-resume中断后重跑同一命令可从检查点继续不必从头开始。关键参数说明来自 SKILL.md-r固定管线版本这里是3.22.2-profile docker使用 Docker 运行容器HPC 上改用singularity--inputsamplesheet 路径--genomeiGenomes key-resume从检查点恢复。对齐器用默认的star_salmon即可可选值为star_salmon、star_rsem、hisat2SKILL.md 的决策点建议在低内存机器上选hisat2。内存、CPU、时长受限时可追加资源上限可选--max_cpus 8 --max_memory 32.GB --max_time 24.h若不使用 iGenomes 而用自定义参考文档给出可选参数可选分支--fasta /path/to/genome.fa、--gtf /path/to/annotation.gtf、--star_index /path/to/star/STAR 索引不存在时会自动构建。第六步验证输出ls results/multiqc/multiqc_report.html grep Pipeline completed successfully .nextflow.log两条都通过即视为流程完成。主要产物目录结构来自 rnaseq.mdresults/ ├── star_salmon/ │ ├── salmon.merged.gene_counts.tsv # Raw counts for DESeq2 │ ├── salmon.merged.gene_tpm.tsv # TPM values │ └── *.bam # Alignments ├── multiqc/ │ └── multiqc_report.html # QC summary └── pipeline_info/差异分析的输入是results/star_salmon/salmon.merged.gene_counts.tsv基因计数salmon.merged.gene_tpm.tsv是归一化表达值适合浏览但文档标注 counts 才是 DESeq2/edgeR 的输入。QC 报告multiqc_report.html可在浏览器打开查看整体质量。用计数文件做差异表达DESeq2rnaseq.md 给出了下游 DESeq2 的代码框架文档示例coldata中的样本数与条件分组需按你的 samplesheet 实际样本改写library(DESeq2) counts - read.delim(salmon.merged.gene_counts.tsv, row.names1) coldata - data.frame( condition factor(c(control, control, treatment, treatment)) ) dds - DESeqDataSetFromMatrix( countData round(counts), colData coldata, design ~ condition ) dds - DESeq(dds) res - results(dds, contrast c(condition, treatment, control))示例中read.delim的路径是相对文件名实际文件位于results/star_salmon/下运行前把路径指向实际位置即可。常见问题与排查以下条目均来自 troubleshooting.md 与 rnaseq.md对应当前 RNA-seq 场景STAR 索引构建失败加大内存--max_memory 64.GB或提供预建索引--star_index /path/to/star/。比对率偏低先核对基因组与物种是否匹配再查 FastQC 中的接头污染也可换对齐器--aligner hisat2。链方向strandedness检测失败用--strandedness reverse显式指定常见取值forward、reverse、unstranded。退出码指示资源问题137、143、104、134、139、247 对应内存不足加大--max_memory如32.GB退出码 1 为一般错误查.nextflow.log。文档说明多数管线失败前会自动按 2 倍、3 倍资源重试。samplesheet 报 No such file确认所有 FASTQ 路径为绝对路径并用ls /path/to/file核实文件存在。断点续跑失败或中断后带-resume重跑原命令即可。若 resume 不生效先ls -la work/确认工作目录存在。文档还给出强制干净重启的办法rm -rf work/ .nextflow*后重跑——该命令会删除 work 目录与 Nextflow 缓存丢失全部已完成检查点仅在确认放弃缓存时使用且只影响当前运行目录。限制与说明SKILL.md 的 Disclaimer 明确该技能是展示 nf-core 管线集成的原型示例仅支持 rnaseq、sarek、atacseq 三条管线用于教育与研究目的不应视为未经验证即可用于生产环境计算环境与结果验证由使用者负责。正式发布结果时SKILL.md 建议引用对应管线的引用信息可从相应 nf-core 管线仓库的CITATIONS.md如 rnaseq 3.22.2 对应版本中查找。完整参数与输出文档的入口在 rnaseq.md 末尾列出可回到该文件查阅官方文档对应章节。【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进