open-discussion
open-discussion > RE: Shared NIRS Data Format - SNIRF
Oct 26, 2012 11:10 AM | Blaise Frederick
RE: Shared NIRS Data Format - SNIRF
Originally posted by Alessandro Torricelli:
The corresponding variable ml (measurement list) is an array structure that has the size <1> with fields
ml(1).SourceIndex =1
ml(1).DetectorIndex =1
ml(1).WavelengthIndex =1
ml(1).DataType =1
So, where are the data for the second wavelength??
Maybe you are giving to channels a different meaning. Maybe channels does not specifically refer to optodes, but more generally to acquired data? So = x ??
In this case, in the simple example of 1 channel and 2 wavelengths, the dimensions of the variable d are <100>x<2>, where d(:,1) is the first wavelength and d(:,2) the second wavelength?
Yes, this is the way it is stored.
Providing a sample of data could help to better understand the proposed format.
Agreed. We will give some typical example cases when we fill
out the standard a bit - that's generally much clearer. We
just wanted to get the formal standard set first.
2) Time domain fNIRS: How to treat time domain data?
In time domain fNIRS systems based on the TCSPC technique the raw data are the distributions of time of flight (DTOFs) at two or more wavelengths. Microscopic time resolution is typically 10ps, and 512 or 1024 channels are acquired, therefore 5 or 10 ns are recorded. It is probably unreasonable to store all this data in the standard format, therefore preprocessing should be done.
By preprocessing the DTOF we can provide the intensity at selected time-gates. To enhance the contribution from deep layers (brain cortex) and reject the disturbing effect of superficial layers (scalp, skull), late and early time-gates are needed. Therefore the minimum number of time-gates is 2. Since the choice of the early and late time-gates may depend on the specific experiment, we store more than 2 gates, typically 10 time-gates with width of 400ps and variable delays (from 0 to 3.2ns in steps of 400ps). An 11th time gate corresponding to total number of photons (i.e. sum of photons in all time-gates, a pseudo CW measurement) is sometimes stored or calculated.
By a different preprocessing of the DTOF, we can provide the moments (1st, 2nd, and 3rd, corresponding to number of photons, mean time of flight and variance).
Suppose we have a 1 channel time domain system operating at 2 wavelengths and suppose we want to store 2 time gates (early and late).
The dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are <100> x <4>, where d(:,1) is the first wavelength-first gate, d(:,2) the second wavelength-first gate, d(:,3) is the second wavelength-second gate, and d(:,4) the second wavelength-second gate.
If we want to store 11 time gates (i.e. 10 + CW), then the dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are <100> x <22>. Maybe the data referring to the pseudoCW time gate can be recorded before all other time gates (it seems to me more elegant and efficient: when using moments the 1st data is the pseudoCW as well).
In general the dimensions of the variable d (actual raw data) are x , where
= x x ,
or
= x x .
I'm going to have to defer to David on this - I don't do TOF
measurements, so I'm really not the best person to comment on this,
but what you said sounds reasonable, and I think that was what we
were planning. We haven't yet settled on how to handle
derived data (such as pseudo CW, or even oxy- and deoxy- hemoglobin
concentration), as that gets complicated rather quickly, so we
wanted some input from others before wading into that. Also,
if I understand your second case, this also seems to get into
handling multiple timebases in the same file, which we were
thinking would require the extended format.
That's all.
Looking forward to seeing you in London.
And you! See you this evening.
Blaise
Alessandro Torricelli
Politecnico di Milano
Italy
Hi I have one general comment and a specif
comment for time domain data.
1) General: It is not clear to me the exact meaning of the variable .
In my understanding channels means optodes.
Then it is not clear to me how data from different wavelengths are stored in the variable d.
Suppose we have a 1 channel CW system operating at 2 wavelengths.
The dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are x that is <100> x <1>.
Actually, in this case d will be <100> x <2>, one
timecourse for each wavelength1) General: It is not clear to me the exact meaning of the variable .
In my understanding channels means optodes.
Then it is not clear to me how data from different wavelengths are stored in the variable d.
Suppose we have a 1 channel CW system operating at 2 wavelengths.
The dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are x that is <100> x <1>.
The corresponding variable ml (measurement list) is an array structure that has the size <1> with fields
ml(1).SourceIndex =1
ml(1).DetectorIndex =1
ml(1).WavelengthIndex =1
ml(1).DataType =1
So, where are the data for the second wavelength??
Maybe you are giving to channels a different meaning. Maybe channels does not specifically refer to optodes, but more generally to acquired data? So = x ??
In this case, in the simple example of 1 channel and 2 wavelengths, the dimensions of the variable d are <100>x<2>, where d(:,1) is the first wavelength and d(:,2) the second wavelength?
Providing a sample of data could help to better understand the proposed format.
2) Time domain fNIRS: How to treat time domain data?
In time domain fNIRS systems based on the TCSPC technique the raw data are the distributions of time of flight (DTOFs) at two or more wavelengths. Microscopic time resolution is typically 10ps, and 512 or 1024 channels are acquired, therefore 5 or 10 ns are recorded. It is probably unreasonable to store all this data in the standard format, therefore preprocessing should be done.
By preprocessing the DTOF we can provide the intensity at selected time-gates. To enhance the contribution from deep layers (brain cortex) and reject the disturbing effect of superficial layers (scalp, skull), late and early time-gates are needed. Therefore the minimum number of time-gates is 2. Since the choice of the early and late time-gates may depend on the specific experiment, we store more than 2 gates, typically 10 time-gates with width of 400ps and variable delays (from 0 to 3.2ns in steps of 400ps). An 11th time gate corresponding to total number of photons (i.e. sum of photons in all time-gates, a pseudo CW measurement) is sometimes stored or calculated.
By a different preprocessing of the DTOF, we can provide the moments (1st, 2nd, and 3rd, corresponding to number of photons, mean time of flight and variance).
Suppose we have a 1 channel time domain system operating at 2 wavelengths and suppose we want to store 2 time gates (early and late).
The dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are <100> x <4>, where d(:,1) is the first wavelength-first gate, d(:,2) the second wavelength-first gate, d(:,3) is the second wavelength-second gate, and d(:,4) the second wavelength-second gate.
If we want to store 11 time gates (i.e. 10 + CW), then the dimensions of the variable d (actual raw data) for a specific experiment with 100 time points are <100> x <22>. Maybe the data referring to the pseudoCW time gate can be recorded before all other time gates (it seems to me more elegant and efficient: when using moments the 1st data is the pseudoCW as well).
In general the dimensions of the variable d (actual raw data) are x , where
= x x ,
or
= x x .
That's all.
Looking forward to seeing you in London.
Blaise
Alessandro Torricelli
Politecnico di Milano
Italy
Threaded View
Title | Author | Date |
---|---|---|
David Boas | Oct 19, 2012 | |
David Boas | Aug 1, 2013 | |
Mathieu Coursolle | Apr 2, 2013 | |
Mathieu Coursolle | Apr 15, 2013 | |
David Boas | Jul 31, 2013 | |
David Boas | Jul 31, 2013 | |
David Boas | Nov 20, 2012 | |
Alex Cristia | Nov 20, 2012 | |
Alex Cristia | Nov 5, 2012 | |
David Boas | Nov 16, 2012 | |
Mathieu Coursolle | Nov 16, 2012 | |
Alessandro Torricelli | Oct 25, 2012 | |
Blaise Frederick | Oct 26, 2012 | |
David Boas | Nov 5, 2012 | |
Alessandro Torricelli | Oct 25, 2012 | |
Mathieu Coursolle | Oct 22, 2012 | |
Blaise Frederick | Oct 22, 2012 | |
David Boas | Nov 5, 2012 | |
Mathieu Coursolle | Nov 20, 2012 | |