首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CellPhoneDB 更新4.0 版速度更快

CellPhoneDB 更新4.0 版速度更快

原创
作者头像
生信探索
发布于 2023-03-31 13:01:23
发布于 2023-03-31 13:01:23
1.2K0
举报
文章被收录于专栏:生信探索生信探索

之前版本的CellPhoneDB依赖的anndata不兼容导致使用h5ad的文件作为count matrix输入报错,没想到CellPhoneDB更新到了4.0解决了这个问题,而且运行速度超级快几分钟就跑完了10几万细胞的主要流程

代码语言:Python
AI代码解释
复制
cd ~
mamba create -n cpdb python=3.8
mamba activate cpdb
mamba install -y ipykernel numpy pandas scikit-learn
pip install cellphonedb gseapy -i https://pypi.tuna.tsinghua.edu.cn/simple

下载数据库文件

https://www.cellphonedb.org

Count data

  1. 如果是人的基因就直接使用adata_noramlised_annotated.h5ad文件就可以不需要下边的步骤
  2. 如果是小鼠基因,则需要把基因名转换为人的基因名
  3. 输入的count文件也可以是文本文件,但是h5ad文件速度更快
代码语言:Python
AI代码解释
复制
from gseapy import Biomart
import pandas as pd

bm = Biomart()
m2h_df = bm.query(dataset='mmusculus_gene_ensembl',
               attributes=['ensembl_gene_id','external_gene_name',
                           'hsapiens_homolog_ensembl_gene',
                           'hsapiens_homolog_associated_gene_name'])
m2h=m2h_df.dropna(subset=['hsapiens_homolog_associated_gene_name'])
m2h=m2h.loc[:,['external_gene_name','hsapiens_homolog_associated_gene_name']]
代码语言:Python
AI代码解释
复制
import anndata

adata = anndata.read_h5ad('adata_noramlised_annotated.h5ad')
adata_raw=adata.raw.to_adata()
bdata=anndata.AnnData(X=adata_raw.X,
    obs=pd.DataFrame({'cell_type':adata_raw.obs.CellType2},index=adata_raw.obs_names),
    var=pd.DataFrame(index=adata_raw.var_names)
    )
merged =pd.merge(bdata.var,m2h,left_index=True,right_on='external_gene_name')
bdata=bdata[:,merged.external_gene_name]
bdata.var_names=merged.hsapiens_homolog_associated_gene_name.values
bdata.write_h5ad('adata_for_cellphonedb.h5ad',compression='lzf')

Meta data

代码语言:Python
AI代码解释
复制
meta_file = pd.DataFrame({'Cell':bdata.obs.index,'cell_type':bdata.obs.cell_type})
meta_file.to_csv("meta_file.csv",index=False)
  • 删除不需要的变量
代码语言:Python
AI代码解释
复制
del adata,meta_file,bdata,merged,m2h

cpdb_statistical_analysis_method

代码语言:Python
AI代码解释
复制
from cellphonedb.src.core.methods import cpdb_statistical_analysis_method

deconvoluted, means, pvalues, significant_means = cpdb_statistical_analysis_method.call(
    cpdb_file_path = './cellphonedb.zip',            # mandatory: CellPhoneDB database zip file.
    meta_file_path = "./meta_file.csv",              # mandatory: tsv file defining barcodes to cell label.
    counts_file_path = './adata_for_cellphonedb.h5ad',# mandatory: normalized count matrix.
    counts_data = 'hgnc_symbol',                     # defines the gene annotation in counts matrix.
    microenvs_file_path = None,                      # optional (default: None): defines cells per microenvironment.
    iterations = 1000,                               # denotes the number of shufflings performed in the analysis.
    threshold = 0.1,                                 # defines the min % of cells expressing a gene for this to be employed in the analysis.
    threads = 8,                                     # number of threads to use in the analysis.
    debug_seed = 42,                                 # debug randome seed. To disable >=0.
    result_precision = 3,                            # Sets the rounding for the mean values in significan_means.
    pvalue = 0.05,                                   # P-value threshold to employ for significance.
    subsampling = False,                             # To enable subsampling the data (geometri sketching).
    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 = '|',                                 # Sets the string to employ to separate cells in the results dataframes "cellA|CellB".
    debug = False,                                   # Saves all intermediate tables employed during the analysis in pkl format.
    output_path = './',                              # Path to save results.
    output_suffix = None                             # Replaces the timestamp in the output files by a user defined string in the  (default: None).
    )

文件目录

