BioEM Lab at C-CINA, Biozentrum, University of Basel, Matenstrasse 26, CH-4058 Basel, Switzerland.
Acta Crystallogr D Struct Biol. 2017 Jun 1;73(Pt 6):478-487. doi: 10.1107/S2059798317003369. Epub 2017 Apr 20.
Dynamo is a package for the processing of tomographic data. As a tool for subtomogram averaging, it includes different alignment and classification strategies. Furthermore, its data-management module allows experiments to be organized in groups of tomograms, while offering specialized three-dimensional tomographic browsers that facilitate visualization, location of regions of interest, modelling and particle extraction in complex geometries. Here, a technical description of the package is presented, focusing on its diverse strategies for optimizing computing performance. Dynamo is built upon mbtools (middle layer toolbox), a general-purpose MATLAB library for object-oriented scientific programming specifically developed to underpin Dynamo but usable as an independent tool. Its structure intertwines a flexible MATLAB codebase with precompiled C++ functions that carry the burden of numerically intensive operations. The package can be delivered as a precompiled standalone ready for execution without a MATLAB license. Multicore parallelization on a single node is directly inherited from the high-level parallelization engine provided for MATLAB, automatically imparting a balanced workload among the threads in computationally intense tasks such as alignment and classification, but also in logistic-oriented tasks such as tomogram binning and particle extraction. Dynamo supports the use of graphical processing units (GPUs), yielding considerable speedup factors both for native Dynamo procedures (such as the numerically intensive subtomogram alignment) and procedures defined by the user through its MATLAB-based GPU library for three-dimensional operations. Cloud-based virtual computing environments supplied with a pre-installed version of Dynamo can be publicly accessed through the Amazon Elastic Compute Cloud (EC2), enabling users to rent GPU computing time on a pay-as-you-go basis, thus avoiding upfront investments in hardware and longterm software maintenance.
Dynamo 是一个用于处理断层扫描数据的软件包。作为一个子断层平均化的工具,它包含了不同的对齐和分类策略。此外,它的数据管理模块允许将实验组织成群集的断层扫描,同时提供专门的三维断层扫描浏览器,便于可视化、兴趣区域的定位、建模和在复杂几何形状中提取粒子。本文介绍了该软件包的技术描述,重点介绍了其优化计算性能的多种策略。Dynamo 构建在 mbtools(中间层工具包)之上,mbtools 是一个通用的 MATLAB 库,用于面向对象的科学编程,专门为支持 Dynamo 而开发,但也可作为独立的工具使用。它的结构将灵活的 MATLAB 代码库与预编译的 C++函数交织在一起,后者承担了数值密集型操作的负担。该软件包可以作为一个预编译的独立软件包提供,无需 MATLAB 许可证即可执行。在单个节点上的多核并行化直接继承自为 MATLAB 提供的高级并行化引擎,在计算密集型任务(如对齐和分类)以及面向物流的任务(如断层扫描分箱和粒子提取)中,自动在线程之间分配平衡的工作量。Dynamo 支持图形处理单元(GPU)的使用,无论是在本机 Dynamo 过程(如数值密集型子断层对齐)还是通过其基于 MATLAB 的 GPU 库为三维操作定义的过程中,都能获得可观的加速因素。带有预安装版本的 Dynamo 的基于云的虚拟计算环境可以通过亚马逊弹性计算云 (EC2) 公开访问,使用户能够按使用量付费租用 GPU 计算时间,从而避免在硬件上的前期投资和长期软件维护。