scComm python版本
今天的工作是将scComm(https://github.com/ZijieJin/scComm)改造为python版本。该R语言工具是用于单细胞分辨率解析细胞间通信的对比学习框架,在模拟和真实数据中scComm表现均优于CellChat 、NATMI 、 NICHES 和CellphoneDB等传统单细胞CCC工具,文章发表于Genome Biology杂志上。使用过程中,我发现该工具的计算速度实在是感人,测试数据运行时间超过6小时,其中原因大概率是因为函数本身只是单线程运行。为了使得函数能并行运行从而减少计算时间,我将这个工具改为python版本。主函数scComm的输入变量和类型有比较大的改动。表达矩阵将改为python的anndata格式,细胞注释来自于anndata的obs,lr_database和tf_database将为txt和CSV格式文件,新增n_jobs参数设置并行数。run_scComm(adata, obs_col, lr_database="./data/LRpairs.txt", tf_database="./dorothea.csv", set_weight1=False, set_weight2=False, set_weight3=False, n_jobs=1)。contrastive_learning的python脚本也有些许的改动,改为run_contrastive_learning_ccc(Positive, Negative, Full),允许输入Positive, Negative和Full data的文件路径。测试官方的测试数据后,在n_jobs为12时,python版本的总运行时间不超过20分钟,与R语言版本细胞通讯评分的Pearson相关性R值平均为0.989,最小0.938,最大1。scCOMM的python代码在https://github.com/leichen-debug/scComm-python-version上。此外往期cytotrace2和Spaniche的修改函数也可查询https://github.com/leichen-debug。