# Using the anti-correlation between oxy and deoxy hemoglobin for NIRS data quality

Back in 2009 we published a paper titled “Functional near infrared spectroscopy (NIRS) signal improvement based on negative correlation between oxygenated and deoxygenated hemoglobin dynamics“. In a nutshell, we found the oxy- and deoxy-Hb are negatively correlated when noise level is low. When noise level increases, their correlation becomes more and more positive.

Based on this phenomenon we can check the noise level of a channel using the correlation. Below is the script. You simply input the hbo and hbr data (both matrix), and the output is the bad channels.

```% function badChannels = checkDataQuality(hbo,hbr)
% Check data quality using correlation between hbo and hbr as indicator
% if the correlation is strictly -1, then bad channel
% if the correlation is > 0.5, then bad channel
% Input: hbo and hbr are NxM matrix, N is number of scan, and M number of
% channels
% output: array of bad channels
%
% Xu Cui
% 2009/11/25

n = size(hbo,2);
for ii=1:n
tmp = corrcoef(hbo(:,ii), hbr(:,ii));
c(ii) = tmp(2);
end

pos = find(c==-1);
if ~isempty(pos)
disp(['Channels with -1 correlation: ' num2str(pos)])
end

pos2 = find(c>0.5);
if ~isempty(pos2)
disp(['Channels with >0.5 correlation: ' num2str(pos2)])
end

## 10 Replies to “Using the anti-correlation between oxy and deoxy hemoglobin for…”

1. Gu Yue says:

Hi，Cui Xu. Is this method suited for resting-state data ?

2. Xu Cui says:

@Gu Yue
Good question! I however do not know the answer. You can try it and see if it increase your data quality. I’d love to know the result.

3. Yafeng Pan says:

Dear Cui,

I’m wondering how to deal with these bad channels. Can I use the interpolation method which has been frequently employed in processing EEG data? I mean used the average value of whole channels to replace the bad channels Or just delete data on the bad channels?

I’m looking forward to hearing from you!

Yafeng Pan

4. Xu Cui says:

@Yafeng Pan
If you can’t recover the signals from various noise removal methods, I personally think deleting the bad channels is better.

5. wenfeng wu says:

Dear Pan,
Have you used the average value of whole channels to replace the bad channels of fNIRS? could you tell me your article name? thank you

wenfeng Wu

6. Carly says:

Dear Xu Cui,

How/why did you choose the threshold of 0.5 (if if the correlation is > 0.5, then bad channel)? I read your paper but I could not figure out why 0.5 should be the right value, but I am very curious to know! Thank you.

Kind regards,
Carly

1. Xu Cui says:

Carly,

The threshold 0.5 is arbitrarily chosen based on our observation. There is no theoretical basis. Please feel free to use your own threshold.

Xu

7. Derek Quan says:

I was wondering if the code you gave is used then should we use the original signal or the filtered and de-headed signal?

1. Xu Cui says:

I don’t quite understand what you mean.

1. Paulo Bazán says:

Hi Xu Cui,

I believe the questions is whether any preprocessing should be performed before calculation of the correlation. For example, should the data be band-pass filtered and then we calculate the correlation?

As a second question, I was wondering if having a longer block would affect the negative correlation bet oxy and deoxy hemoglobin, considering that during the plateau blocks, the anticorrelation decreases. Up to what block length would you expect that the negative correlation assumption holds true?

Kind regards,
Paulo