1.简介
X射线束线技术的最新进展,包括非常高的光辉第三代同步辐射源的束线和先进的探测器仪器使数据采集速度呈指数级增长。因此,越来越需要一个能够在线优化数据收集策略的数据分析平台。在线数据分析的要求包括实验步骤的自动化或半自动化(涉及计算机或操作员决策)、结果反馈和(准)实时数据质量指标、高数据吞吐率的能力以及图形用户界面(GUI)这为远程访问提供了在分布式同步加速器环境中进行实验的可能性。近年来,开发了软件解决方案,以满足不同X射线实验领域的这些要求,例如大分子晶体学(Lamzin&Perrakis,2000; 莱斯利等。, 2002; 贝蒂娃等。, 2006; 伦纳德等。, 2007、索尔蒂斯等。, 2008; 次要等。, 2006; 山田等。, 2008)小角度X射线散射(Konarev等。, 2006)和X射线吸收光谱(Sanchez del Rio,1997; 科尔巴斯等。, 2006; 伦纳德等。, 2009).
在线数据分析软件面临的挑战之一在于能够顺利集成现有软件的扩展。以灵活和可配置的方式添加新功能,或调用不同的外部科学程序来处理特定步骤(顺序或并行),确实是现代面向对象软件的关键点。许多同步加速器设施的趋势是采用基于组件体系结构的现代软件技术,包括应用于设备控制系统的CORBA技术(Chaize等。, 1999; Gibbons&Pulford,2006年)和/或图形砖组件,以构建更高级别的Python、Java或Eclipse RCP GUI(Guijarro,2004; 索莱等。, 2007; 戈茨,2007年).
另一个重要考虑因素是集成数据管理系统,该系统允许对实验数据进行完整定义,在某些情况下,实验数据可能非常复杂。此外,有效的错误跟踪机制对于以用户友好的方式传播潜在的警告和错误消息至关重要。最后,一个强大的测试框架对于保证代码的健壮性、质量信心以及低维护成本至关重要。
这个EDNA公司这里描述的框架是为了解决这些具有挑战性的问题而开发的。基于面向对象的插件架构,EDNA公司是一个技术平台(或框架),它集成了科学组件(或插件)开发工具、数据模型定义实用程序、自动数据类生成机制和测试框架。拥有这样的框架对于协作科学软件开发尤其重要。它允许快速开发可扩展和可定制的X射线在线数据分析应用程序,回归风险低,可信度高。
我们利用该框架开发了第一个应用原型edna-prototype,其目的是在考虑辐射损伤的情况下,完全自动化计算同步加速器束线处大分子晶体的优化数据收集策略。这个EDNA公司本文描述了框架和第一个原型。
2.定义
一个插件是一个可重用和可配置的软件组件,可以由应用程序动态加载,以扩展其现有功能。
在计算中框架是一个模块化工作台,它提供了一组用于开发应用程序的库、工具和约定。它提供了必要的软件块,并规定了足够的规则,以允许构建既健壮又易于维护的已完成应用程序。
一个内核是系统的核心。它提供了可以开发上层的所有必要功能。
目标单元测试是隔离程序的每个部分,并显示各个部分是正确的。
在面向对象编程中,由数据字段和方法组成的数据结构也被称为数据类.A型数据模型是数据类的抽象描述,显示了如何表示和访问数据。
3EDNA公司框架
这里的主要目标是为在线数据分析的典型问题提供答案。例如,
(i) 复杂且异构的输入数据。
(ii)技术配置:正确运行各个工作流步骤所需的技术参数,例如用于中间步骤的第三方程序的标识。
(iii)在不同步骤之间传输复杂的异构数据。
(iv)性能(由高速实验设定)和尽可能并行处理的必要性。
(v) 对结果和数据以及质量指标的反馈。
(vi)坚固性。
这个EDNA公司框架由对应于系统核心的内核和一组功能组件组成。这个EDNA公司内核为构建可配置组件(插件)、数据模型和应用程序提供了必要的实用程序,同时考虑了上述所有技术问题。它还提供了一个测试框架,以促进单元测试和执行测试的开发。的主要组件EDNA公司内核将在以下部分中进行描述。
3.1. 插件设施
组件按逻辑类层次结构组织(图1). 这种层次结构使开发新的功能插件变得简单易行,方法是从适当的父级派生插件。设计了两类插件:第一个分支包含负责执行特定操作的执行插件(EDPluginExec类)(例如执行第三方软件);第二个分支包含控制插件(EDPluginControl类),它们负责数据流(数据的传播)、工作流(适当执行插件的顺序或并行执行)和错误跟踪机制(错误的传播)。
| 图1 EDNA公司插件类层次结构。除了继承自基本AALib类ALPlugin的功能外(Pieritz,2007),的EDNA公司公共父类EDPlugin提供了可配置的属性,可以有输入和输出数据。EDPluginExec组与特定操作的执行相关,而EDPluginControl组负责数据流和工作流。EDPluginExecProcess是能够执行外部进程的特定EDPluginExec。EDPluginExecProcessScript是一种能够启动外部进程的专用EDPluginExecProcess通过脚本。 |
这两个系列的共同父类是EDPlugin类。此类允许所有派生插件具有输入和输出数据,并且可以进行配置通过应用程序配置文件(参见§3.3)它应该包含插件正常运行所需的所有技术参数(工作目录、调用的可执行文件等。). 插件输入和输出数据包括插件要提供和返回的所有科学参数。插件输入和输出数据采用XML(可扩展标记语言)格式,可以在特定的数据模型中定义和描述(请参阅下一节)。
每个插件都存储在特定的存储库目录中,其中包含相关的代码源、数据模型和测试套件。
3.2. 数据模型设施
描述数据对于处理数据可能非常复杂的X射线实验的应用尤其相关。在数据模型中组织它们对文档和通信都很有好处,并且使实现更加简单。它允许自动生成数据类,这对于生产力和再现性来说是一个有价值的功能。
这个EDNA公司kernel提供了一个数据模型工具包,允许构建高级应用程序所需的详细数据模型。此外,它允许设计可以进行统一测试的统一数据模型,以便插件可以独立于任何应用程序上下文启动和测试。此工具包由通用低级类定义组成,包括通用类型(XSDataString、XSDataFloat等。)和X射线实验课,在设计特定组件数据模型时可以重复使用。它以多种标准数据格式提供,包括XMI(XML元数据交换)和XSD(XML模式定义),以便于导入UML(统一建模语言)数据建模工具和/或XSD文件。该框架还包括代码生成机制(Kuhlman,2004)允许从UML图到Python代码的自动代码生成通过XSD格式。
3.3. 应用程序设施
这个EDNA公司内核还包括EDApplication类,它可以用作更专用的应用程序的父类。由于EDApplication能够启动任何给定插件(封装在EDPluginControl中的单个或多个插件)及其配置属性,EDApplication使应用程序系统具有高度通用性和灵活性。提供了两种启动特定插件的方法。第一个是通过edna-prototype-plugin-launcher命令,通过提供要执行的插件(–execute<pluginName>)、XML应用程序配置文件(–conf<configurationFileName>;图2)以及相关插件的XML输入数据文件(–inputFile<dataFileName>)。第二个是通过EDApplication构造函数。可以参考所有可用选项通过–help选项。
| 图2 XML应用程序配置文件。可以配置应用程序的每个插件通过XSPluginItem部分。可以通过设置XSParamItem部分来配置特定的插件参数。 |
4.MX数据采集应用原型
4.3. 实施
该原型的设计和开发目的是易于配置、可扩展和平稳维护。这得益于技术设施EDNA公司该框架提供了包括配置工具、可重用组件库、数据驱动的代码生成机制和测试框架。
图形用户界面(图7)和命令行模式可用于启动应用程序原型。在命令行模式下,输入要么是包含参考图像、光束参数、衍射平面图和(可选)样品化学成分完整描述的XML文件,要么是参考图像文件本身。在后一种情况下,可以定义图像标题中未定义的实验参数以及衍射平面参数通过特定的命令行参数。CCP4中集成的基本Tcl/Tk GUI(协作计算项目,1994年第4期)开发该套件的目的是为了方便输入所有需要的参数,这些参数在命令行模式下可能很难实现。输出(执行文本输出和预测图像)显示给用户通过CCP4i GUI。此外,所有处理步骤的完整结果都可以在XML文件中获得,并且可以轻松链接到数据收集GUI。这已在CBASS公司国家同步辐射光源(布鲁克海文)光束线的软件(J.斯金纳,私人通信)。
| 图7 EDNA公司MX应用程序原型GUI屏幕截图。GUI由四个面板组成。第一个面板定义了输入数据(图像或XML实验描述符)和基于平均蛋白质晶体成分或明确定义的晶体成分使用的辐射损伤模型类型(如果选择了辐射损伤模式帐户)。第二个面板定义了衍射平面。当基于辐射损伤的策略选项处于活动状态时,启用第三个(光束参数定义)面板;当要求明确的化学成分定义时,激活可选的第四个面板。 |
6.结论和未来计划
建立框架有很多优点。共享相同的技术平台有助于协作,特别是对于地理位置偏远的站点。此外,它允许开发过程的主要部分实现自动化,从而在生产力和质量方面都有潜在的提高。
这个EDNA公司该框架为构建可扩展的科学应用程序提供了可能性。由于这一特性,有可能为大分子晶体学实验创建第一个原型,以计算考虑辐射损伤的数据收集策略。为了允许在给定步骤中并行执行一个或多个第三方程序,需要并包含通用数据模型,而通用数据模型又依赖于项目中涉及的不同同步加速器设施采用标准数据格式。成功进行的第一次测试以及EDNA公司该框架使越来越多的科学研究所社区表现出极大的兴趣。最近发布了一个基于原型开发的专用应用程序(MXv1),旨在描述MX晶体的特性。短期计划是替换数据收集策略应用程序DNA(Leslie等。, 2002)带有EDNA公司特性应用。短期和中期计划将侧重于开发新功能,包括在收集衍射数据后立即处理衍射数据和单轴卡帕实验。长期计划是将通用数据模型扩展到样本几何体的描述(例如以允许更复杂的kappa实验)和检测器几何形状。集成由EDNA公司光束线GUI内的MX应用程序原型,MXCube(Leonard等。, 2007)和GDA(Gibbons&Pulford,2006)),也是为了充分利用自动化管道和数据的在线图形表示。最后,还计划在大分子晶体学以外的领域实施应用,特别是X射线层析成像。
致谢
作者想感谢EDNA公司执行委员会和管理团队(Alun Ashton、Gérard Bricogne、Andrew Leslie、Andrew McCarthy、Sean McSweeney、Thomas Schneider、Andrew Thompson)以及所有EDNA公司感谢项目成员对本项目的支持和努力。此外,我们还要感谢钻石光源(迪德科特)、ESRF(格勒诺布尔)、欧洲分子生物学实验室(格勒诺布尔,汉堡)、Global Phasing(剑桥)、MaxLab(隆德)、MRC LMB(剑桥),NSLS Brookhaven National Laboratory(纽约)、SLS(维利根)、Synchrotron Soleil(巴黎)的所有合作伙伴和用户他们对软件的功能给出了反馈。我们特别感谢Ana-Maria Goncalves提供了SurE晶体,并感谢Elspeth Gordon在实验和富有成果的讨论中提供的帮助。我们还要感谢BIOXHIT基金会对该倡议的财政支持(赠款编号:LSHG-CT-2003-503420)。
工具书类
Arndt,U.W.和Wonnacott,A.J.(1977年)。晶体学中的旋转方法。阿姆斯特丹:北荷兰。 谷歌学者
A.贝蒂娃。等。(2006).《水晶学报》。D类62, 1162–1169, 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Bourenkov,G.P.、Bogomolov,B.A.和Popov,A.N.(2006)。第四届生物晶体样品X射线损伤国际研讨会,日本8号春。 谷歌学者
Bourenkov,G.P.&Popov,A.N.(2006)。《水晶学报》。D类62,58–64科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Chaize,J.M.、Gotz,A.、Klotz,W.D.、Meyer,J.、Perez,M.和Taurel,E.(1999)。加速器和大型实验物理控制系统内部会议意大利的里雅斯特。 谷歌学者
协作计算项目,第4期(1994年)。《水晶学报》。D类50, 760–763. 交叉参考 IUCr日志 谷歌学者
Dauter,Z.(1999)。《水晶学报》。D类55, 1703–1717. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Evans,P.R.(1999)。《水晶学报》。D类55, 1771–1772. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Evans,P.(2006)。《水晶学报》。D类62, 72–82. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Gibbons,P.&Pulford,W.C.(2006年)。钻石光源,https://www.diamond.ac.uk/. 谷歌学者
Gonçalves,A.M.D.、Rígo,A.T.、Thomaz,M.、Enguita,F.J.和Carrondo,M.A.(2008)。《水晶学报》。F类64, 213–216. 科学网 交叉参考 IUCr日志 谷歌学者
Gotz,A.(2007年)。寓言,https://fable.wiki.sourceforge.net网站/. 谷歌学者
Guijarro,M.(2004)。BLISS项目,https://lns00.psi.ch/nobugs2004/papers/paper00065.pdf. 谷歌学者
Kabsch,W.(1993)。J.应用。克里斯特。 26, 795–800. 交叉参考 中国科学院 科学网 IUCr日志 谷歌学者
Konarev,P.V.、Petoukhov,M.V.、Volkov,V.V.和Svergun,D.I.(2006)。J.应用。克里斯特。 39, 277–286. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Korbas,M.、Fulla Marsa,D.和Meyer-Klaucke,W.(2006年)。科学评论。仪器。 77,邮编063105科学网 交叉参考 谷歌学者
Kuhlman,D.(2004)。generateDS–从XML模式生成数据结构,https://www.rexx.com/~dkuhlman/generateDS.html. 谷歌学者
Lamzin,V.和Perrakis,A.(2000年)。自然结构。生物。第978–981页科学网 交叉参考 谷歌学者
Leonard,G.A.、McCarthy,J.、Nurizzo,D.和Thibault,X.(2007年)。同步辐射。新闻,20, 18–24. 交叉参考 谷歌学者
Leonard,G.、Solé,V.A.、Beteva,A.、Gabadinho,J.、Guijarro,M.、McCarthy,J.,Marrocchelli,D.、Nurizzo,D.、McSweeney,S.和Mueller-Dieckmann,C.(2009)。J.应用。克里斯特。 42, 333–335. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Leslie,A.G.W.(1992年)。Jnt CCP4/ESF-EACMB新闻。蛋白质结晶仪。 26. 谷歌学者
Leslie,A.G.W.、Powell,H.R.、Winter,G.、Svensson,O.、Spruce,D.、McSweeney,S.、Love,D.、Kinder,S.和Duke,E.&Nave,C.(2002年)。《水晶学报》。D类58, 1924–1928. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Matthews,B.(1968年)。分子生物学杂志。 33,491–497页交叉参考 中国科学院 公共医学 科学网 谷歌学者
Minor,W.、Cymborowski,M.、Otwinowski,Z.和Chruszcz,M.(2006年)。《水晶学报》。D类62, 859–866. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Murray,J.W.、Garman,E.F.和Ravelli,R.B.G.(2004)。J.应用。克里斯特。 37, 513–522. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Murray,J.W.、Rudiño-Piñera,E.、Owen,R.L.、Grininger,M.、Ravelli,R.B.G.和Garman,E.F.(2005)。J.同步辐射。 12, 268–275. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Otwinowski,Z.&Minor,W.(1997年)。方法酶制剂。 276, 307–326. 交叉参考 中国科学院 科学网 谷歌学者
Owen,R.A.,Rudino-Pinera,E.&Garman,E.F.(2006)。程序。国家。阿卡德。科学。美国,103, 4912–4917. 科学网 交叉参考 公共医学 中国科学院 谷歌学者
Pflugrath,J.W.(1997)。方法酶制剂。 276, 286–306. 交叉参考 中国科学院 科学网 谷歌学者
Pieritz,R.A.(2007年)。AALib–异步操作库项目,https://aalib.sourceforge.net网站/. 谷歌学者
Popov,A.N.和Bourenkov,G.P.(2003)。《水晶学报》。D类59, 1145–1153. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Ravelli,R.和Garman,E.F.(2006年)。货币。操作。结构。生物。 16, 624–629. 科学网 交叉参考 公共医学 中国科学院 谷歌学者
Sanchez del Rio,M.(1997年)。《物理学杂志》。四、,C2, 209–210. 谷歌学者
Sauter,N.K.、Grosse-Kunstleve,R.W.和Adams,P.D.(2004)。J.应用。克里斯特。 37, 399–409. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
Solé,V.A.、Papillon,E.、Cotte,M.、Walter,Ph.和Susini,J.(2007)。光谱学。学报,B62, 63–68. 谷歌学者
索尔蒂斯,S.M。等。(2008).《水晶学报》。D类64, 1210–1221. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
斯文森·O。等。正在准备中谷歌学者
Yamada,Y.、pHonda,N.、Matsugaki,N.,Igarashi,N..、Hiraki,M.和Wakatsuki,S.(2008)。J.同步辐射。 15, 296–299. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
©国际结晶学联合会。如果引用了原文作者和来源,则无需事先获得许可即可复制本文中的简短引文、表格和数字。有关详细信息,请单击在这里.
| 的日志 同步加速器 辐射 |
国际标准编号:1600-5775