基因组的可视化展示大家应该都熟悉,今天给大家看一下在R语言中的一个用来进行基因组可视化的包Sushi。一些基础的理论就不再赘述了,首先我们看下包的安装:

BiocManager::install("Sushi")

接下来我们直接通过实例来看下包中的各种展示方式:

1. 包支持的数据输入类型

library('Sushi')Sushi_data = data(package = 'Sushi')data(list = Sushi_data$results[,3])

2. 信号轨迹图,所需的基本参数包括要绘制的数据、染色体和开始和停止位置。

chrom = "chr11"chromstart = 1650000chromend = 2350000plotBedgraph(Sushi_DNaseI.bedgraph,chrom,chromstart,chromend,colorbycol=SushiColors(5))

当然,我们也可以展示各信号的位置信息以及坐标轴值:

labelgenome(chrom,chromstart,chromend,n=4,scale="Mb")mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)axis(side=2,las=2,tcl=.2)

如果多个序列同时显示,那就需要设置参数overlay=TRUE,同时如果想多个序列坐标轴范围一致需要用到rescaleoverlay=TRUE

chrom = "chr11"chromstart = 1955000chromend = 1960000plotBedgraph(Sushi_ChIPSeq_CTCF.bedgraph,chrom,chromstart,chromend,transparency=.50,color=SushiColors(2)(2)[1])plotBedgraph(Sushi_DNaseI.bedgraph,chrom,chromstart,chromend,transparency=.50,color=SushiColors(2)(2)[2],overlay=TRUE,rescaleoverlay=TRUE)labelgenome(chrom,chromstart,chromend,n=3,scale="Kb")legend("topright",inset=0.025,legend=c("DNaseI","ChIP-seq(CTCF)"), fill=opaque(SushiColors(2)(2)),border=SushiColors(2)(2),text.font=2,cex=1.0)

#独立展示对比效果需要设置参数flip=TRUEpar(mfrow=c(2,1),mar=c(1,4,1,1))plotBedgraph(Sushi_ChIPSeq_CTCF.bedgraph,chrom,chromstart,chromend,transparency=.50,color=SushiColors(2)(2)[1])axis(side=2,las=2,tcl=.2)mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)legend("topright",inset=0.025,legend=c("DNaseI","ChIP-seq(CTCF)"),fill=opaque(SushiColors(2)(2)),border=SushiColors(2)(2),text.font=2, cex=1.0) plotBedgraph(Sushi_DNaseI.bedgraph, chrom,chromstart, chromend, transparency=.50, flip=TRUE, color=SushiColors(2)(2)[2])labelgenome(chrom,chromstart,chromend,side=3,n=3,scale="Kb")axis(side=2,las=2,tcl=.2,at=pretty(par("yaxp")[c(1,2)]),labels=-1*pretty(par("yaxp")[c(1,2)]))mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)

3. Hi-C测序结果的染色体互作可视化。Hi-C可以展现出整个染色体all-to-all的互作关系。

chrom = "chr11"chromstart = 500000chromend = 5050000phic = plotHic(Sushi_HiC.matrix,chrom,chromstart, chromend, max_y = 20,zrange=c(0,28), palette=SushiColors(7))addlegend(phic[[1]], palette=phic[[2]],title="score", side="right", bottominset=0.4, topinset=0,xoffset=-.035, labelside="left", width=0.025, title.offset=0.035)labelgenome(chrom, chromstart, chromend,n=4, scale="Mb", edgeblankfraction=0.20)

此图和热图想表达的意义是一样的根据颜色的变化可以看出各位点之间相关性打分的大小。当然,还可以对其中的一些细节可以进一步的操作,我们直接看下实例:

chrom = "chr11"chromstart = 500000chromend = 5050000phic =plotHic(Sushi_HiC.matrix,chrom,chromstart,chromend,max_y = 20,zrange=c(0,28),flip=TRUE,palette=topo.colors)addlegend(phic[[1]],palette=phic[[2]],title="score",side="left",bottominset=0.1,topinset=0.5,xoffset=-.035,labelside="right",width=0.025,title.offset=0.035)labelgenome(chrom,chromstart,chromend,side=3,n=4,scale="Mb",edgeblankfraction=0.20)

4. bedpe格式数据的可视化展示

