Analyzing temperature signals (in Celsius degrees)

Hi everyone,

I’m working with Brainstorm to analyze non-EEG/MEG physiological signals, specifically facial temperature (°C). My workflow is straightforward:

  • remove bad segments

  • create condition-specific epochs

  • average them

  • export the averaged temperature data

So far this works smoothly, but I’ve run into one issue:

I imported raw data ranging from 31–34 °C (screenshot below), and when prompted to choose amplitude units (µV, mV, V, etc.), I selected “none.”

However, when I display the raw data in Brainstorm, the amplitude is shown as -600 to +600 mV (screenshot below).

Is there a way to display the original values in Celsius degrees instead of mV? Or maybe to perform a unit conversion?

Thanks in advance for your help!

Best,
Giorgia

Hello Giorgia,

When the data is imported from a .mat file, it is assumed it is EEG.
As such none for units, it is indicating that the units for this "EEG" channel will be guessed.

So, once you have imported your raw data, double-click the channel file to change its type to TEMPERATURE. While this will not set the units to °C in the plot, it will not choose EEG units.

Here, it seems that the DC removal option (DC button in the Record tab) is set.
This is why the signal fluctuates around zero.
The units, as mentioned above, come from the channel type.

Dear Raymundo

Thank you very much for your quick reply. I manually changed the channel type to TEMPERATURE (it was not among the predefined options, so I forced it by pressing enter).

This affected the unit displayed on the y-axis as follows (ranging from -0.1 to + 0.1):

The signal shape is the same as the temperature raw data on MATLAB, even if the units are different:

Regarding the DC removal option, yes—it is currently enabled. If I disable it, the entire signal disappears from the displayed time series.

I was wondering if there is a way to display the original units in Celsius on the y-axis. For example, would it be feasible to:

  1. Import the temperature data in Brainstorm and choosing volt as amplitude unit, then export this data (on this participant, they range from -100 to +100)

  2. Subtract the original raw values from the volt-based data,

  3. Re-import the adjusted data into Brainstorm?

My assumption is that this would restore the scale to match the original raw data in Celsius (but I’ll have to try).

Best,
Giorgia

The difference is the DC component, which is around 25.62 C.

Be sure that the autoscale option is ON in the figure. (The button [AS])
Peek 2025-10-01 12-38

Thank you for the suggestion!

Without DC offset removal and autoscale, I can now see the correct units:

May I ask if there is a way to zoom in or view the signal in greater detail? I tried using the commands in the bottom-right corner, but I couldn’t get it to work.

I also created some epochs to check how they are displayed, and I noticed the following:

There seems to be a trend toward negative values, even though I did not alter the raw data (and there are no negative temperature values in my dataset). I double-checked whether DC offset removal was active, but it doesn’t appear to be the case.

Do you know why this might be happening?

Thank you,
Giorgia

It seems the data was imported before changing the channel type. As you can see the figure title starts with EEG.

Also, did you remove DC when importing the epochs?

Dear Raymundo,

I hadn’t noticed that the channel type changed after importing epochs. Yes, I am removing the DC offset when importing epochs, and I can confirm that everything looks fine. Below you can find the same epoch displayed without and with DC offset removal.

After changing the channel type to TEMPERATURE, I noticed that the signal is now displayed in green instead of black. Is there a way to change the signal color back to black?

Best,
Giorgia

It was black as sensor data from EEG, MEG and iEEG is black for all channels.
In this case, it's green as it is not one of the above (nor NIRS).

All figures in Brainstorm are Matlab figures, you can either change the color using the Matlab GUI to edit figures. Right-click on the figure then Figure > Matlab controls then in the menu View in the top toolbar open the Plot browser and Property editor.

Or you can change the plot programmatically as:

hLine = findobj(hFig, 'Tag', 'DataLine'); set(hLine, 'Color', [0,0,0]);

where hFig is the figure handle, if it is for the current figure you can get the handle with the function gcf()