CMplot rMVP | 全基因组曼哈顿图和QQ图轻松可视化!

文章目录

    • 1.CMplot
      • 1.1 CMplot介绍
      • 1.2 CMplot-DEMO
      • 1.3 CMplot参数
    • 2.rMVP
      • 2.1 rMVP介绍
      • 2.2 rMVP-DEMO
      • 2.3 rMVP参数

1.CMplot

1.1 CMplot介绍

CMplot:https://github.com/YinLiLin/CMplot

这是一个做全基因组对SNP可视化神器了,尹立林教授写的R包。主打两个功能,曼哈顿图(Manhattan plots)和QQ图(Quantile-Quantile plots)

  • 曼哈顿图:用于展示 GWAS 分析的结果,其中每个点代表一个单核苷酸多态性(SNP),点的位置表示 SNP 在基因组中的位置,而点的高度则表示该 SNP 与研究性状的关联强度(通常用 -log10(p-value) 表示)。
  • QQ图:用于检查数据的分布是否符合期望的分布(通常是正态分布)。在遗传学研究中,QQ图可以用来检测数据中是否存在过度的分散或聚集,这可能是由群体结构、样本大小或其他因素引起的。

1.2 CMplot-DEMO

安装R包,及加载数据

install.packages("CMplot")
library("CMplot")

# github最新版本
source("https://raw.githubusercontent.com/YinLiLin/CMplot/master/R/CMplot.r")

常见的SNP密度图:

CMplot(pig60K,plot.type="d",bin.size=1e6,chr.den.col=c("#7CC767", "#088247", "black"),file="pdf",file.name="",dpi=300,
       main="illumilla_60K",file.output=TRUE,verbose=TRUE,width=9,height=6)

环状曼哈顿图:

CMplot(pig60K,type="p",plot.type="c",chr.labels=paste("Chr",c(1:18,"X","Y"),sep=""),r=0.4,cir.axis=TRUE,
       outward=FALSE,cir.axis.col="black",cir.chr.h=1.3,chr.den.col="black",file="pdf",
       file.name="",dpi=300,file.output=TRUE,verbose=TRUE,width=10,height=10)

矩阵曼哈顿图:

CMplot(pig60K, plot.type="m", LOG10=TRUE, ylim=NULL, threshold=c(1e-6,1e-4),threshold.lty=c(1,2),
       threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e6,
       chr.den.col=c("#7CC767", "#088247", "black"),signal.col=c("#D20A13","#223D6C"),signal.cex=c(1.5,1.5),
       signal.pch=c(19,19),file="jpg",file.name="",dpi=300,file.output=TRUE,verbose=TRUE,
       width=14,height=6)

单条染色体可视化:

CMplot(pig60K[pig60K$Chromosome==13, ], plot.type="m",LOG10=TRUE,col=c("grey60"),highlight=SNPs,
       highlight.col="darkgreen",highlight.cex=1,highlight.pch=19,file="jpg",file.name="", 
       threshold=c(1e-6,1e-4),threshold.lty=c(1,2),threshold.lwd=c(1,2), width=9,height=6,
       threshold.col=c("red","blue"),amplify=FALSE,dpi=300,file.output=TRUE,verbose=TRUE)

标出指定基因/SNP:

SNPs <- pig60K[pig60K[,5] < (0.05 / nrow(pig60K)), 1]
genes <- paste("GENE", 1:length(SNPs), sep="_")
set.seed(666666)
CMplot(pig60K[,c(1:3,5)], plot.type="m",LOG10=TRUE,col=c("grey30","grey60"),highlight=SNPs,
         highlight.col=rep(c("yellow","red"),length=length(SNPs)),highlight.cex=1, highlight.text=genes,      
         highlight.text.col=rep("darkgreen",length(SNPs)),threshold=0.05/nrow(pig60K),threshold.lty=2,   
         amplify=FALSE,file="jpg",file.name="",dpi=300,file.output=TRUE,verbose=TRUE,width=14,height=6)

多重曼哈顿图:

CMplot(pig60K, plot.type="m",multraits=TRUE,threshold=c(1e-6,1e-4),threshold.lty=c(1,2), 
        threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e6,
        chr.den.col=c("darkgreen", "yellow", "red"), signal.col=c("red","green"),
        signal.cex=1, file="jpg",file.name="",dpi=300,file.output=TRUE,verbose=TRUE,
        points.alpha=100,legend.ncol=1, legend.pos="left")