chrom = "chr11"chromstart = 1650000chromend = 2350000pbpe =plotBedpe(Sushi_5C.bedpe,chrom,chromstart,chromend,heights =Sushi_5C.bedpe$score,plottype="loops",colorby=Sushi_5C.bedpe$samplenumber,colorbycol=SushiColors(3))labelgenome(chrom,chromstart,chromend,n=3,scale="Mb")legend("topright",inset=0.01,legend=c("K562","HeLa","GM12878"),col=SushiColors(3)(3),pch=19,bty='n',text.font=2)axis(side=2,las=2,tcl=.2)mtext("Z-score",side=2,line=1.75,cex=.75,font=2)

上图中的拱形的高度代表了Z-score of the 5C interaction。不同的颜色代表不同的细胞系,线的粗细是一个恒量。

#绘制线型的可视化结果:chrom = "chr11"chromstart = 1650000chromend = 2350000pbpe =plotBedpe(Sushi_5C.bedpe,chrom,chromstart,chromend,flip=TRUE,plottype="lines",colorby=Sushi_5C.bedpe$score,colorbycol=SushiColors(5))labelgenome(chrom,chromstart,chromend,side=3,n=3,scale="Mb")addlegend(pbpe[[1]],palette=pbpe[[2]],title="Z-score",side="right",bottominset=0.05,topinset=0.05,xoffset=-.035,labelside="right",width=0.025,title.offset=0.045)

上图就是将拱形进行直线化,直接通过直线将两个互作的片段之间进行连线,并通过颜色代表Z-score大小。

5. 对bed格式的chip数据的可视化展示。

chrom = "chr11"chromstart = 2281200chromend = 2282200plotBed(beddata = Sushi_ChIPSeq_pol2.bed,chrom = chrom,chromstart =chromstart,chromend =chromend,colorby = Sushi_ChIPSeq_pol2.bed$strand,colorbycol= SushiColors(2),row = "auto",wiggle=0.001)labelgenome(chrom,chromstart,chromend,n=2,scale="Kb")legend("topright",inset=0,legend=c("reverse","forward"),fill=SushiColors(2)(2),border=SushiColors(2)(2),text.font=2,cex=0.75)

上图通过颜色将strand进行分别标记

#独立分割srandchrom = "chr11"chromstart = 2281200chromend = 2282200plotBed(beddata = Sushi_ChIPSeq_pol2.bed,chrom = chrom,chromstart =chromstart,chromend =chromend,colorby = Sushi_ChIPSeq_pol2.bed$strand,colorbycol= SushiColors(2),row = "auto",wiggle=0.001,splitstrand=TRUE)labelgenome(chrom,chromstart,chromend,n=2,scale="Kb")legend("topright",inset=0,legend=c("reverse","forward"),fill=SushiColors(2)(2),border=SushiColors(2)(2),text.font=2,cex=0.75)

#多样本数据的比较,点图和矩形图Sushi_ChIPSeq_severalfactors.bed$color=maptocolors(Sushi_ChIPSeq_severalfactors.bed$row,col=SushiColors(6))chrom = "chr15"chromstart = 72800000chromend = 73100000plotBed(beddata =Sushi_ChIPSeq_severalfactors.bed,chrom = chrom,chromstart = chromstart,chromend=chromend,rownumber = Sushi_ChIPSeq_severalfactors.bed$row, type ="circles",color=Sushi_ChIPSeq_severalfactors.bed$color,row="given",plotbg="grey95",rowlabels=unique(Sushi_ChIPSeq_severalfactors.bed$name),rowlabelcol=unique(Sushi_ChIPSeq_severalfactors.bed$color),rowlabelcex=0.75)labelgenome(chrom,chromstart,chromend,n=3,scale="Mb")mtext("ChIP-seq",side=3,adj=-0.065,line=0.5,font=2)

plotBed(beddata =Sushi_ChIPSeq_severalfactors.bed,chrom = chrom,chromstart = chromstart,chromend=chromend,rownumber = Sushi_ChIPSeq_severalfactors.bed$row, type ="region",color=Sushi_ChIPSeq_severalfactors.bed$color,row="given",plotbg="grey95",rowlabels=unique(Sushi_ChIPSeq_severalfactors.bed$name),rowlabelcol=unique(Sushi_ChIPSeq_severalfactors.bed$color),rowlabelcex=0.75)labelgenome(chrom,chromstart,chromend,n=3,scale="Mb")mtext("ChIP-seq",side=3,adj=-0.065,line=0.5,font=2)

我们也可以通过位置信息获得我们想要的基因信息:

chrom = "chr15"chromstart = 60000000chromend = 80000000chrom_biomart =gsub("chr","",chrom)mart=useMart(host='may2009.archive.ensembl.org',biomart='ENSEMBL_MART_ENSEMBL', dataset='hsapiens_gene_ensembl')geneinfobed = getBM(attributes =c("chromosome_name","start_position","end_position"),filters= c("chromosome_name","start","end"), values=list(chrom_biomart,chromstart,chromend),mart=mart)geneinfobed[,1] =paste("chr",geneinfobed[,1],sep="")

那么接下来我们就可以绘制基因密度图,所谓基因密度是指一个基因中所含碱基的相对数量,相对数量越大,基因密度越大。比较难懂,通俗点就是在所提供的序列长度中包含的基因越多,那么基因密度越大。

plotBed(beddata =geneinfobed[!duplicated(geneinfobed),],chrom = chrom,chromstart =chromstart,chromend =chromend,row='supplied',palettes = list(SushiColors(7)),type = "density")labelgenome(chrom, chromstart, chromend,n=4,scale="Mb",edgeblankfraction=0.10)mtext("Gene Density",side=3,adj=0,line=0.20,font=2)

6. 曼哈顿图绘制

plotManhattan(bedfile=Sushi_GWAS.bed,pvalues=Sushi_GWAS.bed[,5],col=SushiColors(6),genome=Sushi_hg18_genome,cex=0.75)labelgenome(genome=Sushi_hg18_genome,n=4,scale="Mb",edgeblankfraction=0.20,cex.axis=.5)axis(side=2,las=2,tcl=.2)mtext("log10(P)",side=2,line=1.75,cex=1,font=2)mtext("chromosome",side=1,line=1.75,cex=1,font=2)

7. 基因结构的绘制

chrom = "chr15"chromstart = 72998000chromend = 73020000pg =plotGenes(Sushi_genes.bed,chrom,chromstart,chromend ,types=Sushi_genes.bed$type,maxrows=1,bheight=0.2,plotgenetype="arrow",bentline=FALSE,labeloffset=.4,fontsize=1.2,arrowlength= 0.025,labeltext=TRUE)labelgenome( chrom,chromstart,chromend,n=3,scale="Mb")

#RNA结构的绘制chrom = "chr15"chromstart = 72965000chromend = 72990000pg =plotGenes(Sushi_transcripts.bed,chrom,chromstart,chromend ,types =Sushi_transcripts.bed$type,colorby=log10(Sushi_transcripts.bed$score+0.001),colorbycol=SushiColors(5),colorbyrange=c(0,1.0),labeltext=TRUE,maxrows=50,height=0.4,plotgenetype="box")labelgenome( chrom,chromstart,chromend,n=3,scale="Mb")addlegend(pg[[1]],palette=pg[[2]],title="log10(FPKM)",side="right",bottominset=0.4,topinset=0,xoffset=-.035,labelside="left",width=0.025,title.offset=0.055)

8. 局部放大显示

layout(matrix(c(1,1,2,3),2, 2, byrow =TRUE))par(mar=c(3,4,1,1)) #基础架构chrom = "chr11"chromstart = 1900000chromend = 2350000plotBedgraph(Sushi_DNaseI.bedgraph,chrom,chromstart=chromstart,chromend=chromend,colorbycol=SushiColors(5))labelgenome(chrom,chromstart=chromstart,chromend=chromend,n=4,scale="Mb")mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)axis(side=2,las=2,tcl=.2) #放大的位置zoomregion1 = c(1955000,1960000)zoomregion2 = c(2279000,2284000)zoomsregion(zoomregion1,extend=c(0.01,0.13),wideextend=0.05,offsets=c(0,0.580))zoomsregion(zoomregion2,extend=c(0.01,0.13),wideextend=0.05,offsets=c(0.580,0))#放大区域数据可视化plotBedgraph(Sushi_DNaseI.bedgraph,chrom,chromstart=zoomregion1[1],chromend=zoomregion1[2],colorbycol=SushiColors(5))labelgenome(chrom,chromstart=zoomregion1[1],chromend=zoomregion1[2],n=4,scale="Kb",edgeblankfraction=0.2,cex.axis=.75)zoombox()mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)axis(side=2,las=2,tcl=.2) plotBedgraph(Sushi_DNaseI.bedgraph,chrom,chromstart=zoomregion2[1],chromend=zoomregion2[2],colorbycol=SushiColors(5))labelgenome(chrom,chromstart=zoomregion2[1],chromend=zoomregion2[2],n=4,scale="Kb",edgeblankfraction=0.2,cex.axis=.75)zoombox()mtext("ReadDepth",side=2,line=1.75,cex=1,font=2)axis(side=2,las=2,tcl=.2)

