# musclesyneRgies 1.3.1
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved README language
- CRAN compliance fixes.

# musclesyneRgies 1.3.0
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Preparation for CRAN update.

# musclesyneRgies 1.2.5.9009 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved function `CoA` with non-duplicated angles and robust quadrant handling.

# musclesyneRgies 1.2.5.9008 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved robustness of function `classify_kmeans`, which can now deal with trial names containing dots.

# musclesyneRgies 1.2.5.9007 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved robustness of function `filtEMG`.

# musclesyneRgies 1.2.5.9006 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Performance improvement in function `classify_kmeans`
- Use of previously unused variable in function `sMLE`.

# musclesyneRgies 1.2.5.9005 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- The function `synsNMF` is now faster.

# musclesyneRgies 1.2.5.9004 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Back to original `synsNMF` function, with l2-norm applied to weights M and then scaling P accordingly.

# musclesyneRgies 1.2.5.9003 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Faster `synsNMF` function, l2-norm is applied only to weights M.

# musclesyneRgies 1.2.5.9002 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Faster `sMLE` function.
- Faster `CoA` function
- Improved l2-norm in function `synsNMF`.

# musclesyneRgies 1.2.5.9001 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- New function `cossim` allows to calculate the cosine similarity between two vectors.

# musclesyneRgies 1.2.5.9000 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Customisable y-axis limits in `plot_classified_syns`
- Number of clusters can be imposed in `classify_kmeans`
- Modules and primitives are now called muscle weights and activation patterns, respectively.

# musclesyneRgies 1.2.5
### How to install
```
install.packages("musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Removed dependency from `gtools`
- Removed JOSS paper folder
- CRAN release.

# musclesyneRgies 1.2.4
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Increased robustness of `subsetEMG`
- Added tests for `subsetEMG`
- Updated `CITATION` files
- `synsNMF` now saves the synergy-vs-quality data.

# musclesyneRgies 1.2.3
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Removed ISBNs from JOSS paper bibliography.

# musclesyneRgies 1.2.2
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Corrected JOSS paper bibliography.

# musclesyneRgies 1.2.1
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Version ready for JOSS paper after spell check.

# musclesyneRgies 1.2.0
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Version ready for JOSS paper.

# musclesyneRgies 1.1.3.9006 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Cleaned and adjusted code according to `goodpractice::gp()` suggestions (thanks @fabian_s for the hint!)
- Added more tests for `classify_kmeans`, `synsNMF`, `subsetEMG`, `sMLE`, `normEMG`, `Hurst`, `HFD`, `filtEMG`, `plot_classified_syns_UMAP`, `plot_meanEMG`, `plot_rawEMG`.

# musclesyneRgies 1.1.3.9005 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Added to README the possibility to download a full data set from Zenodo
- Added definition of muscle synergies to README
- Added definition of motor modules and motor primitives to README
- Improved documentation of `classify_kmeans`, `HFD` and `Hurst`
- Added test for `classify_kmeans`.

# musclesyneRgies 1.1.3.9004 (development version)
### How to install
```
install.packages("remotes")
remotes::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Updated tests to check for compatibility with single-column cycles.

# musclesyneRgies 1.1.3.9003 (development version)
### How to install
```
install.packages("devtools")
devtools::install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved robustness of EMG pre-processing functions for one-column cycle times.

# musclesyneRgies 1.1.3.9002 (development version)
### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Removed `emg` data frame row names in `RAW_DATA` list
- Updated JOSS paper draft
- `rawdata` can now handle RData files saved with `save()`.

# musclesyneRgies 1.1.3.9001 (development version)
### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Added Open Journals PDF Generator GitHub Action
- First JOSS paper draft.

# musclesyneRgies 1.1.3.9000 (development version)
### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Improved robustness of `normEMG` function.

# musclesyneRgies 1.1.3

### How to install
```
install.packages("musclesyneRgies")
```

### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Faster examples and tests for CRAN
- Removed `classify_NMF` function.

# musclesyneRgies 1.1.2
### How to install
```
install.packages("musclesyneRgies")
```

### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- Removed all progress bars.

# musclesyneRgies 1.1.1

### How to install
```
install.packages("musclesyneRgies")
```

### How to use
README and vignettes are available both on [CRAN](https://CRAN.R-project.org/package=musclesyneRgies) and on [GitHub](https://github.com/alesantuz/musclesyneRgies).

### What's changed
- `musclesyneRgies` is on CRAN!
- Adjusted `test-CoA.R` to pass on `M1mac` and `noLD`.

# musclesyneRgies 1.1.0

### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### How to use
Follow the [README](https://github.com/alesantuz/musclesyneRgies/blob/master/README.md) for a breakdown of the typical workflow.

### What's changed
- This version was submitted to CRAN for checks
- Added tests
- Added `NEWS.md` to track changes to the package
- Function `plot_rawEMG` can now plot muscle activities in custom grid (arguments `row_number` and `col_number`)
- Line thickness and colour can now be specified in function `plot_rawEMG` (arguments `line_size` and `line_col`)
- Added dark mode to `plot_rawEMG`, `plot_meanEMG`, `plot_syn_trials` and `plot_classified_syns`
- Function `plot_syn_trials` partially rewritten with new native pipes `|>` and `lapply` instead of for loops
- Updated `README`
- Added `CITATION.cff` using R package `cffr`
- Simplified all plot functions, which now exports `gtable` objects rather tan saving to file
- Added tests for plot functions
- Added vignettes (`workflow`, `plots`, `analysis` and `pro_tips`).

# musclesyneRgies 1.0.1

### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### How to use
Follow the [README](https://github.com/alesantuz/musclesyneRgies/blob/master/README.md) for a breakdown of the typical workflow.

### What's changed
- Rectification can now be avoided in `filtEMG` if needed with `rectif = "none"`
- Functions `plot_rawEMG` and `plot_meanEMG` partially rewritten with new native pipes `|>` and `lapply` instead of for loops
- Fixed a bug in `synsNMF` that didn't L2-normalise `M` and `P` in iteration "zero".

# musclesyneRgies 1.0.0

### How to install
```
install.packages("devtools")
library(devtools)
install_github("alesantuz/musclesyneRgies")
```
### What's changed
- The short-term maximum Lyapunov exponents of motor primitives can now be calculated with the new function `sMLE`
- Zero- or negative values in relevant matrices are now replaced with the smallest non-zero around twice as fast
- L2-normalisation within `synsNMF` is now 1.5-2x faster
- All code re-styled in [tidyverse style](https://style.tidyverse.org/) using [styler](https://styler.r-lib.org/)
- Fixed a bug in `filtEMG` that didn't allow to avoid low-pass filtering if needed.

# musclesyneRgies 0.9.4-beta

- All code re-styled with tidyverse style using styler, plus new logo!

v1.0.0 coming soon with function for calculating the short-term maximum Lyapunov exponents of motor primitives.

# musclesyneRgies 0.9.3-beta

- Improved robustness of functions `subsetEMG` and `normEMG` when cycle times are given as data frames.

# musclesyneRgies 0.9.2-beta

- This not-so-minor update allows the user to extract synergies with a fixed rank.

# musclesyneRgies 0.9.1-beta

- `musclesyneRgies` is now a R package. Follow the README for a breakdown of the typical workflow. This is the first release, still in beta.

# musclesyneRgies 0.8.7-alpha

- Fixed a bug in the UMAP plots.

# musclesyneRgies 0.8.6-alpha

- Housekeeping and UMAP plots of mean filtered EMG.

# musclesyneRgies 0.8.5-alpha

- UMAP plots of classified synergies are saved in the NMF folder for advanced visualisation of factorisation/classification outcomes.

UMAP details:
McInnes, Leland, John Healy, and James Melville. "Umap: Uniform manifold approximation and projection for dimension reduction." arXiv preprint arXiv:1802.03426 (2018).

R-package:
https://cran.r-project.org/web/packages/umap/

# musclesyneRgies 0.8.4-alpha

- Raw EMG plots are now saved for each trial. The last `raw_pl` (see line 133) seconds of the trial are considered for plots.

# musclesyneRgies 0.8.3-alpha

- When reordering synergies manually during classification, the user can now repeat endlessly the classification if mistakes are made during input.

# musclesyneRgies 0.8.2-alpha

- A bit of housekeeping and now the clusters found by k-means classification are saved in one plot per condition.

# musclesyneRgies 0.8.1-alpha

- The robustness of k-means classification is improved and can now better deal with special cases of clusters with similar CoA and FWHM.

# musclesyneRgies 0.7.3-alpha

- Now the classification method is saved in the SYNS_classified list and can be used by step 4 (graph creation) to save the classification method in the file name.

# musclesyneRgies 0.7.2-alpha

- Now the classification method is saved in the file name when producing graph in step 4.

# musclesyneRgies 0.7.1-alpha

- First public API of `musclesyneRgies`
- Fixed a bug in section 4
