Closed whedon closed 2 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @mstimberg, @puolival 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:
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
Wordcount for paper.md
is 1175
Software report (experimental):
github.com/AlDanial/cloc v 1.88 T=0.09 s (332.1 files/s, 36526.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
MATLAB 16 371 342 1071
C++ 4 216 121 488
XML 3 0 0 176
TeX 1 13 0 173
Markdown 2 53 0 95
C/C++ Header 1 9 10 20
YAML 1 1 4 18
DOS Batch 1 0 0 9
-------------------------------------------------------------------------------
SUM: 29 663 477 2050
-------------------------------------------------------------------------------
Statistical information for the repository '72453a089fb461b9e3bf5986' was
gathered on 2021/11/29.
The following historical commit information, by author, was found:
Author Commits Insertions Deletions % of changes
nerofumo82 10 918 54 100.00
Below are the number of rows from each author that have survived and are still
intact in the current revision:
Author Rows Stability Age % in comments
nerofumo82 864 94.1 0.1 15.39
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1126/science.aaa5417 is OK
- 10.1016/S0140-6736(17)30601-3 is OK
- 10.1016/S0140-6736(12)61816-9 is OK
- 10.1038/nn.3265 is OK
- 10.1038/nature11076 is OK
- 10.1073/pnas.0808113105 is OK
- 10.1038/nature10845 is OK
- 10.1038/nature13665 is OK
- 10.1016/j.neuron.2014.08.038 is OK
MISSING DOIs
- 10.1101/2021.02.16.431440 may be a valid DOI for title: Statistical determinants of visuomotor adaptation in a virtual reality three-dimensional environment
- 10.1523/jneurosci.02-11-01527.1982 may be a valid DOI for title: On the relations between the direction of two-dimensional arm movements and cell discharge in primate motor cortex
- 10.1109/thms.2020.2968411 may be a valid DOI for title: Brain–computer interface software: A review and discussion
INVALID DOIs
- None
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @oliviaguest, I am here in the new page. Thanks @puolival for reviewing the paper.
Hi all! 👋 Thank you so much @mstimberg, @puolival for accepting to review this. Please read the instructions above. Any questions, feedback on the paper, etc., please post here. Any very code-specific questions, suggestions, etc., please use the issues in the code repo and link to them from this thread, so we can all keep track of them. 🌸
For examples of how this process plays out feel free to skim previous reviews, such as: #2285 and #2348. ☺️
As mentioned earlier, I am neither a MATLAB-expert, nor do I know much about BCI – so please read my review with this in mind.
I was able to install and compile all dependencies, as well the TrackM
software and the mex files for the Matlab GUI presented in this paper (under Ubuntu Linux 20.04). I was able to run both pieces of software and test its basic functionality, and did not encounter any major problem. I do not have access to Blackrock neural interface, so I obviously could not test the package in a real BCI application.
I have opened a number of issues on the main repository (eferrea/BCI-Master#2, eferrea/BCI-Master#3, eferrea/BCI-Master#4, eferrea/BCI-Master#5, eferrea/BCI-Master#6), with suggestions for improvements to documentation, usability and testing. I fear that in its current state, the package will be difficult to use for new users, and some parts of it look like code that is rather aimed for internal than for general use (e.g. hardcoded private IP addresses). Everything looks to be fixable, though, I did not encounter any major blocking issues.
Regarding the Software paper, I do not have much to criticize. As friendly whedon noted earlier, three papers are missing DOIs and one of them is also missing the year (leading to a "n.d." in the citation).
Hi @mstimberg, many thanks for the constructive review. I will address all of your concerns as soon as possible.
:wave: @mstimberg, please update us on how your review is going (this is an automated reminder).
:wave: @puolival, please update us on how your review is going (this is an automated reminder).
Hi @mstimberg and hi @oliviaguest , I implemented all suggestions to improve documentation and code usability. You can check my answers directly on the open issues. I also updated the missing DOI and the missing year. Thanks.
@eferrea thanks for the substantial changes, all of my concerns have been addressed (except for the few minor issues I commented in eferrea/BCI-Master#2, eferrea/BCI-Master#3, eferrea/BCI-Master#4). Before the formal acceptance from my side, there's only one more thing that I unfortunately forgot to mention earlier: it would be good to make an official release on github (or just a tag) and give the software a version number. This will make it much clearer which version of the code was described by the JOSS paper, and will allow you to easily communicate changes with respect to this version in the future. But it might make sense to wait with this until the end of the reviewing process, of course.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mstimberg , thanks for your comments. I answered your questions (eferrea/BCI-Master#2, eferrea/BCI-Master#3, eferrea/BCI-Master#4). In addition, I have to mention that I just added in the paper.md a small paragraph of our funding sources. As you suggested, I will then wait until the end of the review process to make an official release.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Thanks for the additional changes @eferrea. I just noticed that the paper still has a broken reference ([RN1]
in line 76), but apart from that I am happy with the current state of the software/paper.
Many thanks @mstimberg for your review. I also corrected the broken reference now.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Great, so just to make it official: I recommend acceptance (CC @oliviaguest )
@mstimberg thank you so much!
@puolival is everything clear with what you need to do to review this? 😊
@oliviaguest I am almost finished writing the review. I'll report back in a couple of days.
Manuscript
The manuscript is currently too short. Please report results at least from one actual experiment. How good cursor control performance can be achieved using this software? Please also compare the performance to a typical state-of-the-art BCI experiment. Please also state more clearly the main functions of this software and how does it compare to the other existing software. Please also mention the most important limitations and/or how the software can be developed further.
It is unclear what is meant by the sentence “The code was successfully used from extracted neural activity of rhesus monkeys performing a similar center-out reach as previously described in a virtual-reality environment …”. If this means that experiments on rhesus monkeys were performed for the purpose of developing this software, the relevant ethical permissions, procedures, methods, etc. must be carefully reported according to standard good practices. It is not possible to recommend publication if an animal model was indeed used and these information are missing.
Related to points 1. and 2., is this software mainly intended to be used with recordings done on humans? This is currently unclear due to the reference to animal models. The abstract only refers to human patients. If the software is intended to be used with human patients, it must be tested with experiments involving human patients.
Does the statement “… movement stage information and position of the target are handled to clear the spike buffer regularly to avoid excessive memory overload” mean that the size of the buffer is dynamic during run-time? It would be much more preferable to use a constant-sized circular buffer (also known as circular queue or a ring buffer) instead, which would not have such issues.
Has this software been tested with any other acquisition system than Cereplex? The Cereplex system is now mentioned as an example but if the software is not (known to be) compatible with other acquisition systems, it should be clearly stated. The manuscript now gives an impression of a general-purpose system but if the software is in fact written for a specific hardware vendor, excluding the SNN part, this should be clearly communicated, perhaps already in the title.
“We also implemented some important BCI features that are frequently used in the literature to provide efficient training and better decoding performance”. How much did the performance improve? How was the performance estimated? Please report the results that were obtained.
Please proofread the manuscript once more. In particular, please check that words that should be in singular form are not accidentally in plural form or vice versa. Spaces are sometimes missing before citation parentheses. Check that words are capitalized correctly (e.g. MATLAB is sometimes referred to as ‘Matlab’ and sometimes as ‘MATLAB’).
In the reference list, journal names are sometimes written in full and sometimes abbreviated. Please adhere to a consistent style.
Font sizes in Figure 1 are too small. Please ensure that all text is readable when the manuscript is printed.
Please write all abbreviations once in full.
To make the manuscript more accessible, it would be good if it was explained what is a “standard c++ client-server application”.
The main features of the SNNs must be described (which neuron model is used, size and connectivity of the network, is the network static or is there plasticity, etc.)
Software
The license file contains the name of only one author while several authors have written the software (based on comments in the source files).
There is no automated package management solution, which is a JOSS recommendation. Also, the installation instructions do not contain version numbers of external packages (e.g. VRPN), which is likely to cause issues sooner or later. The user also needs to manually copy files in order to get the software running, which is a step that I think should be automated.
There are no automated tests. The files “TestBlackrock.m” and “TestVRPNConnection.m” (neither of which is properly commented) can be used to test hardware/internet connections but there are no tests for assessing functionality of this software. The authors should write at least unit tests for all functions.
Many functions and methods are very long, might do several things, and are often not easy to understand. I suggest that long functions are refactored into several smaller ones, such that each function does one only thing (i.e. adherence to the so-called keep-it-simple principle).
There are comments such as “… many of the parameters listed below are not used with the basic provided task controller but were used during our experiments”. It therefore appears that this software might not yet be suitable for general use, since it has not been written in a general-purpose context.
All functions, their input/output arguments, and non-trivial block of code should be properly commented. Indentation should be uniform across files. Single-letter variable names should not be used unless they are part of a mathematical equation.
Adhering to a specific style guide (see e.g. https://google.github.io/styleguide/) would make it easier to read the program code.
The software would be more valuable for researchers if it was easy to customize the parameters of the spiking neural network, for example via a separate GUI.
Like the first reviewer, I am not able try this out in a real application due to not having access to the kind of hardware that was used by the authors. Ideally, a third reviewer would assess performance in a similar context as the original one.
Summary
The manuscript and software must be both substantially expanded, and another review is required after the necessary changes have been made. Currently, the work appears to be more of a minor side product of other scientific work rather than a complete standalone software. This said, the software does have good potential to become a useful tool for the BCI community. While I am currently not able to recommend publication, I do strongly encourage the authors to continue development.
@oliviaguest It seems that I am not able to edit the checklist even though I am logged in.
Hi @puolival (and hi @oliviaguest), many thanks for your review. It seems I can fix all of the reported issues.
Please bear in mind that the software was a necessary requirement (and NOT a minor side product) to perform BCI studies in our non-human primate labs and other different studies are now arising from this software. In addition, to the best of our knowledge, there is no software grouping together all the most important and necessary features for conducting intracortical BCI experiments in non-human primates, and despite some labs might have developed their own ad hoc solutions, scientists that want to start in this field might consider the software as a valuable option. Indeed please consider, that many important details of the methodological implementation are often not reported in scientific papers but need to be inferred from direct experience. Therefore, this software was developed and optimized under several years of direct experimental testing.
@puolival I think you need to be reinvited by @whedon because you didn't accept the last time. No problem tho!
@whedon add @puolival as reviewer
OK, @puolival is now a reviewer
@whedon remove @puolival as reviewer
We just need each reviewer once :)
OK, @puolival is no longer a reviewer
@whedon re-invite @puolival as reviewer
this is the way to get a new invitation...
The reviewer already has a pending invite.
@puolival please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations
Ooops, thanks @danielskatz!
If that link fails, tell me and I'll reissue it - there's a timing bug that sometimes happens here.
ok, @whedon didn't do what I wanted and removed both @puolival's - let's add one back
@whedon add @puolival as reviewer
OK, @puolival is now a reviewer
Whedon and the issue now are correct, so we just need to make sure @puolival is able to check off items by accepting the invitation, and if they cannot, we need to reissue it one more time, then it should work
@danielskatz thank you!
Thanks @puolival for your review and useful suggestions. We addressed at our best your concerns on the manuscript side as well as on the software side. We are confident that the suggested modifications helped to improve readability, and therefore should help increase software usage and usability. We also better clarified the purpose of the software and how it actually supports our research and how it can support the research of other investigators. In the following, you will find our answers to the specific questions and suggestions raised before. We hope that the revised document now fulfills the requirements and would be happy to learn that it is considered suitable for publication.
Manuscript
The software supports the functioning of intracortical BCI experiments. It was developed and optimized under several years of direct experimental testing in two animals. We tried to make this information more clear in the revised version of the manuscript. Also, while it is evident that software for BCI experiments based on intracortical recordings must exist in several labs worldwide, we are not aware of any existing published software, especially presenting all the features that we implemented here. In the “statement of need”, we now emphasize even more that existing software makes use of EEG or ECog signals, which are very different in nature. Comparison of our software with cursor control performance from other approaches in principle is possible, but only based on published papers, since the software used for these experiments has not been made available publicly. Such comparison would not really be meaningful, though, since performance values strongly depend on several experimental parameters, for example, the quality of the recordings/brain implants, the number and task-selectivity of the neural signals extracted from the recordings, the behavioral training status of the subjects, etc.. As a rough quality measure, we now present values showing that in our recordings, the time to target acquisition was in the expected range when comparing hand movements and BCI control. We added now that one possible further development could be the implementation of nonlinear decoding methods (e.g LSTM, Transformers) to improve cursor control or the introduction of additional perturbation schemes for specific motor plasticity studies.
The software was only developed as a necessary step to perform translational studies in monkeys for future application in humans. All experiments where approved by the relevant authorities, and we added corresponding information on the permission to the manuscript. Since the BCI study was the primary goal of the physiological experiments, not the software development per se, we refrain from expanding the description of the physiological procedures here. Instead, the collected experimental data and BCI results will be published separately, including experimental procedures; this future work will then refer to the current software in the methods section.
The software was not tested with human patients so far, but the framework is in principle suited for it. In Germany, to the best of our knowledge, the type of implants used for intracortical recordings are not approved yet for use in humans, therefore, we do not have access to respective patients and cannot test our software in humans. However, the software is used with Blackrock acquisition devices who also produce recordings systems used in human application. We added to the manuscript that the BCImat could be employed for other species. We revised the abstract to avoid the impression of human use.
The properties of the buffer are inherited from cbmex library for interfacing the Blackrock data acquisition system and cannot be chosen freely. We decided to maintain the same buffer structure when interfacing the artificial spiking neural network for maximal compatibility between application and simulation mode. We added corresponding information to the manuscript.
The BCImat framework as such is general purpose, but it is true that one module, the spike buffer, is specific to and was tested with the Cereplex system only. As long as the same buffer structure is kept, which is also used in the simulation mode, the software can be used with other acquisition systems. We better clarify this in the text now.
The idea of this software release is not to systematically study and quantitatively compare different neural decoding approaches/algorithms. Instead, it provides a software framework for users to implement such closed-loop experiments based on spiking data and to be able to simulate them without animal/patient. Due to the modularity, the user can then implement whichever decoder they prefer for their type of data and task. The statement about better decoding performance refers to published data (Gjlia et al. 2012) where it was found that online re-training of the decoder improves performance. Here we do not aim to innovate but make available some of the most important features that are used for this type of experiments. We rephrased the text to make it more clear.
We now consistently use ‘Matlab’ and tried to catch all remaining typos/mistakes as carefully as possible.
In the reference list, journal names are sometimes written in full and sometimes abbreviated. Please adhere to a consistent style. Thank you for pointing this out, we adjusted the references.
Font sizes in Figure 1 are too small. Please ensure that all text is readable when the manuscript is printed.
Thank you, we used bigger fonts in the figure.
We corrected any missing explanation of abbreviations.
Thank for this hint. Here, and throughout, we tried to avoid overly compact phrases and expanded on the text for easier readability.
The network structure is simple, there is no connectivity among neurons. Each neuron fires with its own internal dynamic following the cosine model described in Georgopoulos, et al 1982. We added text for model clarification.
Software
Ok, thanks, we added the full name list.
We specified library versions that were tested for this project in the readme file. We modified the CMakelists.txt file in order to add the configuration file and DLLs automatically.
A more detailed explanation of what to expect from these functions was now added to the readme and to the code comments. The readme was also updated providing information on how to test these functions.
The idea is that each function implements one task. We added more comments in cases where this strategy leads to extensive code.
Even though the task controller is usually very specific to laboratory settings, we implemented here in TrackM a version of a standard center-out reach task used in most BCI studies. We left in the State_parser_class, a simple function that eventually can parse the messages from an eye-tracker.
We add more comments on non-trivial blocks of code and used proper identation. Also single letter variables whenever not being part of a formula or referring to figure objects were removed.
We tried to adhere to Matlab style Guidelines (https://www.mathworks.com/matlabcentral/fileexchange/46056-matlab-style-guidelines-2-0) . One exception here is that functions were named according to this style compute_diff() , rather than this style computeDiff(). Since in the previous version both styles were interleaved, we changed the code consistently.
At the moment only the number of neurons can be decided as input. It seems not a big issue to enter this number inside the launching function. We consider a GUI potentially useful for the NN should we decide to add more parameters that can be configured (e.g., spiking noise, modulation depth).
We include the simulation mode in this BCI framework exactly for the reason that users can test the software even before starting with physiological experiments.
@eferrea Thanks for the detailed response. Where can I access the updated manuscript (pdf)?
@puolival, I now uploaded the paper.pdf in the Github "paper" folder.
To get the rendered PDF here we should also be able to use
@whedon generate pdf
@whedon generate pdf
[sorry, keep forgetting that whedon commands need to start a comment]
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @puolival and (hi @oliviaguest), thanks again for reviewing the manuscript. Since we have a manuscript and a grant pending on this paper I would ask if a much longer time is needed for the review so that in case we will go ahead with the other submissions. Please let me also know if meanwhile, I could provide additional information to agevolate the process. Thanks again for your work and best regards.
Hi everyone. In case there are any doubts about this: I still recommend the acceptance of the paper in its most recent version. Quite obviously @puolival's review was more "demanding" than my own, but I also agree that the changes to address the raised points improved the manuscript/code/documentation.
I hope I am not overstepping my role as a reviewer here, but let me mention two points from the JOSS guidelines that might affect the evaluation of the current manuscript and code:
Your paper must not focus on new research results accomplished with the software.
(Submission guidelines for authors) I think it is important to keep in mind that the role of papers in JOSS is different from a "software paper" in most other journals.
Authors are strongly encouraged to include an automated test suite covering the core functionality of their software.
Good: An automated test suite hooked up to continuous integration (GitHub Actions, Circle CI, or similar) OK: Documented manual steps that can be followed to objectively check the expected functionality of the software (e.g., a sample input file to assert behavior)
(Review criteria: tests) While I of course agree that unit tests are important, I also acknowledge that the core part of the presented work involves GUI and client-server communication, which means that a fully automated test suite presents a considerable effort.
Submitting author: !--author-handle-->@eferrea<!--end-author-handle-- (Enrico Ferrea) Repository: https://github.com/eferrea/BCI-Master Branch with paper.md (empty if default branch): Version: v.1.0.0 Editor: !--editor-->@oliviaguest<!--end-editor-- Reviewers: @mstimberg, @puolival Archive: 10.5281/zenodo.6759182
: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 badge code:
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
@mstimberg & @puolival, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @oliviaguest 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 ✨
Review checklist for @mstimberg
✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @puolival
✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper