公司动态
InferCNV快速上手:3步从原始counts矩阵生成CNV热图(附官方oligodendroglioma示例代码)
InferCNV快速上手3步从原始counts矩阵生成CNV热图附官方oligodendroglioma示例代码【免费下载链接】infercnvInferring CNV from Single-Cell RNA-Seq项目地址: https://gitcode.com/gh_mirrors/in/infercnvInferCNV是一款基于 R 语言的单细胞基因组学分析工具专门用于从单细胞 RNA-Seq 原始 counts 矩阵中推断拷贝数变异Copy Number Variation, CNV。它的核心产出是一张跨全染色体的CNV 热图每一行代表一个细胞颜色深浅直观展示该细胞相对正常参考细胞的基因表达增益或丢失——肿瘤细胞的整条染色体异常在热图上一眼可见。本文将带你用官方内置的少突胶质细胞瘤oligodendroglioma示例数据在 3 步之内从零跑通 InferCNV生成你的第一张 CNV 热图。一、InferCNV 原理 30 秒速览为什么单细胞表达数据能推断染色体拷贝数因为当某段染色体发生扩增或缺失时上面的所有基因会整体性地多表达或少表达。InferCNV 的思路是将基因按染色体物理位置排序用正常细胞参考细胞的平均表达作为基线对每个细胞做平滑、降噪、减去参考表达得到log 倍数变化把结果画成热图大片连续的亮/暗条带即代表拷贝数增益或缺失。整个过程由两个核心函数完成CreateInfercnvObject()建对象和run()跑全流程。二、一键安装快速搭建 R 环境InferCNV 托管于 Bioconductor推荐方式安装if (!requireNamespace(BiocManager, quietly TRUE)) install.packages(BiocManager) BiocManager::install(infercnv) 依赖较多Seurat、edgeR、HiddenMarkov、rjags 等首次安装请耐心等待。若需从源码获取完整项目可克隆仓库https://gitcode.com/gh_mirrors/in/infercnv。三、3 步生成 CNV 热图官方示例代码以下代码完整来自项目内的 example/run.R可直接照搬运行。第 1 步创建 InferCNV 对象把原始 counts 矩阵、细胞注释文件、基因顺序文件三件套交给CreateInfercnvObject()并指定哪些细胞群作为正常参考infercnv_obj CreateInfercnvObject( raw_counts_matrix system.file(extdata, oligodendroglioma_expression_downsampled.counts.matrix.gz, package infercnv), annotations_file system.file(extdata, oligodendroglioma_annotations_downsampled.txt, package infercnv), gene_order_file system.file(extdata, gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt, package infercnv), ref_group_names c(Microglia/Macrophage, Oligodendrocytes (non-malignant)))三个输入文件的官方示例版本位于项目内inst/extdata/oligodendroglioma_expression_downsampled.counts.matrix.gz— 原始 counts 矩阵基因 × 细胞inst/extdata/oligodendroglioma_annotations_downsampled.txt— 细胞注释表细胞名 分组inst/extdata/gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt— 基因位置排序文件⚠️ 精简版仅用于示例自己的数据请准备完整版 gencode 注释第 2 步调用 run() 一站式分析流水线out_dir output_dir infercnv_obj infercnv::run(infercnv_obj, cutoff 1, out_dir out_dir, cluster_by_groups TRUE, analysis_mode subclusters, plot_steps FALSE, denoise TRUE, sd_amplifier 2, HMM TRUE)一次run()调用内部自动串联了约 10 个分析步骤基因过滤、测序深度归一化、Anscombe 变换、对数转换、染色体平滑、参考表达相减、去噪、离群点剔除、spike-in 标度校正、非差异基因掩码、肿瘤亚簇划分与 HMM 状态推断无需手动逐步操作。完整步骤拆解可参考项目内的示例文档 example/example.Rmd。第 3 步查看输出的 CNV 热图运行完成后结果保存在out_dir即output_dir中包括分色板的 CNV 热图、各细胞群/亚簇的分组热图以及 HMM 推断出的拷贝数状态文件。用plot_cnv()源码见 R/inferCNV_heatmap.R可以随时以不同颜色区间重新渲染热图突出显示 0.7–1.3 的精细变化。四、关键参数速查表参数推荐值作用cutoffSmart-seq2 用110x Genomics 用0.1参考细胞中基因平均最低表达量过滤阈值analysis_modesubclusters/samples/cells图像过滤与 HMM 预测的分组层级denoiseTRUE开启基于参考细胞均值±标准差的降噪sd_amplifier2降噪时标准差放大倍数越大越严格HMMTRUE用隐马尔可夫模型推断每个细胞的拷贝数状态plot_stepsFALSE是否保存每个中间步骤的热图调试时建议TRUE参数完整说明见文档 man/run.Rd。五、换成自己的数据需要做什么只需准备三个文件替换第 1 步的路径counts 矩阵文本矩阵基因行 × 细胞列或 Matrix 格式的稀疏矩阵注释文件两列制表符分隔第一列细胞名、第二列分组名基因顺序文件按基因组坐标排序的基因位置表可参考scripts/gtf_to_position_file.py从 gtf 注释生成。另外建议先浏览scripts/prepare_sparsematrix.R与scripts/infercnv_obj_to_input_files.R了解矩阵格式规范与对象导出方式。六、常见问题 FAQQ1热图全是平的看不到 CNV 信号检查ref_group_names是否指定了真实的正常细胞群10x 数据请把cutoff降到0.1可适当调小sd_amplifier。Q2想按样本而不是亚簇来分析把analysis_mode改为samples并取消注释文件中的样本信息。Q3想和 Seurat 工作流打通InferCNV 内置了 Seurat 交互接口源码见R/seurat_interaction.R可将结果作为新图层加回 Seurat 对象。Q4运行内存吃紧cutoff过滤会大幅减少基因数也可参考example/run_memory_profiling_per_step.sh逐步骤监控内存占用定位瓶颈步骤。总结用 InferCNV 生成 CNV 热图只需记住3 步公式CreateInfercnvObject 建对象 → run() 跑流水线 → 查看热图。掌握cutoff、analysis_mode、denoise这三个最常用参数的含义后你就能轻松复用到自己的肿瘤单细胞 RNA-Seq 数据上快速锁定拷贝数异常区域。【免费下载链接】infercnvInferring CNV from Single-Cell RNA-Seq项目地址: https://gitcode.com/gh_mirrors/in/infercnv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考