Metadata-Version: 2.5
Name: altar-chrombpnet
Version: 0.2.1
Summary: ChromBPNet model binding for large-scale Altar variant scoring
Project-URL: Documentation, https://kundajelab.github.io/altar/
Author: Riya Sinha
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: altar<0.3,>=0.2.1
Provides-Extra: test
Requires-Dist: pytest-asyncio>=0.24; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# Altar ChromBPNet binding

`altar-chrombpnet` is the lightweight control-plane binding between Altar and the independently locked
ChromBPNet runtime under `runtimes/chrombpnet`. Installing it registers `CHROMBPNET` through Altar's standard
model-plugin entry point; the base `altar` distribution does not contain ChromBPNet-specific science.

```bash
pip install altar-chrombpnet
```

```python
from altar.models import get_model_plugin
from altar_chrombpnet import ChromBPNetConfiguration

plugin = get_model_plugin("CHROMBPNET")
```

The binding owns ChromBPNet configuration, score schemas, prioritization, preprocessing, scoring, and
interpretation plans. It depends only on Altar's public façades and Pydantic. TensorFlow, model code, weights,
reference genomes, peaks, and provider SDKs remain outside the binding.

The binding also owns ChromBPNet's logical paths (`altar_chrombpnet.layouts`): the derived per-fold peak
distributions and interval index, the staged peaks and motif set, and the interpretation run tree. Altar core
provides only the model-neutral `ModelArtifactLayout` and `ScoringLayout`; every model-owned ChromBPNet file is
composed from `model_resource_file`, so preparation and scoring name the same files under one layout. Staged
file names come from the declared `weights_format` and `peaks_compression`, never from a resource URI.

Preprocessing can emit a manifest that records the ordered weights, peaks, genome, strand policy, producer
image, and output digests. That provenance is additive: the normal scoring plan consumes the conventional
peak-distribution and safe interval-index paths directly and does not require a manifest, an Altar-owned
directory, or an adoption step. Standalone runtime callers may supply both `--preprocessing-manifest` and
`--preprocessing-identity` to opt into strict verification. Historical scores and externally managed
artifacts are not rewritten or recomputed.

Existing callers migrating from Altar core must install this package and replace imports such as
`from altar.models import ChromBPNetPlugin` with `from altar_chrombpnet import ChromBPNetPlugin`. Registry-based
callers need only install the package; the `CHROMBPNET` key is unchanged.
