一文读懂InferCNV:Broad研究所单细胞CNV推断工具完全指南

📅 2026/8/23 12:48:20
一文读懂InferCNV:Broad研究所单细胞CNV推断工具完全指南
一文读懂InferCNVBroad研究所单细胞CNV推断工具完全指南【免费下载链接】infercnvInferring CNV from Single-Cell RNA-Seq项目地址: https://gitcode.com/gh_mirrors/in/infercnvInferCNV是 Broad 研究所开发的经典生信工具能够从单细胞 RNA-Seq 表达数据中推断细胞水平的拷贝数变异CNV即染色体的大规模扩增或缺失帮助你在肿瘤样本中快速识别恶性细胞、比较克隆异质性是癌症单细胞分析绕不开的基础工具。什么是 InferCNV它解决什么问题单细胞 RNA-Seq 测的是基因表达量而不是 DNA 拷贝数。但有一个重要生物学事实基因组区域的拷贝数变化往往带动区域内所有基因的表达量同步升高或降低。InferCNV 正是利用这一点 把每个细胞的基因表达量按染色体位置排序 与一组正常参考细胞的平均表达水平比较 输出经典的热图heatmap正常细胞呈均匀灰色而发生染色体扩增/缺失的肿瘤细胞会显现出整条染色体偏亮或偏暗的斑块这套方法源自 Patel 等人 2014 年发表在Science上的脑胶质瘤单细胞研究随后被黑色素瘤转移、多种实体瘤的单细胞研究广泛采用。⚠️重要提示官方 README 中说明 InferCNV 目前已不再主动维护源码见 README.md。新项目可优先考虑 InferCNA、CopyKAT、Numbat 等后续工具但 InferCNV 依然是理解这一分析范式的最佳入门工具存量数据也仍可正常复现。核心原理三步读懂 CNV 推断流程InferCNV 的完整流程由 run() 函数串起逻辑上可拆成三段阶段做什么对应源码1️⃣ 降噪与对比用正常细胞做参考对肿瘤细胞表达做归一化、平滑、去噪noise_reduction.R2️⃣ 肿瘤亚群聚类用 Leiden 算法把基因型相似的肿瘤细胞分成亚克隆inferCNV_tumor_subclusters.R3️⃣ 状态推断隐藏马尔可夫模型HMM 贝叶斯网络过滤输出扩增/缺失状态及置信度inferCNV_HMM.R、inferCNV_BayesNet.R最终的infercnv.png热图就是分析结果的门面左侧参考细胞、右侧观测细胞颜色条标注分组与亚克隆。快速上手从安装到第一张热图只需 3 步步骤一安装 infercnv 包在 R 中通过 Bioconductor 一行安装源码见 vignettes/inferCNV.RmdBiocManager::install(infercnv)如需使用贝叶斯网络过滤步骤系统还需要安装JAGS依赖关系定义在 DESCRIPTION 中。项目也提供了现成的 Docker 环境免去繁琐依赖配置docker build -t infercnv docker/步骤二创建 infercnv 对象准备三个输入文件即可原始表达矩阵基因 × 细胞的 count 矩阵支持.gz压缩细胞注释文件每个细胞属于哪个分组基因染色体位置文件每个基因的 chr/start/stop包内自带一份小规模的少突胶质瘤示例数据位于inst/extdata/目录非常适合首次试跑。infercnv_obj - infercnv::CreateInfercnvObject( raw_counts_matrix counts.matrix.gz, annotations_file annotations.txt, gene_order_file gene_positions.txt, ref_group_names c(Normal) # 指定正常参考细胞分组 )步骤三一键运行 run()官方示例脚本 example/run.R 展示了最典型的调用方式infercnv_obj - infercnv::run( infercnv_obj, cutoff 1, # 10x Genomics 数据建议 0.1 out_dir output_dir, analysis_mode subclusters, denoise TRUE, HMM TRUE )运行完成后output_dir中会生成最终热图与各步骤中间结果。 小技巧cutoff参数表达值截断阈值是新手最常调的第一个参数——10x 平台单细胞表达普遍偏低建议从 0.1 开始尝试。进阶功能亚群聚类与 HMM 解读肿瘤亚克隆Tumor Subclusters同一个肿瘤样本里的癌细胞可能由多个基因型不同的克隆组成。InferCNV 默认使用Leiden 聚类配合 PCA 与 K-近邻图把肿瘤细胞分成亚克隆热图颜色条会以不同颜色标出。官方 README 特别提示subclustering resolution聚类分辨率是最需要针对数据调整的选项分辨率过高会把一个克隆过度拆分。新版默认设为auto会随细胞数自动缩放。想单独检查亚群划分效果可用plot_subclusters()方法见 man/plot_subclusters.Rd。HMM 与贝叶斯过滤HMM 模式对每条染色体推断每个基因位置处于无变异 / 扩增 / 缺失状态i3HMMinferCNV_i3HMM.R等是不同粒度的推断模式贝叶斯网络过滤用 MCMC 采样估计正常状态的概率过滤掉低置信度的变异调用模型文件位于inst/BUGS_Mixture_Model还可通过 inferCNV_hidden_spike.R 中的hidden spike模拟数据可视化评估工具在当前数据上的表现与 Seurat 无缝衔接如果你已经用 Seurat 做了单细胞分析InferCNV 可以直接把结果写回去add_to_seurat()把 HMM 推断的 CNV 区域、子聚类信息作为元数据加进 Seurat 对象实现转录组 拷贝数双维度分析源码 seurat_interaction.R文档见 man/add_to_seurat.Rd这是它相比纯表达聚类最大的实用价值之一同一个对象里同时看细胞类型和克隆结构。项目结构速览目录作用R/核心功能对象创建、run 流程、HMM、亚群聚类、Seurat 交互scripts/命令行入口inferCNV.R及大量探索/质控脚本如 explorer_HMM_exec.R 不存在实际为 explore_HMM_exec.Rexample/官方示例run.R 主流程、run_test.R 快速测试__alt_exec_modes/提供不同参数组合的参考inst/extdata/示例表达矩阵、细胞注释、基因位置文件vignettes/完整的 R Markdown 教程inferCNV.Rmd含安装与全流程WDL/、docker/大规模计算平台提交脚本与容器环境tests/testthat 单元测试需要浏览代码或自行编译时可先拉取仓库git clone https://gitcode.com/gh_mirrors/in/infercnv新手避坑清单先跑小样本预览CreateInfercnvObject()支持max_cells_per_group参数每组只抽 50 个细胞快速试跑再放大到全量数据平台决定 cutoffSmart-seq2 用 110x Genomics 用 0.1官方 example/run.R 注释原话默认排除性染色体chrX/chrY/chrM默认不参与分析多细胞类型混合样本建议留意内存与时间热图绘制开销大大样本可用sample方法降采样绘图infercnv_sampling.R分析本身仍用全量数据结果可复现run()每步会保存 rds 备份修改参数重跑时会自动跳过未变化的步骤支持断点续跑总结InferCNV 用表达量沿基因组的波浪形态这一朴素而强大的信号让从单细胞 RNA-Seq 看染色体结构变异成为可能。掌握它你收获的不只是一个工具更是一整套参考对比 → 平滑降噪 → 亚群聚类 → 状态推断的肿瘤单细胞分析思维。建议学习路径先跑通inst/extdata/示例数据 → 阅读 vignettes/inferCNV.Rmd → 对照 example/ 中的不同执行模式调整参数 → 最后接入自己的 Seurat 工作流。如果你的目标是全新项目记得同时评估 InferCNA、CopyKAT、Numbat 等仍在积极维护的同类工具。【免费下载链接】infercnvInferring CNV from Single-Cell RNA-Seq项目地址: https://gitcode.com/gh_mirrors/in/infercnv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考