provesid


Nameprovesid JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Python package for chemical identifier resolution and experimental property extraction
upload_time2025-08-26 08:41:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords chemistry cheminformatics pubchem chemical-identifiers api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PROVESID

[![Documentation Status](https://github.com/USEtox/PROVESID/actions/workflows/mkdocs-deploy.yml/badge.svg)](https://usetox.github.io/PROVESID/)
[![Tests](https://github.com/USEtox/PROVESID/actions/workflows/test.yml/badge.svg)](https://github.com/USEtox/PROVESID/actions/workflows/test.yml)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

PROVESID is a member of the family of PROVES packages that provides Pythonic access to online services of chemical identifiers and data. The goal is to have a clean interface to the most important online databases with a simple, intuitive (and documented), up-to-date, and extendable interface. We offer interfaces to [PubChem](https://pubchem.ncbi.nlm.nih.gov/), [NCI chemical identifier resolver](https://cactus.nci.nih.gov/chemical/structure), [CAS Common Chemistry](https://commonchemistry.cas.org/), [IUPAC OPSIN](https://www.ebi.ac.uk/opsin/), [ChEBI](https://www.ebi.ac.uk/chebi/beta/), and [ClassyFire](http://classyfire.wishartlab.com/). We highly recommend the new users to jump head-first into [examples folder](./examples/) and get started by playing with the code. We also keep documenting the old and new functionalities [here]().

# Examples

**PubChem**

```python
from provesid.pubchem import PubChemAPI
pc = PubChemAPI()
cids_aspirin = pc.get_cids_by_name('aspirin')
res_basic = pc.get_basic_compound_info(cids_aspirin[0])
```

which returns

```python
{
  "CID": 2244,
  "MolecularFormula": "C9H8O4",
  "MolecularWeight": "180.16",
  "SMILES": "CC(=O)OC1=CC=CC=C1C(=O)O",
  "InChI": "InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)",
  "InChIKey": "BSYNRYMUTXBXSQ-UHFFFAOYSA-N",
  "IUPACName": "2-acetyloxybenzoic acid",
  "success": true,
  "cid": 2244,
  "error": null
}
```

**PubChem View for data**

```python
from provesid import PubChemView, get_property_table
logp_table = get_property_table(cids_aspirin[0], "LogP")
logp_table
```

which returns a table with the reported values of `logP` for aspirin (including the references for each data point).

**Chemical Identifier Resolver**

```python
from provesid import NCIChemicalIdentifierResolver
resolver = NCIChemicalIdentifierResolver()
smiles = resolver.resolve(compound, 'smiles')
```

**OPSIN**

```python
from provesid import OPSIN
opsin = OPSIN()
methane_result = opsin.get_id("methane")
```

which returns:

```python
{'status': 'SUCCESS',
 'message': '',
 'inchi': 'InChI=1/CH4/h1H4',
 'stdinchi': 'InChI=1S/CH4/h1H4',
 'stdinchikey': 'VNWKTOKETHGBQD-UHFFFAOYSA-N',
 'smiles': 'C'}
 ```

**CAS Common Chemistry**

```python
from provesid import CASCommonChem
ccc = CASCommonChem()
water_info = ccc.cas_to_detail("7732-18-5")
print("Water (7732-18-5):")
print(f"  Name: {water_info.get('name')}")
print(f"  Molecular Formula: {water_info.get('molecularFormula')}")
print(f"  Molecular Mass: {water_info.get('molecularMass')}")
print(f"  SMILES: {water_info.get('smile')}")
print(f"  InChI: {water_info.get('inchi')}")
print(f"  Status: {water_info.get('status')}")
```

which returns

```
Water (7732-18-5):
  Name: Water
  Molecular Formula: H<sub>2</sub>O
  Molecular Mass: 18.02
  SMILES: O
  InChI: InChI=1S/H2O/h1H2
  Status: Success
```

**ClassyFire**

See the [tutorial notebook](./examples/ClassyFire/classyfire_tutorial.ipynb).

# Other tools

Several other Python (and other) packages and sample codes are available. We are inspired by them and tried to improve upon them based on our personal experiences working with chemical identifiers and data.  

  - [PubChemPy](https://github.com/mcs07/PubChemPy) and [docs](https://docs.pubchempy.org/en/latest/)  
  - [CIRpy](https://github.com/mcs07/CIRpy) and [docs](https://cirpy.readthedocs.io/en/latest/)  
  - [IUPAC cookbook](https://iupac.github.io/WFChemCookbook/intro.html) for a tutorial on using various web APIs.  
  - more?

# TODO list

We will provide Python interfaces to more online services, including:  

  - [ZeroPM](https://database.zeropm.eu/) even though there is no web API, the data is available on GitHub. I have written an interface that is not shared here since it can make this codebase too large, and I aim to keep it lean. We will find a way to share it.  
  - More? Please [open an issue](https://github.com/USEtox/PROVESID/issues) and let us know what else you would like to have included.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "provesid",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "chemistry, cheminformatics, pubchem, chemical-identifiers, api",
    "author": null,
    "author_email": "\"Ali A. Eftekhari and USEtox team\" <e.eftekhari@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/5d/44/48ff226abe73198e5a76e62dd53d6ee61e532bb41c239109c96402a35743/provesid-0.1.0.tar.gz",
    "platform": null,
    "description": "# PROVESID\n\n[![Documentation Status](https://github.com/USEtox/PROVESID/actions/workflows/mkdocs-deploy.yml/badge.svg)](https://usetox.github.io/PROVESID/)\n[![Tests](https://github.com/USEtox/PROVESID/actions/workflows/test.yml/badge.svg)](https://github.com/USEtox/PROVESID/actions/workflows/test.yml)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nPROVESID is a member of the family of PROVES packages that provides Pythonic access to online services of chemical identifiers and data. The goal is to have a clean interface to the most important online databases with a simple, intuitive (and documented), up-to-date, and extendable interface. We offer interfaces to [PubChem](https://pubchem.ncbi.nlm.nih.gov/), [NCI chemical identifier resolver](https://cactus.nci.nih.gov/chemical/structure), [CAS Common Chemistry](https://commonchemistry.cas.org/), [IUPAC OPSIN](https://www.ebi.ac.uk/opsin/), [ChEBI](https://www.ebi.ac.uk/chebi/beta/), and [ClassyFire](http://classyfire.wishartlab.com/). We highly recommend the new users to jump head-first into [examples folder](./examples/) and get started by playing with the code. We also keep documenting the old and new functionalities [here]().\n\n# Examples\n\n**PubChem**\n\n```python\nfrom provesid.pubchem import PubChemAPI\npc = PubChemAPI()\ncids_aspirin = pc.get_cids_by_name('aspirin')\nres_basic = pc.get_basic_compound_info(cids_aspirin[0])\n```\n\nwhich returns\n\n```python\n{\n  \"CID\": 2244,\n  \"MolecularFormula\": \"C9H8O4\",\n  \"MolecularWeight\": \"180.16\",\n  \"SMILES\": \"CC(=O)OC1=CC=CC=C1C(=O)O\",\n  \"InChI\": \"InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)\",\n  \"InChIKey\": \"BSYNRYMUTXBXSQ-UHFFFAOYSA-N\",\n  \"IUPACName\": \"2-acetyloxybenzoic acid\",\n  \"success\": true,\n  \"cid\": 2244,\n  \"error\": null\n}\n```\n\n**PubChem View for data**\n\n```python\nfrom provesid import PubChemView, get_property_table\nlogp_table = get_property_table(cids_aspirin[0], \"LogP\")\nlogp_table\n```\n\nwhich returns a table with the reported values of `logP` for aspirin (including the references for each data point).\n\n**Chemical Identifier Resolver**\n\n```python\nfrom provesid import NCIChemicalIdentifierResolver\nresolver = NCIChemicalIdentifierResolver()\nsmiles = resolver.resolve(compound, 'smiles')\n```\n\n**OPSIN**\n\n```python\nfrom provesid import OPSIN\nopsin = OPSIN()\nmethane_result = opsin.get_id(\"methane\")\n```\n\nwhich returns:\n\n```python\n{'status': 'SUCCESS',\n 'message': '',\n 'inchi': 'InChI=1/CH4/h1H4',\n 'stdinchi': 'InChI=1S/CH4/h1H4',\n 'stdinchikey': 'VNWKTOKETHGBQD-UHFFFAOYSA-N',\n 'smiles': 'C'}\n ```\n\n**CAS Common Chemistry**\n\n```python\nfrom provesid import CASCommonChem\nccc = CASCommonChem()\nwater_info = ccc.cas_to_detail(\"7732-18-5\")\nprint(\"Water (7732-18-5):\")\nprint(f\"  Name: {water_info.get('name')}\")\nprint(f\"  Molecular Formula: {water_info.get('molecularFormula')}\")\nprint(f\"  Molecular Mass: {water_info.get('molecularMass')}\")\nprint(f\"  SMILES: {water_info.get('smile')}\")\nprint(f\"  InChI: {water_info.get('inchi')}\")\nprint(f\"  Status: {water_info.get('status')}\")\n```\n\nwhich returns\n\n```\nWater (7732-18-5):\n  Name: Water\n  Molecular Formula: H<sub>2</sub>O\n  Molecular Mass: 18.02\n  SMILES: O\n  InChI: InChI=1S/H2O/h1H2\n  Status: Success\n```\n\n**ClassyFire**\n\nSee the [tutorial notebook](./examples/ClassyFire/classyfire_tutorial.ipynb).\n\n# Other tools\n\nSeveral other Python (and other) packages and sample codes are available. We are inspired by them and tried to improve upon them based on our personal experiences working with chemical identifiers and data.  \n\n  - [PubChemPy](https://github.com/mcs07/PubChemPy) and [docs](https://docs.pubchempy.org/en/latest/)  \n  - [CIRpy](https://github.com/mcs07/CIRpy) and [docs](https://cirpy.readthedocs.io/en/latest/)  \n  - [IUPAC cookbook](https://iupac.github.io/WFChemCookbook/intro.html) for a tutorial on using various web APIs.  \n  - more?\n\n# TODO list\n\nWe will provide Python interfaces to more online services, including:  \n\n  - [ZeroPM](https://database.zeropm.eu/) even though there is no web API, the data is available on GitHub. I have written an interface that is not shared here since it can make this codebase too large, and I aim to keep it lean. We will find a way to share it.  \n  - More? Please [open an issue](https://github.com/USEtox/PROVESID/issues) and let us know what else you would like to have included.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python package for chemical identifier resolution and experimental property extraction",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/USEtox/PROVESID/issues",
        "Documentation": "https://usetox.github.io/PROVESID/",
        "Homepage": "https://github.com/USEtox/PROVESID",
        "Repository": "https://github.com/USEtox/PROVESID"
    },
    "split_keywords": [
        "chemistry",
        " cheminformatics",
        " pubchem",
        " chemical-identifiers",
        " api"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b78c303ebcf8ff8f55ec52109b9a5534b18a5bfb44a29a5e0dab1025a2817118",
                "md5": "cae85fedb3a10e2b8f8ff76127344358",
                "sha256": "15a949982f286ecc8efbf76de56e72a6788c01bce7d0b0c1e873988da661782a"
            },
            "downloads": -1,
            "filename": "provesid-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cae85fedb3a10e2b8f8ff76127344358",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 49139,
            "upload_time": "2025-08-26T08:41:56",
            "upload_time_iso_8601": "2025-08-26T08:41:56.374430Z",
            "url": "https://files.pythonhosted.org/packages/b7/8c/303ebcf8ff8f55ec52109b9a5534b18a5bfb44a29a5e0dab1025a2817118/provesid-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d4448ff226abe73198e5a76e62dd53d6ee61e532bb41c239109c96402a35743",
                "md5": "e57c0bee7d3baf26466d8ddc7343309d",
                "sha256": "5c7f6040a87e7ef0c6369b4d622cd45b9b16cfd72929335d48a614ba1ceb3f5c"
            },
            "downloads": -1,
            "filename": "provesid-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e57c0bee7d3baf26466d8ddc7343309d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 70756,
            "upload_time": "2025-08-26T08:41:57",
            "upload_time_iso_8601": "2025-08-26T08:41:57.582408Z",
            "url": "https://files.pythonhosted.org/packages/5d/44/48ff226abe73198e5a76e62dd53d6ee61e532bb41c239109c96402a35743/provesid-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-26 08:41:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "USEtox",
    "github_project": "PROVESID",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "provesid"
}
        
Elapsed time: 0.54516s