原来高分文章的图是这么做的真简单

文章来源:一氧化碳中毒   发布时间:2021-7-10 12:36:35   点击数:
  

探索生信之美,解构每一篇文章的故事

大家好啊,我是风间琉璃。上一周我们解密基因组学高阶套路,虽然达到《PNAS》的道路还比较长,但是我们正在不断的努力前行中这一周我们再接再厉,继续讲解基因组可视化。让我们在基因组可视化的道路上越走越远。说了这么多,我们先看图,如果觉得图还不错,我们继续往下走~

今天我跟大家介绍的Gviz包,能够替代大部分GnBrowsr的功能,并且进一步展示出其强大的个性化效果。能够对不同类型的gnomicfatur数据分别用不同的track进行展示,这里的Track可以理解为轨道,后面大家就知道什么叫做track了。对于基因组的可视化就需要我们之前几周学习到的基础知识了(还没看的看这里:“小白都能学会的基因组可视化,不来看看吗?”,“万字长文教你入门biocondutor基石,小白都能看懂~”,“进阶!!!biocondutor基石的熟练应用”)

#加载包#if(!rquirNamspac("BiocManagr",quitly=TRUE))#install.packags("BiocManagr")##BiocManagr::install("Gviz")library(Gviz)##Loadingrquirdpackag:S4Vctors##Loadingrquirdpackag:stats4##Loadingrquirdpackag:BiocGnrics##Loadingrquirdpackag:paralll####Attachingpackag:BiocGnrics##Thfollowingobjctsarmaskdfrompackag:paralll:####clustrApply,clustrApplyLB,clustrCall,clustrEvalQ,##clustrExport,clustrMap,parApply,parCapply,parLapply,##parLapplyLB,parRapply,parSapply,parSapplyLB##Thfollowingobjctsarmaskdfrompackag:stats:####IQR,mad,sd,var,xtabs##Thfollowingobjctsarmaskdfrompackag:bas:####anyDuplicatd,appnd,as.data.fram,basnam,cbind,colnams,##dirnam,do.call,duplicatd,val,valq,Filtr,Find,gt,grp,##grpl,intrsct,is.unsortd,lapply,Map,mapply,match,mgt,##ordr,past,pmax,pmax.int,pmin,pmin.int,Position,rank,##rbind,Rduc,rownams,sapply,stdiff,sort,tabl,tapply,##union,uniqu,unsplit,which.max,which.min####Attachingpackag:S4Vctors##Thfollowingobjctismaskdfrompackag:bas:####xpand.grid##Loadingrquirdpackag:IRangs##Loadingrquirdpackag:GnomicRangs##Loadingrquirdpackag:GnomInfoDb##Loadingrquirdpackag:gridlibrary(GnomicRangs)#加载数据,使用甲基化数据——cpgIslandsdata(cpgIslands)class(cpgIslands)#我们熟悉的GRangs对象##[1]"GRangs"##attr(,"packag")##[1]"GnomicRangs"#提取染色体信息chr-as.charactr(uniqu(sqnams(cpgIslands)))#基因组信息gn-gnom(cpgIslands)

导入数据之后,就到了我们的绘图环节,也就是通过不同类型的数据构建不同的Track,再将每个Track进行拼接。比如:

#制作AnnotationTrackatrack-AnnotationTrack(cpgIslands,nam="CpG")#使用plotTacks进行绘图plotTracks(atrack)#只绘制了一个染色体

这就是一个Track,而我们最前面看到的图就是每一个Track进行拼接而成的。还不懂得同学没关系~看完这一篇肯定懂了。我们先说一下上面这张图,左边是这个track的名称——CpG,右侧的七个竖条状阴影则是CpGisland,共展示七个CpGisland的距离。我们可以在加其他的Track。

#基因轴Trackgtrack-GnomAxisTrack()#CpGisland和染色体轴一起绘制plotTracks(list(gtrack,atrack))

光有个染色体轴不行,我们需要尽可能多的呈现染色体信息,包括这一区域在整个染色体上的部位,使用IdogramTrack进行提取。

itrack-IdogramTrack(gnom=gn,chromosom=chr)plotTracks(list(itrack,gtrack,atrack))

这里展现出来后的图片有那么回事了,对吧?但是还不够,Gviz能够展现更加复杂的基因模型数据,远远不止只展示出简单的染色体信息这么简单。

#加载基因模型数据data(gnModls)#包含不同类型基因的染色体位置信息had(gnModls)##chromosomstartndwidthstrandfaturgn##1chr+lincRNAENSG##2chr+lincRNAENSG##3chr+lincRNAENSG##4chr+lincRNAENSG##5chr+lincRNAENSG##6chr+lincRNAENSG##xontranscriptsymbol##1ENSEENSTAC.2##2ENSEENSTAC.2##3ENSEENSTAC.2##4ENSEENSTAC.2##5ENSEENSTAC.2##6ENSEENSTAC.2