QQ图:

CMplot(pig60K,plot.type="q",box=FALSE,file="jpg",file.name="",dpi=300,
    conf.int=TRUE,conf.int.col=NULL,threshold.col="red",threshold.lty=2,
    file.output=TRUE,verbose=TRUE,width=5,height=5)

多组QQ图:

CMplot(pig60K,plot.type="q",col=c("dodgerblue1", "olivedrab3", "darkgoldenrod1"),multraits=TRUE,
        threshold=1e-6,ylab.pos=2,signal.pch=c(19,6,4),signal.cex=1.2,signal.col="red",
        conf.int=TRUE,box=FALSE,axis.cex=1,file="jpg",file.name="",dpi=300,file.output=TRUE,
        verbose=TRUE,ylim=c(0,8),width=5,height=5)

1.3 CMplot参数

  • Pmap:数据框,至少四列。第一列是SNP的名称,第二列是SNP的染色体,第三列是SNP的位置,剩余的列是每个性状的P值(每个性状占据一列)。
  • col:向量或矩阵,如果是向量,则每个圈使用相同的颜色,表示相同染色体使用相同颜色;如果是矩阵,则每行是一个圈(性状),列是用户想要使用的不同颜色,缺失值可以用NA替换。
  • pch:点的类型,与中的"pch"相同。
  • band:染色体之间的间隔,默认为1。
  • cir.band:圈之间的间隔,默认为1。
  • H:每个圈的高度,每个圈代表一个性状,默认为1。
  • ylim:Y轴的范围。
  • cex.axis:X轴数字和标签的大小。
  • plot.type:要绘制的图表类型,可以是"c"、“m”、“q"或"b”。
  • multracks:是否将曼哈顿图绘制在多个轨道上。
  • cex:点的大小。
  • r:圆的半径。
  • xlab:X轴标签。
  • ylab:Y轴标签。
  • xaxs:X轴刻度样式。
  • yaxs:Y轴刻度样式。
  • outward:是否将点从内向外绘制。
  • threshold:显著性水平。
  • threshold.col:阈值水平线的颜色。
  • threshold.lwd:阈值水平线的宽度。
  • threshold.lty:阈值水平线的类型。
  • amplify:是否突出显示显著点。
  • signal.cex:显著点的大小。
  • signal.pch:显著点的形状。
  • signal.col:显著点的颜色。
  • cir.chr:是否绘制染色体边界。
  • cir.chr.h:边界的宽度。
  • cir.chr.col:边界的颜色。
  • chr.labels:圆形曼哈顿图中染色体的标签。
  • cir.legend:是否添加每个圈的图例。
  • cir.legend.cex:图例中数字的大小。
  • cir.legend.col:图例轴的颜色。
  • LOG10:是否将P值转换为log10(P值)。
  • box:是否在曼哈顿图周围绘制边框。
  • conf.int:是否在Q-Q图上绘制置信区间。
  • conf.int.col:置信区间的颜色。
  • plot0:是否绘制染色体编号为0的染色体。
  • file.output:是否输出图表结果。
  • file:输出的文件格式,可以是"jpg"、“pdf"或"tiff”。
  • dpi:.jpg和.tiff文件的像素密度,默认为300。

2.rMVP

2.1 rMVP介绍

Github:https://github.com/xiaolei-lab/rMVP

这也是一个做全基因组可视化的R包,同课题组开发,CMplot被集成进来了,特点是并行和算法优化。

  • rMVP 支持包括常见的单变量线性/混合线性模型(如 MLM、GLM)以及更先进的GWAS方法,,比如 FarmCPU、SUPER等。

  • 高效的内存和计算管理,针对大规模数据集设计,rMVP 优化了内存使用和计算速度,可以有效处理包含数百万个标记的大型基因组数据集。

  • 多种基因组选择算法,提供了包括最佳线性无偏预测(BLUP)、贝叶斯方法等多种基因组选择算法,帮助研究人员评估和选择优良性状。

2.2 rMVP-DEMO

曼哈顿图和QQ图总的来说大同小异,多了个PCA和柱状图,毕竟亮点还是在处理大数据并行。

MVP.Hist(phe=phenotype, file.type="jpg", breakNum=18, dpi=300)

pca <- attach.big.matrix("mvp.pc.desc")[, 1:3]
#pca <- prcomp(t(as.matrix(genotype)))$x[, 1:3]
MVP.PCAplot(PCA=pca, Ncluster=3, class=NULL, col=c("red", "green", "yellow"), file.type="jpg")

