Specifying membrane normal
gorder supports three types of membrane normal specification:
static- the membrane normal is provided by the user and applied to all lipid molecules throughout the entire analysis (the default membrane normal is z-axis),dynamic- the membrane normal is calculated for each lipid molecule in each trajectory frame based on the membrane’s shape, andindividual- the membrane normal for each lipid molecule corresponds to the orientation of the lipid in the given trajectory frame.
For planar membranes, the default static membrane normal (z-axis) is usually sufficient. However, for vesicles, you should always use dynamic membrane normal calculation. The individual membrane normal calculation method is useful when analyzing highly ordered lipid membranes with uniformly tilted lipids. Keep in mind that computing the membrane normal dynamically may be computationally expensive.
For complete control over membrane normals, you can also manually assign them for each molecule in every trajectory frame. For more details, refer to Manual membrane normals.
Static membrane normal
By default, gorder assumes the membrane normal is oriented along the z-axis, meaning the membrane is built in the xy-plane. If your membrane is oriented differently, you can manually specify the membrane normal in the configuration YAML file:
membrane_normal: x
In this example, the membrane normal is oriented along the x-axis, which means that the membrane is built in the yz-plane.
Note
Only the primary axes of an orthogonal simulation box (
x,y, andz) are supported as static membrane normals.
Dynamic membrane normal
If your membrane is non-planar, or if you want to use the actual membrane normal instead of an idealized direction, you can enable dynamic membrane normal calculation. In this case, you must specify the selection of ‘head identifier’ atoms (similar to when assigning lipids to leaflets):
membrane_normal: !Dynamic
heads: "name P"
These ‘head identifiers’ are used to estimate the membrane surface and calculate the membrane normal for each lipid molecule. For consistency with leaflet classification, each analyzed lipid molecule must have exactly one head identifier; otherwise, an error will be raised.
The membrane normal is estimated for each lipid molecule in every frame. This is done by collecting the positions of ‘head identifiers’ located within a sphere around the molecule’s own head identifier and performing principal component analysis (PCA) on these positions. The last principal component (the direction with the least variation in atom positions) is then used as the membrane normal.
By default, the radius of the ‘scanning sphere’ is 2 nm, but you can adjust it in the input file:
membrane_normal: !Dynamic
heads: "name P"
radius: 1.5
The ‘scanning sphere’ must meet several requirements:
- It must be large enough to include a sufficient number of lipid heads for reasonable principal component analysis.
- It must be small enough to capture local membrane curvature correctly.
- Most importantly, it must be small enough to avoid including head identifiers from the opposite membrane leaflet, as this would distort the calculated membrane normal.
As a general rule of thumb, set the radius to approximately half of the membrane thickness.
Individual membrane normal
In gel-phase membranes, the individual lipids may be highly ordered but also tilted relative to the membrane normal. When calculating order parameters using the membrane normal as the reference axis, the membrane may appear to be disordered, and some expected behaviors of the order parameters — e.g., temperature dependence — may not be properly reproduced. In such cases, it may be suitable to use the lipid orientation itself (so called “lipid director”) as the reference axis.
To request individual membrane normal calculation, you must specify the selection of ‘head identifier’ atoms and ‘tail ends’ (similar to when assigning lipids to leaflets using the individual method):
membrane_normal: !Individual
heads: "name P"
methyls: "name C218 C316"
There must always be one ‘head identifier’ per lipid molecule and one ‘tail end’ per acyl chain. The “membrane normal” is then calculated for each lipid molecule in each frame as the average of the vectors connecting each of the methyls with the head identifier.
Important
When not to use the individual membrane normals
It is not recommended to use the individual membrane normals for disordered membranes because the wobbling of the lipids in the membrane strongly contributes to the order parameter values. Using the individual membrane normal removes this contribution, and the membrane may appear to be more ordered than it really is.
In contrast, if the contribution from lipid wobbling is small, such as in highly ordered membranes where the lipids are uniformly tilted, removing this contribution will usually have a minor effect and may in fact restore some expected behavior of the order parameters.
Limitations of dynamic and individual membrane normal calculations
When using dynamic or individual membrane normal calculations, you should be aware of some limitations:
-
Ignoring periodic boundary conditions
When ignoring periodic boundary conditions, dynamically calculated membrane normals for lipids located near the edges (and especially at the corners) of the simulation box might not be calculated accurately. This occurs because, without PBC, not all nearby lipid heads are included in the surface estimation. If periodic boundary conditions are considered (which is the default), this issue does not occur. -
Assigning lipids to leaflets
Most methods for classifying lipids into leaflets use the membrane normal to determine what is ‘up’ and what is ‘down’ in the membrane. However, due to technical limitations, these methods cannot use dynamically or individually calculated membrane normals and always require a static membrane normal. You can specify this manually, for example:leaflets: !Global membrane: "@membrane" heads: "name P" membrane_normal: zThis membrane normal definition is used only when assigning lipids into leaflets. If you are working with a (reasonably) planar membrane, the membrane normal for leaflet classification does not need to be precise, so this approach is perfectly fine, even if you are otherwise working with dynamically calculated membrane normals. However, if you are working with a vesicle, you should use the spherical clustering method which does not use membrane normals.
-
Constructing ordermaps
When constructing ordermaps, the plane in which an ordermap is generated is determined by the provided membrane normal. Since ordermaps can only be constructed in thexy,xz, oryzplane, they also require a static membrane normal (z,y, orx). If you are calculating the membrane normal dynamically or individually and also want to construct ordermaps, you must specify the ordermap plane manually:ordermaps: output_directory: "ordermaps" plane: xy