-
Notifications
You must be signed in to change notification settings - Fork 7
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
JOSS Review #14
Comments
Thanks very much for the comments. (1) About comparison between E2EDNA (JCIM) and E2EDNA 2.0 (this manuscript):
(2) About cleaning up the code base:
(3) Licenses:
(4) Installation
(5) Misc
(6) Comments on the Manuscript
|
Hi @taoliu032, Thanks for your answers. Would it be possible to make available an example that does not require the dependencies users have to install manually? I'd like to test the software before giving it a 👍 for submission but I don't want to register for and install several dependencies on my laptop just for this purpose. |
Hi @JoaoRodrigues, Thanks for your comment. To clarify: I think that the two dependencies you referred to are NUPACK and MMB. If so, yes it is possible to bypass both of them by providing the software with a DNA structure in pdb format. As you requested, I have made an example that does not require the dependencies of NUPACK and MMB. To do so, I needed to slightly modify the code, such as removing the import statement In this branch, "foldedAptamer_0.pdb" is the example DNA aptamer structure for the test. Regarding how to run the test on your local computer: for convenience, after setting up the conda environment and workdir path in |
Hi @taoliu032, thanks for the quick update, I'll give it a shot. In the meantime, I'd suggest you make NUPACK and MMB runtime dependencies, maybe supported by a command-line flag? That way users won't have to modify the source code to run part of the workflow. This goes back to my previous comment of allowing users to specify parameters for the run in a config file. This type of dependencies is usually implemented by isolating the part of the code requiring the third-party code in question in a function or class, and then having the import there in a try/except statement, .e.g:
|
In addition, here are some comments from installing and running the software:
|
+1
I have the same error, and agree that you should not use hardcoded values. I see that most of the logic revolves around this |
Thank you both very much for the comments and advice. We have started some of the upgrades as you mentioned since the submission, and I will get back to you as soon as possible. |
@JoaoRodrigues @rvhonorato Thank you both very much for the very helpful suggestions! I updated the codebase (here) accordingly and tested them myself already. Now we are waiting for any feedback from our beta tester. Once it is done (should not be long), I will update the JOSS branch and invite you to test the code. ==================
Thank you very much again. |
Hi @taoliu032, Thanks for the revisions, looking good! I have one final comment, but I leave it up to you to implement it. I'd swap the priority of the parameters, so that command-line arguments override yaml configurations. The reason is, like you said, it's easier for people to iterate several parameters via command-line. So, they can define a yaml with a bunch of settings and then iterate, for example, on a parameter via the command line. I'll give you the go-ahead in the JOSS thread. |
@JoaoRodrigues Thank you for all the patient and helpful feedback! I thought about making command-line arguments override yaml configuration. In that case, In the current design, a user can achieve what you suggested: for a series of runs, they can define a single yaml that only contains the common parameters, then specify the to-be-iterated parameter(s) via command-line. In this way, since the parameters specified by yaml and command-line are mutually exclusive, there won't be overriding. |
Good job on the changes! Looking great ✅ |
Thank you both again! |
Hi all,
Thanks for the invitation to review and congrats on the submission.
The general idea behind this submission is sound, and follows-up on a 2021 publication from the same authors on E2EDNA v1.0, published in JCIM. From my understanding, the code is essentially a re-write to use OpenMM instead of Tinker as the MD engine. While this is valuable - makes it simpler to install/run - the authors do not realize, in my opinion, this change to its fullest potential. The authors repository is not so much a "package" in the traditional sense, but more of a collection of scripts that automate a certain rigid protocol. I would rather see for instance, NUPACK being an optional dependency - as a user, I could simply provide my own DNA molecules instead of being forced to use NUPACK. In this sense, I think this repository could use more work to stand out on its own compared to last year's publication.
In addition to this comments, I have a general comment on the repository itself. The authors should take some time to clean up files that are no longer useful for the protocol or that are simply part of the development workflow. Folders named
old
, or IDE config folders (.idea
) should not be part of a published version of the repository, specially when they are even marked to be ignored in the.gitignore
file. Same with the existence of both arequirements.txt
file and anenvironment.yml
file, whereas only the latter is used. As such, I believe that the authors should spend some time cleaning up the repository and setting up a more "traditional" structure to help potential users navigate through their code base more easily.Further, I have a few starter questions about the manuscript, code and, licenses that I think should be clarified. Hopefully these will help the authors improve their work and repository/code.
Licenses
Installation
The installation process is quite complex. As a user, I'd have to register and download NUPACK and MMB, as well as edit a series of files in order to get a functional installation. This is simply a suggestion for the developers to keep in mind.
Related to the point above, have the authors considered using conda directly to install their software, instead of a custom shell script?
pdbfixer
is available as a conda package, and you could specify pip packages there too, e.g.lightdock
. The installation could be reduced to a simple: 1) install nupack 2) install mmb 3) runconda env create -f e2edna-env.yml
.On this last point, the authors should strip the granular version of the env
yaml
file otherwise conda will struggle with versions on anything but the authors' hardware.According to the README, the code is only tested on MacOS, although I'd imagine the most use would be on a compute cluster running Linux. Have the authors tried running their code on Linux?
Misc
Comments on the Manuscript
The text was updated successfully, but these errors were encountered: