背景介绍
CellPhoneDB是公开提供的精选受体,配体及其相互作用的存储库。配体和受体均包含亚基结构,可准确代表异聚复合物。这是至关重要的,因为细胞之间的通信依赖于多亚基蛋白质复合物,而这种复合物超出了大多数数据库和研究中使用的二进制表示形式。
CellPhoneDB获取的数据信息主要来自以下几个数据库:UniProt, Ensembl, PDB, the IMEx consortium, IUPHAR。
使用CellPhoneDB
CellPhoneDB的官方网:(https://www.cellphonedb.org/)
安装CellPhoneDB
1. Create python > 3.5 virtual-env
python -m venv cpdb-venv
2.Activate virtual-env
source cpdb-venv/bin/activate
3. Install CellPhoneDB
pip install cellphonedb
CellPhoneDB分析方法
下载数据的方法:
curl https://raw.githubusercontent.com/Teichlab/cellphonedb/master/in/example_data/test_counts.txt --output test_counts.txt
curl https://raw.githubusercontent.com/Teichlab/cellphonedb/master/in/example_data/test_meta.txt --output test_meta.txt
1.running the statistical method
cellphonedb method statistical_analysis test_meta.txt test_counts.txt #顺序不能改变
2.without using the statistical method
cellphonedb method analysis test_meta.txt test_counts.txt
两个测试数据下载,我们看一这些数据。
cat test_meta.txt
Cell cell_type
d-pos_AAACCTGAGCAGGTCA NKcells_1
d-pos_AAACCTGGTACCGAGA NKcells_0
d-pos_AAACCTGTCGCCATAA NKcells_1
d-pos_AAACGGGTCAGTTGAC Tcells
d-pos_AAAGATGCATTGAGCT NKcells_0
d-pos_AAAGATGTCCAAAGTC NKcells_0
d-pos_AAAGCAAAGAGGACGG Myeloid
d-pos_AAAGCAACACATTCGA NKcells_1
d-pos_AAAGTAGAGAGCCCAA NKcells_0
d-pos_AAAGTAGCAAGCTGAG NKcells_0
#第一列是Barcode,第二列是细胞类型
cat test_counts.txt
Gene d-pos_AAACCTGAGCAGGTCA d-pos_AAACCTGGTACCGAGA d-pos_AAACCTGTCGCCATAA d-pos_AAACGGGTCAGTTGAC d-pos_AAAGATGCATT
ENSG00000238009 0 0 0 0 0 0 0 0 0 0
ENSG00000279457 0 0 0 0 0.723769155614119 0 1.1269975757326 1.81828622356148 0
ENSG00000228463 0 0 0 0 0 0 0 0 0.737864655764131 1.40825228390187
ENSG00000237094 0 0 0 0 0 0 0 0 0 0
ENSG00000230021 0 0 0 0 0 0 0 0 0 0
ENSG00000237491 0 0 0 0 0 0 0 0 0 0
ENSG00000177757 0 0 0 0 0 0 0 0 0 0
ENSG00000225880 0 0 0 0 0 0 0 0 0 0
ENSG00000230368 0 0 1.06435707230216 0 0 0 0 0 0 0
#test_counts.txt这个文件是基因表达矩阵文件
#输出结果
out/
└── celltest
├── deconvoluted.txt
├── means.txt
├── pvalues.txt
└── significant_means.txt
绘制统计
所以cellphonedb分析时,我们先得到这两个文件,进行后续的分析。
目前只能绘制两种图形:dot_plot & heatmap_plot
cellphonedb plot dot_plot
cellphonedb plot heatmap_plot yourmeta.txt #yourmeta.txt是barcode和cluster表格
#具体使用
dot_pot
cellphonedb plot dot_plot means.txt pvalues.txt
#其他参数
--means-path: The means output file [./out/means.txt]
--pvalues-path: The pvalues output file [./out/pvalues.txt]
--output-path: Output folder [./out] #输出文件路径
--output-name: Filename of the output plot [plot.pdf] #输出文件名称
--rows: File with a list of rows to plot, one per line [all available] #筛选一些特定的受配体对分析
--columns: File with a list of columns to plot, one per line [all available] #筛选特定的细胞与细胞
--verbose / --quiet: Print or hide CellPhoneDB logs [verbose]
heatmap_plot
cellphonedb plot heatmap_plot yourmeta.txt
#其他参数
--pvalues-path: The pvalues output file [./out/pvalues.txt]
--output-path: Output folder [./out]
--count-name: Filename of the output plot [heatmap_count.pdf] #输出结果的命名
--log-name: Filename of the output plot using log-count of interactions [heatmap_log_count.pdf]
--count-network-name: Filename of the output netowrk file [count_network.txt] #输出网络文件
--interactions-count-name: Filename of the output interactions-count file [interactions_count.txt]
--pvalue: pvalue threshold to consider when plotting [0.05] #设置pvalue值,默认0.05
--verbose / --quiet: Print or hide cellphonedb logs [verbose]
注意,cellphonedb只能分析人的数据集,小鼠的数据集需要进行转化,但是存在丢失部分基因的风险
点图和热图
1.右边的热图表示细胞类型两两之间的相互作用的数量,我们可以看到沿着对角线,左右是对称的,也就是A-B与B-A的互作数目是一样的。
2.左边是具体受配体对,细胞对的互作气泡图,点的大小表示显著水平,颜色则是The means of the average expression level of interacting molecule 1 in cluster 1 and interacting molecule 2 in cluster 2 注意到了吗,说的是interacting molecule 1/2,而没有说哪一个是受体哪一个是配体。
原因都和CellPhoneDB内置的gene-gene互作关系列表有关。CellPhoneDB区分不了受体还是配体,对于gene1-gene2,可以是gene1配体gene2受体,也可以是gene1受体gene2配体。我个人觉得也是由于这个原因,右边那个热图为了说起来方便,才把不管做受体还是做配体的关系都算作是两种细胞的互作关系,因此A-B和B-A在热图中的数值是一样的(不然横纵坐标写个interacting molecule,看到的人自然会问,这个分子是受体还是配体呢,加一起就省事了——都包含)。