openjournals / joss-reviews

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

[REVIEW]: QuantNBody: a python package for quantum chemistry and physics to build and manipulate many-body operators and wave functions. #4759

Closed editorialbot closed 1 year ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@SYalouz<!--end-author-handle-- (SAAD YALOUZ) Repository: https://github.com/SYalouz/QuantNBody Branch with paper.md (empty if default branch): Version: v 1.0.0 Editor: !--editor-->@jarvist<!--end-editor-- Reviewers: @wcwitt, @erikkjellgren Archive: 10.5281/zenodo.7440993

Status

status

Status badge code:

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

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

@wcwitt, 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 @jarvist 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 @wcwitt

editorialbot commented 1 year 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 year ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.07 s (401.0 files/s, 139888.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          19            993           1788           2346
Jupyter Notebook                 6              0           3738            958
TeX                              1             12              0            128
Markdown                         2             36              0             94
YAML                             1              1              4             18
-------------------------------------------------------------------------------
SUM:                            29           1042           5530           3544
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 1 year ago

Wordcount for paper.md is 1182

editorialbot commented 1 year ago

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

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

OK DOIs

- 10.21105/joss.00819 is OK
- 10.1038/s41592-019-0686-2 is OK

MISSING DOIs

- 10.21468/scipostphys.2.1.003 may be a valid DOI for title: QuSpin: a Python package for dynamics and exact diagonalisation of quantum many body systems part I: spin chains
- 10.21468/scipostphys.7.2.020 may be a valid DOI for title: QuSpin: a Python package for dynamics and exact diagonalisation of quantum many body systems. Part II: bosons, fermions and higher spins
- 10.22331/q-2020-10-11-341 may be a valid DOI for title: Yao. jl: Extensible, efficient framework for quantum algorithm design

INVALID DOIs

- None
jarvist commented 1 year ago

Thanks @editorialbot !

OK, @SYalouz, there's some checking cross-references & augmenting your BibTeX suggestions above. You can re-regenerate the paper by asking Editorialbot here, once you've made changes to the repo.

editorialbot commented 1 year ago

You are welcome

SYalouz commented 1 year ago

Dear @jarvist,

As recommended, I have added the three missing DOIs in the bib file of the paper. I am going now to regenerate the paper.

SYalouz commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

jarvist commented 1 year ago

@editorialbot add @erikkjellgren as reviewer

Many thanks to Erik @erikkjellgren for agreeing to review this paper! 🙌

editorialbot commented 1 year ago

@erikkjellgren added to the reviewers list!

jarvist commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.21105/joss.00819 is OK
- 10.21468/SciPostPhys.7.2.020 is OK
- 10.1038/s41592-019-0686-2 is OK

MISSING DOIs

- 10.21468/scipostphys.2.1.003 may be a valid DOI for title: QuSpin: a Python package for dynamics and exact diagonalisation of quantum many body systems part I: spin chains
- 10.1088/2058-9565/ab8ebc may be a valid DOI for title: OpenFermion: the electronic structure package for quantum computers
- 10.22331/q-2020-10-11-341 may be a valid DOI for title: Yao. jl: Extensible, efficient framework for quantum algorithm design

INVALID DOIs

- None
SYalouz commented 1 year ago

Dear @jarvist,

Glad to see that a new reviewer has accepted to be part of the process.

I saw there were still some inconsistencies in the DOI sections of the .bib file. I went through all the references and added DOIs everywhere there was one missing. Hopefully, now there will not be problem on this side.

I am going to regenerate the pdf file and ask editorial bot for another round of reference checking. I take care of this.

SYalouz commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

SYalouz commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.1021/acs.jctc.7b00174 is OK
- 10.1063/5.0006074 is OK
- 10.21105/joss.00819 is OK
- 10.21468/scipostphys.2.1.003 is OK
- 10.21468/SciPostPhys.7.2.020 is OK
- 10.1088/2058-9565/ab8ebc is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1016/j.cpc.2012.02.021 is OK
- 10.1016/j.cpc.2012.11.019 is OK
- 10.22331/q-2020-10-11-341 is OK

MISSING DOIs

- Errored finding suggestions for "Numba: A llvm-based python jit compiler", please try later

INVALID DOIs

- None
wcwitt commented 1 year ago

Review checklist for @wcwitt

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

erikkjellgren commented 1 year ago

Review checklist for @erikkjellgren

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

SYalouz commented 1 year ago

Dear @jarvist,

I contact you regarding citations to the package QuantNbody.

There are actually two papers from my group which have been realised using QuantNbody. One is already on arxiv, (see: https://arxiv.org/abs/2209.10302) and submitted to a journal, the second one will appear on arxiv by the end of the week (and submitted to a journal also this week).

I am wondering: May I inject explicit references to both these papers in the current manuscript ? This in order to demonstrate the interest of the package in current research projects.

Thanks in advance for your reply

SYalouz commented 1 year ago

Dear @jarvist ,

I come back to you to mention that the second paper from my group is now released on Arxiv (see https://arxiv.org/abs/2210.02325) where the package QuantNBody was employed. This paper has been submitted to a journal and it is now under review process.

I come back to you with the same questions as before: May I inject explicit references to both these papers in the current manuscript ? This in order to demonstrate the interest of the package in current research projects.

Thanks in advance for your reply

jarvist commented 1 year ago

I see no problem with this, as long as there is a suitable scholarly discussion to put the citations in context. Certainly it's useful for a potential user of the package to see what can be achieved academically.

jarvist commented 1 year ago

@erikkjellgren @wcwitt , how are your reviews coming along?

erikkjellgren commented 1 year ago

I will be done by the end of this week @jarvist

SYalouz commented 1 year ago

Ok, I have injected the two articles referencing the QuantNBody package, I will now generate the latest PDF version for the manuscript.

SYalouz commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

SYalouz commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.1021/acs.jctc.7b00174 is OK
- 10.1063/5.0006074 is OK
- 10.21105/joss.00819 is OK
- 10.21468/scipostphys.2.1.003 is OK
- 10.21468/SciPostPhys.7.2.020 is OK
- 10.1088/2058-9565/ab8ebc is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1016/j.cpc.2012.02.021 is OK
- 10.1016/j.cpc.2012.11.019 is OK
- 10.22331/q-2020-10-11-341 is OK

MISSING DOIs

- None

INVALID DOIs

- None
erikkjellgren commented 1 year ago

Comments for review points that might not be fulfilled: I hope I have done it in an acceptable format @jarvist

Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution. There is working installation instruction on the main GitHub page of the package. The instructions instruct to install Psi4 separately from QuantNbody, instead of having it as a direct dependency. This installation setup is not what is described as ideal. But it is easy enough.

Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems). In the GitHub repo of the package, there is a folder called Tutorials. This folder contains some notebooks with descriptions and code, which is a nice way to show how to use the code. The folder also contains some example_* folders with just plain code. A README.md file in the Tutorial folder would be appreciated to guide a user to what to actually look at.

Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)? I failed to find any documentation other than README.md in the root directory of the GitHub repo.

Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified? I failed to find any testing setup for the codebase.

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 I failed to find any community guidelines for the package.

State of the field: Do the authors describe how this software compares to other commonly-used packages? The authors make a list of software that is comparable in 'philosophy'. It is a little unclear if QuantNbody is more "theoretician-friendly" than the already existing packages.

Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)? Line 1: "python" should be with capitalized "P".

Line 11: "hamiltonians" should be with capitalized "H".

Line 33: It should be "SciPy" instead of "Scipy".

Line 39: The sentence seems fragmented, perhaps something is missing in place of the ":"

Line 42: "hamiltonians" should be with capitalized "H".

Line 57: "hubbard" should be with capitalized "H".

Line 58: The sentence starting here is a little unclear. If I understand correctly, the message is that the the Hamiltonians in Eq (1) and Eq (2) are 'programmed' using the single-body hopping oprator? Or is something more techinical happening?

Line 62: "python" should be with capitalized "P".

Line 64: "hamiltonians" should be with capitalized "H".

Line 65: H2 should be in roman instead of italic, https://iupac.org/wp-content/uploads/2019/05/IUPAC-GB3-2012-2ndPrinting-PDFsearchable.pdf

Figure 1: Atoms should be in roman. (H2 in figure caption should be in roman)

jarvist commented 1 year ago

Dear Erik, @erikkjellgren Thank you very much! These look quite detailed, and the suggested corrections well described.

@SYalouz , if you could check through & rebut or apply changes to Erik's suggestions, and address any weaknesses / issues. Please don't lose heart! JOSS is very much about working openly to improve the codes, paper and documentation to a suitable standard.

SYalouz commented 1 year ago

Dear @erikkjellgren, Dear @jarvist,

Thank you very much for your response and all your constructive and very detailed comments! They will definitely help to improve the quality of the package (and the paper). I will implement all the corrections and answer all your questions as soon as possible.

wcwitt commented 1 year ago

Thanks for the nudge - I'll finish by the end of the week.

jarvist commented 1 year ago

Thanks all! @SYalouz how are you getting on with dealing with Erik's review & the issues @wcwitt opened above?

SYalouz commented 1 year ago

Hi @jarvist,

To answer to your question @jarvist: Yes, I have seen all the comments from both @erikkjellgren and @wcwitt !

I would like to thank both of them for their work and their very relevant suggestions.

I have started to correct the mentioned parts. Some additional work requires more time for me and my colleague (e.g. writing good documentation). Normally, within two weeks, I will be completely finished.

Kind regards

jarvist commented 1 year ago

Wonderful! I hope the corrections are going ok.

SYalouz commented 1 year ago

They are going very well and we are almost done ! ;-)

SYalouz commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

SYalouz commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.1021/acs.jctc.7b00174 is OK
- 10.1063/5.0006074 is OK
- 10.21105/joss.00819 is OK
- 10.21468/scipostphys.2.1.003 is OK
- 10.21468/SciPostPhys.7.2.020 is OK
- 10.1088/2058-9565/ab8ebc is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.1016/j.cpc.2012.02.021 is OK
- 10.1016/j.cpc.2012.11.019 is OK
- 10.22331/q-2020-10-11-341 is OK

MISSING DOIs

- None

INVALID DOIs

- None
SYalouz commented 1 year ago

Dear @erikkjellgren, see below my answers to all your comments !

Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
There is working installation instruction on the main GitHub page of the package.
The instructions instruct to install Psi4 separately from QuantNbody, instead of having it as a direct dependency.
This installation setup is not what is described as ideal. But it is easy enough.

Our answer: We agree with you: it is not necessarily ideal but it works. We have been fighting with the installation of this package. We essentially came up with the simple idea of directly asking the user to install it.

Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
In the GitHub repo of the package, there is a folder called Tutorials.
This folder contains some notebooks with descriptions and code, which is a nice way to show how to use the code.
The folder also contains some example_* folders with just plain code. A README.md file in the Tutorial folder would be appreciated to guide a user to what to actually look at.

Our answer: To guide new users, we added a README.md file in the “example” folder that details all the tutorials and examples. Furthermore, we want to mention that the tutorials have been also included in the new documentation.

Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
I failed to find any documentation other than README.md in the root directory of the GitHub repo.

Our answer: It is an important point that was also raised by the second reviewer. Thus, we generated a complete documentation with “readthedoc” that can be accessed here: https://quantnbody.readthedocs.io/en/latest/.

Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
I failed to find any testing setup for the codebase.

Our answer: We created a dedicated folder (called “testing”) to run tests for both fermionic and bosonic systems. We detailed in the main README.md file how to run these tests.

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
I failed to find any community guidelines for the package.

Our answer: We added more information to the main README.md file at the root of the project. Now people will know how to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support.

State of the field: Do the authors describe how this software compares to other commonly-used packages?
=== The authors make a list of software that is comparable in 'philosophy'. It is a little unclear if QuantNbody is more "theoretician-friendly" than the already existing packages.

Our answer: We understand that the text here lacked clarity. We have therefore extended the description of the specificity of the package by highlighting the fact that QuantNbody is among the few packages that can offer a numerical encoding of second quantization operators for fermionic and bosonic systems.

Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
=== Line 1: "python" should be with capitalized "P". === Line 11: "hamiltonians" should be with capitalized "H". === Line 33: It should be "SciPy" instead of "Scipy". === Line 39: The sentence seems fragmented, perhaps something is missing in place of the ":" === Line 42: "hamiltonians" should be with capitalized "H". === Line 57: "hubbard" should be with capitalized "H". == Line 58: The sentence starting here is a little unclear If I understand correctly, the message is that the the Hamiltonians in Eq (1) and Eq (2) are 'programmed' using the single-body hopping oprator? Or is something more techinical happening? === Line 62: "python" should be with capitalized "P". === Line 64: "hamiltonians" should be with capitalized "H". Line 65: H2 should be in roman instead of italic, https://iupac.org/wp-content/uploads/2019/05/IUPAC-GB3-2012-2ndPrinting-PDFsearchable.pdf Figure 1: Atoms should be in roman. (H2 in figure caption should be in roman)

Our answer: We implemented all the corrections suggested in the paper and made clarifications where necessary.

SYalouz commented 1 year ago

Dear @erikkjellgren and @wcwitt ( and @jarvist),

Thank you again for all your comments which helped us to improve our project on many points. We have finished all the corrections and new implementations. I just answered all your comments point by point. I hope you will be satisfied with all our efforts!

erikkjellgren commented 1 year ago

Hi, I will have finished a review by the end of this week. Just to let you know @SYalouz

SYalouz commented 1 year ago

Hi ! Thanks a lot for your reply @erikkjellgren !

SYalouz commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

SYalouz commented 1 year ago

@editorialbot check references