| Name | PUCHIK JSON |
| Version |
1.1.2
JSON |
| download |
| home_page | https://github.com/hrachishkhanyan/grid_project |
| Summary | Python Utility for Characterizing Heterogeneous Interfaces and Kinetics creates a grid from an molecular dynamics structure file. The system in question can have an arbitrary structure. Volume and species densities can then calculated. |
| upload_time | 2024-08-19 10:45:21 |
| maintainer | None |
| docs_url | None |
| author | H. Ishkhanyan |
| requires_python | >=3.10 |
| license | MIT License Copyright (c) 2024 Hrachya Ishkhanyan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# PUCHIK
## Overview
Python Utility for Characterizing Heterogeneous Interfaces and Kinetics (PUCHIK), is a tool for analyzing molecular dynamics trajectories. It allows constructing an interface between two phases, enabling to calculate intrinsic density profiles, volumes, etc.
The interface construction works for spherical and rod-like nanoparticles equally well, making it a great tool to work with nanoparticles of almost every shape.
This package is built on top of [MDAnalysis](https://www.mdanalysis.org/), [SciPy](https://scipy.org/), [NumPy](https://numpy.org/doc/stable/index.html) and [PyGEL3D](https://pypi.org/project/PyGEL3D/) libraries.

## Installation
You can install the PUCHIK package using pip:
```
pip install PUCHIK
```
## Usage
The main class in this package is the "Interface" class. To set up a mesh, import it from PUCHIK:
```python
from PUCHIK import Interface
```
You should provide it with a topology and optionally a trajectory files. PUCHIK uses MDAnalysis Readers to open a trajectory. You can find the supported formats [here](https://docs.mdanalysis.org/stable/documentation_pages/coordinates/init.html).
```python
trj = '<path_to_trajectory>'
top = '<path_to_topology>'
m = Interface(trj, top)
```
Lastly, select the atom groups you want to consider, atom groups that comprise the interface, and run the **calculate_density** method:
```python
m.select_atoms('all') # Consider every atom in the system
m.select_structure('<selection>') # resname of the nanoparticle
density_selection = 'resname TIP3'
m.calculate_density(density_selection)
```
Note that **calculate_density** uses every CPU core. You can specify the number of cores you want to use with the keyword argument **cpu_count**.
A more customized usage of the **calculate_density** method can be:
```python
distances, densities = m.calculate_density(density_selection, start=10, end=1000, skip=2, norm_bin_count=12)
```
This version will start the calculation at the 10th frame and finish it at frame 1000 considering every 2nd frame. **norm_bin_count** specifies the number of divisions of the simulation box in each dimension to create a grid.
An example figure which shows the number density of different residues relative to the distance to the interface of a sodium oleate micelle:

### Solubilized molecule count
PUCHIK also offers functionality for calculating the number of solubilized small molecules within a nanoparticle. This can be accomplished using the **mol_count** method. The signature of this method is identical to that of the **calculate_density** method. Here is an example usage:
```python
sol = m.mol_count('resname TIP3 and type O', start=0, end=500)
```
### Volume and area
As a direct consequence of using a convex hull, the volume of the hull can be easily extracted. The **calculate_volume** method does just that:
```python
v = m.calculate_volume(start=500, end=1000, skip=2)
```
*area* keyword argument can be set to True to return the area of the hull as well:
```python
v, a = m.calculate_volume(area=True, start=500, end=1000, skip=2)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hrachishkhanyan/grid_project",
"name": "PUCHIK",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "H. Ishkhanyan",
"author_email": "Hrachya Ishkhanyan <hrachya.ishkhanyan@kcl.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/6a/f0/102d5f7be8b167f4148695d34eb2841c0693bc7f17daa8fe0e6f5587803b/puchik-1.1.2.tar.gz",
"platform": null,
"description": "# PUCHIK\r\n\r\n## Overview\r\nPython Utility for Characterizing Heterogeneous Interfaces and Kinetics (PUCHIK), is a tool for analyzing molecular dynamics trajectories. It allows constructing an interface between two phases, enabling to calculate intrinsic density profiles, volumes, etc.\r\n\r\nThe interface construction works for spherical and rod-like nanoparticles equally well, making it a great tool to work with nanoparticles of almost every shape. \r\n\r\nThis package is built on top of [MDAnalysis](https://www.mdanalysis.org/), [SciPy](https://scipy.org/), [NumPy](https://numpy.org/doc/stable/index.html) and [PyGEL3D](https://pypi.org/project/PyGEL3D/) libraries.\r\n\r\n\r\n\r\n## Installation\r\n\r\nYou can install the PUCHIK package using pip:\r\n\r\n```\r\npip install PUCHIK\r\n```\r\n\r\n## Usage\r\n\r\nThe main class in this package is the \"Interface\" class. To set up a mesh, import it from PUCHIK:\r\n\r\n```python\r\nfrom PUCHIK import Interface\r\n```\r\n\r\nYou should provide it with a topology and optionally a trajectory files. PUCHIK uses MDAnalysis Readers to open a trajectory. You can find the supported formats [here](https://docs.mdanalysis.org/stable/documentation_pages/coordinates/init.html).\r\n\r\n```python\r\ntrj = '<path_to_trajectory>'\r\ntop = '<path_to_topology>'\r\nm = Interface(trj, top)\r\n```\r\n\r\nLastly, select the atom groups you want to consider, atom groups that comprise the interface, and run the **calculate_density** method:\r\n\r\n```python\r\nm.select_atoms('all') # Consider every atom in the system\r\nm.select_structure('<selection>') # resname of the nanoparticle\r\n\r\ndensity_selection = 'resname TIP3'\r\nm.calculate_density(density_selection)\r\n```\r\n\r\nNote that **calculate_density** uses every CPU core. You can specify the number of cores you want to use with the keyword argument **cpu_count**.\r\n\r\nA more customized usage of the **calculate_density** method can be:\r\n\r\n```python\r\ndistances, densities = m.calculate_density(density_selection, start=10, end=1000, skip=2, norm_bin_count=12)\r\n```\r\n\r\nThis version will start the calculation at the 10th frame and finish it at frame 1000 considering every 2nd frame. **norm_bin_count** specifies the number of divisions of the simulation box in each dimension to create a grid.\r\n\r\nAn example figure which shows the number density of different residues relative to the distance to the interface of a sodium oleate micelle:\r\n\r\n\r\n\r\n### Solubilized molecule count\r\n\r\nPUCHIK also offers functionality for calculating the number of solubilized small molecules within a nanoparticle. This can be accomplished using the **mol_count** method. The signature of this method is identical to that of the **calculate_density** method. Here is an example usage:\r\n```python\r\nsol = m.mol_count('resname TIP3 and type O', start=0, end=500)\r\n```\r\n\r\n### Volume and area\r\n As a direct consequence of using a convex hull, the volume of the hull can be easily extracted. The **calculate_volume** method does just that:\r\n \r\n```python\r\nv = m.calculate_volume(start=500, end=1000, skip=2)\r\n```\r\n\r\n*area* keyword argument can be set to True to return the area of the hull as well:\r\n```python\r\nv, a = m.calculate_volume(area=True, start=500, end=1000, skip=2)\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2024 Hrachya Ishkhanyan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "Python Utility for Characterizing Heterogeneous Interfaces and Kinetics creates a grid from an molecular dynamics structure file. The system in question can have an arbitrary structure. Volume and species densities can then calculated.",
"version": "1.1.2",
"project_urls": {
"Bug Tracker": "https://github.com/hrachishkhanyan/grid_project/issues",
"Homepage": "https://github.com/hrachishkhanyan/grid_project"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cf4c0bd2c0ead79cc87f65f1764526720551c3e2542c1cd4cdfc18d3cc0cfc07",
"md5": "527606d1689fc873903d3dc8f0d2c143",
"sha256": "dd7f31c34e39a6b767114634fa35ab83de2011ce774cb061c2765087ec233352"
},
"downloads": -1,
"filename": "PUCHIK-1.1.2-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "527606d1689fc873903d3dc8f0d2c143",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 182672,
"upload_time": "2024-08-19T10:45:20",
"upload_time_iso_8601": "2024-08-19T10:45:20.085718Z",
"url": "https://files.pythonhosted.org/packages/cf/4c/0bd2c0ead79cc87f65f1764526720551c3e2542c1cd4cdfc18d3cc0cfc07/PUCHIK-1.1.2-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6af0102d5f7be8b167f4148695d34eb2841c0693bc7f17daa8fe0e6f5587803b",
"md5": "871a28cbec3904ff19556cff45904abf",
"sha256": "466816f1553014ddf5cc6b7c3bf279aa3c34fecb6b8d8a3d384f85567ff1a86c"
},
"downloads": -1,
"filename": "puchik-1.1.2.tar.gz",
"has_sig": false,
"md5_digest": "871a28cbec3904ff19556cff45904abf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 180406,
"upload_time": "2024-08-19T10:45:21",
"upload_time_iso_8601": "2024-08-19T10:45:21.441677Z",
"url": "https://files.pythonhosted.org/packages/6a/f0/102d5f7be8b167f4148695d34eb2841c0693bc7f17daa8fe0e6f5587803b/puchik-1.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-19 10:45:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hrachishkhanyan",
"github_project": "grid_project",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "puchik"
}