在此小插图中,我们将构建一个闪亮的应用程序,以使用Epivizrchart可视化基因组数据。由于epiviz可视化库是在Web组件框架上构建的,因此可以将其与支持HTML的大多数框架集成。

用于用于小插图的示例数据集。

数据(CGI_GR)数据(BCODE_ESET)

首先,我们将创建一个epiviz导航组件,以在特定的基因组区域进行可视化。我们将设置Interactive = true因此,组件可以与Shiny Server通信以获取图/轨道的数据。然后,我们将可视化之前加载的数据对象。

epiviznav < -  epiviznav(chr =“ chr11”,start = 118000000,end = 121000000,Interactive = true)genes_track <-epiviznav $ add_genome(homo.sapiens)
##创建基因注释(可能需要一点)
## 403基因被删除,因为它们在同一参考序列的两个链上或一个以上的参考序列上都有外显子,因此##不能由单个基因组范围表示。##使用'single.strand.genes.only = false'获取## grangeslist对象中的所有基因,或使用suppressMessages()来抑制此消息。
##'select()'返回1:1键和列之间的映射
blocks_track <-epiviznav $ plot(cgi_gr,datasource_name =“ cpg_islands”)neys_track <-epiviznav $ plot(bcode_eset,datasource_name =“ gene expression barcode barcode barcode”,Chart =“ heatmapplot”)
##加载所需软件包:HGU133PLUS2.DB
##
##'select()'返回1:密钥和列之间的许多映射

我们将为要可视化的文件创建一个R/Bioconductor文件对象。我们目前支持床files,Bamfiles和Bigwigfiles。

file1 <-rsamtools :: bamfile(“ http://1000genomes.s3.amazonaws.com/phase3/data/data/hg01879/alignment/alignment/Alignment/hg01879.mapped.mmapped.illumina.illumina.bwa.acb.acb.low_cover_cover_coverage_coverage.201205222.bam”:: bedfile(“ https://s3.amazonaws.com/igv.broadinstitute.org/annotation/hg19/genes/genes/refgene.hg19.bed.gz”)epiviz_igv <-epiviznav $)

一个基本的闪亮应用程序是渲染容器内的可视化组件。为此,我们将创建一个div在包含epiviz组件的UI上。在服务器函数上,我们将使用渲染函数来生成HTML。导航元素实现了通常的基因组浏览器交互(PAN,ZOOM,位置输入和基因名称搜索),这些交互生成发送到Shiny Server的数据请求。我们包括闪亮= true因此,组件可以将数据请求发送到闪亮的链条并致电register_shiny_handler功能以添加回调并观察会话事件。

app <-shinyapp(ui = fluidPage(uioutput(“ epivizchart”))),server = function(输入,输出,会话){output $ epivizchart <-renderui({epiviznav $ render_component(shiny = true)})从UI epiviznav $ register_shiny_handler(session)})应用程序管理数据请求的事件

在此示例中。我们将包括一个其他基因组区域文本框。如果用户在此文本框中更新了位置,它将触发一个事件,该事件将重新审视新基因组区域的Expiviz组件。

app <-shinyapp(ui = fluidPage(textInput('gene_loc',''输入基因组位置(示例:chr11:119000000-120000000',“ chr11:1180000000000-121000000”),uioutput(uioutput输入,输出,会话){renderePiviz < -  function(){output $ epivizchart <-renderui({epiviznav $ render_component(shiny = true)}}} observeEvent(input $ gene_loc,{loc_loc,{loc loc <-输入$ gene_loc if(loc!=“”){chr_split <-strsplit(loc,“:”)chr <-chr_split [[1]] [1] range_split <-strsplit(chr_split [[[1]] [2] [2],“  - ”)(chr = chr,start = strtoi(range_split [[1] [1])),end = strtoi(range_split [[1] [2]))} renderepiviz()})