Closed whedon closed 4 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @Emma-k-ward, @sbuergers 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
Hey @Emma-k-ward, @sbuergers, and @trisbek this is where the main review occurs, if you need to open something very technical as an issue please do so as an issue at the original repo but all other comments — so most, if not all, of the review — should be here. Hope this is all clear but please ask me any questions you may have! ☺️
@whedon add @Trisbek as reviewer
OK, @Trisbek is now a reviewer
Hey @teamPSG,
This is a nicely written and well documented toolbox, well done! I used Matlab 2019b for testing and the SoftwareVerification ran without problems.
From what I could gather there are only a few points to consider:
Contribution and authorship: From the commit history it is unclear who, apart from Tamás Kiss, contributed to the software. Can you include a statement of contributions for the other authors?
References: The references in the main text do not render properly (e.g. [@STEPHENSON2009263,@BASTIANINI2014277...]). It might be that this can simply be fixed by putting a semicolon instead of a comma in-between authors, see this guide.
Community guidelines: I did not see clear guidelines for third-parties wishing to: i.) Contribute to the software, ii.) Report issues or problems with the software (other than contacting the author, but it would be useful to have some pointers for how to use github for this). There are plenty of examples here on github that do this well, for instance here.
@oliviaguest, thanks for setting us up! I take it these comments should not go in the issues of the project?
Cheers, Steffen.
@sbuergers thank you for your feedback so far! These seem to be appropriate to stay here — although feel free to talk to @teamPSG on how to organise these, of course!
@whedon generate pdf
Hi @sbuergers,
Thanks for your feedback and really fast action! Glad you like the toolbox and thanks for the suggestions.
Contributions and authorship: I included a section on who did what at the end of the manuscript.
References: thanks for the hint, it worked, references are now rendered properly (during writing I checked the ms offline using the local compiler and it looked good there -- some components of the compilation workflow might have changed in the course of development...)
Community guidelines: good point, I missed this one. I added a CONTRIBUTING.md to the repo.
I guess the comments are fine right here. Thanks for the review!
Best, Tamás
Hi @teamPSG,
thanks for implementing the feedback! This looks good to me now.
Best, Steffen.
Hey @Emma-k-ward and @trisbek can you give me a rough ETA for your reviews? I ask not to hurry you but just to be organised. Thank you. ☺️
Hi @oliviaguest, have you received feedback on ETA from @Emma-k-ward and/or @trisbek? (The text editor doesn't auto-complete the mention fortrisbek for me -- does it mean anything?) Thanks!
I have not been able to run anything on my house PC so I will check with Samika later (she is in californian time) and let you know/ tris
El lun., 6 jul. 2020 a las 9:42, teamPSG (notifications@github.com) escribió:
Hi @oliviaguest https://github.com/oliviaguest, have you received feedback on ETA from @Emma-k-ward https://github.com/Emma-k-ward and/or @trisbek https://github.com/trisbek? (The text editor doesn't auto-complete the mention fortrisbek for me -- does it mean anything?) Thanks!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-654099261, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2ANW6UI6AEQT5ITMSTR2GE6NANCNFSM4OETIXNQ .
@trisbek great! Please tag Samika's username so we can give due credit and assign as reviewer if they so wish, thanks.
@whedon generate pdf
@teamPSG are you making any edits at the moment for this? ☺️
@oliviaguest no, I have not touched the ms since my response to Steffen (17 days ago according to GitHub)
OK, no problem and let us wait for the reviewers to get back to us. If they don't give a vague ETA within a week or so, I'll email them. ☺️
Samika ran the code using Matlab 2018B on my behalf. The Software Verification scripts run smoothly and quickly. Function Library scripts look very clearly documented.
Functionality/Performance: The paper states the algorithm's potential to stage sleep across species and genetic/drug manipulations for large animal cohorts, and it states the algorithm has been used already on mice, rats, and non-human primates. But the paper (and Github) only include summary results for 6 knockout mice. If it's already available, it would be nice to see the prediction accuracy output for a larger sample size or at least on other species/conditions to confirm the algorithm's versatility.
(Optional) The algorithm has a nice "deflated single model" to account for imbalanced data (e.g., too few REM epochs). Compared to the original single model, this deflated model results in improved REM prediction accuracy but slightly decreased Wake/NREM accuracy. If I am interested in achieving the greatest accuracy for all sleep stages, it's not obvious to me how I would determine which model to use in the end. It might be helpful to have a small script that outputs which model maximizes the true positive rate for most subjects.
I have added comments but was unable to tick the boxes on read the PDF today
El lun., 13 jul. 2020 a las 11:50, Olivia Guest (notifications@github.com) escribió:
OK, no problem and let us wait for the reviewers to get back to us. If they don't give a vague ETA within a week or so, I'll email them. ☺️
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-657487142, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2BRAJS3S2OZDU6K4KLR3LRINANCNFSM4OETIXNQ .
@whedon re-invite @trisbek as reviewer
The reviewer already has a pending invite.
@trisbek please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations
Invite me again? [image: image.png]
El mar., 14 jul. 2020 a las 14:58, whedon (notifications@github.com) escribió:
The reviewer already has a pending invite.
@trisbek https://github.com/trisbek please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-658196185, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2G4TZ6SEQKVROZ4KADR3RQBRANCNFSM4OETIXNQ .
@trisbek I cannot AFAIK, you have to be logged in and use the link above.
Perhaps another @openjournals/joss-editors can lend me a helping hand, please? I assume that @whedon is correct and all @trisbek needs to do is click that link? ☺️
right - clicking the link should work
Also @trisbek (sorry I keep asking!) can you clarify if Samika wishes to be included as a reviewer? How much of this code and paper have they reviewed, and do they want credit attributed to them for their work?
Hi,
it does not let me accept and it does not let me see the pdf [image: image.png]
Samika said, next time she will upload her scripts and OSF and the lot to a new account of github but this time she is happy for me to copypaste her comments.
El mar., 14 jul. 2020 a las 15:57, Olivia Guest (notifications@github.com) escribió:
Also @trisbek https://github.com/trisbek (sorry I keep asking!) can you clarify if Samika wishes to be included as a reviewer? How much of this code and paper have they reviewed, and do they want credit attributed to them for their work?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-658229517, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2DNX4RHN2HBPXG7NXLR3RW7BANCNFSM4OETIXNQ .
The pdf file is visible without being logged in. @trisbek did you follow https://github.com/openjournals/joss-papers/blob/joss.02377/joss.02377/10.21105.joss.02377.pdf for the pdf?
@trisbek We have discussed this case (the whole editorial board) as this has not happened at JOSS before (that a reviewer copy/pastes another reviewer's words). We have decided that Samika needs to make a GitHub account (if she doesn't have one already) so that she can receive credit (this should take a few minutes only). Samika does not have to write a separate review since she already did, she merely has to tick the boxes at the top of this issue. This should be very quick and easy — we apologise for bringing this up now but we believe it's open and transparent to do the above. We will email her a link to this GitHub issue so she can comment here with her username. Thank you!
Hi all - apologies for the confusion! I've reviewed the scripts and paper, and my comments are above in Tristan's message. I'm happy to tick the boxes once I am added. Thanks.
@whedon add @samikakumar as reviewer
OK, @samikakumar is now a reviewer
@samikakumar thank you so much! I apologise again. You have nothing to apologise for yourself. :relaxed:
Thanks, this is better, credit where it is due.
Tris
El mié., 15 jul. 2020 a las 7:19, Olivia Guest (notifications@github.com) escribió:
@samikakumar https://github.com/samikakumar thank you so much! I apologise again. You have nothing to apologise for yourself. ☺️
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-658569312, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2AMAKETR22ZGHBIYKDR3VC5VANCNFSM4OETIXNQ .
In case people are reading this in the future for inspiration: please be aware that what happened here is both highly anomalous and frowned upon. JOSS expects reviewers to write their own reviews after, e.g., running the code on their own hardware, etc. Delegation of review to a third party, especially when credit is unallocated, is not inline with our principles and we will be soon updating our guidelines to make this as clear as possible. This is merely being underlined here to avoid setting a bad precedent.
OK, so let's get this back on track! 😅
@teamPSG is the feedback provided by @samikakumar clear in how it relates to possible improvements to your code/paper?
A key decision and feature to take into account by PSG is to decide if this is good enough for classic EEG human data. For this package to be useful to the thousands of researchers working in EEG human sleep data it would have to be validated in human datasets, beyond the datasets in animals already shown in the pdf and examples. A good dataset is the publicly available https://sleeptight.isr.uc.pt/?page_id=48 and also the recently made available consortium on the subject https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4835314/ Would the authors care to comment how their package links and complements to this wide open initiative? It could make a big difference. This is a extent of influence comment, the documentation is clear, the software runs well.
Sure, but it was also open, I told you I would ask Samika, she accepted and I told you that she had written the bit I posted a couple of days ago. After your message she came to github and did it herself (good!). It is better this way as it assigns credit where it is due. Now we have the right type of format for my review and a separate one Samika's, as we agreed a few weeks ago.
Hopefully both reviews are useful to @teamPSG in terms of putting their tools in context to the eeg sleep community.
El mié., 15 jul. 2020 a las 10:49, Olivia Guest (notifications@github.com) escribió:
In case people are reading this in the future for inspiration: please be aware that what happened here is both highly anomalous and frowned upon. JOSS expects reviewers to write their own reviews after, e.g., running the code on their own hardware, etc. Delegation of review to a third party, especially when credit is unallocated, is not inline with our principles and we will be soon updating our guidelines to make this as clear as possible. This is merely being underlined here to avoid setting a bad precedent.
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/2377#issuecomment-658668714, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQCEF2CUPYNGO4SPFIXDSNDR3V3TVANCNFSM4OETIXNQ .
OK, I really feel the need to add one last clarification for future readers, the events are:
@trisbek decided he would ask @samikakumar and did without checking the exact details with me and if I am OK with that. This happened in private mostly. I am, and was, though OK with that, but I want(ed) to do this properly (i.e., give her credit). Therefore, I asked quite a few times of Tristan to tell Samika to join this review with her GitHub account. For whatever reason she didn't. Finally, Tristan explained that he copy-pasted (some of?) her words in his review. So ultimately, I think it's both fair, open, and ethical that Samika takes credit where she did work to improve this paper and code. This is what I asked for from the start (both in private and in this issue thread), as soon as I found out that she had been involved in this process: to include Samika officially, openly, and transparently.
Hope this helps to give the full backstory to readers.
Also thank you for apologising, @trisbek. Please however, let us continue with the actual matter at hand: reviewing this JOSS submission. 😁
Hi Olivia, authors,
This is a nice toolbox that was easy to use and gave me easily interpretable output with minimal time investment, even as a totally naive user, which I think was the authors' goal. Some comments on my experience and how I would think it could be slightly improved:
Code I also ran the Software_Verification without issues when running code inside the functions, although a very minor problem came up: when I wrote a main script to call the individual functions it was hard to figure out where to set my working directory. I would usually write my own main script when downloading a package, set the directory and add any paths, and then call functions there, and this was a bit harder here because the directories are called in reference to their values in setup and I wasn't sure how to organise my own script then.
Once I solved that, I could run all the code and everything behaved as expected. I liked that I get output including the structures with original sleep stage labels (I assume this means the manually coded labels for the training) and predicted labels at the end, and the figures are nice. As a naive user I could get interpretable output very quickly, which I think was the goal of the toolbox.
In the code itself I miss some comments to make it clearer what is happening where. The comments that are there are nice, but very high level so I'd like to understand at first glance a little more of what's being calculated. For example, in FirstStep, we get quickly to: %% Calculate features files = dir([par.DataDir filesep '*' par.DataExt]); for file = files' filename = strrep(file.name, par.DataExt, ''); fprintf('Processing %s.\n', filename); generate_statespace(par.TopDir, filename, 'Description', filename, ... 'IsTrainingSet', true, ... 'OutDir', par.IntDir, 'WriteTmpFile', [filename par.PostFn]); end
and inside generate_statespace a few comments say "[see notes inside]", but I don't see much in the way of notes.
Documentation In the documentation, I do see a statement of need and a summary, but I would have liked to know a little bit more. I think the argument is made very clearly that this process should be automated, and I appreciated hearing how the scoring is done manually. However, I don't think the paper is that clear about the advantages of this particular algorithm.
For example, the paper explains that this algorithm is preferable to the previously available algorithms because the features used are human-interpretable but I would've liked one more sentence about this. I only know from the paper that the features are based on power in relevant frequency bands and Hjorth parameters but I don't know in what sense a feature based on those characteristics is more human-interpretable. Are the features literally human-readable? For a single animal would I then be able to dig into the output of generate_statespace and see, as a very simplified example, that a sudden decrease in alpha and increase in delta power are key markers of a certain stage? If so, then I would emphasise this more because I think it's very interesting, but if not I don't understand the type of feature interpretability the authors mean. I also found the Wikipedia citation odd, as I was expecting information about the interpretability of these specific features and instead was led to an article arguing for interpretability in general. Not a problem per se but rather vague. This is rather an important point in the philosophy behind the toolbox and I was also very interested, so I was surprised it was quickly brushed aside.
Then the point that the current method is more valid with animals after drug treatment, or humans with atypical sleep signatures, mostly rests on the argument that the transitions between states are less predictable in these groups, and therefore the current method drops any prior assumptions about transition rates and timing. The authors even state that there's potentially more sleep stages in these atypical cases, which I wouldn't have known and is interesting, although the current method only allows for 3 stages (wakeful, REM, non-REM) so it's less relevant. I would've expected either a reference here (fourth sentence before the heading Brief Software Description) or another sentence saying why it is a reasonable to have such a (lack of) assumption about transition rates. Or, alternatively, that in the output there was a metric showing how often the classifier transitioned between labels so researchers could assess whether they find that reasonable. I think this very small adjustment might be useful to people who want to evaluate whether they will switch to this method.
Overall these are small adjustments and I think it's a cool toolbox!
Best wishes,
Emma
@teamPSG have their work cut out! 💯
Thank you for your detailed feedback, @Emma-k-ward!
Thanks for your very good comments and suggestions @trisbek @samikakumar @Emma-k-ward . I'm checking with coauthors and working on the code and the paper.
@teamPSG just to keep track of stuff, when you make changes can you link to them from here (any way you want, link to line numbers, files, PRs, whatever makes sense for you) so we can all see them easily? Also does any of the above by @samikakumar @trisbek @Emma-k-ward make sense to be transferred into a direct code-related issue? If so, please do that to keep things neat and link back to it from here. 😊
Hey @oliviaguest, I'll try my best. Is there a previous review that you'd suggest to look at as a good example?
Sure, @teamPSG so here has reviewers opening issues: https://github.com/openjournals/joss-reviews/issues/2285
Hey @oliviaguest, I have a quick technical question regarding editing the paper: I'd like to indicate that some authors have changed their affiliations since the work was done. Like my affiliation should be Pfizer but my current affiliation is Wigner RCP. Is there a specific way to do it or as a workaround shall I just add "Current affiliation" in the name
tag in the authors list?
Submitting author: @teamPSG (Tamas Kiss) Repository: https://github.com/teamPSG/kNN_Sleep_Scorer_kNNSS Version: v1.0.0 Editor: @oliviaguest Reviewers: @Emma-k-ward, @sbuergers, @Trisbek, @samikakumar Archive: 10.5281/zenodo.4009178
: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
@Emma-k-ward & @sbuergers, 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 try and complete your review in the next six weeks ✨
Review checklist for @Emma-k-ward
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @sbuergers
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @Trisbek
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @samikakumar
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper