用 python 繪制火山圖

導(dǎo)入模塊

import numpy as np
import pandas as pd

1.讀取測(cè)試數(shù)據(jù)

data=pd.read_csv(r'E:\ZYH\R.project\rna-seq\lianxi1\exon_level\df.csv')

2.查看數(shù)據(jù)

data.head()
image.png

3.篩選差異基因

# 3.嘗試寫循環(huán)篩選上下調(diào)基因分類賦值給 "up" 和 "down" 和 "nosig" 加入pvalue條件
###loc函數(shù):通過行索引 "Index" 中的具體值來取行數(shù)據(jù)(如取"Index"為"A"的行)
data.loc[(data.log2FoldChange>1)&(data.padj<0.05),'type']='up'
data.loc[(data.log2FoldChange<-1)&(data.padj<0.05),'type']='down'
data.loc[(abs(data.log2FoldChange)<=1)|(data.padj>=0.05),'type']='nosig'

4.查看數(shù)據(jù),發(fā)現(xiàn)多了type這一列

data.head()

5.統(tǒng)計(jì)個(gè)數(shù)

data.type.value_counts()
up      123
down    103
Name: type, dtype: int64

6.繪火山圖

import seaborn as sns
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline

# 對(duì)padj取個(gè)-log10對(duì)數(shù)
data['-logpadj']=-data.padj.apply(math.log10)

# 查看
data[['log2FoldChange','padj','type','-logpadj']].head()
image.png
# 先設(shè)置一下自己的顏色
colors = ["#01c5c4","#ff414d", "#686d76"]
sns.set_palette(sns.color_palette(colors))

# 繪圖
ax=sns.scatterplot(x='log2FoldChange', y='-logpadj',data=data,
                hue='type',#顏色映射
                edgecolor = None,#點(diǎn)邊界顏色
                s=8,#點(diǎn)大小
                )
# 標(biāo)簽
ax.set_title("vocalno")
ax.set_xlabel("log2FC")
ax.set_ylabel("-log10(padj)")

#移動(dòng)圖例位置
ax.legend(loc='center right', bbox_to_anchor=(0.95,0.76), ncol=1)
image.png

7.保存圖片

fig = ax.get_figure()
fig.savefig('./python_vocalno.pdf')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容