在这个描述中,我们将构建一个闪亮的应用程序将使用epivizrChart基因组数据可视化。因为epiviz可视化库是建立在web组件框架,它可以与大多数框架集成,支持HTML。
样本数据集用于装饰图案。
数据(cgi_gr)数据(bcode_eset)
首先,我们将创建一个epiviz导航组件呈现特定基因组区域的可视化。我们将设置互动= TRUE
这样的组件可以与闪亮的服务器通信数据块/跟踪。我们会想象我们之前加载的数据对象。
epivizNav < - epivizNav(对应=“chr11”,开始= 118000000 = 121000000,互动= TRUE) genes_track < - epivizNav add_genome美元(Homo.sapiens)
# #创建基因注释(可能需要一点)
# #的选择()返回1:1键和列之间的映射
blocks_track < - epivizNav情节美元(cgi_gr datasource_name =“CpG_Islands”) means_track < - epivizNav美元情节(bcode_eset datasource_name =“基因表达条码”,表=“HeatmapPlot”)
# #加载所需的包:hgu133plus2.db
# #
# #的选择()返回1:许多钥匙和列之间的映射
我们将创建一个R / BioConductor文件对象的文件我们会想象。我们目前支持BedFiles BamFiles BigWigFiles。
file1 < - Rsamtools: BamFile (“http://1000genomes.s3.amazonaws.com/phase3/data/HG01879/alignment/HG01879.mapped.ILLUMINA.bwa.ACB.low_coverage.20120522.bam”) file2 < - rtracklayer:: BEDFile (“https://s3.amazonaws.com/igv.broadinstitute.org/annotations/hg19/genes/refGene.hg19.bed.gz”) epiviz_igv < - epivizNav美元情节(file1 datasource_name =“genes2”)
一个基本的应用程序将会呈现可视化组件在一个容器中。我们将创建一个div
在ui包含epiviz的组件。服务器上的函数,我们将使用渲染函数来生成HTML。导航元素实现通常的基因组浏览器交互(锅、变焦、位置输入和基因名称搜索)和这些交互生成数据请求发送到闪亮的服务器。我们包括闪亮的= TRUE
这样的组件可以发送数据请求闪亮的切断和调用register_shiny_handler
添加回调函数,观察会话活动。
应用< - shinyApp (ui = fluidPage (uiOutput (“epivizChart”)),服务器= function(输入、输出、会话){输出美元epivizChart < - renderUI ({epivizNav render_component美元(闪亮的= TRUE)}) #注册的事件管理数据请求从ui epivizNav register_shiny_handler美元(会话)})应用程序
在这个例子中。我们将包括一个额外的基因组区域文本框。如果用户更新这个文本框的位置,它会触发一个事件,将revisualize epiviz组件到新的基因组区域。
应用< - shinyApp (ui = fluidPage (textInput (“gene_loc”、“进入基因组的位置(例如:chr11:119000000 - 120000000”,“chr11:118000000 - 121000000”), uiOutput (“epivizChart”)),服务器= function(输入、输出、会话){renderEpiviz < -函数(){输出$ epivizChart < - renderUI ({epivizNav render_component美元(闪亮的= TRUE)})} observeEvent(输入gene_loc美元,{loc < -输入gene_loc如果美元(loc ! = " ") {chr_split < - strsplit (loc,“:”)对应< - chr_split [[1]] [1] range_split < - strsplit (chr_split [1] [2],“-”) epivizNav美元导航(=对应,从而向开始= strtoi (range_split[[1]][1]),结束= strtoi (range_split [[1]] [2]))} renderEpiviz ()}) epivizNav register_shiny_handler美元(会话)})应用程序