理解SNPs之間的聯(lián)系或連鎖不平衡(LD)模式對(duì)于單體型的選擇具有重要作用堕绩,然而始衅,對(duì)于密集的SNP圖譜,隨著區(qū)域內(nèi)SNPs數(shù)量的增加旱物,很難直接從復(fù)雜的VCF文件來看出SNPs間的連鎖不平衡關(guān)系絮姆。LDheatmap就是這樣一個(gè)能夠可視化SNPs之間連鎖不平衡關(guān)系的R包醉冤。
先舉個(gè)小例子:
隨機(jī)創(chuàng)建100個(gè)樣本5個(gè)SNPs的基因型矩陣,并實(shí)現(xiàn)LD熱圖:
rm(list=ls())
set.seed(1)
gdat<-matrix(rbinom(n=500,size=2,prob=.5),ncol=5)
require(chopsticks)
gdat<-as(gdat,"snp.matrix")
LDheatmap(gdat,genetic.distances=c(0,1000,3000,4000,10000))
上圖的5個(gè)SNPs的物理距離為10kb篙悯,每個(gè)SNP的位置通過genetic.distances
參數(shù)控制蚁阳。顏色越深表示LD顯著。
下面使用這個(gè)包的內(nèi)置數(shù)據(jù):
data(CEUData)
這個(gè)包的內(nèi)置數(shù)據(jù)分為兩部分:
一個(gè)是SNPs在各個(gè)樣本中的基因型信息:
另一個(gè)是所對(duì)應(yīng)SNPs的物理距離:
作圖:
MyHeatmap <- LDheatmap(CEUSNP, genetic.distances = CEUDist,color = grey.colors(20))
也可以翻轉(zhuǎn)圖形:
flippedHeatmap<-LDheatmap(MyHeatmap,flip=TRUE)
還可以高亮指定的區(qū)域鸽照,比如用紅色高亮出第3個(gè)SNP到第5個(gè)SNP之間的區(qū)域:
MyHeatmap <- LDheatmap(CEUSNP, genetic.distances = CEUDist,color = grey.colors(20))
LDheatmap.highlight(MyHeatmap, i = 3, j = 5, col = "red")
對(duì)指定區(qū)域進(jìn)行標(biāo)注符號(hào)螺捐,比如用紅色星號(hào)標(biāo)注第4個(gè)和第7個(gè)SNP的LD:
MyHeatmap <- LDheatmap(CEUSNP, genetic.distances = CEUDist, color = grey.colors(20))
LDheatmap.marks(MyHeatmap, 4, 7, gp=gpar(cex=2,col="red"), pch = "*")
也可以自定義調(diào)色板重新上色:
rgb.palette <- colorRampPalette(rev(c("blue", "orange", "red")), space = "rgb")
LDheatmap(MyHeatmap, color=rgb.palette(18))
在物理距離圖譜上標(biāo)注SNP的名稱:
MyHeatmap <- LDheatmap(CEUSNP, genetic.distances = CEUDist, color = grey.colors(20))
LDheatmap(MyHeatmap, SNP.name = c("rs2283092", "rs6979287"))
使用grid.edit
修改圖形的各項(xiàng)屬性:
# 修改標(biāo)題顏色
grid.edit(gPath("ldheatmap", "heatMap", "title"), gp = gpar(col = "red"))
# 修改SNP標(biāo)簽大小
grid.edit(gPath("ldheatmap", "geneMap","SNPnames"), gp = gpar(cex=1.5))
# 使用白線間隔LD色塊:
grid.edit(gPath("ldheatmap", "heatMap", "heatmap"), gp = gpar(col = "white",lwd = 2))
grid.edit
更詳細(xì)的使用方法請(qǐng)參考官方文檔。
更多原創(chuàng)精彩視頻敬請(qǐng)關(guān)注生信雜談: