Keelin
December 5, 2025, 9:58am
1
Hello.
I had been using an older version of Brainstorm (2020) because it allowed me to import and view my custom atlases with colours assigned from analyses completed outside of brainstorm. Recent updates stopped working for this task.
I recently tried applying an update (while keeping my older version) and it has changed my data or data protocol. Now I can neither work with the new version (Brainstorm opens but does not load the data), and I cannot open my protocol with the old version (see screenshot).
I tried restoring the previous day’s protocol.mat file from before the update, but I still get the same error.
Do you have any suggestions? Are there other files besides protocol.mat that get updated when a newer Brainstorm version opens a protocol — files that I would also need to restore from backup in order to make the database compatible again with the older version?
I am using Matlab R2021a.
Thank you.
Keelin:
I recently tried applying an update (while keeping my older version) and it has changed my data or data protocol. Now I can neither work with the new version (Brainstorm opens but does not load the data), and I cannot open my protocol with the old version (see screenshot).
I tried restoring the previous day’s protocol.mat file from before the update, but I still get the same error.
Do you have any suggestions? Are there other files besides protocol.mat that get updated when a newer Brainstorm version opens a protocol — files that I would also need to restore from backup in order to make the database compatible again with the older version?
To open you Protocol in either version (the old or the new):
In Matlab run brainstorm reset
Close Brainstorm and Matlab
Delete the file PROTOCOL_FOLDER/data/protocol.mat
Start Brainstorm and load your Protocol
2020 is quite old, many updates have been done in the last five years
Could you expand on what feature is not there anymore?
If a feature was present and then it was missing or behaves unexpectedly, we can fixed for newer versions.
Open-source software evolves with the constant feedback of users. New improvements often come with new bugs, bug reports and then bug fixes. This mechanism works only if most users keep on updating regularly the software.
With Brainstorm, we're trying to provide fast solutions to new problems that users report. If you follow our debugging guidelines, you would get a fix for the bugs you reported within a few days, and the entire community of users would benefit from it.
If you'd like to contri…
Keelin
December 6, 2025, 11:00am
3
Thank you for your response. I tried these steps:
And I can now open and work with my data in the older version, but when trying to load data into the new version it stays frozen in this state, and error, with the following errors in the console.
For this:
Raymundo.Cassani:
2020 is quite old, many updates have been done in the last five years
Could you expand on what feature is not there anymore?
If a feature was present and then it was missing or behaves unexpectedly, we can fixed for newer versions.
There was an intermediate version that had functioned for me along the way, but I had replaced it with a newer version so had settled on 2020 version.
These were my steps:
From brainstorm, export the atlas to a matlab file.
Keeping same data structure, modify colours only in a matlab script, creates new matlab file.
Create new atlas in brainstorm, and import modified atlas from matlab.
I was not sure brainstorm is intended to be used this way for visualization, but it worked for my purposes.
Did you run brainstorm reset and reload the Protocols after updating Brainstorm?
Keelin:
These were my steps:
From brainstorm, export the atlas to a matlab file.
Keeping same data structure, modify colours only in a matlab script, creates new matlab file.
Create new atlas in brainstorm, and import modified atlas from matlab.
I was not sure brainstorm is intended to be used this way for visualization, but it worked for my purposes.
Yes this workflow is still valid.
Open surface
Select Atlas to be modified in the Scout tab
If the atlas to be modified atlas on one of the Default atlases, you need to create a copy of it, as Default atlases cannot be modified.
In the Scout menu go to Export to Matlab
Modify it
In the Scout menu go to Import from Matlab
If you want to do this programatically, the scout atlases are stored in the surface file, so open the surface file in Matlab, modify the atlas and save back the file. See this link for more info:
Keelin
December 8, 2025, 5:20pm
5
Yes, I continue to get this error message after brainstorm reset and reloading my protocol with the updated version (December 4, 2025). The anatomy tab looks fine, but once I click on the data tab, the error comes up.
Thanks for double-checking this.
Once the error occurs, can you run these lines in Matlab and paste the result in the forum reply:
ProtocolStudies = bst_get('ProtocolStudies');
[ProtocolStudies.Study.Condition]'
Keelin
December 8, 2025, 6:45pm
7
Sure. The results are long but here are the first parts for an idea.
ProtocolStudies = bst_get('ProtocolStudies');
[ProtocolStudies.Study.Condition]'
ans =
1392×1 cell array
{'@default_study' }
{'@intra' }
{'@raw0_Auditory_20191113_01' }
{'@raw0_Auditory_20191113_01_clean' }
{'@raw0_Auditory_20191113_01_clean_band' }
{'@raw0_Auditory_20191113_01_clean_band_resample' }
{'@raw0_Auditory_20191113_01_clean_band_resample_02' }
{'@raw0_Spontaneous_20191113_01' }
{'@raw0_Spontaneous_20191113_01_clean' }
{'@raw0_Spontaneous_20191113_01_clean_band' }
{'@raw0_Spontaneous_20191113_01_clean_band_resample' }
{'@raw0_Spontaneous_20191113_01_clean_band_resample_02' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-03_meg' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-03_meg_clean' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-03_meg_clean_band_band_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-04_meg' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-04_meg_clean' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-04_meg_clean_band_band_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-04_meg_clean_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-05_meg' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-05_meg_clean' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-05_meg_clean_band_band_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-06_meg' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-06_meg_clean' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-06_meg_clean_band_band_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-07_meg' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-07_meg_clean' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-07_meg_clean_band_band_band_resample' }
{'@rawsub-C17AO_ses-20191113_task-Auditory_run-09_meg' }
{'@rawsub-C17AO_ses-20191113_task-rest_run-02_meg' }
{'@rawsub-C17AO_ses-20191113_task-rest_run-08_meg' }
{'@rawsub-C17AO_ses-20191113_task-rest_run-10_meg' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg_clean' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg_clean_band' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg_clean_band_resample' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg_clean_band_resample_02' }
{'@rawsub-emptyroom_ses-20191113T1157_task-noise_run-02_meg_clean_band_resample_04' }
{'Block10_presses' }
{'Block11_presses' }
{'Block12_presses' }
{'Block1_presses' }
{'Block1_presses_tests' }
{'Block2_presses' }
{'Block3_presses' }
{'Block4_presses' }
{'Block5_presses' }
{'Block6_presses' }
{'Block7_presses' }
{'Block8_presses' }
{'Block9_presses' }
{'Older_work' }
{'Older_work' }
{'5s_EEG_TimeFrequency' }
{'Older_work' }
{'5s_timefreq_Task1_OFF' }
{'Older_work' }
{'5s_timefreq_Task1_ON' }
{'Older_work' }
{'60s_Task1' }
{'Older_work' }
{'EXPLORED_5s_timefreq_Task1_OFF' }
{'Older_work' }
{'RS1_30s_d05' }
{'Older_work' }
{'RS1_30s_d07' }
{'Older_work' }
{'Task1_OFF_d05' }
{'Older_work' }
{'Task1_OFF_d07' }
{'Older_work' }
{'Task1_ON_d05' }
{'Older_work' }
{'Task1_ON_d07' }
{'Older_work' }
{'timefreq_RS1_30s' }
{'Older_work' }
{'timefreq_Task1_OFF' }
{'Older_work' }
{'timefreq_Task1_ON' }
{'RS1_30s' }
{'RestBlocks1' }
{'RestingState1' }
{'Sleep1' }
{'Sleep2' }
{'Sleep3' }
{'Sleep4' }
{'Sleep5' }
{'Task1' }
{'TaskBlocks1' }
{'all_N1' }
{'all_N1_Xflip' }
{'all_N2' }
{'all_N2_Xflip' }
{'all_N3' }
{'all_N3_Xflip' }
{'all_wake' }
{'all_wake_Xflip' }
{'rest_blocks_375' }
{'restblocks_1' }
{'restingstate_1' }
{'wake_5s' }
{'5s_EEG_TimeFrequency' }
{'5s_timefreq_Task1_OFF' }
{'5s_timefreq_Task1_ON' }
{'60s_Task1' }
{'@default_study' }
{'@intra' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-02_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-02_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-02_meg_clean_band' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-02_meg_clean_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-02_meg_clean_band_resample_02' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-04_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-04_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-04_meg_clean_band_band_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-05_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-05_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-05_meg_clean_band_band_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-06_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-06_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-06_meg_clean_band_band_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-07_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-07_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-07_meg_clean_band_band_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-08_meg' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-08_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-08_meg_clean_band_band_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-Auditory_run-10_meg' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-01_meg' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-01_meg_clean' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-01_meg_clean_band' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-01_meg_clean_band_resample' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-01_meg_clean_band_resample_02' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-03_meg' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-09_meg' }
{'@rawsub-C18ET_ses-20191114_task-rest_run-11_meg' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg_clean' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg_clean_band' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg_clean_band_resample' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg_clean_band_resample_02' }
{'@rawsub-emptyroom_ses-20191114T1214_task-noise_run-01_meg_clean_band_resample_03' }
{'Block10_presses' }
{'Block11_presses' }
{'Block12_presses' }
{'Block1_presses' }
{'Block2_presses' }
{'Block3_presses' }
{'Block4_presses' }
{'Block5_presses' }
{'Block6_presses' }
{'Block7_presses' }
{'Block8_presses' }
{'Block9_presses' }
{'RS1_30s' }
{'RS1_30s_d05' }
{'RS1_30s_d07' }
{'RestBlocks1' }
{'RestingState1' }
{'Sleep1' }
{'Sleep2' }
{'Sleep3' }
{'Sleep4' }
{'Sleep5' }
{'Task1' }
{'Task1_OFF_d05' }
{'Task1_OFF_d07' }
{'Task1_ON_d05' }
{'Task1_ON_d07' }
{'TaskBlocks1' }
{'TaskBlocks1_A' }
{'all_N1' }
{'all_N1_Xflip' }
{'all_N2' }
{'all_N2_Xflip' }
{'all_N3' }
{'all_N3_Xflip' }
{'all_wake' }
{'all_wake_Xflip' }
{'restblocks_1' }
{'restingstate_1' }
{'timefreq_RS1_30s' }
{'timefreq_Task1_OFF' }
{'timefreq_Task1_ON' }
{'5s_EEG_TimeFrequency' }
{'5s_timefreq_Task1_OFF' }
{'60s_Task1' }
{'@default_study' }
{'@intra' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-02_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-02_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-02_meg_clean_band' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-02_meg_clean_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-02_meg_clean_band_resample_02' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-04_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-04_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-04_meg_clean_band_band_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-05_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-05_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-05_meg_clean_band_band_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-06_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-06_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-06_meg_clean_band_band_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-07_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-07_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-07_meg_clean_band_band_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-08_meg' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-08_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-08_meg_clean_band_band_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-Auditory_run-10_meg' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-01_meg' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-01_meg_clean' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-01_meg_clean_band' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-01_meg_clean_band_resample' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-01_meg_clean_band_resample_02' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-03_meg' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-09_meg' }
{'@rawsub-C19AG_ses-20191115_task-rest_run-11_meg' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg_clean' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg_clean_band' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg_clean_band_resample' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg_clean_band_resample_02' }
{'@rawsub-emptyroom_ses-20191115T1229_task-noise_run-01_meg_clean_band_resample_03' }
{'Block10_presses' }
{'Block11_presses' }
{'Block12_presses' }
{'Block1_presses' }
{'Block2_presses' }
{'Block3_presses' }
{'Block4_presses' }
{'Block5_presses' }
{'Block6_presses' }
{'Block7_presses' }
{'Block8_presses' }
{'Block9_presses' }
{'RS1_30s' }
{'RS1_30s_d05' }
{'RS1_30s_d07' }
{'RestBlocks1' }
{'RestingState1' }
{'Sleep1' }
{'Sleep2' }
{'Sleep3' }
{'Sleep4' }
{'Sleep5' }
{'TEST-WAKE' }
{'Task1' }
{'Task1_OFF_d05' }
{'Task1_OFF_d07' }
{'Task1_ON_d05' }
{'Task1_ON_d07' }
{'TaskBlocks1' }
{'TaskBlocks1_A' }
{'all_N1' }
{'all_N1_Xflip' }
{'all_N2' }
{'all_N2_Xflip' }
{'all_N3' }
{'all_N3_Xflip' }
{'all_wake' }
{'all_wake_Xflip' }
{'restblocks_1' }
{'restingstate_1' }
{'5s_EEG_TimeFrequency' }
{'60s_Task1' }
{'@default_study' }
{'@intra' }
You can save the results in a .mat file and attach it to the post.
If you do like this, please save the variable ProtocolStudies.
Keelin
December 8, 2025, 7:33pm
9
@Keelin thank you for the provided information.
The error raised as there is an inconsistency in your ProtocolFolder (see below), we just updated Brainstorm to continue ignoring such inconsistency. Commit: 0becba3
Please update Brainstorm to 09-Dec-2025
About the inconsistency in your Protocol folder. There is an issue with the organization of the files:
There is the directory data/C17AO/ that contains the different studies: BlockX_pressess
The directory data/C17AO/Older_work that contains different studies: 5s..., Task1, ...
In Brainstorm there is no support for nested Studies as the one in the point 2. The folders should follow data/SUBJECT/STUDY.
The current structure of the database does not allow more than one level of sub-folders for each subject. It is not possible to organize the files by session AND by condition. See this Link
It is likely that the folder described in point 2 was manually created (outside of Brainstorm), we strongly advise against manual modification of the Brainstorm database files, as this can corrupt them. If there is need to backup a Subject, the recommended way is to create a copy of such a Subject (In Brainstorm GUI right-click > File > Duplicate subject), the same applies to make a copy of a Study.
Due to this inconsistency in the protocol folder, a message similar to this is shown when loading the Protocol for the first time (after reseting Brainstorm and deleting protocol.mat):
DB> Subject file "'C17AO/Older_work/brainstormsubject.mat" does not exist. You should delete manually this subject in the data folder and reload the protocol.
Keelin
December 10, 2025, 8:46pm
11
It works! Thank you for your help.