Skip to content
New issue

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

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

Already on GitHub? # to your account

[REVIEW]: swyft: Truncated Marginal Neural Ratio Estimation in Python #4205

Closed
editorialbot opened this issue Feb 25, 2022 · 69 comments
Closed
Assignees
Labels
accepted Jupyter Notebook published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Feb 25, 2022

Submitting author: @bkmi (Benjamin Miller)
Repository: https://github.com/undark-lab/swyft
Branch with paper.md (empty if default branch): joss-submission-do-not-delete
Version: v0.3.2
Editor: @pdebuyl
Reviewers: @mattpitkin, @olgadoronina
Archive: 10.5281/zenodo.6412465

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/2dafe33336397a6d5dd8f3c692eaab22"><img src="https://joss.theoj.org/papers/2dafe33336397a6d5dd8f3c692eaab22/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/2dafe33336397a6d5dd8f3c692eaab22/status.svg)](https://joss.theoj.org/papers/2dafe33336397a6d5dd8f3c692eaab22)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@mattpitkin & @olgadoronina, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @pdebuyl know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @mattpitkin

📝 Checklist for @olgadoronina

@editorialbot
Copy link
Collaborator Author

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

⚠️ JOSS reduced service mode ⚠️

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

Checking the BibTeX entries failed with the following error:

No paper file path

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.88  T=0.28 s (340.3 files/s, 53509.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          47           1185           1115           5292
Jupyter Notebook                14              0           4630            968
reStructuredText                22            250            310            683
YAML                             5             20             28            108
Markdown                         1             27              0             65
TeX                              2              1              0             32
DOS Batch                        1              8              1             26
make                             1              4              6             10
TOML                             1              2              0              8
-------------------------------------------------------------------------------
SUM:                            94           1497           6090           7192
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

Failed to discover a Statement of need section in paper

@editorialbot
Copy link
Collaborator Author

@pdebuyl
Copy link

pdebuyl commented Feb 25, 2022

@editorialbot set joss-submission-do-not-delete as branch

@editorialbot
Copy link
Collaborator Author

Done! branch is now joss-submission-do-not-delete

@pdebuyl
Copy link

pdebuyl commented Feb 25, 2022

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@pdebuyl
Copy link

pdebuyl commented Feb 25, 2022

Hi @mattpitkin @olgadoronina please read full the instructions at #4205 (comment) , they contain all the necessary information. I remain available in any case.

@mattpitkin
Copy link

mattpitkin commented Feb 25, 2022

Review checklist for @mattpitkin

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/undark-lab/swyft?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@bkmi) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@mattpitkin
Copy link

@bkmi I've just installed version 0.2.1 of swyft from PyPI. I'm trying to run the Quickstart guide, but on line:

marginal_indices_1d, marginal_indices_2d = swyft.utils.get_corner_marginal_indices(n_parameters)

it gives the error:

AttributeError: module 'swyft.utils' has no attribute 'get_corner_marginal_indices'

I assume this is because v0.2.1 isn't up-to-date. Could you push the latest release to PyPI?

@mattpitkin
Copy link

The paper is very nice. I only have a minor suggestion, which is due to my gravitational-wave bias. Seeing as rapid inference for gravitational waves is mentioned, it might be worth citing some of the related work in, e.g., Gabbard et al, Dax et al, Chua & Vallisneri and (a paper including one the co-authors of swyft) Delaunay et al.

@bkmi
Copy link

bkmi commented Feb 28, 2022

Ah yes. The newest version, the one intended for review, is just a release candidate. I will update it asap on pypi and on github. Then the documentation will also correspond to the easily downloadable version.

Good idea on the citations.

@bkmi
Copy link

bkmi commented Feb 28, 2022

the pip install swyft should now be addressed and the user would be able to access the documentation and examples in notebooks.

I still need to make the changes w.r.t. the citations!

@mattpitkin
Copy link

Great, thanks very much. I'll retry running some of the examples tomorrow and expect to be able to sign-off shortly.

@olgadoronina
Copy link

olgadoronina commented Mar 1, 2022

Review checklist for @olgadoronina

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/undark-lab/swyft?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@bkmi) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@bkmi
Copy link

bkmi commented Mar 1, 2022

I added those citations!

p.s. due to some release issues the version that should be reviewed is actually v0.3.1.post0.

@editorialbot generate pdf

@mattpitkin
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@mattpitkin
Copy link

@bkmi I see that the version generation is now via setuptools_scm, which is great. I can get the version number by doing:

from swyft.__version__ import version
print(version)

However, it would be great if the version number could be obtained just by using:

import swyft
print(swyft.__version__)

You can achieve this by adding the following to the swyft/__init__.py file:

try:
    from .__version__ import version as __version__
except ModuleNotFoundError:
    __version__ = ""

@bkmi
Copy link

bkmi commented Mar 2, 2022

Nice tip! I didn't know about that and I will use it in all my future projects!

I have made the change (along with fixing a from swyft import * bug which I found) in this commit. Would you like me to make an new release for it or should I wait until I incorporate other changes from this review process?

@mattpitkin
Copy link

I have successfully installed and run several of the examples and confirmed that I achieve consistent results. I'm happy to sign-off swyft as reviewed.

I have a couple of questions unrelated to the review, one's a stylistic one and the other's more scientific:

  • would it be possible in the violin plots to pass in the parameter names as labels? From looking at the hist1d code this looks possible, but not necessarily for the violin plots.
  • (I should probably read the related papers, but...) given that swyft approximates the likelihood to evidence ratio, it is possible in any way to extract the evidence value too?

@pdebuyl
Copy link

pdebuyl commented Mar 4, 2022

Thanks @mattpitkin for the review!

@bkmi
Copy link

bkmi commented Mar 8, 2022

I have successfully installed and run several of the examples and confirmed that I achieve consistent results. I'm happy to sign-off swyft as reviewed.

Thanks for donating your time and expertise!

I have a couple of questions unrelated to the review, one's a stylistic one and the other's more scientific:

  • would it be possible in the violin plots to pass in the parameter names as labels? From looking at the hist1d code this looks possible, but not necessarily for the violin plots.

This is a good point! I will make an issue and include this in the next release.

  • (I should probably read the related papers, but...) given that swyft approximates the likelihood to evidence ratio, it is possible in any way to extract the evidence value too?

It isn't really obvious how to do this to me, except through some kind of hacks... If you have the likelihood for a problem (swyft aims to assist in problems in which the likelihood is unknown), in principle you can estimate the likelihood-to-evidence ratio and then compute likelihood * (1 / likelihood-to-evidence ratio). This is actually done as a way to show that the method works in https://arxiv.org/abs/1903.04057, but I wouldn't necessarily trust it for other problems. If you have the likelihood, you can also use nested sampling methods which are perhaps more trustworthy.

@pdebuyl
Copy link

pdebuyl commented Jun 13, 2022

@editorialbot check references

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1038/s41586-020-2649-2 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.21105/joss.03021 is OK
- 10.1109/MCSE.2007.55 is OK
- 10.5281/zenodo.3509134 is OK
- 10.25080/Majora-92bf1922-00a is OK
- 10.5281/zenodo.5712786 is OK
- 10.21105/joss.02505 is OK
- 10.21105/joss.00011 is OK
- 10.1093/bioinformatics/bty361 is OK
- 10.1145/3093172.3093233 is OK
- 10.1093/mnras/stz1960 is OK
- 10.1093/mnras/sty819 is OK
- 10.1093/mnras/stz1900 is OK
- 10.1002/sta4.56 is OK
- 10.1214/20-ba1238 is OK
- 10.1007/s11222-017-9738-6 is OK
- 10.1214/06-ba127 is OK
- 10.1111/j.1365-2966.2007.12353.x is OK
- 10.1111/j.1365-2966.2009.14548.x is OK
- 10.1093/mnras/stv1911 is OK
- 10.1051/0004-6361/201322971 is OK
- 10.1007/s11222-018-9844-0 is OK
- 10.1214/18-ss120 is OK
- 10.1098/rsif.2008.0172 is OK
- 10.1111/j.2517-6161.1984.tb01290.x is OK
- 10.1214/aos/1176346785 is OK
- 10.1093/genetics/145.2.505 is OK
- 10.1007/s11222-009-9116-0 is OK
- 10.2172/4390578 is OK
- 10.1093/biomet/57.1.97 is OK
- 10.1038/s41567-021-01425-7 is OK
- 10.1103/PhysRevLett.127.241103 is OK
- 10.1103/PhysRevLett.124.041102 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@pdebuyl
Copy link

pdebuyl commented Jun 13, 2022

Hi @bkmi thanks for the update. It is in good shape :-) The changes do not impact the code, only the documentation configuration, so that there is no need for a further release.

Can you edit the metadata of the zenodo entry so that it matches the one of the paper?

  • Title should be "swyft: Truncated Marginal Neural Ratio Estimation in Python"
  • Authors should be the same and in the same order. If someone is a contributor but not an author of the paper, you can move them to "contributor" on zenodo instead of author.

@bkmi
Copy link

bkmi commented Jun 19, 2022

The author order is not allowed to be altered? The reason we want to is because the largest code contributor is the PI of the lab. Also, a significant amount of the code, written by some contributors, is ipython notebook output.

Am I understanding it right that it's possible to move people off the author list who have contributed code as long as they're are added to the contributors list?

The other aspects are no problem.

@pdebuyl
Copy link

pdebuyl commented Jun 19, 2022

