{"id":33175308,"url":"https://github.com/HzaCode/ChemInformant","last_synced_at":"2025-11-20T20:02:35.679Z","repository":{"id":221099863,"uuid":"746210668","full_name":"HzaCode/ChemInformant","owner":"HzaCode","description":"⚗️ An all-in-one solution for chemical property retrieval from PubChem.","archived":false,"fork":false,"pushed_at":"2025-10-15T03:33:37.000Z","size":12650,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-26T17:14:05.240Z","etag":null,"topics":["api-client","batch-processing","caching","cas","cheminformatics","chemistry","cli","compound-search","data-validation","dataframe","drug-discovery","iupac","molecular-descriptors","molecular-weight","pandas","pubchem","python","rest-api","smiles","sql"],"latest_commit_sha":null,"homepage":"https://hezhiang.com/cheminformant_real.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HzaCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-21T12:03:01.000Z","updated_at":"2025-10-25T06:48:19.000Z","dependencies_parsed_at":"2025-03-23T16:20:03.666Z","dependency_job_id":"d806ec9e-9d94-42f9-9a42-e3ee94e15303","html_url":"https://github.com/HzaCode/ChemInformant","commit_stats":null,"previous_names":["hzacode/pubchem"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/HzaCode/ChemInformant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HzaCode%2FChemInformant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HzaCode%2FChemInformant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HzaCode%2FChemInformant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HzaCode%2FChemInformant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HzaCode","download_url":"https://codeload.github.com/HzaCode/ChemInformant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HzaCode%2FChemInformant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285503668,"owners_count":27182913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","batch-processing","caching","cas","cheminformatics","chemistry","cli","compound-search","data-validation","dataframe","drug-discovery","iupac","molecular-descriptors","molecular-weight","pandas","pubchem","python","rest-api","smiles","sql"],"created_at":"2025-11-16T02:00:37.344Z","updated_at":"2025-11-20T20:02:35.660Z","avatar_url":"https://github.com/HzaCode.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/HzaCode/ChemInformant/main/images/logo.png\" width=\"200px\" /\u003e\n\n# ChemInformant\n\n*A Robust Data Acquisition Engine for the Modern Scientific Workflow*\n\n\u003c!--\nSEO_KEYWORDS: PubChem API Python client, chemical database access, molecular property retrieval, cheminformatics library, drug discovery tools, QSAR modeling, high-throughput screening, compound database, chemical informatics, computational chemistry, molecular descriptors, batch processing, chemical data pipeline\n--\u003e\n\n\u003cbr\u003e\n\n[![Total Downloads](https://img.shields.io/pepy/dt/cheminformant?style=for-the-badge\u0026color=306998\u0026label=Downloads\u0026logo=python)](https://pepy.tech/project/cheminformant)\n\n\u003ca href=\"https://doi.org/10.21105/joss.08341\"\u003e\n    \u003cimg src=\"https://joss.theoj.org/papers/10.21105/joss.08341/status.svg\" alt=\"JOSS Journal Publication DOI 10.21105/joss.08341\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/pyOpenSci/software-review/issues/254\"\u003e\n    \u003cimg src=\"https://pyopensci.org/badges/peer-reviewed.svg\" alt=\"pyOpenSci Peer-Reviewed\"\u003e\u003cimg src=\"https://img.shields.io/badge/丨First%20JOSS%20Track-32CD32?style=flat\" alt=\"First JOSS Track\"\u003e\n\u003c/a\u003e\n\u003cp\u003e\n    \u003ca href=\"https://pypi.org/project/ChemInformant/\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/v/ChemInformant.svg\" alt=\"PyPI version\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/ChemInformant/\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/python-%3E%3D3.9-blue.svg\" alt=\"Python Version\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/HzaCode/ChemInformant/blob/main/LICENSE.md\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/l/ChemInformant.svg\" alt=\"License\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/HzaCode/ChemInformant/actions/workflows/tests.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HzaCode/ChemInformant/tests.yml?label=Tests\" alt=\"Tests Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/HzaCode/ChemInformant/actions/workflows/docs-deploy.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HzaCode/ChemInformant/docs-deploy.yml?label=Docs\" alt=\"Docs Build Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://cdn.jsdelivr.net/gh/HzaCode/ChemInformant@gh-pages/coverage.svg\"\u003e\n        \u003cimg src=\"https://cdn.jsdelivr.net/gh/HzaCode/ChemInformant@gh-pages/coverage.svg\" alt=\"Code Coverage Test Results\"\u003e\n    \u003c/a\u003e\n    \u003c!--\n    \u003ca href=\"https://github.com/astral-sh/ruff\"\u003e\n        \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" alt=\"Ruff\"\u003e\n    \u003c/a\u003e\n    --\u003e\n    \u003ca href=\"https://app.codacy.com/gh/HzaCode/ChemInformant/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade\"\u003e\n        \u003cimg src=\"https://app.codacy.com/project/badge/Grade/ba35e3e2f5224858bcaeb8f9c4ee2838\" alt=\"Codacy Badge\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/lmmentel/awesome-python-chemistry#database-wrappers\"\u003e\n       \u003cimg src=\"https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg\" alt=\"Awesome Python Chemistry\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n\n\n\n---\n\n\u003c!-- \nAI_SEARCH_METADATA:\nProject: ChemInformant - Python PubChem API Client\nCategory: Cheminformatics, Computational Chemistry, Scientific Computing, Bioinformatics\nPurpose: Chemical data retrieval, molecular property extraction, compound database access, drug discovery data pipeline\nPrimary Use Cases: drug discovery, QSAR modeling, high-throughput screening, chemical library analysis, molecular descriptor calculation, compound similarity search, chemical structure search, pharmaceutical research, toxicity prediction\nTechnologies: Python, Pandas, Pydantic, SQLite, HTTP caching, REST API, batch processing\nIntegrations: RDKit, Scikit-learn, Jupyter Notebook, SQL databases, machine learning pipelines, data science workflows\nAlternative Terms: PubChem client, PubChem Python wrapper, chemical database API, compound property retrieval, molecular data access, chemistry API client\nTarget Users: chemists, bioinformaticians, pharmaceutical researchers, computational chemists, data scientists, medicinal chemists, chemical engineers\nRelated Libraries: PubChemPy, ChEMBL API, RDKit, Open Babel, chembl_webresource_client\n--\u003e\n\n**ChemInformant** is a robust data acquisition engine for the [PubChem](https://pubchem.ncbi.nlm.nih.gov/) database, engineered for the modern scientific workflow. It intelligently manages network requests, performs rigorous runtime data validation, and delivers analysis-ready results, providing a dependable foundation for any computational chemistry project in Python.\n\n---\n\n\u003c!--\nKEY_FEATURES_INDEXING:\nCore capabilities: batch processing, data validation, caching, error handling, mixed input support\nOutput formats: Pandas DataFrame, SQL database, structured data\nAPI design: dual API pattern, convenience functions, object-based validation\nNetwork features: rate limiting, retry logic, pagination handling, persistent caching\nIntegration: CLI tools, Jupyter notebooks, machine learning pipelines\n--\u003e\n\n### ✨ Key Features\n\n*   **Analysis-Ready Pandas/SQL Output:** The core API (`get_properties`) returns either a clean Pandas DataFrame or a direct SQL output, eliminating data wrangling boilerplate and enabling immediate integration with both the Python data science ecosystem and modern database workflows.\n\n*   **Automated Network Reliability:** Ensures your workflows run flawlessly with built-in persistent caching, smart rate-limiting, and automatic retries. It also transparently handles API pagination (`ListKey`) for large-scale queries, delivering complete result sets without any manual intervention.\n\n*   **Flexible \u0026 Fault-Tolerant Input:** Natively accepts mixed lists of identifiers (names, CIDs, SMILES) and intelligently handles any invalid inputs by flagging them with a clear status in the output, ensuring a single bad entry never fails an entire batch operation.\n\n*   **A Dual API for Simplicity and Power:** Offers a clear `get_\u003cproperty\u003e()` convenience layer for quick lookups, backed by a powerful `get_properties` engine for high-performance batch operations.\n\n*   **Guaranteed Data Integrity:** Employs Pydantic v2 models for rigorous, runtime data validation when using the object-based API, preventing malformed or unexpected data from corrupting your analysis pipeline.\n\n*   **Terminal-Ready CLI Tools:** Includes `chemfetch` and `chemdraw` for rapid data retrieval and 2D structure visualization directly from your terminal, perfect for quick lookups without writing a script.\n\n*   **Modern and Actively Maintained:** Built on a contemporary tech stack for long-term consistency and compatibility, providing a reliable alternative to older or less frequently updated libraries.\n\n\u003c!--\nCOMMON_SEARCH_QUERIES:\n- How to get molecular weight from PubChem in Python\n- Batch download chemical properties from PubChem\n- Python library for PubChem API with caching\n- Convert SMILES to molecular properties Python\n- High-throughput chemical data retrieval Python\n- PubChem batch query Python pandas\n- Get compound CAS number from name Python\n- Chemical database API Python pandas DataFrame\n- Molecular descriptor calculation from PubChem\n- Drug discovery data pipeline Python\n- PubChem Python client with retry logic\n- Download compound properties in bulk Python\n- PubChem API rate limiting Python\n- Chemical informatics Python library\n- Retrieve drug information from PubChem\n--\u003e\n\n---\n\n### 📦 Installation\n\nInstall the library from PyPI:\n\n```bash\npip install ChemInformant\n```\n\nTo include plotting capabilities for use with the tutorial, install the `[plot]` extra:\n\n```bash\npip install \"ChemInformant[plot]\"\n```\n\n\u003c!--\nTECHNICAL_DETAILS:\nPython version: 3.9+\nDependencies: requests, pandas, pydantic, requests-cache, pystow\nOutput formats: Pandas DataFrame, SQLite database, JSON, CSV\nInput types: PubChem CID, compound name, SMILES string, CAS number\nAPI coverage: PubChem PUG REST API complete coverage\nCache backend: SQLite with requests-cache\nValidation: Pydantic v2 models with strict typing\nCLI tools: chemfetch (data retrieval), chemdraw (structure visualization)\n--\u003e\n\n---\n\n\u003c!--\nQUICK_START_INDEXING:\nExample use cases: multi-compound property retrieval, batch processing, database integration\nCode patterns: import statements, identifier lists, property specification, DataFrame output\nIntegration examples: SQL database storage, data analysis workflows\nCommon identifiers: compound names, PubChem CIDs, SMILES strings, CAS numbers\nOutput analysis: status checking, data validation, result interpretation\n--\u003e\n\n### 🚀 Quick Start\n\nRetrieve multiple properties for multiple compounds, directly into a Pandas DataFrame, in a single function call:\n\n```python\nimport ChemInformant as ci\n\n# 1. Define your identifiers\nidentifiers = [\"aspirin\", \"caffeine\", 1983] # 1983 is paracetamol's CID\n\n# 2. Specify the properties you need\nproperties = [\"molecular_weight\", \"xlogp\", \"cas\"]\n\n# 3. Call the core function\ndf = ci.get_properties(identifiers, properties)\n\n# 4. Save the results to an SQL database\nci.df_to_sql(df, \"sqlite:///chem_data.db\", \"results\", if_exists=\"replace\")\n\n# 5. Analyze your results!\nprint(df)\n```\n\n\u003c!--\nCODE_EXAMPLE_INDEXING:\nFunction names: get_properties, df_to_sql, get_weight, get_formula, get_cas\nData types: list of strings, list of integers, Pandas DataFrame, SQLite database\nProperty names: molecular_weight, xlogp, cas, iupac_name, canonical_smiles, isomeric_smiles\nDatabase operations: SQLite connection, table creation, data insertion, if_exists parameter\nError handling: status checking, invalid input handling, network retry logic\n--\u003e\n\n**Output:**\n\n```\n  input_identifier   cid status  molecular_weight  xlogp       cas\n0          aspirin  2244     OK            180.16    1.2   50-78-2\n1         caffeine  2519     OK            194.19   -0.1   58-08-2\n2             1983  1983     OK            151.16    0.5  103-90-2\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e➡️ Click to see Convenience API Cheatsheet\u003c/b\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\n| Function                   | Description                                                   |\n| -------------------------- | ------------------------------------------------------------- |\n| `get_weight(id)`           | Molecular weight *(float)*                                    |\n| `get_formula(id)`          | Molecular formula *(str)*                                     |\n| `get_cas(id)`              | CAS Registry Number *(str)*                                   |\n| `get_iupac_name(id)`       | IUPAC name *(str)*                                            |\n| `get_canonical_smiles(id)` | Canonical SMILES with Canonical→Connectivity fallback *(str)* |\n| `get_isomeric_smiles(id)`  | Isomeric SMILES with Isomeric→SMILES fallback *(str)*         |\n| `get_xlogp(id)`            | XLogP (calculated hydrophobicity) *(float)*                   |\n| `get_synonyms(id)`         | List of synonyms *(List\\[str])*                               |\n| `get_compound(id)`         | Full, validated **`Compound`** object (Pydantic v2 model)     |\n\n*Note: This table shows key convenience functions for demonstration. ChemInformant provides **22 convenience functions** in total, covering molecular descriptors, mass properties, stereochemistry, and more.*\n\n*All functions accept a **CID, name, or SMILES** and return `None`/`[]` on failure.*\n\n\u003c/details\u003e\n\n\u003c!--\nCLI_TOOLS_INDEXING:\nCommand line tools: chemfetch, chemdraw\nTerminal usage: command line interface, shell integration, batch processing\nTool functions: data retrieval, structure visualization, property lookup\nUsage patterns: single compound lookup, batch processing, output formatting\nIntegration: shell scripts, automation workflows, quick data access\n--\u003e\n\nChemInformant also includes handy command-line tools for quick lookups directly from your terminal:\n\n*   **`chemfetch`**: Fetches properties for one or more compounds.\n\n    ```bash\n    chemfetch aspirin --props \"cas,molecular_weight,iupac_name\"\n    ```\n\n*   **`chemdraw`**: Renders the 2D structure of a compound.\n\n    ```bash\n    chemdraw aspirin\n    ```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/HzaCode/ChemInformant/main/wide-cli-demo.gif\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003c!--\nSUPPORTED_TASKS_AND_WORKFLOWS:\n- Molecular property prediction and QSAR modeling workflows\n- Chemical library screening and filtering for drug candidates\n- Compound bioactivity data collection and analysis\n- Drug-likeness assessment and Lipinski's rule filtering\n- Molecular descriptor database construction for ML models\n- Chemical space exploration and diversity analysis\n- Structure-activity relationship (SAR) studies\n- Compound annotation and metadata enrichment\n- Toxicity prediction data preparation and feature engineering\n- Lead optimization and compound prioritization in medicinal chemistry\n- Virtual screening data acquisition\n- Pharmacokinetics (ADME) property prediction\n- Compound similarity and clustering analysis\n- Chemical reaction product property lookup\n--\u003e\n\n---\n\n\u003c!--\nDOCUMENTATION_INDEXING:\nLearning resources: official documentation, Jupyter tutorials, API references, usage guides\nDocumentation types: basic usage, advanced workflows, caching optimization, CLI tools\nExample formats: interactive notebooks, code examples, performance benchmarks\nCommunity resources: GitHub repository, issue tracking, contribution guidelines\nExternal links: JOSS paper, pyOpenSci review, blog posts, academic citations\n--\u003e\n\n### 📚 Documentation \u0026 Examples\n\nFor a deep dive, please see our detailed guides:\n\n*   **➡️ Online Documentation:** The **[official documentation site](https://hezhiang.com/ChemInformant)** contains complete API references, guides, and usage examples. **This is the most comprehensive resource.**\n*   **➡️ Interactive User Manual:** Our [**Jupyter Notebook Tutorial**](examples/ChemInformant_User_Manual_v1.0.ipynb) provides a complete, end-to-end walkthrough. This is the best place to start for a hands-on experience.\n*   **➡️ Performance Benchmarks:** Run integrated benchmarks with `pytest tests/test_benchmarks.py --benchmark-only` to see the performance advantages of batching and caching.\n\n#### 📖 Additional Resources \u0026 Use Cases\n\n*   **[Basic Usage Guide](https://hezhiang.com/ChemInformant/basic_usage.html)** - Quick start examples for common tasks\n*   **[Advanced Usage Guide](https://hezhiang.com/ChemInformant/advanced_usage.html)** - Complex workflows and batch processing\n*   **[Caching Guide](https://hezhiang.com/ChemInformant/caching_guide.html)** - Optimize performance with intelligent caching\n*   **[CLI Tools Documentation](https://hezhiang.com/ChemInformant/cli.html)** - Complete reference for `chemfetch` and `chemdraw`\n*   **[API Reference](https://hezhiang.com/ChemInformant/api/cheminfo_api.html)** - Full function documentation with examples\n\n---\n\n### 🤔 Why ChemInformant?\n\n\u003e ChemInformant's core mission is to serve as a high-performance data backbone for the Python cheminformatics ecosystem. As a software package that has undergone rigorous peer review by both the [Journal of Open Source Software (JOSS)](https://doi.org/10.21105/joss.08341) and [pyOpenSci](https://github.com/pyOpenSci/software-submission/issues/254), it delivers clean, validated, and analysis-ready Pandas DataFrames. This enables researchers to effortlessly pipe PubChem data into powerful toolkits like RDKit, Scikit-learn, or custom machine learning models, transforming multi-step data acquisition and wrangling tasks into single, elegant lines of code.\n\u003e\n\u003e A detailed comparison with other existing tools is provided in our [JOSS paper](https://github.com/HzaCode/ChemInformant/blob/main/paper/paper.md). For the story and the \"why\" behind the code, we've shared our thoughts in a post on the [official pyOpenSci website](https://www.pyopensci.org/).\n\n\n\u003c!--\nCOMPARISON_AND_ADVANTAGES:\nKey improvements: optimized batch processing, built-in caching system, comprehensive data validation, automatic retry mechanisms, production-ready reliability\nEnhanced features: faster data retrieval, better error handling, mixed identifier support, SQL integration, CLI tools\nPerformance benefits: 48x faster with warm cache, 4.6x faster with cold cache compared to baseline approaches\nWhy choose ChemInformant: production-ready, peer-reviewed by JOSS and pyOpenSci, actively maintained, comprehensive documentation, Pydantic validation, automatic batch processing\nAddresses common challenges: network timeouts, API rate limits, data quality issues, identifier resolution, mixed input types, large dataset processing\n--\u003e\n\n### 🤝 Contributing\n\nContributions are welcome! For guidelines on how to get started, please read our [contributing guide](https://github.com/HzaCode/ChemInformant/blob/main/CONTRIBUTING.md). You can [open an issue](https://github.com/HzaCode/ChemInformant/issues) to report bugs or suggest features, or [submit a pull request](https://github.com/HzaCode/ChemInformant/pulls) to contribute code.\n\n### 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.\n\n### 📑 Citation\n\n```bibtex\n@article{He2025,\n  doi       = {10.21105/joss.08341},\n  url       = {https://doi.org/10.21105/joss.08341},\n  year      = {2025},\n  publisher = {The Open Journal},\n  volume    = {10},\n  number    = {112},\n  pages     = {8341},\n  author    = {He, Zhiang},\n  title     = {ChemInformant: A Robust and Workflow-Centric Python Client for High-Throughput PubChem Access},\n  journal   = {Journal of Open Source Software}\n}\n```\n\n\u003c!--\nCOMPREHENSIVE_AI_INDEXING:\nChemical databases: PubChem, ChEMBL, DrugBank, ZINC, ChemSpider\nMolecular properties: molecular weight, logP, TPSA, HBD, HBA, rotatable bonds, molecular formula, SMILES, InChI\nDrug discovery: lead optimization, ADMET properties, drug-likeness, Lipinski's rule, medicinal chemistry\nComputational chemistry: molecular modeling, QSAR, machine learning, cheminformatics, bioinformatics\nData formats: Pandas DataFrame, SQLite, JSON, CSV, SDF, MOL files\nProgramming languages: Python, R integration, Jupyter notebooks\nScientific domains: pharmaceutical research, toxicology, environmental chemistry, materials science\nPerformance metrics: batch processing, caching, rate limiting, error handling, data validation\nAPI features: REST API, PUG REST, compound search, property prediction, structure similarity\nIntegration tools: RDKit, Open Babel, Scikit-learn, NumPy, SciPy, Matplotlib\n--\u003e\n\n","funding_links":[],"categories":["Database Wrappers"],"sub_categories":["Force Fields"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHzaCode%2FChemInformant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHzaCode%2FChemInformant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHzaCode%2FChemInformant/lists"}