nm000239 NEMAR-native dataset
P-ary m-sequence-based c-VEP dataset from Martínez-Cagigal et al. (2023)
This dataset comprises EEG recordings from 16 healthy participants performing a code-modulated visual evoked potential (c-VEP) brain-computer interface task using p-ary m-sequences. The study investigates non-binary m-sequence stimulation patterns to enhance user comfort in c-VEP-based BCIs. Data were collected across 5 sessions per subject with 8 runs per session at 256 Hz sampling rate using 16 EEG channels, providing a comprehensive resource for BCI paradigm development and evaluation.
AI-generated description, may include mistakesLoading demographics…
Coming soon. Per-file data-quality summaries are precomputed by the NEMAR processing pipeline. The static aggregate is on the way — tracked at nemar-cli#511.
Files
How to use the data (for agentic research) license, citation, download commands, Zarr access
What it is
- Modalities
- EEG
- Participants
- 16
- Size
- 1.71 GB
- Tasks
- cvep
- HED version
- 8.4.0
License and terms
- License
- CC-BY-NC-SA-4.0
- Note
- Non-commercial use only (CC-BY-NC-SA-4.0).
- Recommended citation
- Martínez-Cagigal, V., Santamaría-Vázquez, E., Pérez-Velasco, S., Marcos-Martínez, D., Moreno-Calderón, S., & Hornero, R. (2026). P-ary m-sequence-based c-VEP dataset from Martínez-Cagigal et al. (2023) (Version v1.0.4) [Data set]. NEMAR. https://doi.org/10.82901/nemar.nm000239
- Reference 1
- https://doi.org/10.71569/025s-eq10
- Reference 2
- https://doi.org/10.1016/j.eswa.2023.120815
- Reference 3
- https://doi.org/10.1088/1741-2552/ac38cf
- Reference 4
- https://doi.org/10.1016/j.cmpb.2023.107357
- Reference 5
- https://doi.org/10.21105/joss.01896
- Reference 6
- https://doi.org/10.1038/s41597-019-0104-8
- Reference 7
- https://doi.org/10.35376/10324/70945
Where the bytes are
- Latest version (always current)
- https://data.nemar.org/nm000239/latest/
- This version (v1.0.4)
- https://data.nemar.org/nm000239/v1.0.4/
How to download
- The dataset
-
nemar dataset download nm000239Clones and fetches in one step. Content under stimuli/ and derivatives/ is skipped by default because those trees can be large; add --stimuli --derivatives for the whole thing. - A subset, one step
-
nemar dataset download nm000239 --subjects sub-01,02Also filters by --sessions, --tasks, --runs, --datatypes, --include and --exclude. - A subset, step 1
-
nemar dataset clone nm000239Clones git-annex pointers only; fetches no file content. Creates ./nm000239. - A subset, step 2
-
cd nm000239The get command below reads the clone's annex, so it only works from inside the clone. - A subset, step 3
-
nemar dataset get <files>Pulls the files you actually need. Skips stimuli/ and derivatives/ unless the path you ask for is under one of them. - One small file
- https://data.nemar.org/nm000239/v1.0.4/participants.tsv A direct HTTPS fetch works for any single file.
Assess fit without downloading
- Participants table
- https://data.nemar.org/nm000239/v1.0.4/participants.tsv
- Dataset description
- https://data.nemar.org/nm000239/v1.0.4/dataset_description.json
- Directory listing
- https://data.nemar.org/nm000239/v1.0.4/?format=json
- Catalog record
- https://api.nemar.org/datasets/nm000239
Working with the Zarr copy
- 1. Start at the index
- https://zarr.nemar.org/nm000239/zarr/index.json The mandatory entry point. Never hardcode a bucket path.
- 2. Pick a store entry
-
stores[].zarr, stores[].groups[].nameThese two fields exist in every index format version, so a recipe that keys on them works against the whole catalog while the back conversion is still in flight. - 3. Build the store URI
-
s3://nemar/nm000239/zarr/{store.zarr}Derivable from the store entry alone. An index at format_version 3 or later also publishes contract_base, data_base and s3_uri; use them when they are there, never require them. - 4. Open the store anonymously
-
zarr.open_group(store=..., mode="r", zarr_format=3)Anonymous FsspecStore.from_url in region us-east-2, no credentials. zarr_format=3 is required: without it zarr-python probes for Zarr v2 sidecars, and because anonymous ListBucket is denied, S3 answers a missing key with 403 rather than 404 and the open raises. - 5. Read the level-0 array
-
root[store.groups[0].name]["0"]Level 0 is the full-rate signal. Never read a view/ array for inference; those exist for display. - 6. Dequantize the samples
-
physical = digital * scale + offsetscale and offset are attributes of the level-0 array, one entry per channel; the unit is on the group's channels attribute. - 7. Slice, don't download
-
signal[0:4, 0:500]Stream a window of channels and samples; download only when you will touch most of the array. - 8. Know the HTTP contract
-
index.jsonOnly index.json is always proxied and edge-cached. A plain GET for a store object, manifest.json or events.parquet 302s to the public S3 object for non-browser clients, so follow redirects, and HEAD is never redirected. - 9. Read the attribution before reuse
-
root.attrs["nemar"]The store carries its own dataset id, DOI, license, citation and source commit. - 10. Filter for pipelines
-
has_zarr=1This is the converted filter. has_zarr_verified is the stricter one, and its result set can be empty until the daily fidelity sweep reaches a dataset; verification is reported, never a precondition for serving (nemar-cli ADR 0005).