这里的数据其实就和真实的染色体基因信息数据很像了,包括编码蛋白的mRNA、假基因、lncRNA等等类型以及对应得染色体坐标位置信息。接下来我们看一下可视化。

#构建GnRgionTrackgrtrack-GnRgionTrack(gnModls,gnom=gn,chromosom=chr,nam="GnModl")plotTracks(list(itrack,gtrack,atrack,grtrack))

#当然我们也可以自定因想画的染色体范围plotTracks(list(itrack,gtrack,atrack,grtrack),from=,to=)

#同时也可以使用xtnd.lft和xtnd.right分别向左右扩展plotTracks(list(itrack,gtrack,atrack,grtrack),xtnd.lft=0.5,xtnd.right=)

#你看下面的gnrgion的图像都向左缩窄了,Gviz能够自动的调整基因呈现的方式从而呈现更好的效果plotTracks(list(itrack,gtrack,atrack,grtrack),xtnd.lft=0.5,xtnd.right=,col=NULL)

接下来我们还可以添加序列信息,即ATCG等碱基序列。

#加载包,没有得同学可以先下载library(BSgnom.Hsapins.UCSC.hg19)##Loadingrquirdpackag:BSgnom##Loadingrquirdpackag:Biostrings##Loadingrquirdpackag:XVctor####Attachingpackag:Biostrings##Thfollowingobjctismaskdfrompackag:bas:####strsplit##Loadingrquirdpackag:rtracklayr#构建SquncTrackstrack-SquncTrack(Hsapins,chromosom=chr)##Warning:UsingprovidrVrsion()onaBSgnomobjctisdprcatd.Plasus##mtadata(x)$gnominstad.plotTracks(list(itrack,gtrack,atrack,grtrack,strack),from=,to=,cx=0.8)

接下来,我们进一步讲解本次得重头戏——dataTrack。前面这些都是我们在图形呈现得基础内容,而通过这些基础内容,想要呈现得就是dataTrack。dataTrack包含不同染色体坐标区间对应的值从而进行可视化,可视化的类型宝包括点图、柱状图、线条图等方式。这儿大家想到了什么?CpGIsland的甲基化水平对吧?最常见的一种方式,还有吗?其实还可以呈现某一个染色体某一个区间基因的表达水平对吧,相信大家看到过相关文章。我们可以来举个例子~

#首先构建个个sampl,并随机创建每个sampl的起止点,我们可以将sampl视为gnst.sd()lim-c(,)coords-sort(c(lim[1],sampl(sq(from=lim[1],to=lim[2]),99),lim[2]))dat-runif(,min=-10,max=10)#构建datatrackdtrack-DataTrack(data=dat,start=coords[-lngth(coords)],nd=coords[-1],chromosom=chr,gnom=gn,nam="Uniform")#然后我们开始画图,默认设置——点图plotTracks(list(itrack,gtrack,atrack,grtrack,dtrack),from=lim[1],to=lim[2])

#柱状图plotTracks(list(itrack,gtrack,atrack,grtrack,dtrack),from=lim[1],to=lim[2],typ="histogram")

#线条图plotTracks(list(itrack,gtrack,atrack,grtrack,dtrack),from=lim[1],to=lim[2],typ="a")

讲完了Gviz的基础功能,大家肯定有一个问题,如果我自己画,怎么设置自己喜欢的参数呢?作为酸菜老师的忠实拥趸者,肯定还需要跟大家进一步讲解怎么设置相关参数。

#以我们重新构建的GnRgionTrack为例grtrack-GnRgionTrack(gnModls,gnom=gn,chromosom=chr,nam="GnModl",transcriptAnnotation="symbol",background.titl="brown")had(displayPars(grtrack))##$arrowHadWidth##[1]10####$arrowHadMaxWidth##[1]20####$col##[1]"darkgray"####$collapsTranscripts##[1]FALSE####$xonAnnotation##NULL####$fill##[1]"#FFD58A"##修改gnrgionTrack的默认背景颜色displayPars(grtrack)-list(background.panl="#FFFEDB",col=NULL)#展示一下plotTracks(list(itrack,gtrack,atrack,grtrack))

同样地,我们可以通过plotTrack功能进行调整、添加背景颜色等参数。

plotTracks(list(itrack,gtrack,atrack,grtrack),background.panl="#FFFEDB",background.titl="darkblu")

#可以进一步

转载请注明:http://www.lwblm.com/yhhl/12126.html
  • 上一篇文章:
  • 下一篇文章: 没有了