From 0ad04eff77ed10ada6ad31f453a7ccfc823074c2 Mon Sep 17 00:00:00 2001 From: yannikschaelte Date: Sat, 26 Mar 2022 22:49:08 +0100 Subject: [PATCH 01/11] Add joss draft --- .github/workflows/joss.yml | 23 ++ doc/joss_0_12/concept.pdf | Bin 0 -> 14332 bytes doc/joss_0_12/paper.bib | 634 ++++++++++++++++++++++++++++++ doc/joss_0_12/paper_pyabc_0_12.md | 111 ++++++ 4 files changed, 768 insertions(+) create mode 100644 .github/workflows/joss.yml create mode 100644 doc/joss_0_12/concept.pdf create mode 100644 doc/joss_0_12/paper.bib create mode 100644 doc/joss_0_12/paper_pyabc_0_12.md diff --git a/.github/workflows/joss.yml b/.github/workflows/joss.yml new file mode 100644 index 00000000..d1fbeb9b --- /dev/null +++ b/.github/workflows/joss.yml @@ -0,0 +1,23 @@ +on: [push] + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: doc/joss_0_12/paper_pyabc_0_12.md + - name: Upload + uses: actions/upload-artifact@v1 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper.pdf diff --git a/doc/joss_0_12/concept.pdf b/doc/joss_0_12/concept.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78c816cecf04ce392cfd987b0f6d3e55c6a13a4b GIT binary patch literal 14332 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 literal 0 HcmV?d00001 diff --git a/doc/joss_0_12/paper.bib b/doc/joss_0_12/paper.bib new file mode 100644 index 00000000..b5614bed --- /dev/null +++ b/doc/joss_0_12/paper.bib @@ -0,0 +1,634 @@ +@Book{Gershenfeld1999, + author = {Gershenfeld, Neil A and Gershenfeld, Neil}, + title = {The nature of mathematical modeling}, + publisher = {Cambridge university press}, + year = {1999}, +} + +@article{Kitano2002, + author = {Kitano, H.}, + date-added = {2014-01-10 09:40:47 +0000}, + date-modified = {2016-08-30 06:43:26 +0000}, + journal = {Science}, + keywords = {modeling; systems biology}, + month = {Mar.}, + number = {5560}, + pages = {1662--1664}, + rating = {5}, + title = {Systems Biology: A Brief Overview}, + volume = {295}, + year = {2002}, +} + +@book{Tarantola2005, + author = {Tarantola, A.}, + date-added = {2012-04-17 10:57:01 +0200}, + date-modified = {2013-03-11 13:44:45 +0100}, + keywords = {parameter estimation, inverse problem, Bayesian parameter estimation, scaling, transformation, Monte-Carlo method, least squares}, + publisher = {{SIAM}}, + rating = {5}, + title = {Inverse Problem Theory and Methods for Model Parameter Estimation}, + year = {2005}, +} + +@article{TavareBal1997, + author = {Tavar{\'e}, Simon and Balding, David J and Griffiths, Robert C and Donnelly, Peter}, + journal = {Genetics}, + number = {2}, + pages = {505--518}, + publisher = {Genetics Soc America}, + title = {Inferring coalescence times from {DNA} sequence data}, + volume = {145}, + year = {1997}, +} + +@Article{Wilkinson2009, + author = {Wilkinson, D. J.}, + title = {Stochastic modelling for quantitative description of heterogeneous biological systems}, + number = {2}, + pages = {122--133}, + volume = {10}, + bdsk-url-1 = {http://dx.doi.org/10.1038/nrg2509}, + date-added = {2011-06-18 20:29:26 +0200}, + date-modified = {2013-04-24 18:50:43 +0200}, + journal = {Nat. Rev. Genet.}, + keywords = {SDE, stochastic modeling, parameter estimation, review}, + month = {Feb.}, + rating = {5}, + year = {2009}, +} + +@Article{JagiellaRic2017, + author = {Jagiella, N. and Rickert, D. and Theis, F. J. and Hasenauer, J.}, + title = {Parallelization and High-Performance Computing Enables Automated Statistical Inference of Multi-scale Models}, + number = {2}, + pages = {194--206}, + volume = {4}, + bdsk-url-1 = {http://dx.doi.org/10.1016/j.cels.2016.12.002}, + date-added = {2017-03-14 11:13:37 +0000}, + date-modified = {2017-12-07 11:19:05 +0000}, + journal = {Cell Systems}, + keywords = {parameter estimation, ABC, multi-scale modeling, agent-based models, basic reading}, + month = {02}, + year = {2017}, +} + +@Article{AndrieuRob2009, + author = {Andrieu, Christophe and Roberts, Gareth O}, + title = {The pseudo-marginal approach for efficient Monte Carlo computations}, + number = {2}, + pages = {697--725}, + volume = {37}, + journal = {The Annals of Statistics}, + publisher = {Institute of Mathematical Statistics}, + year = {2009}, +} + +@article{GourierouxMon1993, + author = {Gourieroux, Christian and Monfort, Alain and Renault, Eric}, + journal = {J. Appl. Econ.}, + journal-full = {Journal of Applied Econometrics}, + number = {S1}, + pages = {S85--S118}, + publisher = {Wiley Online Library}, + title = {Indirect inference}, + volume = {8}, + year = {1993}, +} + +@article{PriceDro2018, + author = {Price, Leah F and Drovandi, Christopher C and Lee, Anthony and Nott, David J}, + journal = {J. Comp. Graph. Stat.}, + journal-full = {Journal of Computational and Graphical Statistics}, + number = {1}, + pages = {1--11}, + publisher = {Taylor \& Francis}, + title = {Bayesian synthetic likelihood}, + volume = {27}, + year = {2018}, +} + +@Article{PritchardSei1999, + author = {Pritchard, Jonathan K and Seielstad, Mark T and Perez-Lezaun, Anna and Feldman, Marcus W}, + title = {Population growth of human Y chromosomes: a study of Y chromosome microsatellites.}, + number = {12}, + pages = {1791--1798}, + volume = {16}, + journal = {Molecular biology and evolution}, + publisher = {Oxford University Press}, + year = {1999}, +} + +@article{BeaumontZha2002, + author = {Beaumont, M. A. and Zhang, W. and Balding, D. J.}, + date-added = {2012-01-20 10:46:56 +0100}, + date-modified = {2015-05-16 16:11:25 +0000}, + journal = {Genetics}, + keywords = {parameter estimation, Bayesian parameter estimation, Approximate Bayesian inferance}, + month = {12}, + number = {4}, + pages = {2025--2035}, + title = {{Approximate} {Bayesian} {Computation} in {Population} {Genetics}}, + volume = {162}, + year = {2002}, +} + +@book{SissonFan2018Handbook, + author = {Sisson, Scott A and Fan, Yanan and Beaumont, Mark}, + publisher = {Chapman and Hall/CRC}, + title = {Handbook of approximate Bayesian computation}, + year = {2018}, +} + +@Article{SissonFan2007, + author = {Sisson, S. A. and Fan, Y. and Tanaka, M. M.}, + title = {Sequential {M}onte {C}arlo without likelihoods}, + number = {6}, + pages = {1760--1765}, + volume = {104}, + bdsk-url-1 = {http://dx.doi.org/10.1073/pnas.0607208104}, + date-added = {2012-01-20 11:08:14 +0100}, + date-modified = {2012-06-06 14:54:46 +0200}, + journal = {Proc. Natl. Acad. Sci.}, + journal-full = {Proceedings of the National Academy of Sciences}, + keywords = {parameter estimation, likelihood-free MCMC, sequential Monte Carlo, MCMC sampling}, + month = {Jan.}, + year = {2007}, +} + +@article{DelMoralDou2006, + author = {Del Moral, Pierre and Doucet, Arnaud and Jasra, Ajay}, + journal = {J. R. Stat. Soc. B}, + journal-full = {Journal of the Royal Statistical Society: Series B (Statistical Methodology)}, + number = {3}, + pages = {411--436}, + publisher = {Wiley Online Library}, + title = {Sequential {Monte} {Carlo} samplers}, + volume = {68}, + year = {2006}, +} + +@InProceedings{DuttaSch2017, + author = {Dutta, Ritabrata and Schoengens, Marcel and Onnela, Jukka-Pekka and Mira, Antonietta}, + booktitle = {Proceedings of the Platform for Advanced Scientific Computing Conference}, + title = {ABCpy: A User-Friendly, Extensible, and Parallel Library for Approximate {B}ayesian Computation}, + doi = {10.1145/3093172.3093233}, + isbn = {978-1-4503-5062-4}, + location = {Lugano, Switzerland}, + pages = {8:1--8:9}, + publisher = {ACM}, + series = {PASC '17}, + acmid = {3093233}, + address = {New York, NY, USA}, + articleno = {8}, + bdsk-url-1 = {http://doi.acm.org/10.1145/3093172.3093233}, + bdsk-url-2 = {http://dx.doi.org/10.1145/3093172.3093233}, + date-added = {2018-04-09 22:28:17 +0000}, + date-modified = {2018-04-09 22:28:29 +0000}, + keywords = {ABC, Library, Parallel, Spark}, + numpages = {9}, + year = {2017}, +} + +@inproceedings{KangasraasioLin2016, + author = {Kangasr{\"a}{\"a}si{\"o}, Antti and Lintusaari, Jarno and Skyt{\'e}n, Kusti and J{\"a}rvenp{\"a}{\"a}, Marko and Vuollekoski, Henri and Gutmann, Michael and Vehtari, Aki and Corander, Jukka and Kaski, Samuel}, + booktitle = {NIPS 2016 Workshop on Advances in Approximate Bayesian Inference}, + date-added = {2018-04-05 14:17:51 +0000}, + date-modified = {2018-04-05 14:22:55 +0000}, + location = {Barcelona, Spain}, + title = {{ELFI:} {E}ngine for {L}ikelihood-{F}ree {I}nference}, + year = {2016}, +} + +@Article{TankhilevichIsh2020, + author = {Tankhilevich, Evgeny and Ish-Horowicz, Jonathan and Hameed, Tara and Roesch, Elisabeth and Kleijn, Istvan and Stumpf, Michael PH and He, Fei}, + title = {GpABC: a {J}ulia package for approximate {B}ayesian computation with {G}aussian process emulation}, + number = {10}, + pages = {3286--3287}, + volume = {36}, + journal = {Bioinformatics}, + publisher = {Oxford University Press}, + year = {2020}, +} + +@Article{JabotFau2013, + author = {Jabot, F. and Faure, T. and Dumoulin, N.}, + title = {{EasyABC:} performing efficient approximate {B}ayesian computation sampling schemes using {R}}, + doi = {10.1111/2041-210X.12050}, + number = {7}, + pages = {684--687}, + volume = {4}, + bdsk-url-1 = {http://dx.doi.org/10.1111/2041-210X.12050}, + date-added = {2016-09-07 07:48:01 +0000}, + date-modified = {2016-09-07 07:48:01 +0000}, + journal = {Methods Ecol. Evol.}, + keywords = {ABC, software}, + month = {July}, + year = {2013}, +} + +@Article{KlingerRic2018, + author = {Klinger, Emmanuel and Rickert, Dennis and Hasenauer, Jan}, + title = {{pyABC}: distributed, likelihood-free inference}, + number = {20}, + pages = {3591--3593}, + volume = {34}, + abstract = {Summary: Likelihood-free methods are often required for inference in systems biology. While approximate Bayesian computation (ABC) provides a theoretical solution, its practical application has often been challenging due to its high computational demands. To scale likelihood-free inference to computationally demanding stochastic models, we developed pyABC: a distributed and scalable ABC-Sequential Monte Carlo (ABC-SMC) framework. It implements a scalable, runtime-minimizing parallelization strategy for multi-core and distributed environments scaling to thousands of cores. The framework is accessible to non-expert users and also enables advanced users to experiment with and to custom implement many options of ABC-SMC schemes, such as acceptance threshold schedules, transition kernels and distance functions without alteration of pyABC's source code. pyABC includes a web interface to visualize ongoing and finished ABC-SMC runs and exposes an API for data querying and post-processing. +Availability and Implementation: pyABC is written in Python 3 and is released under a 3-clause BSD license. The source code is hosted on https://github.com/icb-dcm/pyabc and the documentation on http://pyabc.readthedocs.io. It can be installed from the Python Package Index (PyPI). +Supplementary information: Supplementary data are available at Bioinformatics online.}, + bdsk-url-1 = {https://doi.org/10.1093/bioinformatics/bty361}, + date-added = {2019-02-25 23:05:00 +0100}, + date-modified = {2019-04-09 11:43:27 +0200}, + journal = {Bioinformatics}, + journal-full = {Bioinformatics (Oxford, England)}, + keywords = {ABC; software}, + month = {10}, + pmid = {29762723}, + pst = {ppublish}, + year = {2018}, +} + +@article{FilippiBar2013, + author = {Filippi, S. and Barnes, C. P. and Cornebise, J. and Stumpf, M. P.}, + date-added = {2015-07-05 18:52:56 +0000}, + date-modified = {2017-09-30 10:29:35 +0000}, + journal = {Stat. Appl. Genet. Mol.}, + keywords = {ABC}, + number = {1}, + pages = {87--107}, + title = {On optimality of kernels for approximate {Bayesian} computation using sequential {Monte} {Carlo}}, + volume = {12}, + year = {2013}, +} + +@inproceedings{KlingerHas2017, + author = {Klinger, E. and Hasenauer, J.}, + bdsk-url-1 = {https://link.springer.com/chapter/10.1007/978-3-319-67471-1\\\\_8}, + booktitle = {Computational Methods in Systems Biology. CMSB 2017}, + date-added = {2017-09-20 14:25:33 +0000}, + date-modified = {2017-09-20 14:29:22 +0000}, + editor = {Feret, J. and Koeppl, H.}, + keywords = {ABC, pyABC, parameter estimation}, + publisher = {Springer, Cham}, + series = {Lecture Notes in Computer Science}, + title = {A scheme for adaptive selection of population sizes in {A}pproximate {B}ayesian {C}omputation - {S}equential {M}onte {C}arlo}, + volume = {10545}, + year = {2017}, +} + +@article{ImleKum2019, + author = {Imle, Andrea and Kumberger, Peter and Schnellb{\"a}cher, Nikolas D and Fehr, Jana and Carrillo-Bustamante, Paola and Ales, Janez and Schmidt, Philip and Ritter, Christian and Godinez, William J and M{\"u}ller, Barbara and others}, + journal = {Nature Communications}, + number = {1}, + pages = {2144}, + publisher = {Nature Publishing Group}, + title = {Experimental and computational analyses reveal that environmental restrictions shape {HIV-1} spread in {3D} cultures}, + volume = {10}, + year = {2019} +} + +@Article{KerrStu2021, + author = {Kerr, Cliff C and Stuart, Robyn M and Mistry, Dina and Abeysuriya, Romesh G and Rosenfeld, Katherine and Hart, Gregory R and N{\'u}{\~n}ez, Rafael C and Cohen, Jamie A and Selvaraj, Prashanth and Hagedorn, Brittany and others}, + title = {Covasim: an agent-based model of COVID-19 dynamics and interventions}, + number = {7}, + pages = {e1009149}, + volume = {17}, + journal = {PLOS Computational Biology}, + publisher = {Public Library of Science San Francisco, CA USA}, + year = {2021}, +} + +@Article{BittnerPal2021, + author = {Bittner, Sean R and Palmigiano, Agostina and Piet, Alex T and Duan, Chunyu A and Brody, Carlos D and Miller, Kenneth D and Cunningham, John}, + title = {Interrogating theoretical models of neural computation with emergent property inference}, + pages = {e56265}, + volume = {10}, + journal = {Elife}, + publisher = {eLife Sciences Publications Limited}, + year = {2021}, +} + +@Article{ColomHer2021, + author = {Colom, B and Herms, A and Hall, MWJ and Dentro, SC and King, C and Sood, RK and Alcolea, MP and Piedrafita, G and Fernandez-Antoran, D and Ong, SH and others}, + title = {Mutant clones in normal epithelium outcompete and eliminate emerging tumours}, + number = {7881}, + pages = {510--514}, + volume = {598}, + journal = {Nature}, + publisher = {Nature Publishing Group}, + year = {2021}, +} + +@Article{CoulierHel2021, + author = {Coulier, Adrien and Hellander, Stefan and Hellander, Andreas}, + title = {A multiscale compartment-based model of stochastic gene regulatory networks using hitting-time analysis}, + number = {18}, + pages = {184105}, + volume = {154}, + journal = {The Journal of Chemical Physics}, + publisher = {AIP Publishing LLC}, + year = {2021}, +} + +@Article{BundgaardHar2022, + author = {Bundgaard, Nils and Harmel, Christoph and Imle, Andrea and Ahmed, Samy Sid and Frey, Benjamin and Starru{\ss}, J{\"o}rn and Fackler, Oliver T and Graw, Frederik}, + title = {Inferring cell motility in complex environments with incomplete tracking data}, + journal = {bioRxiv}, + publisher = {Cold Spring Harbor Laboratory}, + year = {2022}, +} + +@Article{CostaOts2021, + author = {Costa, Emanuel Cura and Otsuki, Leo and Albors, Aida Rodrigo and Tanaka, Elly M and Chara, Osvaldo}, + title = {Spatiotemporal control of cell cycle acceleration during axolotl spinal cord regeneration}, + pages = {e55665}, + volume = {10}, + journal = {Elife}, + publisher = {eLife Sciences Publications Limited}, + year = {2021}, +} + +@Article{BernardoSai2021, + author = {Bernardo, Reginald Christian and Said, Jackson Levi}, + title = {Towards a model-independent reconstruction approach for late-time Hubble data}, + number = {08}, + pages = {027}, + volume = {2021}, + journal = {Journal of Cosmology and Astroparticle Physics}, + publisher = {IOP Publishing}, + year = {2021}, +} + +@Article{CantwellYum2019, + author = {Cantwell, Chris D and Mohamied, Yumnah and Tzortzis, Konstantinos N and Garasto, Stef and Houston, Charles and Chowdhury, Rasheda A and Ng, Fu Siong and Bharath, Anil A and Peters, Nicholas S}, + title = {Rethinking multiscale cardiac electrophysiology with machine learning and predictive modelling}, + pages = {339--351}, + volume = {104}, + journal = {Computers in biology and medicine}, + publisher = {Elsevier}, + year = {2019}, +} + +@Article{MinucciCur2021, + author = {Minucci, Jeffrey M and Curry, Robert and DeGrandi-Hoffman, Gloria and Douglass, Cameron and Garber, Kris and Purucker, S Thomas}, + title = {Inferring pesticide toxicity to honey bees from a field-based feeding study using a colony model and Bayesian inference}, + number = {8}, + pages = {e02442}, + volume = {31}, + journal = {Ecological Applications}, + publisher = {Wiley Online Library}, + year = {2021}, +} + +@inproceedings{GhoshVog2012, + author = {Ghosh, Dhiren and Vogt, Andrew}, + booktitle = {Joint Statistical Meetings}, + date-added = {2016-08-30 07:17:44 +0000}, + date-modified = {2016-08-30 07:17:52 +0000}, + keywords = {outlier detection}, + organization = {American Statistical Association San Diego, CA}, + pages = {3455--3460}, + title = {Outliers: An evaluation of methodologies}, + year = {2012}, +} + +@book{MotulskyChr2003, + author = {Motulsky, Harvey and Christopoulos, Arthur}, + date-added = {2016-08-30 07:14:06 +0000}, + date-modified = {2016-08-30 07:15:24 +0000}, + keywords = {regression}, + publisher = {GraphPad Software Inc., San Diego CA}, + title = {Fitting models to biological data using linear and nonlinear regression: a practical guide to curve fitting}, + year = {2003}, +} + +@Article{SchaelteAla2021, + author = {Sch{\"a}lte, Yannik and Alamoudi, Emad and Hasenauer, Jan}, + title = {Robust adaptive distance functions for approximate {B}ayesian inference on outlier-corrupted data}, + journal = {bioRxiv}, + publisher = {Cold Spring Harbor Laboratory}, + year = {2021}, +} + +@Article{Prangle2017, + author = {Prangle, Dennis}, + title = {Adapting the {ABC} Distance Function}, + number = {1}, + pages = {289--309}, + volume = {12}, + bdsk-url-1 = {http://dx.doi.org/10.1214/16-BA1002}, + date-added = {2018-04-02 21:20:08 +0000}, + date-modified = {2018-04-02 21:22:16 +0000}, + journal = {Bayesian Analysis}, + journal-full = {Bayesian Analysis}, + keywords = {ABC}, + year = {2017}, +} + +@article{BlumNun2013, + author = {Blum, Michael GB and Nunes, Maria Antonieta and Prangle, Dennis and Sisson, Scott A}, + journal = {Statistical Science}, + number = {2}, + pages = {189--208}, + publisher = {Institute of Mathematical Statistics}, + title = {A comparative review of dimension reduction methods in approximate {Bayesian} computation}, + volume = {28}, + year = {2013}, +} + +@article{FearnheadPra2012, + author = {Fearnhead, Paul and Prangle, Dennis}, + journal = {J. R. Stat. Soc. B}, + journal-full = {Journal of the Royal Statistical Society: Series B (Statistical Methodology)}, + number = {3}, + pages = {419--474}, + publisher = {Wiley Online Library}, + title = {Constructing summary statistics for approximate {Bayesian} computation: semi-automatic approximate {Bayesian} computation}, + volume = {74}, + year = {2012}, +} + +@Article{JiangWu2017, + author = {Jiang, Bai and Wu, Tung-yu and Zheng, Charles and Wong, Wing H}, + title = {Learning summary statistic for approximate {B}ayesian computation via deep neural network}, + pages = {1595--1618}, + journal = {Statistica Sinica}, + publisher = {JSTOR}, + year = {2017}, +} + +@Article{BorowskaGiu2021, + author = {Borowska, Agnieszka and Giurghita, Diana and Husmeier, Dirk}, + title = {Gaussian process enhanced semi-automatic approximate {B}ayesian computation: parameter inference in a stochastic differential equation system for chemotaxis}, + pages = {109999}, + volume = {429}, + journal = {Journal of Computational Physics}, + publisher = {Elsevier}, + year = {2021}, +} + +@Article{SchaelteHas2022Pre, + author = {Sch{\"a}lte, Yannik and Hasenauer, Jan}, + title = {Informative and adaptive distances and summary statistics in sequential approximate {B}ayesian computation}, + doi = {10.1101/2022.03.18.484896}, + eprint = {https://www.biorxiv.org/content/early/2022/03/20/2022.03.18.484896.1.full.pdf}, + url = {https://www.biorxiv.org/content/early/2022/03/20/2022.03.18.484896.1}, + elocation-id = {2022.03.18.484896}, + journal = {bioRxiv}, + publisher = {Cold Spring Harbor Laboratory}, + year = {2022}, +} + +@Article{scikitlearn2011, + author = {Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V. and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.}, + title = {Scikit-learn: Machine Learning in {P}ython}, + pages = {2825--2830}, + volume = {12}, + journal = {Journal of Machine Learning Research}, + year = {2011}, +} + +@article{Wilkinson2013, + author = {Wilkinson, Richard David}, + doi = {10.1515/sagmb-2013-0010}, + journal = {Stat. Appl. Gen. Mol. Bio.}, + journal-full = {Statistical Applications in Genetics and Molecular Biology}, + keywords = {ABC, noise model}, + mesh = {Algorithms; Bayes Theorem; Computer Simulation; Likelihood Functions; Markov Chains; Models, Statistical; Monte Carlo Method}, + month = {May}, + number = {2}, + pages = {129--141}, + pmid = {23652634}, + pst = {epublish}, + title = {Approximate {B}ayesian computation ({ABC}) gives exact results under the assumption of model error}, + volume = {12}, + year = {2013}, + Bdsk-Url-1 = {https://doi.org/10.1515/sagmb-2013-0010}, +} + +@article{SchaelteHas2020, + abstract = {{Approximate Bayesian computation (ABC) is an increasingly popular method for likelihood-free parameter inference in systems biology and other fields of research, as it allows analyzing complex stochastic models. However, the introduced approximation error is often not clear. It has been shown that ABC actually gives exact inference under the implicit assumption of a measurement noise model. Noise being common in biological systems, it is intriguing to exploit this insight. But this is difficult in practice, as ABC is in general highly computationally demanding. Thus, the question we want to answer here is how to efficiently account for measurement noise in ABC.We illustrate exemplarily how ABC yields erroneous parameter estimates when neglecting measurement noise. Then, we discuss practical ways of correctly including the measurement noise in the analysis. We present an efficient adaptive sequential importance sampling-based algorithm applicable to various model types and noise models. We test and compare it on several models, including ordinary and stochastic differential equations, Markov jump processes and stochastically interacting agents, and noise models including normal, Laplace and Poisson noise. We conclude that the proposed algorithm could improve the accuracy of parameter estimates for a broad spectrum of applications.The developed algorithms are made publicly available as part of the open-source python toolbox pyABC (https://github.com/icb-dcm/pyabc).Supplementary data are available at Bioinformatics online.}}, + author = {Sch{\"a}lte, Yannik and Hasenauer, Jan}, + doi = {10.1093/bioinformatics/btaa397}, + issn = {1367-4803}, + journal = {Bioinformatics}, + month = {7}, + number = {Supplement 1}, + pages = {i551-i559}, + title = {{Efficient exact inference for dynamical systems with noisy measurements using sequential approximate Bayesian computation}}, + volume = {36}, + year = {2020}, + Bdsk-Url-1 = {https://doi.org/10.1093/bioinformatics/btaa397}, +} + +@Article{BerntonJac2019, + author = {Bernton, Espen and Jacob, Pierre E and Gerber, Mathieu and Robert, Christian P}, + title = {Approximate Bayesian computation with the Wasserstein distance}, + number = {2}, + pages = {235--269}, + volume = {81}, + journal = {J. Roy. Stat. Soc. B (Statistical Methodology)}, + publisher = {Wiley Online Library}, + year = {2019}, +} + +@article{SilkFil2013, + author = {Silk, D. and Filippi, S. and Stumpf, M. P. H.}, + date-added = {2015-07-18 15:52:08 +0000}, + date-modified = {2017-09-30 10:29:35 +0000}, + institution = {Stat Appl Genet Mol Biol}, + journal = {Stat. Appl. Genet. Mol. Biol.}, + keywords = {ABC}, + month = {Oct.}, + number = {5}, + pages = {603--618}, + title = {Optimizing threshold-schedules for sequential approximate {Bayesian} computation: {Applications} to molecular systems}, + volume = {12}, + year = {2013}, +} + +@article{DrovandiPet2011, + author = {Drovandi, Christopher C and Pettitt, Anthony N}, + journal = {Biometrics}, + number = {1}, + pages = {225--233}, + publisher = {Wiley Online Library}, + title = {Estimation of parameters for macroparasite population evolution using approximate {Bayesian} computation}, + volume = {67}, + year = {2011}, +} + +@Article{BezansonEde2017, + author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B}, + title = {Julia: A fresh approach to numerical computing}, + number = {1}, + pages = {65--98}, + volume = {59}, + journal = {SIAM review}, + publisher = {SIAM}, + year = {2017}, +} + +@article{HoopsSah2006, + author = {Hoops, S. and Sahle, S. and Gauges, R. and Lee, C. and Pahle, J. and Simus, N. and Singhal, M. and Xu, L. and Mendes, P. and Kummer, U.}, + date-added = {2011-11-27 00:36:24 +0100}, + date-modified = {2017-08-17 15:22:22 +0000}, + doi = {10.1093/bioinformatics/btl485}, + file = {:HoopsSah2006.pdf:PDF}, + journal = {Bioinformatics}, + journal-full = {Bioinformatics}, + keywords = {toolbox, software, COPASI}, + number = {24}, + pages = {3067--3074}, + title = {{COPASI} -- a {CO}mplex {PA}thway {SI}mulator}, + volume = {22}, + year = {2006}, +} + +@article{SchmiesterSch2021, + abstract = {Reproducibility and reusability of the results of data-based modeling studies are essential. Yet, there has been---so far---no broadly supported format for the specification of parameter estimation problems in systems biology. Here, we introduce PEtab, a format which facilitates the specification of parameter estimation problems using Systems Biology Markup Language (SBML) models and a set of tab-separated value files describing the observation model and experimental data as well as parameters to be estimated. We already implemented PEtab support into eight well-established model simulation and parameter estimation toolboxes with hundreds of users in total. We provide a Python library for validation and modification of a PEtab problem and currently 20 example parameter estimation problems based on recent studies.}, + author = {Schmiester, Leonard AND Sch{\"a}lte, Yannik AND Bergmann, Frank T. AND Camba, Tacio AND Dudkin, Erika AND Egert, Janine AND Fr{\"o}hlich, Fabian AND Fuhrmann, Lara AND Hauber, Adrian L. AND Kemmer, Svenja AND Lakrisenko, Polina AND Loos, Carolin AND Merkt, Simon AND M{\"u}ller, Wolfgang AND Pathirana, Dilan AND Raim{\'u}ndez, Elba AND Refisch, Lukas AND Rosenblatt, Marcus AND Stapor, Paul L. AND St{\"a}dter, Philipp AND Wang, Dantong AND Wieland, Franz-Georg AND Banga, Julio R. AND Timmer, Jens AND Villaverde, Alejandro F. AND Sahle, Sven AND Kreutz, Clemens AND Hasenauer, Jan AND Weindl, Daniel}, + date = {26-01-2021}, + doi = {10.1371/journal.pcbi.1008646}, + journal = {PLOS Computational Biology}, + month = {January}, + number = {1}, + pages = {1-10}, + publisher = {Public Library of Science}, + title = {{PEtab}---Interoperable specification of parameter estimation problems in systems biology}, + volume = {17}, + year = {2021}, + Bdsk-Url-1 = {https://doi.org/10.1371/journal.pcbi.1008646}, +} + +@Article{FroehlichWei2021, + author = {Fr{\"o}hlich, Fabian and Weindl, Daniel and Sch{\"a}lte, Yannik and Pathirana, Dilan and Paszkowski, {\L}ukasz and Lines, Glenn Terje and Stapor, Paul and Hasenauer, Jan}, + date = {02-04-2021}, + title = {{AMICI: high-performance sensitivity analysis for large ordinary differential equation models}}, + doi = {10.1093/bioinformatics/btab227}, + eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btab227/37371345/btab227.pdf}, + issn = {1367-4803}, + note = {btab227}, + volume = {btab227}, + abstract = {{Ordinary differential equation models facilitate the understanding of cellular signal transduction and other biological processes. However, for large and comprehensive models, the computational cost of simulating or calibrating can be limiting. AMICI is a modular toolbox implemented in C++/Python/MATLAB that provides efficient simulation and sensitivity analysis routines tailored for scalable, gradient-based parameter estimation and uncertainty quantification.AMICI is published under the permissive BSD-3-Clause license with source code publicly available on https://github.com/AMICI-dev/AMICI. Citeable releases are archived on Zenodo.Supplementary data are available at Bioinformatics online.}}, + bdsk-url-1 = {https://doi.org/10.1093/bioinformatics/btab227}, + journal = {Bioinformatics}, + month = {April}, + year = {2021}, +} + +@article{ToniStu2010, + author = {Toni, T. and Stumpf, M. P. H.}, + date-added = {2010-09-26 21:46:49 +0200}, + date-modified = {2017-09-30 10:29:35 +0000}, + dio = {10.1093/bioinformatics/btp619}, + journal = {Bioinformatics}, + keywords = {ABC, model selection, Bayesian parameter estimation, Monte-Carlo method}, + month = {10}, + number = {1}, + pages = {104--110}, + rating = {3}, + title = {Simulation-based model selection for dynamical systems in systems and population biology}, + volume = {26}, + year = {2010}, +} diff --git a/doc/joss_0_12/paper_pyabc_0_12.md b/doc/joss_0_12/paper_pyabc_0_12.md new file mode 100644 index 00000000..1f6cc660 --- /dev/null +++ b/doc/joss_0_12/paper_pyabc_0_12.md @@ -0,0 +1,111 @@ +--- +title: 'pyABC: Efficient and robust easy-to-use approximate Bayesian computation' +tags: + - approximate Bayesian computation + - ABC + - likelihood-free inference + - high-performance computing + - parallel + - sequential Monte Carlo + - Python +authors: + - name: Yannik Schälte + orcid: 0000-0003-1293-820X + affiliation: "1, 2, 3" + - name: Emmanuel Klinger + affiliation: "2, 3, 4" + - name: Emad Alamoudi + orcid: 0000-0002-9129-4635 + affiliation: "1" + - name: Jan Hasenauer + orcid: 0000-0002-4935-3312 + affiliation: "1, 2, 3" +affiliations: + - name: Faculty of Mathematics and Natural Sciences, University of Bonn, Bonn, Germany + index: 1 + - name: Institute of Computational Biology, Helmholtz Center Munich, Neuherberg, Germany + index: 2 + - name: Center for Mathematics, Technical University Munich, Garching, Germany + index: 3 + - name: Department of Connectomics, Max Planck Institute for Brain Research, Frankfurt, Germany + index: 4 +date: 26 February 2022 +bibliography: paper.bib +--- + + + +# Summary + + + +The Python package pyABC provides a framework for approximate Bayesian computation (ABC), a likelihood-free parameter inference method popular in many research areas. +At its core, it implements a sequential Monte-Carlo (SMC) scheme, with various algorithms to adapt to the problem structure and automatically tune hyperparameters. +To scale to computationally expensive problems, it provides efficient parallelization strategies for multi-core and distributed systems. +The package is highly modular and designed to be easily usable. +In this major update to pyABC, we implement several advanced algorithms that facilitate efficient and robust inference on a wide range of data and model types. +In particular, we implement algorithms to account for noise, to adaptively scale-normalize distance metrics, to robustly handle data outliers, to elucidate informative data points via regression models, to circumvent summary statistics via optimal transport based distances, and to avoid local optima in acceptance threshold sequences by predicting acceptance rate curves. +Further, we provide, besides previously existing support of Python and R, interfaces in particular to the Julia language, the COPASI simulator, and the PEtab standard. + +# Statement of Need + + + +Mathematical models are important tools to describe and study real-world systems, allowing to understand underlying mechanisms [@Gershenfeld1999; @Kitano2002]. +They are commonly subject to unknown parameters that need to be estimated using observed data [@Tarantola2005]. +The Bayesian framework allows doing so by updating prior beliefs about parameters by the likelihood of data given parameters. +However, especially for complex stochastic models, evaluating the likelihood is often infeasible [@TavareBal1997; @Wilkinson2009; @JagiellaRic2017]. +Thus, likelihood-free methods such as ABC have been developed [@AndrieuRob2009; @GourierouxMon1993; @PriceDro2018; @PritchardSei1999; @BeaumontZha2002]. +ABC is widely applicable, as it only requires an executable ``black-box'' forward process model, simulating data given model parameters. +In a nutshell, ABC circumvents likelihood evaluation by accepting if a distance between simulated and observed data is below a threshold [@SissonFan2018Handbook] (\autoref{fig:concept}). +ABC is often combined with a sequential Monte-Carlo (ABC-SMC) scheme using importance sampling, which gradually reduces the acceptance threshold and thus improves the posterior approximation, while maintaining high acceptance rates [@SissonFan2007; @DelMoralDou2006]. + +![**Basic ABC algorithm.** Parameters $\theta\sim\pi(\theta)$ are sampled from the prior or a proposal distribution, and passed to a black-box model generating potentially stochastic simulated data according to the likelihood $y\sim\pi(y|\theta)$. These are optionally passed through a summary statistics function giving a low-dimensional representation $s(y)$. Summary statistics of simulated and observed data are compared via a distance metric $d$, and the underlying parameters accepted if the distance is below an acceptance threshold $\varepsilon$.\label{fig:concept}](concept.pdf){ width=99% } + +While conceptually simple and widely applicable, ABC is computationally expensive, and its practical performance relies on a number of factors. +There exist several software packages implementing different algorithms in different languages, each with their own strengths, including notably in Python ABCpy [@DuttaSch2017] and ELFI [@KangasraasioLin2016], in Julia GpABC [@TankhilevichIsh2020], and in R EasyABC [@JabotFau2013]. +pyABC implements at its core an ABC-SMC scheme based on @ToniStu2010 and facilicates robust and efficient inference for a broad spectrum of applications via robust methods and self-tuned choices of hyperparameters, reducing the need for manual tuning. +An article on core features of pyABC was previously published [@KlingerRic2018], discussing in particular adaptive transition kernels [@FilippiBar2013], population sizes [@KlingerHas2017], and wall-time efficient parallelization via dynamic scheduling. pyABC is in use in a variety of fields, e.g. to model virus transmission on cellular [@ImleKum2019] and population level [@KerrStu2021], neuron circuits [@BittnerPal2021], cancer [@ColomHer2021], gene expression [@CoulierHel2021], axolotl regeneration [@CostaOts2021], universe expansion [@BernardoSai2021], cardiac electrophysiology [@CantwellYum2019], and bee colonies [@MinucciCur2021]. + +# New Features + +The methods discussed in the following have been newly implemented in pyABC (version 0.12), with details in the API documentation and Jupyter example notebooks accessible via the online documentation: + +*Variations in different data scales and robustness to outliers.* In ABC, a distance metric is used to quantify differences between simulated and observed data. +When simulations for different data points vary on different scales, highly variable ones dominate the acceptance decision. +@Prangle2017 introduces a method to, in an ABC-SMC framework, iteratively update distance weights to normalize contributions. +A further problem are outliers, i.e. errors in the measurement process that the model does not account for [@GhoshVog2012; @MotulskyChr2003]. +@SchaelteAla2021 show that an approach adapted from @Prangle2017 can robustly identify outliers and reduce their impact. +The approaches by @Prangle2017 and @SchaelteAla2021 are now implemented in pyABC. + +*Identify informative data.* Instead of operating on the full data, in ABC often summary statistics, i.e. low-dimensional data representations, are employed [@BlumNun2013]. +A particular line of approaches uses as statistics the outputs of inverse regression models of parameters on data, e.g. via linear regression [@FearnheadPra2012], neural networks [@JiangWu2017], or Gaussian processes [@BorowskaGiu2021]. +In @SchaelteHas2022Pre, such approaches are combined with adaptive scale-normalization, and extended to achieve a higher-order posterior approximation. Further, inverse regression models are used to, instead of constructing summary statistics, inform robust sensitivity weights accounting for informativeness. +All of the above approaches are now implemented in pyABC, with regression models interfaced via scikit-learn [@scikitlearn2011]. + +*Accurate handling of noise.* The approximation error of ABC methods is often unclear. +@Wilkinson2013 shows that ABC can be considered as giving exact inference under an implicit distance-induced noise model. +In @SchaelteHas2020, this insight is used to develop an efficient ABC-SMC based exact inference scheme in the presence of measurement noise. The framework is now integrated into pyABC. + +*Optimal transport distances.* Besides the above-mentioned adaptive distances, pyABC now in particular implements Wasserstein distances, which consider an optimal transport problem between distributions and may allow to circumvent the use of summary statistics [@BerntonJac2019]. + +*Acceptance threshold selection.* Efficiency and convergence of ABC-SMC algorithms further depend on the acceptance threshold sequence. @SilkFil2013 discuss that common schemes based on quantiles of previous values [@DrovandiPet2011] can fail in the presence of local minima, and propose a method based on analyzing predicted acceptance rate curves. +pyABC now implements a modified version, using importance sampling instead of unscented transform to predict the acceptance rate as a function of the threshold. + +*Interoperability.* Not only algorithms, but also accessibility and interoperability determine the usefulness of a tool. +Besides natural support of Python, and previously established support of R, pyABC now also provides an efficient interface to models written in Julia [@BezansonEde2017], to biochemical pathway models defined in SBML or COPASI format by using the COPASI toolbox [@HoopsSah2006], and supports the PEtab inference standard [@SchmiesterSch2021], currently only for the ODE simulator AMICI [@FroehlichWei2021]. +Finally, it allows to connect to models written in arbitrary languages and frameworks via file exchange. + +# Availability and Development + +pyABC is being developed open-source under a 3-clause BSD license. The code, designed to be highly modular and extensible, is hosted on [GitHub](https://github.com/icb-dcm/pyabc) and continuously tested. +Extensive documentation is hosted on [Read the Docs](https://pyabc.rtfd.io), including API documentation and numerous Jupyter notebooks containing tutorials, outlining features, and showcasing applications. + +# Acknowledgements + +We thank many collaboration partners and pyABC users for valuable input, in particular Frank Bergmann for the COPASI wrapper, and Elba Raimúndez for fruitful discussions. +This work was supported by the German Federal Ministry of Education and Research (BMBF) +(FitMultiCell/031L0159 and EMUNE/031L0293) and the German Research Foundation (DFG) +under Germany’s Excellence Strategy (EXC 2047 390873048 and EXC 2151 390685813). + +# References From 7d410f9181ccf16719317ebb6502f4f294f9000f Mon Sep 17 00:00:00 2001 From: yannikschaelte Date: Sat, 26 Mar 2022 22:52:34 +0100 Subject: [PATCH 02/11] remove joss test action --- .github/workflows/joss.yml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .github/workflows/joss.yml diff --git a/.github/workflows/joss.yml b/.github/workflows/joss.yml deleted file mode 100644 index d1fbeb9b..00000000 --- a/.github/workflows/joss.yml +++ /dev/null @@ -1,23 +0,0 @@ -on: [push] - -jobs: - paper: - runs-on: ubuntu-latest - name: Paper Draft - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Build draft PDF - uses: openjournals/openjournals-draft-action@master - with: - journal: joss - # This should be the path to the paper within your repo. - paper-path: doc/joss_0_12/paper_pyabc_0_12.md - - name: Upload - uses: actions/upload-artifact@v1 - with: - name: paper - # This is the output path where Pandoc will write the compiled - # PDF. Note, this should be the same directory as the input - # paper.md - path: paper.pdf From 6362bb964b1603193328ef1f3d5e43985be77ab6 Mon Sep 17 00:00:00 2001 From: yannikschaelte Date: Sat, 26 Mar 2022 23:08:46 +0100 Subject: [PATCH 03/11] simplify names --- doc/joss_0_12/{paper_pyabc_0_12.md => paper.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/joss_0_12/{paper_pyabc_0_12.md => paper.md} (100%) diff --git a/doc/joss_0_12/paper_pyabc_0_12.md b/doc/joss_0_12/paper.md similarity index 100% rename from doc/joss_0_12/paper_pyabc_0_12.md rename to doc/joss_0_12/paper.md From 6f82cbb359d9fa42b1df6d25b002fb7414950eb6 Mon Sep 17 00:00:00 2001 From: yannikschaelte Date: Fri, 1 Apr 2022 14:41:52 +0200 Subject: [PATCH 04/11] add dois; fix reference --- doc/joss_0_12/paper.bib | 112 ++++++++++++++++------------------------ doc/joss_0_12/paper.md | 2 +- 2 files changed, 46 insertions(+), 68 deletions(-) diff --git a/doc/joss_0_12/paper.bib b/doc/joss_0_12/paper.bib index b5614bed..1296abe4 100644 --- a/doc/joss_0_12/paper.bib +++ b/doc/joss_0_12/paper.bib @@ -7,8 +7,6 @@ @Book{Gershenfeld1999 @article{Kitano2002, author = {Kitano, H.}, - date-added = {2014-01-10 09:40:47 +0000}, - date-modified = {2016-08-30 06:43:26 +0000}, journal = {Science}, keywords = {modeling; systems biology}, month = {Mar.}, @@ -18,12 +16,11 @@ @article{Kitano2002 title = {Systems Biology: A Brief Overview}, volume = {295}, year = {2002}, + doi = {10.1126/science.1069492}, } @book{Tarantola2005, author = {Tarantola, A.}, - date-added = {2012-04-17 10:57:01 +0200}, - date-modified = {2013-03-11 13:44:45 +0100}, keywords = {parameter estimation, inverse problem, Bayesian parameter estimation, scaling, transformation, Monte-Carlo method, least squares}, publisher = {{SIAM}}, rating = {5}, @@ -40,6 +37,7 @@ @article{TavareBal1997 title = {Inferring coalescence times from {DNA} sequence data}, volume = {145}, year = {1997}, + doi = {10.1093/genetics/145.2.505}, } @Article{Wilkinson2009, @@ -48,14 +46,12 @@ @Article{Wilkinson2009 number = {2}, pages = {122--133}, volume = {10}, - bdsk-url-1 = {http://dx.doi.org/10.1038/nrg2509}, - date-added = {2011-06-18 20:29:26 +0200}, - date-modified = {2013-04-24 18:50:43 +0200}, journal = {Nat. Rev. Genet.}, keywords = {SDE, stochastic modeling, parameter estimation, review}, month = {Feb.}, rating = {5}, year = {2009}, + doi = {10.1038/nrg2509}, } @Article{JagiellaRic2017, @@ -64,9 +60,7 @@ @Article{JagiellaRic2017 number = {2}, pages = {194--206}, volume = {4}, - bdsk-url-1 = {http://dx.doi.org/10.1016/j.cels.2016.12.002}, - date-added = {2017-03-14 11:13:37 +0000}, - date-modified = {2017-12-07 11:19:05 +0000}, + doi = {10.1016/j.cels.2016.12.002}, journal = {Cell Systems}, keywords = {parameter estimation, ABC, multi-scale modeling, agent-based models, basic reading}, month = {02}, @@ -82,6 +76,7 @@ @Article{AndrieuRob2009 journal = {The Annals of Statistics}, publisher = {Institute of Mathematical Statistics}, year = {2009}, + doi = {10.1214/07-AOS574}, } @article{GourierouxMon1993, @@ -94,6 +89,7 @@ @article{GourierouxMon1993 title = {Indirect inference}, volume = {8}, year = {1993}, + doi = {10.1002/jae.3950080507}, } @article{PriceDro2018, @@ -106,6 +102,7 @@ @article{PriceDro2018 title = {Bayesian synthetic likelihood}, volume = {27}, year = {2018}, + doi = {10.1080/10618600.2017.1302882}, } @Article{PritchardSei1999, @@ -117,12 +114,11 @@ @Article{PritchardSei1999 journal = {Molecular biology and evolution}, publisher = {Oxford University Press}, year = {1999}, + doi = {10.1093/oxfordjournals.molbev.a026091}, } @article{BeaumontZha2002, author = {Beaumont, M. A. and Zhang, W. and Balding, D. J.}, - date-added = {2012-01-20 10:46:56 +0100}, - date-modified = {2015-05-16 16:11:25 +0000}, journal = {Genetics}, keywords = {parameter estimation, Bayesian parameter estimation, Approximate Bayesian inferance}, month = {12}, @@ -131,6 +127,7 @@ @article{BeaumontZha2002 title = {{Approximate} {Bayesian} {Computation} in {Population} {Genetics}}, volume = {162}, year = {2002}, + doi = {10.1093/genetics/162.4.2025}, } @book{SissonFan2018Handbook, @@ -146,9 +143,7 @@ @Article{SissonFan2007 number = {6}, pages = {1760--1765}, volume = {104}, - bdsk-url-1 = {http://dx.doi.org/10.1073/pnas.0607208104}, - date-added = {2012-01-20 11:08:14 +0100}, - date-modified = {2012-06-06 14:54:46 +0200}, + doi = {10.1073/pnas.0607208104}, journal = {Proc. Natl. Acad. Sci.}, journal-full = {Proceedings of the National Academy of Sciences}, keywords = {parameter estimation, likelihood-free MCMC, sequential Monte Carlo, MCMC sampling}, @@ -166,6 +161,7 @@ @article{DelMoralDou2006 title = {Sequential {Monte} {Carlo} samplers}, volume = {68}, year = {2006}, + doi = {10.1111/j.1467-9868.2006.00553.x}, } @InProceedings{DuttaSch2017, @@ -181,23 +177,19 @@ @InProceedings{DuttaSch2017 acmid = {3093233}, address = {New York, NY, USA}, articleno = {8}, - bdsk-url-1 = {http://doi.acm.org/10.1145/3093172.3093233}, - bdsk-url-2 = {http://dx.doi.org/10.1145/3093172.3093233}, - date-added = {2018-04-09 22:28:17 +0000}, - date-modified = {2018-04-09 22:28:29 +0000}, keywords = {ABC, Library, Parallel, Spark}, numpages = {9}, year = {2017}, } -@inproceedings{KangasraasioLin2016, - author = {Kangasr{\"a}{\"a}si{\"o}, Antti and Lintusaari, Jarno and Skyt{\'e}n, Kusti and J{\"a}rvenp{\"a}{\"a}, Marko and Vuollekoski, Henri and Gutmann, Michael and Vehtari, Aki and Corander, Jukka and Kaski, Samuel}, - booktitle = {NIPS 2016 Workshop on Advances in Approximate Bayesian Inference}, - date-added = {2018-04-05 14:17:51 +0000}, - date-modified = {2018-04-05 14:22:55 +0000}, - location = {Barcelona, Spain}, - title = {{ELFI:} {E}ngine for {L}ikelihood-{F}ree {I}nference}, - year = {2016}, +@article{LintusaariVuo2018, + title = {Elfi: Engine for likelihood-free inference}, + author = {Lintusaari, Jarno and Vuollekoski, Henri and Kangasraasio, Antti and Skyt{\'e}n, Kusti and Jarvenpaa, Marko and Marttinen, Pekka and Gutmann, Michael U and Vehtari, Aki and Corander, Jukka and Kaski, Samuel}, + journal = {Journal of Machine Learning Research}, + volume = {19}, + number = {16}, + pages = {1--7}, + year = {2018}, } @Article{TankhilevichIsh2020, @@ -209,6 +201,7 @@ @Article{TankhilevichIsh2020 journal = {Bioinformatics}, publisher = {Oxford University Press}, year = {2020}, + doi = {10.1093/bioinformatics/btaa078}, } @Article{JabotFau2013, @@ -218,9 +211,6 @@ @Article{JabotFau2013 number = {7}, pages = {684--687}, volume = {4}, - bdsk-url-1 = {http://dx.doi.org/10.1111/2041-210X.12050}, - date-added = {2016-09-07 07:48:01 +0000}, - date-modified = {2016-09-07 07:48:01 +0000}, journal = {Methods Ecol. Evol.}, keywords = {ABC, software}, month = {July}, @@ -233,12 +223,7 @@ @Article{KlingerRic2018 number = {20}, pages = {3591--3593}, volume = {34}, - abstract = {Summary: Likelihood-free methods are often required for inference in systems biology. While approximate Bayesian computation (ABC) provides a theoretical solution, its practical application has often been challenging due to its high computational demands. To scale likelihood-free inference to computationally demanding stochastic models, we developed pyABC: a distributed and scalable ABC-Sequential Monte Carlo (ABC-SMC) framework. It implements a scalable, runtime-minimizing parallelization strategy for multi-core and distributed environments scaling to thousands of cores. The framework is accessible to non-expert users and also enables advanced users to experiment with and to custom implement many options of ABC-SMC schemes, such as acceptance threshold schedules, transition kernels and distance functions without alteration of pyABC's source code. pyABC includes a web interface to visualize ongoing and finished ABC-SMC runs and exposes an API for data querying and post-processing. -Availability and Implementation: pyABC is written in Python 3 and is released under a 3-clause BSD license. The source code is hosted on https://github.com/icb-dcm/pyabc and the documentation on http://pyabc.readthedocs.io. It can be installed from the Python Package Index (PyPI). -Supplementary information: Supplementary data are available at Bioinformatics online.}, - bdsk-url-1 = {https://doi.org/10.1093/bioinformatics/bty361}, - date-added = {2019-02-25 23:05:00 +0100}, - date-modified = {2019-04-09 11:43:27 +0200}, + doi = {10.1093/bioinformatics/bty361}, journal = {Bioinformatics}, journal-full = {Bioinformatics (Oxford, England)}, keywords = {ABC; software}, @@ -250,8 +235,6 @@ @Article{KlingerRic2018 @article{FilippiBar2013, author = {Filippi, S. and Barnes, C. P. and Cornebise, J. and Stumpf, M. P.}, - date-added = {2015-07-05 18:52:56 +0000}, - date-modified = {2017-09-30 10:29:35 +0000}, journal = {Stat. Appl. Genet. Mol.}, keywords = {ABC}, number = {1}, @@ -259,14 +242,12 @@ @article{FilippiBar2013 title = {On optimality of kernels for approximate {Bayesian} computation using sequential {Monte} {Carlo}}, volume = {12}, year = {2013}, + doi = {10.1515/sagmb-2012-0069}, } @inproceedings{KlingerHas2017, author = {Klinger, E. and Hasenauer, J.}, - bdsk-url-1 = {https://link.springer.com/chapter/10.1007/978-3-319-67471-1\\\\_8}, booktitle = {Computational Methods in Systems Biology. CMSB 2017}, - date-added = {2017-09-20 14:25:33 +0000}, - date-modified = {2017-09-20 14:29:22 +0000}, editor = {Feret, J. and Koeppl, H.}, keywords = {ABC, pyABC, parameter estimation}, publisher = {Springer, Cham}, @@ -274,6 +255,7 @@ @inproceedings{KlingerHas2017 title = {A scheme for adaptive selection of population sizes in {A}pproximate {B}ayesian {C}omputation - {S}equential {M}onte {C}arlo}, volume = {10545}, year = {2017}, + doi = {10.1007/978-3-319-67471-1_8}, } @article{ImleKum2019, @@ -284,7 +266,8 @@ @article{ImleKum2019 publisher = {Nature Publishing Group}, title = {Experimental and computational analyses reveal that environmental restrictions shape {HIV-1} spread in {3D} cultures}, volume = {10}, - year = {2019} + year = {2019}, + doi = {10.1038/s41467-019-09879-3}, } @Article{KerrStu2021, @@ -296,6 +279,7 @@ @Article{KerrStu2021 journal = {PLOS Computational Biology}, publisher = {Public Library of Science San Francisco, CA USA}, year = {2021}, + doi = {10.1371/journal.pcbi.1009149}, } @Article{BittnerPal2021, @@ -306,6 +290,7 @@ @Article{BittnerPal2021 journal = {Elife}, publisher = {eLife Sciences Publications Limited}, year = {2021}, + doi = {10.7554/eLife.56265}, } @Article{ColomHer2021, @@ -317,6 +302,7 @@ @Article{ColomHer2021 journal = {Nature}, publisher = {Nature Publishing Group}, year = {2021}, + doi = {10.1038/s41586-021-03965-7}, } @Article{CoulierHel2021, @@ -328,6 +314,7 @@ @Article{CoulierHel2021 journal = {The Journal of Chemical Physics}, publisher = {AIP Publishing LLC}, year = {2021}, + doi = {10.1063/5.0010764}, } @Article{BundgaardHar2022, @@ -336,6 +323,7 @@ @Article{BundgaardHar2022 journal = {bioRxiv}, publisher = {Cold Spring Harbor Laboratory}, year = {2022}, + doi = {10.1101/2022.02.10.479738}, } @Article{CostaOts2021, @@ -346,6 +334,7 @@ @Article{CostaOts2021 journal = {Elife}, publisher = {eLife Sciences Publications Limited}, year = {2021}, + doi = {10.7554/eLife.55665}, } @Article{BernardoSai2021, @@ -357,6 +346,7 @@ @Article{BernardoSai2021 journal = {Journal of Cosmology and Astroparticle Physics}, publisher = {IOP Publishing}, year = {2021}, + doi = {10.1088/1475-7516/2021/08/027}, } @Article{CantwellYum2019, @@ -367,6 +357,7 @@ @Article{CantwellYum2019 journal = {Computers in biology and medicine}, publisher = {Elsevier}, year = {2019}, + doi = {10.1016/j.compbiomed.2018.10.015}, } @Article{MinucciCur2021, @@ -378,13 +369,12 @@ @Article{MinucciCur2021 journal = {Ecological Applications}, publisher = {Wiley Online Library}, year = {2021}, + doi = {10.1002/eap.2442}, } @inproceedings{GhoshVog2012, author = {Ghosh, Dhiren and Vogt, Andrew}, booktitle = {Joint Statistical Meetings}, - date-added = {2016-08-30 07:17:44 +0000}, - date-modified = {2016-08-30 07:17:52 +0000}, keywords = {outlier detection}, organization = {American Statistical Association San Diego, CA}, pages = {3455--3460}, @@ -394,8 +384,6 @@ @inproceedings{GhoshVog2012 @book{MotulskyChr2003, author = {Motulsky, Harvey and Christopoulos, Arthur}, - date-added = {2016-08-30 07:14:06 +0000}, - date-modified = {2016-08-30 07:15:24 +0000}, keywords = {regression}, publisher = {GraphPad Software Inc., San Diego CA}, title = {Fitting models to biological data using linear and nonlinear regression: a practical guide to curve fitting}, @@ -408,6 +396,7 @@ @Article{SchaelteAla2021 journal = {bioRxiv}, publisher = {Cold Spring Harbor Laboratory}, year = {2021}, + doi = {10.1101/2021.07.29.454327}, } @Article{Prangle2017, @@ -416,11 +405,8 @@ @Article{Prangle2017 number = {1}, pages = {289--309}, volume = {12}, - bdsk-url-1 = {http://dx.doi.org/10.1214/16-BA1002}, - date-added = {2018-04-02 21:20:08 +0000}, - date-modified = {2018-04-02 21:22:16 +0000}, + doi = {10.1214/16-BA1002}, journal = {Bayesian Analysis}, - journal-full = {Bayesian Analysis}, keywords = {ABC}, year = {2017}, } @@ -434,6 +420,7 @@ @article{BlumNun2013 title = {A comparative review of dimension reduction methods in approximate {Bayesian} computation}, volume = {28}, year = {2013}, + doi = {10.1214/12-STS406}, } @article{FearnheadPra2012, @@ -446,6 +433,7 @@ @article{FearnheadPra2012 title = {Constructing summary statistics for approximate {Bayesian} computation: semi-automatic approximate {Bayesian} computation}, volume = {74}, year = {2012}, + doi = {10.1111/j.1467-9868.2011.01010.x}, } @Article{JiangWu2017, @@ -455,6 +443,7 @@ @Article{JiangWu2017 journal = {Statistica Sinica}, publisher = {JSTOR}, year = {2017}, + doi = {10.5705/ss.202015.0340}, } @Article{BorowskaGiu2021, @@ -465,15 +454,13 @@ @Article{BorowskaGiu2021 journal = {Journal of Computational Physics}, publisher = {Elsevier}, year = {2021}, + doi = {10.1016/j.jcp.2020.109999}, } @Article{SchaelteHas2022Pre, author = {Sch{\"a}lte, Yannik and Hasenauer, Jan}, title = {Informative and adaptive distances and summary statistics in sequential approximate {B}ayesian computation}, doi = {10.1101/2022.03.18.484896}, - eprint = {https://www.biorxiv.org/content/early/2022/03/20/2022.03.18.484896.1.full.pdf}, - url = {https://www.biorxiv.org/content/early/2022/03/20/2022.03.18.484896.1}, - elocation-id = {2022.03.18.484896}, journal = {bioRxiv}, publisher = {Cold Spring Harbor Laboratory}, year = {2022}, @@ -503,11 +490,9 @@ @article{Wilkinson2013 title = {Approximate {B}ayesian computation ({ABC}) gives exact results under the assumption of model error}, volume = {12}, year = {2013}, - Bdsk-Url-1 = {https://doi.org/10.1515/sagmb-2013-0010}, } @article{SchaelteHas2020, - abstract = {{Approximate Bayesian computation (ABC) is an increasingly popular method for likelihood-free parameter inference in systems biology and other fields of research, as it allows analyzing complex stochastic models. However, the introduced approximation error is often not clear. It has been shown that ABC actually gives exact inference under the implicit assumption of a measurement noise model. Noise being common in biological systems, it is intriguing to exploit this insight. But this is difficult in practice, as ABC is in general highly computationally demanding. Thus, the question we want to answer here is how to efficiently account for measurement noise in ABC.We illustrate exemplarily how ABC yields erroneous parameter estimates when neglecting measurement noise. Then, we discuss practical ways of correctly including the measurement noise in the analysis. We present an efficient adaptive sequential importance sampling-based algorithm applicable to various model types and noise models. We test and compare it on several models, including ordinary and stochastic differential equations, Markov jump processes and stochastically interacting agents, and noise models including normal, Laplace and Poisson noise. We conclude that the proposed algorithm could improve the accuracy of parameter estimates for a broad spectrum of applications.The developed algorithms are made publicly available as part of the open-source python toolbox pyABC (https://github.com/icb-dcm/pyabc).Supplementary data are available at Bioinformatics online.}}, author = {Sch{\"a}lte, Yannik and Hasenauer, Jan}, doi = {10.1093/bioinformatics/btaa397}, issn = {1367-4803}, @@ -518,7 +503,6 @@ @article{SchaelteHas2020 title = {{Efficient exact inference for dynamical systems with noisy measurements using sequential approximate Bayesian computation}}, volume = {36}, year = {2020}, - Bdsk-Url-1 = {https://doi.org/10.1093/bioinformatics/btaa397}, } @Article{BerntonJac2019, @@ -530,12 +514,11 @@ @Article{BerntonJac2019 journal = {J. Roy. Stat. Soc. B (Statistical Methodology)}, publisher = {Wiley Online Library}, year = {2019}, + doi = {10.1111/rssb.12312}, } @article{SilkFil2013, author = {Silk, D. and Filippi, S. and Stumpf, M. P. H.}, - date-added = {2015-07-18 15:52:08 +0000}, - date-modified = {2017-09-30 10:29:35 +0000}, institution = {Stat Appl Genet Mol Biol}, journal = {Stat. Appl. Genet. Mol. Biol.}, keywords = {ABC}, @@ -545,6 +528,7 @@ @article{SilkFil2013 title = {Optimizing threshold-schedules for sequential approximate {Bayesian} computation: {Applications} to molecular systems}, volume = {12}, year = {2013}, + doi = {10.1515/sagmb-2012-0043}, } @article{DrovandiPet2011, @@ -556,6 +540,7 @@ @article{DrovandiPet2011 title = {Estimation of parameters for macroparasite population evolution using approximate {Bayesian} computation}, volume = {67}, year = {2011}, + doi = {10.1111/j.1541-0420.2010.01410.x}, } @Article{BezansonEde2017, @@ -567,12 +552,11 @@ @Article{BezansonEde2017 journal = {SIAM review}, publisher = {SIAM}, year = {2017}, + doi = {10.1137/141000671}, } @article{HoopsSah2006, author = {Hoops, S. and Sahle, S. and Gauges, R. and Lee, C. and Pahle, J. and Simus, N. and Singhal, M. and Xu, L. and Mendes, P. and Kummer, U.}, - date-added = {2011-11-27 00:36:24 +0100}, - date-modified = {2017-08-17 15:22:22 +0000}, doi = {10.1093/bioinformatics/btl485}, file = {:HoopsSah2006.pdf:PDF}, journal = {Bioinformatics}, @@ -586,7 +570,6 @@ @article{HoopsSah2006 } @article{SchmiesterSch2021, - abstract = {Reproducibility and reusability of the results of data-based modeling studies are essential. Yet, there has been---so far---no broadly supported format for the specification of parameter estimation problems in systems biology. Here, we introduce PEtab, a format which facilitates the specification of parameter estimation problems using Systems Biology Markup Language (SBML) models and a set of tab-separated value files describing the observation model and experimental data as well as parameters to be estimated. We already implemented PEtab support into eight well-established model simulation and parameter estimation toolboxes with hundreds of users in total. We provide a Python library for validation and modification of a PEtab problem and currently 20 example parameter estimation problems based on recent studies.}, author = {Schmiester, Leonard AND Sch{\"a}lte, Yannik AND Bergmann, Frank T. AND Camba, Tacio AND Dudkin, Erika AND Egert, Janine AND Fr{\"o}hlich, Fabian AND Fuhrmann, Lara AND Hauber, Adrian L. AND Kemmer, Svenja AND Lakrisenko, Polina AND Loos, Carolin AND Merkt, Simon AND M{\"u}ller, Wolfgang AND Pathirana, Dilan AND Raim{\'u}ndez, Elba AND Refisch, Lukas AND Rosenblatt, Marcus AND Stapor, Paul L. AND St{\"a}dter, Philipp AND Wang, Dantong AND Wieland, Franz-Georg AND Banga, Julio R. AND Timmer, Jens AND Villaverde, Alejandro F. AND Sahle, Sven AND Kreutz, Clemens AND Hasenauer, Jan AND Weindl, Daniel}, date = {26-01-2021}, doi = {10.1371/journal.pcbi.1008646}, @@ -598,7 +581,6 @@ @article{SchmiesterSch2021 title = {{PEtab}---Interoperable specification of parameter estimation problems in systems biology}, volume = {17}, year = {2021}, - Bdsk-Url-1 = {https://doi.org/10.1371/journal.pcbi.1008646}, } @Article{FroehlichWei2021, @@ -610,8 +592,6 @@ @Article{FroehlichWei2021 issn = {1367-4803}, note = {btab227}, volume = {btab227}, - abstract = {{Ordinary differential equation models facilitate the understanding of cellular signal transduction and other biological processes. However, for large and comprehensive models, the computational cost of simulating or calibrating can be limiting. AMICI is a modular toolbox implemented in C++/Python/MATLAB that provides efficient simulation and sensitivity analysis routines tailored for scalable, gradient-based parameter estimation and uncertainty quantification.AMICI is published under the permissive BSD-3-Clause license with source code publicly available on https://github.com/AMICI-dev/AMICI. Citeable releases are archived on Zenodo.Supplementary data are available at Bioinformatics online.}}, - bdsk-url-1 = {https://doi.org/10.1093/bioinformatics/btab227}, journal = {Bioinformatics}, month = {April}, year = {2021}, @@ -619,9 +599,7 @@ @Article{FroehlichWei2021 @article{ToniStu2010, author = {Toni, T. and Stumpf, M. P. H.}, - date-added = {2010-09-26 21:46:49 +0200}, - date-modified = {2017-09-30 10:29:35 +0000}, - dio = {10.1093/bioinformatics/btp619}, + doi = {10.1093/bioinformatics/btp619}, journal = {Bioinformatics}, keywords = {ABC, model selection, Bayesian parameter estimation, Monte-Carlo method}, month = {10}, diff --git a/doc/joss_0_12/paper.md b/doc/joss_0_12/paper.md index 1f6cc660..17f45177 100644 --- a/doc/joss_0_12/paper.md +++ b/doc/joss_0_12/paper.md @@ -63,7 +63,7 @@ ABC is often combined with a sequential Monte-Carlo (ABC-SMC) scheme using impor ![**Basic ABC algorithm.** Parameters $\theta\sim\pi(\theta)$ are sampled from the prior or a proposal distribution, and passed to a black-box model generating potentially stochastic simulated data according to the likelihood $y\sim\pi(y|\theta)$. These are optionally passed through a summary statistics function giving a low-dimensional representation $s(y)$. Summary statistics of simulated and observed data are compared via a distance metric $d$, and the underlying parameters accepted if the distance is below an acceptance threshold $\varepsilon$.\label{fig:concept}](concept.pdf){ width=99% } While conceptually simple and widely applicable, ABC is computationally expensive, and its practical performance relies on a number of factors. -There exist several software packages implementing different algorithms in different languages, each with their own strengths, including notably in Python ABCpy [@DuttaSch2017] and ELFI [@KangasraasioLin2016], in Julia GpABC [@TankhilevichIsh2020], and in R EasyABC [@JabotFau2013]. +There exist several software packages implementing different algorithms in different languages, each with their own strengths, including notably in Python ABCpy [@DuttaSch2017] and ELFI [@LintusaariVuo2018], in Julia GpABC [@TankhilevichIsh2020], and in R EasyABC [@JabotFau2013]. pyABC implements at its core an ABC-SMC scheme based on @ToniStu2010 and facilicates robust and efficient inference for a broad spectrum of applications via robust methods and self-tuned choices of hyperparameters, reducing the need for manual tuning. An article on core features of pyABC was previously published [@KlingerRic2018], discussing in particular adaptive transition kernels [@FilippiBar2013], population sizes [@KlingerHas2017], and wall-time efficient parallelization via dynamic scheduling. pyABC is in use in a variety of fields, e.g. to model virus transmission on cellular [@ImleKum2019] and population level [@KerrStu2021], neuron circuits [@BittnerPal2021], cancer [@ColomHer2021], gene expression [@CoulierHel2021], axolotl regeneration [@CostaOts2021], universe expansion [@BernardoSai2021], cardiac electrophysiology [@CantwellYum2019], and bee colonies [@MinucciCur2021]. From 4a3f5e7c2b292c81cf6cdd400befd9b78cee22a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= Date: Mon, 20 Jun 2022 17:49:30 +0200 Subject: [PATCH 05/11] address review comment "state of field" #566 --- doc/joss_0_12/paper.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/joss_0_12/paper.md b/doc/joss_0_12/paper.md index 17f45177..bedf618c 100644 --- a/doc/joss_0_12/paper.md +++ b/doc/joss_0_12/paper.md @@ -63,9 +63,19 @@ ABC is often combined with a sequential Monte-Carlo (ABC-SMC) scheme using impor ![**Basic ABC algorithm.** Parameters $\theta\sim\pi(\theta)$ are sampled from the prior or a proposal distribution, and passed to a black-box model generating potentially stochastic simulated data according to the likelihood $y\sim\pi(y|\theta)$. These are optionally passed through a summary statistics function giving a low-dimensional representation $s(y)$. Summary statistics of simulated and observed data are compared via a distance metric $d$, and the underlying parameters accepted if the distance is below an acceptance threshold $\varepsilon$.\label{fig:concept}](concept.pdf){ width=99% } While conceptually simple and widely applicable, ABC is computationally expensive, and its practical performance relies on a number of factors. -There exist several software packages implementing different algorithms in different languages, each with their own strengths, including notably in Python ABCpy [@DuttaSch2017] and ELFI [@LintusaariVuo2018], in Julia GpABC [@TankhilevichIsh2020], and in R EasyABC [@JabotFau2013]. pyABC implements at its core an ABC-SMC scheme based on @ToniStu2010 and facilicates robust and efficient inference for a broad spectrum of applications via robust methods and self-tuned choices of hyperparameters, reducing the need for manual tuning. -An article on core features of pyABC was previously published [@KlingerRic2018], discussing in particular adaptive transition kernels [@FilippiBar2013], population sizes [@KlingerHas2017], and wall-time efficient parallelization via dynamic scheduling. pyABC is in use in a variety of fields, e.g. to model virus transmission on cellular [@ImleKum2019] and population level [@KerrStu2021], neuron circuits [@BittnerPal2021], cancer [@ColomHer2021], gene expression [@CoulierHel2021], axolotl regeneration [@CostaOts2021], universe expansion [@BernardoSai2021], cardiac electrophysiology [@CantwellYum2019], and bee colonies [@MinucciCur2021]. +An article on core features of pyABC was previously published [@KlingerRic2018], discussing in particular adaptive transition kernels [@FilippiBar2013], population sizes [@KlingerHas2017], and wall-time efficient parallelization via dynamic scheduling. +pyABC is in use in a variety of fields, e.g. to model virus transmission on cellular [@ImleKum2019] and population level [@KerrStu2021], neuron circuits [@BittnerPal2021], cancer [@ColomHer2021], gene expression [@CoulierHel2021], axolotl regeneration [@CostaOts2021], universe expansion [@BernardoSai2021], cardiac electrophysiology [@CantwellYum2019], and bee colonies [@MinucciCur2021]. + +Besides pyABC, there exist several other software packages implementing different algorithms in different languages, each with their own strengths, including notably in Python ABCpy [@DuttaSch2017] and ELFI [@LintusaariVuo2018], in Julia GpABC [@TankhilevichIsh2020], and in R EasyABC [@JabotFau2013]. +In particular, ABCpy, ELFI and GpABC, which are actively maintained at the time of writing, implement various likelihood-free methods, including and beyond ABC-SMC, such as Bayesian optimization, synthetic likelihoods, or Gaussian process emulation. +In contrast, pyABC focuses on providing a broadly applicable, efficient and robust implementation of ABC-SMC with various tailored algorithms. +Exclusive to pyABC are, at the time of writing and to the best of our knowledge, the following features: +While ABCpy and ELFI also allow distributed execution via static scheduling, only pyABC implements dynamic scheduling, further improving wall-time efficiency [@KlingerRic2018]. +Further, most methods described in the below section are only implemented in pyABC: +While e.g. ELFI implements basic adaptive distances based on @Prangle2017, only pyABC implements the robuster approach @SchaelteAla2021. +While e.g. ABCpy implements basic regression-based summary statistics based on @FearnheadPra2012, only pyABC implements the approaches in @SchaelteHas2022Pre overcoming limitations in the method by @FearnheadPra2012, improving the posterior approximation and introducing sensitivity weights. +Further, only pyABC implements the exact method under measurement noise @SchaelteHas2020. # New Features From 666544eacc01f345ccef2a00fc204d020e741af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= Date: Tue, 21 Jun 2022 11:25:55 +0200 Subject: [PATCH 06/11] address reviewer comments #570 --- doc/examples.rst | 3 +++ doc/joss_0_12/paper.bib | 24 ++++++++++++------------ doc/joss_0_12/paper.md | 10 +++++----- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/doc/examples.rst b/doc/examples.rst index 02ec7a36..e4bde307 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -18,6 +18,9 @@ which can be performed by !pip install pyabc --quiet Potentially, further dependencies may be required. +Unfortunately, at the moment (2022-06), Google Colab is using Python 3.7, +while pyABC and many other packages have proceeded to require Python >= 3.8. +Thus, not everything may work properly. Getting started --------------- diff --git a/doc/joss_0_12/paper.bib b/doc/joss_0_12/paper.bib index 1296abe4..f261ef1b 100644 --- a/doc/joss_0_12/paper.bib +++ b/doc/joss_0_12/paper.bib @@ -69,7 +69,7 @@ @Article{JagiellaRic2017 @Article{AndrieuRob2009, author = {Andrieu, Christophe and Roberts, Gareth O}, - title = {The pseudo-marginal approach for efficient Monte Carlo computations}, + title = {The pseudo-marginal approach for efficient {Monte} {Carlo} computations}, number = {2}, pages = {697--725}, volume = {37}, @@ -107,7 +107,7 @@ @article{PriceDro2018 @Article{PritchardSei1999, author = {Pritchard, Jonathan K and Seielstad, Mark T and Perez-Lezaun, Anna and Feldman, Marcus W}, - title = {Population growth of human Y chromosomes: a study of Y chromosome microsatellites.}, + title = {Population growth of human {Y} chromosomes: a study of {Y} chromosome microsatellites.}, number = {12}, pages = {1791--1798}, volume = {16}, @@ -133,7 +133,7 @@ @article{BeaumontZha2002 @book{SissonFan2018Handbook, author = {Sisson, Scott A and Fan, Yanan and Beaumont, Mark}, publisher = {Chapman and Hall/CRC}, - title = {Handbook of approximate Bayesian computation}, + title = {Handbook of approximate {B}ayesian computation}, year = {2018}, } @@ -167,7 +167,7 @@ @article{DelMoralDou2006 @InProceedings{DuttaSch2017, author = {Dutta, Ritabrata and Schoengens, Marcel and Onnela, Jukka-Pekka and Mira, Antonietta}, booktitle = {Proceedings of the Platform for Advanced Scientific Computing Conference}, - title = {ABCpy: A User-Friendly, Extensible, and Parallel Library for Approximate {B}ayesian Computation}, + title = {{ABCpy}: A User-Friendly, Extensible, and Parallel Library for Approximate {B}ayesian Computation}, doi = {10.1145/3093172.3093233}, isbn = {978-1-4503-5062-4}, location = {Lugano, Switzerland}, @@ -183,8 +183,8 @@ @InProceedings{DuttaSch2017 } @article{LintusaariVuo2018, - title = {Elfi: Engine for likelihood-free inference}, - author = {Lintusaari, Jarno and Vuollekoski, Henri and Kangasraasio, Antti and Skyt{\'e}n, Kusti and Jarvenpaa, Marko and Marttinen, Pekka and Gutmann, Michael U and Vehtari, Aki and Corander, Jukka and Kaski, Samuel}, + title = {{Elfi}: Engine for likelihood-free inference}, + author = {Lintusaari, Jarno and Vuollekoski, Henri and Kangasr{\"a}{\"a}sio, Antti and Skyt{\'e}n, Kusti and Jarvenp{\"a}{\"a}, Marko and Marttinen, Pekka and Gutmann, Michael U and Vehtari, Aki and Corander, Jukka and Kaski, Samuel}, journal = {Journal of Machine Learning Research}, volume = {19}, number = {16}, @@ -194,7 +194,7 @@ @article{LintusaariVuo2018 @Article{TankhilevichIsh2020, author = {Tankhilevich, Evgeny and Ish-Horowicz, Jonathan and Hameed, Tara and Roesch, Elisabeth and Kleijn, Istvan and Stumpf, Michael PH and He, Fei}, - title = {GpABC: a {J}ulia package for approximate {B}ayesian computation with {G}aussian process emulation}, + title = {{GpABC}: a {J}ulia package for approximate {B}ayesian computation with {G}aussian process emulation}, number = {10}, pages = {3286--3287}, volume = {36}, @@ -272,7 +272,7 @@ @article{ImleKum2019 @Article{KerrStu2021, author = {Kerr, Cliff C and Stuart, Robyn M and Mistry, Dina and Abeysuriya, Romesh G and Rosenfeld, Katherine and Hart, Gregory R and N{\'u}{\~n}ez, Rafael C and Cohen, Jamie A and Selvaraj, Prashanth and Hagedorn, Brittany and others}, - title = {Covasim: an agent-based model of COVID-19 dynamics and interventions}, + title = {{Covasim}: an agent-based model of {COVID-19} dynamics and interventions}, number = {7}, pages = {e1009149}, volume = {17}, @@ -362,7 +362,7 @@ @Article{CantwellYum2019 @Article{MinucciCur2021, author = {Minucci, Jeffrey M and Curry, Robert and DeGrandi-Hoffman, Gloria and Douglass, Cameron and Garber, Kris and Purucker, S Thomas}, - title = {Inferring pesticide toxicity to honey bees from a field-based feeding study using a colony model and Bayesian inference}, + title = {Inferring pesticide toxicity to honey bees from a field-based feeding study using a colony model and {B}ayesian inference}, number = {8}, pages = {e02442}, volume = {31}, @@ -468,7 +468,7 @@ @Article{SchaelteHas2022Pre @Article{scikitlearn2011, author = {Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V. and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.}, - title = {Scikit-learn: Machine Learning in {P}ython}, + title = {{Scikit-learn}: Machine Learning in {P}ython}, pages = {2825--2830}, volume = {12}, journal = {Journal of Machine Learning Research}, @@ -500,14 +500,14 @@ @article{SchaelteHas2020 month = {7}, number = {Supplement 1}, pages = {i551-i559}, - title = {{Efficient exact inference for dynamical systems with noisy measurements using sequential approximate Bayesian computation}}, + title = {Efficient exact inference for dynamical systems with noisy measurements using sequential approximate {B}ayesian computation}, volume = {36}, year = {2020}, } @Article{BerntonJac2019, author = {Bernton, Espen and Jacob, Pierre E and Gerber, Mathieu and Robert, Christian P}, - title = {Approximate Bayesian computation with the Wasserstein distance}, + title = {Approximate {B}ayesian computation with the {W}asserstein distance}, number = {2}, pages = {235--269}, volume = {81}, diff --git a/doc/joss_0_12/paper.md b/doc/joss_0_12/paper.md index bedf618c..cfcd4e76 100644 --- a/doc/joss_0_12/paper.md +++ b/doc/joss_0_12/paper.md @@ -44,7 +44,7 @@ At its core, it implements a sequential Monte-Carlo (SMC) scheme, with various a To scale to computationally expensive problems, it provides efficient parallelization strategies for multi-core and distributed systems. The package is highly modular and designed to be easily usable. In this major update to pyABC, we implement several advanced algorithms that facilitate efficient and robust inference on a wide range of data and model types. -In particular, we implement algorithms to account for noise, to adaptively scale-normalize distance metrics, to robustly handle data outliers, to elucidate informative data points via regression models, to circumvent summary statistics via optimal transport based distances, and to avoid local optima in acceptance threshold sequences by predicting acceptance rate curves. +In particular, we implement algorithms to accurately account for measurement noise, to adaptively scale-normalize distance metrics, to robustly handle data outliers, to elucidate informative data points via regression models, to circumvent summary statistics via optimal transport based distances, and to avoid local optima in acceptance threshold sequences by predicting acceptance rate curves. Further, we provide, besides previously existing support of Python and R, interfaces in particular to the Julia language, the COPASI simulator, and the PEtab standard. # Statement of Need @@ -56,13 +56,13 @@ They are commonly subject to unknown parameters that need to be estimated using The Bayesian framework allows doing so by updating prior beliefs about parameters by the likelihood of data given parameters. However, especially for complex stochastic models, evaluating the likelihood is often infeasible [@TavareBal1997; @Wilkinson2009; @JagiellaRic2017]. Thus, likelihood-free methods such as ABC have been developed [@AndrieuRob2009; @GourierouxMon1993; @PriceDro2018; @PritchardSei1999; @BeaumontZha2002]. -ABC is widely applicable, as it only requires an executable ``black-box'' forward process model, simulating data given model parameters. -In a nutshell, ABC circumvents likelihood evaluation by accepting if a distance between simulated and observed data is below a threshold [@SissonFan2018Handbook] (\autoref{fig:concept}). +ABC is widely applicable, as it only requires an executable forward process model, simulating data given model parameters. +In a nutshell, ABC circumvents likelihood evaluation by accepting parameters if a distance between corresponding simulated and observed data is below a threshold [@SissonFan2018Handbook] (\autoref{fig:concept}). ABC is often combined with a sequential Monte-Carlo (ABC-SMC) scheme using importance sampling, which gradually reduces the acceptance threshold and thus improves the posterior approximation, while maintaining high acceptance rates [@SissonFan2007; @DelMoralDou2006]. -![**Basic ABC algorithm.** Parameters $\theta\sim\pi(\theta)$ are sampled from the prior or a proposal distribution, and passed to a black-box model generating potentially stochastic simulated data according to the likelihood $y\sim\pi(y|\theta)$. These are optionally passed through a summary statistics function giving a low-dimensional representation $s(y)$. Summary statistics of simulated and observed data are compared via a distance metric $d$, and the underlying parameters accepted if the distance is below an acceptance threshold $\varepsilon$.\label{fig:concept}](concept.pdf){ width=99% } +![**Basic ABC algorithm.** Parameters $\theta\sim\pi(\theta)$ are sampled from the prior or a proposal distribution, and passed to a simulator model (here exemplarily biological systems) generating potentially stochastic simulated data according to the likelihood $y\sim\pi(y|\theta)$. These are optionally passed through a summary statistics function (here exemplarily a neural network model as employed in @SchaelteHas2022Pre) giving a low-dimensional representation $s(y)$. Summary statistics of simulated and observed data are compared via a distance metric $d$, and the underlying parameters accepted if the distance is below an acceptance threshold $\varepsilon$.\label{fig:concept}](concept.pdf){ width=99% } -While conceptually simple and widely applicable, ABC is computationally expensive, and its practical performance relies on a number of factors. +While conceptually simple and widely applicable, ABC is computationally expensive, as it requires simulating the forward model many times for different parameters. Its practical performance relies on a number of factors. pyABC implements at its core an ABC-SMC scheme based on @ToniStu2010 and facilicates robust and efficient inference for a broad spectrum of applications via robust methods and self-tuned choices of hyperparameters, reducing the need for manual tuning. An article on core features of pyABC was previously published [@KlingerRic2018], discussing in particular adaptive transition kernels [@FilippiBar2013], population sizes [@KlingerHas2017], and wall-time efficient parallelization via dynamic scheduling. pyABC is in use in a variety of fields, e.g. to model virus transmission on cellular [@ImleKum2019] and population level [@KerrStu2021], neuron circuits [@BittnerPal2021], cancer [@ColomHer2021], gene expression [@CoulierHel2021], axolotl regeneration [@CostaOts2021], universe expansion [@BernardoSai2021], cardiac electrophysiology [@CantwellYum2019], and bee colonies [@MinucciCur2021]. From f91bd9d00a796bdbc737f97687060f96a8b32df6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= Date: Tue, 21 Jun 2022 23:36:36 +0200 Subject: [PATCH 07/11] streamline name of Scott Sisson --- doc/joss_0_12/paper.bib | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/joss_0_12/paper.bib b/doc/joss_0_12/paper.bib index f261ef1b..7cdade24 100644 --- a/doc/joss_0_12/paper.bib +++ b/doc/joss_0_12/paper.bib @@ -131,14 +131,14 @@ @article{BeaumontZha2002 } @book{SissonFan2018Handbook, - author = {Sisson, Scott A and Fan, Yanan and Beaumont, Mark}, + author = {Sisson, Scott A. and Fan, Yanan and Beaumont, Mark}, publisher = {Chapman and Hall/CRC}, title = {Handbook of approximate {B}ayesian computation}, year = {2018}, } @Article{SissonFan2007, - author = {Sisson, S. A. and Fan, Y. and Tanaka, M. M.}, + author = {Sisson, Scott A. and Fan, Y. and Tanaka, M. M.}, title = {Sequential {M}onte {C}arlo without likelihoods}, number = {6}, pages = {1760--1765}, @@ -412,7 +412,7 @@ @Article{Prangle2017 } @article{BlumNun2013, - author = {Blum, Michael GB and Nunes, Maria Antonieta and Prangle, Dennis and Sisson, Scott A}, + author = {Blum, Michael GB and Nunes, Maria Antonieta and Prangle, Dennis and Sisson, Scott A.}, journal = {Statistical Science}, number = {2}, pages = {189--208}, From 004826eb8fbcaaa7ef7fe19bc2a35f78f2aaceb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= Date: Sat, 9 Jul 2022 13:37:32 +0200 Subject: [PATCH 08/11] Update julia reference: DiffEqJump -> JumpProcesses --- doc/examples/model_julia/SIR.jl | 4 ++-- doc/examples/using_julia.ipynb | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/examples/model_julia/SIR.jl b/doc/examples/model_julia/SIR.jl index a11097ba..d5a2115b 100644 --- a/doc/examples/model_julia/SIR.jl +++ b/doc/examples/model_julia/SIR.jl @@ -5,7 +5,7 @@ module SIR # Install dependencies using Pkg Pkg.add("Catalyst") -Pkg.add("DiffEqJump") +Pkg.add("JumpProcesses") # Define reaction network using Catalyst @@ -24,7 +24,7 @@ tspan = (0.0, 250.0) prob = DiscreteProblem(sir_model, u0, tspan, p) # formulate as Markov jump process -using DiffEqJump +using JumpProcesses jump_prob = JumpProblem( sir_model, prob, Direct(), save_positions=(false, false), ) diff --git a/doc/examples/using_julia.ipynb b/doc/examples/using_julia.ipynb index b29e23a3..84c88ccd 100644 --- a/doc/examples/using_julia.ipynb +++ b/doc/examples/using_julia.ipynb @@ -65,8 +65,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 1min 28s, sys: 3.97 s, total: 1min 32s\n", - "Wall time: 1min 34s\n" + "CPU times: user 33.7 s, sys: 1.46 s, total: 35.1 s\n", + "Wall time: 34.9 s\n" ] } ], @@ -501,7 +501,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.10.4" } }, "nbformat": 4, From 5c21070fdbcd1af4794600e783b1b1cdc5894985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= <31767307+yannikschaelte@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:34:54 +0200 Subject: [PATCH 09/11] Remove jinja2 fixing; update doc build requirements (#583) --- doc/conf.py | 9 ++++++++- setup.cfg | 14 ++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 662b1d26..f36628b4 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -29,19 +29,26 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + # include documentation from docstrings 'sphinx.ext.autodoc', + # generate autodoc summaries + 'sphinx.ext.autosummary', + # use mathjax for latex formulas 'sphinx.ext.mathjax', # link to code 'sphinx.ext.viewcode', # link to other projects' docs 'sphinx.ext.intersphinx', + # support numpy and google style docstrings 'sphinx.ext.napoleon', + # support todo items 'sphinx.ext.todo', + # test snippets in the documentation 'sphinx.ext.doctest', + # source parser for jupyter notebook files 'nbsphinx', # code highlighting in jupyter cells 'IPython.sphinxext.ipython_console_highlighting', - 'sphinx.ext.autosummary', ] # default autodoc options diff --git a/setup.cfg b/setup.cfg index e6d1caf2..97105295 100644 --- a/setup.cfg +++ b/setup.cfg @@ -107,14 +107,12 @@ autograd = examples = notebook >= 6.1.4 doc = - sphinx >= 3.1.0 - nbsphinx >= 0.7.0 - nbconvert >= 5.6.1 - sphinx-rtd-theme >= 0.4.3 - sphinx_autodoc_typehints >= 1.11.1 - ipython >= 7.18.1 - # TODO unpin when nbconvert/issues/1736 is fixed - jinja2<3.1.0 + sphinx >= 5.1.0 + nbsphinx >= 0.8.9 + nbconvert >= 6.5.0 + sphinx-rtd-theme >= 1.0.0 + sphinx_autodoc_typehints >= 1.18.3 + ipython >= 8.4.0 test = pytest >= 5.4.3 pytest-cov >= 2.10.0 From 073281ab2c989434f79eaaec4129584232129be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= Date: Tue, 30 Aug 2022 12:01:31 +0200 Subject: [PATCH 10/11] fix flake8 dep changes --- pyabc/distance/distance.py | 3 +-- pyabc/distance/kernel.py | 3 +-- pyabc/sampler/base.py | 5 ++--- pyabc/sampler/eps_mixin.py | 4 +--- pyabc/transition/transitionmeta.py | 4 +--- tox.ini | 6 ++---- 6 files changed, 8 insertions(+), 17 deletions(-) diff --git a/pyabc/distance/distance.py b/pyabc/distance/distance.py index df381aef..7f8c20e1 100644 --- a/pyabc/distance/distance.py +++ b/pyabc/distance/distance.py @@ -1,7 +1,6 @@ """Various basic distances.""" import logging -from abc import ABC from typing import Callable, List, Union import numpy as np @@ -13,7 +12,7 @@ logger = logging.getLogger("ABC.Distance") -class DistanceWithMeasureList(Distance, ABC): +class DistanceWithMeasureList(Distance): """ Base class for distance functions with measure list. This class is not functional on its own. diff --git a/pyabc/distance/kernel.py b/pyabc/distance/kernel.py index 0d5b89ae..d902d6cf 100644 --- a/pyabc/distance/kernel.py +++ b/pyabc/distance/kernel.py @@ -1,5 +1,4 @@ """Stochastic kernels.""" -from abc import ABC from typing import Callable, List, Sequence, Union import numpy as np @@ -13,7 +12,7 @@ SCALES = [SCALE_LIN, SCALE_LOG] -class StochasticKernel(Distance, ABC): +class StochasticKernel(Distance): """ A stochastic kernel assesses the similarity between observed and simulated summary statistics or data via a probability measure. diff --git a/pyabc/sampler/base.py b/pyabc/sampler/base.py index 7c08e9fa..1346a8a4 100644 --- a/pyabc/sampler/base.py +++ b/pyabc/sampler/base.py @@ -1,4 +1,4 @@ -from abc import ABC, ABCMeta, abstractmethod +from abc import ABC, abstractmethod from numbers import Real from typing import Callable, Union @@ -33,13 +33,12 @@ def sample_until_n_accepted(self, n, simulate_one, t, **kwargs): return sample_until_n_accepted -class SamplerMeta(ABCMeta): +class SamplerMeta(type): """ This metaclass handles the checking of sampling output values. """ def __init__(cls, name, bases, attrs): - ABCMeta.__init__(cls, name, bases, attrs) cls.sample_until_n_accepted = wrap_sample(cls.sample_until_n_accepted) diff --git a/pyabc/sampler/eps_mixin.py b/pyabc/sampler/eps_mixin.py index d8ab50fc..a25a828c 100644 --- a/pyabc/sampler/eps_mixin.py +++ b/pyabc/sampler/eps_mixin.py @@ -1,11 +1,9 @@ -import abc - import cloudpickle as pickle import numpy as np from sortedcontainers import SortedListWithKey -class EPSMixin(abc.ABC): +class EPSMixin: def full_submit_function_pickle(self, job_id): simulate_one = pickle.loads(self.simulate_accept_one) result_batch = [] diff --git a/pyabc/transition/transitionmeta.py b/pyabc/transition/transitionmeta.py index 4c1e93e5..2aa09cb5 100644 --- a/pyabc/transition/transitionmeta.py +++ b/pyabc/transition/transitionmeta.py @@ -1,5 +1,4 @@ import functools -from abc import ABCMeta from typing import Union import numpy as np @@ -53,14 +52,13 @@ def rvs_single(self): return rvs_single -class TransitionMeta(ABCMeta): +class TransitionMeta(type): """ This metaclass handles the special case of no parameters. Transition classes do not have to check for it anymore """ def __init__(cls, name, bases, attrs): - ABCMeta.__init__(cls, name, bases, attrs) cls.fit = wrap_fit(cls.fit) cls.pdf = wrap_pdf(cls.pdf) cls.rvs = wrap_rvs(cls.rvs) diff --git a/tox.ini b/tox.ini index f1a23db7..2ffc53be 100644 --- a/tox.ini +++ b/tox.ini @@ -148,12 +148,10 @@ description = [testenv:flake8] skip_install = true deps = - # TODO unfix when bandit dep fixed - bandit < 1.7.3 black >= 22.3.0 flake8 >= 3.8.3 - flake8-bandit >= 2.1.2 - flake8-bugbear >= 20.1.4 + flake8-bandit >= 4.1.1 + flake8-bugbear >= 22.8.23 flake8-colors >= 0.1.6 #flake8-commas >= 2.0.0 flake8-comprehensions >= 3.2.3 From 82fa78d1a11424d52a798fb4630c1f0e0cde408e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Sch=C3=A4lte?= <31767307+yannikschaelte@users.noreply.github.com> Date: Tue, 30 Aug 2022 12:37:35 +0200 Subject: [PATCH 11/11] fix abc hierarchy (#584) --- CHANGELOG.rst | 11 +++++++++++ pyabc/sampler/base.py | 5 +++-- pyabc/transition/transitionmeta.py | 4 +++- pyabc/version.py | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 57ffc80a..3c762c26 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,6 +8,17 @@ Release Notes ........... +0.12.6 (2022-08-30) +------------------- + +Minor: + +* Add JOSS paper of version 0.12.5 +* Update Julia reference DiffEqJump -> JumpProcesses (name change) +* Unfix jinja2 +* Update flake8 dependencies after new issues + + 0.12.5 (2022-06-21) ------------------- diff --git a/pyabc/sampler/base.py b/pyabc/sampler/base.py index 1346a8a4..dcdd0302 100644 --- a/pyabc/sampler/base.py +++ b/pyabc/sampler/base.py @@ -1,4 +1,4 @@ -from abc import ABC, abstractmethod +from abc import ABC, ABCMeta, abstractmethod from numbers import Real from typing import Callable, Union @@ -33,12 +33,13 @@ def sample_until_n_accepted(self, n, simulate_one, t, **kwargs): return sample_until_n_accepted -class SamplerMeta(type): +class SamplerMeta(ABCMeta): # noqa: B024 """ This metaclass handles the checking of sampling output values. """ def __init__(cls, name, bases, attrs): + ABCMeta.__init__(cls, name, bases, attrs) cls.sample_until_n_accepted = wrap_sample(cls.sample_until_n_accepted) diff --git a/pyabc/transition/transitionmeta.py b/pyabc/transition/transitionmeta.py index 2aa09cb5..07ec3700 100644 --- a/pyabc/transition/transitionmeta.py +++ b/pyabc/transition/transitionmeta.py @@ -1,4 +1,5 @@ import functools +from abc import ABCMeta from typing import Union import numpy as np @@ -52,13 +53,14 @@ def rvs_single(self): return rvs_single -class TransitionMeta(type): +class TransitionMeta(ABCMeta): # noqa: B024 """ This metaclass handles the special case of no parameters. Transition classes do not have to check for it anymore """ def __init__(cls, name, bases, attrs): + ABCMeta.__init__(cls, name, bases, attrs) cls.fit = wrap_fit(cls.fit) cls.pdf = wrap_pdf(cls.pdf) cls.rvs = wrap_rvs(cls.rvs) diff --git a/pyabc/version.py b/pyabc/version.py index 37f15049..55fe9c40 100644 --- a/pyabc/version.py +++ b/pyabc/version.py @@ -1 +1 @@ -__version__ = '0.12.5' +__version__ = '0.12.6'