openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
707 stars 37 forks source link

[REVIEW]: spatPomp: An R package for spatiotemporal partially observed Markov process models #7008

Open editorialbot opened 1 month ago

editorialbot commented 1 month ago

Submitting author: !--author-handle-->@ionides<!--end-author-handle-- (Edward Ionides) Repository: https://github.com/kidusasfaw/spatPomp Branch with paper.md (empty if default branch): joss Version: 0.35.1 Editor: !--editor-->@gkthiruvathukal<!--end-editor-- Reviewers: @bbolker, @johnlees Archive: Pending

Status

status

Status badge code:

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

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

@bbolker & @johnlees, 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 @gkthiruvathukal 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 @johnlees

editorialbot commented 1 month ago

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

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 commented 1 month ago

Software report:

github.com/AlDanial/cloc v 1.90  T=0.05 s (2129.2 files/s, 286234.7 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
R                               71           1002           2227           6840
C                               12            272             99           1041
Markdown                         5            188              0            746
make                             3             66              0            189
YAML                             4             27              6            137
TeX                              1             16              0            119
C/C++ Header                     1              8             13             44
-------------------------------------------------------------------------------
SUM:                            97           1579           2345           9116
-------------------------------------------------------------------------------

Commit count by author:

   283  Kidus Asfaw
    94  Ed Ionides
    30  Edward Ionides
    25  Aaron A. King
    11  joonhap
     7  allistho
     2  Jesse Wheeler PC
     1  Aaron A King
     1  Edward L Ionides
     1  Haogao Gu
     1  Jifan Li
     1  Kidus
     1  Ning Ning
editorialbot commented 1 month ago

Paper file info:

📄 Wordcount for paper.md is 1208

✅ The paper includes a Statement of need section

editorialbot commented 1 month ago

License info:

🟡 License found: GNU General Public License v3.0 (Check here for OSI approval)

editorialbot commented 1 month ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1080/01621459.2021.1974867 is OK
- 10.18637/jss.v069.i12 is OK

MISSING DOIs

- No DOI given, and none found for title: A tutorial on spatiotemporal partially observed Ma...
- No DOI given, and none found for title: An introduction to sequential Monte Carlo
- No DOI given, and none found for title: Data assimilation fundamentals: A unified formulat...
- No DOI given, and none found for title: Source code for “Bagged filters for partially obse...
- 10.1109/9780470544334.ch9 may be a valid DOI for title: A new approach to linear filtering and prediction ...
- No DOI given, and none found for title: Inference on spatiotemporal dynamics for networks ...
- No DOI given, and none found for title: Code for “Inference on spatiotemporal dynamics for...
- No DOI given, and none found for title: Iterated block particle filter for high-dimensiona...
- No DOI given, and none found for title: Using an iterated block particle filter via spatPo...
- 10.1007/s11222-020-09957-3 may be a valid DOI for title: Inference on high-dimensional implicit dynamic mod...
- 10.1371/journal.pcbi.1012032 may be a valid DOI for title: Informing policy via dynamic models: Cholera in Ha...
- No DOI given, and none found for title: Source code for “Informing policy via dynamic mode...
- 10.2139/ssrn.4082918 may be a valid DOI for title: Mechanisms for the circulation of influenza A (H3N...

INVALID DOIs

- None
editorialbot commented 1 month ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

johnlees commented 1 month ago

Review checklist for @johnlees

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

johnlees commented 1 month ago

This is a useful piece of software that is a substantial contribution to the field. I have the following comments on the checklist:

Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).

See https://github.com/kidusasfaw/spatPomp/issues/26

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

See https://github.com/kidusasfaw/spatPomp/issues/27

Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?

The summary is currently very heavy on technical, statistical language. Leading with the example paragraph and giving more details on a use case would perhaps help. 'metapopulations' and 'unit structure' should be defined to non-experts. Changing the order of sentences in the first paragraph would also be sensible, it feels like the order is almost backwards at the moment.

State of the field: Do the authors describe how this software compares to other commonly-used packages?

This is partially done but only with pomp. It would be useful to a general audience why other packages in this domain (e.g. libBi and odin.dust) and more general statistical packages (e.g. stan) don't fulfill the needs that spatPomp does. The sentence 'We are not aware of alternative packages providing statistically efficient, plug-and-play inference for the general class of SpatPOMP models.' would be improved by citing some existing packages and explaining what they do/don't do instead.

johnlees commented 1 month ago

Issues https://github.com/kidusasfaw/spatPomp/issues/26 and https://github.com/kidusasfaw/spatPomp/issues/27 addressed and I have marked those boxes as complete accordingly

ionides commented 1 month ago

@johnlees, thanks again for the feedback on the spatPomp code and manuscript. I'm unsure of the protocols for the open review process at JOSS, but it seems to make sense to respond now to your two points about the manuscript. The revised version is available as paper.pdf on the joss branch of the spatPomp repo (https://github.com/kidusasfaw/spatPomp/blob/joss/paper.pdf).

  1. The summary is currently very heavy on technical, statistical language. Leading with the example paragraph and giving more details on a use case would perhaps help. 'metapopulations' and 'unit structure' should be defined to non-experts. Changing the order of sentences in the first paragraph would also be sensible, it feels like the order is almost backwards at the moment.

We have rewritten the summary using this feedback. It now starts with introducing a concrete application and moves toward the general situation, whereas the original submission took the reverse order.

  1. It would be useful to a general audience why other packages in this domain (e.g. libBi and odin.dust) and more general statistical packages (e.g. stan) don't fulfill the needs that spatPomp does. The sentence 'We are not aware of alternative packages providing statistically efficient, plug-and-play inference for the general class of SpatPOMP models.' would be improved by citing some existing packages and explaining what they do/don't do instead.

Thank you for pointing out this oversight. Additional discussion of alternative packages is in the extended package tutorial but we agree that this topic should be included also in the relatively brief JOSS overview. We have added some more sentences to the paragraph on the relationship to previous packages, which now reads as follows:

The spatPomp package builds on pomp (King et al. 2016) which is a successful software package for low-dimensional POMP models. Other packages with similar capabilities to pomp include nimble (Michaud et al. 2021), LiBBi (Murray et al. 2015) and mcstate with odin and dust (FitzJohn et al. 2020). All these packages enable plug-and-play inference based on sequential Monte~Carlo. Markov chain Monte Carlo packages, such as stan, have been found to be effective for inference on some POMP models (Li et al. 2018) but they lack the plug-and-play property. Perhaps for that reason, sequential Monte Carlo methods have found broader applicability for this model class. We are not aware of alternative packages to spatPomp that provide statistically efficient, plug-and-play inference for the general class of SpatPOMP models.

johnlees commented 1 month ago

@ionides Thanks for these changes, I think both sections read very well. Thanks also for the small tweaks to the package you already addressed in the issues.

Congratulations and thank you for another useful addition to software packages in this important area. I have marked all the other boxes in my review checklist as complete.