[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
# Mold² Python wrapper
Python wrapper to ease the calculation of Mold2 molecular descriptors.
## Copyright notice
Mold2 is a product designed and produced by the National Center for Toxicological
Research (NCTR).<br/>FDA and NCTR retain ownership of this product.
Olivier J. M. Béquignon is **neither** the copyright holder of Mold2 **nor** responsible for it.
Only the Python wrapper is the work of Olivier J. M. Béquignon.
## Installation
From source:
git clone https://github.com/OlivierBeq/Mold2_pywrapper.git
pip install ./Mold2_pywrapper
with pip:
```bash
pip install mold2-pywrapper
```
### Get started
```python
from Mold2_pywrapper import Mold2
smiles_list = [
# erlotinib
"n1cnc(c2cc(c(cc12)OCCOC)OCCOC)Nc1cc(ccc1)C#C",
# midecamycin
"CCC(=O)O[C@@H]1CC(=O)O[C@@H](C/C=C/C=C/[C@@H]([C@@H](C[C@@H]([C@@H]([C@H]1OC)O[C@H]2[C@@H]([C@H]([C@@H]([C@H](O2)C)O[C@H]3C[C@@]([C@H]([C@@H](O3)C)OC(=O)CC)(C)O)N(C)C)O)CC=O)C)O)C",
# selenofolate
"C1=CC(=CC=C1C(=O)NC(CCC(=O)OCC[Se]C#N)C(=O)O)NCC2=CN=C3C(=N2)C(=O)NC(=N3)N",
# cisplatin
"N.N.Cl[Pt]Cl"
]
mols = [Chem.MolFromSmiles(smiles) for smiles in smiles_list]
mold2 = Mold2()
print(mold2.calculate(mols))
```
Instantiating a Mold2 object ensures that the executables for your platform are accessible.
If this is not the case, an attempt to download them from the
[website of the FDA](https://www.fda.gov/science-research/bioinformatics-tools/mold2) is made.
Should one have downloaded the original ZIP file available from the
[website of the FDA](https://www.fda.gov/science-research/bioinformatics-tools/mold2), the executables can be installed
using the following:
```python
path_to_zipfile = '...' # Replace by the path to the ZIP file on your machine
mold2 = Mold2.from_executable(path_to_zipfile)
print(mold2.calculate(mols))
```
Executables will be installed for future use. From then on, default instanciation may be carried out:
```python
mold2 = Mold2()
print(mold2.calculate(mols))
```
### Details about descriptors
Any detail about the 777 Mold2 descriptors can be obtained either for a single descriptor, by providing its index:
```python
print(mold2.descriptor_detail(15))
# rotatable bond fraction
```
Or for all at once:
```python
print(mold2.descriptor_details())
# {"D001": "number of 6-membered aromatic rings (only carbon atoms)",
# "D002": "number of 03-membered rings",
# ...
# }
```
## Documentation
```python
def calculate(mols, show_banner=True, njobs=1, chunksize=100):
```
Default method to calculate #### Parameters
- ***mols : Iterable[Chem.Mol]***
RDKit molecule objects for which to obtain Mold2 descriptors.
- ***show_banner : bool***
Displays default notice about Mold2 descriptors.
- ***njobs : int***
Maximum number of simultaneous processes.
- ***chunksize : int***
Maximum number of molecules each process is charged of.
- ***return_type : pd.DataFramce***
Pandas DataFrame containing Mold2 molecular descriptors.Mold2 descriptors.
If executables have not previously been downloaded, attempts to download and install them.
________________
```python
def descriptor_detail(index):
```
Obtain detils about one descriptor.
#### Parameters
- ***index : int***
Index of the descriptor.
- ***return_type : str***
Description of the descriptor.
________________
```python
def descriptor_details():
```
Obtain details about all descriptors.
#### Parameters
- ***return_type : dict***
Mapping of molecular descriptors with their details.
________________
```python
def from_executable(zipfile_path):
```
Install executables and instantiate a Mold2 calculator.
#### Parameters
- ***zipfile_path : str***
Path to the user-downloaded ZIP file containing Mold2 executables.
Raw data
{
"_id": null,
"home_page": "https://github.com/OlivierBeq/Mold2_pywrapper",
"name": "Mold2-pywrapper",
"maintainer": "Olivier J. M. B\u00e9quignon",
"docs_url": null,
"requires_python": null,
"maintainer_email": "\"olivier.bequignon.maintainer@gmail.com\"",
"keywords": "mold2, molecular descriptors, cheminformatics, toxicoinformatics, QSAR",
"author": "Olivier J. M. B\u00e9quignon",
"author_email": "\"olivier.bequignon.maintainer@gmail.com\"",
"download_url": "https://files.pythonhosted.org/packages/b4/cc/6f37f55252444a05ed74448728ddfe9e5147ddd9b6a050111017c54caedf/mold2_pywrapper-0.1.2.tar.gz",
"platform": null,
"description": "[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) \r\n\r\n# Mold\u00b2 Python wrapper\r\n\r\nPython wrapper to ease the calculation of Mold2 molecular descriptors.\r\n\r\n## Copyright notice\r\n\r\nMold2 is a product designed and produced by the National Center for Toxicological\r\nResearch (NCTR).<br/>FDA and NCTR retain ownership of this product.\r\n\r\nOlivier J. M. B\u00e9quignon is **neither** the copyright holder of Mold2 **nor** responsible for it.\r\n\r\nOnly the Python wrapper is the work of Olivier J. M. B\u00e9quignon.\r\n\r\n## Installation\r\n\r\nFrom source:\r\n\r\n git clone https://github.com/OlivierBeq/Mold2_pywrapper.git\r\n pip install ./Mold2_pywrapper\r\n\r\nwith pip:\r\n\r\n```bash\r\npip install mold2-pywrapper\r\n```\r\n\r\n### Get started\r\n\r\n```python\r\nfrom Mold2_pywrapper import Mold2\r\n\r\nsmiles_list = [\r\n # erlotinib\r\n \"n1cnc(c2cc(c(cc12)OCCOC)OCCOC)Nc1cc(ccc1)C#C\",\r\n # midecamycin\r\n \"CCC(=O)O[C@@H]1CC(=O)O[C@@H](C/C=C/C=C/[C@@H]([C@@H](C[C@@H]([C@@H]([C@H]1OC)O[C@H]2[C@@H]([C@H]([C@@H]([C@H](O2)C)O[C@H]3C[C@@]([C@H]([C@@H](O3)C)OC(=O)CC)(C)O)N(C)C)O)CC=O)C)O)C\",\r\n # selenofolate\r\n \"C1=CC(=CC=C1C(=O)NC(CCC(=O)OCC[Se]C#N)C(=O)O)NCC2=CN=C3C(=N2)C(=O)NC(=N3)N\",\r\n # cisplatin\r\n \"N.N.Cl[Pt]Cl\"\r\n]\r\nmols = [Chem.MolFromSmiles(smiles) for smiles in smiles_list]\r\n\r\nmold2 = Mold2()\r\nprint(mold2.calculate(mols))\r\n```\r\n\r\nInstantiating a Mold2 object ensures that the executables for your platform are accessible.\r\nIf this is not the case, an attempt to download them from the\r\n[website of the FDA](https://www.fda.gov/science-research/bioinformatics-tools/mold2) is made.\r\n\r\nShould one have downloaded the original ZIP file available from the\r\n[website of the FDA](https://www.fda.gov/science-research/bioinformatics-tools/mold2), the executables can be installed\r\nusing the following:\r\n\r\n```python\r\npath_to_zipfile = '...' # Replace by the path to the ZIP file on your machine\r\nmold2 = Mold2.from_executable(path_to_zipfile)\r\nprint(mold2.calculate(mols))\r\n```\r\n\r\nExecutables will be installed for future use. From then on, default instanciation may be carried out:\r\n\r\n```python\r\nmold2 = Mold2()\r\nprint(mold2.calculate(mols))\r\n```\r\n\r\n### Details about descriptors\r\n\r\nAny detail about the 777 Mold2 descriptors can be obtained either for a single descriptor, by providing its index:\r\n\r\n```python\r\nprint(mold2.descriptor_detail(15))\r\n# rotatable bond fraction\r\n```\r\n\r\nOr for all at once:\r\n\r\n```python\r\nprint(mold2.descriptor_details())\r\n# {\"D001\": \"number of 6-membered aromatic rings (only carbon atoms)\",\r\n# \"D002\": \"number of 03-membered rings\",\r\n# ...\r\n# }\r\n```\r\n\r\n## Documentation\r\n\r\n```python\r\ndef calculate(mols, show_banner=True, njobs=1, chunksize=100):\r\n```\r\n\r\nDefault method to calculate #### Parameters\r\n\r\n- ***mols : Iterable[Chem.Mol]*** \r\n RDKit molecule objects for which to obtain Mold2 descriptors.\r\n- ***show_banner : bool*** \r\n Displays default notice about Mold2 descriptors.\r\n- ***njobs : int*** \r\n Maximum number of simultaneous processes.\r\n- ***chunksize : int*** \r\n Maximum number of molecules each process is charged of.\r\n- ***return_type : pd.DataFramce*** \r\n Pandas DataFrame containing Mold2 molecular descriptors.Mold2 descriptors.\r\n If executables have not previously been downloaded, attempts to download and install them.\r\n\r\n________________\r\n\r\n```python\r\ndef descriptor_detail(index):\r\n```\r\n\r\nObtain detils about one descriptor.\r\n\r\n#### Parameters\r\n\r\n- ***index : int*** \r\n Index of the descriptor.\r\n- ***return_type : str*** \r\n Description of the descriptor.\r\n\r\n________________\r\n\r\n```python\r\ndef descriptor_details():\r\n```\r\n\r\nObtain details about all descriptors.\r\n\r\n#### Parameters\r\n\r\n- ***return_type : dict*** \r\n Mapping of molecular descriptors with their details.\r\n\r\n________________\r\n\r\n```python\r\ndef from_executable(zipfile_path):\r\n```\r\n\r\nInstall executables and instantiate a Mold2 calculator.\r\n\r\n#### Parameters\r\n\r\n- ***zipfile_path : str*** \r\n Path to the user-downloaded ZIP file containing Mold2 executables.\r\n\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Python wrapper for Mold2 descriptors",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/OlivierBeq/Mold2_pywrapper"
},
"split_keywords": [
"mold2",
" molecular descriptors",
" cheminformatics",
" toxicoinformatics",
" qsar"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "464179bef16bbb827c19ec0e88e1ddd891247f11d786c03727b1e039d345a9a8",
"md5": "ea5100cdbc829c56994af625284b4c83",
"sha256": "c901a9db46074714ccaae7c39282a564bfbe387bb3c1443609d1d34efea4d38f"
},
"downloads": -1,
"filename": "Mold2_pywrapper-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ea5100cdbc829c56994af625284b4c83",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 16472,
"upload_time": "2024-11-06T07:24:00",
"upload_time_iso_8601": "2024-11-06T07:24:00.430608Z",
"url": "https://files.pythonhosted.org/packages/46/41/79bef16bbb827c19ec0e88e1ddd891247f11d786c03727b1e039d345a9a8/Mold2_pywrapper-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4cc6f37f55252444a05ed74448728ddfe9e5147ddd9b6a050111017c54caedf",
"md5": "3f8e886a772161440b623d2a0619094a",
"sha256": "7dadf3ac70cb619d59ff0d1060676286a51ce7bdb6791f074156fba854716446"
},
"downloads": -1,
"filename": "mold2_pywrapper-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "3f8e886a772161440b623d2a0619094a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17986,
"upload_time": "2024-11-06T07:24:01",
"upload_time_iso_8601": "2024-11-06T07:24:01.875410Z",
"url": "https://files.pythonhosted.org/packages/b4/cc/6f37f55252444a05ed74448728ddfe9e5147ddd9b6a050111017c54caedf/mold2_pywrapper-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-06 07:24:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OlivierBeq",
"github_project": "Mold2_pywrapper",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "mold2-pywrapper"
}