MolAR: Memory-Safe Library for Analysis of MD Simulations Written in Rust
Status PubMed-not-MEDLINE Jazyk angličtina Země Spojené státy americké Médium print
Typ dokumentu časopisecké články
Grantová podpora
European Commission
PubMed
39618095
PubMed Central
PMC11609497
DOI
10.1002/jcc.27536
Knihovny.cz E-zdroje
- Klíčová slova
- Rust, library, memory safety, molecular analysis, molecular dynamics simulations,
- Publikační typ
- časopisecké články MeSH
Transition to the memory safe natively compiled programming languages is a major software development trend in recent years, which eliminates memory-related security exploits, enables a fearless concurrency and parallelization, and drastically improves ergonomics and speed of software development. Modern memory-safe programing languages, such as Rust, are currently not used for developing molecular modeling and simulation software despite such obvious benefits as faster development cycle, better performance and smaller amount of bugs. This work introduces MolAR-the first memory-safe library for analysis of MD simulations written in Rust. MolAR is intended to explore the advantages and challenges of implementing molecular analysis software in the memory-safe natively compiled language and to develop specific memory-safe abstractions for this kind of software. MolAR demonstrates an excellent performance in benchmarks outperforming popular molecular analysis libraries and tools, which makes it attractive for implementing computationally intensive analysis tasks. MolAR is freely available under Artistic License 2.0 at https://github.com/yesint/molar.
Zobrazit více v PubMed
Azevedo de Amorim A., Hriţcu C., and Pierce B. C., Principles of Security and Trust, eds. Bauer L. and Küsters R. (Cham: Springer International Publishing, Cham, 2018).
“The Urgent Need for Memory Safety in Software Products | CISA,” Accessed September 21, 2024, https://www.cisa.gov/news‐events/news/urgent‐need‐memory‐safety‐software‐products.
Santoso O. K. A., Kwee C., Chua W., and Rojali G. Z. N., “Rust's Memory Safety Model: An Evaluation of Its Effectiveness in Preventing Common Vulnerabilities,” Procedia Computer Science 227 (2023): 119–127, 10.1016/j.procs.2023.10.509. DOI
Xu H., Chen Z., Sun M., Zhou Y., and Lyu M. R., “Memory‐Safety Challenge Considered Solved? An in‐Depth Study With all Rust CVEs,” ACM Transactions on Software Engineering and Methodology 31 (2021): 1–25, 10.1145/3466642. DOI
Fourment M. and Gillings M. R., “A Comparison of Common Programming Languages Used in Bioinformatics,” BMC Bioinformatics 9 (2008): 82, 10.1186/1471-2105-9-82. PubMed DOI PMC
“An Analysis of Scripting Languages for Research in Applied Computing,” Accessed September 21, 2024, https://ieeexplore.ieee.org/abstract/document/6755355.
GlobalInterpreterLock—Python Wiki Accessed September 21, 2024, https://wiki.python.org/moin/GlobalInterpreterLock.
Michaud‐Agrawal N., Denning E. J., Woolf T. B., and Beckstein O., “MDAnalysis: A Toolkit for the Analysis of Molecular Dynamics Simulations,” Journal of Computational Chemistry 32 (2011): 2319–2327, 10.1002/jcc.21787. PubMed DOI PMC
MDAnalysis: A Python Package for the Rapid Analysis of Molecular Dynamics Simulations—SciPy Proceedings Accessed September 21, 2024, https://proceedings.scipy.org/articles/Majora‐629e541a‐00e.
McGibbon R. T., Beauchamp K. A., Harrigan M. P., et al., “MDTraj: A Modern Open Library for the Analysis of Molecular Dynamics Trajectories,” Biophysical Journal 109 (2015): 1528–1532, 10.1016/j.bpj.2015.08.015. PubMed DOI PMC
Yesylevskyy S. O., “Pteros: Fast and Easy to Use Open‐Source C++ Library for Molecular Analysis,” Journal of Computational Chemistry 33 (2012): 1632–1636. PubMed
Yesylevskyy S. O., “Pteros 2.0: Evolution of the Fast Parallel Molecular Analysis Library for C++ and Python,” 2015. PubMed
“Triomphe—Crates.io: Rust Package Registry,” Accessed September 21, 2024, https://crates.io/crates/triomphe.
“Bindgen—Crates.io: Rust Package Registry,” Accessed September 21, 2024, https://crates.io/crates/bindgen.
“Cc—Crates.io: Rust Package Registry,” Accessed October 25, 2024, https://crates.io/crates/cc.
“Molar_molfile—Crates.io: Rust Package Registry,” Accessed September 21, 2024, https://crates.io/crates/molar_molfile.
“Molar_xdrfile—Crates.io: Rust Package Registry,” Accessed September 21, 2024, https://crates.io/crates/molar_xdrfile.
“Molar_gromacs—crates.io: Rust Package Registry,” Accessed September 21, 2024, https://crates.io/crates/molar_gromacs.
Klenin K. V., Tristram F., Strunk T., and Wenzel W., “Derivatives of Molecular Surface Area and Volume: Simple and Exact Analytical Formulas,” Journal of Computational Chemistry 32 (2011): 2647–2653, 10.1002/jcc.21844. PubMed DOI
Abraham M. J., Murtola T., Schulz R., et al., “GROMACS: High Performance Molecular Simulations Through Multi‐Level Parallelism From Laptops to Supercomputers,” SoftwareX 1 (2015): 19–25, 10.1016/j.softx.2015.06.001. DOI
Humphrey W., Dalke A., and Schulten K., “VMD: Visual Molecular Dynamics,” Journal of Molecular Graphics 14 (1996): 33–38, 10.1016/0263-7855(96)00018-5. PubMed DOI
Roe D. R. and Cheatham T. E. I., “PTRAJ and CPPTRAJ: Software for Processing and Analysis of Molecular Dynamics Trajectory Data,” Journal of Chemical Theory and Computation 9 (2013): 3084–3095, 10.1021/ct400341p. PubMed DOI
Dong D., Zheng L., Lin J., et al., “Structural Basis of Assembly of the Human T Cell Receptor–CD3 Complex,” Nature 573 (2019): 546–552, 10.1038/s41586-019-1537-0. PubMed DOI