TROPIC is a curated database and web platform for collecting, organising, and analysing thermodynamic data related to the ring-opening polymerisation (ROP) of polar cyclic monomers. It supports both experimental and computational data, enabling structured comparison of reaction parameters such as enthalpy and entropy of polymerisation across monomers and conditions.
- 📚 Database: Manually curated thermodynamic data from the literature for ROP of cyclic monomers (e.g. lactones, cyclic carbonates).
- 🔬 Metadata-rich schema: Includes reaction conditions, methods of determination, and provenance.
- 🔎 REST API: Searchable interface for programmatic access to data (e.g. by SMILES, ring size, method).
- 📊 Web Interface: Interactive tools for monomer search, visualisation, filtering, and data export.
- ⚙️ Built with: Pydantic, FastAPI, MongoDB, Beanie, React, Mantine and AG Grid.
This repository contains the packages for running the tropic website, API server, and API client. The repository is structured as:
tropic-core: Pydantic document models representing reactions, used by the API server and client.tropic-client: The TROPIC Python API client.tropic-api: The REST API implementation.tropic-web: The interactive website implementation.
The TROPIC software is available as namespace packages on PyPI. This enables you to install only the specific portion of the software that you need. For example, the TROPIC API client can be installed using.
pip install tropic-clientThe easiest way to use the TROPIC API is through the Python client:
from tropic.client import TropicClient
with TropicClient() as client:
reactions = client.get_reactions(type="ROR", monomer__ring_size__gte=10)- 📄 The full API documentation available on the polytropic website.
- 📁 See
roppy-core/models.pyfor full schema details.
Contributions are welcome! Please open an issue or submit a pull request to contribute new features, bug fixes, or data entries.
This project is released under the MIT License. See LICENSE for details.