Why PPF and not DPF in mne.preprocessing.nirs.beer_lambert_law ?

I need some help understanding why the function to convert optical density to haemoglobin concentration (ie mne.preprocessing.nirs.beer_lambert_law) is using the partial pathlength factor (PPF) rather than differential pathlength factor (DPF).

And more particularly, where do we get that value from?
In the tutorial “Preprocessing functional near-infrared spectroscopy (fNIRS) data” the value is given as 0.1 but elsewhere (Artinis blog) I have seen a value of 6 given. And to add to my confusion, Whiteman et al 2018 quote values of 1.8(ish) for adult males and 2.45 for adult females.

Even worse I am analysing baby data! So what number to use?
I will be happy with an understanding of the situation in adults to start with…
Many thanks in advance
@rob-luke as always I would value your help

Hi @jwunderlich

As you’ve noticed there is no concensus on what the ppf value should be, and the best choice is likely dependent on the population and anatomical region. So you will need to examine the recent literature relevant to your study.

MNE-Python exposes the ppf value (rather than hard coding it to a specific value) to allow you the flexibility to set it to the most appropriate value for your research. We use ppf to be inline with Homer and NIRS-Toolbox.

The default value for the ppf in MNE is 6, which is the same as Homer. You can see the recent discusison about this at: https://github.com/mne-tools/mne-python/pull/984. Personally, I previously used a value of 0.1 for my adult studies, but moving forward, I will use a value of 6.

Hope this helps,

Thanks Rob,
that clarifies things as does the github discussion - so essentially the partial volume correction (PVC) is being set to 1 ie ppf = [dpf=6]/[pvc=1] = 6

ps the github discussion is here https://github.com/mne-tools/mne-python/pull/9843 - your link was missing a digit :grinning:

all the best

1 Like