vferat / pycrostates

https://pycrostates.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
36 stars 11 forks source link

[JOSS Review] Software Paper #65

Closed anshu-97 closed 2 years ago

anshu-97 commented 2 years ago

As part of #61

Overall, the paper gives a concise and clear description of what microstates are and what microstate analysis entails. However, it is not as clear what microstate analysis is useful for and how it is currently being implemented in research. By extension, the need for a software that wholly serves a seemingly niche form of spatiotemporal analysis is ambiguous. That being the case, providing elaboration on the purpose of microstate analysis such as by highlighting its potential applications for real-world scenarios, its use over other forms of EEG analysis, the current gaps in the field that needs to be addressed and how this software seeks to do so etc., would more prominently showcase the need for the software more clearly and convincingly, especially for a non-specialist audience. For instance, in the second last line of the paragraph under Statement of Need, it is stated that Pycrostates “is able to replicate most of the analyses proposed in the literature (Michel et al., 2018).”. Does this statement then imply that replicability is an issue facing the field that Pycrostates seeks to address? Are the other available packages/modules not able to replicate such past analyses and if so, what are the features Pycrostate provides that allow it to do so? These are some questions that could perhaps be pondered over to clearly point out to readers and potential users on the purpose, efficacy and usability of the software.

Moreover, the justification of the software’s usability over other microstate analyses software (i.e., that the MNE-microstates package has “a limited number of features and is not maintained on a regular basis”) could appear as a quick dismissal of a usable software. While there is a very brief overview on all the modules and sub-modules offered in the Pycrostates package, it is not clear how the utility of the specific features available in Pycrostates extend beyond that found in other packages. Given that the limited features of other packages serves as one of the two main reasons that justify the need for this software, the functionality and utility of its additional features should be very explicitly fleshed out for the justification to hold. For instance, providing comparisons between the generated output (e.g., are the microstate map plots clearer and/or more detailed) or in the way in which the algorithm is executed (e.g., is the code written more efficiently such that computation time is lesser etc.,) in the form of example codes in the paper could aid in highlighting the distinctions between Pycrostates and other available microstate analysis modules and packages. Though a software comparison table (e.g., here) or benchmark graphs would be great, any improvement of the presentation of Pycrostates within its software environment would be welcome.

Additionally, beyond the mention of mne-microstates and Wegner’s Python2 implementation of microstate analysis, the theoretical comparison with other Python packages implementing microstates have not been discussed, such as KeyPy (although keypy is no longer being maintained, I believe it is still worthy of a mention since it implements similar features for microstate analysis) and NeuroKit2 (disclaimer: I am a maintainer of NK 😊).

mscheltienne commented 2 years ago

Hello, thank you for the review, and apologies for the delay to address your comments. We were both lacking the bandwidth to work on this.

The paper has been updated in #81 and in #84.

Pycrostates “is able to replicate most of the analyses proposed in the literature (Michel et al., 2018).”. Does this statement then imply that replicability is an issue facing the field that Pycrostates seeks to address?

This was not our intention. The goal was to mention that most pipelines proposed in this literature review are supported by pycrostates. The phrasing has been updated to reflect this in #84.


We added mentions of other softwares (with the proper references) that focuses on or supports microstates analysis. The list was splitted between non-Python and Python softwares, with the latter:

Current Python implementations of microstate analysis include the python 2 library from Frederic von Wegner [@von_wegner_information-theoretical_2018], Neurokit [@Makowski2021neurokit], Keypy [@patricia_milz_2016_48830] (no longer maintained) and the MNE-microstates package from Marijn van Vliet.

We did not include a benchmark between the softwares, as it will be very time-consuming to produce and requires to get familiar with each software first. This is however a long-term plan for the website documentation. As a starter, we will probably compared to MNE-microstates and to NeuroKit (c.f. #17).

We did however rework the paper to emphasize more the additional functionalities compared to most software (e.g. modularity supporting both subject and group level analysis, temporal smoothing, small segments rejection) and the integration within the MNE-ecosystem (similar structure with a familiar info attribute).


Please let us know if those changes are sufficient.

anshu-97 commented 2 years ago

Hi there - apologies for my delayed response as well! I agree that it'll indeed be time-consuming to make comparisons with all other available software and I note the emphasis in the added functions beyond that of alternative software is sufficient in my opinion. Looking forward to seeing more developments in your package!