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

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

dxtbx公司:衍射实验工具箱

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

Diamond Light Source Ltd,英国Didcot OX11 0DE哈维尔科技创新园区,b条美国加利福尼亚州伯克利市回旋加速器路1号劳伦斯伯克利国家实验室,邮编94720,c(c)STFC卢瑟福阿普尔顿实验室,英国Didcot OX11 0FA,以及d日英国Didcot OX11 0FA卢瑟福阿普尔顿实验室哈维尔研究中心CCP4
*通信电子邮件:graeme.winter@diamond.ac.uk

(2014年2月21日收到; 2014年5月22日接受; 在线2014年7月19日)

记录X射线衍射数据的数据格式继续迅速发展,以适应为响应更强烈的光源而开发的新探测器技术。因此,处理单晶X射线衍射实验的数据需要能够读取并正确解释使用不同实验表示的各种仪器的图像数据和元数据。以前为解决此问题而开发的工具由于缺乏可扩展性或图像元数据的处理不一致而受到限制。这个dxtbx公司软件包为图像数据和实验模型提供了一致的界面,同时支持读取数据文件的完全通用的用户扩展方法。该库是用C++和Python混合编写的,并作为cctbx公司根据开放源代码许可证https://cctbx.sourceforge.net网址.

1.简介

单晶衍射实验中X射线衍射数据的有效处理依赖于实验几何的准确模型,而实验几何又取决于在不丢失信息的情况下读取X射线衍射实验所使用的各种数据格式的能力。虽然许多大分子晶体学实验采用简单的几何结构(垂直于直射光束的旋转轴,与一个探测器轴重合,其中“光束中心”位于探测器中部附近),但一般衍射实验可能采用更复杂的几何结构,允许复杂探测器和样本旋转轴的任意定位。例如,该实验可能采用多轴测角法,或具有由多个非共面传感器面板组成的复杂探测器(例如钻石光束线I23上使用的Pilatus 12M-DLS)。从一系列不同的描述中可靠地再现这种几何图形需要标准化的表示和从各种仪器中导入实验几何图形的能力。由于可能以不同的方式存储信息,例如以像素或毫米表示光束中心,或使用不同的坐标系约定。虽然普遍采用imgCIF等标准(Bernstein&Hammersley,2005)[Bernstein,H.J.&Hammersley,A.P.(2005),《国际结晶学表格》,第G卷,《结晶学数据的定义和交换》,S.R.Hall&B.McMahon编辑,第37-43页。海德堡:施普林格。])由于X射线衍射数据的记录可以解决这些挑战,历史先例表明这是不可能的。

开发一种统一读取衍射图像标题和数据的工具的任务已经被多次解决。这个CCP4型DiffractionImage库(Remacle&Winter,2007)【Remacle,F.&Winter,G.(2007)。CCP4蛋白质结晶通讯,第46期,第7-9页。】)是为了支持DNA(莱斯利等。, 2002【Leslie,A.G.W.,Powell,H.R.,Winter,G.,Svensson,O.,Spruce,D.,McSweeney,S.,Love,D.,Kinder,S.、Duke,E.&Nave,C.(2002),《水晶学报》D58,1924-1928年。】)和下2(2010年冬季【Winter,G.(2010),《应用结晶杂志》,第43期,186-190页。】)项目,正如早期人们意识到的那样,对一系列图像标头的可靠访问至关重要。然而,由于缺乏可扩展性,以及设计早期假设实验几何形状与上述简单布局相对应,这一点受到了限制。计算晶体学工具箱(cctbx公司)(格罗斯·库斯特列夫等。, 2002【Grosse-Kunstleve,R.W.,Sauter,N.K.,Moriarty,N.W.&Adams,P.D.(2002),《应用结晶杂志》第35期,第126-136页。】)包括一个包,物联网探测器,为索引程序提供数据访问标签(绍特等。, 2004【Sauter,N.K.,Grosse-Kunstleve,R.W.&Adams,P.D.(2004),《应用结晶杂志》,第37期,第399-409页。】)和X射线自由电子激光(XFEL)数据分析程序cctbx.xfel公司(绍特等。, 2013【Sauter,N.K.、Hattne,J.、Grosse-Kunstleve,R.W.和Echols,N.(2013),《结晶学报》D69,1274-1282。】)但它也受到了类似的限制。最近的努力,例如法比奥(努森等。, 2013【Knudsen,E.B.,Sörensen,H.O.,Wright,J.P.,Goret,G.&Kieffer,J.(2013),《应用结晶杂志》第46期,第537-539页。】),有助于一般性地访问数据,但较少强调对晶体学数据及其分析至关重要的元数据。

这里我们展示衍射实验工具箱(dxtbx公司)中的软件工具包cctbx公司用于编写新的衍射数据可视化和分析应用程序,其目的是允许以完全通用和用户扩展的方法来读取和解释衍射图像数据和元数据。这个dxtbx公司遵循的原则是,X射线衍射数据的解释和分析应该是明确和可分离的。这种设计允许dxtbx公司通常适用于读取X射线衍射数据和元数据,并将有助于将数据处理软件的开发人员从在其应用程序中支持多种文件格式和数据表示的通常繁琐的任务中解放出来。这个dxtbx公司是用C++和Python混合编写的,并作为cctbx公司根据开放源代码许可证https://cctbx.sourceforge.net网址.

2.操作方法

在开发的早期dxtbx公司人们认识到,为了普遍适用,用于读取衍射图像标题和数据的库必须满足以下要求。

(1) 它必须能够从使用不同文件格式和实验惯例的各种探测器中读取图像数据和元数据。

(2) 图像数据和元数据必须可访问通过一个统一的界面。

(3) 该库必须是用户可扩展的,不需要修改库源代码。

(4) 最后,用于表示实验的模型必须能够准确捕获探测器物理特性(例如畸变校正),同时具有足够的通用性,以涵盖各种衍射测量设置。

为了实现这些目标dxtbx公司实现了一个可扩展的插件框架,在该框架中,beamline科学家和开发人员可以添加自己的模块来处理来自不同文件格式、不同文件表示形式的输入。以编写少量Python代码为代价(参见附录中的示例A类[链接]B类[链接]),用户可以扩展库以支持任何定制文件格式,并将其中的元数据转换为与dxtbx公司实验模型,已采用imgCIF标准。还提供了一个简单的高级接口,可以访问整个图像序列中的数据。

遵循cctbx公司,该库是一个用C++和Python编写的混合系统(Abrahams&Grosse-Kunstleve,2003)【Abrahams,D.&Grosse-Kunstleve,R.W.(2003),C/C++用户杂志21(7),29-36。】). Python非常适合快速开发,强调干净的可移植代码,并且有一个广泛的标准库。各种语言功能便于使用可互换组件轻松实现通用代码。然而,由于该语言的解释性,使用Python会带来性能开销,因此实验模型是用C++实现的,以允许在编译代码中直接使用它们,从而避免了这种开销。这意味着,虽然只有Python应用程序才能充分利用dxtbx公司编译的C++应用程序和库仍然可以使用通用的实验模型。这个boost.python公司语言绑定框架用于导出C++接口,以便在Python中使用。

衍射实验工具箱由四个不同的组件组成:实验模型、高级数据块图像集接口,以及格式插件系统(§2.4[链接]). 下面对这些组件进行了更详细的描述,它们的相互作用如图1所示[链接].

[图1]
图1
这个dxtbx公司复杂输入图像集的数据模型。图像文件(1)被送入数据块工厂(2)。然后,数据块工厂使用格式注册表(3)查询每个图像以查找F类o个第页t吨类(4)。注意dxtbx公司支持更多F类o个第页t吨类。如果所有图像使用相同的F类o个第页t吨类,然后返回单个数据块(5);否则,将创建多个数据块。数据块分析图像元数据,根据它们之间共享的一组实验模型将图像分组。可以通过扫描或设置(6)从数据块访问这些组。扫描必须包含光束、探测器、测角仪和扫描(7),因此适用于旋转摄影;对于一组静止镜头,图像集必须具有每个图像的光束和检测器模型。

2.1. 实验模型

这个dxtbx公司使用实验模型的概念来封装实验描述中可以相互分离的某些方面。实验模型被编码为四类容器:光束、测角仪、探测器和扫描。这些信息分别包含有关源波长和方向、晶体旋转轴(用于旋转数据)、执行测量的仪器以及图像帧和任何旋转之间的关系的信息。在单晶X射线衍射的背景下,这些模型在实验技术和光束线硬件方面是完全通用的。这是通过使用完全矢量化的描述来实现的,该描述只表达实验的抽象几何,而不表达其他性质。除了光束与晶体和旋转轴的交点外,没有对几何形状进行任何假设。特别是,在旋转法扫描的表示中,旋转轴不假定与光束方向正交。由于模型由矢量描述组成,原则上,它们的分量可以用任何选定的坐标系表示;然而,在dxtbx公司,几何图形使用标准imgCIF约定表示(Bernstein&Hammersley,2005[Bernstein,H.J.&Hammersley,A.P.(2005),《国际结晶学表格》,第G卷,《结晶学数据的定义和交换》,S.R.Hall&B.McMahon编辑,第37-43页。海德堡:施普林格。]). 我们从EEC位置敏感探测器软件合作编程研讨会(Bricogne,1987[Bricogne,G.(1987),《CCP4 Daresbury研究周末论文集》,第120-145页。沃灵顿:科学与工程研究委员会。]). 特别是,我们采用了其中讨论的“虚拟化”方案,这涉及到对衍射实验的每个组成部分形成一个抽象和通用的定义。这个dxtbx公司构成了该研讨会概述的“仪器定义语言”的基础,通过该语言,实际波束线硬件被映射到任何特定实验的抽象模型表示。

在核心实验模型中,探测器模型必然是最复杂的,需要进一步解释。我们抽象的基本单位是一个面板,它代表一个矩形探测器平面,1面向实验室空间。即使探测器是一个包含一个或多个此类面板的容器的简单情况下,这些面板都不需要共面,也可以准确捕获为钻石光束线I23构建的半桶形Pilatus 12M-DLS(图2[链接]). 对于更奇异的探测器dxtbx公司支持通用层次模型,允许将面板组织为逻辑相关的组和子组。这对于CSPAD(哈特等。, 2012【Hart,P.等人(2012年)。SPIE光学工程与应用,第85040C-85040C页。圣地亚哥:国际光学与光子学学会。】),用于LCLS CXI光束线(图2[链接]),其中面板的子集可以相互移动。

[图2]
图2
LCLS CXI光束线处的CSPAD探测器()(由Philip Hart提供)和Pilatus 12M-DLS在Diamond Beamline I23(b条)(由DECTRIS有限公司提供)。

在确定探测器上的位置时dxtbx公司使用虚拟探测器平面的概念。虚拟平面上的位置由面板标识符和连接到该面板的二维笛卡尔坐标系中的坐标给出。该点对应于光子撞击探测器表面的位置,与实际使用的探测器硬件无关。在虚拟平面接口后面,面板位置和像素位置之间的硬件特定映射封装在毫米对像素函数(及其逆函数)中,该函数必须由特定于实际探测器硬件的代码提供。例如,这将考虑带有厚传感器的探测器,传感器内的交互点可能会改变测量的像素位置。dxtbx公司,这是通过将抽象检测器模型与“策略”类(Gamma)配对来实现的等。, 1994[Gamma,E.,Helm,R.,Johnson,R.&Vlissides,J.(1994)。设计模式:可重用面向对象软件的元素,第1版。印第安纳波利斯:Addison-Wesley Professional。]),这允许在不改变模型本身的情况下修改检测器模型的行为。该类是简单映射中所有硬件特定畸变的自然场所,包括视差和几何畸变效果,例如由光纤锥化引起的。

单个面板的几何图形k用矩阵很方便地表示,[{\bf d}^k=({\bf d}^{k_x}\,\,{\bf d}^{k_y}\,\,{\bf d}^{k_0})].用于面板k,矩阵的列是面板基向量[{\bf d}^{kx}][{\bf d}^{ky}],由平移向量增强[{\bf d}^{k0}],在实验室空间中定位面板框架的原点(图3[链接]). 矩阵的使用[{\bf d}^k]方便地将反射预测方程简化为沿散射方向到探测器平面的投影,完全避免了三角函数,有利于矩阵运算(Thomas,1992【托马斯·D·J(1992),《结晶学报》A48134-158。】). 通常,所有使用dxtbx公司模型会这样做通过图3总结了矢量表示[链接]这确保了坐标系的选择与这些算法的工作无关,但需要注意的是,实验室坐标系的原点位于主光束和样品的交点处。

