细胞通讯分析相关软件工具也不少了,但是缺乏一个综述文章,或者说一个benchmark文章,对这些工具进行测评。
CellPhoneDB是出镜率最高的细胞通讯分析软件,在试图学习这个细胞通讯分析方法之前,大家需要自己提前了解一下:细胞通讯分析的背景知识,而且呢,还得看看细胞通讯分析的实例,多读文献,比如:细胞通讯分析结果的解读。而且呢,并不是说一定要使用专门的细胞通讯分析软件才能做这个细胞通讯分析,比如:构建单细胞亚群网络(类似于细胞通讯分析),就是另辟蹊径。
最早出现在文章《Single-cell reconstruction of the early maternal–fetal interface in humans》,他们对对来自早期(6-14孕周)母胎界面样本(11个蜕膜,5个胎盘,6个PBMC)的70000个单细胞进测序(10X Genomics),也有Smart-seq2 全长单细胞转录组数据。研究者们为了系统地研究蜕膜-胎盘界面中胎儿和母体细胞之间的相互作用,作者开发了一个配体-受体相互作用的数据库(www.CellPhoneDB.org),该数据库可以预测分析不同细胞类型之间的分子相互作用。
因为图很炫酷,所以风靡开来,也产生了多种同类型软件工具。主要是数据库资源的收集和人工整理,数据库构建时考虑了每种细胞类型中配体和受体的表达水平,并凭借经验计算配体-受体关系对的细胞类型特异性,这种预测到的细胞群之间的分子相互作用是通过特定的蛋白质复合物实现的,并在蜕膜和胎盘中产生潜在的细胞-细胞通讯网络。
我们前两天分享了笔记:把Seurat对象里面表达量矩阵和细胞表型信息输出给CellPhoneDB做细胞通讯,就有很多小伙伴反应他安装CellPhoneDB比较困难,其实就是一个非常简单的Python模块而已,但是Python本身这个语言比较奇葩,对初学者来说各种版本冲突很膈应人,所以直接为CellPhoneDB创建一个独立的conda环境,是一个比较好的解决方案,如下所示:
# 创建名为cellphonedb的虚拟环境
conda create -n cellphonedb python=3.7
# 激活虚拟环境
conda activate cellphonedb
# 在虚拟环境中下载软件
pip install cellphonedb
# 假如网络不行,就加上 -i http://mirrors.aliyun.com/pypi/simple/
# 很简单就安装成功, 试试看运行它 获取帮助信息
cellphonedb --help
首先需要把自己的单细胞表达量矩阵和细胞分类等表型信息准备好,
我们制作的表达量矩阵文件如下所示:
> test_counts[1:4,1:4]
Gene AAACATACAACCAC AAACATTGAGCTAC AAACATTGATCAGC
ENSG00000238009 ENSG00000238009 0 0 0
ENSG00000286448 ENSG00000286448 0 0 0
ENSG00000225880 ENSG00000225880 0 0 0
ENSG00000188976 ENSG00000188976 0 0 0
我们的单细胞表型信息文件如下所示:
head test_meta.txt
Cell cell_type
AAACATACAACCAC Memory_CD4_T
AAACATTGAGCTAC B
AAACATTGATCAGC Memory_CD4_T
AAACCGTGCTTCCG CD14_Mono
AAACCGTGTATGCG NK
AAACGCACTGGTAC Memory_CD4_T
AAACGCTGACCAGT CD8_T
AAACGCTGGTTCTT CD8_T
AAACGCTGTAGCCA Naive_CD4_T
# 接近3千个细胞,归类如下;
cut -f 2 test_meta.txt |sort |uniq -c
344 B
480 CD14_Mono
271 CD8_T
32 DC
162 FCGR3A_Mono
483 Memory_CD4_T
155 NK
697 Naive_CD4_T
14 Platelet
有了这两个文件,运行CellPhoneDB做细胞通讯就是一句话代码的事情。
运行CellPhoneDB做细胞通讯的代码是:
cellphonedb method statistical_analysis test_meta.txt test_counts.txt
日志如下所示:
[ ][APP][11/02/22-09:31:00][WARNING] Latest local available version is `v2.0.0`, using it
[ ][APP][11/02/22-09:31:00][WARNING] User selected downloaded database `v2.0.0` is available, using it
[ ][CORE][11/02/22-09:31:00][INFO] Initializing SqlAlchemy CellPhoneDB Core
[ ][CORE][11/02/22-09:31:00][INFO] Using custom database at /Users/jmzeng/.cpdb/releases/v2.0.0/cellphone.db
[ ][APP][11/02/22-09:31:00][INFO] Launching Method cpdb_statistical_analysis_local_method_launcher
[ ][APP][11/02/22-09:31:00][INFO] Launching Method _set_paths
[ ][APP][11/02/22-09:31:00][INFO] Launching Method _load_meta_counts
[ ][APP][11/02/22-09:31:04][INFO] Launching Method _check_counts_data
[ ][CORE][11/02/22-09:31:04][INFO] Launching Method cpdb_statistical_analysis_launcher
[ ][CORE][11/02/22-09:31:04][INFO] Launching Method _counts_validations
[ ][CORE][11/02/22-09:31:04][INFO] Launching Method get_interactions_genes_complex
[ ][CORE][11/02/22-09:31:04][INFO] [Cluster Statistical Analysis] Threshold:0.1 Iterations:1000 Debug-seed:-1 Threads:4 Precision:3
[ ][CORE][11/02/22-09:31:04][INFO] Running Real Analysis
[ ][CORE][11/02/22-09:31:04][INFO] Running Statistical Analysis
[ ][CORE][11/02/22-09:38:59][INFO] Building Pvalues result
[ ][CORE][11/02/22-09:38:59][INFO] Building results
成功运行后会输出一个文件夹(名字是 out ),里面有4个文本文件,就是CellPhoneDB的结果。
ls -lh out|cut -d" " -f 7-
64K 2 11 09:39 deconvoluted.txt
153K 2 11 09:39 means.txt
132K 2 11 09:39 pvalues.txt
65K 2 11 09:39 significant_means.txt
当然了,上面的代码也可以有很多参数选择。而且这个结果的解读,和后续可视化,才是重中之重。
如果你确实觉得我的教程对你的科研课题有帮助,让你茅塞顿开,或者说你的课题大量使用我的技能,烦请日后在发表自己的成果的时候,加上一个简短的致谢,如下所示:
We thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.
十年后我环游世界各地的高校以及科研院所(当然包括中国大陆)的时候,如果有这样的情谊,我会优先见你。