计算机程序\(\def\h填{\hskip5em}\def\hfil{\hski p3em}\def\eqno#1{\hfil{#1}}\)

期刊徽标的日志
应用
结晶学
国际标准编号:1600-5767

高分子晶体学图形工具菲尼克斯

十字标记_颜色_方形_文本.svg

劳伦斯伯克利国家实验室,One Cyclotron Road,Mailstop 64R0246,Berkeley,CA 94720,美国,b条剑桥大学血液学系,剑桥医学研究院,Wellcome Trust/MRC Building,Cambridge CB2 0XY,UK,c(c)美国北卡罗来纳州达勒姆杜克大学医学中心生物化学系,邮编:27710,d日洛斯阿拉莫斯国家实验室,洛斯阿拉莫斯,NM 87545,美国e(电子)美国加州大学伯克利分校生物工程系,邮编94720
*通信电子邮件:nechols@lbl.gov

(收到日期:2012年2月25日; 2012年4月18日接受; 2012年5月16日在线)

新的基于Python的图形用户界面菲尼克斯描述了一套晶体学软件。此界面统一了命令行程序及其图形显示,简化了新界面的开发并避免了功能重复。经过精心设计,图形界面可以自动显示,而不是手动构建。随着新程序的添加或修改,生成的包很容易维护和扩展。

1.简介

菲尼克斯(亚当斯等。, 2010【Adams,P.D.等人(2010),《水晶学报》,D66,213-221。】)是一种广泛使用的晶体学系统结构测定使用衍射数据。最近,大分子晶体学实验和计算工具的改进使得非专业人员在过去十年中广泛采用了这项技术,并且蛋白质数据库(PDB;Bernstein)中存储的结构数量急剧增加等。, 1977[Bernstein,F.C.,Koetzle,T.F.,Williams,G.J.,Meyer,E.F.,Brice,M.D.,Rodgers,J.R.,Kennard,O.,Shimanouchi,T.&Tasumi,M.(1977),《分子生物学杂志》,第112期,第535-542页。]; 伯曼等。, 2000[Berman,H.M.、Westbrook,J.、Feng,Z.、Gilliland,G.、Bhat,T.N.、Weissig,H.、Shindyalov,I.N.和Bourne,P.E.(2000)。核酸研究28,235-242。]; 伯曼,2008【Berman,H.M.(2008),《水晶学报》,A64,88-95。】). 结构基因组学倡议的同步努力(参见Cymborowski的例子等。, 2010【Cymborowski,M.、Klimecka,M.、Chruszcz,M.、Zimmerman,M.D.、Shumilin,I.A.、Borek,D.、Lazarski,K.、Joachimiak,A.、Otwinowski,Z.、Anderson,W.和Minor,W.(2010)。J.Struct.Funct.Genomics,211-221。】; 埃尔斯利格等。, 2010【Elsliger,M.-A.,Deacon,A.M.,Godzik,A.,Lesley,S.A.,Wooley,J.,Wüthrich,K.&Wilson,I.A.(2010),《水晶学报》F66,1137-1142。】)而生物技术和制药行业则专注于高通量技术,以快速解决结构问题为目标。快速结构解决方案通常需要多种方法的组合,例如阶段化策略的并行测试或质量未知的多个相关数据集的快速评估。这可以通过使用高度自动化来实现,既增加了成功求解和细化结构的概率,又避免了晶体仪承担重复耗时的任务。已经提出了大量用于运行几乎无人值守的部分或全部计算“管道”的系统,许多系统的重点是使用命令行脚本或HTML接口(Brunzelle等。, 2003【Brunzelle,J.S.,Shafaee,P.,Yang,X.,Weigand,S.,Ren,Z.&Anderson,W.F.(2003),《结晶学报》D59,1138-1144。】; Holton&Alber,2004年【Holton,J.&Alber,T.(2004),美国国家科学院院刊,101,1537-1542。】; 克勒默等。, 2004【Kroemer,M.、Dreyer,M.K.和Wendt,K.U.(2004),《结晶学报》,第60期,1679-1682页。】; 潘基卡尔等。, 2005[Panjikar,S.,Parthasarathy,V.,Lamzin,V.S.,Weiss,M.S.和Tucker,P.A.(2005)。晶体学报D61,449-457。]; 冯海因等。, 2007[Vonrhein,C.、Blanc,E.、Roversi,P.和Bricogne,G.(2007)。《分子生物学方法》364,215-230。]). 在有利的情况下,可以从原始衍射图像或处理后的数据开始获得最完整的模型;然而,几乎总是需要专家进行额外的更正和完成,对于更困难的结构,自动化可能会失败。

在许多方面,图形用户界面(GUI)非常适合作为自动化平台,特别是对于在使用实现大量复杂算法的软件时面临陡峭学习曲线的新手用户。GUI中的表示可用于将常用参数与高级选项分开,并提供有关其预期用途的附加信息。此外,GUI可以提供一个框架来跟踪有关单个项目的信息,而不是依赖本地文件系统和文本文件;它还可以促进自动化,例如通过建议或简化程序之间的转换,或促进通用参数集和其他输入文件的重用。最后,晶体学软件生成的许多信息在以纯文本文件形式显示时可能很难解释。在许多情况下,以二维图形或三维模型和地图表示大大简化了过程。

当前一代的大多数图形界面都专注于使各个步骤尽可能地可访问并将它们链接在一起,而不是将“黑匣子”自动化强加给用户(Potterton等。, 2003【Potterton,E.,Briggs,P.,Turkenburg,M.&Dodson,E.(2003),《结晶学报》D591131-1137。】; Pape&Schneider,2004年【Pape,T.&Schneider,T.R.(2004),《应用结晶杂志》,第37期,第843-844页。】; 次要等。, 2006[米诺·W·米诺、辛布罗夫斯基·M·米诺(Cymborowski)、奥特温诺夫斯基(Otwinowski),Z·&赫鲁斯茨(Chruszcz),M·(2006),《水晶学报》D62,859-866.]; 埃姆斯利等。, 2010【Emsley,P.、Lohkamp,B.、Scott,W.G.和Cowtan,K.(2010),《水晶学报》D66、486-501。】). 我们实现了一个图形界面菲尼克斯围绕类似的概念进行设计,使用适合作为命令行工具和GUI基础的新参数语法。新的GUI提供了对几乎所有命令行功能的访问菲尼克斯,使其适合于技术背景较低的专家和用户。

2.方法

2.1、。这个菲尼克斯软件开发环境

2.1.1. 编程语言

在构建复杂的大规模系统时,选择基本工具至关重要。显然,最重要的选择是编程语言的选择。对于菲尼克斯Python的组合(Van Rossum&Drake,2003[Van Rossum,G.&Drake,F.L.(2003),《Python简介》,布里斯托尔:网络理论有限公司])和C++(Stroustrup,2000[Stroustrup,B.(2000),《C++编程语言》,印第安纳波利斯:艾迪森·韦斯利出版社。])使用(格罗斯·昆斯特里夫等。, 2002【Grosse-Kunstleve,R.W.,Sauter,N.K.,Moriarty,N.W.&Adams,P.D.(2002),《应用结晶杂志》第35期,第126-136页。】; 亚当斯等。, 2010【Adams,P.D.等人(2010),《水晶学报》,D66,213-221。】). 这一决定是出于一些考虑。首先,Python和C++是同时兼容和互补的:兼容是因为这两种语言都是面向对象的,互补是因为Pythons最大限度地提高了程序员的生产力,而C++最大限度地提升了运行时效率。其次,这两种语言在软件开发领域都得到了广泛的应用,包括许多开源项目。因此,这使得可以访问到大量仍在增长的广泛使用和维护良好的库。第三,这两种语言都具有高度的可移植性,并且几乎肯定会在未来保持这种状态,因为社区对为许多基于Python和C++的现有软件包支持新平台的浓厚兴趣。

