python绘制dotplot


  R语言不少库都可以方便的画dotplot,但是低频使用R这么多年,我依旧觉得R不是一门真正的编程语言。目前,在python中绘制dotplot貌似没有很轻量、方便的库,因此工作之余写了这个 python_dotplot包,方便自己也希望能够方便他人吧。

安装

可以通过pypi快速安装:

pip install python_dotplot

该package当然可能存在一定的bug,所以也会处于不断迭代的过程中,版本更新可以在github realease 获得最新信息,并可以通过以下方式获得特定或最新版本

pip install python_dotplot --upgrade
pip install python_dotplot==0.0.1b1

如果通过--upgrade参数不能获得最新版本,可能你使用我在博客pip修改安装镜像源中的方法设置过国内镜像,国内镜像会有一定的延迟,可指定pypi官方源指定镜像:

pip install -i https://pypi.python.org/pypi python_dotplot

模块导入

import dotplot
import dotplot.utils
import pandas as pd

%config InlineBackend.figure_format = 'retina'  # 如果你的电脑设备是视网膜屏,可指定该参数渲染jupyter图像,会超清晰,超好看

包的层级结构很简单,主要包括以下模块:

dotplot

├── cmap.py # 自定义color map

├── core.py # 实现了Dotplot类,用于封装数据以及绘图

├── hierarchical.py # 实现了层次聚类,用于支持dotplot行和列通过层次聚类进行自动排序

├── __init__.py # 初始化模块

└── utils.py # 实用函数,目前是夹带私货,我自己用的预处理函数,也许对其他人也有用

数据准备

我们首先需要准备一个数据,这里要求输入必须是一个tidy data格式的pandas Dataframe,简而言之,tidy data是指在该数据框中每一行是一个观测,每一列是一个属性(关于tidy data 和messy data更多信息请参考该博客),下面以示例数据为例:

term_list = ['GO:0002455', 'GO:0006958', 'GO:0006956', 'GO:0038096','GO:0002673',
             'GO:0051251', 'GO:0060333', 'GO:0006910','GO:0002483', 'GO:0002440',
             'GO:0009141', 'GO:0009123',
### 单细胞数据分析中的Dotplot教程 在单细胞数据可视化工具中,`Seurat`包提供了多种方法来展示基因表达模式及其模块特性。其中一种常用的方法是通过点图(dotplot),该图表能够有效地表示不同簇之间的标记基因表达情况以及这些基因的平均表达水平和频率。 为了创建一个基于`Seurat`对象的dotplot,可以利用`DoHeatmap()`函数或者专门用于绘制此类图形的功能——`DotPlot()`。下面是一个简单的Python代码实例,展示了如何使用R语言中的`Seurat`库生成这样的图像: ```r library(ggplot2) library(cowplot) library(Seurat) # 假设seurat_obj已经包含了处理好的单细胞RNA测序数据集 # 计算每个cluster内的marker genes并保存到变量markers中 markers <- FindAllMarkers(seurat_obj, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25) # 使用DotPlot()函数制作dotplot dp <- DotPlot( object = seurat_obj, features = markers$gene[which(markers$p_val_adj < 0.01)], cols = c("lightgrey", "red"), dot.scale = 8 ) + RotatedAxis() print(dp) ``` 这段脚本首先调用了`FindAllMarkers()`去识别各个聚类(cluster)特有的标志物(marker),接着选取显著性的基因作为输入参数传递给`DotPlot()`。最终得到的结果是以颜色深浅反映相对丰度、圆圈大小体现比例关系的散点矩阵形式呈现出来[^1]。 值得注意的是,在实际操作过程中可能还需要调整一些绘图选项以满足具体需求;比如改变配色方案(`cols`)或是缩放因子(`dot.scale`)等设置都可以帮助优化视觉效果以便更好地理解数据特征。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值