Code Structure
Bioverse is organized as a pipeline from raw repositories to benchmark scores. Each stage is defined by a small abstract base class; concrete implementations live under Adapters and the other Implementations pages.
Pipeline
Adapter.download()
↓
Processor.process() (optional, during download)
↓
Batch + Split + Assets
↓
Dataset.release() / apply(Transform)
↓
Benchmark.loader()
├── Sampler.sample() → indices into the dataset
├── Task.__call__() → (features, targets)
└── Metric.update() → aggregated scores
↓
Trainer + Backend + Collater
Core abstractions
Component |
Role |
|---|---|
Download raw data from an external source and produce initial batches, splits, and assets. |
|
Parse structure files (PDB, mmCIF, …) into Awkward records during ingestion. |
|
In-memory and on-disk data containers: scenes, splits, and auxiliary lookup tables. |
|
Versioned, sharded datasets built from an adapter or derived from another dataset. |
|
Offline or live modifications to batches, splits, and assets. |
|
Bind a dataset to a sampler, task, and metric; expose data loaders for train/val/test. |
|
Decide which scenes, frames, or molecules form each training/evaluation batch. |
|
Extract model inputs and targets from a lazy view over on-disk shards. |
|
Compare predictions to ground truth and produce leaderboard-ready results. |
|
Shared configuration, I/O, geometry, and array helpers used across the library. |
Configuration files (D_*.yaml, B_*.yaml) reference implementation classes
by name. bioverse.factory resolves those names at runtime. See the
Developer Guide guide for extension patterns.