I’m trying to load my .hdf5 data recorded by gtec HIamp, but following error is presented.
Review raw file gets this -->
** Error: Line 70: Dot indexing is not supported for variables of this type.
**
** Call stack:
** >in_fopen_gtec.m at 70
** >in_fopen.m at 102
** >import_raw.m at 126
** >bst_call.m at 28
** >tree_callbacks.m>@(h,ev)bst_call(@import_raw) at 492
**
Thank you for the example file.
Your file does not include channel names, and the Brainstorm gtec reader was not equipped for this. I added a test to replace the missing channel names with default labels.
Please update Brainstorm and try again.
Thank you for modifying the Brainstorm gtec reader.
Now I can read the gtec .hdf5 file, but I cannot find the external trigger information.How can I get it?
I don’t know, and I can’t check anymore because I deleted your file, and you deleted it too from filestorage…
Can you find your trigger info in the HFD5 structure?
You need to use the HDF5 reading functions from Matlab. Example:
h5disp(DataFile)
info = hdf5info(DataFile);
s = hdf5read(DataFile, '/RawData/AcquisitionTaskDescription')
s = hdf5read(DataFile, '/RawData/SessionDescription')
I managed to find the timing of the events: evtTime = hdf5read(DataFile, '/AsynchronData/Time')
And the description of various trigger types (“Trigger 1” to “Trigger 8”):
evtSignalType = hdf5read(DataFile, ‘/AsynchronData/AsynchronSignalTypes’);
sSignalTypeXml = in_xml(evtSignalType.Data);
sSignalTypeXml.ArrayOfAsynchronSignalDescription.AsynchronSignalDescription(1).Name
But I didn’t find how to link the two information:
How do I know which trigger occurs when?
What name should I give the events found in ‘/AsynchronData/Time’.
There are additional fields (’/AsynchronData/TypeID’ and ‘/AsynchronData/Value’) but they are the same for all the time points, so I don’t know if they are informative.
HDF5 dataset ‘/AsynchronData/Value’ is “1” everywhere, does it mean it is “Trigger 1” everywhere?
HDF5 dataset ‘/AsynchronData/TypeID’ is “32” everywhere, it could match the ID fields in the “AsynchronSignalTypes” field, because sSignalTypeXml.ArrayOfAsynchronSignalDescription.AsynchronSignalDescription(1).ID = 32. Is this correct?
I am sorry I didn’t explain it clearly enough.
I recorded EEG data during finger tapping task in response to beep sound.
And we used only “Trigger 1” in this preliminary recording.
I’m sorry but I’m new gtec user and not familiar with handling hdf5 file.
I can’t answer whether ID = 32 or not.
Thank you for the two files, it was very helpful to have both the .hdf5 and .mat versions side by side.
I fixed the reader, sorted the events by TypeID, and now get the same things for both files.
Please update Brainstorm and try again.
I have recorded EEG data with external trigger "Trigger1" using gtec.
However, I cannot obtain the trigger information again, although mat version file contains these informations.
Could you please help me on how to fix this again?
Hello
Sorry for the response delay…
Can you send me this file as well? I’ll see if there is anything else I need to change in the code.
Thanks
Francois
Thank you for the files.
In these new examples, the event ID of Trigger1 is “0”, and this was not expected in the code I wrote previously.
I fixed it. Update Brainstorm again an you should now see your Trigger1 events.
Francois
I am having a similar problem to Hisato.
Can you tell me or point me in direction how to make channel names, and if possible how to do this for all the hdf5 because all the data is stored that way and I will probably have to do the same thing for each file. I tried to have the file converted to .mat format, but that still does not load to brainstorm with a different error. The HDF5 error is copied below:
I think the brackets are blank to de-identify subject, but is causing error, did you just fill w a character so has any item to load/import.
Thanks!
Error in in_fopen_gtec
Line 59: in_fopen_gtec
Invalid g.tec HDF5 file: Missing dataset "RawData/AcquisitionTaskDescription".
Call stack:
in_fopen_gtec.m at 59
in_fopen.m at 115
in_data.m at 106
import_data.m at 200
bst_call.m at 28
tree_callbacks.m>@(h,ev)bst_call(@import_data,,,,iStudy,iSubject) at 700
I tried simply putting in ['a'] to not leave empty channel names or channel types and still getting another error, I thought may be related to where the file was stored separate from brainstorm, but not helping. Any input, thanks.:
** Error: Line 229: in_fopen
** Cannot open data file:
** C: ... brainstorm3\11CCf2.mat
**
** Call stack:
** >in_fopen.m at 229
** >in_data.m at 518
** >import_data.m at 200
** >bst_call.m at 28
** >tree_callbacks.m>@(h,ev)bst_call(@import_data,[],[],[],iStudy,iSubject) at 700
**
These three [] are used to indicate that the user will use a [File Chooser] to indicate the file. They are not related to the error you're seeing. Do not modify these, as it will seriously damage the way Braisntorm operates.
Was your file created with the g.Recorder software?
Could you send an example data file so we can have a look at it?
Upload the file somewhere and post the download link here. Thanks
https://duke.box.com/s/q6ucobtkfs224501sbt3jg8y30elxwcy the file is close to 1GB. This is .mat file exported or converted from hdf5 file. this was recorded on g.HIamp 256-channel amplifier device; so I think it is g.recorder, but not sure. I did not aquire the data.
Let me know if box link does not work. Thanks for the help. I only manipulated a copy of the original file, so it is not ruined, this file should be unaltered from recording besides that it is matlab format.
I will try to share next the HDFD5 file and decryption file for hdf5, ghdf5import.m, but the hdf5 is even larger than exported .mat file.
I am a clinical neurophys fellow, but know nearly nothing for Matlab I'm mostly interested to use Matlab to open brainstorm to analyze SEEG data in a GUI compatible with these odd formats.
I put a screenshot of the file channel name area that seemed to be a problem for the other user in the past, but I see your comments not to touch it.