欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

pythonqq圖函數(shù),python 圖

如何使用Python繪制GWAS分析中的曼哈頓圖和QQ圖

曼哈頓圖和QQ圖是兩個在全基因組關(guān)聯(lián)(GWAS)分析里面最常出現(xiàn)的圖形,基本上已經(jīng)是GWAS的標配,幾乎在每篇GWAS的文章都會見到,它們的作用和所要傳達出來的信息我也在上一篇關(guān)于GWAS的博文中做了些說明,在這里我們就只集中在如何用Python和geneview將其有效地展現(xiàn)出來。

成都創(chuàng)新互聯(lián)公司專注于龍口網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供龍口營銷型網(wǎng)站建設(shè),龍口網(wǎng)站制作、龍口網(wǎng)頁設(shè)計、龍口網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造龍口網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍口網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

首先,準備一些數(shù)據(jù)來作為例子。

我這里用來展現(xiàn)的數(shù)據(jù)是2011年丹麥人所做過的一個關(guān)于年輕人過度肥胖的GWAS研究——GOYA,數(shù)據(jù)也是從他們所發(fā)表的結(jié)果中獲得,總共有5,373個樣本,其中超重的個體(case)有2,633個,正常的個體(control)是2,740個,從樣本量上看還算可以。為了方便使用,我對其做了相關(guān)的處理,包括從PED和MAP文件到GEN文件的生成,并重復(fù)了一次case-control的關(guān)聯(lián)性分析,計算出了芯片上所研究的各個SNP位點與肥胖相關(guān)的顯著性程度(即p-value),最后又將結(jié)果數(shù)據(jù)抽取出來做成數(shù)據(jù)集——放在這里供下載(15.6Mb,csv格式)。

【注】以上內(nèi)容雖提及到了一些領(lǐng)域內(nèi)術(shù)語和相關(guān)文件格式,但若不懂也請不必糾結(jié),因為后續(xù)處理都是基于這個最終的數(shù)據(jù)集來完成的。

接著,需要將geneview軟件包加入到你的Python中,有多種不同的方式,但推薦直接使用pip,以下是安裝比較穩(wěn)定的發(fā)布版,直接在終端命令行下(Linux or Mac)輸入:

pip install geneview

第三種辦法就是直接下載源碼,然后自行編譯,雖然不推薦這種做法(因為還有依賴包必須自行下載安裝,過程會比較麻煩低效),但對于某些不能連接外網(wǎng)的集群也只能如此,這三種方式都是可行的。

曼哈頓圖

將示例數(shù)據(jù)下載下來:

wget data/master/GOYA.csv

先簡單地查看一下數(shù)據(jù)的格式:

chrID,rsID,position,pvalue

1,rs3094315,742429,0.144586

1,rs3115860,743268,0.230022

1,rs12562034,758311,0.644366

1,rs12124819,766409,0.146269

1,rs4475691,836671,0.458197

1,rs28705211,890368,0.362731

1,rs13303118,908247,0.22912

1,rs9777703,918699,0.37948

1,rs3121567,933331,0.440824

一共是4列(逗號分隔),分別為:[1]染色體編號,[2]SNP rs 編號,[3] 位點在染色體上的位置,[4]顯著性差異程度(pvalue)。在本例曼哈頓圖中我們只需要使用第1,3和4列;而QQ圖則只需要第4列——pvalue。

下面先從繪制曼哈頓圖開始。我們先將需要的數(shù)據(jù)讀取到一個列表中,可以這樣做:

import csv

data = []

with open("GOYA.csv") as f:

f_csv = csv.reader(f)

headers = next(f_csv)

data = [[row[0], int(row[2]), float(row[3])] for row in f_csv]

現(xiàn)在GOYA.csv中的數(shù)據(jù)就都存放在data列表中了,由于Python在讀取文件中數(shù)據(jù)時,都是以string類型存放,因此對于第3和第4列的數(shù)據(jù)有必要事先把做點類型轉(zhuǎn)換。

接下來,調(diào)用geneview中的曼哈頓圖函數(shù)。

import matplotlib.pyplot as plt

from geneview.gwas import manhattanplot

ax = manhattanplot(data, xlabel="Chromosome", ylabel="-Log10(P-value)") # 這就是Manhattan plot的函數(shù)

plt.show()

只需這樣的一句代碼就能創(chuàng)建一個漂亮的曼哈頓圖,有必要再次指出的是,geneview是以matplotlib為基礎(chǔ)開發(fā)出來的,所創(chuàng)建的圖形對象實際上仍屬于matplotlib,geneview內(nèi)部自定義了很多圖形風格,同時封裝了大量只屬于基因組數(shù)據(jù)的圖表類型,但圖形的輸出格式以及界面顯示都仍和matplotlib一樣,因此在這里我們使用matplotlib.pyplot的show()函數(shù)(上例中:plt.show())將所繪制出來的曼哈頓圖顯示出來。如果要將圖形保存下來,則只需執(zhí)行`plt.savefig("man.png")`,這樣就會在該目錄下生成一個名為『man.png』png格式的曼哈頓圖,若是要存為pdf格式,則只需將所要保存的文件名后綴改成『.pdf』(plt.savefig("man.pdf"))就可以了。下面這些格式:emf,

eps, pdf, png, jpg, ps, raw, rgba, svg,

svgz等都是支持的,至于最新的還有多少種,還請參照matplotlib文檔中說明。

此外,geneview中的每個畫圖函數(shù)都有著足夠的靈活性,我們也可以根據(jù)自己的需要做一些調(diào)整,比如:

xtick = ['1', '2','3','4','5','6','7','8','9','10','11','12','13','14','16','18', '20','22']

manhattanplot(data,

xlabel="Chromosome", # 設(shè)置x軸名字

ylabel="-Log10(P-value)", # 設(shè)置y軸名字

xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示

s=40, # 設(shè)置圖中散點的大小

alpha=0.5, # 調(diào)整散點透明度

color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設(shè)置新的顏色組合

)

實現(xiàn)新的顏色組合、限定x軸上的刻度顯示和散點大小的調(diào)節(jié)。甚至還可以將散點改為線:

manhattanplot(data,

xlabel="Chromosome", # 設(shè)置x軸名字

ylabel="-Log10(P-value)", # 設(shè)置y軸名字

xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示

alpha=0.5, # 調(diào)整散點透明度

color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設(shè)置新的顏色組合

kind="line"

)

其它方面的調(diào)整請查看geneview文檔中的相關(guān)說明。

Q-Q圖

qq圖只需用到上例中的pvalue那一列:

import csv

import matplotlib.pyplot as plt

from geneview.gwas import qqplot

pvalue=[]

with open("GOYA.csv") as f:

f_csv = csv.reader(f)

headers = next(f_csv)

pvalue = [float(row[3]) for row in f_csv]

ax = qqplot(pvalue, color="#00bb33", xlabel="Expected p-value(-log10)", ylabel="Observed p-value(-log10)") # Q-Q 圖

plt.show()

同樣,也可以根據(jù)自己的需要對改圖進行相關(guān)的調(diào)整。

以上,便是如何使用Python來制作Manhattan圖和QQ圖的方法,geneview的集成函數(shù)簡化了這樣的一個過程。

如何使用python繪制gwas分析中的曼哈頓圖和qq圖

曼哈頓圖

將示例數(shù)據(jù)下載下來:

wget

先簡單地查看一下數(shù)據(jù)的格式:

chrID,rsID,position,pvalue

1,rs3094315,742429,0.144586

1,rs3115860,743268,0.230022

1,rs12562034,758311,0.644366

1,rs12124819,766409,0.146269

1,rs4475691,836671,0.458197

1,rs28705211,890368,0.362731

1,rs13303118,908247,0.22912

1,rs9777703,918699,0.37948

1,rs3121567,933331,0.440824

一共是4列(逗號分隔),分別為:[1]染色體編號,[2]SNP rs 編號,[3] 位點在染色體上的位置,[4]顯著性差異程度(pvalue)。在本例曼哈頓圖中我們只需要使用第1,3和4列;而QQ圖則只需要第4列——pvalue。

下面先從繪制曼哈頓圖開始。我們先將需要的數(shù)據(jù)讀取到一個列表中,可以這樣做:

import csv

data = []

with open("GOYA.csv") as f:

f_csv = csv.reader(f)

headers = next(f_csv)

data = [[row[0], int(row[2]), float(row[3])] for row in f_csv]

現(xiàn)在GOYA.csv中的數(shù)據(jù)就都存放在data列表中了,由于Python在讀取文件中數(shù)據(jù)時,都是以string類型存放,因此對于第3和第4列的數(shù)據(jù)有必要事先把做點類型轉(zhuǎn)換。

