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]: MiNAA: Microbiome Network Alignment Algorithm #5448

Closed
editorialbot opened this issue May 6, 2023 · 122 comments
Closed

[REVIEW]: MiNAA: Microbiome Network Alignment Algorithm #5448

editorialbot opened this issue May 6, 2023 · 122 comments
Assignees
Labels
accepted C++ Makefile published Papers published in JOSS recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 2 (BCM) Biomedical Engineering, Biosciences, Chemistry, and Materials

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented May 6, 2023

Submitting author: @crsl4 (Claudia Solis-Lemus)
Repository: https://github.com/solislemuslab/minaa
Branch with paper.md (empty if default branch):
Version: V1.1.0
Editor: @graciellehigino
Reviewers: @Becheler, @salix-d
Archive: 10.5281/zenodo.10625654

Status

status

Status badge code:

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

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

@Becheler & @waynebhayes, 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 @graciellehigino 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 @Becheler

📝 Checklist for @salix-d

@editorialbot editorialbot added C++ Makefile review TeX Track: 2 (BCM) Biomedical Engineering, Biosciences, Chemistry, and Materials labels May 6, 2023
@editorialbot
Copy link
Collaborator Author

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
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.88  T=0.04 s (644.0 files/s, 92540.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                              6            248            440           1626
Python                           1             37             12            229
Markdown                         4             86              0            185
TeX                              1             12              0            134
JSON                             1              0              0             98
C/C++ Header                     5             13              0             52
R                                1              5              3             35
make                             1              5              0             24
YAML                             1              1              4             18
Bourne Shell                     1              2             14             11
DOS Batch                        1              1              0             10
-------------------------------------------------------------------------------
SUM:                            23            410            473           2422
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1109/bibm49941.2020.9313552 is OK
- 10.18637/jss.v071.i10 is OK
- 10.1098/rsif.2010.0063 is OK
- 10.1186/1471-2105-12-24 is OK
- 10.1002/nav.20053 is OK
- 10.1016/j.csbj.2020.09.011 is OK
- 10.1093/bioinformatics/btv130 is OK
- 10.4137/cin.s680 is OK
- 10.1093/bioinformatics/btt202 is OK
- 10.1101/2020.07.15.195248 is OK
- 10.13140/RG.2.1.3572.3287 is OK
- 10.1093/bioinformatics/btq091 is OK
- 10.1186/s12864-019-5471-1 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 1689

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@Becheler
Copy link

Becheler commented May 6, 2023

Review checklist for @Becheler

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 https://github.com/solislemuslab/minaa?
  • 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 (@crsl4) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

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: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • 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?

@graciellehigino
Copy link

Hi @waynebhayes! Let me know if you're having trouble generating the checklist or adding your comments to this thread. =D

@crsl4 just so you know, @Becheler has asked for an extension to complete their review for personal reasons and I've granted it. @Becheler please keep us up to date about your new intended timeline. [=

@crsl4
Copy link

crsl4 commented May 31, 2023

No problem! Thanks for keeping me in the loop! Thanks again for agreeing to review this work :)

@Becheler
Copy link

Hi @graciellehigino @crsl4
I'm back to a state of functional reviewer ;)
I'm trying to reproduce the results and although every step is carefully documented I'm bumping into some OSX/dependencies issues. Is here the right way to discuss it, or should I open an issue directly on the MINAA repo ?

@Becheler
Copy link

Becheler commented Jul 5, 2023

Hi @graciellehigino @crsl4 !
Thanks to the authors recommendations I was able to have the dependency work on my system.
I was able to reproduce the results given, and I don't have any remark left :)
The paper is clearly written, the documentation is very detailed and the method and simulation results nicely presented!

@waynebhayes
Copy link

waynebhayes commented Jul 6, 2023 via email

@waynebhayes
Copy link

waynebhayes commented Jul 6, 2023 via email

@graciellehigino
Copy link

Hi @waynebhayes

Thank you for having taken a look at the software. You should use the @editorialbot commands on this thread on GitHub, always as the first line of your comment. The bot will then generate a checklist just like the one that was generated for @Becheler to guide you on the things that matter to us in a review.

That being said, would you be willing to finish your review in the next 3 weeks?

Thank you!

@waynebhayes
Copy link

waynebhayes commented Jul 8, 2023 via email

@crsl4
Copy link

crsl4 commented Jul 8, 2023

Also, if I could also point out, most existing network alignment algorithms do not allow a user-specified biological similarity matrix. Is this an available option in SANA? We are also working on a web app, but it's taken a bit longer than expected, but in any case, we think that the inclusion of this matrix will provide flexibility to the algorithm.

@graciellehigino
Copy link

@waynebhayes perfect! When you're ready, just visit the GitHub issue thread and copy-paste the command below:
@editorialbot generate my checklist

When you're done going through the checklist, please comment again saying that you're finished and adding any other comments you might have. Also, please address @crsl4's comment above.

Thank you!

@waynebhayes
Copy link

waynebhayes commented Jul 14, 2023 via email

@Becheler
Copy link

Becheler commented Jul 14, 2023

and it wouldn't necessarily be clear how to map the similarity you WANT to use to the similarity that's expected by the algorithm

In that case, it just means that the details of the similarity computation are not the responsibility of the algorithm, and can/must be abstracted out, for example with a callback defined by the user and invoked by the algorithm.

be careful using the word "matrix". You probably don't REALLY want to use a matrix format, since most protein pairs will have a similarity of zero

I think it's fair use of the term as it helps biologists understanding the general idea of the object at hand, and software engineers will be able to generalize the concept easily. Again, if the details and efficiency of the matrix implementation (sparse, symetric etc) are not the responsibility of the algorithm, they can/should be abstracted out of said algorithm, for example by defining a callback that the algorithm can invoke e.g. similarity(i,j) without worrying of how this similiarity is actually computed.

it is typically done by all STL algorithms to abstract the concept of order: users can give the algorithm the comparison operation of their choice.

@crsl4
Copy link

crsl4 commented Jul 14, 2023

I could also add that by "biological similarity", we don't only mean "sequence similarity". Note that the networks here are microbiome networks. The input to create the networks (again, not responsibility of the current algorithm as the networks are taken as given) are usually relative abundances.

I also agree with @Becheler. There are sparse representations of matrices (e.g. SparseArrays) which indeed denoted "matrices".

@waynebhayes
Copy link

waynebhayes commented Jul 25, 2023 via email

@waynebhayes
Copy link

waynebhayes commented Jul 26, 2023 via email

@Becheler
Copy link

Becheler commented Jul 26, 2023

Not at all. You just need to describe what the algorithm expects, and the
user can provide their similarity scaled appropriately.

I'm confused. "callback" doesn't solve the problem of how to scale the
similarity, it's just a different method for providing the data to the
algorithm. Using a "matrix" is fine as you first suggested; the "callback"
suggestion is completely a red herring unless I'm missing something.

Our two perspectives are neither exclusive nor contradictory. I think @waynebhayes is missing here several fundamentals of C++ software design, specifically concepts related to the decoupling of data structures and algorithms. When orthogonal aspects of an algorithm begin to be user context dependent rather than developer context dependent, then a popular idiom is to encapsulate these behaviors into a policy-class that implements the required interface. By writing a custom implementation of a given policy, the user of a policy-based library can inject custom behaviors unforeseen by the library implementor. From my perspective, all aspects mentioned by @waynebhayes (scaling, matrix implementation details such as sparse vs dense, meaning and assumptions of the similarity measure etc) are all orthogonal to the alignment algorithm (this specific point @waynebhayes seems to understand). If the policy interface can be reduced to a simple callable operator (what I believe it does: taking a and b points and returning the similarity measured between them - that could be of any return type), then it boils down to requiring the algorithm to take an arbitrary callable (possibly fulfilling some requirements that could be checked with C++20 concepts). I recommend @waynebhayes getting familiar with the Open/Closed principle and reading Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu, specifically the chapter on Policy-Based Design.

So I'm still not convinced the algorithm actually does anything novel that's not already done by existing algorithms.

I respectfully disagree. The paper the authors are submitting to is JOSS: unlike many other journals, JOSS focuses on the actual implementation of a software resource. As a Software Engineer in Genetics, I am more than happy to see a diverse crew of small code repositories, with a carefully tested implementation of small components, dedicated to a specific purpose. In the case of software design and code reuse, less is more, and I would personally rather work with the MINAA code base than the more imposing SANA that tightly entangles orthogonal concepts such as Graph, Alignment and SparseMatrix.

On another note, I am quite shocked by the insistance of @waynebhayes to compete and refer to their own resource. This is quite unethical reviewing and added to the unpleasant tone of the review, clearly lacks of humility. Contrary to what they say, it is actually surprisingly difficult in Software Engineering to find implementations that "do nothing new" and it is quite naive to believe a competing resource "does it all": most of the time, their idiosyncrasies would complement each other. I would encourage trying to be curious and understand what are the specificities of MINAA's implementation and hypothesis, why using SANA would not have been helpful to the authors in this context (as I said, SANA's tightly coupled class design may be the beginning of an answer), and how a better state of the art could be reached through cooperation and complementation.

Respectfully,

@waynebhayes
Copy link

waynebhayes commented Jul 26, 2023 via email

@graciellehigino
Copy link

Congratulations, everyone! 🎉

@editorialbot
Copy link
Collaborator Author

⚠️ Error preparing paper acceptance. The generated XML metadata file is invalid.

IDREFS attribute rid references an unknown ID "ref-kurtz2015sparse"

@graciellehigino
Copy link

The paper's PDF and metadata files generation produced some warnings that could prevent the final paper from being published. Please fix them before the end of the review process.

citation kurtz2015sparse not found

