Estimating amount of MEEG data on openneuro

Hello all,

Currently trying to create some sort of dashboard of the content of BIDS datasets out there (starting by those that are open and curated with datalad).

I was recently nudged into trying to get an idea of how much “scan time” was acquired for fMRI data (see this post on neurostars: Total amount of fMRI hours on OpenNeuro? - openneuro - Neurostars).

Currently implementing this suggestion (Total amount of fMRI hours on OpenNeuro? - openneuro - Neurostars) of just fetching the header of a data file to gather the number of time points and sampling frequency to avoid downloading all of openneuro.

My question is: would it be possible to do something similar for EEG, MEG, iEEG, fNIRS data using MNE?

I have had a quick look and it seems that MNE has some private functions to read headers only.

When the header is a standalone file (for example .vhdr), it should be fairly light to get the whole file and read it without blowing any harddrives.

In other cases, will it possible to just fetch the header with a datalad fsspec-head command and have the MNE functions read it from streamed data?

Not necessarily asking for a a yes / no answers, as I will defo investigate more on my own, but I wanted to ask the experts about potential headaches / hurdles I may encounter on the way or useful pointers.

Thanks

2 Likes

Hi and welcome to the forum!

BIDS data should be accessed through MNE-BIDS. When you read a data file, in fact it is not automatically preloaded into memory — essentially, just the header is being read to populate a Raw object. You can then retrieve the recording duration from this object, without ever loading the actual data or having to use private functions.

Of course this doesn’t solve your download problem, I’m afraid. But maybe someone else has an idea.

Best wishes,
Richard

2 Likes