5 releases (3 breaking)
new 0.5.0 | Feb 15, 2025 |
---|---|
0.4.0 | Jan 13, 2025 |
0.3.0 | Jan 3, 2025 |
0.2.0 | Dec 11, 2024 |
0.2.0-beta | Dec 7, 2024 |
#300 in Science
123 downloads per month
1MB
20K
SLoC
gorder: Everything you will ever need for lipid order calculations
Command line tool for calculating atomistic and coarse-grained lipid order parameters from Gromacs simulations.
Installation
-
Install gorder:
$ cargo install gorder
Usage
- Prepare a yaml file describing the parameters of your analysis. It's as simple as:
structure: system.tpr
trajectory: md.xtc # use your MD trajectory directly - no PBC handling or molecule fixing needed
analysis_type: !AAOrder
heavy_atoms: "element name carbon"
hydrogens: "element name hydrogen"
output: order.yaml
- Run the
gorder
tool. The program will automatically find bonds between the selected atoms, classify lipid molecules, and calculate order parameters for them.
$ gorder YOUR_INPUT_YAML_FILE
- See the results of the analysis in
order.yaml
.
See the gorder manual for more information about using this program.
Features
-
⚛️ Atomistic and coarse-grained systems
Calculates atomistic and coarse-grained order parameters for individual bonds of individual lipid types. -
🔠 Powerful selection language
Allows for simple yet powerful atom selection using a VMD-like selection language, supporting regular expressions and groups from NDX files. -
🔍 Automatic identification of molecule types
Automatically recognizes bonds and classifies molecule types based on their topology. Order parameters are calculated and reported separately for each molecule type. -
📋 Various output formats
Outputs results in YAML, XVG, CSV, and custom "table" format. -
🏗️ Any model and force-field
Is completely force-field agnostic. Martini? CHARMM? Slipids? Your own toy force-field? As long as your lipids have bonds, it will work. -
🍃 Leaflet-wise analysis
Performs scrambling-safe assignment of lipids to membrane leaflets using three different methods, and then calculates lipid order parameters for individual leaflets. -
🟠 Order parameters for vesicles
Dynamically calculates membrane normals based on the membrane's shape, enabling the calculation of order parameters for highly curved systems such as micelles, tubes, and vesicles. -
🗺️ Order parameter maps
Constructs 2D maps of order parameters, so you know what parts of the membrane are ordered and disordered. -
📉 Error estimation
Automatically estimates the error of the analysis and indicates how well your analysis has converged. -
🌍 Analysis of specific membrane regions
Dynamically selects lipids in a specified part of the membrane and calculates order parameters only for them. -
⚡ Extremely fast
Is extremely fast (see below) due to its ability to read only the necessary atoms from XTC files and its support for multithreading. -
📖 Extensive manual
Includes a comprehensive manual detailing how to use the program, along with its strengths and limitations.
Planned
- United-atom order parameters.
- Python API: using
gorder
as a Python library.
Validation
Atomistic order parameters
A CHARMM36m simulation of a membrane consisting of 256 lipids was used to validate the calculation of atomistic order parameters by the gorder
program. In total, the system contained ~64,500 atoms. The trajectory was 200 ns long and consisted of 10,000 frames. The following programs were used for validation:
We also present a comparison of the calculated order parameters with the results from gmx order
(version 2021.4). Note that gmx order
actually calculates united atom order parameters, so it is not suitable for atomistic systems. (However, many users still utilize it.)
All programs, except for gmx order
, produce the same results. Minor variations due to different calculation approaches are too small to be visible in the chart. gmx order
returns slightly different values (and no value for carbon #16) because it calculates united atom, not atomistic, order parameters.
Coarse-grained order parameters
A Martini 3 simulation of a membrane consisting of 512 POPC lipids was used to validate the calculation of CG order parameters by the gorder
program. In total, the system contained ~16,800 beads. The trajectory had a length of 1 μs and consisted of 10,000 frames. The following programs/libraries were used for validation:
All programs produce the same results. Minor variations due to the employed calculation approaches are too small to be visible in the chart.
Benchmarking
Atomistic order parameters
Run time of the analyses performed in the Validation section by various programs:
Benchmarks were conducted on Debian 12 with an 8-core Intel Core i7-10700 CPU and SK Hynix BC511 HFM512GDJTNI SSD. Benchmarking of gmx order
and gorder
was performed using hyperfine
. The NMR lipids
script and calc_op.tcl
were dramatically slower, so only approximate values obtained using GNU's time
are reported.
a Note that, unlike calc_op.tcl
and gmx order
, the OrderParameter.py
script provides information about the order of individual C-H bonds. gorder
also provides this information.
b Note that gmx order
calculates united atom order parameters, not atomistic order parameters. For saturated tails, this calculation is reasonably accurate; however, for unsaturated tails, it is very inaccurate [1]. Additionally, it is slower and more tedious to use than gorder
, so there is little justification for using it for atomistic systems.
Coarse-grained order parameters
Run time of the analyses performed in the Validation section by various programs:
Benchmarks were conducted on Debian 12 with with an 8-core Intel Core i7-10700 CPU and SK Hynix BC511 HFM512GDJTNI SSD. Benchmarking of order
and gorder
was performed using hyperfine
. do-order
and lipyphilic
were dramatically slower, so only an approximate value obtained using GNU's time
is reported.
a Note that the do-order
script is not able to calculate order parameters for individual leaflets in the same run. In contrast, both order
and gorder
were run with this capability enabled.
b Note that the lipyphilic
library is not able to calculate order parameters for the individual bonds simultaneously, requiring the analysis to be run multiple times. If you are only interested in average order parameters for one entire lipid tail, lipyphilic
is quite fast (though still slower than gorder
). Additionally, in this run, lipyphilic
calculated order parameters only for the entire membrane, not for individual leaflets. In contrast, both order
and gorder
were run with this capability enabled.
Rust API
gorder
is also available as a Rust crate. See the gorder manual and the corresponding docs.rs page for more information.
License
The command line tool and the crate are both released under the MIT License.
Limitations
gorder
does not fully support simulation boxes that are not orthogonal. You can still use them but it requires some additional effort.gorder
does not support TPR files generated with Gromacs older than version 5.1. But you can use PDB, GRO, or PQR file instead.gorder
is developed for Linux. While it should work on other operating systems, it is not guaranteed.
Dependencies
~24–34MB
~533K SLoC