Closed mcaffini closed 8 years ago
I see no problem with asking to add a fNIRS channel type to the FIF tags and making the appropriate adjustments in our code. @agramfort @jaeilepp do you agree?
@mcaffini do you have some small data file that you can share? What format is it?
Sure, why not.
Can you ask the Neuromag folks?
fine with me.
Dear all, sorry for the late reply. @Eric89GXL I use the ISS Imagent. fNIRS raw data come from different technologies (continuous wave, frequency domain, time domain) and each instruments has its own format, but they all eventually get transformed into oxyhemoglobin (HbO) and deoxyhemoglobin (HbR) concentrations (this transformation process is different for different technologies). Maybe we skip this step and we directly start from a numpy array containing the concentrations? This way we would only need two tags like fNIRS-HbO and fNIRS-HbR...
Maybe we skip this step and we directly start from a numpy array containing the concentrations?
Sounds reasonable. We probably don't want to provide the 'preprocessing' steps for this transformation anyway.
Actually, it sounds like we would need a tag for fNIRS channel type and for two units (HbO and HbR). Am I right?
What do you mean with unit? If you have in mind each channel having two independent tracks/signals (HbO and HbR), that sounds good!
Physical units, preferably of the SI variety -- for EEG it's V (commonly viewes as uV) and for MEG it's T and T/m (more commonly viewed as fT / fT/cm).
OK, then for fNIRS is molar concentration (M=mol/l=mol/dm3, usually as μM, proper SI unit would be mol/m3). Each channel gives two independent signals (HbO and HbR) with the same unit (μM). How do we refer to each one separately?
Ok, yeah. I'm thinking that maybe we need just one channel type with two kinds (like we have with MEG channels mag and grad). Makes sense? Although it might be the easier to have just two types. Not sure which is better.
One type with two kinds makes more sense to me. That way you can pick all HbO with 'hbo', all HbR with 'hbr', or both with 'fnirs' (no caps to be consistent with the other tags?), the same way you pick magnetometers with 'mag', gradiometers with 'grad', ... or everything MEG with 'meg'. Adding total hemoglobin (HbT or hbt) is trivial (but not necessary) being the algebraic sum of HbO and HbR.
In http://martinos.org/mne/stable/generated/mne.pick_types.html would it look like this?
[...] meg : bool or string If True include all MEG channels. If False include None. If string it can be 'mag', 'grad', 'planar1' or 'planar2' to select only magnetometers, all gradiometers, or a specific type of gradiometer.
fnirs: bool or string If True include all fNIRS channels. If False include None. If string it can be 'hbo', 'hbr', 'hbt' to select only oxyhemoglobin, deoxyhemoglobin, or total hemoglobin (algebraic sum of hbo and hbr). [...]
yes that sounds good to me
@jaeilepp what did we converge on regarding fif constants?
No response from Elekta yet.
Here they are:
fnirs_hbo 300 "FNIRS oxyhemoglobin"
fnirs_hbr 301 "FNIRS deoxyhemoglobin"
fnirs 1100 "Functional near-infrared spectroscopy"
FIFF.FIFFV_FNIRS_CH = 1100
cool
thx @jaeilepp
let's get this merged
@mcaffini there is a new public dataset with EEG + NIRS:
https://www.depositonce.tu-berlin.de/handle/11303/6271
maybe a good way to have a first example of NIRS with MNE?
Thanks @agramfort very interesting, I'll give it a shot. I have completed my fNIRS analysis with MNE and I have also coded the source space reconstruction using a Monte Carlo method for the forward solution. Still interested in a tutorial for the MNE website?
Yes, this sounds really cool. Go for it!
On Sat, Apr 15, 2017 at 6:30 AM Matteo Caffini notifications@github.com wrote:
Thanks @agramfort https://github.com/agramfort very interesting, I'll give it a shot. I have completed my fNIRS analysis with MNE and I have also coded the source space reconstruction using a Monte Carlo method for the forward solution. Still interested in a tutorial for the MNE website?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mne-tools/mne-python/issues/3539#issuecomment-294285017, or mute the thread https://github.com/notifications/unsubscribe-auth/AB0fikyOd7OhQNVnt9zU_pSM7qC7QnNPks5rwJwogaJpZM4JvR-h .
Thanks @agramfort https://github.com/agramfort very interesting, I'll give it a shot. I have completed my fNIRS analysis with MNE and I have also coded the source space reconstruction using a Monte Carlo method for the forward solution. Still interested in a tutorial for the MNE website?
I don't know about the forward code I would to see it but basic raw data viz would already be neat I think.
I prepared a Jupyter notebook tutorial with basic fNIRS data analysis, here. Of course comments and suggestions are more then welcome. :-)
we cannot really comment code with a rendered notebook
could be done with public data available from a website so we can write a data fetcher? maybe not start from a custom .mat file which generates a lot of boiler plate code which clutters the example/tutorial
@agramfort the notebook as well as the npy file with data should be downloadable for testing from my repo. The provided dataset comes from my lab and is real data, but we can change dataset and fetch it online, no problem. Btw, I don't see any boilerplate code (apart from numpy.load :-D).
can you make a tutorial script in a PR so we can comment line by line?
Hi all,
I successfully tested some of the MNE Python methods and classes in my fNIRS data processing workflow. I wonder if anyone else is interested in this and whether it's worth to write some code in this direction. I can also swallow the bitter pill and keep labeling my fNIRS data as "eeg", but maybe we could seize the day to start something useful. Happy to share more of what I did if needed.
Let's discuss it! :-)