轉(zhuǎn)載自https://blog.csdn.net/shenshenwu666/article/details/82956515
將群體的遺傳圖譜構(gòu)建完成之后,我們得到的是一個excel文件,一堆數(shù)據(jù),那么在做工作匯報或者發(fā)表文章的時候,我們必須要將數(shù)據(jù)進行可視化,最傳統(tǒng)的方法當(dāng)然是使用mapchart,我一直也是使用mapchart,其將遺傳圖譜可視化的效果圖如下:
作為一個極度老牌的可視化軟件,mapchart的弊端現(xiàn)在已經(jīng)很明顯了。在十幾年前,一個群體的分子標(biāo)記還很少,往往很普遍的情況是只有幾百個SSR標(biāo)記,而現(xiàn)在,隨著測序行業(yè)的發(fā)展,隨著SNP標(biāo)記的普及,分子標(biāo)記也越來越多,當(dāng)分子標(biāo)記多起來之后,mapchart的可視化結(jié)果就會很難看,很擁擠,很密集,甚至我用自己的2378個標(biāo)記可視化時,出現(xiàn)了頁面篇幅容納不下這么多標(biāo)記的情況,在無法使用mapchart可視化遺傳圖譜的情況下,我尋找到了另一種可視化遺傳圖譜的方法,它既能展示出每個標(biāo)記在遺傳圖譜上的位置,同時還能用熱圖的形式展示出標(biāo)記在遺傳圖譜上的密度。
我使用的是一個叫“LinkageMapView”的R包,此包既能在windows下使用,也同時支持linux和Mac。需要的輸入文件格式如下:
文件分三列,第一行是header,三列分別為Group、Position、Locus。group代表的是遺傳圖譜上的連鎖群,position指的是遺傳圖譜上每個標(biāo)記的遺傳距離,locus指的是標(biāo)記的名字。
以我的數(shù)據(jù)為例,我的輸入數(shù)據(jù)是玉米的遺傳圖譜,共有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)
最后的可視化結(jié)果如下: