Python生物信息学⑥绘制热图及火山图

简介: Python生物信息学⑥绘制热图及火山图

Python生物信息学⑥绘制热图及火山图

Python生物信息学③提取差异基因


通过上Python生物信息学③提取差异基因得到了该数据集的差异分析的两个关键参数,1.差异倍数(foldchange)以及2.差异的P值。本篇目的是得到满足差异倍数和差异P值的基因,同时进行可视化(包括差异分析常见的火山图和热图)。


绘制火山图

(1)第一步制作差异分析结果数据框

genearray = np.asarray(pvalue)
result = pd.DataFrame({'pvalue':genearray,'FoldChange':fold})
result['log(pvalue)'] = -np.log10(result['pvalue'])


(2)第二步制作火山图的准备工作

选定的差异基因标准是 I.差异倍数的绝对值大于1,II. 差异分析的P值小于0.05

result['sig'] = 'normal'
result['size']  =np.abs(result['FoldChange'])/10
result.loc[(result.FoldChange> 1 )&(result.pvalue < 0.05),'sig'] = 'up'
result.loc[(result.FoldChange< -1 )&(result.pvalue < 0.05),'sig'] = 'down'
ax = sns.scatterplot(x="FoldChange", y="log(pvalue)",
                      hue='sig',
                      hue_order = ('down','normal','up'),
                      palette=("#377EB8","grey","#E41A1C"),
                      data=result)
ax.set_ylabel('-log(pvalue)',fontweight='bold')
ax.set_xlabel('FoldChange',fontweight='bold')

image.png

筛选差异基因

fold_cutoff = 1
pvalue_cutoff = 0.05
filtered_ids = []
for i in range(0, number_of_genes):
    if (abs(fold[i]) >= fold_cutoff) and (pvalue[i] <= pvalue_cutoff):
        filtered_ids.append(i)
filtered = data2.iloc[filtered_ids,:]
print("Number of DE genes: ")
print(len(filtered.index))

image.png

绘制热图

热图(heatmap)是生物学文章里(尤其是RNA-seq相关论文)经常出现的图片。热图的用途一般有两个。以RNA-seq为例,热图可以:1)直观呈现多样本多个基因的全局表达量变化;2)呈现多样本或多基因表达量的聚类关系。热图一般使用颜色(例如红绿的深浅)来展示多个样本多个基因的表达量高低,既直观又美观。同时可以对样本聚类或者对基因聚类。

sns.clustermap(filtered, cmap='RdYlGn_r', standard_scale = 0)

image.png

(1)每一行为一个基因,每一列为一个sample。 (2)绿色代表相对低表达,红色代表相对高表达。 (3)相对接近的样本或者基因会聚类在一起,比如探针名为101695_at的基因在GSM130370相对高表达,而在GSM130366低表达。


目录
相关文章
|
6月前
|
数据可视化 数据挖掘 数据处理
python 盒装图纵坐标单位
【4月更文挑战第1天】
|
6月前
|
Python
针状图(python
针状图(python
51 0
|
6月前
|
数据可视化 Python
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
77 0
|
4月前
|
存储 程序员 Python
小白也能用的代码!1行Python,把PPT转成1张长图
大家好,我是程序员晚枫。今天介绍`python-office`库的新功能:仅用1行Python代码将PPT转为单张长图。
79 11
 小白也能用的代码!1行Python,把PPT转成1张长图
|
4月前
|
算法 Python
Python 大神修炼手册:图的深度优先&广度优先遍历,深入骨髓的解析
【7月更文挑战第12天】Python进阶必学:DFS和BFS图遍历算法。理解图概念,用邻接表建无向图,实现DFS和BFS。DFS适用于查找路径,BFS解决最短路径。通过实例代码加深理解,提升编程技能。
38 4
|
4月前
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
【7月更文挑战第12天】图的遍历利器:DFS 和 BFS。Python 中,图可表示为邻接表或矩阵。DFS 沿路径深入,回溯时遍历所有可达顶点,适合找路径和环。BFS 层次遍历,先近后远,解决最短路径问题。两者在迷宫、网络路由等场景各显神通。通过练习,掌握这些算法,图处理将游刃有余。
63 3
|
4月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
40 1
|
4月前
|
存储 算法 搜索推荐
Python高手必备!揭秘图(Graph)的N种风骚表示法,让你的代码瞬间高大上
【7月更文挑战第10天】在Python中,图数据结构通过邻接矩阵、邻接表、边列表和邻接集来表示,用于社交网络分析和路径查找等。邻接矩阵用二维数组存储连接,邻接表仅存储每个节点的邻居,节省空间。边列表列出所有边,而邻接集用集合确保邻居唯一性。选择合适表示法能提升代码效率和可读性,展现编程技巧。
63 1
|
5月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:图神经网络(GNN)
使用Python实现深度学习模型:图神经网络(GNN)
259 1
|
4月前
|
数据可视化 Python
Python中绘制3D曲面图的艺术
【7月更文挑战第4天】使用Python的Matplotlib和mpl_toolkits.mplot3d库,可以轻松绘制3D曲面图。首先安装matplotlib,然后导入numpy和相关模块。通过定义函数和使用numpy的meshgrid生成数据,接着用`plot_surface`绘制曲面,可定制色彩映射、添加标签、标题、色标、透明度和阴影。通过自定义颜色映射和添加网格线,能进一步增强图形的解读性。这些技巧使3D数据可视化更具洞察力和吸引力。
84 0