@crsl4 @reednel oops, I let it slide this reference! Could you fix it? As soon as you do, @Kevin-Mattheus-Moerman will be able to proceed with acceptance [=

@reednel
Copy link

reednel commented Mar 20, 2024

@graciellehigino @Kevin-Mattheus-Moerman the reference has been added to paper/paper.bib!

@crsl4
Copy link

crsl4 commented Mar 22, 2024

Thanks Reed! We just wait for @Kevin-Mattheus-Moerman to accept then. Thanks!

@crsl4
Copy link

crsl4 commented Apr 5, 2024

Hi @Kevin-Mattheus-Moerman any updates? Thanks!

@Kevin-Mattheus-Moerman
Copy link
Member

@crsl4 apologies for the delay, because the recommend-accept didn't with, this was not showing up on my editor dashboard. I'll retry the command now

@Kevin-Mattheus-Moerman
Copy link
Member

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1109/bibm49941.2020.9313552 is OK
- 10.18637/jss.v071.i10 is OK
- 10.1098/rsif.2010.0063 is OK
- 10.1186/1471-2105-12-24 is OK
- 10.1002/nav.20053 is OK
- 10.1371/journal.pcbi.1004226 is OK
- 10.1016/j.csbj.2020.09.011 is OK
- 10.1093/bioinformatics/btv130 is OK
- 10.4137/cin.s680 is OK
- 10.1093/bioinformatics/btt202 is OK
- 10.1101/2020.07.15.195248 is OK
- 10.13140/RG.2.1.3572.3287 is OK
- 10.1093/bioinformatics/btq091 is OK
- 10.1186/s12864-019-5471-1 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

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

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#5218, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@editorialbot editorialbot added the recommend-accept Papers recommended for acceptance in JOSS. label Apr 5, 2024
@crsl4
Copy link

crsl4 commented Apr 5, 2024

@Kevin-Mattheus-Moerman I don't know if you need our confirmation, but the proof looks good.

@Kevin-Mattheus-Moerman
Copy link
Member

@editorialbot set V1.1.0 as version

@editorialbot
Copy link
Collaborator Author

Done! version is now V1.1.0

@Kevin-Mattheus-Moerman
Copy link
Member

@crsl4 please edit the Zendo archive such that the version tag there is V1.1.0

@reednel
Copy link

reednel commented Apr 5, 2024

@Kevin-Mattheus-Moerman I created the Zenodo and Figshare archives, and did set the version to 1.1.0. See Zenodo here: https://zenodo.org/records/10625654. Or if you're referring to something else, can you point me to that?

@Kevin-Mattheus-Moerman
Copy link
Member

@reednel I meant that you should include the V in V1.1.0. Currently over at Zenodo it just says 1.1.0 but it should match your GitHub release tag which includes the V. Confusingly at the Zenodo archive it will end up saying Version V1.1.0.
You should be able to manually edit the version tag

Hope this helps clarify things.

@reednel
Copy link

reednel commented Apr 5, 2024

Understood, thanks for clarifying. Zenodo now reads v1.1.0 to match the Github tag.

@Kevin-Mattheus-Moerman
Copy link
Member

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

cff-version: "1.2.0"
authors:
- family-names: Nelson
  given-names: Reed
- family-names: Aghdam
  given-names: Rosa
- email: solislemus@wisc.edu
  family-names: Solis-Lemus
  given-names: Claudia
contact:
- email: solislemus@wisc.edu
  family-names: Solis-Lemus
  given-names: Claudia
doi: 10.5281/zenodo.10625654
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Nelson
    given-names: Reed
  - family-names: Aghdam
    given-names: Rosa
  - email: solislemus@wisc.edu
    family-names: Solis-Lemus
    given-names: Claudia
  date-published: 2024-04-07
  doi: 10.21105/joss.05448
  issn: 2475-9066
  issue: 96
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5448
  title: "MiNAA: Microbiome Network Alignment Algorithm"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05448"
  volume: 9
title: "MiNAA: Microbiome Network Alignment Algorithm"

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

@editorialbot
Copy link
Collaborator Author

🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 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 👉 Creating pull request for 10.21105.joss.05448 joss-papers#5225
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.05448
  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...

@editorialbot editorialbot added accepted published Papers published in JOSS labels Apr 7, 2024
@reednel
Copy link

reednel commented Apr 8, 2024

@Kevin-Mattheus-Moerman @graciellehigino @Becheler @salix-d Thank you all for your effort toward this publication!

@Kevin-Mattheus-Moerman
Copy link
Member

congratulations @crsl4 @reednel on this JOSS publication! 🎉

At this point I would like to thank @graciellehigino for editing this submission.

A special thank you also to the reviewers: @Becheler, @salix-d !!!

@editorialbot
Copy link
Collaborator Author

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

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

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

This is how it will look in your documentation:

DOI

We need your help!

The 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
Labels
accepted C++ Makefile published Papers published in JOSS recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 2 (BCM) Biomedical Engineering, Biosciences, Chemistry, and Materials
Projects
None yet
Development

No branches or pull requests