2.3 rMVP参数

MVP 包中包含三种模型:广义线性模型(GLM)、混合线性模型(MLM)和 FarmCPU。

  • phe, 表型数据
  • geno, 基因型数据
  • map, 坐标数据
  • K, 关系矩阵
  • CV.GLM, 在 GLM 中添加的协变量
  • CV.MLM, 在 MLM 中添加的协变量
  • CV.FarmCPU, 在 FarmCPU 中添加的协变量
  • nPC.GLM, 在 GLM 中添加的主成分的前几列数目
  • nPC.MLM, 在 MLM 中添加的主成分的前几列数目
  • nPC.FarmCPU, 在 FarmCPU 中添加的主成分的前几列数目
  • priority, 在计算基因组关系矩阵时选择“速度”或“内存”
  • ncpus, 用于并行计算的 CPU 数目,如果未设置,默认使用所有 CPU
  • vc.method, 方差成分分析的方法,有三种方法可用:“BRENT”、“EMMA”和“HE”
  • maxLoop, 仅适用于 FarmCPU 的参数,FarmCPU 允许的最大迭代次数
  • method.bin, 仅适用于 FarmCPU 的参数,有两个选项:“static”和“FaST-LMM”
  • permutation.threshold, 如果为 TRUE,将在曼哈顿图中使用置换阈值。表型数据会被置换以打破与基因型的关系。该实验会重复多次。记录所有实验的最小 P 值向量,并建议使用该向量的 95% 分位数作为显著阈值
  • permutation.rep, 置换重复次数,仅在 permutation.threshold 为 TRUE 时使用
  • threshold, 0.05/标记大小,曼哈顿图上的截止线
  • method, 关联测试的模型,MVP 中可用的三种模型是“GLM”、“MLM”和“FarmCPU”,可选择一种、两种或三种模型进行关联测试
  • file.output, 布尔值或字符串向量。如果为 TRUE,输出所有类型的文件。如果为 FALSE,则不输出文件。对于字符串向量,可用值为 c(“pmap”, “pmap.signal”, “plot”, “log”)。其中,pmap 代表所有 SNP P 值文件,pmap.signal 代表显著 SNP 文件,Plot 代表可视化结果,log 代表日志文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/570923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Uptime Kuma 使用指南:一款简单易用的站点监控工具

我平时的工作会涉及到监控&#xff0c;而站点是一个很重要的监控项。项目上线后&#xff0c;我们通常会将站点监控配置到云平台上&#xff0c;以检测各站点的连通性。但随着项目不断增多&#xff0c;云平台上的配额就有点捉急了。针对这个情况&#xff0c;我们可以试试这个开源…

GPT-SoVITS声音克隆训练和推理(新手教程,附整合包)

环境: Win10 专业版 GPT-SoVITS-0421 整合包 问题描述: GPT-SoVITS声音克隆如何训练和推理教程 解决方案: Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.零样本 TTS:输入 5 秒的人声样本并体验即时文本到语音转换…

CentOS-7安装Mysql并允许其他主机登录

一、通用设置&#xff08;分别在4台虚拟机设置&#xff09; 1、配置主机名 hostnamectl set-hostname --static 主机名2、修改hosts文件 vim /etc/hosts 输入&#xff1a; 192.168.15.129 master 192.168.15.133 node1 192.168.15.134 node2 192.168.15.136 node33、 保持服…

设计模式-00 设计模式简介之几大原则

设计模式-00 设计模式简介之几大原则 本专栏主要分析自己学习设计模式相关的浅解&#xff0c;并运用modern cpp 来是实现&#xff0c;描述相关设计模式。 通过编写代码&#xff0c;深入理解设计模式精髓&#xff0c;并且很好的帮助自己掌握设计模式&#xff0c;顺便巩固自己的c…

【架构方法论(一)】架构的定义与架构要解决的问题

文章目录 一. 架构定义与架构的作用1. 系统与子系统2. 模块与组件3. 框架与架构4. 重新定义架构&#xff1a;4R 架构 二、架构设计的真正目的-别掉入架构设计的误区1. 是为了解决软件复杂度2. 简单的复杂度分析案例 三. 案例思考 本文关键字 架构定义 架构与系统的关系从业务逻…

【亲测有用】idea2024.1中前进后退按钮图标添加

