Open and continuous community benchmarking
Almut Lütge & Anthony Sonrel
Meta-analysis of 62 method benchmarks in the field of single cell omics
62 single cell omics method benchmarks
2 reviewer per benchmark
Meta-analysis:
Title
Number of datasets used in evaluations:
Number of methods evaluated:
Degree to which authors are neutral:
...
22. Type of workflow system used:
independent harmonization of responses
summaries
available
extensible
reusable
neutral
community-driven
code
workflows
enviroments
software versions
static
continuous
input data
method results
simulations
performance results
currently part of most benchmarks
not part of current standards
Method developer/
Benchmarker
Method user
Methods
Datasets
Metrics
Omnibenchmark
standardized datasets
= 1 "module" (renku project )
method results
metric results
interactive result exploration
Method user
Method developer/
Benchmarker
GitLab
Docker
Workflow
Module:
Template code
Module code
contributer
user
omnibenchmark-python
omniValidator
benchmarker
projects
templates
omb-site
{
orchestrator
triplestore
omni-sparql
dashboards
standardized datasets
Method developer/
Benchmarker
Cumbersome to:
standardized datasets
Pre-filled projects
Method developer/
Benchmarker
--> Templates allow easy contribution to an Omnibenchmark
Method developer/
Benchmarker
Method developer/
Benchmarker
https://www.oecdbetterlifeindex.org
A data analysis platform/system built from a set of microservices
GitLab --> version control/CICD
Apache Jena --> Triple store
Jupyter server --> interactive sessions
Docker/Kubernetes --> software/enviroment management
GitLFS --> File storage
Dataset and workflow management system → “renku-python”
Knowledge graph tracking → provenance
User interface with free interactive sessions
GitLab
Result
Code
Data
generated
used_by
used_by
Data
Code
Result
used_by
generated
User interaction with renku client
Automatic triplet generation
Triplet store "Knowledge graph"
User interaction with renku client
KG-endpoint queries
Input types
output types
from omnibenchmark import get_omni_object_from_yaml, renku save
## Load config
omni_obj = get_omni_object_from_yaml('src/config.yaml')
## Check for new/updates of input datasets
omni_obj.update_object()
renku_save()
## Create output dataset
omni_obj.create_dataset()
## Generate and run workflow
omni_obj.run_renku()
renku_save()
## Store results in output dataset
omni_obj.update_result_dataset()
renku_save()
Methods
Metrics
standardized datasets
= 1 "module" (renku project )
method results
metric results
interactive result exploration
Method user
Method developer/
Benchmarker