Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: PyGBe-LSPR: Python and GPU Boundary-integral solver for electrostatics #306

Closed
16 of 18 tasks
whedon opened this issue Jun 26, 2017 · 27 comments
Closed
16 of 18 tasks
Assignees
Labels
accepted published Papers published in JOSS recommend-accept Papers recommended for acceptance in JOSS. review

Comments

@whedon
Copy link

whedon commented Jun 26, 2017

Submitting author: @ncclementi (Natalia C. Clementi)
Repository: https://github.com/barbagroup/pygbe
Version: 0.3
Editor: @katyhuff
Reviewer: @kyleniemeyer
Archive: 10.5281/zenodo.1067773

Status

status

Status badge code:

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

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) 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 questions

@nicoguaro, please carry out your review in this issue by updating the checklist below (please make sure you're logged in to GitHub). The reviewer guidelines are available here: http://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @katyhuff know.

Conflict of interest

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (such as being a major contributor to the software).

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (0.3)?
  • Authorship: Has the submitting author (@ncclementi) made major contributions to the software?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: Have any performance claims of the software been confirmed?

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • 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

Software paper

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?
@whedon
Copy link
Author

whedon commented Jun 26, 2017

Hello human, I'm @whedon. I'm here to help you with some common editorial tasks for JOSS. @nicoguaro it looks like you're currently assigned as the reviewer for this paper 🎉.

⭐ Important ⭐

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

@labarba
Copy link
Member

labarba commented Jul 1, 2017

@nicoguaro : Do you have access to a GPU to run this? Let us know if you need anything.

@nicoguaro
Copy link

@labarba, I have a GTX 850M in my laptop... but it just stopped working. I will try in a computer in the office that has a G98 Quadro NVS 420.

It seems a little bit more complicated than I thought.

@kyleniemeyer
Copy link

@katyhuff I can jump in to review this if needed, as I do have access to a few GPU systems (and reviewed the original PyGBe submission)

@katyhuff
Copy link
Member

Thanks a lot @nicoguaro for giving this a look! The particular hardware constraints of this paper may require an editor with access to an appropriate GPU resource. In the future, we may have a journal-wide solution to unique architectural requirements. After some discussion with him here at SciPy, I believe that @kyleniemeyer may be able to conduct the review with the GPU resources he has available to him. @kyleniemeyer , would you be willing to review this paper?

@katyhuff
Copy link
Member

@whedon assign @kyleniemeyer as reviewer

@kyleniemeyer kyleniemeyer self-assigned this Jul 14, 2017
@katyhuff
Copy link
Member

@whedon commands

@whedon
Copy link
Author

whedon commented Jul 14, 2017

Here are some things you can ask me to do:

# List all of Whedon's capabilities
@whedon commands

# Assign a GitHub user as the reviewer of this submission
@whedon assign @username as reviewer

# List the GitHub usernames of the JOSS editors
@whedon list editors

# List of JOSS reviewers together with programming language preferences and domain expertise
@whedon list reviewers

# Change editorial assignment
@whedon assign @username as editor

# Set the software archive DOI at the top of the issue e.g.
@whedon set 10.0000/zenodo.00000 as archive

# Open the review issue
@whedon start review

🚧 Important 🚧

This is all quite new. Please make sure you check the top of the issue after running a @whedon command (you might also need to refresh the page to see the issue update).

@arfon
Copy link
Member

arfon commented Jul 14, 2017

@whedon assign @kyleniemeyer as reviewer

@whedon
Copy link
Author

whedon commented Jul 14, 2017

OK, the reviewer is @kyleniemeyer

@katyhuff
Copy link
Member

katyhuff commented Sep 7, 2017

@kyleniemeyer : what's the status on the review of this? Thanks!

@kyleniemeyer
Copy link

Regarding the community guidelines, there is a short section in the Developer's Guide docs page (http://barbagroup.github.io/pygbe/docs/contributing.html) that discusses contributing.

This is probably sufficient, but putting a link to this or a "Help" section in the README (since most people will likely enter the project via it on the main repo page) might strengthen this area.

Also, you might consider adding a code of conduct to the project, and mentioning that in both places.

@kyleniemeyer
Copy link

The installation instructions are great—the only hiccup I faced was building PyCUDA on one system. You might consider checking for compatibility/updating with the latest version, PyCUDA 2017.1.1.

@kyleniemeyer
Copy link

kyleniemeyer commented Sep 7, 2017

Regarding the article, I have a number of comments and suggestions:

  • I think you should add more at the beginning that explains the target problems in more general terms. In particular, each of "biomolecular electrostatics", " nanoparticle plasmonics ", and "boundary integral method" could be briefly explained. Similarly, LSPR isn't really explained—overall, the third paragraph is nearly impossible to understand (for me, at least) due to the heavy use of jargon.

    (I believe our changes to expectations/guidelines for article content and length happened after you originally submitted this.)

  • Also, personally I recommend that references not be treated as objects in the text (i.e., rather than "see @Mayergoyz2007", do "see Mayergoyz and Zhang (@Mayergoyz2007)", but I recognize this is a style preference. Just a suggestion 😄

  • For the last sentence, I would at minimum change to "We plan to use PyGBe-LSPR to study nanobiosensors and to explore nanophotonics applications." (originally missing period at the end, and "to the study of" -> "to study")

  • I see reference @CooperClementiBarba2015 in the .bib file; you might consider adding a mention of that to the paper, if the software was used for that study (but update the reference info). Also, maybe the other papers that are mentioned in the docs?

@kyleniemeyer
Copy link

Regarding running the code itself, my main comment is that the Run PyGBe page could include more information about what is output to the screen when running.

Perhaps this is due to me not being familiar with the problems being solved, but explanations of Esolv, Esurf, Ecoul, or Time Cext and Cext per surface would help there.

@kyleniemeyer
Copy link

kyleniemeyer commented Sep 7, 2017

If the above issues can be addressed satisfactorily, and the issues I raised in the repo itself addressed/closed, then I would consider the submission ready to accept.

@ncclementi
Copy link

Thanks @kyleniemeyer
We're are working on the suggestions, we'll address them and get back to you here.

@labarba
Copy link
Member

labarba commented Oct 17, 2017

Responses to reviewer comments in order of appearance:

Regarding the community guidelines, there is a short section in the Developer's Guide docs page (http://barbagroup.github.io/pygbe/docs/contributing.html) that discusses contributing.

This is probably sufficient, but putting a link to this or a "Help" section in the README (since most people will likely enter the project via it on the main repo page) might strengthen this area.

We added a sentence in the README, with a link to the Developoer's Guide.

Also, you might consider adding a code of conduct to the project, and mentioning that in both places.

We thought about this, and decided that for now, this would be overkill, because we haven't had any contributors from outside the group. We'll revisit this in the future, as needed.

The installation instructions are great—the only hiccup I faced was building PyCUDA on one system. You might consider checking for compatibility/updating with the latest version, PyCUDA 2017.1.1.

We updated the compatibility of dependencies for the latest versions of all our packages, and we added a Docker file to make the installation process easier (in case the user is familiarized with Docker).

I think you should add more at the beginning that explains the target problems in more general terms. In particular, each of "biomolecular electrostatics", " nanoparticle plasmonics ", and "boundary integral method" could be briefly explained. Similarly, LSPR isn't really explained—overall, the third paragraph is nearly impossible to understand (for me, at least) due to the heavy use of jargon.

In the revised first paragraph, we explain "biomolecular electrostatics" by saying what we compute: the solvation energy, and explaining what this is (and what it is used for). We don't explain "boundary integral method," because of the same reason we wouldn't expalin "finite difference method"—it is a standard method in the arsenal of numerical computing. We revised the third paragraph, explaining LSPR, which also helps get an idea of what part of nanoplasmonics we're tackling.

Also, personally I recommend that references not be treated as objects in the text (i.e., rather than "see @mayergoyz2007", do "see Mayergoyz and Zhang (@mayergoyz2007)", but I recognize this is a style preference. Just a suggestion.

We agree completely. But notice that the JOSS machinery produces the correct format when generating the PDF, with Author (YEAR) spelled out, as needed when part of a sentence. In other words, the way we have it in the paper.md file will produce what you want in the final PDF.

For the last sentence, I would at minimum change to "We plan to use PyGBe-LSPR to study nanobiosensors and to explore nanophotonics applications." (originally missing period at the end, and "to the study of" -> "to study")

Fixed.

I see reference @cooperclementibarba2015 in the .bib file; you might consider adding a mention of that to the paper, if the software was used for that study (but update the reference info). Also, maybe the other papers that are mentioned in the docs?

That paper used the previous version of the code, and we added the reference in the first paragraph.

Regarding running the code itself, my main comment is that the Run PyGBe page could include more information about what is output to the screen when running.

Perhaps this is due to me not being familiar with the problems being solved, but explanations of Esolv, Esurf, Ecoul, or Time Cext and Cext per surface would help there.

We modified the printed output so that a short description appears before each instance of the returned variables. Morover, there is a section in the main page of the Documentation (now renamed "Code Documentation:") where a user can search by variable name or keyword, to be pointed to the relevant docstring(s).

@kyleniemeyer
Copy link

Thanks @labarba, looks good!

@katyhuff at this point I recommend accepting the submission.

@katyhuff
Copy link
Member

Wonderful! Thanks @labarba @ncclementi and @kyleniemeyer !

@labarba and @ncclementi : Could you make an archive of the current version of the reviewed software in Zenodo/figshare/other service and update this thread with the DOI of the archive? I can then move forward with accepting the submission.

@arfon
Copy link
Member

arfon commented Nov 20, 2017

@labarba and @ncclementi : Could you make an archive of the current version of the reviewed software in Zenodo/figshare/other service and update this thread with the DOI of the archive? I can then move forward with accepting the submission.

Friendly reminder on this @ncclementi.

@labarba
Copy link
Member

labarba commented Nov 20, 2017

This is me being a bottleneck. We had the problem of the Zenodo archive being created by one student who has now left the group. Zenodo does not have the feature to allow org accounts or sharing the ownership of a Zenodo entry. We exchanged emails with them to have this archive transferred to another account. They said yes, with approval of original uploader. This happened. Now, I have to create a new Zenodo account with a "barbagroup" org email I created, and transfer ownership of the Zenodo entry. Will update here when done.

@ncclementi
Copy link

@arfon Here is our zenodo doi: https://doi.org/10.5281/zenodo.1067773

@arfon
Copy link
Member

arfon commented Nov 30, 2017

@whedon set 10.5281/zenodo.1067773 as archive

@whedon
Copy link
Author

whedon commented Nov 30, 2017

OK. 10.5281/zenodo.1067773 is the archive.

@arfon arfon added the accepted label Nov 30, 2017
@arfon
Copy link
Member

arfon commented Nov 30, 2017

@ncclementi @labarba - when you get a chance, please merge this PR which updates the JOSS paper to the newer format.

@arfon
Copy link
Member

arfon commented Nov 30, 2017

@kyleniemeyer many thanks for your review and to @katyhuff for editing this submission ✨

@ncclementi @labarba - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00306 ⚡️ 🚀 💥

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted published Papers published in JOSS recommend-accept Papers recommended for acceptance in JOSS. review
Projects
None yet
Development

No branches or pull requests

7 participants