| Literature DB >> 29086076 |
Patrick Ropp1, Aaron Friedman2, Jacob D Durrant3.
Abstract
Third-party packages have transformed the Python programming language into a powerful computational-biology tool. Package installation is easy for experienced users, but novices sometimes struggle with dependencies and compilers. This presents a barrier that can hinder the otherwise broad adoption of new tools. We present Scoria, a Python package for manipulating three-dimensional molecular data. Unlike similar packages, Scoria requires no dependencies, compilation, or system-wide installation. One can incorporate the Scoria source code directly into their own programs. But Scoria is not designed to compete with other similar packages. Rather, it complements them. Our package leverages others (e.g. NumPy, SciPy), if present, to speed and extend its own functionality. To show its utility, we use Scoria to analyze a molecular dynamics trajectory. Our FootPrint script colors the atoms of one chain by the frequency of their contacts with a second chain. We are hopeful that Scoria will be a useful tool for the computational-biology community. A copy is available for download free of charge (Apache License 2.0) at http://durrantlab.com/scoria/ . Graphical abstract .Entities:
Keywords: Computational biology; Molecular modeling; Python; Structural biology
Year: 2017 PMID: 29086076 PMCID: PMC5603467 DOI: 10.1186/s13321-017-0237-8
Source DB: PubMed Journal: J Cheminform ISSN: 1758-2946 Impact factor: 5.514
Compatibility tests
| OS | Python | NumPy | SciPy | MDAnalysis |
|---|---|---|---|---|
| macOS Sierra (10.12.3) | Python 2.7.13/Anaconda 4.2.13 | 1.11.2 | 0.18.1 | 0.15.0 |
| macOS Sierra (10.12.3) | PyPy 1.8.0 | N/A | N/A | N/A |
| Ubuntu 16.04.1 LTS | Python 2.7.13/Anaconda 4.3.14 | 1.11.3 | 0.18.1 | 0.15.0 |
| Windows 10 Pro Version 1607 | Python 2.7.13/Anaconda 4.3.14 | 1.11.3 | 0.18.1 | N/A |
| Ubuntu 16.04.1 LTS | Python 3.6.0/Anaconda 4.3.14 | 1.11.3 | 0.18.1 | N/A |
We tested Scoria’s basic functionality on macOS 10, Ubuntu Linux, and Windows 10, using Python 2.7, Python 3.6, and PyPy 1.8. PyPy does not support NumPy, SciPy, or MDAnalysis; MDAnalysis does not support Windows; and MDAnalysis was error prone when installed under Python 3. These limitations did not prevent Scoria from passing all basic-functionality tests, though it ran slower
Select optional Scoria functions available when third-party libraries are installed
| Features | Optional dependencies | ||||
|---|---|---|---|---|---|
| Module | Definition | Notes | NumPy | SciPy | MDAnalysis |
|
|
| Load PYM file | ✓ | ||
|
|
| Load from file(s) via MDAnalysis | ✓ | ✓ | |
|
|
| Load from MDAnalysis Universe object | ✓ | ✓ | |
|
|
| – | ✓ | ||
|
|
| Select atoms bound to user-specified selection | ✓ | ||
|
|
| Selects an individual branch of a molecule | ✓ | ||
|
|
| Select atoms belonging to same molecule | ✓ | ||
|
|
| Gets a list of all selections based on their molecule | ✓ | ||
|
|
| – | ✓ | ✓ | |
|
|
| – | ✓ | ✓ | |
|
|
| – | ✓ | ||
|
|
| – | ✓ | ||
|
|
| ✓ | |||
|
|
| – | ✓ | ✓ | |
|
|
| – | ✓ | ✓ | |
|
|
| Calculate RMSD between two sets of atoms | ✓ | ✓ | |
|
|
| Determine which atoms are bonded based on distance between them | ✓ | ✓ | |
Average Scoria execution times for various file I/O tasks, running in three different Python environments
| Action | Python with NumPy/SciPy | Python without dependencies | PyPy (incompatible with dependencies) |
|---|---|---|---|
| Save PDB | 0.0055 ± 0.0010 | 0.0085 ± 0.0016 | 0.0036 ± 0.0043 |
| Load PDB (without calculating bonds by distance) | 0.0104 ± 0.0010 | 0.0643 ± 0.0028 | 0.0198 ± 0.0163 |
| Save PYM | 0.0024 ± 0.0013 | N/A | N/A |
| Load PYM | 0.0008 ± 0.0004 | N/A | N/A |
Saving and loading PYM files requires NumPy and so could only be tested in environments with that module installed (“N/A” otherwise)
Fig. 1The footprint-analysis code, based on Scoria. This Python code is included with the Scoria download, in the demo directory
Fig. 2The shroom2-rock1 contact footprint. a The shroom2 protein. Atoms that frequently come in contact with the rock1 dimer are shown in blue. Atoms that have no contacts with rock1 are shown in red. b The shroom2 protein, with residues known to participate in rock1-dimer/shroom3 binding shown in blue. c The rho-associated protein kinase 1 (rock1) dimer. Atoms are colored by contact residence times, as in part a