idea更新后&#xff0c;前进后退按钮消失了&#xff0c;现在说下怎么设置 具体操作如下&#xff1a; 1、选择 File / Settings(windows版)&#xff0c;或者Preferences(mac版) 2、打开 Appearance & Behavior 并选择 Menus and Toolbars 3、选择右侧的 “Main toolbar lef…

第四百七十七回

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容&#xff0c;本章回中将介绍GetMaterialApp组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

C++:模板(初级)

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;模板&#xff08;初级&#xff09;》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞…

Docker 网络与资源控制

一 Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根 据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默 认网关。因为在同…

C++从入门到出门

C 概述 c 融合了3中不同的编程方式&#xff1a; C语言代表的过程性语言C 在C语言基础上添加的类代表的面向对象语言C 模板支持的泛型编程 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c得用法改变了&#xff0c;c头文件没有扩展名。但是…

Linux gcc day7

动态链接和静态链接 形成的可执行的程序小&#xff1a;节省资源--内存&#xff0c;磁盘 无法c静态库链接的方法 原因是我们没有安装静态c库&#xff08;.a&#xff09; 所以要安装 sudo yum install -y glibc-static gcc static静态编译选项提示错误&#xff1a;/usr/lib/ld:ca…

9.Eureka服务发现+Ribbon+RestTemplate服务调用

order-service服务通过服务名称来代替 ip:port的方式访问user-service服务的接口。 原来的请求代码&#xff1a; Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;Ov…

DataGrip操作Oracle

一、创建表空间 表名任意起&#xff0c;路径自己指定 -- 创建表空间 create tablespace mydb1 -- 表名 datafile E:\Code\sql\oracle\oracle_tablespace\mydb1.dbf --指定表空间路径 size 100M --指定表空间大小 autoextend on next 50M --指定一次扩充多少mb extent managemen…

入门指南:网站UI原型设计的简单方法

从零开始做网站UI原型设计&#xff0c;真的很有成就感&#xff01;那么&#xff0c;UI设计师从零开始做网站UI原型设计需要经历哪些过程呢&#xff1f;设计网站UI原型的第一步&#xff1a;绘制网站线框。本文将主要分为两个阶段&#xff1a;网站线框和原型绘制。 如何制作网站…

Mysql联合索引和最左匹配例子说明

文章目录 前言联合索引最左匹配原则举例说明 前言 是什么是索引&#xff1f; 索引是一种数据结构&#xff0c;用于加速数据库查询。 当没有索引时&#xff0c;数据库系统需要执行全表逐行扫描来满足查询需求。这意味着它会逐行读取整个表中的数据&#xff0c;并在内存中进行比…

最快2周录用!多领域EI,征稿范围广!各指标优秀!

计算机工程类EI&#xff08;最快2周录用&#xff09; 【期刊简介】最新EI期刊目录内源刊 【检索情况】EI&Scopus双检 【版面情况】仅10篇版面 【年发文量】60篇左右 【国人占比】约13% 【收录年份】2009年被EI数据库收录 【审稿周期】预计1个月左右录用 【征稿领域…

【WSL】单机大模型前的基础环境配置

前言&#xff1a;在上一篇文章中&#xff0c;我们完成了WSL的部署&#xff0c;但是在大模型搭建&#xff08;尤其是Langchain&#xff09;前&#xff0c;还碰到了不少的坑&#xff0c;查找了不少的文章&#xff0c;所以本篇文章就做一个记录&#xff0c;避免以后再走冤枉路。 …

【置顶】ARMv8/ARMv9架构入门到精通-[目录]--backup-20240424

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448;联系方式-加入交流群 ---…

Java基础入门1-2

跟着韩顺平老师的30天入门java课程学习&#xff0c;整理一下自己的笔记&#xff0c;方便回顾知识点和复习。 另附上视频链接&#xff1a;0034_韩顺平Java_变量原理_哔哩哔哩_bilibili 第一章&#xff1a;学习前的了解 第二章&#xff1a;Java概述 2.1什么是程序&#xff1f…

韩国机器人公司Rainbow Robotics推出RB-Y1轮式双臂机器人

文 | BFT机器人 近日&#xff0c;韩国机器人领域的佼佼者Rainbow Robotics揭开了RB-Y1移动机器人的神秘面纱&#xff0c;这款机器人以其创新的设计和卓越的功能引起了业界的广泛关注。与此同时&#xff0c;Rainbow Robotics还携手舍弗勒集团&#xff08;提供汽车、工业技术服务…