Handy programs to visualize NIRS data (6): plotAverage

55 sec read

This is the 6th post of the series: Handy programs to visualize NIRS data

When we do an experiment, we often repeat an event (or block) for a few times. For example, in a typical finger tapping task, we ask the participants to do a finger tapping for 20s, then rest for 20s, then repeat the whole tap-rest paradigm for 10 time.

After we extract the NIRS time courses, we often need to know the average of the signal over all repetitions of the event. In the finger tapping experiment, we want to know the average signal across 10 blocks of finger tapping.

What we need to do is:

  1. Know the timing of each block (of course!)
  2. cut the NIRS signal into pieces. The starting points should be a few seconds before the onset timing of the experiment block; and the ending points should be a few seconds after the offset of the experiment block.
  3. Align the pieces and average
  4. Also calculate the standard deviation (or error) of the average
  5. plot
The attached cuixuNIRSretrieve.m and plotAverage can automatically do the above steps. Below is a plot done by plotAverage. In this example, there are two types of events, fs and fb. Each was repeated 10 times. The plot below plot the average of each of the event, and also the standard deviation (the shaded area). The vertical grey bar is the onset timing of the events. From the plot we can see that fb elicits a bigger response than fs does.
You can download the two scripts at:

第三十二期 fNIRS Journal Club 通知 2022/07/30,10am 郑一磊

Xu Cui
7 sec read

第三十一期 fNIRS Journal Club 视频 谢恩慧

华东师范大学李先春教授实验室的谢恩慧为大家讲解他们最近发布的一篇文章。 Youtube: https://youtu.be/ulcIVaZpQLM Youku: https://v.youku.com
Xu Cui
4 sec read


本文作者是刘宁博士 作者简介:刘宁,塔夫斯大学生物医学工程博士(Tufts University),斯坦福大学脑科学方向科研人员。 Frontiers 杂志客座编辑(Guest Associate E
Xu Cui
11 sec read

5 Replies to “Handy programs to visualize NIRS data (6): plotAverage”

  1. Hi Cui,

    Thanks for your generous contribution, I am just wondering if the normal hyspectral camera can take pictures inside potatos
    Any external light can penetrate the potato body(tub)?

    Thanks lot , if you can provide some confirmation.


  2. Hi Xu

    We would like to use your scripts to average and plot NIRS data.

    Do you may have sample data to test it? I am especially not sure how the eventOnset (structure, the onset time (in seconds) of event) should look like.

    many thanks in advance

  3. @Xu Cui
    Hi Xu, I can’t open the link above. Can you send the example of data again?
    I am in doubt whether the data is the output of NirsLAB block average since the signal event specifies a column vector, but I have been exporting Oxy and Deoxy which results a text document with two columns. Additionally, the time onset differs from participant from another as my finger tapping blocks were randomized, should I create eventOnset for each participant?

    kind regards,

Leave a Reply

Your email address will not be published. Required fields are marked *