Skip to content

JuliaHealth/NeuroAnalyzer.jl

Repository files navigation

NeuroAnalyzer.jl

DOI: 10.5281/zenodo.7372648 status-badge docs-badge tuts-badge license-badge JOSS-status

NeuroAnalyzer is a Julia toolbox for analyzing neurophysiological data. Currently it covers importing, editing, processing, visualizing, and analyzing EEG, MEP and EDA data. Preliminary functionality is also available for MEG, NIRS, ECoG, SEEG and iEEG recordings.

Various methods for modeling non-invasive brain stimulation protocols (tDCS/tACS/tRNS/tPCS/TMS/TUS/INS) will also be implemented (NeuroStim submodule). Another submodule, NeuroTester, will allow designing and running psychological studies. Certain neurophysiological data can be recorded using NeuroRecorder submodule.

NeuroAnalyzer contains a set of separate (high- and low-level) functions. Some interactive graphical user interface (GUI) functions are also available. NeuroAnalyzer functions can be combined into an analysis pipeline, i.e. a Julia script containing all steps of your analysis. This, combined with processing power of Julia language and easiness of distributing calculations across computing cluster, will make NeuroAnalyzer particularly useful for processing large amounts of neurophysiological data.

NeuroAnalyzer is a collaborative, non-commercial project, developed for researchers in psychiatry, neurology and neuroscience.

Every contribution (bug reports, fixes, new ideas, feature requests or additions, documentation improvements, etc.) to the project is highly welcomed.

NeuroAnalyzer website is located at https://neuroanalyzer.org.

You may also follow NeuroAnalyzer on Mastodon.

Note: this toolbox is under active development and is subject to change without prior notice.

Quickstart

Add NeuroAnalyzer from the Pkg REPL: pkg> add NeuroAnalyzer.

Documentation

Documentation is available in the following formats:

Changelog and commit details are available at https://neuroanalyzer.org/changelog.html.

Tutorials

NeuroAnalyzer tutorials are available at https://neuroanalyzer.org#tutorials.

Requirements

See https://neuroanalyzer.org/requirements.html for more details.

What's next

This roadmap of the future developments of NeuroAnalyzer is neither complete, nor in any particular order.

Performance

For testing performance between individual machines, a complete set of benchmarks is available.

Plugins (extensions)

See https://neuroanalyzer.org/plugins.html for more details.

License

This software is licensed under The 2-Clause BSD License.

Financial support

If you would like to support the project financially, we have the Liberapay account: Donate using Liberapay

How to Cite

If you use this toolbox, please acknowledge us by citing our paper.

Contributing

Every contribution (bug reports, fixes, new ideas, feature requests or additions, speed optimization, better code, documentation improvements, typos, etc.) to the project is highly welcomed.

You are very welcome to raise issues and start pull requests. Bugs, suggestions and questions should be reported using the Codeberg AdamWysokinski/NeuroAnalyzer.jl (preferred method) or Github JuliaHealth/NeuroAnalyzer.jl issues page.

If you notice any bugs, such as crashing code, incorrect results or speed issues, please raise a Codeberg/GitHub issue. Before filing an issue please:

  • check that there are no similar existing issues already
  • check that your versions are up to date

If you want to report a bug, include your version and system information, and all relevant information. If possible, condense your bug into the shortest example possible that the maintainers can replicate, a so called "minimal working example" or MWE.

If you want to suggest a new feature, for example functionality that other plotting packages offer already, include supplementary material such as example images if possible, so it's clear what you are asking for.

When opening a pull request, please add a short but meaningful description of the changes/features you implemented. Moreover, please add tests (where appropriate) to ensure that your code is working as expected.

For each feature you want to contribute, please file a separate PR to keep the complexity down and time to merge short. Add PRs in draft mode if you want to discuss your approach first.

Contributors

Below is the list of contributors and their affiliations.

Adam Wysokiński ORCID

Medical University of Lodz