代码语言:Python
AI代码解释
复制
├── adata.h5ad
├── meta_file.csv
├── statistical_analysis_deconvoluted_03_30_2023_11:11:04.txt
├── statistical_analysis_means_03_30_2023_11:11:04.txt
├── statistical_analysis_pvalues_03_30_2023_11:11:04.txt
└── statistical_analysis_significant_means_03_30_2023_11:11:04.txt

输出文件和可视化可以参考

https://mp.weixin.qq.com/s/FG8oQJEoM1BRclcaSFC3mw

Reference

代码语言:Python
AI代码解释
复制
https://cellphonedb.readthedocs.io/en/latest/RESULTS-DOCUMENTATION.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CellphoneDB及可视化
CellphoneDB介绍以及结果怎么看可以参考[https://zhuanlan.zhihu.com/p/446055519],这里就不再赘述了,直接开始跑代码。
生信技能树jimmy
2023/02/16
1.7K0
CellphoneDB及可视化
单细胞转录组实战05: CellphoneDB细胞通讯及可视化
micromamba和conda用法一样,只是速度更快,可以把micromamba换成conda,另外conda一次装十几个包是会报错的。
生信探索
2023/02/15
4.3K0
一眨眼CellphoneDB都更新到v5啦:2025年3月25号发表在Nature Protocols(IF=13.1)
老习惯,CellphoneDB 的官网给到你,他放了三个地方,可以每个都看看,不过可以以最后一个链接为主:
生信技能树
2025/05/08
6970
一眨眼CellphoneDB都更新到v5啦:2025年3月25号发表在Nature Protocols(IF=13.1)
课后补充----关于单细胞空间基础分析的代码部分
追风少年i
2024/08/02
2690
课后补充----关于单细胞空间基础分析的代码部分
python: 使用tangram进行空间转录组映射表达量分析
tangram是一种映射单细胞表达量数据到空间转录组数据的方法,它可以将单细胞中的表达量数据映射到空间转录组的每一个cell中。这对于一些gene panel数量较少的空间转录组技术如Xenium、CosMx等可以起到扩充基因数量的作用,因为tangram基因映射后的客观结果是使得每一个Xenium/CosMx数据集的细胞中的基因panel数量将和使用的单细胞数据集的panel数量保持一致,而单细胞数据集panel数量是可以轻松到2万+的。
生信菜鸟团
2024/01/25
5830
python: 使用tangram进行空间转录组映射表达量分析
CellPhoneDB的单细胞通讯结果的理解
就是4个文本文件,其中 means.txt 和 pvalues.txt以及, significant_means.txt都是300行,而且都是90多列,说明这3个文件是相互关联的。下面我们来一一解读:
生信技能树
2022/03/03
3.1K0
CellPhoneDB的单细胞通讯结果的理解
新版 CellphoneDB v5 新增功能:ktplots绘图包尝鲜
老习惯,CellphoneDB 的官网给到你:https://cellphonedb.readthedocs.io/en/latest/
生信技能树
2025/05/17
3520
新版 CellphoneDB v5 新增功能:ktplots绘图包尝鲜
基于python的scanpy模块的乳腺癌单细胞数据分析
这次我们来复现一篇单细胞的文章。这篇我们只来复现细胞图谱和拟时序分析 像细胞通讯,还有富集分析还是很简单的。大家可以继续走下去,然后我们来交流讨论! 这篇全篇基于python复现。
生信技能树
2021/10/12
4.1K1
Cell2location分析:the human lymph node数据探索
cell2location的原理图:cell2location是一个分层贝叶斯模型,需要使用单细胞数据作为参考,对空间转录组数据进行解卷积。
生信菜鸟团
2024/05/30
7920
Cell2location分析:the human lymph node数据探索
scanpy教程:预处理与聚类
scanpy 是一个用于分析单细胞转录组(single cell rna sequencing)数据的python库,文章2018发表在Genome Biology(https://genomebiology.biomedcentral.com/)。其实它的许多分析思路借鉴了以seurat为中心的R语言单细胞转录数据分析生态的,scanpy以一己之力在python生态构建了单细胞转录组数据分析框架。我相信借助python的工业应用实力,其扩展性大于R语言分析工具。当然,选择走一遍scanpy的原因,不是因为它的强大,只是因为喜欢。
生信技能树jimmy
2020/04/08
15.2K2
scanpy教程:预处理与聚类
细胞通讯分析之CellphoneDB(二)可视化篇
在此基础上,我还写了CellphoneDB的笔记:细胞通讯分析之CellphoneDB初探(一),在这个帖子里简单介绍了CellphoneDB,以及CellphoneDB的环境配制、单样本实战,最后提供了一个可视化的函数cellphoneDB_Dotplot。另外,cellphoneDB似乎是不支持小鼠等其他物种的数据,因此我写了 一行代码完成单细胞数据人鼠基因同源转换,提供了一个函数,一行代码完成人鼠的基因同源转换,然后用转换后的数据走cellphoneDB流程即可。
生信菜鸟团
2023/01/05
8.9K0
细胞通讯分析之CellphoneDB(二)可视化篇
空间转录组数据注释分析:Cell2location反卷积(Nature Biotechnology IF: 33.1)
这个方法需要性能比较高的计算资源配置,如果有GPU显卡会大大的缩短运行建模的时间,如果你没有,可以考虑生信技能树的共享服务器,只要800一年,内存2T,配置20G显卡,购买详情可看:满足你生信分析计算需求的低价解决方案
生信技能树
2025/04/02
4140
空间转录组数据注释分析:Cell2location反卷积(Nature Biotechnology IF: 33.1)
空间单细胞转录组cell2location分析流程学习
Cell2location 是一个用于空间转录组学数据分析的工具。它是一个基于贝叶斯统计模型的Python包,旨在利用空间转录组数据和单细胞转录组数据来进行细胞类型的空间解构。通过将单细胞转录组数据中的细胞类型信息投射到空间转录组数据中,Cell2location 可以估算不同细胞类型在空间位置中的丰度分布。
凑齐六个字吧
2024/10/21
3850
空间单细胞转录组cell2location分析流程学习
Scanpy 分析 3k PBMCs:数据预处理
本系列讲解 使用Scanpy分析单细胞(scRNA-seq)数据教程[1],持续更新,欢迎关注,转发!
数据科学工厂
2025/06/08
1160
Scanpy 分析 3k PBMCs:数据预处理
单细胞转录组分析RNA velocity-STAR solo
STAR较CellRanger有着更快的运行速度和更广泛的运用场景。单细胞转录组的比对可以通过STAR-solo来实现,在solo Features 可以同时获取Gene expression和RNA velocity 信息,帮助我们进行拟时序分析。
旋转木马
2023/12/01
1.9K0
单细胞分析的 Python 包 Scanpy(图文详解)
线粒体基因的转录本比单个转录物分子大,并且不太可能通过细胞膜逃逸。因此,检测出高比例的线粒体基因,表明细胞质量差(Islam et al. 2014; Ilicic et al. 2016)。
白墨石
2021/07/16
5.5K1
单细胞分析的 Python 包 Scanpy(图文详解)
课后补充---10X HD数据结合图像识别获取单细胞级空间数据
空间转录组学领域旨在捕捉组织完整的转录图谱,并将基因表达映射到特定位置,揭示不同细胞类型的空间分布及其分子活性。10x的Visium分析使用barcodes的载玻片捕获和定位转录表达。在Visium HD空间基因表达实验中,barcodes在2x2um方格内形成网格。除此之外,SpaceRanger pipline cre ates 8x8 um and 16 um的空间表达数据。 Each bin包含多个2x2um正方形的UMI计数的基因总和。这不是整合基因表达数据的唯一方法。另一种方法是使用Visium HD检测中使用的组织的显微镜图像中包含的信息来创建自定义bin。使用从高分辨率H&E图像染色的核,根据barcode对应的核,将barcode划分为bin。barcode被划分成特定于细胞核的bin,模仿单细胞数据,因为基因计数现在将按每个细胞形成。
追风少年i
2024/08/16
3460
课后补充---10X HD数据结合图像识别获取单细胞级空间数据
整合单细胞和空转数据多种方法之Cell2location
除了我们上期介绍过的CellTrek算法【整合单细胞和空转数据多种方法之CellTrek】,还有非常多的算法用于整合单细胞和空转数据,如何快速系统的了解更多的主流整合算法呢?这么多种算法我们又应该选择哪种呢?答案是查阅综述+大量实践!
生信菜鸟团
2024/01/04
8.3K0
整合单细胞和空转数据多种方法之Cell2location
脚本更新----空间转录组信号流COMMOT与空间inferCNV(封装版)
追风少年i
2024/11/19
1270
脚本更新----空间转录组信号流COMMOT与空间inferCNV(封装版)
Scanpy分析全流程(含harmonypy整合/细胞周期矫正/双细胞检测及去除)
本次走一遍Scanpy全流程,数据集仍为GSE188711,该数据集可至GEO官网下载。
凑齐六个字吧
2025/06/01
4721
Scanpy分析全流程(含harmonypy整合/细胞周期矫正/双细胞检测及去除)
推荐阅读
相关推荐
CellphoneDB及可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档