[图3]
图3
旋转法的衍射几何描述dxtbx公司模型。单色X射线束由波矢表示[{\bf s}_0],与样本旋转轴相交,由单位向量给定[{\bf e}],位于互惠实验室坐标系的原点。抽象探测器平面k在真实空间实验室坐标系中使用原点向量进行描述[{\bf d}^{k0}]和一对正交基向量[{{\bf-d}^{kx},{\bf d}^}探测器模型提供了一对极限,极限x个极限,在平面内形成一个有边界的矩形面板。晶体模型补充了dxtbx公司几何模型,其设置以φ-轴框架(以旋转角度与相互实验室框架对齐φ=0°)通过设置矩阵[{\bf UB}],遵循蛋白质数据库(https://www.pdb.org/pdb/home/home.do)惯例。衍射用波矢量表示[{\bf s}],可以延伸到这一点(X,Y(Y))它在面板坐标系中与探测器面板相接。

2.2. 高级数据块图像集接口

通过高级数据块接口。数据块检查图像文件元数据头信息,以确定所提供列表中连续图像之间的关系。这使得可以将图像作为相关图像的块进行访问,例如共享一组特定实验模型的图像。图像块按照此方案组织为图像扫描和图像集。这个e(电子)S公司w个e(电子)e(电子)第页类表示一系列图像,这些图像在三维中相邻像素之间具有明确的几何关系,例如使用旋转方法拍摄的一系列图像。这个e(电子)S公司e(电子)t吨类用于不存在此关系的情况,例如对于串行飞秒晶体学产生的静态图像数据,但这些图像仍然是单个数据采集的一部分。这个e(电子)S公司w个e(电子)e(电子)第页类派生自e(电子)S公司e(电子)t吨类。这两个类都通过Python列表风格的界面提供了对图像数据的方便访问,在这个界面上可以迭代集合中的图像,并可以选择和使用子集。这个e(电子)S公司w个e(电子)e(电子)第页类提供了对一系列几何相关图像进行操作的附加方法。这个D类t吨B类o个c(c)k类可以包含e(电子)S公司e(电子)t吨e(电子)S公司w个e(电子)e(电子)第页类。

在内部e(电子)S公司w个e(电子)e(电子)第页e(电子)S公司e(电子)t吨类保留对单个或多文件读取器类的引用,该类处理从单个文件(如HDF5文件)读取图像序列(HDF Group,2010[HDF Group(2010).层次数据格式第5版,https://www.hdfgroup.org/HDF5。]),或多个文件,例如图像文件的集合。这两个读取器类都实现了一个接口,允许图像扫描和图像集以通用的方式与不同的数据存储表示进行交互。使用“flyweight”模式(Gamma)实现对图像子集的支持等。, 1994[Gamma,E.,Helm,R.,Johnson,R.和Vlissides,J.(1994)。《设计模式:可重用面向对象软件的元素》,第1版。印第安纳波利斯:Addison Wesley Professional。])通过轻量级高级接口访问的多个子集保留对执行读取和解释的单个读取器的引用。这具有在并行访问多个子集图像时减少内存使用的优点。

2.3. 图像元数据存储

提供了一种模块以使得能够直接存储修改后的图像集元数据。然后可以从文件表示创建图像集,从而可以保存经过优化的实验几何体以供以后使用。数据使用JavaScript对象标记(JSON)格式保存(Crockford,2006)[Crockford,D.,(2006).JavaScript对象符号(json)的application/json Media Type,https://tools.ietf.org/html/rfc4627.txt。]); 之所以选择这种格式,是因为它是人类可读的,是一种开放标准,并且在许多编程语言中都得到了本机支持。特别是,Python标准库包含一个模块,用于将任意Pythons结构读写为JSON格式,从而方便在dxtbx公司.

2.4. 这个格式插件系统

这个dxtbx公司提供了一种插件机制来处理来自多个文件格式的输入,并对实验几何体进行替代描述。每个F类o个第页t吨类用于解释特定的图像文件和元数据格式,以及F类o个第页t吨通用检测器和数据表示的类包含在dxtbx公司用户可以添加自己的图像格式来处理定制图像格式或本地变体(参见附录A类[链接]B类[链接]). 注册表维护以下项的树结构F类o个第页t吨类,这样最专用的格式离根最远。有关插件机制的更多详细信息,请参阅附录D类[链接]这种用于处理不同数据表示的模型有两个优点:操作不需要外部站点文件;此外,复杂修正(例如Pilatus检测器的平铺位置校正)可以以独立的方式进行编码。

波束线描述的可扩展性是dxtbx公司:特别是光束线科学家编写F类o个第页t吨描述如何使用图像标题中的值的模块(可能扩展了检测器的更通用示例)。自定义F类o个第页t吨模块可以放在指定的目录中,然后自动注册以在dxtbx公司应用程序启动时。扩展库的能力主要用于存在不寻常的实验硬件或波束线具有某些特性(例如左手旋转轴)的情况。将使用两个示例来演示扩展库的容易程度。

2.4.1. 示例1:反向旋转轴

澳大利亚同步加速器的MX1光束线有一个左旋角度计,与传统的右手轴相反,但它是一个包括ADSC Quantum 210r探测器的其他传统光束线,这仅仅意味着需要反转旋转轴的方向。dxtbx公司这是通过在附录中创建Python文件来实现的A类[链接],以标准为基础F类o个第页t吨类,并在确保(基于检测器序列号)这适用于这些数据后,替换旋转轴的定义。

2.4.2. 示例2:2上的ADSC Q315θ

大多数ADSC CCD探测器安装在简单的平移台上:考虑到这些设备的尺寸和重量,很少需要更复杂的轴。然而,在ALS光束线8.3.1处,Quantum 315探测器安装在2θarm,这在处理数据时必须考虑。此处,图像标题中记录的光束中心对应于2θ偏移值而不是2所在的位置θ角度为0°(詹姆斯·霍尔顿,私人通信)。这个F类o个第页t吨类来支持这一点,包括在附录中B类[链接],替换检测器定义,以说明检测器原点的偏移以及定义检测器平面的矢量因2中的偏移而发生的变化θ需要注意的是,这些更改仅限于探测器几何结构,简化了束线科学家的实现,并且只会影响具有特定序列号的探测器(如源代码所示)。

3.应用

这个dxtbx公司旨在普遍适用于X射线衍射数据处理程序中图像数据和元数据的读取。它已经在已建立的项目中找到了实用性,例如cctbx公司图像查看器和下2以及在新项目中形成关键组成部分,例如先进光源的衍射积分(DIALS(刻度盘))项目(Waterman等。, 2013【Waterman,D.G.、Winter,G.、Parkhurst,J.M.、Fuentes-Montero,L.、Hattne,J.、Brewster,A.、Sauter,N.K.和Evans,G.(2013)。CCP4蛋白质晶体学通讯,第49期,第16-19页。】). 一些示例显示了dxtbx公司见附录C[链接].

3.1. 这个cctbx公司图像查看器

这个cctbx公司图像查看器用于显示来自各种不同来源的衍射图像(索特等。, 2013【Sauter,N.K.、Hattne,J.、Grosse-Kunstleve,R.W.和Echols,N.(2013),《结晶学报》D69,1274-1282。】). 它已经更新,以利用dxtbx公司,展示了F类o个第页t吨,e(电子)S公司e(电子)t吨e(电子)S公司w个e(电子)e(电子)第页类。从命令行运行时,查看器使用dxtbx公司 e(电子)S公司e(电子)t吨工厂创建集合或扫掠。它加载集合中的第一个图像,显示它,并通过保留对e(电子)S公司e(电子)t吨e(电子)S公司w个e(电子)e(电子)第页对象。这个dxtbx公司允许应用程序快速添加对几种新文件格式的支持,最重要的是新定义的HDF5文件。

HDF5(HDF集团,2010年[HDF Group(2010).层次数据格式第5版,https://www.hdfgroup.org/HDF5。])是一种文件容器格式,目前用于大型数据集,例如来自XFEL束线或精细切片同步加速器实验的数据集。新一代探测器目前支持120帧的帧速率Hz,地平线上的探测器将支持1000帧速率Hz或更高。使用每个图像一个文件将这些数据集存放在文件系统上是不现实的,因此最好使用HDF5等容器技术。这个dxtbx公司提供了一个插件接口,允许将HDF5数据集包装在M(M)u个t吨F类e(电子)R(右)e(电子)d日e(电子)第页类,提供对其包含的图像和元数据的轻松访问。随着HDF5格式的发展dxtbx公司插件可以被编写或修改以支持其元数据格式(布鲁斯特等。, 2014【Brewster,A.S.,Hattne,J.,Parkhurst,J.M.,Waterman,D.G.,Bernstein,H.J.,Winter,G.&Sauter,N.(2014),《计算结晶》,新闻5(1),19-24。】). 这些插件将把新格式无缝地连接到现有系统上,允许图像显示和处理。

3.2.下2

如中所述介绍[链接],下2最初使用的是CCP4型套件读取X射线衍射图像的标题。虽然这对程序支持的初始实验设置范围有效,但随着支持更复杂的实验几何体,例如使用κ测角仪和2θ探测器臂。

最初,这是通过提供读取特定图像类型的替代方法来解决的,这些方法在DiffractionImage-based方法失败后按顺序进行测试;然而,这种方法很快导致了非常复杂的代码,伸缩性非常差。自开发和合并dxtbx公司进入之内下2然而,支持任意实验几何形状的分析变得更加简单,允许下2除用于大分子晶体学实验外,还用于分析小分子数据(通常具有更复杂的几何结构)。预计在未来,这一趋势将继续下去,为晶体衍射实验开发新光束线的科学家将能够为他们的光束线本身添加特定的支持。

3.3. 这个DIALS(刻度盘)框架

这个DIALS(刻度盘)该项目旨在为衍射数据的处理提供一个可扩展的框架和软件包。它面向全球高级光源的用户,因此需要从各种数据源访问图像数据和实验几何图形。为了简化实现并保持通用性,实验几何和图像数据必须以统一的方式公开,而不依赖于底层数据表示。在以下背景下DIALS(刻度盘),的dxtbx公司为这些挑战提供了解决方案。

4.讨论

背后的原则dxtbx公司将X射线衍射数据的解释与其分析分开。实验设置的详细信息使用所有数据类型的通用接口和参考框架进行封装和公开,确保客户端分析代码不需要知道任何文件格式细节。dxtbx公司描述关键实验组件,可以直接使用,无需进一步转换。这个dxtbx公司也是可扩展的,因为可以通过添加一个描述本地环境的Python文件来支持新的实验设置:一旦发生这种情况,就不需要在dxtbx公司或正确解释数据的分析代码。这些使分析代码的开发人员能够集中精力改进算法,而不是支持多种检测器数据格式。最后,使用完全通用的实验几何矢量描述可以将详细的校准信息传播到分析代码中,也可以鼓励分析软件支持处理X射线衍射数据的类似通用方法。

附录A

实现:反转轴

全面实施dxtbx公司 F类o个第页t吨对象,为澳大利亚同步加速器光束线MX1定制,具有反向旋转轴。

【方案一】

附录B

实施:ADSC Q315 on a 2θ

全面实施dxtbx公司 F类o个第页t吨ALS光束线8.3.1的目标,其中ADSC Quantum 315探测器安装在2θ手臂。

【方案二】
[方案3]

附录C

简单示例

我们使用dxtbx公司。这些示例的完整源代码也可以在dxtbx公司下的源分布./dxtbx/示例/.

C1.探测器角分辨率

一个简单的例子,展示了dxtbx公司计算任意位置探测器的角分辨率。简单地说,这个示例计算2θ光束和探测器每个角的位置之间的角度,并将它们转换为相应的d日间距。

[方案4]

指挥与控制。图像集接口

下面的代码片段显示了高级e(电子)S公司e(电子)t吨接口在一个简单的示例中操作。这个e(电子)S公司e(电子)t吨对象,通过工厂函数实例化,提供对实验模型和e(电子)S公司e(电子)t吨,并允许对集合或子集中的图像进行简单索引。最后,可以从包含在e(电子)S公司e(电子)t吨.

[方案5]

C3.储存

这个dxtbx公司提供了一个模块,用于将扫描或图像集写入JSON文件。只需一行代码就可以从文件中读取或写入图像集。需要注意的是,这些功能不会直接读取和写入图像数据;他们读写了一个表示dxtbx公司可以用来理解图像数据和元数据。JSON格式还加载图像集中覆盖的任何模型,允许根据需要保存和加载扫描的精细几何体。

[方案6]

C4.探测器-道路交叉口

探测器模型提供了计算射线与虚拟探测器平面相交点的方法,该点由其内部几何表示表示,如下面的代码片段所示。该点在快速和慢速方向上都以毫米为单位从第零个像素返回。检测器模型还提供了毫米对像素(和像素对毫米)功能,允许任意复杂的映射。

[方案7]

附录D

插件机制

给定一个图像文件,注册表调用u个n个d日e(电子)第页t吨n个d日()直接从基类派生的类的函数,F类o个第页t吨。如果格式声称可以理解图像,则图像将传递给u个n个d日e(电子)第页t吨n个d日()它的子类的函数。该过程以递归方式继续,直到返回嵌套最深的兼容格式。如果在层次结构的任何级别上有多个子类理解图像,就会引发异常,从而确保结果唯一。

注册表树是使用Python元类自动建立的,它允许控制类的创建。F类o个第页t吨类首先被发现,元类递归地确保它被注册到基类的直接后代列表中。因为元类绑定到F类o个第页t吨它只实现一次基类,它的所有子类都将从它提供的自动注册中受益。

脚注

现地址:美国弗吉尼亚州阿什本市螺旋大道19700号Janelia农场研究园区,邮编:20147。

1目前dxtbx公司仅支持由一组平面矩形传感器组成的探测器;然而,当需要时,可以添加对真正弯曲仪器的支持。

致谢

JMP和LFM得到了欧洲共同体第七框架计划(FP7/2007-2013)在BioStruct-X(第283570号赠款协议)下的支持。ASB、JH和NKS得到了美国国立卫生研究院/国家普通医学科学研究所的R01GM095887拨款支持。NE得到了美国国立卫生研究院/美国国立普通医学科学研究院的支持,向Paul Adams(LBNL)拨款1P01GM063210,这也支持了cctbx公司.

工具书类

第一次引用Abrahams,D.&Grosse-Kunstleve,R.W.(2003)。C/C++用户J。 21(7), 29–36. 谷歌学者
第一次引用Bernstein,H.J.和Hammersley,A.P.(2005)。国际结晶学表,第G卷,结晶数据的定义和交换由S.R.Hall和B.McMahon编辑,第37-43页。海德堡:施普林格。 谷歌学者
第一次引用Brewster,A.S.、Hattne,J.、Parkhurst,J.M.、Waterman,D.G.、Bernstein,H.J.、Winter,G.和Sauter,N.(2014)。计算。克里斯特。新闻。 5(1), 19–24. 谷歌学者
第一次引用Bricogne,G.(1987)。CCP4达累斯伯里研究周末会议记录第120–145页。沃灵顿:科学与工程研究委员会。 谷歌学者
第一次引用Crockford,D.(2006年)。JavaScript对象表示法(json)的应用程序/json Media Type,https://tools.ietf.org/html/rfc4627.txt谷歌学者
第一次引用Gamma,E.、Helm,R.、Johnson,R.和Vlissides,J.(1994年)。设计模式:可重用面向对象软件的元素第1版,印第安纳波利斯:Addison-Wesley Professional。 谷歌学者
第一次引用Grosse-Kunstleve,R.W.,Sauter,N.K.,Moriarty,N.W.和Adams,P.D.(2002)。J.应用。克里斯特。 35, 126–136. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用P.哈特。等。(2012).SPIE光学工程与应用第85040C-85040C页。圣地亚哥:国际光学与光子学学会。 谷歌学者
第一次引用Knudsen,E.B.、Sörensen,H.O.、Wright,J.P.、Goret,G.和Kieffer,J.(2013)。J.应用。克里斯特。 46, 537–539. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用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类581924年至1928年科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Remacle,F.&Winter,G.(2007年)。CCP4蛋白质结晶通讯第46期,第7-9页谷歌学者
第一次引用Sauter,N.K.、Grosse Kunstleve,R.W.和Adams,P.D.(2004年)。J.应用。克里斯特。 37, 399–409. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用Sauter,N.K.、Hattne,J.、Grosse-Kunstleve,R.W.和Echols,N.(2013)。阿克塔·克里斯特。D类69, 1274–1282. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者
第一次引用HDF集团(2010年)。层次数据格式第5版,https://www.hdfgroup.org/HDF5谷歌学者
第一次引用托马斯·D·J(1992)。阿克塔·克里斯特。A类48, 134–158. 交叉参考 科学网 IUCr日志 谷歌学者
第一次引用Waterman,D.G.、Winter,G.、Parkhurst,J.M.、Fuentes-Montero,L.、Hattne,J.、Brewster,A.、Sauter,N.K.和Evans,G.(2013)。CCP4蛋白质结晶通讯第49期,第16-19页谷歌学者
第一次引用Winter,G.(2010)。J.应用。克里斯特。 43, 186–190. 科学网 交叉参考 中国科学院 IUCr日志 谷歌学者

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

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