Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bibat: Batteries-included Bayesian analysis template #82

Closed
3 of 10 tasks
teddygroves opened this issue Feb 21, 2023 · 5 comments
Closed
3 of 10 tasks

bibat: Batteries-included Bayesian analysis template #82

teddygroves opened this issue Feb 21, 2023 · 5 comments

Comments

@teddygroves
Copy link

teddygroves commented Feb 21, 2023

Submitting Author: Teddy Groves (@teddygroves)
Package Name: bibat
One-Line Description of Package: a batteries-included template for Bayesian data analysis projects
Repository Link (if existing): https://github.com/teddygroves/bibat


Description

Bibat is a Python package providing a flexible interactive template for Bayesian statistical analysis projects.

It aims to make it easier to create software projects that implement a Bayesian workflow that scales to arbitrarily many inter-related statistical models, data transformations, inferences and computations. Bibat also aims to promote software quality by providing a modular, automated and reproducible project that takes advantage of and integrates together the most up to date statistical software.

Bibat comes with "batteries included" in the sense that it creates a working example project, which the user can adapt so that it implements their desired analysis. We believe this style of template makes for better usability and easier testing of Bayesian workflow projects compared with the alternative approach of providing an incomplete skeleton project.

Scope

  • Please indicate which category or categories this package falls under:
    • Data retrieval
    • Data extraction
    • Data munging
    • Data deposition
    • Data visualization
    • Reproducibility
    • Geospatial
    • Education
    • Unsure/Other (explain below)

I think the best category would be 'workflow automation and versioning' as described here but 'reproducibility' works as well!

  • Explain how and why the package falls under these categories (briefly, 1-2 sentences). Please note any areas you are unsure of:

Bibat makes Bayesian statistical analysis projects easier to reproduce by providing easy access to automation, a file-based and declarative workflow and a project structure with well-designed abstractions and modules.

  • Who is the target audience and what are the scientific applications of this package?

The target audience is people who want to write software implementing a Bayesian workflow as described in this paper and are willing to do so using Python scientific libraries, Stan, cmdstanpy, pydantic, pandera and make, as well as perhaps pytest, sphinx, quarto and github actions.

  • Are there other Python packages that accomplish similar things? If so, how does yours differ?

I am not aware of any interactive template that specifically targets a Python-based Bayesian workflow that scales to arbitrarily many models and data transformations.

In addition, bibat is unusual compared to other interactive templates because it is 'batteries-inclued', providing a full working example project rather than an incomplete skeleton

  • Any other questions or issues we should be aware of:

I previously made a presubission enquiry (#62) about an earlier version of this package, which pyOpenSci could not review at the time.

I am making another enquiry to see if it is now in scope, considering the latest state of the package and pyOpenSci's latest policy and capacity.

The following changes might be particularly relevant:

  • bibat is now a Python package rather than a cookiecutter template. (Edit: to be clear, bibat uses a cookiecutter template 'under the hood')
  • bibat's documentation is now much more comprehensive, including a detailed vignette explaining how to implement a complex statistical analysis.
  • bibat would now avoid being flagged by joss for having fewer than 1000 lines of non-notebook Python or R code (see recent cloc action here).

I also noticed that a broadly similar package was recently considered within scope (#74).

P.S. *Have feedback/comments about our review process? Leave a comment here

@NickleDave
Copy link
Contributor

Hi @teddygroves! Just want to let you know we saw this presubmission

It's obvious you've put a ton of work into bibat.
I do see you've made changes that meet many of our requirements for scope and the requirements for JOSS articles, as you describe.

We are discussing with people more familiar with Bayesian workflows and STAN. This presubmission inquiry also brings up some questions about how we define the category of reproducibility that we need to answer.

Please expect an answer from us sometime next week. Thank you!

@teddygroves
Copy link
Author

Thanks a lot for the update!

@NickleDave
Copy link
Contributor

Hi @teddygroves we have decided to go ahead with a review.

Some context, to keep thing open: the general consensus is that this package clearly fits into the replication category, and that it would be considered in scope by our sister org rOpenSci, along the lines of tools for research compendia AKA repro-packs. Like I said before, it's clear you've put a ton of work in to development. There's a question of how generalized the approach is, or whether the community you're developing for might see it as "opinionated", but a good way to find out would be to put the package through review!

Please go ahead and make a full submission. Once you do so, I will close this issue. I'll proceed with finding an editor in the meantime.

@teddygroves
Copy link
Author

Great! I just made the full submission - excited for the review process. Please let me know anything I can help with!

@NickleDave
Copy link
Contributor

Perfect, thank you @teddygroves. We are working on finding an editor now and I will get to editor checks next. Closing this now that you've opened #83

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants