本文首发于“生信补给站”,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

使用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,批量也许不太友好,见仁见智了!

LDheatmap | SNP连锁不平衡图(LD)可视化,自己数据实现版!的更多相关文章

  1. SpringCloud学习笔记(5):Hystrix Dashboard可视化监控数据

    简介 上篇文章中讲了使用Hystrix实现容错,除此之外,Hystrix还提供了近乎实时的监控.本文将介绍如何进行服务监控以及使用Hystrix Dashboard来让监控数据图形化. 项目介绍 sc ...

  2. 使用Cesium Stories来可视化时序数据

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium可以用来可视化随时间变化的数据,无论是跨越数百年的地 ...

  3. 十图详解tensorflow数据读取机制(附代码)转知乎

    十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630

  4. go语言入门教程百度网盘 mysql图形化操作与数据导入

    mysql图形化操作与数据导入 @author:Davie 版权所有:北京千锋互联科技有限公司 数据库存储技术 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.每个数据库都有一个 ...

  5. 使用vue构建一个可视化大数据平台

    使用vue全家桶以及v-charts和datav实现一个github可视化大数据界面展示,没有设计搞的原因,只能忽略设计编写一下界面, 用户只需要登录的时候填写自己github用户名.就可以看到数据展 ...

  6. 使用 Apache Superset 可视化 ClickHouse 数据

    Apache Superset是一个强大的BI工具,它提供了查看和探索数据的方法.它在 ClickHouse 用户中也越来越受欢迎. 我们将介绍安装 Superset 的 2 种方法,然后展示如何从 ...

  7. 从Windows 2012标准版升级到数据中心版,标准评价版本升级到标准体验版本并激活

    对于Windows 7.Windows 8操作系统,可以在图形界面中通过输入序列号,从低版本直接升级到高的版本,例如从Windows 7家庭版升级到专业版或旗舰版.而对于Windows Server ...

  8. [敏杰开发]知识路书——图形化文献管理大师 Beta版发布喽!!!

    [敏杰开发]知识路书--图形化文献管理大师 Beta版发布喽!!! 一.总览 项目名称:知识路书 发布形式:网页应用 发布地址:http://roadmap.imcoming.top 二.运行环境与使 ...

  9. 模拟提交API数据Pyqt版

    其实这个模拟提交数据之前已经写过篇: Python requests模拟登录 因为现在在做的项目中需要一个debug请求调试API,用PHP的CURL写了一个,又因Pyqt更能直观灵活的显示请求的参数 ...

随机推荐

  1. 【three.js第四课】自定义材料、贴图。

    1.先去下载6张不同的图片素材放到项目中. 2.在[three.js第三课]的代码基础上添加自定义的材料 //自定义材料 cubeMaterial 数组 //map:用于加载图片,THREE.Text ...

  2. Problem E. Bet

    转载:https://blog.csdn.net/qq_40861916/article/details/84403731 #include<iostream> #include<c ...

  3. 掷骰子 dp

    B. 掷骰子 单点时限: 2.0 sec 内存限制: 512 MB 骰子,中国传统民间娱乐用来投掷的博具,早在战国时期就已经被发明. 现在给你 n 个骰子,求 n 个骰子掷出点数之和为 a 的概率是多 ...

  4. api测试用例(编写思路)

    在API的自动化测试维度中,测试维度分为两个维度,一个是单独的对API的验证,客户端发送一个请求后,服务端得到客户端的请求并且响应回复给客户端: 另外一个维度是基于业务场景的测试,基于业务场景的也就是 ...

  5. java面试题(一年工作经验)的心得

    看面试题 正常人第一步肯定都会看面试题,我也不例外,在看的过程中,我发现有些文章写的不错,对我帮助不小值得推荐,如下: Java面试题全集(上) 很多基础的东西,建议先看. 各大公司Java后端开发面 ...

  6. cmd命令行中查看、修改、删除与添加环境变量

    注意:只在当前窗口生效!! 1.查看当前所有可用的环境变量:输入 set 即可查看. set 2.查看某个环境变量:输入 “set 变量名”即可 set python 3.修改环境变量 :输入 “se ...

  7. phpMyAdmin后台文件包含溯源

    先上大佬解释的漏洞原理链接 https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn= ...

  8. SeleniumHQ

    下载地址:http://www.seleniumhq.org/download/

  9. 转:handler.post 为什么要将thread对象post到handler中执行呢?

    转载网址:http://blog.csdn.net/fei0724/article/details/8664462在Android中使用Handler和Thread线程执行后台操作 对于线程的控制,我 ...

  10. mac使用brew安装mysql5.7

    安装mysql5.7 brew install mysql@5.7 设置环境变量(可能安装完自动生成过了,可以cat ~/.zshrc看一下,有了就不用添加了 ) echo 'export PATH= ...