openjournals / joss-reviews

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

[REVIEW]: Disimpy: A massively parallel Monte Carlo simulator for synthesizing diffusion-weighted MRI data in Python #2527

Closed whedon closed 4 years ago

whedon commented 4 years ago

Submitting author: @kerkelae (Leevi Kerkelä) Repository: https://github.com/kerkelae/disimpy Version: v0.1.1 Editor: @Kevin-Mattheus-Moerman Reviewer: @DARSakthi, @grlee77, @ritagnunes Archive: 10.5281/zenodo.4001687

:warning: JOSS reduced service mode :warning:

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.

Status

status

Status badge code:

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

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

@DARSakthi & @grlee77 & @ritagnunes, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @Kevin-Mattheus-Moerman 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

Review checklist for @DARSakthi

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

Review checklist for @grlee77

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

Review checklist for @ritagnunes

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

whedon commented 4 years ago

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @DARSakthi, @grlee77, @ritagnunes it looks like you're currently assigned to review this paper :tada:.

:warning: JOSS reduced service mode :warning:

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.

:star: Important :star:

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

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

@whedon commands

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

@whedon generate pdf
whedon commented 4 years ago
Reference check summary:

OK DOIs

- None

MISSING DOIs

- https://doi.org/10.1007/978-3-642-15745-5_50 may be missing for title: High-fidelity meshes from tissue samples for diffusion MRI simulations
- https://doi.org/10.1016/j.jmr.2012.10.015 may be missing for title: Isotropic diffusion weighting in PGSE NMR by magic-angle spinning of the q-vector
- https://doi.org/10.1063/1.1695690 may be missing for title: Spin diffusion measurements: spin echoes in the presence of a time-dependent field gradient
- https://doi.org/10.1109/mcse.2011.37 may be missing for title: The NumPy array: a structure for efficient numerical computation
- https://doi.org/10.1109/tmi.2009.2015756 may be missing for title: Convergence and parameter choice for Monte-Carlo simulations of diffusion MRI
- https://doi.org/10.1016/j.neuroimage.2007.02.016 may be missing for title: Robust determination of the fibre orientation distribution in diffusion MRI: non-negativity constrained super-resolved spherical deconvolution
- https://doi.org/10.1002/nbm.3998 may be missing for title: Quantifying brain microstructure with diffusion MRI: Theory and parameter estimation
- https://doi.org/10.1101/140459 may be missing for title: The role of diffusion MRI in neuroscience
- https://doi.org/10.1109/hotchips.2008.7476516 may be missing for title: Scalable parallel programming with CUDA

INVALID DOIs

- None
whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

kerkelae commented 4 years ago

@whedon generate pdf

whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

kerkelae commented 4 years ago

@whedon check references

whedon commented 4 years ago
Reference check summary:

OK DOIs

- 10.1007/978-3-642-15745-5_50 is OK
- 10.1016/j.jmr.2015.10.012 is OK
- 10.1016/j.jmr.2012.10.015 is OK
- 10.1063/1.1695690 is OK
- 10.1145/2833157.2833162 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1109/mcse.2011.37 is OK
- 10.1109/tmi.2009.2015756 is OK
- 10.1016/j.neuroimage.2007.02.016 is OK
- 10.1002/nbm.3998 is OK
- 10.1101/140459 is OK
- 10.1109/hotchips.2008.7476516 is OK

MISSING DOIs

- None

INVALID DOIs

- None
Kevin-Mattheus-Moerman commented 4 years ago

@DARSakthi, @grlee77, @ritagnunes this is just a friendly check in. I know some of you are busy on other reviews too. Could you give an update on when you expect to work on this review?

ritagnunes commented 4 years ago

@Kevin-Mattheus-Moerman, most likely I will only be able to work on this after the end of the ISMRM conference, i.e. the week after next...

On Wed, Aug 5, 2020 at 11:40 AM Kevin Mattheus Moerman < notifications@github.com> wrote:

