ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 bulk-rnaseq 技能把定量输出汇总成 PyDESeq2 可用的基因计数矩阵

如何用 bulk-rnaseq 技能把定量输出汇总成 PyDESeq2 可用的基因计数矩阵 如何用 bulk-rnaseq 技能把定量输出汇总成 PyDESeq2 可用的基因计数矩阵【免费下载链接】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做完 STAR/Salmon/featureCounts 定量后你手里通常是一堆按样本散落的输出每个样本一个quant.sf、一份*.ReadsPerGene.out.tab或者一张 featureCounts 合并矩阵。要做差异表达下一步需要把它们汇成 PyDESeq2 能直接读的两个文件基因 × 样本的整数计数矩阵counts.csv和按样本描述设计的metadata.csv。scientific-agent-skills 的bulk-rnaseq技能专门负责这一段桥接其 build_counts_matrix.py 脚本接收三种定量输出之一写出整数计数矩阵和一份待填写的元数据模板随后交给同仓库的pydeseq2技能跑 DESeq2。这套流程适用于 bulk RNA-seq单细胞数据应使用scanpy技能。前提是各样本用相同的工具、版本、参考基因组和参数完成定量——这是 SKILL.md 明确列出的前提否则汇总出的矩阵本身就不一致。这一步什么时候需要、什么时候不需要bulk-rnaseq技能把 reads → counts 分成两条上游路径只有 Path B独立工具需要这个汇总脚本Path B本文路径自己用 fastp/STAR/Salmon/featureCounts 逐步定量产出按样本的原始输出需要build_counts_matrix.py汇总成计数矩阵。完整定量命令见 upstream-manual.md。Path Anf-core/rnaseq不需要本文脚本nf-core/rnaseq内部已经跑了 tximport输出的是合并好的results/star_salmon/salmon.merged.gene_counts_length_scaled.tsv基因 × 样本按 upstream-nfcore.md 中的 pandas 片段四舍五入为整数即可直接交给 pydeseq2 技能无需再汇总。下文按 Path B 展开。准备输入布局与依赖安装本技能桥接部分所需的 Python 依赖uv pip install pytximport pandaspandas三种输入模式都需要pytximport仅 Salmon 模式需要脚本在缺失时会以Salmon mode needs pytximport. Install with: uv pip install pytximport退出提示相同。然后按你用的定量工具确认输入布局--from取值需要的输入脚本如何识别样本salmonquant/sample/quant.sf每个样本一个子目录样本名取子目录名也兼容直接把*.sf平铺在一个目录下star一个目录内含各样本的*.ReadsPerGene.out.tab样本名取文件名去掉后缀featurecounts一个合并好的 featureCounts 矩阵文件如counts/featurecounts.txt列名去掉.bam等后缀作为样本名走 Salmon 模式还必须先准备一张两列的tx2gene映射表transcript_id, gene_id因为 Salmon 输出是转录本级别的需要按它聚合到基因。counts-and-handoff.md 给了三种获取方式# 方式一从与定量相同的注释 GTF 提取权威与你的参考一致 awk -F\t $3transcript{ match($9,/transcript_id ([^])/,t); match($9,/gene_id ([^])/,g); print t[1]\tg[1] } \ annotation.gtf | sort -u | sed 1i transcript_id\tgene_id tx2gene.tsv# 方式二用 pytximport 内置的按物种建图 from pytximport.utils import create_transcript_gene_map create_transcript_gene_map(specieshuman) # human/mouse 等annotation.gtf替换为你实际使用的注释文件建图所用的 GTF 必须与定量时用的参考一致。执行汇总主路径是 Salmon配合 decoy-aware 定量参考 upstream-manual.md 中salmon quant ... -o quant/s1的布局python skills/bulk-rnaseq/scripts/build_counts_matrix.py --from salmon \ --quant-dir quant/ --tx2gene tx2gene.tsv --output-dir counts/--quant-dir和--tx2gene用的是文档示例中的路径替换成你自己的定量输出目录和映射表文件。参数含义--from选择定量工具salmon/star/featurecounts--output-dir指定输出目录默认counts/。替代路径按你实际用的定量工具二选一# STAR --quantMode GeneCounts 的输出目录 python skills/bulk-rnaseq/scripts/build_counts_matrix.py --from star \ --quant-dir star/ --strandedness reverse --output-dir counts/ # featureCounts 的合并矩阵 python skills/bulk-rnaseq/scripts/build_counts_matrix.py --from featurecounts \ --counts-file counts/featurecounts.txt --output-dir counts/STAR 模式的--strandedness必须与文库建库方式一致取值为unstranded/forward/reverse默认reverse。它决定从每个ReadsPerGene.out.tab的哪一列取计数unstranded 取第 2 列、forward 取第 3 列、reverse 取第 4 列第 1 列为 gene_id。选错列会静默丢掉约一半 readsIllumina TruSeq stranded mRNA最常见对应reverse。不确定时可用 Salmon-l A自动判定结果记录在quant/sample/lib_format_counts.jsonISR即 reverse再让 STAR/featureCounts 与之对齐。featureCounts 的链型在上游-s 0/1/2参数里就已确定脚本只负责解析现成矩阵。检查输出矩阵脚本写出两个文件并打印汇总信息示例具体基因数、样本数取决于你的数据Salmon: 3 samples - [s1, s2, s3] genes: 58000 (dropped 120 all-zero) samples: 3 wrote counts/counts.csv (genes x samples, integer) wrote counts/metadata_template.csv (fill in condition/batch, then run the pydeseq2 skill)核对要点方向counts.csv是基因 × 样本行 基因列 样本 ID。PyDESeq2 需要的是样本 × 基因这一步转置由 pydeseq2 侧的加载器完成pd.read_csv(..., index_col0).T不要自己先转置否则等于转了两次。整数PyDESeq2 只接受整数计数。STAR 和 featureCounts 输出本来就是整数Salmon 给的是分数估计值脚本内部用length_scaled_tpm聚合后四舍五入为整数。length-scaled 值已把文库大小和转录本长度信息折进数值因此取整后当计数用是文档认可的近似方式R 侧 tximport 的原始计数 平均转录本长度 offset路线 PyDESeq2 不接受。任何时候都不要把 TPM/FPKM 喂给 DESeq2。零基因剔除所有样本计数全为 0 的基因已被脚本丢弃打印中dropped N all-zero一行后续 pydeseq2 还会进一步做低计数过滤。重复样本名若打印WARNING: duplicate sample names detected — check your inputs.说明--quant-dir下有重名目录或列名先回去修正输入。填写元数据并交给 PyDESeq2metadata_template.csv每样本一行索引列sample与counts.csv的列名一致condition列预填CHANGE_ME、batch列留空。把它改成你设计的实际取值如control/treated另存为metadata.csv。PyDESeq2 侧要求 Python 3.11安装命令见 pydeseq2/SKILL.mduv pip install pydeseq20.5.4然后运行 pydeseq2 技能自带的分析脚本 run_deseq2_analysis.pypython skills/pydeseq2/scripts/run_deseq2_analysis.py \ --counts counts/counts.csv \ --metadata counts/metadata.csv \ --design ~condition \ --contrast condition treated control \ --output results/--contrast的格式是变量 测试水平 参考水平设计公式中协变量要放在兴趣变量之前如~batch condition。可选参数包括--min-counts 10低计数基因过滤阈值默认 10、--alpha 0.05、--n-cpus 4和--plots火山图/MA 图。脚本运行时的检查与打印本身就是交接验证读取counts.csv后自动转置为样本 × 基因并打印Counts shape: (样本数, 基因数)校验计数矩阵无负值发现负值会直接抛Count matrix contains negative values若 counts 与 metadata 的样本索引不完全一致打印警告并取交集Using N common samples——出现这条警告说明样本命名没对齐应回模板里改名字而不是放任交集过滤总计数低于阈值的基因打印最终形状Final data shape: X samples × Y genesDESeq2 拟合按 7 步推进size factors → 逐基因分散度 → 趋势曲线 → 先验 → MAP 分散度 → log fold change → Cooks distances看到✓ DESeq2 fitting complete说明矩阵可用且拟合完成。常见问题与边界Index mismatch between counts and metadata样本名必须完全一致。先打印两边索引核对counts.csv的列名与metadata.csv的索引。加载后基因全是 0 / 形状不对大概率是方向问题确认counts.csv仍是基因 × 样本转置交给加载器。Salmon 汇总前检查映射率quant/sample/logs/salmon_quant.log中报告的 mapping rate 异常低时先排查上游定量而不是继续汇总。设计层面的前置条件每组少于 3 个生物学重复会导致离散度估计不稳定、几乎没有统计功效batch 与 condition 完全混杂时效应不可恢复——这些在 design-and-qc.md 中有完整说明属于开跑定量之前就要确认的事。DE 跑通后deseq2_results.csv中的基因通常是 Ensembl ID。若后续要做通路富集pathway-enrichment技能的run_enrichment.py直接读该 CSV需先把 ID 映射为基因符号这是 counts-and-handoff.md 指出的什么都没富集到的头号原因GSEA 用完整基因列表按stat排序ORA 用padj 0.05的命中列表。【免费下载链接】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),仅供参考
返回列表