LDheatmap|SNP连锁不平衡图(LD)可视化,倒三角图?

简介: LDheatmap|SNP连锁不平衡图(LD)可视化,倒三角图?

本文首发于“生信补给站”公众号   https://mp.weixin.qq.com/s/Gl6BChxSYbSHMo9oMpufPg


连锁不平衡图,用来可视化不同SNP之间的连锁程度,前同事间俗称“倒三角”图,

本文使用自己的数据,因为安装R包后使用内置数据集运行出结果较容易,但是自己的数据就可能会有一些不大不小的“坑”,我替你们趟了。。。


一 载入R包 数据

数据为内置CEUData保存后,进行了“细微”的处理(去掉SNP碱基之间的“/”),因为这种基因型形式文件很常见;

library("LDheatmap")
#读入数据
SNP <- read.csv("CEUSNP.csv",header = TRUE)
pos <- read.csv("CEUDist.csv",header= TRUE)
#查看数据
head(pos)
SNP[1:4,1:4]

二 绘制连锁不平衡图

2.1 直接绘制

SNPpos<-pos$x

LDheatmap(SNP, SNPpos,color=grey.colors(20))

Error in LDheatmap(SNP, SNPpos, color = grey.colors(20)) :
 column 1 is not a genotype object


额, 也许是因为没有“/”的原因,加上试试?

2.2 碱基型之间加“/“

怎么加呢? 首先想到 Tidyverse|数据列的分分合合,一分多,多合一separateunite,可是没有分隔符。。

经高人指点 ,使用替换的方式,解决方法很多。此处使用R-do包的函数

library(do)
df <- na.omit(SNP)
#A,C,G ,T 替换为A/,C/,G/,T/
df1 = do::Replace(df,pattern = c("A:A/","C:C/","G:G/","T:T/"))
#去掉最后的/
SNPdata <- do::Trim(df1,"/")
SNPdata[1:4,1:4]
 rs4615512 rs2283089 rs1894731 rs2283092
1       T/C       C/C       A/A       T/T
2       T/C       C/T       A/A       T/T
3       T/C       C/C       A/A       T/T
5       T/C       C/C       A/A       T/T

加上了,再次绘图

LDheatmap(SNPdata, SNPpos,color = grey.colors(20))

Error in LDheatmap(SNPdata, SNPpos, color = grey.colors(20)) :
 column 1 is not a genotype object

额 ,还是不行,同样的报错。检索报错,尝试转换数据格式。

2.3 碱基型转为genotype object

使用genetics包的函数转化

library("genetics")
for(i in 1:ncol(SNPdata)){
 SNPdata[,i]<-as.genotype(SNPdata[,i])
}
LDheatmap(SNPdata, SNPpos,color = grey.colors(20))

额  ,,,终于可以了。。。

三 图形调整,优化

3.1 调整颜色,更改标题,标示SNP名称

color.rgb <- colorRampPalette(rev(c("white","red")),space="rgb")
## 绘制连锁不平衡图
names <- c("rs1111183", "rs2237789", "rs2299531")
LDheatmap(SNPdata, SNPpos,
         color=color.rgb(20),
         title = "DEU Pairwise LD",
         SNP.name=names,flip=TRUE)

3.2 使用grid调整SNP标记名称字体大小、颜色

library(grid)
grid.edit(gPath("ldheatmap", "geneMap","SNPnames"),
   gp = gpar(col="black",lwd = 1,cex=0.7))

所谓的”倒三角图“完成,haploview软件也很好看,且有block,批量也许不太友好,见仁见智了!

相关文章
如何用vcftools从VCF文件中提取某条染色体信息
如何用vcftools从VCF文件中提取某条染色体信息
|
算法 数据挖掘
群体遗传学研究荐读丨应知应会(下)
群体遗传学研究荐读丨应知应会(下)
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
|
并行计算 数据可视化 算法
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
`CMplot`和`rMVP`是R语言中的两个包,用于全基因组关联分析(GWAS)的数据可视化。`CMplot`专注于曼哈顿图和QQ图的绘制,支持多种图表类型,如常见的SNP密度图、环状曼哈顿图、矩阵图、单条染色体图和多重曼哈顿图等。`rMVP`不仅包含了`CMplot`的功能,还支持更复杂的GWAS方法,如线性/混合线性模型和基因组选择算法,优化了内存管理和计算效率,特别适合大规模数据集。此外,它还提供PCA图和柱状图。两者都提供了丰富的参数定制图表。
2559 1
CMplot & rMVP | 全基因组曼哈顿图和QQ图轻松可视化!
|
存储 索引 Python
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
|
安全 网络安全 SDN
网络安全中的蜜罐技术与威胁诱捕:主动防御的新篇章
【7月更文挑战第6天】随着网络安全威胁的日益严峻,蜜罐技术与威胁诱捕技术作为主动防御的重要手段,正逐步成为网络安全领域的新宠。通过不断的技术创新和实践应用,我们有理由相信,在未来的网络安全战争中,蜜罐与威胁诱捕技术将发挥越来越重要的作用,为我们的网络安全保驾护航。
1240 6
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
511 2
|
Arthas Java 测试技术
Arthas之动态加载类(retransform)
Arthas之动态加载类(retransform)
996 0