欢迎大家互相学习交流!

r语言结构方程模型可视化_R语言实现基因组的可视化相关推荐

  1. r语言清除变量_R语言:结构方程模型、潜变量分析

    原文链接: R语言:结构方程模型.潜变量分析​tecdat.cn 结构方程模型入门 介绍 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以 ...

  2. R语言结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例

    最近我们被客户要求撰写关于SEM的研究报告,包括一些图形和统计输出. 1 简介 在本文,我们将考虑观察/显示所有变量的模型,以及具有潜在变量的模型.第一种有时称为"路径分析",而后 ...

  3. R语言:结构方程模型sem、潜变量分析

    原文链接:http://tecdat.cn/?p=3071 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法(点击 ...

  4. R语言结构方程模型(SEM)在生态学领域中的应用

    前言:结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰 ...

  5. R语言结构方程模型分析与应用

    (R语言平台:模型构建.拟合.筛选及结果发表全流程:潜变量分析:组成变量分析:非线性关系处理.非正态数据.分组数据.嵌套数据分析与处理:混合效应模型:贝叶斯方法:经典案例练习及解读) 现代统计学理论和 ...

  6. R语言结构方程模型(SEM)在生态学领域中的实践

    结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰展示研 ...

  7. R语言结构方程模型(SEM)教程

    详情点击链接:R语言结构方程模型(SEM)在生态学应用 结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归. ...

  8. 【视频】结构方程模型SEM分析心理学营销数据路径图可视化|数据分享

    最近我们被客户要求撰写关于结构方程模型的研究报告,包括一些图形和统计输出.结构方程建模 (SEM) 是一个非常广泛和灵活的数据分析框架,也许更好地被认为是一系列相关的方法,而不是单一的技术.它与营销研 ...

  9. R与结构方程模型(1):SEM的核心

    R与结构方程模型 简介 图形模型 有向图(directed graphs) 1.标准回归模型 2.路径分析 2.1.关系类型 2.2.多个目标 2.3.间接效应 2.4.多中介模型 2.4.例子 间接 ...

  10. R与结构方程模型(2):潜变量

    R与结构方程模型 降维 主成分分析 因子分析(Factor Analysis) 结构和测量模型 因子分析的其他问题 术语 潜变量的其他用途 总结 R包 原文链接:https://m-clark.git ...

最新文章

  1. python opencv local_threshold_Python-OpenCV中的cv2.threshold
  2. DbgPrint/KdPrint输出格式控制
  3. vagrant系列教程(二):vagrant的配置文件vagrantfile详解(转)
  4. 电脑有网络计算机共享怎么用,2台电脑怎么共享文件?没有网络也能共享【详解】...
  5. Spring Boot+Ext JS准前后端框架应用的会话(Session)处理
  6. js tostring 16 java_js中toString()和String()区别详解
  7. Spring cloud ribbon实现灰度发布
  8. 人体的神经系统图 分布,人的神经系统分布图
  9. psn注册什么服务器,怎么注册PSN港服账号?PSN港服官网注册教程
  10. 代码“可读性”到底有多重要?
  11. 文件传输工具FileZillaWinSCP
  12. vscode造成c盘空间占用剧增
  13. java 解析der文件_java-如何读取也用bouncycastle在DER中编码的PK...
  14. 彩色图像自动色阶调整和自动对比度调整
  15. PTA 7-5 字符串的连接
  16. 面试题:打印螺旋数字
  17. 024 | 知行国学:全国领先的线上一对一国学教育平台 | 大学生创新训练项目申请书 | 极致技术工厂
  18. 搜索指定目录exe文件,再将文件复制到指定目录python
  19. 2018医疗器械行业发展
  20. 解决The package java.awt is not accessible或者javax.swing is not accessible的问题

热门文章

  1. 利用火绒强行删除文件
  2. go语言实现dcv端口转发
  3. Red-pitaya SDR
  4. 卖护肤品从哪里引流效果好?卖护肤品怎么找客源?卖护肤品引流技巧
  5. 综科ZKC-2R1G网关两地通过阿里云数据转发技术分享
  6. android 选择视频文件 上传到后台服务器
  7. Word处理控件Aspose.Words功能演示:在 Java 中将 DOC 或 DOCX 转换为 PNG
  8. 纯干货|职场晋级:程序员面试技巧汇总
  9. 使用ICSharpCode.SharpZipLib.dll实现在线解压缩
  10. 工业互联网:8 行业应用(1)