Closed editorialbot closed 8 months 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
Software report:
github.com/AlDanial/cloc v 1.88 T=1.29 s (75.8 files/s, 270557.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 12 16359 74932 195168
Python 29 1657 2655 3294
Jupyter Notebook 18 0 50227 2514
Cython 12 337 494 561
Markdown 7 138 0 349
reStructuredText 9 244 236 152
TeX 2 14 0 128
YAML 4 40 24 83
CSS 1 18 15 57
DOS Batch 1 8 1 26
Bourne Shell 1 2 0 18
make 1 4 7 9
TOML 1 0 0 3
-------------------------------------------------------------------------------
SUM: 98 18821 128591 202362
-------------------------------------------------------------------------------
gitinspector failed to run statistical information for the repository
Wordcount for paper.md
is 875
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- None
MISSING DOIs
- 10.1007/s10618-020-00689-6 may be a valid DOI for title: ABBA: adaptive Brownian bridge-based symbolic aggregation of time series
- 10.1109/tit.1982.1056489 may be a valid DOI for title: Least squares quantization in PCM
- 10.1145/882082.882086 may be a valid DOI for title: A symbolic representation of time series, with implications for streaming algorithms
- 10.1145/3532622 may be a valid DOI for title: An efficient aggregation method for the symbolic representation of temporal data
- 10.1016/j.is.2023.102294 may be a valid DOI for title: ECG classification with learning ensemble based on symbolic discretization
- 10.1007/978-3-031-24378-3_4 may be a valid DOI for title: Fast Time Series Classification with Random Symbolic Subsequences
- 10.1007/s10618-007-0064-z may be a valid DOI for title: Experiencing SAX: a novel symbolic representation of time series
- 10.1109/seed55351.2022.00016 may be a valid DOI for title: Foreseer: Efficiently Forecasting Malware Event Series with Long Short-Term Memory
- 10.1016/j.ress.2023.109123 may be a valid DOI for title: Data-driven prognostics based on time-frequency analysis and symbolic recurrent neural network for fuel cells under dynamic load
- 10.1145/3448672 may be a valid DOI for title: A Framework for Generating Summaries from Temporal Personal Health Data
INVALID DOIs
- None
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
ππΌ @chenxinye @Karangupta1994 @allie-tatarian this is the review thread for the paper. All of our communications will happen here from now on.
As a reviewer, the first step is to create a checklist for your review by entering
@editorialbot generate my checklist
as the top of a new comment in this thread.
These checklists contain the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines.
The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#REVIEW_NUMBER
so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.
We aim for reviews to be completed within about 2-4 weeks. Please let me know if any of you require some more time. We can also use EditorialBot (our bot) to set automatic reminders if you know you'll be away for a known period of time.
Please feel free to ping me (@lrnv) if you have any questions/concerns.
@lrnv Thanks for the arrangement!
Hi all, I'm not sure if this is the best place to this but I don't think it makes sense to post this as an issue because I think it's a problem on my end. When I try to use fABBA, I am consistently getting a "This installation is not using Cython" warning even though I do have Cython installed. @chenxinye is this something you have seen before? I cannot for the life of me figure out how to troubleshoot this. The fABBA library is still mostly working for me, but sometimes I get different outputs than the examples.
@allie-tatarian Different output than the examples surely looks like an issue (unless the examples are explicitely random ?). Problem in the installation can also be reported as issues.
@Karangupta1994 & @allie-tatarian, to guide you in the review, there is an automated checklist that you have to produce by commenting in this thread :
@editorialbot generate my checklist
I think the standard checkpionts includes stuff such as the need for descriptive installation guidelines if some requirements are "non-standard".
More generally, this is a very good place to discuss this thread is here for that purpose
Thanks @lrnv for the input, I opened an issue on the project page, but I think I am going to try using fABBA again on a different computer just in case it is an issue with the security settings on this one.
Hi @lrnv, I just sorted the doi in bib, many thanks!
@allie-tatarian
I just checked, found some output in README.md is consistent with the real output of software. I now corrected it! Please check.
Thanks for pointing the issues.
For the Cython issue, @lrnv @allie-tatarian, some users reported before, most of them have this issue since their machine have firewall or without VC++ installed. Could you please provide your machine specifications for me?
I checked my three machines, all worked properly. I guess you use Windows without VC++ installed?
Thanks @chenxinye, I do have VC++ installed, so I think the issue is with the firewall on my work computer. I will try everything again on my personal computer tomorrow and report back!
You would need to install fABBA using:
pip install fABBA
Thanks @chenxinye, like I mentioned in the issue I did install using pip. It is working fine on my personal computer, so I think the issue is that the security on my work computer is not meshing well with cython. I wonder if it's worth putting a note about that in the docs for fABBA - I do think the issue is with cython, not fABBA, but looking around online it looks like I'm not the only one who has run into this issue and I haven't seen anyone spell out the solution as concisely as you did here!
Hi @allie-tatarian Thanks for your suggestions! That's really a good idea, I will put a note there!
@allie-tatarian Just added in https://fabba.readthedocs.io/en/latest/quickstart.html ! Many thanks
I did run into some issues when I was trying out the JABBA package, trying to follow the examples both in the README and the docs, but then I realized that JABBA isn't in the paper so I did the peer review following the functionality that is listed in the paper. @lrnv can you let me know if you think that is off-base?
@allie-tatarian I'm confused, what is the difference between fABBA (the software we review here) and JABBA ? Functionalities of the reviewed software need to be checked up, even if they are not mentionned in the paper itself. e.g., you can check out the documentation, see if it works correctly, etc..
if you mean this one here : https://fabba.readthedocs.io/en/latest/api_reference.html#jabba it seems to be integral part of the submitted work.
@chenxinye is JABBA part of the submitted work here ?
Sorry for the confusion @lrnv @allie-tatarian
JABBA is an extension of ABBA/fABBA towards multiple or multivariate time series, it also works for univariate time series (enabling parallel computing!).
@allie-tatarian Which issue did you come across, did you follow this: https://fabba.readthedocs.io/en/latest/multivariate.html?
The method JABBA also works for Before running the example, you should download the UEA data: https://timeseriesclassification.com/
Or you can simply generate multivariate time series yourself via: np.random.randn(50, 30)
@chenxinye Maybe one interesting improvements to your docs would be a synthesis of these discussions.
Thank you both for the clarification! Yes, @chenxinye, that is the code I was following. I downloaded the BasicMotions dataset, copied the code, and the only thing I changed was changing the directory in the first line to an absolute directory pointing to the dataset. When I try to run it, I get the error: AttributeError: module 'os' has no attribute 'sched_getaffinity'
which gets called at line 28, when the code is trying to call fit_transform(). When I looked up the error, it said that sched_getaffinity only works on Linux machines, not Windows. The full error message is:
Traceback (most recent call last):
File "c:\Users\willi\Documents\program_practice\fabba\jabba_docs.py", line 28, in <module>
symbols_series = jabba1.fit_transform(mts)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 262, in fit_transform
self.fit(series, n_jobs=n_jobs, alphabet_set=alphabet_set)
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 289, in fit
self.pieces = self.parallel_compress(series, n_jobs=n_jobs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 317, in parallel_compress
n_jobs = self.n_jobs_init(n_jobs, _max=len_ts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 655, in n_jobs_init
n_jobs = len(os.sched_getaffinity(0))
^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'os' has no attribute 'sched_getaffinity'
A separate but related issue I ran into when trying to run the code that is in the README in the JABBA section is that that code includes the lines:
from fABBA import loadData
train, test = loadData()
I can't find any documentation, either in the README or the documentation, about how loadData() works. The image compression section of the README has a similar issue - it introduces load_images(), but I can't find anything about how to use load_images in the README or the docs.
Hi @allie-tatarian @lrnv , thanks for mentioning that, I just add documentation as well as docstring for the loadData()
.
The updated document can be found in https://fabba.readthedocs.io/en/latest/api_reference.html.
Also I fix the JABBA issue in Windows, many thanks for raising this issue!
I will also continue to work on the improvements of the documentation.
@chenxinye Thanks for the quick update! I tried the code in the documentation and it worked perfectly. I also tried the code with loadData()
from the README, and it works when I use "Beef" but not "BasicMotions." I checked the directory that the data should have been in, and the "Beef" data was there but not the BasicMotions folder. I added the BasicMotions folder I had downloaded, and I got this error:
File "c:\Users\willi\Documents\program_practice\fabba\jabba_readme.py", line 5, in <module>
train, test = loadData(name="BasicMotions")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\load_datasets.py", line 47, in loadData
return train, test
^^^^
UnboundLocalError: cannot access local variable 'test' where it is not associated with a value
Also I can see now the documentation for load_images()
too, thanks for clarifying how it works! I hadn't tried that code yet, that will be the next thing I do.
Quick update: The image compression/decompression code worked great, so the only issue I have left is when using loadData(name="BasicMotions")
.
Hi @allie-tatarian All issues should be fixed in version 1.2.1 now. Thank you so much!
Thanks @chenxinye, now when I try to use loadData(name="BasicMotions")
, I get this error (I do NOT get an error when I try to run the code using loadData(name="Beef")
...again, this is the JABBA example code in the README):
File "c:\Users\willi\Documents\program_practice\fabba\jabba_readme.py", line 8, in <module>
symbols = jabba.fit_transform(train)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 267, in fit_transform
self.fit(series, n_jobs=n_jobs, alphabet_set=alphabet_set)
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 294, in fit
self.pieces = self.parallel_compress(series, n_jobs=n_jobs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\site-packages\fABBA\jabba\jabba.py", line 367, in parallel_compress
pieces = [p.get() for p in pieces]
^^^^^^^
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\pool.py", line 774, in get
raise self._value
File "C:\Users\willi\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "fABBA\\jabba\\compmem.pyx", line 10, in fABBA.jabba.compmem.compress
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
Hi @allie-tatarian, Thank you, I missed that. JABBA is used to process the 2-dimensional time series, the 3-dimensional one have not yet developed.
So the proper use is
from fABBA import JABBA
from fABBA import loadData
train, test = loadData(name="BasicMotions")
jabba = JABBA(tol=0.0005, init='agg', verbose=1)
symbols = jabba.fit_transform(train[0])
reconst = jabba.inverse_transform(symbols)
I have added note in the ([JABBA example code in the README)
related document also were updated. Many thanks!
Ok, great, thanks for the explanation @chenxinye! I also noticed that for the last two lines:
test_symbols, start_set = jabba.transform(test)
test_reconst = jabba.inverse_transform(test_symbols, start_set)
I also had to change jabba.transform(test)
to jabba.transform(test[0])
to get it to work using BasicMotions.
Thanks for all of your help and quick updates!
@allie-tatarian
Exactly, thanks for mentioning it, I already added note in the code example for the transform()
method.
Ok, great, thanks for the explanation @chenxinye! I also noticed that for the last two lines:
test_symbols, start_set = jabba.transform(test) test_reconst = jabba.inverse_transform(test_symbols, start_set)
I also had to change
jabba.transform(test)
tojabba.transform(test[0])
to get it to work using BasicMotions.Thanks for all of your help and quick updates!
@Karangupta1994 it has been two weeks already, did you manage to find some time to start this review ? If you need a bit more time, I could setup automatic reminders for you if you want.
@editorialbot check references
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1007/s10618-020-00689-6 is OK
- 10.1109/tit.1982.1056489 is OK
- 10.1145/882082.882086 is OK
- 10.1145/3532622 is OK
- 10.1016/j.is.2023.102294 is OK
- 10.1007/978-3-031-24378-3_4 is OK
- 10.1007/s10618-007-0064-z is OK
- 10.1109/seed55351.2022.00016 is OK
- 10.48550/arXiv.2003.05672 is OK
- 10.1016/j.ress.2023.109123 is OK
- 10.1145/3448672 is OK
MISSING DOIs
- None
INVALID DOIs
- 10.5555/1953048.2078195 is INVALID
Hi @lrnv, looks like the other reviewer is still not involved since it has been a month. I guess his GitHub account is frozen?
@chenxinye No I had an e-mail exchange with @Karangupta1994 and It looks like he's still on board. Why are you saying his accoutn is frozen ?
I just checked my DOI 10.5555/1953048.2078195 is correct, not sure why it reminds me invalid DOI.
@chenxinye No I had an e-mail exchange with @Karangupta1994 and It looks like he's still on board. Why are you saying his accoutn is frozen ?
Sorry, I apologized the mistake! I only saw the account activity.
Hi @lrnv it seems like https://www.jmlr.org/papers/v12/pedregosa11a.html does not provide DOI, how do I deal with it? Many thanks!
I think you just have to curate your bib file and remove the DOi field. At the link you provided, they give the following bib :
@article{JMLR:v12:pedregosa11a,
author = {Fabian Pedregosa and Ga{{\"e}}l Varoquaux and Alexandre Gramfort and Vincent Michel and Bertrand Thirion and Olivier Grisel and Mathieu Blondel and Peter Prettenhofer and Ron Weiss and Vincent Dubourg and Jake Vanderplas and Alexandre Passos and David Cournapeau and Matthieu Brucher and Matthieu Perrot and {{\'E}}douard Duchesnay},
title = {Scikit-learn: Machine Learning in Python},
journal = {Journal of Machine Learning Research},
year = {2011},
volume = {12},
number = {85},
pages = {2825--2830},
url = {http://jmlr.org/papers/v12/pedregosa11a.html}
}
without a doi field.
@editorialbot check references
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1007/s10618-020-00689-6 is OK
- 10.1109/tit.1982.1056489 is OK
- 10.1145/882082.882086 is OK
- 10.1145/3532622 is OK
- 10.1016/j.is.2023.102294 is OK
- 10.1007/978-3-031-24378-3_4 is OK
- 10.1007/s10618-007-0064-z is OK
- 10.1109/seed55351.2022.00016 is OK
- 10.48550/arXiv.2003.05672 is OK
- 10.1016/j.ress.2023.109123 is OK
- 10.1145/3448672 is OK
MISSING DOIs
- None
INVALID DOIs
- None
I think you just have to curate your bib file and remove the DOi field. At the link you provided, they give the following bib :
@article{JMLR:v12:pedregosa11a, author = {Fabian Pedregosa and Ga{{\"e}}l Varoquaux and Alexandre Gramfort and Vincent Michel and Bertrand Thirion and Olivier Grisel and Mathieu Blondel and Peter Prettenhofer and Ron Weiss and Vincent Dubourg and Jake Vanderplas and Alexandre Passos and David Cournapeau and Matthieu Brucher and Matthieu Perrot and {{\'E}}douard Duchesnay}, title = {Scikit-learn: Machine Learning in Python}, journal = {Journal of Machine Learning Research}, year = {2011}, volume = {12}, number = {85}, pages = {2825--2830}, url = {http://jmlr.org/papers/v12/pedregosa11a.html} }
without a doi field.
Many thanks, now sorted!
Hey @Karangupta1994 how is this going ? Would you update us on review status ?
Submitting author: !--author-handle-->@chenxinye<!--end-author-handle-- (Xinye Chen) Repository: https://github.com/nla-group/fABBA Branch with paper.md (empty if default branch): master Version: 1.2.1 Editor: !--editor-->@lrnv<!--end-editor-- Reviewers: @Karangupta1994, @allie-tatarian Archive: 10.5281/zenodo.10885652
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
@Karangupta1994 & @allie-tatarian, 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:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @lrnv 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 @allie-tatarian
π Checklist for @Karangupta1994