保姆級教程!!小云教你學(xué)習(xí)曼哈頓圖!Manhattan圖!!
有的小伙伴可能聽說過曼哈頓圖,但是并不了解,也不知道是來做什么的,其實,曼哈頓因為其形似曼哈頓摩天大樓,所以被稱為曼哈頓圖。本質(zhì)上就是散點圖,我們一般用來展示大量非零的波動數(shù)據(jù)。Y軸高點是用來顯示具有相關(guān)性的位點。平時我們用的最多的就是全基因組關(guān)聯(lián)分析研究中也就是GWAS,因為曼哈頓圖可以一目了然的查看基因的頻率和分布。
小伙伴是不是了解了很多,下面小云就帶大家去學(xué)習(xí)一下如何繪制曼哈頓圖。
曼哈頓圖繪制方法有很多種,今天就帶大家了解一下: install.packages('qqman') library(qqman)#這里主要用到qqman這個R包,這個很好下載,普通方式就可以下載。 這里我們使用R包qqman自帶的實例數(shù)據(jù)集qwas?去為大家展示,
小伙伴可以按照這個形式去設(shè)置自己的數(shù)據(jù) 其中SNP是snp名稱,CHR是染色體的編號,BP是堿基的位置,P就是P值啦 我們先繪制簡單的曼哈頓圖manhattan: manhattan(gwasResults, col = c("blue4", "orange3"), main = "Results from simulated trait",genomewideline = FALSE, suggestiveline = FALSE,highlight = snpsOfInterest[1:10])
但是這個圖看起來平平無奇,我們加點細(xì)節(jié),加入標(biāo)題,調(diào)整顏色,把部分SNP高亮等一些細(xì)節(jié)。 head(snpOfInterest)???#這里我們先查看內(nèi)置高亮snp數(shù)據(jù), snpOfInterest可自行設(shè)置 ?manhattan(gwasResults, col = c("blue4", "orange3"), main = "Results from simulated trait",genomewideline = FALSE, suggestiveline = FALSE,highlight = snpsOfInterest[1:10])
里面參數(shù) CHR3的綠點是來自snpsOflnterest,highlight參數(shù)控制。 藍(lán)色橫線是由參數(shù)suggestiveline控制,紅色使用genomewideline控制 小伙伴可以自信設(shè)置。 我們還可以把基因名加上去,這里我們?nèi)ソ檀蠹胰绾闻勘硎净蛎?gwasResults[3057,1] <- "AA"???#這里將將最顯著的點,自定義,可看出改變 ?manhattan(gwasResults,suggestiveline =FALSE,genomewideline =FALSE,col=c("#FF6A6A","#43CD80","#EE7600"),annotatePval=0.05,annotateTop=TRUE)
就繪制完成了,上述代碼中,annotatePval可以設(shè)置p閾值,低于該值的散點將會在圖中被標(biāo)記,annotateTop默認(rèn)為True,即僅標(biāo)記p值最小的點,所以該圖中各條染色體只有一個snp被標(biāo)記,倘若annotateTop設(shè)置為False,則所有低于annotatePval的點均會被標(biāo)記。 ?上述是使用qqman包繪制曼哈頓圖,小云這里還有一種方法,CMplot包繪制曼哈頓圖, 這個包參數(shù)會更多,而且圖會更好看。并且可以繪制多表型的曼哈頓圖,以及circos狀展示。是不是很心動, library(CMplot)
#我們首先載入這個包
CMplot(pig60K,plot.type="m",LOG10=TRUE,threshold=NULL,chr.den.col=NULL,file="jpg",dpi=300) 這里使用內(nèi)部的數(shù)據(jù)集pig60K,小伙伴根據(jù)數(shù)據(jù)集形式自行去設(shè)置:
這個圖繪制完會會出現(xiàn)在設(shè)置好的文件夾里,來看看效果:
我們繪制SNP的密度圖: CMplot(pig60K, plot.type="m", LOG10=TRUE, ylim=NULL, threshold=c(1e-6,1e-4),threshold.lty=c(1,2), threshold.lwd=c(1,1), threshold.col=c("black","grey"), ??????? ???????amplify=TRUE,chr.den.col=c("darkgreen","yellow","red"),bin.size=1e6,signal.col=c("red","green"),signal.cex=c(1,1),signal.pch=c(19,19),file="jpg",dpi=300)
接下來我們還可以對多表型的數(shù)據(jù)展示: CMplot(pig60K, plot.type="m", multracks=TRUE, threshold=c(1e-6,1e ?????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????4),threshold.lty=c(1,2),threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e6,chr.den.col=c("darkgreen", "yellow", "red"), signal.col=c("red","green"),signal.cex=c(1,1),file="jpg",memo="",dpi=300)
我們還可以繪制圈圖也就是circos展示: CMplot(pig60K,plot.type="c",chr.labels=paste("Chr",c(1:18,"X"),sep=""),r=0.4,cir.legend=TRUE,outward=FALSE,cir.legend.col="black",cir.chr.h=1.3,chr.den.col="black",file="jpg",dpi=300)
上述都是使用自帶的示例數(shù)據(jù)pig60K,小云還是喜歡circos的圖片,圖片好看精美。 上述就是我們對曼哈頓的學(xué)習(xí),小伙伴有沒有學(xué)會呢,去準(zhǔn)備一下自己的示例數(shù)據(jù),繪制好看的曼哈頓圖。小云要提醒大家,要多多理解代碼參數(shù)的意義,上述小云已經(jīng)標(biāo)注了很多,小伙伴們可以根據(jù)自己數(shù)據(jù)內(nèi)容套用進(jìn)去,但是也不要忘記是什么含義,這樣才能繪制出自己想要的曼哈頓圖!