The author order is not allowed to be altered? The reason we want to is because the largest code contributor is the PI of the lab. Also, a significant amount of the code, written by some contributors, is ipython notebook output.

From Zenodo's FAQ:

I only want to change the title of my upload, do I still get a new DOI?

No, as before you can continue to edit the metadata of your upload without creating a new version of a record. You should only create a new version if you want to update the files of your record.

So you can change Zenodo's author order and update the record. You cannot change the files in a record.

JOSS policy is that the author list between the paper and archive must match. See in the editorial guide https://joss.readthedocs.io/en/latest/editing.html#after-reviewers-recommend-acceptance I can't find the same guideline in the "author info" part of our documentation. If this is an issue for you, I'll query the editorial team.

Am I understanding it right that it's possible to move people off the author list who have contributed code as long as they're are added to the contributors list?

Yes. For many JOSS articles, there is a group of main contributors that are authors of the article while some contributors are not authors. See a relevant discussion here for instance: openjournals/joss#815

@pdebuyl
Copy link

pdebuyl commented Jun 29, 2022

Hi @bkmi could you settle the authorship issue?

@pdebuyl
Copy link

pdebuyl commented Jul 17, 2022

ping @bkmi

@bkmi
Copy link

bkmi commented Jul 18, 2022

good timing. just got back from vacation. working on that right now.

@bkmi
Copy link

bkmi commented Jul 18, 2022

Everything looks okay to me now. Do you agree?

@pdebuyl
Copy link

pdebuyl commented Jul 19, 2022

Yes, it is all good, thank you :-)

@pdebuyl
Copy link

pdebuyl commented Jul 19, 2022

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1038/s41586-020-2649-2 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.21105/joss.03021 is OK
- 10.1109/MCSE.2007.55 is OK
- 10.5281/zenodo.3509134 is OK
- 10.25080/Majora-92bf1922-00a is OK
- 10.5281/zenodo.5712786 is OK
- 10.21105/joss.02505 is OK
- 10.21105/joss.00011 is OK
- 10.1093/bioinformatics/bty361 is OK
- 10.1145/3093172.3093233 is OK
- 10.1093/mnras/stz1960 is OK
- 10.1093/mnras/sty819 is OK
- 10.1093/mnras/stz1900 is OK
- 10.1002/sta4.56 is OK
- 10.1214/20-ba1238 is OK
- 10.1007/s11222-017-9738-6 is OK
- 10.1214/06-ba127 is OK
- 10.1111/j.1365-2966.2007.12353.x is OK
- 10.1111/j.1365-2966.2009.14548.x is OK
- 10.1093/mnras/stv1911 is OK
- 10.1051/0004-6361/201322971 is OK
- 10.1007/s11222-018-9844-0 is OK
- 10.1214/18-ss120 is OK
- 10.1098/rsif.2008.0172 is OK
- 10.1111/j.2517-6161.1984.tb01290.x is OK
- 10.1214/aos/1176346785 is OK
- 10.1093/genetics/145.2.505 is OK
- 10.1007/s11222-009-9116-0 is OK
- 10.2172/4390578 is OK
- 10.1093/biomet/57.1.97 is OK
- 10.1038/s41567-021-01425-7 is OK
- 10.1103/PhysRevLett.127.241103 is OK
- 10.1103/PhysRevLett.124.041102 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/joss-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#3384, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@editorialbot editorialbot added the recommend-accept Papers recommended for acceptance in JOSS. label Jul 19, 2022
@arfon
Copy link
Member

arfon commented Jul 19, 2022

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

Doing it live! Attempting automated processing of paper acceptance...

@editorialbot
Copy link
Collaborator Author

🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 Creating pull request for 10.21105.joss.04205 joss-papers#3387
  2. Wait a couple of minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.04205
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? Notify your editorial technical team...

@editorialbot editorialbot added accepted published Papers published in JOSS labels Jul 19, 2022
@arfon
Copy link
Member

arfon commented Jul 19, 2022

@mattpitkin, @olgadoronina – many thanks for your reviews here and to @pdebuyl for editing this submission! JOSS relies upon the volunteer effort of people like you and we simply wouldn't be able to do this without you ✨

@bkmi – your paper is now accepted and published in JOSS ⚡🚀💥

@arfon arfon closed this as completed Jul 19, 2022
@editorialbot
Copy link
Collaborator Author

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following code snippets:

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.04205/status.svg)](https://doi.org/10.21105/joss.04205)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.04205">
  <img src="https://joss.theoj.org/papers/10.21105/joss.04205/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.04205/status.svg
   :target: https://doi.org/10.21105/joss.04205

This is how it will look in your documentation:

DOI

We need your help!

The Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:

@bkmi
Copy link

bkmi commented Jul 20, 2022

Thank you all very much, especially for patience and expertise!

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
accepted Jupyter Notebook published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review
Projects
None yet
Development

No branches or pull requests

6 participants