openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
725 stars 38 forks source link

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

Closed editorialbot closed 7 months ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@crsl4<!--end-author-handle-- (Claudia Solis-Lemus) Repository: https://github.com/solislemuslab/minaa Branch with paper.md (empty if default branch): Version: V1.1.0 Editor: !--editor-->@graciellehigino<!--end-editor-- 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 commented 1 year ago

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 commented 1 year ago
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 commented 1 year ago
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 commented 1 year ago

Wordcount for paper.md is 1689

editorialbot commented 1 year ago

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

Becheler commented 1 year ago

Review checklist for @Becheler

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

graciellehigino commented 1 year ago

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 commented 1 year ago

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

Becheler commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

Hi, sorry I've been struggling a bit with Long COVID. I'll take a look at the paper now.

On Tue, May 30, 2023 at 5:52 PM Gracielle Higino @.***> wrote:

Hi @waynebhayes https://urldefense.com/v3/__https://github.com/waynebhayes__;!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHgYQZqpU$! Let me know if you're having trouble generating the checklist or adding your comments to this thread. =D

@crsl4 https://urldefense.com/v3/__https://github.com/crsl4__;!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHUBAqd3Y$ just so you know, @Becheler https://urldefense.com/v3/__https://github.com/Becheler__;!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHIpnWmh8$ has asked for an extension to complete their review for personal reasons and I've granted it. @Becheler https://urldefense.com/v3/__https://github.com/Becheler__;!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHIpnWmh8$ please keep us up to date about your new intended timeline. [=

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/openjournals/joss-reviews/issues/5448*issuecomment-1569333987__;Iw!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHdzyjMAA$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AE2SJDAQAN5K32DTXKS2RJLXI2I3XANCNFSM6AAAAAAXXY7IGQ__;!!CzAuKJ42GuquVTTmVmPViYEvSg!OuSVd4GU4O7B5fukkqrcXB7GSGYUucDw9ZTykwbRXk6rgZ-Fp3cYNy89ERgwHaR4ZKZXLcOOfKcNsZKHeW-IMxw$ . You are receiving this because you were mentioned.Message ID: @.***>

--

Welcome to the new US Supreme Court

Five of the six current right-wing supreme court justices were appointed by presidents who lost the popular vote. One of them sits in a seat effectively stolen by Mitch McConnell, who blocked Obama’s late-term nomination; another sits because McConnell reversed that principle to fast-track Trump’s late-term nomination. All in all, we have a wildly unrepresentative group of elitist fringe lunatics, installed in power by the exact opposite of democratic will, who scrap basic gun control laws in the wake of horrific mass shootings of children, while calling themselves “pro-life”. - Hamilton Nolan, The Guardian, June 24, 2022

--

Wayne B. Hayes, Ph.D. Associate Professor in (but not speaking for) The Department of Computer Science, UC Irvine

waynebhayes commented 1 year ago

Um... it says "type @editorialbot generate my checklist"... where am I supposed to type that?

I've read the paper and, from a scientific standpoint, it's woefully lacking. It's leveraging ancient software for network alignment that's no longer competitive; their algorithm offers nothing new over and above existing ones; and they don't describe any real data their algorithm can use. So I'm reluctant to spend much time on this. Furthermore... there already exist many proven algorithms for network alignment, including my own, github.com/waynebhayes/SANA, which even has a web interface.

graciellehigino commented 1 year ago

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 commented 1 year ago

Yes I could do it in 3 weeks.

On Fri, Jul 7, 2023 at 10:32 AM Gracielle Higino @.***> wrote:

Hi @waynebhayes https://urldefense.com/v3/__https://github.com/waynebhayes__;!!CzAuKJ42GuquVTTmVmPViYEvSg!IJE5F1OuKJQcdzCSjYzab2PTE4O044vFPptk8yIwQZT5P4VTkBmNQq_cIX8vN587CMMZ5jzghYlOZfqavz1ukUA$

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 https://urldefense.com/v3/__https://github.com/Becheler__;!!CzAuKJ42GuquVTTmVmPViYEvSg!IJE5F1OuKJQcdzCSjYzab2PTE4O044vFPptk8yIwQZT5P4VTkBmNQq_cIX8vN587CMMZ5jzghYlOZfqafURFfKw$ 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!

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/openjournals/joss-reviews/issues/5448*issuecomment-1625725731__;Iw!!CzAuKJ42GuquVTTmVmPViYEvSg!IJE5F1OuKJQcdzCSjYzab2PTE4O044vFPptk8yIwQZT5P4VTkBmNQq_cIX8vN587CMMZ5jzghYlOZfqa_SLybvY$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AE2SJDBND5R6ZGPL3TX2L6LXPBB2NANCNFSM6AAAAAAXXY7IGQ__;!!CzAuKJ42GuquVTTmVmPViYEvSg!IJE5F1OuKJQcdzCSjYzab2PTE4O044vFPptk8yIwQZT5P4VTkBmNQq_cIX8vN587CMMZ5jzghYlOZfqax2AKxRo$ . You are receiving this because you were mentioned.Message ID: @.***>

--

Welcome to the new US Supreme Court

Five of the six current right-wing supreme court justices were appointed by presidents who lost the popular vote. One of them sits in a seat effectively stolen by Mitch McConnell, who blocked Obama’s late-term nomination; another sits because McConnell reversed that principle to fast-track Trump’s late-term nomination. All in all, we have a wildly unrepresentative group of elitist fringe lunatics, installed in power by the exact opposite of democratic will, who scrap basic gun control laws in the wake of horrific mass shootings of children, while calling themselves “pro-life”. - Hamilton Nolan, The Guardian, June 24, 2022

--

Wayne B. Hayes, Ph.D. Associate Professor in (but not speaking for) The Department of Computer Science, UC Irvine

crsl4 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

Any algorithm that uses sequence similarity must allow some way to input that similarity; it wouldn't be too hard to substitute any other sort of similarity you want; about the only possible issue is normalizing, since sequence similarity can be measured in many ways (identity, p-value, bit score, etc) 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. Still, I think it would be possible with most algorithms. And yes, SANA is one such algorithm.

Also, 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, ie., the matrix would be very sparse and there's no point in storing it that way or requiring users to upload it.

On Sat, Jul 8, 2023 at 9:26 AM Claudia Solis-Lemus @.***> wrote:

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.

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/openjournals/joss-reviews/issues/5448*issuecomment-1627394263__;Iw!!CzAuKJ42GuquVTTmVmPViYEvSg!N-6tCjRB6B5Dt4sOezCYUk5qB8iS_HxOn9L3-D-RdDfXaBRRzMVxvbyjo4LP6mbz00KqdMVCv0WXD2HW97YbZAE$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AE2SJDBVMDPQRJMA5NNRQ4TXPGC2PANCNFSM6AAAAAAXXY7IGQ__;!!CzAuKJ42GuquVTTmVmPViYEvSg!N-6tCjRB6B5Dt4sOezCYUk5qB8iS_HxOn9L3-D-RdDfXaBRRzMVxvbyjo4LP6mbz00KqdMVCv0WXD2HWawLy1g4$ . You are receiving this because you were mentioned.Message ID: @.***>

--

Welcome to the new US Supreme Court

Five of the six current right-wing supreme court justices were appointed by presidents who lost the popular vote. One of them sits in a seat effectively stolen by Mitch McConnell, who blocked Obama’s late-term nomination; another sits because McConnell reversed that principle to fast-track Trump’s late-term nomination. All in all, we have a wildly unrepresentative group of elitist fringe lunatics, installed in power by the exact opposite of democratic will, who scrap basic gun control laws in the wake of horrific mass shootings of children, while calling themselves “pro-life”. - Hamilton Nolan, The Guardian, June 24, 2022

--

Wayne B. Hayes, Ph.D. Associate Professor in (but not speaking for) The Department of Computer Science, UC Irvine

Becheler commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

On Fri, Jul 14, 2023 at 2:06 AM Arnaud Becheler @.***> wrote:

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,

Correct.

and can/must be abstracted out, for example with a callback defined by the user and invoked by the algorithm

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

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 general the concept easily.

Fine.

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.

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.

waynebhayes commented 1 year ago

On Fri, Jul 14, 2023 at 6:54 AM Claudia Solis-Lemus < @.***> wrote:

I could also add that by "biological similarity", we don't only mean "sequence similarity".

We've already established that. Many network alignment algorithms can accept any sort of similarity, and as pointed out in another message, it's the user's responsibility to provide the similarity scores. My point is that the paper---unless there is a more recent version?---claims, "yet these methods are restricted to one specific type of biological similarity (e.g. sequence similarity in L-GRAAL)." This is simply not true. Not even remotely. The algorithms take any type of similarity you want to provide. You can provide sequence-based similarity, or Resnik scores based on Gene Ontology annotations, or any of the several types of graphlet similarity, or relative abundances as in your case. The similarity is just a number. For alignment scoring purposes it doesn't matter what it represents.

The paper also says "In addition, unlike most existing network alignment methods that are tailored for protein or gene interaction networks"... *this statement is false*. Network alignment algorithms align networks. PERIOD. They can be social networks, PPI networks, gene networks, microbiome networks, random networks.... it just so happens that the ones you've looked at were applied to protein networks. They could just have easily been applied to any other types of networks... including microbiome ones.

My primary concern with this work is that the authors don't seem to be at all familiar with the existing literature on network alignment, or how to use any of the existing algorithms. They don't define in their paper what the similarity scores mean, and how they are scaled--for example, are they logarithmic, or linear? Should they be in [0,1], or can they be arbitrary? Are negative numbers allowed?

And there are no comparisons to existing algorithms at all--and as I said above, you cannot claim that other algorithms "only do sequence". That's false. So I'm still not convinced the algorithm actually does anything novel that's not already done by existing algorithms.

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.

Fine. So try aligning them with an existing algorithm. Try SANA. It also has a web interface at http://sana.ics.uci.edu. Or just send me the networks you'd like to align. I'd be happy to try SANA on them on your behalf.

I also agree with @Becheler

https://urldefense.com/v3/__https://github.com/Becheler__;!!CzAuKJ42GuquVTTmVmPViYEvSg!J0BG36PasVe5bAlJ38wl-OYZHtXESGJ5bLm6FD3928AklMzRO6W8Ssh_7iCN8orIlrIPO_5MoepnZDzHsjfJguA$. There are sparse representations of matrices (e.g. SparseArrays https://urldefense.com/v3/__https://docs.julialang.org/en/v1/stdlib/SparseArrays/__;!!CzAuKJ42GuquVTTmVmPViYEvSg!J0BG36PasVe5bAlJ38wl-OYZHtXESGJ5bLm6FD3928AklMzRO6W8Ssh_7iCN8orIlrIPO_5MoepnZDzHXyScyJA$) which indeed denoted "matrices".

Agreed.

Becheler commented 1 year ago

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 commented 1 year ago

I'm sorry, I was under the impression that I was asked to review this article as an expert in network alignment from the standpoint of whether it constitutes a novel contribution to the science of network alignment. It is my firm opinion that, within that context, it most definitely is not a novel contribution in that it does nothing new that existing algorithms do not do, does not compare itself to existing algorithms, does not demonstrate that it can be applied to real networks of any significant size, does not describe how a user interested in the scientific outcome should use the algorithm... among probably other reasons.

In the above context, it is not at all unethical to suggest that a proposed algorithm compare itself to existing algorithms, in order to demonstrate novelty. This is a cornerstone of science. I did not exclusively suggest SANA as an algorithm to compare against; I suggested it in this context because, so far as I am aware, it's the only one (other than the one in the current paper) that offers an easy-to-use Web interface. I was also interested in the scientific outcome of aligning microbiome networks... because I am acutely interested in any application of network alignment to new data. My offer of applying SANA to the networks in the paper was offered out of a genuine feeling of scientific curiosity, not out of any intent to compete. (And my offer stands.)

If, as you seem to suggest, the goal of this paper and this algorithm is to demonstrate software engineering concepts in a toy implementation applied to a toy problem in the context, for example, of a software engineering class, then I'm 100% OK with that.... but I don't care about that application. If the intent of this paper and this algorithm is to claim that it does something new that other alignment algorithms do not.... then my answer, as an expert in the scientific field of network alignment... is no. It does not.

I'm done. Thanks for reading.

Becheler commented 1 year ago

I believe we can be an expert in our field and still exercise our expertise as a reviewer in a way that is mindful and considerate.

Research software is not purely about « demonstrating software engineering concepts » nor is it purely about the « scientific output ». It is about both, simply: designing software concepts to make science iterations easier/faster. And there is nothing « toyish » in discussing about code design and its reuse, as decades of open scientific software libraries speak for themselves.

The question I ask regularly myself is « can I find a simple, testable, open source C++ implementation of this feature and reuse it for my own scientific software purposes ?». Applied to the context of this article, the answer is « no, there is no such existing codebase» and this makes the present software relevant to my needs. I also consider I could increment and build upon MINAA more easily than SANA, and this is food for thoughts.

I agree that in an ideal world we would have reviewed a flawless code with a flawless design, with memory and runtime benchmark comparison with X existing algorithms and Y data structures, with a complete documentation and an impressive real world data application, and why not a website and a GUI and a build system and a packaging for vcpkg and Conan and deb and also support for most of the compiler versions out there … but is it really reasonable? Such resources take time to build and elaborate upon, as we all know.

Science community has much to benefit from such little code projects, that should be encouraged and improved rather than frowned upon.

crsl4 commented 1 year ago

If I could also add, we are submitting to JOSS because MiNAA is a useful software product. JOSS does not require comparisons to other algorithms as part of the manuscript.

From the JOSS website:

JOSS publishes articles about research software. This definition includes software that: solves complex modeling problems in a scientific context (physics, mathematics, biology, medicine, social science, neuroscience, engineering); supports the functioning of research instruments or the execution of research experiments; extracts knowledge from large data sets; offers a mathematical library; or similar.

JOSS submissions must:

We are not producing an new algorithm that outperforms every existing network alignment available (otherwise, we would be submitting as a research manuscript, not a software note). We produced a useful software product that is modular and easily extendable (as @Becheler points out). I should also point out that even though networks are networks, they don't all have similar characteristics. For example, networks under different applications have different degree distributions or sparsity levels. We cannot assume that methods that perform well under one type of network will automatically perform well on others. While we have not made the extensive study of limitations of MiNAA (or other algorithms like SANA) under microbiome networks (again because this is a software note, not a research paper), we want MiNAA to be that easy-to-use tool that we can continuously extend based on our (and our users') data characteristics that are specific to microbiome networks. There are many tools out there that have been developed and tested on protein interaction networks. Do they perform well on microbiome networks? Maybe, we don't know. We do not care if MiNAA performs well on protein interaction networks or social networks. We want to provide a tool that is specific to microbiome networks and their inherent characteristics that distinguish them from other biological or social networks.

Perhaps some of the confusion here is that @waynebhayes is evaluating MiNAA as if it were a research paper, when this is a software note with different expectations, as described in the JOSS website. We are happy to change the language if @waynebhayes has specific suggestions.

graciellehigino commented 1 year ago

Hi all!

After reading all these comments, considering that the software is working correctly and it does fill a gap, I am happy to recommend it for publication.

@crsl4 has properly responded to all the comments from the reviewers, even when some of them were not in scope, which showed the strength of the publication.

I am really sorry that this review history shows some bad attitudes and that the authors had to read and deal with those comments, but I believe that the good thing about open peer review is to leave these marks so they never happen again.

On the other hand, this thread also shows some great attitudes and comments, and similarly, they are registered here so everyone can see how good researchers you are. Thank you so much for your constructive conversations, @Becheler and @crsl4

@Kevin-Mattheus-Moerman as this is a very particular situation, I would like to have you involved in the acceptance process as the EiC. If JOSS strongly believes we should start over or get a third reviewer, we can do so, but I do not see the need for that.

crsl4 commented 1 year ago

Thank you @graciellehigino! Let us know what we need to do on our end.

reednel commented 1 year ago

@graciellehigino I greatly appreciate your understanding and aid through this process. We look forward to any updates!

Kevin-Mattheus-Moerman commented 1 year ago

@editorialbot remove @waynebhayes as reviewer

editorialbot commented 1 year ago

@waynebhayes removed from the reviewers list!

Kevin-Mattheus-Moerman commented 1 year ago

@graciellehigino we do need to have a second fully completed review here. Please do recruit an additional reviewer.

@crsl4 apologies for the delays encountered so far with this submission. We will proceed with the review as soon as possible.

crsl4 commented 1 year ago

Thank you @Kevin-Mattheus-Moerman and @graciellehigino for your help! Could Gracielle serve as a second review if needed?

Kevin-Mattheus-Moerman commented 1 year ago

@crsl4 A new external reviewer will be attracted.

graciellehigino commented 1 year ago

After talking with the EiC, we've decided that we do need a second reviewer to complete the process. We will work hard to find someone as soon as possible, and we appreciate your patience as we go through this together.

crsl4 commented 1 year ago

No problem! Thanks Gracielle! I sent you some options via slack. Let me know if you need more.

Kevin-Mattheus-Moerman commented 1 year ago

@graciellehigino are you able to continue your search for reviewers? Please assign a reviewer as soon as possible.

Kevin-Mattheus-Moerman commented 1 year ago

@editorialbot check repository

editorialbot commented 1 year ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.03 s (914.8 files/s, 128276.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                              6            248            440           1626
Python                           1             37             12            229
Markdown                         5             92              0            197
TeX                              1             12              0            134
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            416            473           2336
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 1 year ago

Wordcount for paper.md is 1689

Kevin-Mattheus-Moerman commented 1 year ago

@openjournals/dev :wave: I would like to trigger the search for similar JOSS papers, is that possible?

Kevin-Mattheus-Moerman commented 1 year ago

@crsl4 could you please extend the description of your software in your README? At the moment is has a single sentence (with a typo) i.e. MiNAA aligns two networks based their topologies and biologies. which should likely read MiNAA aligns two networks based on their topologies and biologies.. It would be great if you had a bit of a paragraph, perhaps using more plain language, so it would be clear to those seeing this README/project of the first time, what the software is about.

Kevin-Mattheus-Moerman commented 1 year ago

@antagomir @microsud @grabear @angrybee @torognes @rdenise would you be interested in reviewing this submission on microbiome network allignment for JOSS (the Journal of Open Source Software?

JOSS reviews focus on testing the software, and reviewing a very short paper.

Reviewing for JOSS is an easy/smooth process, and takes place right here on GitHub. This here is a review issue, and above you can see that one reviewer has completed their review already and has gone through the checklist guiding reviewers through the smooth process.

If you are interested please let us know by commenting here.

xuanxu commented 1 year ago

openjournals/dev 👋 I would like to trigger the search for similar JOSS papers, is that possible?

The similar papers search is only active on pre-review issues (by now), because it is more useful when reviewers are not assigned yet. The easiest way to trigger it now would be to use the generate pdfcommand in the pre-review of this submission.

crsl4 commented 1 year ago

@reednel Can you address @Kevin-Mattheus-Moerman 's comment above on the README? Thanks!

reednel commented 1 year ago

@Kevin-Mattheus-Moerman An updated README has been pushed to main. Let me know if you'd like any further revisions.

rdenise commented 1 year ago

@Kevin-Mattheus-Moerman Sorry I don't think I am suitable to review the paper. I looked quickly at it and it is out of my expertise

arfon commented 1 year ago

@Kevin-Mattheus-Moerman @graciellehigino – I ran the 'similar papers' task over here for you: https://github.com/openjournals/joss-reviews/issues/5010#issuecomment-1816084719

crsl4 commented 1 year ago

Thank you @arfon ! Hope we can find the missing reviewer soon!

Kevin-Mattheus-Moerman commented 1 year ago

@graciellehigino 👋

salix-d commented 1 year ago

Hi 👋 Are there specific requirements to review this paper? or can one volonteer?