Detailed analysis steps

 

Preprocessing

Open new dataset

We open a new dataset. This is an n-back task with 3 levels of difficulty: 0-back, 1-back, 2-back and 3-back, so there are 3 different markers and 7 repetitions of each. The task was almost 40 minutes in total.

Also load marker file:

NOTE: the oxy file that is automatically created from the COBI Studio recording was scaled to the baseline consisting of 100 samples at the beginning of the recording. Therefore, there is limited use of that file!

 

You see a lot of markers here, so as described above, we go right-click → toggle marker visibility and the markers are then removed from your view.

The resulting view looks like this:

Right-click → optode layout view:

This opens the 2x8 layout view:

Exclude bad data

Top left: bad optode contact; there is hair trapped under the optode. You can try to resolve this by placing a headband over the optode to keep it closer to the skin or make the strap tighter. Optode 1 and also a little bit 5 and 3 in this example shows the effect of hair. The sharp change towards the end of the x-axis shows an adjustment where the hair was moved out of the way.

Makeup needs to be removed because it reflects a lot of light and will distort the signal.

Top right: Saturated signals mean the signal is larger than the machine can handle and this signal cannot be recovered. We want a maximum of 3,500 mV. Therefore, we need to make sure we prevent this issue. This can be done prior to the experiment by reducing the gain or the light intensity. If this issue remains undetected until after the experiment, the optode where there is saturation will need to be eliminated from the analysis. 

Lower left: spike from motion artifact. Can either eliminate (preferred) or correct for it. Try to prevent by tightening the strap without tension but less possibility to move.

 Lower right: good signal.

Filtering

Now go to the bottom tool bar and click the tab “Refine”

In Step 1, we select raw data because our data have not undergone any processing yet.

Step 2, we select the default filter this time, then apply. You can also click on “Filter Designer Tool” and custominze your own filtering options (see below).

Here you have the option to customize existing filters and save them as new filters that will then appear in the dropdown menu of the screen above. You can see in the graph how these options affect your data.

The application of the default filtering options leads to this smoothed signal, i.e. the high-frequency noise from before has now been removed:

Now we click on the “Oxy” tab in the bottom tool bar:

This opens the oxygenation calculation window. The default baseline is what we recorded in the beginning. However, you can also define any other block of time as your baseline or you can use from memory/data space (I don’t know what that means). It is not critical which option we select now, since we can always go back and change the option to reconfigure.

We now want to select “Refined Data” because we don’t want to use the raw data (selected by default, so need to change), we want to use the filtered data we just created.

Click “Calculate oxygenation”.

Oxygenation data

HbO: oxygenated hemoglobin (red by default)

HbR: deoxygenated hemoglobin (blue by default)

Full screen:

You can see and modify the color coding in the legend on the right (see bottom here):

In the main data window, right-click → Display settings:

Data Type: select here which data you want to be displayed

Data Range: if you have a touch display, you can use your fingers to Zoom or pan, but you can also select a manual range as needed.

Marker: if you have too many markers, you can select the ones you want to be displayed and not displayed.

Time: you can select the time window to be displayed as needed, i.e. the range of the x-axis.

Processing

Creating blocks

In the bottom pane of the main data window, click “Define Blocks”.

On the left, we define the marker that starts a block and on the right the one that ends that block. Remember, we used an n-back task with several conditions, so we start with the first condition, 0-back.

The button “By Time” and “By Value” are to sort the markers, so you can find them easily in the list. Once you click on a marker, it switches to the “Start pattern” window (same for the “End pattern”).

We want to define our block from marker 90 to 98 and then check the box “Apply the following label” on the bottom of the right-hand window. We call out blocks “0back” and the click “Run (Step 1)”.

We now see information in the bottom box saying “Found 7 blocks”. We now click “Save (Step 2)” to save these blocks.

You can see colored blocks appear on the bottom of our data.

If you repeat the same process with another condition (In this case 1-back), you also see these markers, leveled slightly differently from the first set.

If you click “Manage” on the bottom, you see this screen, which shows you all the markers with their block number, onset and offset times, and their duration. You can sort or delete them here.

Automated block creation

Instead of adding all blocks one by one, we can add all at once with previously configured presets. On the bottom pane, click “Automation”:

Under NBACK, we have 4 presets saved. Click “Run (Step 1)” and then “Run (Step 2)” and all markers will be added.

If you click on the available Automation, you will see the details:

You can then go back to view and edit your blocks by right-click → Manage → Manage Blocks

Saving data

Next, we save the file to the data space: click “Save” in bottom pane.

Select “All Blocks” → “Next”

Keep default (I am not sure why this is now raw data instead of refined data or blocks).

Target location is Data Space:

Data by the block

A window with a text view of your data will open. This list contains all HBO, HBR and OXY data by block and time.

Different views

If you double-click on a block, you see the data for that block. On the bottom, under Graph Type, you can change the display.

Click on the tab “Array view…” to see numerical data.

You can open multiple blocks at the same time to look at them together.

Change baseline

Note that these data have been calculated using the global baseline. We now want to change that. We want to look at the data for the blocks without the influence of the time before the blocks started.

From this window, click on the “Process” tab:

On the bottom, click “Add/Remove Action”.

Next, go to Temporal Processing à Conditioning → Correct Baselines and click on the big right arrow to drag the option into the “Selected actions” window. Click “Save”.

We now see this:

On the bottom, click “Add/Remove Variables”:

Select all 28 Oxy blocks and drag them into “Selected Variables”.

Click “Save”.

Now you see your process listed. Click “Execute”.

If you now go back to the Data Space tab, you see a lot of new variables created and they all say “Baseline corrected”. Right-click → view.

 

Graphs

This shows you all averages of HBO for each n-back block for each optode.

On the bottom, you can change the graph type under and group type. Here 7 trials per block by group (o-back, 1-back, 2-back, 3-back):

Instead of showing each trial separately, you can group the trials:

Under Graph type → bar graph, you can see the average across the 7 trials of each block:

We can now look at the results in different views:

Graph type → Bar (2 by 8) provides this view in which we see each optode organized from left to right as the plate is arranged on the participant’s forehead:

 

Temporal view