Abstract

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.

Highlights

  • The cryo-electron tomography technique allows the imaging of cellular structures in a close-to-native context (Lucicet al., 2005, 2013), representing them as three-dimensional models called tomograms

  • After a brief summary of the main functionalities currently included in Dynamo, this report focuses on more technical details of the software implementation, describing the architecture of the package and its implementation strategies for different scenarios: single and multinode parallelization, graphical processing units (GPUs) computation and adaption to cloud computing through Amazon Web Services (AWS)

  • These kernel objects parallelize in the GPU the function of MEX files in the CPU: they are written in C++/ CUDA and their executable can share memory with variables residing in the MATLAB workspace, in particular with gpuArray variables physically located in the GPU device

Read more

Summary

Introduction

The cryo-electron tomography technique allows the imaging of cellular structures in a close-to-native context (Lucicet al., 2005, 2013), representing them as three-dimensional models called tomograms. Copies of a given macromolecular structure can be located and averaged together by the technique known as subtomogram averaging, which aligns the noisy copies with their common signal, possibly classifying different conformational states (Briggs, 2013). The functionalities of Dynamo have been described in detail in Castano-Dıez et al (2012), which addressed the alignment and classification methods, and in Castano-Dıez et al (2017), which reported the data-management system for visualization and annotation of sets of tomograms. After a brief summary of the main functionalities currently included in Dynamo, this report focuses on more technical details of the software implementation, describing the architecture of the package and its implementation strategies for different scenarios: single and multinode parallelization, GPU computation and adaption to cloud computing through Amazon Web Services (AWS)

Subtomogram averaging
Data management
Implementation
Visualization
Modelling
MATLAB
Distribution to third parties
Generic MATLAB library
Parallelization
MATLAB Parallel Toolbox
Cluster computing
Parallelism in generic functions
GPU computing
GPU in Dynamo
3.10. Distribution of GPU code
3.11. GPU devices
3.12. Performance comparison
3.13. Cloud computing
3.14. Computing on Amazon EC2
3.15. Preconfigured Dynamo environment
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call