openjournals / joss-reviews

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

[REVIEW]: STReNGTHS, a Python package to model and simulate complex reaction-diffusion systems #6495

Closed editorialbot closed 5 months ago

editorialbot commented 7 months ago

Submitting author: !--author-handle-->@ThibaultFillion<!--end-author-handle-- (Thibault Fillion) Repository: https://github.com/ThibaultFillion/strengths Branch with paper.md (empty if default branch): main Version: v0.0.16.6 Editor: !--editor-->@Nikoleta-v3<!--end-editor-- Reviewers: @parikshitbajpai, @jakryd Archive: 10.5281/zenodo.11300235

Status

status

Status badge code:

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

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

@parikshitbajpai & @jakryd, 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 @Nikoleta-v3 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 @parikshitbajpai

πŸ“ Checklist for @jakryd

editorialbot commented 7 months 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 7 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1021/j100540a008 is OK
- 10.1103/PhysRevE.71.041103 is OK
- 10.1063/1.1378322 is OK
- 10.1371/journal.pcbi.1006830 is OK
- 10.1093/bioinformatics/bti431 is OK
- 10.1049/sb:20045021 is OK
- 10.1093/bioinformatics/btw469 is OK
- 10.3389/neuro.11.015.2009 is OK
- 10.1038/s41586-020-2649-2 is OK
- 10.1109/MCSE.2007.55 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 7 months ago

Software report:

github.com/AlDanial/cloc v 1.90  T=0.08 s (1143.4 files/s, 195700.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          35           1889           2207           5036
C/C++ Header                     8            212            216           1155
JSON                             8              0              0           1100
reStructuredText                29            691            765            925
C++                              1             92             36            464
Markdown                         1             33              0            258
TeX                              1             19              0            136
CSS                              1             11              1             56
DOS Batch                        1              8              1             26
YAML                             2              1              4             25
make                             1              4              7              9
JavaScript                       1              1              0              8
TOML                             1              0              0              8
-------------------------------------------------------------------------------
SUM:                            90           2961           3237           9206
-------------------------------------------------------------------------------

Commit count by author:

    69  ThibaultFillion
editorialbot commented 7 months ago

Paper file info:

πŸ“„ Wordcount for paper.md is 2346

βœ… The paper includes a Statement of need section

editorialbot commented 7 months ago

License info:

βœ… License found: MIT License (Valid open source OSI approved license)

Nikoleta-v3 commented 7 months ago

Hey @parikshitbajpai, @jakryd this is the review thread for the paper. All of our communications will happen here from now on.

As a reviewer, the first step is to create a checklist for your review by entering

@editorialbot generate my checklist

as the top of a new comment in this thread.

These checklists contain the JOSS requirements βœ… As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention https://github.com/openjournals/joss-reviews/issues/6454 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for reviews to be completed within about 2-4 weeks. Please let me know if any of you require some more time. We can also use EditorialBot (our bot) to set automatic reminders if you know you'll be away for a known period of time.

Please feel free to ping me (@Nikoleta-v3) if you have any questions/concerns. πŸ˜„ πŸ™‹πŸ»

editorialbot commented 7 months ago

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

parikshitbajpai commented 7 months ago

Review checklist for @parikshitbajpai

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

ThibaultFillion commented 7 months ago

@editorialbot commands

editorialbot commented 7 months ago

Hello @ThibaultFillion, here are the things you can ask me to do:


# List all available commands
@editorialbot commands

# Get a list of all editors's GitHub handles
@editorialbot list editors

# Adds a checklist for the reviewer using this command
@editorialbot generate my checklist

# Set a value for branch
@editorialbot set joss-paper as branch

# Run checks and provide information on the repository and the paper file
@editorialbot check repository

# Check the references of the paper for missing DOIs
@editorialbot check references

# Generates the pdf paper
@editorialbot generate pdf

# Generates a LaTeX preprint file
@editorialbot generate preprint

# Get a link to the complete list of reviewers
@editorialbot list reviewers
Nikoleta-v3 commented 7 months ago

Hello @parikshitbajpai @jakryd πŸ‘‹πŸ» I hope you are well! Any updates on your reviews? πŸ˜„

parikshitbajpai commented 7 months ago

Any updates on your reviews? πŸ˜„

Hello @Nikoleta-v3, hope you're doing well. Sorry for the time this is taking, I was a bit caught up at work the last couple of weeks. I should be able to finish the review by the end of this week.

parikshitbajpai commented 6 months ago

Hello @ThibaultFillion,

I am almost done with the review but have a few doubts I hope you can clarify.

  1. Are the other similar tools specific to certain applications? I feel there are other general purpose PDE solvers which could be used for modelling reaction-diffusion system, e.g. FEM codes. Could you please clarify the criteria you used.
  2. Are the examples meant to be original results or are they demonstrating the capability? I might have missed it in the manuscript if they were meant to be original results, and, if not, can you please clarify if the examples are based on some previously available models / results since that was not referenced?
  3. Would you consider adding the examples scripts to the repo? It will enable users and people reading the article to quickly be able to verify the showcased capabilities.

Thanks!

jakryd commented 6 months ago

Review checklist for @jakryd

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

jakryd commented 6 months ago

The limitations of the package are explained in the paper, but I think that it can still be useful, especially for students who are starting to learn about such algorithms. The examples shown in @ThibaultFillion's paper are particularly compelling, and it would be great to make them available as Jupyter Notebooks so that users can experiment with them. But this can be done after publication. Overall, I did not come across any issues with the current version, and I am happy to recommend publication without any further modifications.

ThibaultFillion commented 6 months ago

@editorialbot generate pdf

editorialbot commented 6 months ago

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

ThibaultFillion commented 6 months ago

Thank you for your reviews @parikshitbajpai and @jakryd .

@parikshitbajpai Thank you for raising your concerns. 1) The similar tools evoked in the paper are all tools applied to the modeling and simulation of biochemical systems, providing an abstract interface above the lower level considerations such as ODE or PDE solving. 2) The figures in the paper are original results but are solely here for the purpose of illustrating some of the different features of the package. The first considers a fictive signal transduction scheme. The reaction rates are reasonable guesses but the diffusion coefficients are set from the literature and represent the correct order of magnitude, based on how and where the different species diffuse. We have added references for this in the manuscript. The second model applies some generic pattern-forming network to systems with various shapes. We added references to the documentation of the package as similar pattern-forming reaction-diffusion networks are used there. 3) Indeed, we added the simulation scripts to the paper repository.

@jakryd Thank you for your review. Making examples available as Jupyter notebooks would be a good idea. For now, we added the simulation scripts for the two examples to the paper repository.

parikshitbajpai commented 6 months ago

@ThibaultFillion Thanks for addressing those and adding the example scripts. Everything looks great and the paper can be accepted as it is.

Nikoleta-v3 commented 6 months ago

Thank you to both reviewers for your time and efforts! @ThibaultFillion, please give me one week to also have a final look over the submission, and then we can move forward to the next steps!

ThibaultFillion commented 6 months ago

Hello @Nikoleta-v3 , @parikshitbajpai and @jakryd

We would like to add two more references to the paper for the second example. Here is the branch with the changes: https://github.com/ThibaultFillion/strengths/tree/paper_addrefs Would you agree for this branch to be merged with the "paper" one ?

Those references were also added to the documentation.

parikshitbajpai commented 6 months ago

Would you agree for this branch to be merged with the "paper" one ?

Hey @ThibaultFillion, this looks good to me and can be merged as long as @Nikoleta-v3 and @jakryd are okay with it as well.

jakryd commented 6 months ago

Hello @Nikoleta-v3 , @parikshitbajpai and @jakryd

We would like to add two more references to the paper for the second example. Here is the branch with the changes: https://github.com/ThibaultFillion/strengths/tree/paper_addrefs Would you agree for this branch to be merged with the "paper" one ?

Those references were also added to the documentation.

Sure!

ThibaultFillion commented 5 months ago

Thank you @parikshitbajpai and @jakryd for accepting.

@Nikoleta-v3 Would you agree with these changes?

Nikoleta-v3 commented 5 months ago

Hello @ThibaultFillion,

I am very sorry for the long silence and the delay in processing your submission. Life has been hectic the past few weeks. Regardless, apologies for the delay.

@Nikoleta-v3 Would you agree with these changes?

Yes, I agree with the changes, thank you.

Regarding the submission, I had some time to go over it as well. The package looks great, very useful, and your documents page is very well implemented.

I believe there is a typo in the paper. In the Figure 2 caption, it should be stoichiometric instead of stoechiometric. Otherwise, I only have two suggestions (but feel free to not implement them):

  1. To run the tests, one has to run the script run_all_tests.py, which just calls all the test functions you have implemented. Since all tests are functions, you could potentially use the package pytest (https://docs.pytest.org/en/8.2.x/) to run the tests instead. What's nice about pytest is that it gives nice output. For example, this is me running the command pytest from your tests folder. There are a few failures, but it has to do with the relative paths. If you would like to use pytest, I would be happy to help you set things up. Screenshot 2024-05-18 at 22 26 35 (2)

  2. Regarding the documentation, in the Using Strengths section, there are several subsections, but the user has to scroll to see all of them. I was just thinking if there is a way to make it a bit easier for the user to see all the sections without having to scroll. One idea would be to list all the sections at the top of the page.

Again, all these comments are minor.

Nikoleta-v3 commented 5 months ago

At this point could you also please:

I can then move forward with accepting the submission.

ThibaultFillion commented 5 months ago

Hello @Nikoleta-v3,

Thank you very much for your corrections and suggestions. We tried to implement all of them. Here is a summary of the changes made:

Since there were changes made in the tests directory, which is part of the distribution on PyPi, the version has been incremented to 0.0.16. If everything is fine with this version, we will upload this version on PyPi and archive the repository on Zenodo, then proceed as you asked.

editorialbot commented 5 months ago

:warning: An error happened when generating the pdf.

editorialbot commented 5 months ago

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@editorialbot commands

ThibaultFillion commented 5 months ago

@editorialbot set main as branch

editorialbot commented 5 months ago

Done! branch is now main

ThibaultFillion commented 5 months ago

@editorialbot set v0.0.16 as version

editorialbot commented 5 months ago

I'm sorry @ThibaultFillion, I'm afraid I can't do that. That's something only editors are allowed to do.

ThibaultFillion commented 5 months ago

@editorialbot generate pdf

editorialbot commented 5 months ago

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

Nikoleta-v3 commented 5 months ago

Thank you for all the changes @ThibaultFillion! Everything looks great on my end.

If everything is fine with this version, we will upload this version to PyPi and archive the repository on Zenodo, then proceed as you asked.

Yes, please go ahead!

Nikoleta-v3 commented 5 months ago

@editorialbot set v0.0.16 as version

editorialbot commented 5 months ago

Done! version is now v0.0.16

ThibaultFillion commented 5 months ago

@Nikoleta-v3 Perfect, thank you. we are on it. Thank you also for updating the version.

Also, @parikshitbajpai, since you contributed with commits, should i add you to the Contributor section on Zenodo?

Otherwise, do i have to mention you somewhere on Zenodo as editor and reviewers @Nikoleta-v3, @parikshitbajpai and @jakryd?

Nikoleta-v3 commented 5 months ago

Otherwise, do i have to mention you somewhere on Zenodo as editor and reviewers @Nikoleta-v3, @parikshitbajpai and @jakryd?

No, no need. We will appear on the paper, but thank you for asking πŸ˜„

parikshitbajpai commented 5 months ago

Also, @parikshitbajpai, since you contributed with commits, should i

add you to the Contributor section on Zenodo?

No, that's not needed. I only made very minor changes to documentation as part of the review.

ThibaultFillion commented 5 months ago

Thank you for your answers, @Nikoleta-v3 and @parikshitbajpai.

We just made two more edits before creating the final Zenodo archive:

Due to some difficulties, there are actually 3 archives on Zenodo. The right one is the last one, with the same title than the paper:

"STReNGTHS, a Python package to model and simulate reaction-diffusion systems".

It is labelled:

v0.0.16.2 STReNGTHS, a Python package to model and simulate reaction-diffusion systems

and has the doi:

10.5281/zenodo.11261599

Here is its url:

https://zenodo.org/records/11261599

and the corresponding GitHub release is

https://github.com/ThibaultFillion/strengths/releases/tag/v0.0.16.2

the wrong archives have labels starting with:

v0.0.16 [to-be-deleted]

We will release the package on PyPi (later today, hopefully) as the version 0.0.16.

Nikoleta-v3 commented 5 months ago

Thank you @ThibaultFillion!

We will release the package on PyPi (later today, hopefully) as the version 0.0.16.

If I remember correctly PyPi uses tag releases so it will be version v0.0.16.2 πŸ€” I could be wrong.

ThibaultFillion commented 5 months ago

Hello @Nikoleta-v3,

Thank you for mentioning it. We just uploaded the package on PyPI:

https://pypi.org/project/strengths/

However, the version number is 0.0.16. Maybe it is because we are not uploading the package through GitHub. Since the version number is only mentioned in pyproject.toml, I assume this is where PiPI get the information from in this case.

Nikoleta-v3 commented 5 months ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

Nikoleta-v3 commented 5 months ago

@editorialbot set 10.5281/zenodo.11261599 as archive

editorialbot commented 5 months ago

Done! archive is now 10.5281/zenodo.11261599

Nikoleta-v3 commented 5 months ago

@editorialbot set v0.0.16.2 as version

editorialbot commented 5 months ago

Done! version is now v0.0.16.2

Nikoleta-v3 commented 5 months ago

@editorialbot generate pdf