Microbench: Automated metadata management for systems biology benchmarking and reproducibility in Python

Bioinformatics. 2022 Aug 24;btac580. doi: 10.1093/bioinformatics/btac580. Online ahead of print.

Abstract

Motivation: Computational systems biology analyses typically make use of multiple software and their dependencies, which are often run across heterogeneous compute environments. This can introduce differences in performance and reproducibility. Capturing metadata (e.g., package versions, GPU model) currently requires repetitious code and is difficult to store centrally for analysis. Even where virtual environments and containers are used, updates over time mean that versioning metadata should still be captured within analysis pipelines to guarantee reproducibility.

Results: Microbench is a simple and extensible Python package to automate metadata capture to a file or Redis database. Captured metadata can include execution time, software package versions, environment variables, hardware information, Python version, and more, with plugins. We present three case studies demonstrating Microbench usage to benchmark code execution and examine environment metadata for reproducibility purposes.

Availability: Install from the Python Package Index using pip install microbench. Source code is available from https://github.com/alubbock/microbench.