遺傳圖譜的可視化(比mapchart更強大)

將羣體的遺傳圖譜構建完成之後,我們得到的是一個excel文件,一堆數據,那麼在做工作彙報或者發表文章的時候,我們必須要將數據進行可視化,最傳統的方法當然是使用mapchart,我一直也是使用mapchart,其將遺傳圖譜可視化的效果圖如下:

作爲一個極度老牌的可視化軟件,mapchart的弊端現在已經很明顯了。在十幾年前,一個羣體的分子標記還很少,往往很普遍的情況是隻有幾百個SSR標記,而現在,隨着測序行業的發展,隨着SNP標記的普及,分子標記也越來越多,當分子標記多起來之後,mapchart的可視化結果就會很難看,很擁擠,很密集,甚至我用自己的2378個標記可視化時,出現了頁面篇幅容納不下這麼多標記的情況,在無法使用mapchart可視化遺傳圖譜的情況下,我尋找到了另一種可視化遺傳圖譜的方法,它既能展示出每個標記在遺傳圖譜上的位置,同時還能用熱圖的形式展示出標記在遺傳圖譜上的密度。

我使用的是一個叫“LinkageMapView”的R包,此包既能在windows下使用,也同時支持linux和Mac。需要的輸入文件格式如下:

文件分三列,第一行是header,三列分別爲Group、Position、Locus。group代表的是遺傳圖譜上的連鎖羣,position指的是遺傳圖譜上每個標記的遺傳距離,locus指的是標記的名字。

以我的數據爲例,我的輸入數據是玉米的遺傳圖譜,共有10個連鎖羣,代碼如下:

library(LinkageMapView)

a <- read.csv("C:\\Users\\Shenshen Wu\\Desktop\\linkage.csv")

maxpos <- floor(max(a$Position[a$Group == "LG01" | a$Group == "LG02" | a$Group == "LG03" | a$Group == "LG04" | a$Group == "LG05" | a$Group == "LG06" | a$Group == "LG07" | a$Group == "LG08" | a$Group == "LG09" | a$Group == "LG10"]))

at.axis <- seq(0, maxpos)

axlab <- vector() 

for (lab in 0:maxpos) {

      if (!lab %% 10) { 

            axlab <- c(axlab, lab)
     }
     else {
         axlab <- c(axlab, NA)
     }
 }

outfile = file.path("C:\\Users\\Shenshen Wu\\Desktop", "LinkageMap.pdf")

lmv.linkage.plot(a,outfile,mapthese=c("LG01","LG02","LG03","LG04","LG05","LG06","LG07","LG08","LG09","LG10"),denmap=TRUE, cex.axis = 1, at.axis = at.axis, labels.axis = axlab)

最後的可視化結果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章