@DARSakthi https://github.com/DARSakthi, @grlee77 https://github.com/grlee77, @ritagnunes https://github.com/ritagnunes this is just a friendly check in. I know some of you are busy on other reviews too. Could you give an update on when you expect to work on this review?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2527#issuecomment-669119971, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIZGNBGCARKW6VYWK5J6X2TR7EZIRANCNFSM4PKLFXQQ .

Kevin-Mattheus-Moerman commented 4 years ago

Right, sorry I forgot about the ISMRM. Enjoy the conference!

grlee77 commented 4 years ago

@kerkelae, can you briefly describe the contributions of the coauthors you included? I could only verify your name directly in the commit history, but understand that there are other ways to contribute.

DARSakthi commented 4 years ago

@Kevin-Mattheus-Moerman Thanks for the reminder -- some other deadlines had dragged my attention away -- will have it done by Monday, latest. Cheers

grlee77 commented 4 years ago

regarding the following review criteria:

If there are any performance claims of the software, have they been confirmed?

Is the script that produced Fig. 1 available anywhere? I find the result believable, but did not try to install Camino to verify. I can confirm that all of the examples in the Jupyter notebook in the repository ran quickly on an NVIDIA GTX-1080 Ti card. @Kevin-Mattheus-Moerman: Is this adequate verification for JOSS?

update: I just added some timing statements to examples for the mesh in the Jupyter notebook examples and the result is consistent with the Disimpy curve in the figure.

grlee77 commented 4 years ago

Overall the manuscript and software look good to me and I have only some minor suggestions.

minor points to address

1.) In the NumPy reference, the first author should be "van der Walt, S." rather than "Walt, S. van der"

2.) In the second sentence under features, I recommend the following grammatical change: "generated in massively parallel on" -> "generated in a massively parallel fashion on"

3.) In the documentation's installation instructions a one-step command that might be easier for users than downloading the repository and then navigating to the folder to run pip would be to use: pip install git+https://github.com/kerkelae/disimpy.git (pip will take care of downloading the repository for the user)

4.) It may be worth providing a version of the demo notebook on Google Colaboratory as well, so users can try it out without having to own a CUDA-compatible GPU.

5.) Can the authors confirm if Camino's CPU-based Monte-Carlo is multi-threaded? If so, I would mention that explicitly in the manuscript text or Fig. 1 caption as it makes the relative improvement on the GPU more impressive.

6.) Regarding the "state of the filed" review criteria, I don't see much in the manuscript corresponding to this aside from the comparison to Camino. This is not an area I am particular familiar with the literature, so it would be good to know:

7.) The included references look good, but I would include also reference previous work doing similar types of simulations on the GPU. For example:

Khieu-Van Nguyen, Edwin Hernández-Garzón, Julien Valette, Efficient GPU-based Monte-Carlo simulation of diffusion in real astrocytes reconstructed from confocal microscopy, Journal of Magnetic Resonance, Volume 296, 2018, Pages 188-199, https://doi.org/10.1016/j.jmr.2018.09.013.

Christopher A. Waudby, John Christodoulou, GPU accelerated Monte Carlo simulation of pulsed-field gradient NMR experiments, Journal of Magnetic Resonance, Volume 211, Issue 1, 2011, Pages 67-73, https://doi.org/10.1016/j.jmr.2011.04.004.

(optional) It may also be worth mentioning other complementary software that could generate more realistic tissue models as input to the simulations. I am not familiar with specific tools for this, but am aware of the following publication (unfortunately the implementation described in it does not appear to be publicly available):

Kévin Ginsburger, Felix Matuschke, Fabrice Poupon, Jean-François Mangin, Markus Axer, Cyril Poupon,
MEDUSA: A GPU-based tool to create realistic phantoms of the brain microstructure using tiny spheres,
NeuroImage, Volume 193, 2019, Pages 10-24, https://doi.org/10.1016/j.neuroimage.2019.02.055

misc comments Not having continuous integration seems okay for this library as the free CI services do not offer the needed GPU hardware.

Validation of accuracy of the simulations was not discussed in the manuscript, but from what I can tell, the authors have done validation via the following: 1.) examples in the tutorials:

fnery commented 4 years ago

Hi @grlee77, thanks for the feedback. Just a quick comment in terms of direct commits to the repo itself I didn't make a lot of them and they are no longer visible because we cleaned up the commit history for submission (made an orphan branch). They are still visible as closed PRs. In any case I will let @kerkelae describe the authors' contributions.

kerkelae commented 4 years ago

@kerkelae, can you briefly describe the contributions of the coauthors you included? I could only verify your name directly in the commit history, but understand that there are other ways to contribute.

Good point @grlee77. I am the main author and have written most of the code and of the manuscript. Fabio Nery has helped by implementing various algorithms, making decisions on how to package the code, and testing. Matt Hall and Chris Clark have contributed to the software by being very involved in the planning and development phase of much of the code that the final package consists of.

Thank you for the feedback. We will address the other issues you raised very soon.

DARSakthi commented 4 years ago

Overall the paper is well done. The tutorial section of the documentation is a nice touch, and the mathematical specification in the final section of the paper is also appreciated. Having a colab notebook would be an excellent idea.

I echo the suggestions of @grlee77, in particular verification of the performance claims. I do question the use of the word synthesising in the title -- while 'to synthesise' can mean to produce artificially, a more common usage is to combine. If the authors are partial to the title then no change is necessary, but a better word may clarify the function of the software.

kerkelae commented 4 years ago

@grlee77 and @DARSakthi, thank you for the feedback. We have made a number of changes to the manuscript and the documentation. Please see the points below.

kerkelae commented 4 years ago

@whedon generate pdf

whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

DARSakthi commented 4 years ago

Is the test script you linked to available in the repo too? I can't seem to find it. If not, I think it could be a good thing to include from an end - user stand point, so as to evaluate whether to use the software or not.

With the most recent round of changes, I am happy to recommend the paper for publication. Well done!

ritagnunes commented 4 years ago

I really enjoyed being able to run the Tutorial on Google Colaboratory. That was a really nice addition! It will be very helpful for potential/new users to have a quick grasp of the implemented software features.

Also, the provided examples make it easy to verify the requirement of simulating a high number of random walkers to match the theoretical predictions motivating the need for this software. I also like it that the authors have included a range of microstructural environments, from free to restricted diffusion including multiple compartments and a diffraction example replicating a previous study.

It was harder for me to evaluate the gains in simulation speed as the software and corresponding tutorial do not run without GPU-enabled acceleration. Although I did not run Camino independently, I trust that the simulation times reported in the tests are correct.

The provided documentation is quite comprehensive and the paper clearly motivates the need for the software, describing the implemented features. I also really like that the basic theoretical equations have been included.

I agree with @DARSakthi and I am also happy to recommend the publication of this paper. Congratulations!

Kevin-Mattheus-Moerman commented 4 years ago

@openjournals/dev can you help advise as to how to change the title of a submission?

Kevin-Mattheus-Moerman commented 4 years ago

@grlee77 thanks again for your help. Can you review the changes implemented by the authors. You have two boxes unticked (state of the field, references), can you comment/summarize to the authors what is needed for these to be checked?

arfon commented 4 years ago

@openjournals/dev can you help advise as to how to change the title of a submission?

Just change the title of the paper in the paper.md file.

grlee77 commented 4 years ago

@grlee77 thanks again for your help. Can you review the changes implemented by the authors. You have two boxes unticked (state of the field, references), can you comment/summarize to the authors what is needed for these to be checked?

These were addressed by the revised statement of need. I have now checked them off and am satisfied with the publication.

kerkelae commented 4 years ago

Thank you to all the reviewers!

Thanks @arfon and @Kevin-Mattheus-Moerman. I had changed the title in the paper.md file and just wanted to know if there is something more I need to do because the old title was still shown on the JOSS website.

arfon commented 4 years ago

Thanks @arfon and @Kevin-Mattheus-Moerman. I had changed the title in the paper.md file and just wanted to know if there is something more I need to do because the old title was still shown on the JOSS website.

