Contributing containers#
We encourage you to explore the GAME modules page and begin with an Evaluator or Predictor codebase that most closely matches your own implementation.
The scripts listed below are meant to be re-usable across all GAME modules with minimal changes. We suggest testing your Evaluators/Predictors with the test module containers to validate their functionality.
Checklist for Predictor Modules#
File |
Description |
Edits Required |
|---|---|---|
|
Sets the Predictor base name, automatically appends the container build timestamp for module-level versioning, determines container vs. dev paths, and configures supported request/response wire formats. |
Edits required for each Predictor. |
|
Includes GET |
Edits required. |
|
Decodes requests, encodes responses (JSON/MsgPack), adds predictor name, handles MIME negotiation, integrates with Flask. |
No edits required if dealing with JSON and MsgPack. |
|
Validates payload keys/values; preprocesses sequences for inference; provides progress feedback. |
Edits required for predictor-specific sections. |
|
Error classes ( |
No edits required. |
|
Model specific code that sets up a callable for |
Edit to define model specific code for each Predictor. |
|
HELP file per GAME API spec. Must include |
Edits required for each Predictor. |
|
Apptainer definition file for building the container. The build-date label is used automatically by |
Edits required for each Predictor. |
Predictor Responsibilities#
Set up endpoints for
/formats,/helpand/predictValidate the requests, decline any requests the model can’t fulfill
Pre-process the data to add any adapters, and crop sequences if prediction ranges are sent
Send sequences to the model, use Matcher if necessary
Format predictions in API return formats, return HTTP error codes if necessary
Checklist for Evaluator Modules#
File |
Description |
Edits Required |
|---|---|---|
|
Sets the Evaluator base name, automatically appends the container build timestamp for module-level versioning, determines container vs. dev paths, and configures API communication settings (request/response format, retries, retry interval). |
Edits required for each Evaluator. |
|
Loads/ validates input, sends data to predictor via HTTP, handles responses, saves raw predictions, computes metrics on success. |
Minor edits based on Evaluator’s Data |
|
Sends HTTP requests with retries, negotiates formats (JSON/MsgPack), deserializes responses safely. |
No edits required |
|
Loads and validates input files ( |
Edit to load datasets |
|
Calculates/saves correlation and cell-type specificity metrics, handles invalid/missing data, outputs CSV with timestamps. |
Edits required for evaluation metric calculation |
|
Apptainer definition file for building the container. Must include |
Edits required for each Evaluator. |
Evaluator Responsibilities#
Parsing data from the Evaluator data folder and transforming into one of the Predictor defined request formats
Issue
POST/predictrequest to the PredictorsReceive and save predictions
Calculate evaluation metrics and save in required format