{"id":16872750,"url":"https://github.com/schneiderfelipe/pyrrole","last_synced_at":"2025-10-08T08:57:40.767Z","repository":{"id":237424532,"uuid":"137222165","full_name":"schneiderfelipe/pyrrole","owner":"schneiderfelipe","description":"A Python package for solving chemical problems with computational modelling","archived":false,"fork":false,"pushed_at":"2023-04-16T20:37:43.000Z","size":390,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-05T11:42:29.339Z","etag":null,"topics":["chemistry","computational-chemistry","library","python","quantum-chemistry","research","science"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pyrrole/","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/schneiderfelipe.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-13T13:50:34.000Z","updated_at":"2023-05-01T14:14:22.000Z","dependencies_parsed_at":"2024-05-01T17:22:18.131Z","dependency_job_id":"32b6c363-5a4d-4556-b615-1417eef3b439","html_url":"https://github.com/schneiderfelipe/pyrrole","commit_stats":null,"previous_names":["schneiderfelipe/pyrrole"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/schneiderfelipe/pyrrole","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneiderfelipe%2Fpyrrole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneiderfelipe%2Fpyrrole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneiderfelipe%2Fpyrrole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneiderfelipe%2Fpyrrole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schneiderfelipe","download_url":"https://codeload.github.com/schneiderfelipe/pyrrole/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneiderfelipe%2Fpyrrole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278916432,"owners_count":26068090,"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-10-08T02:00:06.501Z","response_time":56,"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":["chemistry","computational-chemistry","library","python","quantum-chemistry","research","science"],"created_at":"2024-10-13T15:16:00.893Z","updated_at":"2025-10-08T08:57:40.747Z","avatar_url":"https://github.com/schneiderfelipe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**WARNING**: this project has been retired.\nPlease migrate to\n`geem-lab/overreact \u003chttps://github.com/geem-lab/overreact\u003e`_.\n\npyrrole\n=======\n\n.. |pypi-badge| image:: https://badge.fury.io/py/pyrrole.svg\n   :target: https://badge.fury.io/py/pyrrole\n   :alt: Python Package Index (PyPI)\n\n.. |build-badge| image:: https://travis-ci.org/dudektria/pyrrole.svg?branch=master\n   :target: https://travis-ci.org/dudektria/pyrrole\n   :alt: Travis CI Status\n\n.. |docs-badge| image:: https://readthedocs.org/projects/pyrrole/badge/?version=latest\n   :target: https://pyrrole.readthedocs.io/en/latest/?badge=latest\n   :alt: Latest Documentation Status\n\n|docs-badge| |build-badge| |pypi-badge|\n\nA Python package for solving chemical problems with computational modeling.\n\nUsage example\n-------------\n\nAs a usage example, let's calculate the energy barrier involved in `nitrogen inversion in ammonia \u003chttps://en.wikipedia.org/wiki/Nitrogen_inversion\u003e`_.\n\n.. figure:: https://upload.wikimedia.org/wikipedia/commons/2/2d/Nitrogen-inversion-3D-balls.png\n   :alt: Nitrogen inversion in ammonia\n   :align: center\n\n   When ammonia turns \"inside out\", it passes through a planar transition state (`image in public domain \u003chttps://commons.wikimedia.org/wiki/File:Nitrogen-inversion-3D-balls.png\u003e`_).\n\nWe do this in three simple steps (only eight lines of code):\n\n1. **Get the data**\n\nWe first obtain the raw data, which will later be fed to our chemical model.\nBelow we read computational chemistry logfiles of both ground and transition states [#level-of-theory]_.\n\n\u003e\u003e\u003e from pyrrole.atoms import read_cclib, create_data\n\u003e\u003e\u003e gs = read_cclib(\"data/ammonia/ammonia.out\", name=\"NH3(g)\")\n\u003e\u003e\u003e ts = read_cclib(\"data/ammonia/invers.out\", name=\"NH3(g)#\")\n\u003e\u003e\u003e data = create_data(gs, ts)\n\nPyrrole uses `cclib \u003chttps://cclib.github.io/\u003e`_ for reading logfiles, which is `compatible with all major computational chemistry packages \u003chttps://cclib.github.io/#summary\u003e`_.\nYou could also want to read tabular data `from a file \u003chttps://pyrrole.readthedocs.io/en/latest/using-data-sets.html#reading-local-files\u003e`_ (or even `from the web \u003chttps://pyrrole.readthedocs.io/en/latest/using-data-sets.html#reading-the-web\u003e`_) using `pandas \u003chttps://pandas.pydata.org/\u003e`_.\n\n2. **Specify the model**\n\nWe now describe our model.\nThis is accomplished through chemical equations:\n\n\u003e\u003e\u003e from pyrrole import ChemicalEquation\n\u003e\u003e\u003e equation = ChemicalEquation(\"NH3(g) -\u003e NH3(g)#\", data)\n\nWhile model above consists of a single `ChemicalEquation`, you could create complex models with multiple chemical equations with `ChemicalSystem` objects.\nYou might want to store your complex models in text files too.\n\n3. **Obtain the results**\n\nSimply let pyrrole calculate the energy barrier:\n\n\u003e\u003e\u003e results = equation.to_series()\n\u003e\u003e\u003e results[\"freeenergy\"] * 2625.4996382852164  # Hartree to kJ/mol\n19.30952589472923\n\n(As a side note, the reference value is 21.162 kJ/mol [#experimental-freeenergy-ammonia-inversion]_.)\n\nInterested? `Have another example \u003chttps://pyrrole.readthedocs.io/en/latest/getting-started.html\u003e`_.\n\n.. [#level-of-theory] Optimizations and frequency calculations of both ammonia and the planar transition state were performed at `PBEh-3c`_ using the `ORCA`_ electronic structure package (version 4.0.1.2). Logfiles can be found in the `project's repository \u003chttps://github.com/dudektria/pyrrole/tree/master/data\u003e`_.\n\n.. _`PBEh-3c`: https://doi.org/10.1063/1.4927476\n.. _`ORCA`: https://orcaforum.cec.mpg.de/\n\n.. [#experimental-freeenergy-ammonia-inversion] *Chem. Phys. Lett.*, **2003**, *370* (3), pp 360-365 DOI: `10.1016/S0009-2614(03)00107-6 \u003chttps://doi.org/10.1016/S0009-2614(03)00107-6\u003e`_.\n\nInstallation\n------------\n\nYou can get the library directly from `PyPI \u003chttps://pypi.org/project/pyrrole/\u003e`_:\n\n.. code-block:: console\n\n   $ pip install pyrrole\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschneiderfelipe%2Fpyrrole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschneiderfelipe%2Fpyrrole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschneiderfelipe%2Fpyrrole/lists"}