openjournals / joss-reviews

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

[REVIEW]: PiSCAT: A Python Package for Interferometric Scattering Microscopy #4024

Closed whedon closed 2 years ago

whedon commented 2 years ago

Submitting author: !--author-handle-->@po60nani<!--end-author-handle-- (Houman Mirzaalian Dastjerdi) Repository: https://github.com/SandoghdarLab/PiSCAT Branch with paper.md (empty if default branch): JOSS-paper Version: 0.1.23 Editor: !--editor-->@emdupre<!--end-editor-- Reviewers: @ziatdinovmax, @aquilesC Archive: 10.5281/zenodo.6389882

: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/81fb6452cdd3d3f792d50a4e8763940c"><img src="https://joss.theoj.org/papers/81fb6452cdd3d3f792d50a4e8763940c/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/81fb6452cdd3d3f792d50a4e8763940c/status.svg)](https://joss.theoj.org/papers/81fb6452cdd3d3f792d50a4e8763940c)

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

@ziatdinovmax & @aquilesC, 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 @emdupre 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 @ziatdinovmax

✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

Review checklist for @aquilesC

✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

whedon commented 2 years ago

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @ziatdinovmax, @aquilesC 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 2 years ago

PDF failed to compile for issue #4024 with the following error:

 Can't find any papers to compile :-(
whedon commented 2 years ago
Software report (experimental):

github.com/AlDanial/cloc v 1.88  T=0.29 s (418.5 files/s, 89978.3 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                         101           4152           2738          12292
Markdown                         7            330              0            964
Jupyter Notebook                 5              0           5035            432
reStructuredText                 6            159            130            123
DOS Batch                        1              9              1             27
CSS                              1              2              0             11
make                             1              4              7             10
YAML                             1              4              6              7
-------------------------------------------------------------------------------
SUM:                           123           4660           7917          13866
-------------------------------------------------------------------------------

Statistical information for the repository 'ebfb0353e28a7dbe1bf5f3a9' was
gathered on 2021/12/21.
The following historical commit information, by author, was found:

Author                     Commits    Insertions      Deletions    % of changes
Houman Mirzaalian Da            78         19770           1046           96.56
Matthias Baer                    1           215            137            1.63
Reza Gholami M                   2             5              5            0.05
rgholam                          1           380              0            1.76

Below are the number of rows from each author that have survived and are still
intact in the current revision:

Author                     Rows      Stability          Age       % in comments
Houman Mirzaalian Da      18583           94.0          1.0                3.17
Matthias Baer               215          100.0          7.0                5.58
rgholam                     384          101.1          2.3                4.17
emdupre commented 2 years ago

@whedon generate pdf from branch JOSS-paper

whedon commented 2 years ago
Attempting PDF compilation from custom branch JOSS-paper. Reticulating splines etc...
whedon commented 2 years ago

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

emdupre commented 2 years ago

@whedon check references from branch JOSS-paper

whedon commented 2 years ago
Attempting to check references... from custom branch JOSS-paper
whedon commented 2 years ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1364/OE.401374 is OK

MISSING DOIs

- 10.1103/physrevlett.93.037401 may be a valid DOI for title: Detection and Spectroscopy of Gold Nanoparticles Using Supercontinuum White Light Confocal Microscopy
- 10.1021/acs.nanolett.9b01822 may be a valid DOI for title: Interferometric scattering microscopy: seeing single nanoparticles and molecules via Rayleigh scattering
- 10.1101/2021.08.16.456463 may be a valid DOI for title: Optimized analysis for sensitive detection and analysis of single proteins via interferometric scattering microscopy
- 10.1038/ncomms5495 may be a valid DOI for title: Direct optical sensing of single unlabelled proteins and super-resolution imaging of their binding sites
- 10.1021/acs.nanolett.8b02240.s001 may be a valid DOI for title: High-speed microscopy of diffusion in pore-spanning lipid membranes

INVALID DOIs

- None
emdupre commented 2 years ago

Hi everyone :wave: Thanks again @ziatdinovmax and @aquilesC for agreeing to review this submission ! The review will take place in this issue.

Whenever possible, please open relevant issues on the linked software repository (and cross-link them with this issue) rather than discussing them here. This helps to make sure that feedback is translated into actionable items to improve the software. If you aren't sure how to get started, please see the Reviewing for JOSS guide -- and, of course, feel free to reach out with any questions !

I'll flag in advance that I know this is a generally difficult time of year, and that @aquilesC has already confirmed that he will not be able to provide a review until the first or second week of January. This should keep us well within the six week window suggested by JOSS's reduced service mode, but just to make sure everyone is aware of the approximate timeline.

emdupre commented 2 years ago

@po60nani a few initial points on the JOSS paper itself, rather than the software :

po60nani commented 2 years ago

@whedon generate pdf from branch JOSS-paper

whedon commented 2 years ago
Attempting PDF compilation from custom branch JOSS-paper. Reticulating splines etc...
whedon commented 2 years ago

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

po60nani commented 2 years ago

@whedon check references from branch JOSS-paper

whedon commented 2 years ago
Attempting to check references... from custom branch JOSS-paper
whedon commented 2 years ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1103/PhysRevLett.93.037401 is OK
- 10.1021/acs.nanolett.9b01822 is OK
- 10.1007/978-3-030-21722-8 is OK
- 10.1088/1361-6463/ac2f68 is OK
- 10.1038/ncomms5495 is OK
- 10.1021/acs.nanolett.8b02240 is OK
- 10.1364/OE.401374 is OK

MISSING DOIs

- None

INVALID DOIs

- None
po60nani commented 2 years ago

@whedon generate pdf from branch JOSS-paper

whedon commented 2 years ago
Attempting PDF compilation from custom branch JOSS-paper. Reticulating splines etc...
whedon commented 2 years ago

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

po60nani commented 2 years ago

@emdupre Thank you for taking the time to provide comments. We made changes to the manuscript in response to your comments.

whedon commented 2 years ago

:wave: @aquilesC, please update us on how your review is going (this is an automated reminder).

whedon commented 2 years ago

:wave: @ziatdinovmax, please update us on how your review is going (this is an automated reminder).

aquilesC commented 2 years ago

I am going through the program, and I'll be incrementally listing what I find (some are possible improvements, some are important things to address):

It is GREAT that you provide the software and sample data to get started! Kudos!

po60nani commented 2 years ago

@aquilesC We thank the reviewer and the associate editor for communicating their valuable feedback on our paper in the first round. We have revised the package to address all of the concerns raised.

It is GREAT that you provide the software and sample data to get started! Kudos! We thank the reviewer for the positive comments.

  1. Couldn't find a simple way of downloading sample data. The download_tutorial_data failed because of write access (was trying to write to /Tutorials instead of a relative path. When looked into the code, I found the link to the ownclodu zip file. This could be linked from the docs themselves.
  1. A bit of documentation on the files I'll be downloading is also helpful. Right now I got two .raw files without contextual information, which means I can't use the GUI to open them (it asks for information that it does not discover on the file, and I have no quick way of telling what it actually is, like image width and height)
  1. I believe the tutorials were originally Jupyter notebooks? They are stored as markdown files, which is a pity, because one could simply run them without copy/pasting
  1. The Community Guidelines are missing from the repository
  1. The statement of need says "such as machine learning, deep learning, computer vision, and object tracking", which I think it is a bit too generalistic. I don't think this package in its current form is implementing algorithms of machine (or deep) learning, for example. Did I miss something?
  1. Trackpy is cited in the code, would be nice to cite it on the main text as well (they are even on Zenodo ). The paper only cites (scientific) works from the group itself, I wonder if there are software-specific items missing.
  1. State of the field, I couldn't see much information besides the claim that there is a lack of tools. I think it would be important to note why the authors chose for the custom package instead of leveraging tools like Napari, and providing plugins for it, etc. or stating how analysis is done by others, including Refeyn (I am not too familiar with iScat, but I believe the company provides tools?)
whedon commented 2 years ago
Attempting PDF compilation from custom branch JOSS-paper. Reticulating splines etc...
whedon commented 2 years ago

It looks like this paper includes an ORCID (0000-0003-0872-7098) that is probably not correct.

whedon commented 2 years ago

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

po60nani commented 2 years ago

@whedon generate pdf from branch JOSS-paper

whedon commented 2 years ago
Attempting PDF compilation from custom branch JOSS-paper. Reticulating splines etc...
whedon commented 2 years ago

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

po60nani commented 2 years ago

@emdupre, Would you please let me know if you received my response to the comments?

emdupre commented 2 years ago

Hi @po60nani, yes, thank you for confirming on this !

I'm still waiting on review comments from @ziatdinovmax to move forward. We're in touch, and I'm expecting his comments soon.

ziatdinovmax commented 2 years ago

My apologies for the delay in reviewing the package. I was able to install it successfully and ran examples following the instructions provided by the authors. Their manuscript is well-written: it explains the need for this package and clearly outlines its structure. At the end of the manuscript, the authors mention future plans such as GPU support and incorporation of DNN. I would expect there are people who may be willing to contribute, but the contributing guidelines seem to be absent. Can the authors add them to the README file?

One other minor issue: I recommend specifying version requirements for the packages listed in setup.py (open-cv, networkx, etc) as some of the listed packages have undergone quite a few breaking changes between different releases.

po60nani commented 2 years ago

I was able to install it successfully and ran examples following the instructions provided by the authors. Their manuscript is well-written: it explains the need for this package and clearly outlines its structure.

At the end of the manuscript, the authors mention future plans such as GPU support and incorporation of DNN. I would expect there are people who may be willing to contribute, but the contributing guidelines seem to be absent. Can the authors add them to the README file?

One other minor issue: I recommend specifying version requirements for the packages listed in setup.py (open-cv, networkx, etc) as some of the listed packages have undergone quite a few breaking changes between different releases.

emdupre commented 2 years ago

Thank you, @po60nani, for your in-depth responses to the reviewers's feedback !

@ziatdinovmax, I noticed that you have already completed your reviewer checklist. Can you confirm that you are happy with the submission as-is ?

@aquilesC, there are still a few items that are not yet checked on your checklist, as these were raised as concerns in the initial round of review. Could you confirm if the authors have sufficiently addressed your concerns during revisions to check off these items and complete your reviewer checklist ?

aquilesC commented 2 years ago

I have finished reviewing the manuscript. The only concern I have is regarding the references, and I would ask @emdupre for guidance on the matter.

The authors claim:

We would have to mention all dependencies and explain them in the text if we wanted to add a Trackpy citation, which would be problematic because we intended to keep the number of pages under four.

At the same time, in the manuscript they say:

PiSCAT provides several algorithms for localization and tracking of nanoparticles

They do implement several localisation algorithms, but only one for tracking and it is based on Trackpy.

Generally speaking, the PiSCAT package has 23 dependencies, some with clear academic relevance (Astropy, Trackpy, PyQtGraph) and some larger ones with scientific relevance (numpy, SciPy, scikit, matplotlib). I wonder where the threshold to require a citation for software should be put. After all, there are 7 self-references, but none to software.

Once this is clarified editorially (also for my own reference for future reviews), I'll conclude the review.

po60nani commented 2 years ago

@aquilesC, Thanks for clarifying. We can add Trackpy references to the place where we mention tracking based on your explanation. You can find the updated version of the manuscript in the following.

po60nani commented 2 years ago

@whedon generate pdf from branch JOSS-paper

editorialbot commented 2 years ago

My name is now @editorialbot

po60nani commented 2 years ago

@editorialbot generate pdf from branch JOSS-paper

editorialbot commented 2 years ago

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

@editorialbot commands

po60nani commented 2 years ago

@editorialbot set JOSS-paper as branch

editorialbot commented 2 years ago

Done! branch is now JOSS-paper

po60nani commented 2 years ago

@editorialbot generate pdf

editorialbot commented 2 years ago

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

emdupre commented 2 years ago

Thank you for your feedback, @aquilesC, and your recent updates @po60nani ! I'm glad that compiling with the new editorial-bot system was smooth :slightly_smiling_face: The previous Whedon system has been deprecated, so note that all future compilation, etc, commands can be issued directly to editorial-bot for both this and any other JOSS submissions.

For clarity, I would just like to confirm that JOSS does not have a strict page limit. Although we generally recommend that papers are at most approximately 1000 words, this is not a hard limit and can be adjusted to accommodate information that the authors or reviewers believe is necessary to understand the presented research software and its contribution to the field.

With that in mind, I agree with @aquilesC that citing the appropriate software is well-worth inclusion in the paper. I appreciate that the authors have added a reference to TrackPy in the "Concept and Structure of PiSCAT" section to point to supported localisation algorithms as a step in this direction. Considering citing other software dependencies:

Generally speaking, the PiSCAT package has 23 dependencies, some with clear academic relevance (Astropy, Trackpy, PyQtGraph) and some larger ones with scientific relevance (numpy, SciPy, scikit, matplotlib). I wonder where the threshold to require a citation for software should be put. After all, there are 7 self-references, but none to software.

There is not a strict rule that all dependencies for a given package must be cited. Instead, this is generally an editorial judgment, with more significant dependencies for a project receiving acknowledgement in-text. For example, in the example paper provided in the JOSS documentation, there is a reference to one other research software project, from which the example project significantly benefits:

Gala also relies heavily on and interfaces well with the implementations of physical units and astronomical coordinate systems in the Astropy package [@\astropy] (astropy.units and astropy.coordinates).

This acknowledgement features in the Statement of Need section, which is generally used to overview the current landscape of the field and how the present package contributes to it. While the authors provide a thorough and effective scope of PiSCAT in the current paper's Statement of Need, it would likely help orient readers if they could directly note there any other research software whose functionality significantly supports or overlaps with that of PiSCAT. It is likely that TrackPy merits mention here, given the usage of its tracking algorithm.

I hope this helps to clarify your questions around references, @aquilesC, and provides relevant context for making appropriate edits, @po60nani ! I have several other, minor edits on the paper and reference formatting which I will include in my next comment.

emdupre commented 2 years ago

There are a few minor corrections in references that would significantly improve the formatting of the paper.

po60nani commented 2 years ago

@emdupre, Thank you for the comprehensive explanation. We changed the manuscript based on your explanation and comments regarding reference corrections.

PiSCAT uses a set of dependencies (e.g. PyQtGraph, scikit-learn/image [@scikit-learn], Trackpy [@Trackpy], and Astropy [@astropy:2018]) that assist us in achieving various goals. The PiSCAT repository contains this list.

po60nani commented 2 years ago

@editorialbot generate pdf