The version on the JOSS site will update when the paper is published.

Kevin-Mattheus-Moerman commented 4 years ago

@whedon generate pdf

whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

Kevin-Mattheus-Moerman commented 4 years ago

@whedon check references

whedon commented 4 years ago
Reference check summary:

OK DOIs

- 10.1016/j.neuroimage.2020.117107 is OK
- 10.1016/j.jmr.2018.09.013 is OK
- 10.3389/fninf.2020.00008 is OK
- 10.1016/j.neuroimage.2019.116120 is OK
- 10.1007/978-3-319-46630-9_4 is OK
- 10.1007/978-3-642-15745-5_50 is OK
- 10.1016/j.jmr.2015.10.012 is OK
- 10.1016/j.jmr.2012.10.015 is OK
- 10.1063/1.1695690 is OK
- 10.1145/2833157.2833162 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1109/mcse.2011.37 is OK
- 10.1109/tmi.2009.2015756 is OK
- 10.1016/j.neuroimage.2007.02.016 is OK
- 10.1002/nbm.3998 is OK
- 10.1101/140459 is OK
- 10.1109/hotchips.2008.7476516 is OK

MISSING DOIs

- None

INVALID DOIs

- None
Kevin-Mattheus-Moerman commented 4 years ago

@kerkelae I've checked your paper and can confirm it looks in order.

These are final steps to complete:

kerkelae commented 4 years ago

@Kevin-Mattheus-Moerman, thank you. Since we changed a few things during the review, I created a new release: v0.1.1. I archived this version on Zenodo. The DOI is http://doi.org/10.5281/zenodo.4001687.

Kevin-Mattheus-Moerman commented 4 years ago

@kerkelae thanks. However you still need to amend the title and authors of that archive to match the paper title. Let me know when you've completed that.

Kevin-Mattheus-Moerman commented 4 years ago

@whedon set 10.5281/zenodo.4001687 as archive

whedon commented 4 years ago

OK. 10.5281/zenodo.4001687 is the archive.

Kevin-Mattheus-Moerman commented 4 years ago

@whedon set v0.1.1 as version

whedon commented 4 years ago

OK. v0.1.1 is the version.

kerkelae commented 4 years ago

@Kevin-Mattheus-Moerman It's fixed now.

Kevin-Mattheus-Moerman commented 4 years ago

@whedon accept

whedon commented 4 years ago
Attempting dry run of processing paper acceptance...
whedon commented 4 years ago
Reference check summary:

OK DOIs

- 10.1016/j.neuroimage.2020.117107 is OK
- 10.1016/j.jmr.2018.09.013 is OK
- 10.3389/fninf.2020.00008 is OK
- 10.1016/j.neuroimage.2019.116120 is OK
- 10.1007/978-3-319-46630-9_4 is OK
- 10.1007/978-3-642-15745-5_50 is OK
- 10.1016/j.jmr.2015.10.012 is OK
- 10.1016/j.jmr.2012.10.015 is OK
- 10.1063/1.1695690 is OK
- 10.1145/2833157.2833162 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1109/mcse.2011.37 is OK
- 10.1109/tmi.2009.2015756 is OK
- 10.1016/j.neuroimage.2007.02.016 is OK
- 10.1002/nbm.3998 is OK
- 10.1101/140459 is OK
- 10.1109/hotchips.2008.7476516 is OK

MISSING DOIs

- None

INVALID DOIs

- None
whedon commented 4 years ago

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

Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1673

If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1673, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.

@whedon accept deposit=true
Kevin-Mattheus-Moerman commented 4 years ago

@whedon accept deposit=true

whedon commented 4 years ago
Doing it live! Attempting automated processing of paper acceptance...
whedon commented 4 years ago

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

whedon commented 4 years ago

🚨🚨🚨 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 :point_right: https://github.com/openjournals/joss-papers/pull/1674
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.02527
  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...

whedon commented 4 years ago

:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:

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.02527/status.svg)](https://doi.org/10.21105/joss.02527)

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

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

This is how it will look in your documentation:

DOI

We need your help!

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: