# \[ANN\] NeuroAnalyzer.jl

**URL:** <https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574>\
**Category:** Biology, Health, and Medicine\
**Tags:** package\
**Created:** [October 31, 2022, 5:12pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574 "2022-10-31T17:12:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [October 31, 2022, 5:12pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/1 "2022-10-31T17:12:46Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.22.11 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- user-managed preferences
- virtual channels
- progress meter
- continuous and discrete wavelet transformations
- Hilbert transformation envelope
- improved connectivity plot
- proper handling of negative frequencies in FFT spectrum
- Jupyter notebook
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [December 1, 2022, 8:19am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/2 "2022-12-01T08:19:26Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.22.12 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- plotting functions were completely rewritten
- new plot types added (multi-channel PSD, `eeg_plot_stats()`)
- import BrainVision
- tutorials at [https://neuroanalyzer.org/#tutorials](https://neuroanalyzer.org/#tutorials)
- eeg\_\*() functions now operate on specified channels
- improved auto-detection of bad channels/epochs
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [December 30, 2022, 11:13am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/3 "2022-12-30T11:13:35Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.01 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- automated epoching by event markers
- ERP: create, plot
- interpolate EEG channel using linear regression
- continuous integration (CI): tests, documentation, website
- more tutorials
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [February 1, 2023, 10:04am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/4 "2023-02-01T10:04:09Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.02 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- import Philips Alice4 polysomnography EDF (non-standard, multi-sampling rate)
- user defined number of Slepian tapers for PSD
- processing of electrode locations updated, added rotating and scaling
- code cleanup
- more tutorials
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [March 3, 2023, 9:58am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/5 "2023-03-03T09:58:32Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.3 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- import: EEGLAB .set files (WIP)
- import: CSV files
- import: GEO electrode locations
- process: transform using surface Laplacian
- process: improved FIR filter (automated filtering window)
- process: improved polynomial filter
- plot: 3D dipole plot (WIP)

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [March 28, 2023, 7:38pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/6 "2023-03-28T19:38:33Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.4 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- complete rewriting of NeuroAnalyzer functions
- new architecture allows easy expanding for new types of neurophysiological data
- new data types: EEG, NIRS, MEG
- new channel types (csd, nirs, mag, grad, meg)
- import: NIRS/SNIRF/NIRX files (NIRS)
- import: MEG FIFF files (very WIP)
- process: convert intensity to optical density (NIRS)
- process: convert optical density to HbO/HbR/HbT concentrations (NIRS)
- plot: new way of plotting channels of different types
- plot: 2D dipole plot (WIP)
- unit tests were completely rewritten

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [April 29, 2023, 10:16am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/7 "2023-04-29T10:16:20Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.5 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- new data type: ERP
- import: GDF files
- import: improved import\_set() (epochs, locs, markers)
- import: improved import\_bv()
- import: import\_edf() accepts multi-sampling rate files
- analyze: amp\_at() and avgamp\_at() for ERPs
- edit: channel2marker()
- utils: to\_df()
- time segments are in seconds

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [May 30, 2023, 12:27pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/8 "2023-05-30T12:27:01Z")

</div>

NeuroAnalyzer.jl: EEG/MEG/NIRS/NIBS analysis with Julia

v0.23.6 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- edit: join() and join!()
- analyze: acor(), xcor(), acov(), xcov()
- Julia ≥ 1.9.0 is now required
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [June 29, 2023, 10:19am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/9 "2023-06-29T10:19:11Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.7 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- plot: preview(): interactive (Gtk-based) preview and edit epoched/continuous signal
- process: remove\_powerline()
- process: remove\_pops()
- initial support for ECoG data

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [July 31, 2023, 9:20am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/10 "2023-07-31T09:20:57Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.8 is out: [AdamWysokinski/NeuroAnalyzer.jl: Neurophysiological data analysis with Julia - NeuroAnalyzer.jl - Codeberg.org](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

Major changes:

- license changed to 2-clause BSD
- analysis: heart rate variability hrv\_detect(), hrv\_analyze()
- process: ica\_decompose(), ica\_reconstruct(), ica\_remove()
- plot: plot\_icatopo()
- plot: plot(obj1, obj2)
- plot: preview(obj1, obj2)
- locs: locs\_rotx(), locs\_roty(), locs\_rotz()
- tested against upcoming Julia 1.10 release
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [August 31, 2023, 1:04pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/11 "2023-08-31T13:04:19Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.9 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- updated interactive editor
- plot: iplot(), ipsd(), ispectrogram()
- plot: plot PSD and spectrograms for a time segment
- initial SEEG support
- IO: import\_montage()
- IO: import\_nwb() (WIP)
- created lite branch (with graphical functions removed)
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [September 30, 2023, 2:47pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/12 "2023-09-30T14:47:17Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.10 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- gui: `iedit_ch()` – interactive channel and locations editor
- gui: `iview_plot()` – interactive plot viewer
- gui: `iplot_locs3d()` – interactive 3D locs preview
- gui: improved `iview()`, `iplot()`, `ipsd()`, `ispectrogram()`
- locs: improved locs architecture and functions
- plot: rewritten `plot_locs()`, `plot_topo()`, `plot_weights()` and `plot_connections()` functions – locs can be projected in 3 planes (XY, XZ and YZ)
- plot: `add_locs()` – locs preview can be placed over another plot
- analysis: improved methods of calculating PSD and spectrogram
- fix: FFTW provider on non-Intel/AMD architectures
- plot: GLMakie dependencies removed – significantly reduced startup time
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [October 31, 2023, 10:46am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/13 "2023-10-31T10:46:09Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.11 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- gui: `iplot_icatopo()` – interactive ICA viewer
- gui: `iview()` plots components and two NEURO objects
- gui: `iedit()` snapping to time points
- edit: `delete_optode()`
- locs: `load_locs()` generates locs for EMG/EOG/M1/M2/A1/A2 electrodes
- new data type: sensors
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [November 30, 2023, 12:02pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/14 "2023-11-30T12:02:35Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.23.12 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- locs: `locs_generate()` – generate spherical coordinates according to 10/10 system
- io: `import_npy()`
- statistics: `ci_median()`, `ci_r()`, `ci2z()`, `r_test()`
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [December 29, 2023, 9:24am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/15 "2023-12-29T09:24:29Z")

</div>

[NeuroAnalyzer.jl](https://neuroanalyzer.org): Neurophysiological data analysis with Julia

v0.24.1 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- new data type: MEP
- io: `import_cnt()`
- io: `import_duomag()`
- io: `import_thymatron()`
- io: `load_locs_dat()`
- io: `load_locs_asc()`
- io: detect montage when importing EEG files
- plots: `plot_mep()`
- analysis: `mep_peaks()`
- process: improved artifacts detection (using `tkeo()`)
- process: rename channels when referencing
- gui: `iview()` use mouse wheel to scroll channels
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [January 30, 2024, 7:34pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/16 "2024-01-30T19:34:31Z")

</div>

NeuroAnalyzer.jl: Neurophysiological data analysis with Julia

v0.24.2 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- NeuroAnalyzer is registered in the Julia general registry
- new data types: iEEG, sEEG, ECoG
- new channel types: `ieeg`, `seeg`, `ecog`
- io: `import_ncs()`
- io: `import_xdf()`
- gui: `itopo()`
- gui: `iselect_ts()`
- plots: `plot_ci()`
- analysis: `gradient()`
- analysis: biased or unbiased auto-/cross- correlation/covariance
- edit: `sort_epochs()`
- statistics: many new statistical functions
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [February 27, 2024, 4:57pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/17 "2024-02-27T16:57:34Z")

</div>

[NeuroAnalyzer.jl](https://juliahub.com/ui/Packages/General/NeuroAnalyzer): Neurophysiological data analysis with Julia

v0.24.3 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- submodule NeuroRecorder added – record neurophysiological data
- recorder: `iftt()` – Finger Tapping Test
- gui: `iselect_seg()` – select matrix segment
- analyze: `hjorth()`
- analyze: `peak_frq()`
- analyze: `sef()` – spectral edge frequency
- analyze: `phsd()` – phase spectral density
- analyze: `axc2frq()` – detect peaks in auto-/cross- correlation/covariance and transform them into frequencies
- plot: `plot_phsd()`
- statistics: `seg_extract()` – extract rectangular or circular segment from a matrix
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [April 1, 2024, 1:13pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/18 "2024-04-01T13:13:45Z")

</div>

[NeuroAnalyzer.jl](https://juliahub.com/ui/Packages/General/NeuroAnalyzer): Neurophysiological data analysis with Julia

v0.24.4 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- NeuroAnalyzer has been added to [JuliaHealth](https://github.com/JuliaHealth)
- submodule NeuroTester added – design and run psychological studies
- submodule NeuroStim added – process and model neurostimulation techniques
- recorder: `ftt()` – Finger Tapping Test (CLI mode)
- analyze: `cpsd()` – cross-power spectral density
- analyze: `pacf()` – partial auto-correlation
- analyze: `coherence()`
- plot: `plot_coherence()`
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [May 1, 2024, 9:30pm UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/19 "2024-05-01T21:30:36Z")

</div>

[NeuroAnalyzer.jl](https://juliahub.com/ui/Packages/General/NeuroAnalyzer): Neurophysiological data analysis with Julia

v0.24.5 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- process: `mlinterpolate_channel()` – interpolate bad channel using MLJ regressor
- process: use reference epochs for `mlinterpolate_channel()` and `lrinterpolate_channel()`
- edit: `subepoch()` – extract sub-epochs of reduced time range
- plugins: `na_plugin_install()` – plugins can be installed from a local .zip/.tar.gz archive or using Git repository URL
- code cleanup
- many minor additions and fixes

---

<div class="post-metadata">

**Author:** ![AdamWysokinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamwysokinski/32/206422_2.png) [@AdamWysokinski](https://discourse.julialang.org/u/AdamWysokinski)\
**Post date:** [May 31, 2024, 5:37am UTC](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574/20 "2024-05-31T05:37:24Z")

</div>

[NeuroAnalyzer.jl](https://juliahub.com/ui/Packages/General/NeuroAnalyzer): Neurophysiological data analysis with Julia

v0.24.6 is out: [https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl](https://codeberg.org/AdamWysokinski/NeuroAnalyzer.jl)

- recorder: `eda()` and `ieda()` – record electrodermal activity using GSR sensor and Arduino via serial port
- recorder: `ftt()` and `iftt()` – can record data from a console attached to Raspberry Pi via GPIO pin or to Raspberry Pi/Arduino via serial port
- edit: `add_channel()` and `add_chanel!()` – channel(s) may be added to an object already containing channels
- analyze: `symmetry()` – calculate signal symmetry
- misc: `iplay()` and `play()` – play signal as audio file
- code cleanup
- many minor additions and fixes

[Next page](https://discourse.julialang.org/t/ann-neuroanalyzer-jl/89574.md?page=2)