Python和C++之间的集成使用Boost。Python库(Abrahams&Grosse-Kunstleve,2003)【Abrahams,D.&Grosse-Kunstleve,R.W.(2003),C/C++用户杂志21,29-36。】)为的C++组件实现Python接口菲尼克斯.增强。Python使用C++模板引擎生成C++/Python绑定,这有两个重要的优点,即不需要额外的工具,并且定义绑定的语法是标准的C++。这与其他广泛使用的工具(最显著的是SWIG;https://swig.org(https://swig.org))从而最大限度地提高可移植性,并节省新方法开发人员学习第三种语法的工作量。

2.1.2. GUI工具包

第二个基本决策是GUI工具包的选择。我们确定Python接口非常适合,主要有两个原因。第一个是Python最大限度地提高了程序员的生产力,第二个是菲尼克斯几乎都是通过Python接口(Grosse-Kunstleve等。, 2002【Grosse-Kunstleve,R.W.,Sauter,N.K.,Moriarty,N.W.&Adams,P.D.(2002),《应用结晶杂志》第35期,第126-136页。】). 我们还确定GUI工具包必须为所有主要功能提供跨平台支持,并且它应该得到现有主要用户社区的支持,因为这与长期可用性相关。最后,为了与菲尼克斯,GUI工具包必须是开源的。经过全面评估后,wxPython工具包(https://wxpython.org)被选为最符合这些要求的。

2.1.3. 统一用户界面工具包(Phil)

第三个基本组件菲尼克斯GUI是基于Python的分层交换语言(Phil;https://cctbx.sourceforge.net/libtbx_phil.html),作为菲尼克斯项目(格罗塞·昆斯特里夫等。, 2005[Grosse-Kunstleve,R.W.、Afonine,P.、Sauter,N.K.和Adams,P.D.(2005)。国际晶体化学联合会结晶计算委员会通讯,第5期,第69-91页。]). Phil旨在同时启用直观的命令行用户界面,并在很大程度上帮助自动生成图形用户界面。菲尼克斯为命令行用户提供了一个最小但功能强大的语法来定义输入参数;唯一的两个主要语法元素是关键字值赋值的等号和描述层次结构的花括号。对于方法开发人员,Phil为参数文件的模块化组装提供了灵活的方法。Phil模块通常与使用参数的算法一起实现。Phil支持为用户嵌入帮助文本。通常,算法和包含帮助文本的Phil模块保存在同一个Python源代码文件中。这种安排确保了算法、相关参数和帮助文本可以很容易地一起开发和维护,并且可以被新方法开发人员接近。

Phil参数文件可以自动转换为图形表示。这利用了Phil模块中嵌入的元数据,主要是每个参数的类型(例如int、float、choice、path等。),由开发人员定义。对于每种类型,GUI中都有相应的默认表示。或者,类型信息由开发人员定义的辅助信息进行补充,以指导GUI中的自定义表示。典型示例如图1所示[链接]()和1[链接](b条). 创建和管理用于编辑这些参数的图形控件所需的几乎所有信息都包含在元数据中。Phil参数的层次结构有助于确定窗口布局。开发人员可以修改基础程序的大多数选项,而不会中断GUI。用户修改的参数是通过形成新的内部Phil对象从GUI中检索的,这些对象可以保存为命令行程序的输入文件,也可以直接用于启动计算过程。高级用户可以选择在执行进程之前编辑Phil文件。通过恢复和合并过去的输入以及为特定上下文保存默认设置的选项,减少了重复输入的需要。

[图1]
图1
()的示例菲尼克斯定义使用libtbx.phil软件中的模块cctbx公司,GUI中使用了元数据。(b条)根据中的规范自动绘制控件(). (c(c))全自动界面生成的一个实例:PDB文件准备精炼在里面菲尼克斯.就绪集.

每个Phil参数定义或层次结构级别都用“专家级别”属性标记,这允许GUI中的显示仅限于基本设置或增加的复杂性级别。由于许多设置会分散新手的注意力,或者主要用于开发目的,因此默认界面保持简单,并且主窗口中显示了一组最少的控件。

Phil实现旨在用于多种用途。为此,Phil类型系统被设计为可以从Python扩展。例如,扩展机制用于支持晶体学特定类型,最显著的是晶胞和空间群类型。它们包含常见的缩写和句法变化。例如,将空间组符号“p212121”或“19”转换为标准形式“P 21 21 21”。

2.2. 程序的执行

这个菲尼克斯软件开发框架允许任何程序在GUI中作为Python模块运行。这可以实现即时反馈,例如实时绘图或进度条。然而,为了实现最大的灵活性,已经实施了几个启动流程的附加方法。程序可以直接从GUI启动,作为同一台计算机上的单独进程,也可以在由批处理队列系统(例如Sun Grid Engine或Portable batch system)管理的集群上启动。后两种机制允许在不中断运行进程的情况下关闭GUI(并在稍后恢复),代价是会丢失一些需要GUI和运行进程之间直接通信的交互功能。在所有情况下,打印的控制台输出都会自动传播到GUI。使用“回调”将更复杂的输出逐个发送到GUI,回调封装了要保存到临时文件或直接发送的中间数据通过进程间通信对象。通过该机制发送到GUI的信息可能包括警告消息、统计表、绘图数据,甚至模型和地图。将更高级别的数据传播到GUI的能力使得可以使用易于解释的演示来提供程序进度的细粒度指标,而不是仅仅依赖于文本输出。

2.3. 测试

协作开发或任何长期软件项目的一个基本特征是经常测试所有基本功能,以防止代码更改带来的错误。在以下背景下菲尼克斯cctbx公司(亚当斯等。, 2010【Adams,P.D.等人(2010),《水晶学报》,D66,213-221。】),这主要是通过在所有支持的平台上运行夜间构建和一组回归测试来完成的。由于软件的交互性,图形代码的自动测试非常困难。然而,核心逻辑和表示的仔细分离允许将非图形组件作为夜间构建系统的一部分进行测试。这包括一致性检查,以确保GUI中表示的所有参数都没有从基础程序中删除。图形控件作为独立的模块实现,在可能的情况下具有最小的依赖性,这使得它们可以用于其他目的,并且不太容易因更改其他代码而出错。每个控件都包含一个简单的测试程序,可以作为独立的命令手动运行,允许快速验证代码更改,而无需运行整个应用程序。

3.结果和讨论

3.1. 概述菲尼克斯图形用户界面

截至当前版本(2011年12月1.7.3日)菲尼克斯在GUI中可用,包括菲尼克斯定义(黄嘌呤等。, 2012【Afonine,P.V.,Grosse-Kunstleve,R.W.,Echols,N.,Headd,J.J.,Moriarty,N.W.,Mustakimov,M.W.,Terwilliger,T.C.,Urzhumtsev,A.,Zwart,P.H.&Adams,P.D.(2012),《结晶学报》D68,352-367。】)自动解决方案,自动编译,自动MR配体配合巫师(特威利格等。, 2006【Terwilliger,T.C.,Klei,H.,Adams,P.D.,Moriarty,N.W.&Cohn,J.D.(2006),《结晶学报》,D62,915-922.】, 2008【Terwilliger,T.C.、Grosse-Kunstleve,R.W.、Afonine,P.V.、Moriarty,N.W.,Zwart,P.H.、Hung,L.W.和Read,R.J.&Adams,P.D.(2008),《结晶学报》,D64,61-69。】, 2009【Terwilliger,T.C.、Adams,P.D.、Read,R.J.、McCoy,A.J.、Moriarty,N.W.、Grosse-Kunstleve,R.W.,Afonine,P.V.、Zwart,P.H.&Hung,L.W.(2009),《结晶学报》D65、582-601。】),相位器(麦考伊等。2007年【McCoy,A.J.,Grosse-Kunstleve,R.W.,Adams,P.D.,Winn,M.D.,Storoni,L.C.&Read,R.J.(2007),《应用结晶杂志》,第40期,第658-674页。】),X分诊(兹瓦特等。, 2005【Zwart,P.、Grosse-Kunstleve,R.W.和Adams,P.D.(2005)。CCP4蛋白质结晶学通讯,第43期。】),肘部(莫里亚蒂等。, 2009【Moriarty,N.W.,Grosse-Kunstleve,R.W.&Adams,P.D.(2009),《结晶学报》D651074-1080。】),罗塞塔先生(地脉等。, 2011[DiMaio,F.,Terwilliger,T.C.,Read,R.J.,Wlodawer,A.,Oberdorfer,G.,Wagner,U.,Valkov,E.,Alon,A.,Fass,D.,Axelrod,H.L.,Das,D.,Vorobiev,S.M.,Iwa,H..,Pokkuluri,P.R.&Baker,D.(2011)。《自然》(伦敦),473,540-543。]),一个全面的验证套件,主要源自摩尔概率(陈)等。, 2010【Chen,V.B.、Arendall,W.B.、Headd,J.J.、Keedy,D.A.、Immormino,R.M.、Kapral,G.J.,Murray,L.W.、Richardson,J.S.和Richardsson,D.C.(2010),《晶体学报》,D66,12-21。】),多边形(乌尔珠姆塞娃等。, 2009【Urzhumtseva,L.、Afonine,P.V.、Adams,P.D.和Urzhum tsev,A.(2009),《水晶学报》D65、297-300。】)、和菲尼克斯模型vs数据(黄嘌呤等。, 2010【Afonine,P.V.,Grosse-Kunstleve,R.W.,Chen,V.B.,Headd,J.J.,Moriarty,N.W.,Richardson,J.S.,Richards,D.C.,Urzhumtsev,A.,Zwart,P.H.&Adams,P.D.(2010),《应用结晶杂志》第43期,第669-676页。】)以及许多用于构建、地图计算、约束编辑、文件处理、数据分析和可视化的简单程序。

中几乎所有的程序菲尼克斯现在可由Phil配置;在那些原始代码是围绕这个框架设计的情况下(例如菲尼克斯定义X分诊),除了添加特定于GUI的元数据之外,只需要进行少量修改。对于Phil之前的应用程序,例如向导和肘部,需要额外的包装器代码来提供Phil和内部使用的配置机制之间的接口。相位器添加了一个全新的命令行界面,作为Phil层和现有Python API(McCoy)之间的桥梁等。, 2007【McCoy,A.J.,Grosse-Kunstleve,R.W.,Adams,P.D.,Winn,M.D.,Storoni,L.C.&Read,R.J.(2007),《应用结晶杂志》,第40期,第658-674页。】).

事实证明,基于Phil的系统对于维护应用程序的接口至关重要,例如菲尼克斯定义,目前有900多个唯一参数。对参数的大多数更改都可以自动传播到菲尼克斯GUI,大多数定制都是在Phil元数据中进行的,而不是Python代码。对于特别复杂的输入类型(尤其是文件输入),嵌入的关键字可以指定更改参数时要执行的回调函数。使用基本类型的一些常见参数通常有额外的语法限制,并且可能与其他参数紧密耦合,例如从反射数据文件中选择列标签(作为逗号分隔的字符串);这些由Phil语法中的样式关键字标记,并由专门的控件处理。单个应用程序的额外定制通常是不可避免的,几乎所有接口都包含一些顶级控件的自定义布局代码。然而,对于简单的程序,完全自动的界面是可能的(图1[链接]c(c)),甚至是最复杂的界面菲尼克斯定义,提供了90%以上的参数,无需任何定制。

中央GUI的组织(“phenix”命令)将用户定义的项目列表及其当前状态与按类别分组的单个程序相结合(图2[链接]). 在内部,Phil还用于定义有关可用程序的许多信息,例如模块位置和主GUI中小部件中显示的内容。在Macintosh平台上,Phil规范中嵌入的帮助链接用于生成按钮,以便从GUI中的任何位置直接导航到HTML文档。Phil也是项目跟踪的主要存储格式。当前选定项目的作业历史记录显示在单独的窗口中(通过“作业历史记录”选项卡访问)。可以根据修改时间或当前最佳值对作业和项目进行排序R(右)自由的(布伦格,1992年【Brünger,A.T.(1992),《自然》(伦敦),355,472-475。】)(如果已计算,则在每个作业结束时提取)。目前,作业跟踪是项目的主要功能,但将来将扩展此功能以管理默认设置和输入。为了演示,菲尼克斯与许多教程数据集一起分发,这些数据集可以直接从GUI设置为项目。

[图2]
图2
的主窗口的屏幕截图菲尼克斯在Macintosh计算机上运行的GUI。

虽然它们共享一个通用的配置系统,但各个程序的输出是异构的,并且已经实现了各种机制,以直观地显示每个应用程序的进度和结果。大型程序,如菲尼克斯定义发送整个分子和地图通过更新后的回调,并且此输出显示在图形程序中,例如库特(埃姆斯利等。, 2010【Emsley,P.、Lohkamp,B.、Scott,W.G.和Cowtan,K.(2010),《水晶学报》D66、486-501。】)(见下文)。最终结果可能包括验证报告、模型、绘图表和写入文件的任何信息。这些结果(以及回调的任何中间结果)都保存到磁盘上,可以在以后的会话中快速重新加载并显示在GUI中。对于许多程序,返回的最终结果是创建的简单文件列表,可以使用通用过程自动显示该列表。大型程序的异构性和返回信息的复杂性要求对许多结果使用手动布局,尽管尽可能重用通用类。

3.2、。与分子图形的接口

这个菲尼克斯GUI包括基本的三维图形功能,例如显示线框原子模型和电子密度图的功能。然而,手动模型构建或公共质量图形超出了菲尼克斯项目。因此,我们为晶体学构建程序实现了界面层库特和通用分子图形程序PyMOL公司(德拉诺,2002[DeLano,W.L.(2002)。PyMOL分子图形系统。Schrodinger,LLC,https://www.pymol.org/ .]). 这两个程序都可以从Python扩展。大多数通信是通过文件[PDB、MTZ或CCP4型(合作计算项目,第4期,1994年)[合作计算项目,第4期(1994年),《晶体学报》,D50,760-763。])],但在内部使用本地网络连接,允许在库特PyMOL公司从内部远程调用的Python API(例如,加载和绘制地图文件)菲尼克斯。交互式模型验证摘要(“kinemages”)也可以加载到(陈)等。, 2009【Chen,V.B.,Davis,I.W.&Richardson,D.C.(2009),《蛋白质科学》第18期,第2403-2409页。】),提供与中可用的类似的可视化验证摩尔概率.

GUI中的所有应用程序都支持将数据文件直接加载到库特,大多数人也支持PyMOL公司和/或内置图形查看器。任何必要的文件转换或其他命令,例如快速傅里叶变换,以生成CCP4型-格式化的映射文件,在内部处理。因此,最终模型和映射系数精炼可以在中打开库特PyMOL公司只需在菲尼克斯用于输入的GUI和PDB文件可以在其中一个查看器中打开,而不是在文本编辑器中打开。图形扩展的一个更强大的应用程序是通过保存中间数据并在文件更改时重新加载文件,在计算过程中连续显示结果。类似的交互性以前在供应商管理部(目视检查分子动力学;汉弗莱等。, 1996【Humphrey,W.,Dalke,A.&Schulten,K.(1996),《分子生物学杂志》,第14期,第27-38页。】),两者都用于可视化分子动力学核磁共振模拟和精炼(Schwieters&Clore,2001年【Schwieters,C.D.&Clore,G.M.(2001),J.Magn.Reson.149,239-244.】),并应用于可视化构建程序的进度ARP协议/wARP(佩恩等。, 2005【Payne,B.R.,Owen,G.S.&Weber,I.(2005)。计算科学-ICCS 2005,第五届国际会议,美国佐治亚州亚特兰大,2005年5月22日至25日,论文集,第一部分,计算机科学讲义第3514卷,第451-459页。柏林,海德堡:施普林格。]; 兰格等。, 2008[Langer,G.,Cohen,S.X.,Lamzin,V.S.&Perrakis,A.(2008),《国家议定书》31171-1179。]). 这在以下方面最有用精炼在这里可以实时观察模型和地图的变化。迭代重建模型的其他程序(当前自动解决方案自动编译)以更长的间隔产生类似的输出。

对于需要特别高的交互性和双向通信的应用程序,扩展库特图形用户界面通过这个库特Python API是必需的。此方法用于帮助编辑分子置换使用雕塑家实用程序(Bunkóczi&Read,2011【Bunkóczi,G.&Read,R.J.(2011),《水晶学报》,D67,303-312。】). 然而,在大多数情况下,使用直接网络连接已经足够了。因此,在显示验证结果时,而不是在中创建冗余接口库特要列出离群值,请使用中的列表控件菲尼克斯重新居中连接的库特所选残留物上的窗口(图3[链接]). 控制菲尼克斯Coot通过同样的机制也是可能的。目前,这仅限于启动菲尼克斯定义GUI并加载选定的模型,但可以添加更复杂的操作,例如原子拾取或从自动拟合的循环中进行选择。

[图3]
图3
集成验证应用程序,显示全原子接触分析的异常值列表,以及结合几何异常值、电子密度水平和B因素。模型、地图和探测点(Word等。, 1999【Word,J.M.,Lovell,S.C.,LaBean,T.H.,Taylor,H.C.,Zalis,M.E.,Presley,B.K.,Richardson,J.S.&Richardsson,D.C.(1999),《分子生物学杂志》2851711-1733。】)自动加载到库特,视图以选定的原子为中心。

3.3. GUI框架中的自动化

虽然新的菲尼克斯GUI是围绕单个程序设计的,许多最常见的分阶段和模型构建自动化策略都是在向导中实现的(Terwilliger等。, 2006【Terwilliger,T.C.,Klei,H.,Adams,P.D.,Moriarty,N.W.&Cohn,J.D.(2006),《结晶学报》,D62,915-922.】, 2008【Terwilliger,T.C.、Grosse-Kunstleve,R.W.、Afonine,P.V.、Moriarty,N.W.,Zwart,P.H.、Hung,L.W.和Read,R.J.&Adams,P.D.(2008),《结晶学报》,D64,61-69。】, 2009【Terwilliger,T.C.、Adams,P.D.、Read,R.J.、McCoy,A.J.、Moriarty,N.W.、Grosse-Kunstleve,R.W.,Afonine,P.V.、Zwart,P.H.&Hung,L.W.(2009),《结晶学报》D65、582-601。】). GUI提供了进一步简化过程的框架,主要是通过链接相关操作和简化程序之间的转换。在的界面中菲尼克斯定义例如,常见的任务,如设置约束和添加氢或氘原子(通过这个菲尼克斯.就绪集程序),标识非晶体对称性(NCS)组(菲尼克斯.simple_ncs_from_pdb),快速识别平移/校准/螺钉(TLS)组(菲尼克斯findtls),并分配二级结构以产生氢键约束(phenix.secondary_structure_restraints公司)很容易访问,并将结果合并到精炼输入。每次运行结束时,都会自动执行验证套件,结果显示为细化统计(图3[链接]).

一种简单但极为重要的自动化类型是,程序在作业完成后建议适当的后续步骤,并提供到其他程序的简单直接过渡。例如,用于启动的向导GUI显示按钮菲尼克斯定义在输入字段中填写向导计算的数据,并在适当的情况下运行其他向导。这允许通过链接GUI模块来构建新的“管道”,而不是在较低级别集成程序,例如分子置换单波长异常衍射(MR-SAD)定相,在菲尼克斯只需运行分子置换GUI,然后单击标记为“运行MR-SAD”的按钮,以启动具有所需输入的单独向导。未来的开发将解决常见的并行工作流,例如评估多个分子置换搜索模型,或同时验证几个密切相关的结构。

4.结论和未来方向

Python和Phil配置系统的结合被证明是一个高效开发图形界面的高效环境,极大地提高了菲尼克斯面向更广泛的结构生物学家群体。定期添加新的接口,并且由于可配置参数现在通常在设计时考虑了GUI因素,因此相对于开发核心算法所投入的精力而言,它们的实现通常只需要很小的工作量。与的集成库特PyMOL公司为以下各方面提供了近乎无缝的工作流结构测定精炼从处理过的数据开始,不需要了解菲尼克斯命令行工具。这使得研究人员的培训能够集中于一般原则和最佳实践,而不是高级计算机技能。

随着菲尼克斯GUI继续,底层框架不断修改,以提高模块性并支持更全面的单元测试。使用Phil的轻量级应用程序通常可以集成到菲尼克斯GUI没有专门的Python代码,越来越多的实用程序现在使用这种方法。最终,核心GUI库将被扩展为一个通用框架,用于开发围绕cctbx公司,包括相关程序,如标签(绍特等。, 2004【Sauter,N.K.,Grosse-Kunstleve,R.W.&Adams,P.D.(2004),《应用结晶杂志》,第37期,第399-409页。】).

5.可用性

GUI作为菲尼克斯该套件可作为标准Macintosh和Linux平台的二进制文件以及源代码免费提供给学术用户。菲尼克斯可以从以下位置获得https://www.phenix-online.org在线注册后。Phil实现和许多低级图形控件、工具包和库也作为开源的一部分提供cctbx公司项目(https://cctbx.sourceforge.net网址).

致谢

吕克·包希斯为cctbx公司,包括显示电子密度和各向异性椭球体的代码。Alexandre Urzhumtsev开发了用于验证的POLYGON概念。许多用户和合作者在开发菲尼克斯,尤其是詹姆斯·弗雷泽、赫伯·克莱、弗兰克·冯·德尔夫特、乔尔·巴德、英格恩·奥兹坎、费利克斯·弗罗洛和罗伯特·诺尔特。保罗·埃姆斯利、伯恩哈德·洛坎普和威廉·斯科特协助库特集成和支持,Robin Dunn为wxPython开发提供了建议。我们感谢已故的沃伦·德拉诺PyMOL公司在整个过程中提供支持和建议菲尼克斯项目。资金由NIH(批准号:GM063210)和PHENIX工业联盟提供。

工具书类

第一次引用Abrahams,D.&Grosse-Kunstleve,R.W.(2003)。C/C++用户J。 21, 29–36. 谷歌学者
第一次引用P.D.亚当斯。等。(2010).《水晶学报》。D类66, 213–221. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Afonine,P.V.,Grosse-Kunstleve,R.W.,Chen,V.B.,Headd,J.J.,Moriarty,N.W。,理查德森·J·S、理查德森·D·C、乌尔朱姆塞夫·A、兹瓦特·P·H·亚当斯·P·D(2010)。J.应用。克里斯特。 43, 669–676. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Afonine,P.V.,Grosse-Kunstleve,R.W.,Echols,N.,Headd,J.J.,Moriarty,N.W。,Mustyakimov,M.W.、Terwilliger,T.C.、Urzhumtsev,A.、Zwart,P.H.和Adams,P.D.(2012年)。《水晶学报》。D类68, 352–367. 科学网 交叉参考 IUCr日志 谷歌学者
第一次引用Berman,H.M.(2008)。《水晶学报》。A类64, 88–95. 科学网 交叉参考 IUCr日志 谷歌学者
第一次引用Berman,H.M.、Westbrook,J.、Feng,Z.、Gilliland,G.、Bhat,T.N.、Weissig,H.、Shindyalov,I.N.和Bourne,P.E.(2000)。核酸研究。 28,235–242科学网 交叉参考 公共医学 中国科学院 谷歌学者
第一次引用Bernstein,F.C.,Koetzle,T.F.,Williams,G.J.,Meyer,E.F.,Brice,M.D.,Rodgers,J.R.,Kennard,O.,Shimanouchi,T.&Tasumi,M.(1977年)。分子生物学杂志。 112, 535–542. 交叉参考 中国科学院 公共医学 科学网 谷歌学者
第一次引用Brünger,A.T.(1992)。自然(伦敦),355, 472–475. 公共医学 科学网 谷歌学者
第一次引用Brunzelle,J.S.、Shafaee,P.、Yang,X.、Weigand,S.、Ren,Z.和Anderson,W.F.(2003)。《水晶学报》。D类59, 1138–1144. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Bunkóczi,G.&Read,R.J.(2011)。《水晶学报》。D类67, 303–312. 科学网 交叉参考 IUCr日志 谷歌学者
第一次引用Chen,V.B.、Arendall,W.B.、Headd,J.J.、Keedy,D.A.、Immormino,R.M.、Kapral,G.J.,Murray,L.W.、Richardson,J.S.和Richardsson,D.C.(2010)。《水晶学报》。D类66, 12–21. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Chen,V.B.、Davis,I.W.和Richardson,D.C.(2009年)。蛋白质科学。 18,2403–2409科学网 交叉参考 公共医学 中国科学院 谷歌学者
第一次引用协作计算项目,第4期(1994年)。《水晶学报》。D类50,760–763交叉参考 IUCr日志 谷歌学者
第一次引用Cymborowski,M.、Klimecka,M.和Chruszcz,M.,Zimmerman,M.D.、Shumilin,I.A.、Borek,D.、Lazarski,K.、Joachimiak,A.、Otwinowski,Z.、Anderson,W.和Minor,W.(2010年)。J.结构。功能。基因组学,11, 211–221. 交叉参考 中国科学院 公共医学 谷歌学者
第一次引用DeLano,W.L.(2002)。PyMOL分子图形系统。薛定谔有限责任公司,https://www.pymol.org/谷歌学者
第一次引用DiMaio,F.、Terwilliger,T.C.、Read,R.J.、Wlodawer,A.、Oberdorfer,G.、Wagner,U.、Valkov,E.、Alon,A.、Fass,D.、Axelrod,H.L.、Das,D.、Vorobiev,S.M.、Iwa,H.、Pokkuluri,P.R.和Baker,D.(2011年)。自然(伦敦),473, 540–543. 科学网 交叉参考 中国科学院 公共医学 谷歌学者
第一次引用Elsliger,M.-A.,Deacon,A.M.,Godzik,A.,Lesley,S.A.,Wooley,J.,Wüthrich,K.&Wilson,I.A.(2010年)。《水晶学报》。F类66, 1137–1142. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Emsley,P.、Lohkamp,B.、Scott,W.G.和Cowtan,K.(2010年)。《水晶学报》。D类66, 486–501. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Grosse-Kunstleve,R.W.、Afonine,P.、Sauter,N.K.和Adams,P.D.(2005)。IUCr结晶计算委员会通讯第5期,第69-91页谷歌学者
第一次引用Grosse-Kunstleve,R.W.,Sauter,N.K.,Moriarty,N.W.和Adams,P.D.(2002)。J.应用。克里斯特。 35, 126–136. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Holton,J.&Alber,T.(2004)。程序。美国国家科学院。科学。美国,101,1537-1542年科学网 交叉参考 公共医学 中国科学院 谷歌学者
第一次引用Humphrey,W.、Dalke,A.和Schulten,K.(1996)。J.摩尔图。 14, 27–38. 交叉参考 科学网 谷歌学者
第一次引用Kroemer,M.、Dreyer,M.K.和Wendt,K.U.(2004年)。《水晶学报》。D类60, 1679–1682. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Langer,G.、Cohen,S.X.、Lamzin,V.S.和Perrakis,A.(2008年)。《国家协议》。 , 1171–1179. 科学网 交叉参考 公共医学 中国科学院 谷歌学者
第一次引用McCoy,A.J.,Grosse-Kunstleve,R.W.,Adams,P.D.,Winn,M.D.,Storoni,L.C.&Read,R.J.(2007)。J.应用。克里斯特。 40, 658–674. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Minor,W.、Cymborowski,M.、Otwinowski,Z.和Chruszcz,M.(2006年)。《水晶学报》。D类62, 859–866. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Moriarty,N.W.、Grosse-Kunstleve,R.W.和Adams,P.D.(2009年)。《水晶学报》。D类65, 1074–1080. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Panjikar,S.、Parthasarathy,V.、Lamzin,V.S.、Weiss,M.S.和Tucker,P.A.(2005)。《水晶学报》。D类61,449–457科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Pape,T.&Schneider,T.R.(2004)。J.应用。克里斯特。 37, 843–844. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Payne,B.R.、Owen,G.S.和Weber,I.(2005)。计算科学–ICCS 2005,第五届国际会议,美国佐治亚州亚特兰大,2005年5月22日至25日,会议记录,第一部分,《计算机科学》第3514卷讲义,第451-459页。柏林,海德堡:施普林格。 谷歌学者
第一次引用Potterton,E.、Briggs,P.、Turkenburg,M.和Dodson,E.(2003)。《水晶学报》。D类59, 1131–1137. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Sauter,N.K.、Grosse-Kunstleve,R.W.和Adams,P.D.(2004)。J.应用。克里斯特。 37, 399–409. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Schwieres,C.D.和Clore,G.M.(2001年)。J.马格纳。Reson公司。 149, 239–244. 科学网 交叉参考 公共医学 中国科学院 谷歌学者
第一次引用Stroustrup,B.(2000年)。C++编程语言。印第安纳波利斯:艾迪森·卫斯理。 谷歌学者
第一次引用Terwilliger,T.C.、Adams,P.D.、Read,R.J.、McCoy,A.J.、Moriarty,N.W.、Grosse-Kunstleve,R.W.,Afonine,P.V.、Zwart,P.H.&Hung,L.W.(2009年)。《水晶学报》。D类65, 582–601. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Terwilliger,T.C.、Grosse-Kunstleve,R.W.、Afonine,P.V.、Moriarty,N.W.,Zwart,P.H.、Hung,L.-W.、Read,R.J.和Adams,P.D.(2008)。《水晶学报》。D类64, 61–69. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Terwilliger,T.C.、Klei,H.、Adams,P.D.、Moriarty,N.W.和Cohn,J.D.(2006)。《水晶学报》。D类62, 915–922. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Urzhumtseva,L.、Afonine,P.V.、Adams,P.D.和Urzhum tsev,A.(2009年)。《水晶学报》。D类65, 297–300. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Van Rossum,G.&Drake,F.L.(2003)。Python简介布里斯托尔:网络理论有限公司谷歌学者
第一次引用Vonrhein,C.、Blanc,E.、Roversi,P.和Bricogne,G.(2007年)。方法分子生物学。 364,215–230公共医学 中国科学院 谷歌学者
第一次引用Word,J.M.,Lovell,S.C.,LaBean,T.H.,Taylor,H.C.,Zalis,M.E.,Presley,B.K。,理查德森·J·S·和理查德森·D·C·(1999)。分子生物学杂志。 285, 1711–1733. 科学网 交叉参考 中国科学院 公共医学 谷歌学者
第一次引用Zwart,P.、Grosse-Kunstleve,R.W.和Adams,P.D.(2005)。CCP4蛋白质结晶通讯,第43号谷歌学者

这是一篇根据知识共享署名(CC-BY)许可证它允许在任何介质中不受限制地使用、分发和复制,前提是引用了原始作者和来源。

期刊徽标的日志
应用
结晶学
国际标准编号:1600-5767
遵循J.Appl。克里斯特。
注册电子通知
遵循J.Appl。克里斯特。在推特上
在脸书上关注我们
注册RSS订阅源