How to Load and Contribute SBML Models
This guide outlines the correct procedure for contributing SBML models to the Virtual Patient Leaderboard repository. By following these instructions, your models will be automatically validated, processed, and integrated into the leaderboard system via CI/CD.
Required Files
To submit a model, you must provide both of the following:
File Type | Naming Example | Target Directory |
---|---|---|
SBML Model File | your_model.xml |
vpeleaderboard/data/models/ |
YAML Configuration File | your_model.yaml |
vpeleaderboard/data/configs/ |
⚠️ Kindly ensure both files are present when submitting your model. Submissions with only one file will not be processed. Every XML model file must have a corresponding YAML configuration file with the same base name.
Folder Structure Reference
Ensure your file placement adheres to this structure:
vpeleaderboard/data/
├── models/
│ └── your_model.xml
| └── BIOMD0000000537_url.xml
├── configs/
│ └── your_model.yaml
| └── BIOMD0000000537_url.yaml
Please ensure that both the XML file and the corresponding YAML configuration file share the same base name. Submissions that do not follow this structure will fail the automated GitHub Actions validation.
How to add a new model
1. Fork the Repository
Navigate to the repository and click the “Fork” button in the top-right corner of the repository on GitHub to create a copy under your GitHub account.
2. Clone Your Fork Locally
git clone https://github.com/<your-username>/<repo-name>.git
cd <repo-name>
3. Create a New Branch
Ensure you use a descriptive branch name that clearly reflects the purpose of your changes:
git checkout -b add-new-your_model
4. Add Your Files
YAML Configuration Parameters
Each SBML model must be accompanied by a .yaml configuration file that defines the simulation durations. These parameters control how long the model runs for training, validation, and testing phases during automated processing.
Your .yaml
file must include the following fields:
Key | Type | Description |
---|---|---|
train_duration |
int |
Defines the duration (in simulation time units) allocated for the training phase of the model. This value should match the scale of the model's dataset. |
val_duration |
int |
Defines the duration (in simulation time units) allocated for the validation phase. |
test_duration |
int |
Defines the duration (in simulation time units) allocated for the testing phase. Should align with testing scenarios in the model’s intended use. |
Example Configuration
train_duration: 6
val_duration: 3
test_duration: 5
-
Put the XML model file into the models/ directory.
-
Put the YAML configuration file into the configs/ directory.
⚠️ Make sure both files follow the naming conventions described above and that a YAML file is provided for every XML model file.
5. Commit and Push Your Changes
git add models/your_model.xml configs/your_model.yaml
git commit -m "Add model your_model with configuration"
git push origin add-new-model-your_model
6. Open a Pull Request (PR)
- Go to your fork on GitHub.
- Click "Compare & pull request".
- Set the base branch to
main
of the original repository. - Provide a clear and concise title and description.
- Click "Create pull request".