AnalysisPageServer是一个通过网络共享R交互数据和图表的框架。
R是分析数据和绘制图表的有用工具。网络是一种分享这些分析的方便方式。AnalysisPageServer是一个模块化的系统,可以很容易地通过网络共享可定制的R分析。
AnalysisPageServer系统中的基本对象是一个与该图中的特定元素(通常是点或条)相关联的数据的图。我们使用data.frame来跟踪与情节的特定元素相关的元数据。AnalysisPageServer处理标记情节元素的所有细节,并为前端提供服务。Javascript前端为最终用户提供了丰富的体验:
服务器和客户端是松散耦合的。服务器可以在没有前端的情况下运行,只提供原始数据,如JSON字符串或图表。前端也可以在没有服务器的情况下在单个地块和/或数据集上运行。将目录结构写入磁盘,其中包含在浏览器中打开该数据集的前端所需的所有文件。服务器也可以部署在R进程中,或者更稳定地使用rapache或FastRWeb系统。
AnalysisPageServer可以服务静态或动态内容。静态内容每个数据集都是一个SVG图形和/或一个数据帧(如果不是由R生成,那么这将是一个具有特定格式的JSON字符串)。这样的内容可以通过文件系统进行部署。这可以看作是一个用于生成的系统高度交互的报告。
动态内容组织到的注册表中AnalysisPage
年代。AnalysisPage
表示单个处理程序函数,该函数在启动服务器时指定。通常,该函数生成一个图形并返回一个数据帧。AnalysisPageServer系统负责打开和关闭绘图设备、标记SVG元素以及格式化前端结果的所有细节。在动态模式下,每个页面也有一组参数。每个参数对应于处理程序函数的一个参数,并作为一个小部件呈现给用户。可用的参数类型包括文本条目、滑块、下拉菜单、切换按钮和组合框/自动补全类型小部件,并在交互式应用程序页面。
当提供静态内容时,不需要运行服务器。目录结构被简单地写入磁盘。然后,它可以直接在笔记本电脑上的web浏览器中打开,压缩并传递给合作者,或者作为静态内容(例如由Apache服务器提供)。注意,Chrome必须运行——allow-file-access-from-files
例如在你的本地机器上打开,但是其他测试过的浏览器(Safari和Firefox)可以开箱即用。要在Mac上以这种方式启动Chrome浏览器,请打开终端并键入打开-a "谷歌Chrome"——args——allow-file-access-from-files
.在windows上Chrome可以从命令行启动“C: \ PathTo \ Chrome.exe”——allow-file-access-from-files
.(要找到你的Chrome可执行文件的路径,打开URLchrome: / /版本
在Chrome)。如果数据集没有在Safari中呈现,请启用开发人员菜单(首选项->高级->“在菜单栏中显示开发菜单”),然后从开发菜单中选择“禁用本地文件限制”。
对于动态内容,服务器是必不可少的,因为所有的情节和数据都是动态生成的。出于开发目的,可以使用Rook/Rhttpd系统部署AnalysisPageServer应用程序。这将在本地机器的R进程中运行web服务器,但由于并行请求经常导致崩溃,因此性能不佳。部署生产系统可以使用rapache或FastRWeb系统。
创建静态报告(参见静态内容,嵌入而且交互性vignettes)在Windows下完全支持。
动态应用程序可以在windows下构造,并使用Rook+Rhttpd进行部署非交互式服务器和车部署而且交互式应用程序小插曲)。然而,由于叉
视窗的方便功能是否不可用startRookAnalysisPageServer
不可用,必须进行部署在一个R进程中使用更麻烦的Rook界面。此外,Rook+Rhttpd部署不稳定,不推荐用于生产系统。据我们所知,目前还没有从windows部署多进程R服务器的解决方案,特别是FastRWeb和RApache在windows下不受很好的支持。因此,我们目前不建议从windows部署动态应用程序。
这个包是由Brad Friedman(写R代码的人)开发的Adrian Nowicki(他编写了javascript/CSS/HTML前端)作为基因泰克生物信息部ExpressionPlot项目的一部分。猎人惠特尼是我们的用户体验设计师。马修·布劳尔(Matthew Brauer)是高级经理,完成了整个项目。
一些错误处理代码改编自Gregoire Pau和Jens Reeder的HTSeqGenie
包中。看到许可证页面获取其他外部依赖项及其许可的列表。
感谢Bioconductor团队,特别是Marc Carlson,帮助我们改进工程和分发这个软件。感谢杰弗里·霍纳车
而且RApache
,西蒙·厄本内克RServe + FastRWeb
,给Alex Couture-Beilrjson
并感谢三位回复我的电子邮件。
也感谢我在Genentech生物信息部的同事们的建议和反馈:Kiran Mukhyala, Michael Lawrence, Gabriel Becker, Thomas Sandmann, Christiaan Klijn, Jason Hackney, Christina Chaivorapol, Melanie Huntley, Peter Haverty和Joshua Kaminker。感谢我们的部门主管Gerard Manning, William Young和Robert Gentleman对该项目的支持。最后,感谢ExpressionPlot (AnalysisPageServer最初为之构建的应用程序)的许多用户,他们为用户界面提供了有用的反馈:Jason Dinoso、Pascal Steiner、David Hansen、Bob Yauch、Robert Soriano、Jasmine Chen和Mark Solloway。特别感谢Mark Solloway,他首先提出了过滤和标记交互。
以下是本文档的可能路径: