A tool for quick and easy preprocessing and visualization of fNIRS data
Project description
neuropipeline
neuropipeline is a tool for quick and easy to use preprocessing and visualization of Functional Near-Infrared Spectroscopy (fNIRS) data.
Usage
from neuropipeline import fNIRS
import neuropipeline.fnirs.visualizer as nplv
fnirs = fNIRS("path/to/your/datafile.snirf")
fnirs.preprocess(optical_density=True,
hemoglobin_concentration=True,
motion_correction=True,
temporal_filtering=True,
detrending=True,
normalization=False # Only use normalization if necessary
)
# WARNING: Be cautious not to overwrite any data you want to keep.
fnirs.write_snirf("path/to/your/processed_file.snirf")
nplv.open(fnirs)
Analysis Example: Heel Stimulation
These plots display data from a single subject during a robotic heel-stimulation experiment, showing the Time Series, Spectrogram, and Frequency (PSD/FFT) for two different scenarios. The vertical red dashed lines indicate "markers," which show exactly when a task started or when the robot moved. In this experiment, a robot stimulated the heel 6 times. In the Supination case (left), we see a clear success: oxygenated hemoglobin (HbO) increases right when the stimuli begin. This is supported by the spectrogram, where we see "spikes" of activity at 0.025 Hz (the neurogenic band) that align perfectly with the robot's movements. This confirms the pipeline has successfully captured brain activity in the sensory cortex. In contrast, the Pronation case (right) shows consistently low activity in the spectrogram, and while the time series has some small peaks, they do not show the same clear correlation with the stimulation.
| Supination | Pronation |
Installation
python -m pip install neuropipeline
Advanced Usage
from neuropipeline import fNIRS, fNIRSPreprocessor
from neuropipeline.fnirs import visualizer as nplv
fnirs = fNIRS("path/to/your_file.snirf")
# Advanced Preprocessing Configuration
pp = fNIRSPreprocessor(fnirs) # Create preprocesssor
pp.set_optical_density(True) # Configure
pp.set_hemoglobin_concentration(True)
pp.set_motion_correction(True)
pp.set_temporal_filtering(True, lowcut=0.01, highcut=0.2, order=15)
pp.set_detrending(True)
pp.set_normalization(False)
pp.print() # Inspect the settings
fnirs.preprocess(pp) # Pass the preprocesser only
fnirs.write_snirf("path/to/your_new_file.snirf") # WARNING : Dont overwrite data you want to keep
nplv.set_spectrogram_limits(0.0, 0.2) # The spectrogram will show frequencies from 0 to 0.2 Hz
nplv.set_marker_dictionary({2:"Rest", # Display as text rather than indices
3:"Stimuli A",
4:"Stimuli B"})
nplv.set_spectrum_mode("FFT") # What type of spectrum to show: "FFT" or "PSD"
# NOTE : The wavelet method is computationally intensive
# Try "STFT" first, then "Wavelet" if needed
nplv.set_spectrogram_method("Wavelet")
nplv.open(fnirs)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neuropipeline-0.2.2.tar.gz.
File metadata
- Download URL: neuropipeline-0.2.2.tar.gz
- Upload date:
- Size: 40.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2108279d04a4a67bb564cddf78bead765657796c3401cfde667b80226848ac63
|
|
| MD5 |
e1a942c7467f8dcb2a763693c1e46c58
|
|
| BLAKE2b-256 |
631529ea393be6574a5d81095fe5c22a757fb10f24f1af6ad82a3d0014241992
|
File details
Details for the file neuropipeline-0.2.2-py3-none-any.whl.
File metadata
- Download URL: neuropipeline-0.2.2-py3-none-any.whl
- Upload date:
- Size: 42.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
159cf68e3e0d4e89ef9238147367cedc3532eb782e79c1ac6b2c029a1d09a4a0
|
|
| MD5 |
229bf500e61a57013fc39b2d8e55243d
|
|
| BLAKE2b-256 |
1b4148ad3d96b66f069a2f8c3949fdc966d3c3e6cf67412a761ea2de0101b598
|