# Align Molecule
Align a molecule using [Kabsch algorithm](https://en.wikipedia.org/wiki/Kabsch_algorithm).
## Description
This extension for [OVITO](https://www.ovito.org) aligns atoms across different snapshots in a trajectory using the [Kabsch algorithm](https://en.wikipedia.org/wiki/Kabsch_algorithm), allowing only rotational adjustments without any stretching or shearing.
Users can select either all atoms or a subset as the reference for alignment. Optionally, a reference frame can be specified, defaulting to the first frame of the trajectory. This frame serves as the baseline orientation for the atoms, with their [centroid](https://en.wikipedia.org/wiki/Centroid) repositioned to the origin.
### Requirements
This modifier requires unique identifiers for each atom. If these are not available the modifier assumes a consistent atom ordering throughout the trajectory.
It's crucial to provide an unwrapped trajectory to ensure accurate behavior. If your trajectory is wrapped, use the [unwrap trajectories modifier](https://www.ovito.org/docs/current/reference/pipelines/modifiers/unwrap_trajectories.html) before applying this modifier. The behavior with wrapped trajectories is unpredictable.
When operating on a subset of atoms, ensure the selection remains consistent throughout the trajectory. Utilize the [freeze property](https://www.ovito.org/docs/current/reference/pipelines/modifiers/freeze_property.html#particles-modifiers-freeze-property) modifier to maintain a consistent selection, or the modifier's output may be undefined.
### Output
The modifier calculates the root mean square deviation (RMSD) of atomic coordinates post-alignment relative to the reference frame. The RMSD for selected atoms is recorded in the `MoleculeAlign.RMSD` [global attribute](https://www.ovito.org/docs/current/reference/data_inspector/attributes.html). The RMSD for all atoms is available in the `MoleculeAlign.RMSD_all` attribute.
Additionally, it provides an RMSD value for each atom.
## Parameters
| GUI name | Python name | Description | Default Value |
|---------------------------------|-------------------|------------------------------------------------------------------|---------------|
| **Use only selected particles** | `only_selected` | Allows alignment using only selected particles as the reference. | `True` |
| **Reference frame** | `reference_frame` | Specifies the frame to use as the reference for alignment. | `0` |
## Example
Here's an example illustrating how the modifier aligns the highlighted (green) atoms throughout the trajectory.
![Example image showing the molecule alignment](examples/Example_01.png)
![Example video showing the molecule alignment](examples/Example_01.gif)
## Installation
### pip
- OVITO Pro [integrated Python interpreter](https://docs.ovito.org/python/introduction/installation.html#ovito-pro-integrated-interpreter):
```
ovitos -m pip install --user ovitocontrib-AlignMolecule
```
The `--user` option is recommended and [installs the package in the user's site directory](https://pip.pypa.io/en/stable/user_guide/#user-installs).
- Other Python interpreters or Conda environments:
```
pip install ovitocontrib-AlignMolecule
```
### GitHub
- OVITO Pro [integrated Python interpreter](https://docs.ovito.org/python/introduction/installation.html#ovito-pro-integrated-interpreter):
```
ovitos -m pip install --user git+https://github.com/ovito-org/AlignMolecule.git
```
The `--user` option is recommended and [installs the package in the user's site directory](https://pip.pypa.io/en/stable/user_guide/#user-installs).
- Other Python interpreters or Conda environments:
```
pip install git+https://github.com/ovito-org/AlignMolecule.git
```
## Technical information / dependencies
- Tested on OVITO version 3.10.3
## Contact
Daniel Utt (utt@ovito.org)
Raw data
{
"_id": null,
"home_page": null,
"name": "ovitocontrib-AlignMolecule",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Daniel Utt <utt@ovito.org>",
"keywords": "ovito, ovito-extension",
"author": null,
"author_email": "Daniel Utt <utt@ovito.org>",
"download_url": "https://files.pythonhosted.org/packages/23/ab/8673603e76c4e3e30c050d6473e8481039306b25936147cc433f2222c3b7/ovitocontrib_alignmolecule-2024.5.tar.gz",
"platform": null,
"description": "# Align Molecule\n\nAlign a molecule using [Kabsch algorithm](https://en.wikipedia.org/wiki/Kabsch_algorithm).\n\n## Description\n\nThis extension for [OVITO](https://www.ovito.org) aligns atoms across different snapshots in a trajectory using the [Kabsch algorithm](https://en.wikipedia.org/wiki/Kabsch_algorithm), allowing only rotational adjustments without any stretching or shearing.\n\nUsers can select either all atoms or a subset as the reference for alignment. Optionally, a reference frame can be specified, defaulting to the first frame of the trajectory. This frame serves as the baseline orientation for the atoms, with their [centroid](https://en.wikipedia.org/wiki/Centroid) repositioned to the origin.\n\n### Requirements\n\nThis modifier requires unique identifiers for each atom. If these are not available the modifier assumes a consistent atom ordering throughout the trajectory.\n\nIt's crucial to provide an unwrapped trajectory to ensure accurate behavior. If your trajectory is wrapped, use the [unwrap trajectories modifier](https://www.ovito.org/docs/current/reference/pipelines/modifiers/unwrap_trajectories.html) before applying this modifier. The behavior with wrapped trajectories is unpredictable.\n\nWhen operating on a subset of atoms, ensure the selection remains consistent throughout the trajectory. Utilize the [freeze property](https://www.ovito.org/docs/current/reference/pipelines/modifiers/freeze_property.html#particles-modifiers-freeze-property) modifier to maintain a consistent selection, or the modifier's output may be undefined.\n\n### Output\n\nThe modifier calculates the root mean square deviation (RMSD) of atomic coordinates post-alignment relative to the reference frame. The RMSD for selected atoms is recorded in the `MoleculeAlign.RMSD` [global attribute](https://www.ovito.org/docs/current/reference/data_inspector/attributes.html). The RMSD for all atoms is available in the `MoleculeAlign.RMSD_all` attribute.\n\nAdditionally, it provides an RMSD value for each atom.\n\n## Parameters\n\n| GUI name | Python name | Description | Default Value |\n|---------------------------------|-------------------|------------------------------------------------------------------|---------------|\n| **Use only selected particles** | `only_selected` | Allows alignment using only selected particles as the reference. | `True` |\n| **Reference frame** | `reference_frame` | Specifies the frame to use as the reference for alignment. | `0` |\n\n## Example\n\nHere's an example illustrating how the modifier aligns the highlighted (green) atoms throughout the trajectory.\n\n![Example image showing the molecule alignment](examples/Example_01.png)\n\n![Example video showing the molecule alignment](examples/Example_01.gif)\n\n## Installation\n\n### pip\n\n- OVITO Pro [integrated Python interpreter](https://docs.ovito.org/python/introduction/installation.html#ovito-pro-integrated-interpreter):\n ```\n ovitos -m pip install --user ovitocontrib-AlignMolecule\n ``` \n The `--user` option is recommended and [installs the package in the user's site directory](https://pip.pypa.io/en/stable/user_guide/#user-installs).\n\n- Other Python interpreters or Conda environments:\n ```\n pip install ovitocontrib-AlignMolecule\n ```\n\n### GitHub\n- OVITO Pro [integrated Python interpreter](https://docs.ovito.org/python/introduction/installation.html#ovito-pro-integrated-interpreter):\n ```\n ovitos -m pip install --user git+https://github.com/ovito-org/AlignMolecule.git\n ``` \n The `--user` option is recommended and [installs the package in the user's site directory](https://pip.pypa.io/en/stable/user_guide/#user-installs).\n\n- Other Python interpreters or Conda environments:\n ```\n pip install git+https://github.com/ovito-org/AlignMolecule.git\n ```\n\n## Technical information / dependencies\n- Tested on OVITO version 3.10.3\n\n## Contact\nDaniel Utt (utt@ovito.org)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Align molecules using the Kabsch algorithm.",
"version": "2024.5",
"project_urls": {
"repository": "https://github.com/ovito-org/AlignMolecule"
},
"split_keywords": [
"ovito",
" ovito-extension"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4469c927330e38c54c627947e810e9ddb12e9f97ab1841f8b67ff28941315de3",
"md5": "4e43266f2a8d9a20b0d0f50a0135123e",
"sha256": "cf06483f94589eb8fbc323778da02975fac3841cb4240df1a13a1ac8f07bb420"
},
"downloads": -1,
"filename": "ovitocontrib_AlignMolecule-2024.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e43266f2a8d9a20b0d0f50a0135123e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 5263,
"upload_time": "2024-12-12T00:05:06",
"upload_time_iso_8601": "2024-12-12T00:05:06.529439Z",
"url": "https://files.pythonhosted.org/packages/44/69/c927330e38c54c627947e810e9ddb12e9f97ab1841f8b67ff28941315de3/ovitocontrib_AlignMolecule-2024.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "23ab8673603e76c4e3e30c050d6473e8481039306b25936147cc433f2222c3b7",
"md5": "3f969dc08d08d915cdb8f26b6bfcdced",
"sha256": "98b1c4e7fb3b1cad9c5ea204a08fdebe5bac1be33c669853878303a5a618c9e2"
},
"downloads": -1,
"filename": "ovitocontrib_alignmolecule-2024.5.tar.gz",
"has_sig": false,
"md5_digest": "3f969dc08d08d915cdb8f26b6bfcdced",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 6010,
"upload_time": "2024-12-12T00:05:10",
"upload_time_iso_8601": "2024-12-12T00:05:10.905881Z",
"url": "https://files.pythonhosted.org/packages/23/ab/8673603e76c4e3e30c050d6473e8481039306b25936147cc433f2222c3b7/ovitocontrib_alignmolecule-2024.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-12 00:05:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ovito-org",
"github_project": "AlignMolecule",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ovitocontrib-alignmolecule"
}