A Python bioinformatics toolkit and interactive dashboard integrating UniProt, NCBI Gene, PubMed, KEGG, STRING, and Reactome APIs.
CURIO is a multi-API integrated bioinformatics dashboard built with Streamlit.
It provides researchers with a single interactive workspace for querying multiple biological databases without juggling multiple scripts, APIs, or web portals.
CURIO streamlines data discovery, visualization, and reporting, making it a useful tool for:
- Molecular biologists exploring gene/protein function
- Bioinformatics researchers integrating data across resources
- Students learning to work with biological databases
- Developers building pipelines that require consistent query endpoints
- Unified Access to major biological data sources:
- UniProt — protein metadata, sequences, subcellular localization, GO annotations
- PubMed — publication search, metadata, and abstracts
- NCBI Gene — gene metadata by gene name or accession number
- STRING — protein–protein interaction networks
- Reactome — curated pathway exploration
- Structures — 3D protein models via AlphaFold & PDB with 3Dmol.js
- KEGG — pathway visualizations
- Reporting Engine — auto-generate publication-ready summaries in HTML/PDF
- Crash-resistant queries — retries and error handling for unstable APIs
- Multipage dashboard — modular Streamlit pages for each data source
- Extensible — add your own APIs with minimal code changes
# 1. Clone the repository
git clone https://github.com/biomaverick/curio.git
cd curio
# 2. Create a virtual environment
python3 -m venv curio_env
source curio_env/bin/activate # Linux/macOS
curio_env\Scripts\activate # Windows
# 3. Install dependencies
pip install --upgrade pip
pip install -r requirements.txtLaunch the dashboard with:
streamlit run Home.pyBy default, it runs on: http://localhost:8501
Modules available from the sidebar:
- UniProt – query proteins by accession or name
- NCBI Gene – retrieve gene info and sequences
- PubMed – fetch literature metadata
- STRING – visualize interaction networks
- Reactome – browse pathway maps
- KEGG – explore pathway visualizations
- Structures – load AlphaFold/PDB structures in 3D
- Report – export queries as PDF/HTML
CURIO can also be used as a Python package, not just as a dashboard:
from curio import uniprot_api
result = uniprot_api.fetch_uniprot_entry("BACE1")
print(result)curio/
│── Home.py # Streamlit entrypoint
│── curio/ # Core Python package
│ │── __init__.py
│ │── uniprot_api.py
│ │── ncbi_gene_api.py
│ │── kegg_api.py
│ │── pubmed_api.py
│ │── reactome_api.py
│ │── string_api.py
│ │── structure_api.py
│ │── report.py
│ └── net_utils.py
│── pages/ # Streamlit multipage system
│ │── 1_UniProt.py
│ │── 2_PubMed.py
│ │── ...
│── docs/ # Documentation
│── tests/ # Unit tests for APIs
│── examples/ # Sample queries (JSON)
│── requirements.txt
│── pyproject.toml / setup.py
│── LICENSE
│── README.md
Run the test suite:
pytest tests/- Streamlit settings →
.streamlit/config.toml - Logs and settings → handled via
pages/9_Settings_&_Logs.py
- Docker support for reproducible deployment
- REST API wrapper (so CURIO can be queried programmatically)
- Advanced caching layer for faster queries
- Export to Excel/CSV in addition to PDF/HTML
- Plugin system for custom APIs
Contributions are welcome!
- See CONTRIBUTING.md for detailed guidelines.
- Please run tests before submitting pull requests.
This project is licensed under the MIT License.
CURIO allows you to query multiple biological databases in one place — no more switching between UniProt, NCBI, PubMed, KEGG, STRING, or Reactome separately.
- Debojyoti Chatterjee — Creator & Maintainer
- Samiul Haque — Creator & Maintainer