{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,26]],"date-time":"2026-02-26T20:34:15Z","timestamp":1772138055734,"version":"3.50.1"},"reference-count":7,"publisher":"Oxford University Press (OUP)","issue":"20","license":[{"start":{"date-parts":[[2022,8,24]],"date-time":"2022-08-24T00:00:00Z","timestamp":1661299200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1942255"],"award-info":[{"award-number":["1942255"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000054","name":"National Cancer Institute","doi-asserted-by":"publisher","award":["U01CA215845"],"award-info":[{"award-number":["U01CA215845"]}],"id":[{"id":"10.13039\/100000054","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000054","name":"National Cancer Institute","doi-asserted-by":"publisher","award":["U54CA217450-01A1"],"award-info":[{"award-number":["U54CA217450-01A1"]}],"id":[{"id":"10.13039\/100000054","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022,10,14]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:sec>\n                    <jats:title>Motivation<\/jats:title>\n                    <jats:p>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.<\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Results<\/jats:title>\n                    <jats:p>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.<\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Availability and implementation<\/jats:title>\n                    <jats:p>Install from the Python Package Index using pip install microbench. Source code is available from https:\/\/github.com\/alubbock\/microbench.<\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Supplementary information<\/jats:title>\n                    <jats:p>Supplementary data are available at Bioinformatics online.<\/jats:p>\n                  <\/jats:sec>","DOI":"10.1093\/bioinformatics\/btac580","type":"journal-article","created":{"date-parts":[[2022,8,24]],"date-time":"2022-08-24T09:36:18Z","timestamp":1661333778000},"page":"4823-4825","source":"Crossref","is-referenced-by-count":2,"title":["<i>Microbench:<\/i>\n                    automated metadata management for systems biology benchmarking and reproducibility in Python"],"prefix":"10.1093","volume":"38","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6950-8908","authenticated-orcid":false,"given":"Alexander L R","family":"Lubbock","sequence":"first","affiliation":[{"name":"Department of Biochemistry, Vanderbilt University , Nashville, TN 37232, USA"},{"name":"Vanderbilt-Ingram Cancer Center, Vanderbilt University , Nashville, TN 37232, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3668-7468","authenticated-orcid":false,"given":"Carlos F","family":"Lopez","sequence":"additional","affiliation":[{"name":"Department of Biochemistry, Vanderbilt University , Nashville, TN 37232, USA"},{"name":"Vanderbilt-Ingram Cancer Center, Vanderbilt University , Nashville, TN 37232, USA"},{"name":"Department of Biomedical Informatics, Vanderbilt University Medical Center , Nashville, TN 37203, USA"}]}],"member":"286","published-online":{"date-parts":[[2022,8,24]]},"reference":[{"key":"2022101415200628500_btac580-B1","doi-asserted-by":"crossref","first-page":"71","DOI":"10.1145\/2723872.2723882","article-title":"An introduction to Docker for reproducible research","volume":"49","author":"Boettiger","year":"2015","journal-title":"SIGOPS Oper. Syst. Rev"},{"key":"2022101415200628500_btac580-B2","doi-asserted-by":"crossref","DOI":"10.1101\/054601","article-title":"Tellurium: a Python based modeling and reproducibility platform for systems biology","author":"Choi","year":"2016"},{"key":"2022101415200628500_btac580-B3","doi-asserted-by":"crossref","first-page":"100322","DOI":"10.1016\/j.patter.2021.100322","article-title":"The role of metadata in reproducible computational research","volume":"2","author":"Leipzig","year":"2021","journal-title":"Patterns"},{"key":"2022101415200628500_btac580-B4","doi-asserted-by":"crossref","DOI":"10.1038\/msb.2013.1","article-title":"Programming biological models in Python using PySB","volume":"9","author":"Lopez","year":"2013","journal-title":"Mol. Syst. Biol"},{"key":"2022101415200628500_btac580-B5","doi-asserted-by":"crossref","first-page":"14","DOI":"10.1109\/MS.2014.58","article-title":"Continuous integration and its tools","volume":"31","author":"Meyer","year":"2014","journal-title":"IEEE Softw"},{"key":"2022101415200628500_btac580-B6","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1038\/d41586-018-07196-1","article-title":"Why Jupyter is data scientists\u2019 computational notebook of choice","volume":"563","author":"Perkel","year":"2018","journal-title":"Nature"},{"key":"2022101415200628500_btac580-B7","doi-asserted-by":"crossref","first-page":"44","DOI":"10.1007\/10968987_3","volume-title":"Job Scheduling Strategies for Parallel Processing","author":"Yoo","year":"2003"}],"container-title":["Bioinformatics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/bioinformatics\/advance-article-pdf\/doi\/10.1093\/bioinformatics\/btac580\/45722165\/btac580.pdf","content-type":"application\/pdf","content-version":"am","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/38\/20\/4823\/46535191\/btac580.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/38\/20\/4823\/46535191\/btac580.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,10,14]],"date-time":"2022-10-14T17:25:37Z","timestamp":1665768337000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article\/38\/20\/4823\/6674506"}},"subtitle":[],"editor":[{"given":"Janet","family":"Kelso","sequence":"additional","affiliation":[]}],"short-title":[],"issued":{"date-parts":[[2022,8,24]]},"references-count":7,"journal-issue":{"issue":"20","published-online":{"date-parts":[[2022,8,24]]},"published-print":{"date-parts":[[2022,10,14]]}},"URL":"https:\/\/doi.org\/10.1093\/bioinformatics\/btac580","relation":{"has-preprint":[{"id-type":"doi","id":"10.1101\/2021.09.14.460317","asserted-by":"object"}]},"ISSN":["1367-4803","1367-4811"],"issn-type":[{"value":"1367-4803","type":"print"},{"value":"1367-4811","type":"electronic"}],"subject":[],"published-other":{"date-parts":[[2022,10,15]]},"published":{"date-parts":[[2022,8,24]]}}}