当前位置: 首页 > news >正文

一文讲透细胞通讯数据库CellChatDB:配体-受体相互作用与单细胞通讯分析实战指南

一文讲透细胞通讯数据库CellChatDB:配体-受体相互作用与单细胞通讯分析实战指南

【免费下载链接】CellChatR toolkit for inference, visualization and analysis of cell-cell communication from single-cell data项目地址: https://gitcode.com/gh_mirrors/ce/CellChat

凌晨一点,你终于把单细胞数据聚类成十几个细胞群,每个群都有一长串差异表达基因。可最核心的问题还没答案:这群细胞到底在和谁说话?是通过什么"暗号"沟通的?

你手上有上千个候选基因,但"谁分泌信号、谁接收信号、两者能否配对"这件事,靠肉眼和常识根本判断不了。你缺的不是算力,而是一本被反复校验过的"通讯字典"——它告诉你:在真实生物学里,哪些配体(发出信号的分子)和受体(接收信号的分子)确实能握手。

这本字典,就是 R 包 CellChat 内置的细胞通讯数据库CellChatDB。本文不讲枯燥的数据结构定义,而是带着"如何从零做一次单细胞通讯分析"这个实际问题,把它一层层拆开给你看。

先用起来:三行代码拿到你的"通讯底牌"

别急着背原理。CellChatDB 是一个打包好的数据对象,加载它只需要一行:

data(CellChatDB.human) # 加载人类配体-受体相互作用数据库 showDatabaseCategory(CellChatDB) # 画三个饼图,一眼看清库的构成 dplyr::glimpse(CellChatDB$interaction) # 偷看一眼主表长什么样

第二条命令会画出三个饼图:库里的相互作用按类型怎么分布、异二聚体占多少、证据来源是 KEGG 还是文献。第三条命令会在控制台吐出一张几千行的表——别慌,这就是数据库的主干,我们下一节再细说。

如果你只想分析某一类信号,立刻就能裁剪:

CellChatDB.use <- subsetDB(CellChatDB, search = "Secreted Signaling")

到这里,你已经完成了"选库 + 裁剪"两个关键动作。整个过程不超过十秒,剩下的疑问我们逐个击破。

它到底存了什么?一份数据库里藏着四张表

打开data/目录,你会看到CellChatDB.human.rdaCellChatDB.mouse.rdaCellChatDB.zebrafish.rda三个文件,分别对应人类、小鼠和斑马鱼。加载之后,每个数据库都是一个包含四部分内容的列表:

① interaction——主表,配体-受体的"花名册"

每一行记录一对经过验证的相互作用,核心字段有:

  • interaction_namepathway_name:这条互作叫什么、属于哪条信号通路(如 WNT、FGF);
  • ligandreceptor:发出信号和接收信号的基因名;
  • annotation:互作类型,分三类——Secreted Signaling(分泌型信号)、ECM-Receptor(细胞外基质与受体)、Cell-Cell Contact(细胞接触);
  • evidence:证据来源,标注来自 KEGG 数据库还是原始文献;
  • agonistantagonistco_A_receptorco_I_receptor:调控因子列,后面计算通讯概率时要用。

② complex——复合物表

有些配体或受体必须"组队"才能工作。比如某个受体需要两个亚基拼成一个异二聚体才算数,主表里记录的是复合物名,而这张表记下它由哪些亚基基因构成。

③ cofactor——共因子表

记录能增强(激动剂)、抑制(拮抗剂)或辅助(共受体)一条互作的分子。它们是通讯强度的"调节旋钮"。

④ geneInfo——基因注释表

一份官方基因名对照表。数据库里所有基因名都以它为准,避免大小写、别名造成的"对不上号"。

💡 一句话总结:主表回答"谁和谁能配对",另外三张表回答"配对时需要哪些零件、有哪些调节因素"。

里面的数据靠谱吗?凭什么信这份"通讯字典"

你可能担心:几千条配体-受体对,会不会是算法自动抓取、鱼龙混杂?答案是:不会,它是人工整理出来的

CellChatDB 的构建流程是"文献 + KEGG"双源头:先由研究人员从海量原始文献里筛出有实验证据支持的配体-受体相互作用,再与 KEGG 通路数据库交叉核对,每条记录都标注了证据来源,你可以顺着evidence字段溯源。数据库里人源有1,939 条验证过的互作(约 61.8% 为旁分泌/自分泌信号,21.7% 为细胞外基质-受体,16.5% 为细胞接触),鼠源有2,021 条,比例结构类似。

