Bio|manhattan图

简介: Bio|manhattan图

曼哈顿图常用于展示基因组数据, 画图方法有多种,今天简单介绍以下几种:


一、R-qqman包

R包就会涉及安装,载入,如下:

安装:install.packages('qqman')

载入:library(qqman)

head(gwasResults,3)   #查看qqman提供qwas示例数据(gwasResult)


SNP CHR BP         P

1 rs1   1  1 0.9148060

2 rs2   1  2 0.9370754

3 rs3   1  3 0.2861395


其中:SNP---snp名称,CHR---染色体编号,BP---碱基位置,P---p值;


1)最简单的manhattan:

manhattan(gwasResults)

image.png


2)加入标题、调整颜色、部分SNP高亮等细节

head(snpOfInterest)    #查看内置高亮snp数据,snpOfInterest可自行设置

manhattan(gwasResults, col = c("blue4", "orange3"), main = "Results from simulated trait",genomewideline = FALSE, suggestiveline = FALSE,highlight = snpsOfInterest[1:10])

image.png

其中参数:

CHR3的绿色点来自snpsOfInterest,highlight参数控制;

蓝色横线由参数suggestiveline控制;

红色横线由参数genomewideline控制;


3)批量表示基因名

gwasResults[3057,1] <- "AA"    #将最显著的点,自定义,可看出改变

manhattan(gwasResults,suggestiveline =FALSE,genomewideline =FALSE,col=c("#FF6A6A","#43CD80","#EE7600"),annotatePval=0.05,annotateTop=TRUE)

image.png

其中: annotatePval可以设置p阈值,低于该值的散点将会在图中被标记;annotateTop默认为True,即仅标记p值最小的点,所以该图中各条染色体只有一个snp被标记,倘若annotateTop设置为False,则所有低于annotatePval的点均会被标记。


二、R-CMplot包

参数更多,图更美观;多表型manhattan图绘制;circos状展示;


1)沿用gwasResults数据:CMplot(gwasResults,plot.type="m",LOG10=TRUE,threshold=NULL,chr.den.col=NULL,file="jpg",memo="",dpi=300)

image.png


2)SNP的密度在图下面展示(CMplot内置数据):

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,chr.den.col=c("darkgreen","yellow","red"),bin.size=1e6,signal.col=c("red","green"),signal.cex=c(1,1),signal.pch=c(19,19),file="jpg",memo="",dpi=300)

#parameter 'chr.den.col' is bigger than 1, SNP density that counts the number of SNP within given size('bin.size') will be plotted



3)多表型展示


CMplot(pig60K, plot.type="m", multracks=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=c(1,1),file="jpg",memo="",dpi=300)


4)circos状展示

CMplot(pig60K,plot.type="c",chr.labels=paste("Chr",c(1:18,"X"),sep=""),r=0.4,cir.legend=TRUE,outward=FALSE,cir.legend.col="black",cir.chr.h=1.3,chr.den.col="black",file="jpg",memo="",dpi=300)


三、function方法:


四、基础plot方法

将pos位置叠加,按照点图的思路绘制即可。


相关文章
|
6月前
|
Java
如何理解网络阻塞 I/O:BIO
如何理解网络阻塞 I/O:BIO
|
Java
BIO,NIO,AIO 有什么区别?
BIO,NIO,AIO 有什么区别? BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
55 0
|
7天前
|
网络协议 Dubbo Java
一文搞懂NIO、AIO、BIO的核心区别(建议收藏)
本文详细解析了NIO、AIO、BIO的核心区别,NIO的三个核心概念,以及NIO在Java框架中的应用等。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文搞懂NIO、AIO、BIO的核心区别(建议收藏)
|
1月前
|
Java Linux 应用服务中间件
【编程进阶知识】高并发场景下Bio与Nio的比较及原理示意图
本文介绍了在Linux系统上使用Tomcat部署Java应用程序时,BIO(阻塞I/O)和NIO(非阻塞I/O)在网络编程中的实现和性能差异。BIO采用传统的线程模型,每个连接请求都会创建一个新线程进行处理,导致在高并发场景下存在严重的性能瓶颈,如阻塞等待和线程创建开销大等问题。而NIO则通过事件驱动机制,利用事件注册、事件轮询器和事件通知,实现了更高效的连接管理和数据传输,避免了阻塞和多级数据复制,显著提升了系统的并发处理能力。
56 0
|
3月前
|
缓存 Java UED
BIO、NIO、AIO有什么区别
【8月更文挑战第16天】BIO、NIO、AIO有什么区别
77 4
|
5月前
|
Java
谈谈NIO和BIO区别
谈谈NIO和BIO区别
43 0
|
11月前
|
Go Python
go 多进程与非缓冲通道
go 多进程与非缓冲通道
56 0
|
缓存 Java Linux
NIO vs BIO模型解读
NIO vs BIO模型解读
|
JSON 网络协议 关系型数据库
计网 - 网络 I/O 模型:BIO、NIO 和 AIO 有什么区别?
计网 - 网络 I/O 模型:BIO、NIO 和 AIO 有什么区别?
115 0
|
网络协议 Java
BIO 同步阻塞模型
BIO 同步阻塞模型
BIO 同步阻塞模型