接下來,調(diào)用geneview中的曼哈頓圖函數(shù)。

import matplotlib.pyplot as plt

from geneview.gwas import manhattanplot

ax = manhattanplot(data, xlabel="Chromosome", ylabel="-Log10(P-value)") # 這就是Manhattan plot的函數(shù)

plt.show()

只需這樣的一句代碼就能創(chuàng)建一個漂亮的曼哈頓圖,有必要再次指出的是,geneview是以matplotlib為基礎(chǔ)開發(fā)出來的,所創(chuàng)建的圖形對象實際上仍屬于matplotlib,geneview內(nèi)部自定義了很多圖形風格,同時封裝了大量只屬于基因組數(shù)據(jù)的圖表類型,但圖形的輸出格式以及界面顯示都仍和matplotlib一樣,因此在這里我們使用matplotlib.pyplot的show()函數(shù)(上例中:plt.show())將所繪制出來的曼哈頓圖顯示出來。如果要將圖形保存下來,則只需執(zhí)行`plt.savefig("man.png")`,這樣就會在該目錄下生成一個名為『man.png』png格式的曼哈頓圖,若是要存為pdf格式,則只需將所要保存的文件名后綴改成『.pdf』(plt.savefig("man.pdf"))就可以了。下面這些格式:emf,

eps, pdf, png, jpg, ps, raw, rgba, svg,

svgz等都是支持的,至于最新的還有多少種,還請參照matplotlib文檔中說明。

此外,geneview中的每個畫圖函數(shù)都有著足夠的靈活性,我們也可以根據(jù)自己的需要做一些調(diào)整,比如:

xtick = ['1', '2','3','4','5','6','7','8','9','10','11','12','13','14','16','18', '20','22']

manhattanplot(data,

xlabel="Chromosome", # 設(shè)置x軸名字

ylabel="-Log10(P-value)", # 設(shè)置y軸名字

xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示

s=40, # 設(shè)置圖中散點的大小

alpha=0.5, # 調(diào)整散點透明度

color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設(shè)置新的顏色組合

)

實現(xiàn)新的顏色組合、限定x軸上的刻度顯示和散點大小的調(diào)節(jié)。甚至還可以將散點改為線:

manhattanplot(data,

xlabel="Chromosome", # 設(shè)置x軸名字

ylabel="-Log10(P-value)", # 設(shè)置y軸名字

xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示

alpha=0.5, # 調(diào)整散點透明度

color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設(shè)置新的顏色組合

kind="line"

)

其它方面的調(diào)整請查看geneview文檔中的相關(guān)說明。

Q-Q圖

qq圖只需用到上例中的pvalue那一列:

import csv

import matplotlib.pyplot as plt

from geneview.gwas import qqplot

pvalue=[]

with open("GOYA.csv") as f:

f_csv = csv.reader(f)

headers = next(f_csv)

pvalue = [float(row[3]) for row in f_csv]

ax = qqplot(pvalue, color="#00bb33", xlabel="Expected p-value(-log10)", ylabel="Observed p-value(-log10)") # Q-Q 圖

plt.show()

同樣,也可以根據(jù)自己的需要對改圖進行相關(guān)的調(diào)整。

以上,便是如何使用Python來制作Manhattan圖和QQ圖的方法,geneview的集成函數(shù)簡化了這樣的一個過程。

另外,如果你也看過丹麥人的這個GOYA研究,就會發(fā)現(xiàn)實際以上的兩個圖和其文章中的基本是一致的,當然我自己做了些數(shù)據(jù)清洗的操作,結(jié)果上仍然會有些許的不同。雖然此刻下結(jié)論還有點為時尚早,但總的來講,我應(yīng)該也可以通過這個數(shù)據(jù)集比較順利的將其結(jié)果重復(fù)出來了。

最后,附上利用geneview畫曼哈頓圖和QQ圖的代碼:

(1)曼哈頓圖:

(2)QQ圖:

python繪圖篇

1,xlable,ylable設(shè)置x,y軸的標題文字。

2,title設(shè)置標題。

3,xlim,ylim設(shè)置x,y軸顯示范圍。

plt.show()顯示繪圖窗口,通常情況下,show()會阻礙程序運行,帶-wthread等參數(shù)的環(huán)境下,窗口不會關(guān)閉。

plt.saveFig()保存圖像。

面向?qū)ο罄L圖

1,當前圖表和子圖可以用gcf(),gca()獲得。

subplot()繪制包含多個圖表的子圖。

