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]: The pdb2sql Python Package: Parsing, Manipulation and Analysis of PDB Files Using SQL Queries #2077

Closed
whedon opened this issue Feb 6, 2020 · 58 comments

Comments

@whedon
Copy link
Collaborator

@whedon whedon commented Feb 6, 2020

Submitting author: @NicoRenaud (Nicolas Renaud)
Repository: https://github.com/DeepRank/pdb2sql
Version: 0.4.0
Editor: @lpantano
Reviewers: @i-mtz, @JoaoRodrigues, @joaomcteixeira
Archive: 10.5281/zenodo.3860329

Status

status

Status badge code:

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

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

@i-mtz & @JoaoRodrigues & @joaomcteixeira, 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 @lpantano know.

Please try and complete your review in the next two weeks

Review checklist for @joaomcteixeira

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

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?
  • Contribution and authorship: Has the submitting author (@NicoRenaud) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

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 functionality 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

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

Review checklist for @i-mtz

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

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?
  • Contribution and authorship: Has the submitting author (@NicoRenaud) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

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 functionality 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

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

Review checklist for @JoaoRodrigues

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

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?
  • Contribution and authorship: Has the submitting author (@NicoRenaud) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

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 functionality 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

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?
@whedon
Copy link
Collaborator Author

@whedon whedon commented Feb 6, 2020

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @i-mtz, @JoaoRodrigues it looks like you're currently assigned to review 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 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
Copy link
Collaborator Author

@whedon whedon commented Feb 6, 2020

Reference check summary:

OK DOIs

- 10.1093/bioinformatics/btp163 is OK
- 10.1093/bioinformatics/btg299 is OK
- 10.1002/(SICI)1096-987X(20000130)21:2<79::AID-JCC1>3.0.CO;2-B is OK
-  10.25080/Majora-629e541a-00e  is OK
- 10.1093/bioinformatics/btz496 is OK
- 10.1093/bioinformatics/btr168 is OK
- 10.1371/journal.pcbi.1006791 is OK
- 10.1371/journal.pone.0161879 is OK
- 10.1093/nar/gky949 is OK
- 10.1101/483305 is OK
- 10.1002/prot.10393 is OK

MISSING DOIs

- None

INVALID DOIs

- None
@openjournals openjournals deleted a comment from whedon Feb 6, 2020
@arfon
Copy link
Member

@arfon arfon commented Feb 6, 2020

@whedon generate pdf

@whedon
Copy link
Collaborator Author

@whedon whedon commented Feb 6, 2020

@lpantano
Copy link

@lpantano lpantano commented Feb 19, 2020

@JoaoRodrigues , @i-mtz, any update in the revision of this paper? thanks!

@JoaoRodrigues JoaoRodrigues self-assigned this Feb 24, 2020
@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Feb 24, 2020

Hi @lpantano , sorry for the late reply but I was traveling+sick and away from my laptop for quite some time. Apologies to the authors for the delay.

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Feb 24, 2020

Hey @NicoRenaud

The tool looks good but there are a few rough edges I'd polish before publishing it. I left a few issues on your repo that should be easy to fix. Here are a few more minor questions/issues I found when going over the paper and the code:

  • There is a consistent typo on the word 'structure' all over the documentation :) sed -e 's/strcture/structure/g' should fix it!
  • As a user, I would expect I could use the interface module on a PDB I already parsed, e.g. pdb = pdb2sql('myfile.pdb'); pdbint = interface(pdb). Right now I need to load it twice and this is a bit counter-intuitive. Maybe this is a simple fix?
  • I'd keep to one convention when naming variables and attributes. You use a lot of get_X methods, for example, but then there are attributes named nModels, chainID, altLoc. You should stick to one, e.g., n_models, chain_id, altloc for simplicity.
  • For convenience, you could add a fetch method to download files from the RCSB PDB directly. Makes it easier for new users to try the tool without having to find a PDB of their own first.
  • The paper states that pdb2sql tries to abstract SQL language for the end-user, and it generally does a pretty good job! However, having methods like db.close() and such in the documentation (and exposed in the public API) sort of defeats the purpose. I would make these private and, my preference here, would make them happen behind the scenes so that the end user never has to worry about db connections, cursors, etc.
  • On the topic of dependencies, I see that sqlalchemy is not necessary for the tool to run, but it provides a better OO interface. Maybe making it a runtime dependency then? Or explain the difference between the two interfaces and why you'd want (or not) to use sqlalchemy.

Finally, I would send the text of the paper through Grammarly (its free version works well enough) to fix some incorrect grammar here and there and make it read more clearly.

Overall, the tool does what it says it does and it's pretty quick too. As I said before, just some rough edges that need polishing! Good job @NicoRenaud and @CunliangGeng !

@CunliangGeng CunliangGeng mentioned this issue Feb 28, 2020
8 of 8 tasks complete
@NicoRenaud
Copy link

@NicoRenaud NicoRenaud commented Mar 6, 2020

Dear @JoaoRodrigues, thanks for reviewing our code and for your comments and suggestions. We've addressed them all, merged the changes in the master and updated the paper accordingly. As a quick summary :

  • we fixed the consistent typos on the documentation, thanks for spotting that
  • You can directly use pdbint=interface('myfile.pdb') or if needed first create an sql db and pass it to the interface : pdb = pdb2sql('myfile.pdb) pdbint =interface(pdb)
  • The fetch function is a very good idea that is now implemented !
  • Indeed exposing the .close() method is not ideal. This is now fully done behind the scene as you suggested. (Note that we always use in memory db)
  • we realized that we never use sqlalchemy and that we do not want to maintain code that is never used. Therefore we have decided to entirely remove sqlalchemy support form pdb2sql. We kept it in a separate branch in case there is a demand for it. We have updated the documentation and the paper accordingly.
    Thanks again for all your comments !
@arfon
Copy link
Member

@arfon arfon commented Mar 14, 2020

Dear authors and reviewers

We wanted to notify you that in light of the current COVID-19 pandemic, JOSS has decided to suspend submission of new manuscripts and to handle existing manuscripts (such as this one) on a "best efforts basis". We understand that you may need to attend to more pressing issues than completing a review or updating a repository in response to a review. If this is the case, a quick note indicating that you need to put a "pause" on your involvement with a review would be appreciated but is not required.

Thanks in advance for your understanding.

Arfon Smith, Editor in Chief, on behalf of the JOSS editorial team.

@lpantano
Copy link

@lpantano lpantano commented Mar 18, 2020

Hey @i-mtz, I hope all is good. Do you have an update for this tool?

@JoaoRodrigues, were all your comments resolved?

Thanks

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Mar 18, 2020

Hi @lpantano , I haven't had time to go over the changes in detail yet, but the message from @NicoRenaud seems to address most of my comments. I am a bit swamped today, but this is on my to-do list for this week. Is that OK? Sorry for the delay in reviewing

@lpantano
Copy link

@lpantano lpantano commented Mar 18, 2020

All good, thank you!

@arfon
Copy link
Member

@arfon arfon commented Apr 13, 2020

👋 @i-mtz, @JoaoRodrigues, just a friendly check-in to see how things are going with your reviews?

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Apr 13, 2020

Hi @arfon @lpantano @NicoRenaud @CunliangGeng , this completely fell off my radar, I'm terribly sorry. Will reply as soon as possible!

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Apr 13, 2020

@whedon generate pdf

@whedon
Copy link
Collaborator Author

@whedon whedon commented Apr 13, 2020

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Apr 13, 2020

Hi @NicoRenaud @CunliangGeng

Thank you for addressing my points! I'd only add somewhere in the documentation page a mention to the fetch function. It's good for me! Approved!! Great work!

@lpantano
Copy link

@lpantano lpantano commented Apr 13, 2020

Sorry, I need to get a new reviewer since one of them couldn't make it under the current COVID-19 situation. @NicoRenaud , if you have a reviewer in mind, let me know. I will try to find another as soon as possible.

@JoaoRodrigues
Copy link
Collaborator

@JoaoRodrigues JoaoRodrigues commented Apr 14, 2020

Not to overstep my boundaries as a reviewer, but if I can suggest people: @joaomcteixeira or @jgreener64. Both very skilled structural bioinformaticians and very active on Github.

@NicoRenaud
Copy link

@NicoRenaud NicoRenaud commented May 22, 2020

@arfon we updated the instruction to manually run the test as pointed out by @joaomcteixeira. We could also follow his suggestion to change the exec path but I don't really have the time to do that at the moment. So from our side we are done I think

@NicoRenaud
Copy link

@NicoRenaud NicoRenaud commented May 27, 2020

@arfon just to let you know that @joaomcteixeira has implemented his own suggestions for the test so we are officially done with the review on our side ! Thanks again @joaomcteixeira !!

@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

Perfect! @NicoRenaud can you confirm the latest version is 0.2.2? if that is right, can you work on a zenodo archive of this version and having the title and authors matching what is shown in the paper? Thanks!

@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon check references

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

Reference check summary:

OK DOIs

- 10.1093/bioinformatics/btp163 is OK
- 10.1093/bioinformatics/btg299 is OK
- 10.1002/(SICI)1096-987X(20000130)21:2<79::AID-JCC1>3.0.CO;2-B is OK
-  10.25080/Majora-629e541a-00e  is OK
- 10.1093/bioinformatics/btz496 is OK
- 10.1093/bioinformatics/btr168 is OK
- 10.1371/journal.pcbi.1006791 is OK
- 10.1371/journal.pone.0161879 is OK
- 10.1093/nar/gky949 is OK
- 10.1101/483305 is OK
- 10.1002/prot.10393 is OK

MISSING DOIs

- None

INVALID DOIs

- None
@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon generate pdf

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

@CunliangGeng
Copy link

@CunliangGeng CunliangGeng commented May 27, 2020

Perfect! @NicoRenaud can you confirm the latest version is 0.2.2? if that is right, can you work on a zenodo archive of this version and having the title and authors matching what is shown in the paper? Thanks!

Thanks @lpantano, the version now is 0.4.0, and zenodo archive has been updated with your suggestions, see https://doi.org/10.5281/zenodo.3860329.

@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon set version as 0.4.0

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

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

@whedon commands
@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon set 0.4.0 as version

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

OK. 0.4.0 is the version.

@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon set 10.5281/zenodo.3860329 as archive

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

OK. 10.5281/zenodo.3860329 is the archive.

@lpantano
Copy link

@lpantano lpantano commented May 27, 2020

@whedon accept

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

Attempting dry run of processing paper acceptance...
@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

Reference check summary:

OK DOIs

- 10.1093/bioinformatics/btp163 is OK
- 10.1093/bioinformatics/btg299 is OK
- 10.1002/(SICI)1096-987X(20000130)21:2<79::AID-JCC1>3.0.CO;2-B is OK
-  10.25080/Majora-629e541a-00e  is OK
- 10.1093/bioinformatics/btz496 is OK
- 10.1093/bioinformatics/btr168 is OK
- 10.1371/journal.pcbi.1006791 is OK
- 10.1371/journal.pone.0161879 is OK
- 10.1093/nar/gky949 is OK
- 10.1101/483305 is OK
- 10.1002/prot.10393 is OK

MISSING DOIs

- None

INVALID DOIs

- None
@whedon
Copy link
Collaborator Author

@whedon whedon commented May 27, 2020

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

Check final proof 👉 openjournals/joss-papers#1460

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

@whedon accept deposit=true
@danielskatz
Copy link

@danielskatz danielskatz commented May 27, 2020

👋 @NicoRenaud - please merge the minor changes in DeepRank/pdb2sql#54 or let me know what you disagree with in it

@CunliangGeng
Copy link

@CunliangGeng CunliangGeng commented May 28, 2020

@danielskatz Many thanks for the changes, it's merged.

@danielskatz
Copy link

@danielskatz danielskatz commented May 28, 2020

@whedon accept deposit=true

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 28, 2020

Doing it live! Attempting automated processing of paper acceptance...
@whedon
Copy link
Collaborator Author

@whedon whedon commented May 28, 2020

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

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 28, 2020

🚨🚨🚨 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 👉 openjournals/joss-papers#1461
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.02077
  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...

@danielskatz
Copy link

@danielskatz danielskatz commented May 28, 2020

Thanks to @i-mtz, @JoaoRodrigues, @joaomcteixeira for reviewing, and to @lpantano for editing!

And congratulations to @NicoRenaud and co-author!!

@whedon
Copy link
Collaborator Author

@whedon whedon commented May 28, 2020

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

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

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

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

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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants
You can’t perform that action at this time.