Joss-reviews: [REVIEW]: MetalWalls: A classical molecular dynamics software dedicated to the simulation of electrochemical systems

Created on 20 Jun 2020  Β·  64Comments  Β·  Source: openjournals/joss-reviews

Submitting author: @salanne (Mathieu Salanne)
Repository: https://gitlab.com/ampere2/metalwalls
Version: 20.05
Editor: @richardjgowers
Reviewer: @mattwthompson, @hmacdope
Archive: 10.5281/zenodo.4040665

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

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

@mattwthompson & @hmacdope, 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 @richardjgowers know.

✨ Please try and complete your review in the next six weeks ✨

Review checklist for @mattwthompson

Conflict of interest

  • [x] 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

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Contribution and authorship: Has the submitting author (@salanne) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] 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

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

  • [x] Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • [x] Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • [x] 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 @hmacdope

Conflict of interest

  • [x] 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

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Contribution and authorship: Has the submitting author (@salanne) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] 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

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

  • [x] Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • [x] Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • [x] 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?
accepted published recommend-accept review

Most helpful comment

@salanne as I said over, on GitLab, the fixes you & your peers have implemented each look good to me :+1:

Looking over my wall of text, each of my issues have been addressed, therefore I am happy to recommend it for publication. @richardjgowers

All 64 comments

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @mattwthompson, @hmacdope 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
Reference check summary:

OK DOIs

- 10.1063/1.2464084 is OK
- 10.1063/1.469429 is OK
- 10.1039/C9CP06285H is OK
- 10.1038/nmat3260 is OK
- 10.1073/pnas.1301596110 is OK
- 10.1021/acsnano.6b03753.s001 is OK
- 10.1103/physrevx.8.021024 is OK
- 10.1063/1.5055704 is OK
- 10.1039/d0cp00163e is OK
- 10.1063/5.0007192 is OK
- 10.1103/physrevlett.123.195501 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@hmacdope @mattwthompson we'll be doing the review in this issue. Usually if you have comments/concerns about the software it's best to open an issue in their repo to track and address this

@hmacdope @mattwthompson how is the review going?

@richardjgowers sorry for the delay, I will finalise ASAP.

A few little hiccups along the way, but hoping to finish up this week

@whedon commands

Here are some things you can ask me to do:

# List Whedon's capabilities
@whedon commands

# List of editor GitHub usernames
@whedon list editors

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

EDITORIAL TASKS

# Compile the paper
@whedon generate pdf

# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name

# Ask Whedon to check the references for missing DOIs
@whedon check references

# Ask Whedon to check repository statistics for the submitted software
@whedon check repository

@salanne I have flagged the need for a contribution/community guidelines document in your GitLab repo. I will continue with my review in the mean time.

@salanne please find my review below.

I found this to be a well written and comprehensive piece of software for performing MD simulations of electrochemical systems. Metalwalls includes several unique algorithms not commonly used in other packages that are well suited to simulation of electrochemical systems, and these are highlighted in the paper. The author list is comprehensive and represents the effort of a large team over many years. The software paper itself is well written and contained appropriate citations.

Installation is as advertised and the functionality of the package appeared comprehensive. Unit-testing requires the manual installation of pFUnit, ideally this would be packaged along with the software (licensing permitting) but this is not an absolute requirement. Regression tests were extensive and appropriate.

Extensive example inputs are provided all of which ran successfully, however the package appeared to lack API documentation or a user manual, (or I could not find it). This meant that I found the input formats difficult to follow. This should be addressed prior to publication either with API docs, a user manual or both. Additionally, a community guidelines document should be provided.

Once the above two points are addressed Metalwalls is thoroughly deserving of publication.

Thanks for the review @hmacdope ! Concerning the user manual, did you find the wiki https://gitlab.com/ampere2/metalwalls/-/wikis/home ? It contains in particular a description of the input files there https://gitlab.com/ampere2/metalwalls/-/wikis/system-configuration .

We will work on the community guidelines asap.

@salanne no I didn't, my apologies!

If you put a link to it in README.md that would be great, just so it is a little more obvious.

@hmacdope Good idea

@salanne all my concerns have been addressed, I am now happy to accept for publication.

Thanks for the review!

Apologies again for my delay; I've run into some issues in my attempts to install the package and pFUnit today and in past weeks. I raised an issue on the GitLab repository. @salanne

I'm embarrassingly inexperienced with compiling FORTRAN code, so I don't consider this a significant barrier to usage more broadly. But I would like to be able to install it and run through the tests myself πŸ™‚

No worries Matt. You ought to be able to follow their instructions (if any)
so might be something to raise as an issue.

On Tue, Jul 21, 2020 at 14:57, Matt Thompson notifications@github.com
wrote:

Apologies again for my delay; I've run into some issues in my attempts to
install the package and pFUnit today and in past weeks. I raised an issue
on the GitLab repository. @salanne https://github.com/salanne

I'm embarrassingly inexperienced with compiling FORTRAN code, so I don't
consider this a significant barrier to usage more broadly. But I would like
to be able to install it and run through the tests myself πŸ™‚

β€”
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/openjournals/joss-reviews/issues/2373#issuecomment-661877268,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACGSGB27UV5KLVTKVN3XUWTR4WNCZANCNFSM4ODMSXHA
.

@mattwthompson thank you for pointing out the issue. We were using pFunit 3 and now they switched to version 4.0.0 and everything has changed (repository location, installation etc). We will fix this asap.

Thank you @mattwthompson, we clarified the installation and version of pFunit to be used, and gave the appropriate link. We fixed the broken links and, as suggested by @hmacdope, we emphasized better the location of the documentation (wiki) in the README and added a sentence on how to raise issues.

I hope these modifications answer the points you raised

Apologies again for my delay, and thanks for quickly fixing the issue I raised over on GitLab. @salanne @lscalfi

The paper is well-written; it accurately describes the significant need [1] satisfied by this work, introduces the software, and briefly describes the theory behind it. The software is MIT licensed, hosted openly on GitLab, and comes with detailed documentation on installing, using, and developing it. Installation proceeded smoothly and the examples I ran worked as expected. The simulations were not notably performant, but there are no performance claims in the work and the novelty of this software is in enabling a new method, one that is not at all supported by the popular high-performance engines. [2] A "slow" implementation of constant potential simulations is better than the state of the art a year or two ago, which was having none in the public domain.

Some very minor things I encountered along the way:

  • The developer documentation states To set up a GitLab account at Maison de la Simulation, please contact Professor Mathieu Salanne at <email>. . Is this meant to be directed at lab members and collaborators, or public-facing? The specific concern is if a public user lacking this access or affiliation would be able to freely submit a merge request to the repository. [3]

  • It would be useful to give a rough indication of how long the examples are expected to take (on mid-range hardware, like a 4-core laptop). Probably somewhere in the LIST or DESCRIPTION files in the examples directory. I'm used to engines giving me partial progress indicators ("on step 100 of N" and/or "expected to finish in x minutes") and I think this sort of thing is hugely useful for people using simulation software. I did not get this myself. [4]

  • The links here are broken; I don't know if they are pointing to the wrong place or just to files that are not publicly accessible.

I anticipate these issues can be fixed easily and would be happy to recommend this paper for publication once they are.

Footnotes:

  1. It is possible that I am biased (in unfair favor of this work) here. As a PhD student, some research directions I was interested in were significantly stifled by the lack of open-source tooling for constant potential methods. Several groups around the world independently published many papers using this (or similar) methods, but none, to my knowledge as of 2017 or so, open-sourced their implementations of it (Obviously, until this work). However, I think
    this stands on its merits; any practitioner of molecular simulation with an interest in electrochemical applications may find great value in this work.

  2. Of course, (completely out of scope for this review) it would be awesome to somehow get this functionality merged into a mainstream engine in the future. I don't think this would be easy, if feasiable, unless FORTRAN code can easily be ported over to C++, which I'm pretty sure all the modern engines are written in.

  3. I may just not understand the GitLab model; I am more familiar with the conventional fork/PR model on GitHub in which a new developer can submit a patch without the maintainers even being aware until it is submitted for review. I'm pretty sure this is identical to mere requests on GitLab but haven't done one myself.

  4. If this is an option that can be set in the input file, it should be turned on by default in the example.

I ended up rambling on another point, which upon re-reading I consider completely out of scope for this review. I am including it anyway, but as if from an interested passerby

  • The file format support for output trajectories is entirely adequate, but support for taking in existing file formats is poor. Consider the case of somebody who already has a simulation running in a popular engine (LAMMPS, GROMACS, AMBER, OpenMM, etc.) and would like to use the methods only available in MetalWalls. It seems this would require the user to write a few hundred lines of input files manually or generate a one-off script to do so. It would be useful to provide some tools for automatically doing these conversions for the simpler parts of the input scripts (a harmonic bond is a harmonic bond), even if there are some edge cases that will need to be taken care of by hand. Maybe the users and developers of MetalWalls have already built some of these tools? If so, packaging them and releasing them within or alongside this tool would potentially be hugely useful for future adopters.

@mattwthompson I don't see any issues open on the tracker, have you comments been addressed?

The installation issues I encountered earlier are in a closed issue; I'll raise the others now

@richardjgowers @mattwthompson Sorry I was on holidays the past 3 weeks. Thank you for the review, we will look at this asap.

Hi @mattwthompson, sorry again for the delay. We fixed the issues you raised on the repository, please let me know if this is fine for you now. Concerning the file conversion, we are indeed developing some tools, these will be made available on the MW page when it is done. Thanks again for the review!

@salanne as I said over, on GitLab, the fixes you & your peers have implemented each look good to me :+1:

Looking over my wall of text, each of my issues have been addressed, therefore I am happy to recommend it for publication. @richardjgowers

Hello @richardjgowers is there any action needed on our side?

No, I think you’re just waiting on me to look over this, sorry. Give me a
few days.

On Mon, Sep 14, 2020 at 15:22, salanne notifications@github.com wrote:

>
>

Hello @richardjgowers https://github.com/richardjgowers is there any
action needed on our side?

β€”
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/openjournals/joss-reviews/issues/2373#issuecomment-692048735,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACGSGB3TH32UFLCGN67Y2QTSFYKJVANCNFSM4ODMSXHA
.

Ok, there is absolutely no rush, I just wanted to be sure!

@whedon generate pdf

@whedon check references

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

Could not find bibliography file: paper.bib
Error running filter pandoc-citeproc:
Filter returned error status 1
Looks like we failed to compile the PDF

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1063/1.2464084 is OK
- 10.1063/1.469429 is OK
- 10.1039/C9CP06285H is OK
- 10.1038/nmat3260 is OK
- 10.1073/pnas.1301596110 is OK
- 10.1021/acsnano.6b03753.s001 is OK
- 10.1103/physrevx.8.021024 is OK
- 10.1063/1.5055704 is OK
- 10.1039/d0cp00163e is OK
- 10.1063/5.0007192 is OK
- 10.1103/physrevlett.123.195501 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@whedon generate pdf

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

@salanne ok thanks for your patience all looks OK. Can you make a tagged release of the software and archive it on zenodo? Once you've done that if you could reply with the DOI from that, then that's what the paper will be published against.

@richardjgowers thanks for the update. We have corrected a few typos in the article, and the archive of the software is available on Zenodo: 10.5281/zenodo.4040665

@whedon set 10.5281/zenodo.4040665 as archive

OK. 10.5281/zenodo.4040665 is the archive.

@whedon set 20.05 as version

OK. 20.05 is the version.

@whedon accept

Attempting dry run of processing paper acceptance...

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

Can't find any papers to compile :-(

@whedon generate from branch release-20.05

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

@whedon commands

@whedon generate pdf from branch release-20.05

Attempting PDF compilation from custom branch release-20.05. Reticulating splines etc...

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

@openjournals/joss-eics this is good to go I think, does whedon accept allow a custom branch argument?

@whedon accept from branch release-20.05

Attempting dry run of processing paper acceptance...

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

fatal: Unable to create '/app/tmp/2373/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
Can't find any papers to compile :-(

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1063/1.2464084 is OK
- 10.1063/1.469429 is OK
- 10.1039/C9CP06285H is OK
- 10.1038/nmat3260 is OK
- 10.1073/pnas.1301596110 is OK
- 10.1021/acsnano.6b03753.s001 is OK
- 10.1103/physrevx.8.021024 is OK
- 10.1063/1.5055704 is OK
- 10.1039/d0cp00163e is OK
- 10.1063/5.0007192 is OK
- 10.1103/physrevlett.123.195501 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@whedon accept from branch release-20.05

Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1063/1.2464084 is OK
- 10.1063/1.469429 is OK
- 10.1039/C9CP06285H is OK
- 10.1038/nmat3260 is OK
- 10.1073/pnas.1301596110 is OK
- 10.1021/acsnano.6b03753.s001 is OK
- 10.1103/physrevx.8.021024 is OK
- 10.1063/1.5055704 is OK
- 10.1039/d0cp00163e is OK
- 10.1063/5.0007192 is OK
- 10.1103/physrevlett.123.195501 is OK

MISSING DOIs

- None

INVALID DOIs

- None

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

Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1745

If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1745, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true from branch release-20.05

@whedon accept deposit=true from branch release-20.05

Doing it live! Attempting automated processing of paper acceptance...

🐦🐦🐦 πŸ‘‰ Tweet for this paper πŸ‘ˆ 🐦🐦🐦

🚨🚨🚨 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 :point_right: https://github.com/openjournals/joss-papers/pull/1754
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.02373
  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...

@mattwthompson, @hmacdope - many thanks for your reviews here and to @richardjgowers for editing this submission ✨

@salanne - your paper is now accepted into JOSS :zap::rocket::boom:

:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:

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

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

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

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:

Was this page helpful?
0 / 5 - 0 ratings