简介
cellphoneDB作为使用最广泛的单细胞通讯软件之一,已经得到了学者广泛的认可,它的庞大的数据库也一直在更新。简短说一下原理,它是基于 UniProt、Ensembl、PDB、IUPHAR等数据库构建的受配体数据库,与其他数据库相比,CellPhoneDB的一个主要优点是它考虑了配体和受体的结构组成,准确地描述了异聚复合物。这一点对于许多细胞因子等蛋白质家族来说尤其重要,因为配体-受体相互作用通常涉及多个亚单位。
而在最近更新中,cellphoneDB的数据库已经更新到V4.1.0版本。总计的受配体对已经达到2923个。相比较上个版本,它的数据舍弃了大量未经过筛选的受配体,在准确性上大大提高,其次是因为软件的更新,cellphoneDB的数据库格式也发生了改变,由原来的db格式改成了以zip结尾的压缩包。
此外这次的更新中,将cellphoneDB改为python编写。大幅度提高了查询和计算速度,经过测试,大概快一半时间左右。读取单细胞数据的格式也新增了h5ad格式。
cellphoneDB的3种方法
第一种 cpdb_analysis_method
使用的简单的分析方法,不进行显著性分析,计算每个受配体对的平均值,原理是通过计算所有参与受配体基因表达量的平均值,生成的文件是means.csv和deconvoluted.csv
使用的代码是
from cellphonedb.src.core.methods import cpdb_analysis_method
cpdb_results = cpdb_analysis_method.call(
cpdb_file_path = cellphonedb.zip,
meta_file_path = test_meta.txt,
counts_file_path = test_counts.h5ad,
counts_data = 'hgnc_symbol',
output_path = out_path)
第二种 cpdb_statistical_analysis_method
在第一种方法的基础上增加了显著性分析,而且为了确定细胞类型之间最相关的相互作用,会寻找配体和受体之间的细胞类型特异性相互作用。
对所有细胞类型进行两两比较,通过随机排列所有细胞的聚类标签(默认为1,000次),计算不同细胞类型之间的平均受体和配体表达水平,对于每个细胞类型之间的每个受体-配体对,在生成一个零分布的基础上计算一个 p 值,该 p 值表示受体-配体相互作用的强度。然后优先选择细胞类型之间高度富集的受配体对,生成的文件新增pvalues.csv和significant_means.csv
from cellphonedb.src.core.methods import cpdb_degs_analysis_method
cpdb_results = cpdb_degs_analysis_method.call(
cpdb_file_path = cellphonedb.zip,
meta_file_path = test_meta.txt,
counts_file_path = test_counts.h5ad,
degs_file_path = degs_file_path,
counts_data = 'hgnc_symbol',
active_tfs_file_path = active_tf.txt,
score_interactions = True,
microenvs_file_path = microenvs_file_path,
threshold = 0.1,
output_path = out_path)
第二种 cpdb_degs_analysis_method
外部提供一个差异基因的表格,受体或者配体中的基因有一个必须在表格中,生成的文件新增relevant_interactions.txt和significant_means.csv
from cellphonedb.src.core.methods import cpdb_degs_analysis_method
cpdb_results = cpdb_degs_analysis_method.call(
cpdb_file_path = cellphonedb.zip,
meta_file_path = test_meta.txt,
counts_file_path = test_counts.h5ad,
degs_file_path = degs_file_path,
counts_data = 'hgnc_symbol',
active_tfs_file_path = active_tf.txt,
score_interactions = True,
microenvs_file_path = microenvs_file_path,
threshold = 0.1,
output_path = out_path)
差异基因表格(degs_file.txt)见下图:
日常分析中,我们使用的最多的是方法二,因此我将方法二的一些具体函数的参数进行了注释
from cellphonedb.src.core.methods import cpdb_statistical_analysis_method
cpdb_results = cpdb_statistical_analysis_method.call(
cpdb_file_path = cpdb_file_path, # 数据库文件路径
meta_file_path = meta_file_path, # 包含细胞Barcoda注释的meta文件
counts_file_path = counts_file_path, # counts文件,或者h5ad文件
counts_data = 'hgnc_symbol', # 指定counts矩阵信息的某一列来进行注释,可以换成"genename"
active_tfs_file_path = active_tf_path, # 指定的转录因子文件(可不填)
microenvs_file_path = microenvs_file_path, # 微环境文件(可不填)
iterations = 1000, # 随机排列的次数
threshold = 0.1, #"定义了基因表达的最低细胞百分比
threads = 5, # 线程数
debug_seed = 42, # debug randome seed. To disable >=0.
result_precision = 3, # 保留结果小数点位数
pvalue = 0.05, # P-value threshold to employ for significance.
subsampling = False, # 是否降采样
subsampling_log = False, # (mandatory) enable subsampling log1p for non log-transformed data inputs.
subsampling_num_pc = 100, # Number of componets to subsample via geometric skectching (dafault: 100).
subsampling_num_cells = 1000, # Number of cells to subsample (integer) (default: 1/3 of the dataset).
separator = '|', # 两个细胞类型的连接符,eg(cell A|cell B).
debug = False, # Saves all intermediate tables employed during the analysis in pkl format.
output_path = out_path, # j结果保存路径
output_suffix = None # 是否为输出的文件加上特殊的字符 (default: None).
)