此外,项目还提供了两个"外援":PPI.human.rdaPPI.mouse.rda,来自 STRINGdb 的高置信度蛋白质-蛋白质相互作用网络。它们和 CellChatDB 相互印证,帮助你在分析时交叉验证结果。可以说,这份字典的每个词条都有人"签字背书"。

它怎么和你的表达数据"对上号"?

数据库装的是官方基因名,而你单细胞数据里的基因名可能带着版本号、大小写混乱,甚至物种不同。CellChat 用两个函数解决这个"对暗号"问题:

  • checkGeneSymbol:体检员,检查你的基因集里有没有不在官方名册上的名字;
  • extractGene:翻译官,把复合物的每个亚基都展开成独立基因,确保一个都没漏掉。

打个比方:数据库是厚厚一本"电话簿",你的数据是一堆"名片"。extractGene会把名片上的"某某团队(张三、李四、王五)"逐个拆开,保证三个成员都能在电话簿里被找到。这一步决定了后续计算时,你的基因到底能不能"接通"。

跟着走一遍:从一张表达矩阵到一张通讯网络图

理论说再多,不如完整走一遍。假设你手上有小鼠的单细胞数据,目标是找出哪些细胞群之间在通过分泌信号沟通:

第一步:选库并裁剪。对象是小鼠,就用小鼠库;只想看分泌信号,就只保留这一类:

data(CellChatDB.mouse) CellChatDB.use <- subsetDB(CellChatDB, search = "Secreted Signaling")

第二步:挂载数据库。创建 CellChat 对象时,把裁剪后的库放进对象里,后续所有计算都以它为准:

cellchat <- createCellChat(object = data.mouse, group.by = "ident") cellchat@DB <- CellChatDB.use

第三步:计算通讯概率。调用computeCommunProb时,质量作用定律模型会逐条扫描数据库里的配体-受体对,结合两个细胞群各自的表达水平算出通讯概率。注意,之前提到的cofactor表此刻开始"上岗":激动剂会抬高这条互作的概率,拮抗剂会压低它,共受体则作为补充受体加入计算。数据库决定"有哪些可能性",这一步决定"在当前数据里有多强"。

第四步:筛选显著通路。filterCommunicationidentifyEnrichedInteractions去掉低概率、低价值的互作,把几千条对收敛到几十条显著通路。

第五步:可视化与解读。netVisual_circle画出通讯网络图,netAnalysis_computeCentrality找出谁是"信号发出大户"、谁是"接收大户"。至此,凌晨那个问题有了完整答案。

上图是 CellChat 的整体工作流:数据库 → 通讯建模 → 可视化 → 深入分析,而 CellChatDB 是整个流水线的起点和地基。没有它,后面的建模和画图都无从谈起。

新手最容易踩的五个坑

⚠️ 物种不匹配。人类数据配小鼠库,或反过来,是最常见的低级错误。配体-受体在不同物种间未必保守,分析前先确认data()加载的是哪个物种的文件。

⚠️ 基因名不规范。别急着跑全流程,先用checkGeneSymbol体检。别名、旧符号、多余空格都会让基因"静默失踪",而你不会收到任何报错。

⚠️ 全库与子集的混淆。默认用全库分析还是只保留 "Secreted Signaling",结果差异很大。通常建议:初步探索用全库,聚焦某一类信号时再裁剪,并记得在论文方法里写清楚。

⚠️ 把概率当成"事实"。通讯概率本质是"该数据下这对互作被激活的可能性",不是真实存在的生物证据。它帮你排序、帮你找方向,最终结论仍需实验验证。

⚠️ 对象版本落后。如果你加载的是旧版本分析产生的 CellChat 对象,记得先调用updateCellChat升级,否则新版函数可能报错或给出不一致的结果。

常见问题(FAQ)

Q:CellChatDB 和 PPI 数据库有什么区别?A:CellChatDB 是"配体-受体"层级的通讯字典,直接服务通讯分析;PPI 是"蛋白质-蛋白质"层级的物理互作网络,更像一张更宽泛的关系图谱,两者互相补充、交叉验证。

Q:能往数据库里加自己的配体-受体对吗?A:可以。项目提供了完整的更新教程(tutorial/Update-CellChatDB.Rmd),手把手教你怎么添加新互作、修改注释,甚至构建自定义物种的数据库。

Q:subsetDB之后通路数量变少了,正常吗?A:正常。裁剪意味着只保留你选中的互作类型,其余类型的通路自然会消失。如果你发现某条已知通路没了,检查一下它的annotation分类是否在保留范围内。

Q:interaction表里的agonistantagonist列是干什么的?A:它们指向共因子表中的条目。有激动剂/拮抗剂标注的互作,在computeCommunProb计算概率时会额外考虑浓度调节效应——这也是 CellChat 比"只看表达量"的做法更贴近生物学的关键设计之一。

回到那个凌晨

还记得开头的你吗?面对上千个候选基因,纠结谁在和谁说话。现在你手里多了一本经过人工校验、带证据溯源、四张表联动的"通讯字典"。你不需要记住几千条互作,只需要知道它存在、它可信、它如何被调用——剩下的,几行代码就能替你完成。

CellChatDB 的价值不在于"大",而在于"可信 + 结构化":它把散落在文献里的配体-受体知识变成机器可读的数据,让单细胞通讯分析从"凭感觉"变成"有依据"。下次再面对一堆细胞群,你不再是凌晨那个对着屏幕发愁的人,而是手握底牌、知道从哪下手的分析者。

【免费下载链接】CellChatR toolkit for inference, visualization and analysis of cell-cell communication from single-cell data项目地址: https://gitcode.com/gh_mirrors/ce/CellChat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1393398/

相关文章:

  • 一上午搬空一个网站:WebSite-Downloader 让整站离线下载不再依赖网络
  • 【风电功率预测】【多变量输入单步预测】基于LSTM的风电功率预测研究附Matlab代码
  • MulimgViewer 多图像浏览器快速上手指南:图像批量对比与拼接的终极方案
  • nano——命令行文本编辑器
  • C++ std::array:从基础容器到编译期编程的实战指南
  • 2026年重庆全博印章公司发展历程与主营项目全解析 - 起跑123
  • 深入理解Pixelarticons生成原理:React组件自动生成脚本解析
  • 180、LLC谐振变换器的PCB设计实战(Gerber输出)
  • tchMaterial-parser:三步免费下载国家中小学智慧教育平台电子课本PDF
  • 免费USB启动盘制作工具Rufus完整指南:三步快速创建可引导U盘
  • 报价写在纸上、质保拉到十年:奎屯这家店把「透明」和「保障」做进了底气 - 生活动态圈
  • 【DeepSeek Harness】从安装到使用完整指南
  • otel-cli完全指南:如何在Shell脚本中轻松发送OpenTelemetry追踪数据
  • RegRipper3.0核心功能详解:自动插件匹配与高效注册表分析技巧
  • 洛雪音乐音源实战入门:3步导入、避坑与推荐组合,一学就会
  • 鼠标光标也能随心换?聊聊 macOS 上那个叫 Mousecape 的非侵入式光标定制神器
  • 基于STM32的智能台灯毕业设计:从硬件选型到软件实现的完整方案
  • 2026年重庆全博印章市场服务口碑最新调研新闻报道 - 起跑123
  • 开发自定义终端应用?Pastel与TTY工具包的集成最佳实践
  • 当“过时“变成硬通货:读懂 Genesis Plus GX 如何把世嘉 8/16 位硬件搬进现代代码
  • PDF补丁丁实测:3个让人头疼的PDF场景,这个免费工具箱如何化解
  • 北京房山名包回收交易凭证留存指南:回收协议+转账记录+身份登记缺一不可 - 大牌科普时报
  • OneNav书签管理主题切换完整教程:3分钟从默认换到自定义主题
  • WebVOWL 实操指南:5分钟把 OWL 本体变成可交互的可视化图谱
  • Nucleus Co-op 快速上手教程:一台电脑 15 分钟玩转 800+ 款本地分屏联机游戏
  • 绝地求生智能压枪:PUBG-Logitech 罗技宏压枪完整上手指南
  • gh_mirrors/notebook/notebooks订阅API指南:实时获取土壤水分与地表温度数据
  • 5分钟拿下B站热门数据:这套Python API工具箱把榜单、评论、弹幕全给你备好了
  • BG3ModManager完全解析:从加载顺序崩溃到模组管理大师的上手指南
  • PDF补丁丁免费PDF工具箱:新手到老手的5关通关指南