rob-luke / Neuroimaging.jl

Neuroimaging in Julia
https://rob-luke.github.io/Neuroimaging.jl
BSD 3-Clause "New" or "Revised" License
48 stars 11 forks source link

Data readers #165

Open rob-luke opened 3 years ago

rob-luke commented 3 years ago

Currently the library only reads BDF files. Please list the data types below that are important to you, and any existing readers if available.

rob-luke commented 3 years ago

I wish to add a NIRx reader. There is already a package for this at https://github.com/rob-luke/NIRX.jl

behinger commented 3 years ago

If we can add MAT.jl as a dependency, I can do eeglab's .set files

There is also https://github.com/agricolab/brainvisionloader.jl which I updated to julia 1.3 a year ago.

rob-luke commented 3 years ago

I'm fine with adding dependencies like MAT.jl (well supported) and the BV reader (minimal sub-dependencies).

Even though they are external dependencies I would like to add a small test file for each type though. I use datadeps for these now in the datasets directory.

It's cool all these readers are available, I hadn't seen them. Thanks for highlighting them @behinger

behinger commented 3 years ago

Cool! There is also https://github.com/cbrnr/XDF.jl/

I will try to block some time to start programming here, but it is a busy life :S

rob-luke commented 3 years ago

Not strictly a reader, but good to add to the list https://github.com/TRIImaging/BIDSTools.jl

likanzhan commented 3 years ago

EDFPlus:

https://github.com/wherrera10/EDFPlus.jl

likanzhan commented 3 years ago

EDF is more Julian, but BDF is faster. see https://github.com/beacon-biosignals/EDF.jl/issues/50

likanzhan commented 3 years ago

It seems that EDF and BDF use different scale factors.

Is there a special reason for these choices?

jrevels commented 3 years ago

Is there a special reason for these choices?

The EDF version properly (I hope 😁) accounts for a fixed physical offset expressed by the encoding (in addition to the encoded -> decoded scaling factor you get from (pmax - pmin) / (dmax - dmin))

I think we originally only applied that scaling factor in EDF.jl (w/o accounting for the offset) until we realized other EDF reading libraries (MNE, I think?) interpreted pmin in this way

rob-luke commented 3 years ago

Now that @likanzhan has added BDF+ support to EDF.jl I think its time we make the jump. I will report progress in #91