精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

pythonqq圖函數,python 圖

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

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

成都創新互聯公司專注于龍口網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供龍口營銷型網站建設,龍口網站制作、龍口網頁設計、龍口網站官網定制、小程序制作服務,打造龍口網絡公司原創品牌,更為您提供龍口網站排名全網營銷落地服務。

首先,準備一些數據來作為例子。

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

【注】以上內容雖提及到了一些領域內術語和相關文件格式,但若不懂也請不必糾結,因為后續處理都是基于這個最終的數據集來完成的。

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

pip install geneview

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

曼哈頓圖

將示例數據下載下來:

wget data/master/GOYA.csv

先簡單地查看一下數據的格式:

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。

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

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]

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

接下來,調用geneview中的曼哈頓圖函數。

import matplotlib.pyplot as plt

from geneview.gwas import manhattanplot

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

plt.show()

只需這樣的一句代碼就能創建一個漂亮的曼哈頓圖,有必要再次指出的是,geneview是以matplotlib為基礎開發出來的,所創建的圖形對象實際上仍屬于matplotlib,geneview內部自定義了很多圖形風格,同時封裝了大量只屬于基因組數據的圖表類型,但圖形的輸出格式以及界面顯示都仍和matplotlib一樣,因此在這里我們使用matplotlib.pyplot的show()函數(上例中:plt.show())將所繪制出來的曼哈頓圖顯示出來。如果要將圖形保存下來,則只需執行`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中的每個畫圖函數都有著足夠的靈活性,我們也可以根據自己的需要做一些調整,比如:

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

manhattanplot(data,

xlabel="Chromosome", # 設置x軸名字

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

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

s=40, # 設置圖中散點的大小

alpha=0.5, # 調整散點透明度

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

)

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

manhattanplot(data,

xlabel="Chromosome", # 設置x軸名字

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

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

alpha=0.5, # 調整散點透明度

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

kind="line"

)

其它方面的調整請查看geneview文檔中的相關說明。

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()

同樣,也可以根據自己的需要對改圖進行相關的調整。

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

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

曼哈頓圖

將示例數據下載下來:

wget

先簡單地查看一下數據的格式:

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。

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

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]

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

接下來,調用geneview中的曼哈頓圖函數。

import matplotlib.pyplot as plt

from geneview.gwas import manhattanplot

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

plt.show()

只需這樣的一句代碼就能創建一個漂亮的曼哈頓圖,有必要再次指出的是,geneview是以matplotlib為基礎開發出來的,所創建的圖形對象實際上仍屬于matplotlib,geneview內部自定義了很多圖形風格,同時封裝了大量只屬于基因組數據的圖表類型,但圖形的輸出格式以及界面顯示都仍和matplotlib一樣,因此在這里我們使用matplotlib.pyplot的show()函數(上例中:plt.show())將所繪制出來的曼哈頓圖顯示出來。如果要將圖形保存下來,則只需執行`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中的每個畫圖函數都有著足夠的靈活性,我們也可以根據自己的需要做一些調整,比如:

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

manhattanplot(data,

xlabel="Chromosome", # 設置x軸名字

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

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

s=40, # 設置圖中散點的大小

alpha=0.5, # 調整散點透明度

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

)

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

manhattanplot(data,

xlabel="Chromosome", # 設置x軸名字

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

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

alpha=0.5, # 調整散點透明度

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

kind="line"

)

其它方面的調整請查看geneview文檔中的相關說明。

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()

同樣,也可以根據自己的需要對改圖進行相關的調整。

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

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

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

(1)曼哈頓圖:

(2)QQ圖:

python繪圖篇

1,xlable,ylable設置x,y軸的標題文字。

2,title設置標題。

3,xlim,ylim設置x,y軸顯示范圍。

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

plt.saveFig()保存圖像。

面向對象繪圖

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

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

configure subplots,可調節子圖與圖表邊框距離。

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

圖標顯示中文

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

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

3,修改配置文件。

Artist對象

1,圖標的繪制領域。

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

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

FigureCanvas和Render處理底層圖像操作,Artist處理高層結構。

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

直接創建Artist對象進項繪圖操作步奏:

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

2,為Figure對象創建一個或多個Axes對象。

3,調用Axes對象的方法創建各類簡單的Artist對象。

Figure容器

如何找到指定的Artist對象。

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

2,可使用for循環添加柵格。

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

Axes容器

1,patch修改背景。

2,包含坐標軸,坐標網格,刻度標簽,坐標軸標題等內容。

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

1,可對曲線進行插值。

2,fill_between()繪制交點。

3,坐標變換。

4,繪制陰影。

5,添加注釋。

1,繪制直方圖的函數是

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

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

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

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

值的大小。

4,散點圖

5,QQ圖

低層繪圖函數

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

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

繪圖區域與邊界

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

添加對象

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

?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, ...),添加圖列說明


本文題目:pythonqq圖函數,python 圖
轉載來源:http://m.jcarcd.cn/article/dsidgss.html
主站蜘蛛池模板: 中文字幕日韩一区 | 成人区在线播放 | 欧美日韩一级无毛 | 最新中文字幕第一页 | 国产伦精品一区二区 | 麻花传媒免费网 | 国产网站在线免费 | 91激情福利 | 国产精品免费大片 | 1区2区| 国产精品国产片在 | 成人午夜小视频 | 国产欧美一区二区三 | 韩国三级伦理在线 | 看黄免费进入 | 日韩国产视频 | 91干屁| 日本精品99 | 日本在线成人观看 | 欧美日韩亚洲国 | 国产精品福利社 | 国产精品夫妻在线 | 国产精品狼人 | 国产欧美日韩亚洲区 | 国产精品第1页 | 国产区福利导航 | 成人福利 | 精品国产91久 | 日韩私人综合影院 | 九色精品视频导航1 | 91国产爽爽黄 | www亚洲欲色成 | 三级日韩欧美在线 | 三级欧美日本国产 | 尤物视频官网 | 国子监来了个女弟子 | 国产精品电影在线 | 国产婬妇視频网站 | 午夜福利写真片精品 | 91香蕉下载| 午夜一区一品日本 |