configure subplots,可調(diào)節(jié)子圖與圖表邊框距離。

可以通過修改配置文件更改對象屬性。

圖標顯示中文

1,在程序中直接指定字體。

2, 在程序開始修改配置字典reParams.

3,修改配置文件。

Artist對象

1,圖標的繪制領(lǐng)域。

2,如何在FigureCanvas對象上繪圖。

3,如何使用Renderer在FigureCanvas對象上繪圖。

FigureCanvas和Render處理底層圖像操作,Artist處理高層結(jié)構(gòu)。

分為簡單對象和容器對象,簡單的Aritist是標準的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡單的的 Aritist對象,使他們構(gòu)成一個整體,例如Axis,Axes,Figure等。

直接創(chuàng)建Artist對象進項繪圖操作步奏:

1,創(chuàng)建Figure對象(通過figure()函數(shù),會進行許多初始化操作,不建議直接創(chuàng)建。)

2,為Figure對象創(chuàng)建一個或多個Axes對象。

3,調(diào)用Axes對象的方法創(chuàng)建各類簡單的Artist對象。

Figure容器

如何找到指定的Artist對象。

1,可調(diào)用add_subplot()和add_axes()方法向圖表添加子圖。

2,可使用for循環(huán)添加柵格。

3,可通過transform修改坐標原點。

Axes容器

1,patch修改背景。

2,包含坐標軸,坐標網(wǎng)格,刻度標簽,坐標軸標題等內(nèi)容。

3,get_ticklabels(),,get-ticklines獲得刻度標簽和刻度線。

1,可對曲線進行插值。

2,fill_between()繪制交點。

3,坐標變換。

4,繪制陰影。

5,添加注釋。

1,繪制直方圖的函數(shù)是

2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數(shù)據(jù)中的五個統(tǒng)計量:最小值、第一四分位

數(shù)、中位數(shù)、第三四分位數(shù)與最大值來描述數(shù)據(jù)的一種方法,它可以粗略地看出數(shù)據(jù)是否具有對稱性以及分

布的分散程度等信息,特別可以用于對幾個樣本的比較。

3,餅圖就是把一個圓盤按所需表達變量的觀察數(shù)劃分為若干份,每一份的角度(即面積)等價于每個觀察

值的大小。

4,散點圖

5,QQ圖

低層繪圖函數(shù)

類似于barplot(),dotchart()和plot()這樣的函數(shù)采用低層的繪圖函數(shù)來畫線和點,來表達它們在頁面上放置的位置以及其他各種特征。

在這一節(jié)中,我們會描述一些低層的繪圖函數(shù),用戶也可以調(diào)用這些函數(shù)用于繪圖。首先我們先講一下R怎么描述一個頁面;然后我們講怎么在頁面上添加點,線和文字;最后講一下怎么修改一些基本的圖形。

繪圖區(qū)域與邊界

R在繪圖時,將顯示區(qū)域劃分為幾個部分。繪制區(qū)域顯示了根據(jù)數(shù)據(jù)描繪出來的圖像,在此區(qū)域內(nèi)R根據(jù)數(shù)據(jù)選擇一個坐標系,通過顯示出來的坐標軸可以看到R使用的坐標系。在繪制區(qū)域之外是邊沿區(qū),從底部開始按順時針方向分別用數(shù)字1到4表示。文字和標簽通常顯示在邊沿區(qū)域內(nèi),按照從內(nèi)到外的行數(shù)先后顯示。

添加對象

在繪制的圖像上還可以繼續(xù)添加若干對象,下面是幾個有用的函數(shù),以及對其功能的說明。

?points(x, y, ...),添加點

?lines(x, y, ...),添加線段

?text(x, y, labels, ...),添加文字

?abline(a, b, ...),添加直線y=a+bx

?abline(h=y, ...),添加水平線

?abline(v=x, ...),添加垂直線

?polygon(x, y, ...),添加一個閉合的多邊形

?segments(x0, y0, x1, y1, ...),畫線段

?arrows(x0, y0, x1, y1, ...),畫箭頭

?symbols(x, y, ...),添加各種符號

?legend(x, y, legend, ...),添加圖列說明

網(wǎng)站欄目:pythonqq圖函數(shù),python 圖
文章分享:http://chinadenli.net/article33/dsidgss.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站響應(yīng)式網(wǎng)站自適應(yīng)網(wǎng)站服務(wù)器托管云服務(wù)器網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)