Metadata-Version: 2.4
Name: bioprocessdb
Version: 1.0.0
Summary: BioProcessDB local biological knowledge base and BioProcess-miR process→gene→miRNA analysis
Author: BioProcess-miR contributors
License: MIT
Project-URL: Homepage, https://github.com/itu-bioinformatics-database-lab/BioProcess-miR
Project-URL: Documentation, https://github.com/itu-bioinformatics-database-lab/BioProcess-miR/tree/main/docs
Project-URL: Changelog, https://github.com/itu-bioinformatics-database-lab/BioProcess-miR/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/itu-bioinformatics-database-lab/BioProcess-miR/issues
Project-URL: Source, https://github.com/itu-bioinformatics-database-lab/BioProcess-miR
Keywords: bioinformatics,gene-ontology,pathways,microrna,duckdb,enrichment
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: duckdb>=1.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: loguru>=0.7.2
Requires-Dist: pandas>=2.2.0
Requires-Dist: polars>=1.0.0
Requires-Dist: pyarrow>=15.0.0
Requires-Dist: pydantic>=2.6.0
Requires-Dist: pydantic-settings>=2.2.0
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: tenacity>=8.2.0
Requires-Dist: typer>=0.12.0
Requires-Dist: rich>=13.7.0
Provides-Extra: stats
Requires-Dist: scipy>=1.11.0; extra == "stats"
Requires-Dist: statsmodels>=0.14.0; extra == "stats"
Provides-Extra: reporting
Requires-Dist: matplotlib>=3.8.0; extra == "reporting"
Provides-Extra: notebook
Requires-Dist: jupyter>=1.0.0; extra == "notebook"
Requires-Dist: ipykernel>=6.29.0; extra == "notebook"
Provides-Extra: test
Requires-Dist: pytest>=8.0.0; extra == "test"
Requires-Dist: pytest-cov>=5.0.0; extra == "test"
Provides-Extra: dev
Requires-Dist: bioprocessdb[test]; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: bioprocessdb[reporting]; extra == "docs"
Provides-Extra: all
Requires-Dist: bioprocessdb[dev,docs,notebook,reporting,stats]; extra == "all"
Dynamic: license-file

# BioProcess-miR

Local, reproducible biological knowledge base (**BioProcessDB**) and disease-agnostic
process → gene → microRNA analysis (**BioProcess-miR**) — **v1.0.0**.

## What BioProcess-miR does

- Builds and queries a local DuckDB + Parquet knowledge base (HGNC, GO, Reactome,
  WikiPathways, optional KEGG under safeguard, miRTarBase).
- Resolves biological processes, expands membership, links experimentally supported
  miRNA–target evidence, runs explicit-universe enrichment, applies transparent
  prioritization policies, and generates provenance-rich reports.

## What it does not do

- Disease-specific scoring, SH-SY5Y logic, expression integration, network
  propagation, ML ranking, therapeutic recommendation, or causal inference.
- Opaque composite “best miRNA” scores by default (`components_only_v1`).
- Redistribution of restricted KEGG pathway content.

## Architecture

| Layer | Import / CLI | Role |
| --- | --- | --- |
| BioProcessDB | `bioprocessdb` / `bioprocessdb` | Download, normalize, store, query |
| Analysis | same package | ProcessEngine → Linker → Enrichment → Prioritization → Reporter |
| Thin façade | `bioprocess_mir` | Compatibility CLI wrapper |

Canonical gene key: **HGNC ID**. Schema version **1.1.0** (independent of package **1.0.0**).

## Installation

```bash
pip install bioprocessdb
pip install "bioprocessdb[stats]"       # scipy / statsmodels
pip install "bioprocessdb[reporting]"   # matplotlib PNG export
pip install "bioprocessdb[all]"         # stats + reporting + dev tooling
```

Python **3.11+**. Optional groups: `stats`, `reporting`, `notebook`, `test`, `dev`, `docs`, `all`.

## Quick example

```bash
# Offline demonstration database (synthetic/minimal fixtures — NOT production)
python scripts/build_demo_database.py --overwrite
bioprocessdb --config demos/demo_v1/config/default.yaml analyze \
  --record GO:GO:0006979 \
  --include-descendants \
  --universe mirtarbase-eligible-targets \
  --policy components_only_v1 \
  --report html \
  --output results/examples/oxidative_stress

bioprocessdb --config demos/demo_v1/config/default.yaml run examples/oxidative_stress.yaml
```

```python
from bioprocessdb import (
    BioProcessDB,
    ProcessEngine,
    ProcessMiRNALinker,
    MiRNATargetEnrichment,
    MiRNAPrioritization,
    BioProcessMiRReporter,
)

db = BioProcessDB("demos/demo_v1/database/bioprocess.duckdb")
```

## Outputs

Under `results/`: process queries, process–miRNA links, enrichment, prioritization,
and HTML/Markdown/JSON reports with manifests and fingerprints.

## Provenance

Every analysis records package/schema/module versions, database `build_id`, source
versions, query parameters, and result fingerprints. See [docs/reproducibility.md](docs/reproducibility.md).

## Limitations

- Quality of results depends on local database completeness and upstream evidence.
- Demo fixtures are tiny and synthetic — not for biological conclusions.
- KEGG is optional and restricted; exports are gated.
- Enrichment significance ≠ biological importance or therapeutic utility.

## Citation

See [CITATION.cff](CITATION.cff) and [docs/data_licenses.md](docs/data_licenses.md).
Cite BioProcess-miR software separately from HGNC, GO, Reactome, WikiPathways,
miRTarBase, and KEGG (when used).

## Documentation

- [Installation](docs/installation.md) · [Quickstart](docs/quickstart.md)
- [Public API](docs/public_api.md) · [CLI reference](docs/cli_reference.md)
- [Tutorials](docs/tutorials/) · [Release notes v1.0.0](docs/release_notes/v1.0.0.md)
- [CHANGELOG](CHANGELOG.md) · [SECURITY](SECURITY.md) · [CONTRIBUTING](CONTRIBUTING.md)

## License

MIT for project code. Upstream databases retain their own terms — notably **KEGG**
redistribution restrictions. See [docs/data_licenses.md](docs/data_licenses.md).
