You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A python-based framework for the data-driven analysis of multimodal fNIRS and DOT in naturalistic environments. Developed by the [Intelligent Biomedical Sensing (IBS) Lab](https://ibs-lab.com/) with and for the community.
4
+
1
5
<palign="center">
2
-
<img src="docs/img/IBS_clr_small.png" />
6
+
<img src="docs/img/cedalion_frontpage.png" />
3
7
</p>
4
8
5
-
# cedalion - fNIRS analysis toolbox
6
-
7
-
To avoid misinterpretations and to facilitate studies in naturalistic environments, fNIRS measurements will increasingly be combined with recordings from physiological sensors and other neuroimaging modalities.
8
-
The aim of this toolbox is to facilitate this kind of analyses, i.e. it should allow the easy integration of machine learning techniques and provide unsupervised decomposition techniques for
9
-
multimodal fNIRS signals.
10
9
11
10
## Documentation
12
11
13
12
The [documentation](https://doc.ibs.tu-berlin.de/cedalion/doc/dev) contains
14
-
[installation instructions](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/getting_started/installation.html) as
15
-
well as several [example notebooks](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/examples.html)
16
-
that illustrate the functionality of the toolbox.
17
-
For discussions and help you can visit the [cedalion forum on openfnirs.org](https://openfnirs.org/community/cedalion/)
18
-
19
-
20
-
## Development environment
21
-
22
-
To create a conda environment with the necessary dependencies run:
[installation instructions](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/getting_started/installation.html), an [API reference](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/api/modules.html) as
14
+
well as many [example notebooks](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/examples.html) that illustrate the functionality of the toolbox.
15
+
16
+
17
+
18
+
## Installation
19
+
20
+
Please refer to the [installation instructions](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/getting_started/installation.html) in the documentation for installing Cedalion
21
+
on you computer.
22
+
23
+
To test the [example notebooks](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/examples.html) without installing Cedalion locally, you can also [run the notebooks on Google Colab](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/getting_started/colab_setup.html).
24
+
25
+
## Versions
26
+
The `main` branch acts as a relase branch, i.e. the latest commit there is the most
27
+
current release. Development happens in the `dev` branch. Please refer to the [CHANGELOG](https://doc.ibs.tu-berlin.de/cedalion/doc/dev/CHANGELOG.html) for a release
28
+
history and current differences between the `dev` and `main` branches.
29
+
30
+
31
+
## Forum
32
+
33
+
For discussions and help please visit the [Cedalion forum on openfnirs.org](https://openfnirs.org/community/cedalion/)
34
+
55
35
56
36
## How to cite Cedalion
57
37
A paper for the toolbox is currently in the making. If you use this toolbox for a publication in the meantime, please cite us using GitHub's "Cite this repository" feature in the "About" section. If you want to contact us or learn more about the IBS-Lab please go to https://www.ibs-lab.com/
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,43 @@
3
3
## Unreleased changes (available on the `dev` branch)
4
4
5
5
### Added
6
+
- Added the function `cedalion.geometry.landmarks.normalize_landmarks_labels` that case-insensitively maps common landmark labels to canonical names, by [Mohammad Orabe](https://github.com/orabe). ([#132](https://github.com/ibs-lab/cedalion/pull/132))
7
+
- Added functionality and examples for constrained ICA methods (arc-ERBM, arc-EBM), by [Jacqueline Behrendt](https://github.com/jackybehrendt12). ([#133](https://github.com/ibs-lab/cedalion/pull/133))
6
8
- An example notebook for ICA source extraction was added, by [Jacqueline Behrendt](https://github.com/jackybehrendt12).
- Added `TwoSurfaceHeadmodel.scale_to_headsize` and `TwoSurfaceHeadmodel.scale_to_landmarks` to adjust the head model's size to the head circumferences or digitized landmarks, respectively. By [Eike Middell](https://github.com/emiddell).
11
+
- The factory method `cedalion.dot.get_standard_headmodel` to construct the `TwoSurfaceHeadModel` of the standard Colin27 and ICBM-152 heads was added, by [Eike Middell](https://github.com/emiddell).
12
+
- Added `cedalion.xrutils.dot_dataarray_csr` for matrix products between `xr.DataArray`
13
+
and `scipy.sparse` arrays, by [Eike Middell](https://github.com/emiddell).
14
+
- Added `cedalion.geometry.landmarks.normalize_landmarks_labels` to map alternative landmark names (e.g., "nasion", "left ear", "nz") to their canonical 10-10 system labels (e.g. Nz, LPA). The function handles now case-insensitive matching and supports common naming conventions. Usage: `geo3d = normalize_landmarks_labels(geo3d)` before calling registration or plotting functions, by [Mohammad Orabe](https://github.com/orabe). ([#84](https://github.com/ibs-lab/cedalion/issues/84))
8
15
### Changed
16
+
- The package `cedalion.sigproc.motion_correct` was renamed to `cedalion.sigproc.motion`.
17
+
- The ICA-EBM and ICA_ERBM implementations were moved into `cedalion.sigdecomp.unimodal`.
18
+
- The class `cedalion.dot.ForwardModel` accepts also head models that are not in
19
+
voxel space. They will be transformed to voxel space internally.
20
+
- Refactored `cedalion.plots` into `cedalion.vis` and its subpackages. This cleans up the code structure and should help with discovering existing functions. The package `cedalion.vis.blocks` emphasizes building blocks for larger visualizations. Please refer to `examples/plots_visualization/12_plots_example.ipynb` to get an overview. Importing `cedalion.plots` will throw a deprecation warning to trigger adoption. By [Eike Middell](https://github.com/emiddell).
21
+
- Renamed `LabeledPointCloud` to `LabeledPoints`.
22
+
- Split up the `.nirs` submodule into `.nirs.cw`, `.nirs.fd` and `.nirs.td`.
23
+
- Merged the submodules `cedalion.datasets` and `cedalion.data`. All functions to
24
+
access example datasets are now available under `cedalion.data`.
25
+
- The fiducial landmarks of the standard Colin27 and ICBM-152 heads changed. Using the landmark builder 10-10 coordinates were calculated for both heads. These are now
26
+
available when head models are created with `get_standard_headmodel`. The example
27
+
notebook `48_headmodel_landmarks_verification.ipynb` documents the origin of all
28
+
landmarksand quantitatively compares the output of the LandmarkBuilder to published
29
+
coordinates. By [Eike Middell](https://github.com/emiddell).
30
+
- Added the parameter `mode` to `TwoSurfaceHeadModel.align_and_snap_to_scalp` to switch
31
+
between constrained affine transformations (translation, rotation, isotropic scaling)
32
+
and unconstrained affine transformations (also anisotropic scaling, shearing and reflection). The default behaviour from `align_and_snap_to_scalp` was changed from
33
+
constrained to unconstrained affine transformations.
34
+
- The image reconstruction methods were refactored to offer more regularization methods
35
+
(including spatial basis functions) as well as direct and indirect reconstructions and to provide a simpler interface to the user. All functions are now located under `cedalion.dot`. By [Laura Carlton](https://github.com/lauracarlton), [Alexander von Lühmann](https://github.com/avolu) and [Eike Middell](https://github.com/emiddell). ([#130](https://github.com/ibs-lab/cedalion/pull/86))
36
+
- For the Colin27 and ICBM-152 heads the label for the coordinate reference system was changed from `'aligned'` to `'mni'`.
9
37
- The ninja HD and UHD cap coordinates were changed from a right-handed to a left-handed
10
38
coordinate system, by [Nils Harmening](https://github.com/harmening). ([#110](https://github.com/ibs-lab/cedalion/pull/110))
11
39
- Changed the names of several motion correction algorithms from `motion_correct.motion_correct_X`
12
40
to `motion_correct.X`. Argument names were made PEP8 compliant. The example `22_motion_artefacts_and_correction` was improved. By [Eike Middell](https://github.com/emiddell).
41
+
- The function `cedalion.vis.anatomy.plot_montage3D` now accepts a `landmarks` parameter to specify which landmarks should be highlighted. Pass `None` (default) to show all available canonical registration landmarks (e.g. Nz, Iz, LPA, RPA, Cz), a list of landmark names to show specific ones, or an empty list to show none, by [Mohammad Orabe](https://github.com/orabe). ([#84](https://github.com/ibs-lab/cedalion/issues/84))
42
+
- Included t-stat thresholding in `cedalion.vis.misc.plot_probe_gui`, by [Shannon Kelley](https://github.com/shankell212). ([#131](https://github.com/ibs-lab/cedalion/pull/131))
13
43
14
44
15
45
### Deprecated
@@ -19,6 +49,10 @@ to `motion_correct.X`. Argument names were made PEP8 compliant. The example `22_
19
49
- Fixed a bug in motion_correct_wavelet affecting the selection of coefficients for IQR-based thresholding. The issue caused unintended suppression of high-frequency components, particularly near the end of recordings. Changed by [Eike Middell](https://github.com/emiddell).
20
50
- Fixed a bug in the stopping criterion of motion_correct.pca_recurse caused by an inverted
21
51
boolean mask of motion artifacts, by [Eike Middell](https://github.com/emiddell).
52
+
- Fixed an issue with constant regressors when fitting a GLM using the AR-IRLS method. The autoregressive filter used to
53
+
account for serial correlations was not properly applied to them. The fix ignores samples at the beginning of the time
54
+
series until the filter is initialized, by [Eike Middell](https://github.com/emiddell).
55
+
22
56
23
57
## Version 25.1.0 (2025-06-22)
24
58
@@ -30,7 +64,7 @@ All dependencies have been updated to recent versions. Please rebuild the enviro
30
64
- Spatial and measurement noise regularization options in image reconstruction, by [David Boas](https://github.com/dboas). ([#86](https://github.com/ibs-lab/cedalion/pull/86))
31
65
- Improved import of optode and electrode coordinates, by [Nils Harmening](https://github.com/harmening). ([#95](https://github.com/ibs-lab/cedalion/pull/95))
32
66
- The interfaces for the fluence and sensitivity computations were changed to allow out-of-core computations, by [Eike Middell](https://github.com/emiddell).
33
-
- Precomputed sensitivities for all example datasets, including the ninjaCap whole head probe, are availabe in cedalion.datasets, by [Eike Middell](https://github.com/emiddell).
67
+
- Precomputed sensitivities for all example datasets, including the ninjaCap whole head probe, are availabe in cedalion.data, by [Eike Middell](https://github.com/emiddell).
34
68
35
69
- Make all example notebooks run on Google Colab integration, by [Josef Cutler](https://github.com/jccutler). ([#96](https://github.com/ibs-lab/cedalion/pull/96))
0 commit comments