DS004152#

Drum Trainer

Access recordings and metadata through EEGDash.

Citation: Cameron D. Hassall, Yan Yan, Laurence T. Hunt (2022). Drum Trainer. 10.18112/openneuro.ds004152.v1.1.2

Modality: eeg Subjects: 21 Recordings: 194 License: CC0 Source: openneuro Citations: 1.0

Metadata: Complete (100%)

Quickstart#

Install

pip install eegdash

Access the data

from eegdash.dataset import DS004152

dataset = DS004152(cache_dir="./data")
# Get the raw object of the first recording
raw = dataset.datasets[0].raw
print(raw.info)

Filter by subject

dataset = DS004152(cache_dir="./data", subject="01")

Advanced query

dataset = DS004152(
    cache_dir="./data",
    query={"subject": {"$in": ["01", "02"]}},
)

Iterate recordings

for rec in dataset:
    print(rec.subject, rec.raw.info['sfreq'])

If you use this dataset in your research, please cite the original authors.

BibTeX

@dataset{ds004152,
  title = {Drum Trainer},
  author = {Cameron D. Hassall and Yan Yan and Laurence T. Hunt},
  doi = {10.18112/openneuro.ds004152.v1.1.2},
  url = {https://doi.org/10.18112/openneuro.ds004152.v1.1.2},
}

About This Dataset#

Drum Trainer

Twenty-one participants learned to play two drumming patterns (pattern 1: AABA, pattern 2: AAABAA) at three different tempos (fast: 150 bpm, medium: 100 bpm, slow: 60 bpm). Responses were recorded using the f and j keys on a standard keyboard. Visual feedback in the form of a coloured circle coincided with each button press and indicated whether the response was early, on time, or late. Feedback was determined by comparing the response time, relative to the previous response, to a window around the target duration. The window was adapted trial-by-trial to ensure that roughly half the outcomes were “on time”.

Participant 12 should be excluded from event-locked analyses due to bad triggers (trigger cable was partially disconnected).

Timing Repeat for 72 trials: fixation dot (until response) -> feedback circle (50 ms)

View full README

Drum Trainer

Twenty-one participants learned to play two drumming patterns (pattern 1: AABA, pattern 2: AAABAA) at three different tempos (fast: 150 bpm, medium: 100 bpm, slow: 60 bpm). Responses were recorded using the f and j keys on a standard keyboard. Visual feedback in the form of a coloured circle coincided with each button press and indicated whether the response was early, on time, or late. Feedback was determined by comparing the response time, relative to the previous response, to a window around the target duration. The window was adapted trial-by-trial to ensure that roughly half the outcomes were “on time”.

Participant 12 should be excluded from event-locked analyses due to bad triggers (trigger cable was partially disconnected).

Timing Repeat for 72 trials: fixation dot (until response) -> feedback circle (50 ms)

Condition Codes 1: “Fast, pattern 1, left-hand start” 2: “Fast, pattern 1, right-hand start” 3: “Fast, pattern 2, left-hand start” 4: “Fast, pattern 2, right-hand start” 5: “Medium, pattern 1, left-hand start” 6: “Medium, pattern 1, right-hand start” 7: “Medium, pattern 2, left-hand start” 8: “Medium, pattern 2, right-hand start” 9: “Slow, pattern 1, left-hand start” 10: “Slow, pattern 1, right-hand start” 11: “Slow, pattern 2, left-hand start” 12: “Slow, pattern 2, right-hand start”

Trigger Modifiers Add 0: Metronome beat (pre-block) Add 20: Ready screen (pre-block) Add 40: First response (can’t be early, on time, or late) Add 60: Early response Add 80: On time response Add 100: Late response Add 120: Red X (wrong key pressed)

Dataset Information#

Dataset ID

DS004152

Title

Drum Trainer

Year

2022

Authors

Cameron D. Hassall, Yan Yan, Laurence T. Hunt

License

CC0

Citation / DOI

doi:10.18112/openneuro.ds004152.v1.1.2

Source links

OpenNeuro | NeMAR | Source URL

Copy-paste BibTeX
@dataset{ds004152,
  title = {Drum Trainer},
  author = {Cameron D. Hassall and Yan Yan and Laurence T. Hunt},
  doi = {10.18112/openneuro.ds004152.v1.1.2},
  url = {https://doi.org/10.18112/openneuro.ds004152.v1.1.2},
}

Found an issue with this dataset?

If you encounter any problems with this dataset (missing files, incorrect metadata, loading errors, etc.), please let us know!

Report an Issue on GitHub

Technical Details#

Subjects & recordings
  • Subjects: 21

  • Recordings: 194

  • Tasks: 1

Channels & sampling rate
  • Channels: 31

  • Sampling rate (Hz): 1000.0

  • Duration (hours): 0.0

Tags
  • Pathology: Not specified

  • Modality: —

  • Type: —

Files & format
  • Size on disk: 4.8 GB

  • File count: 194

  • Format: BIDS

License & citation
  • License: CC0

  • DOI: doi:10.18112/openneuro.ds004152.v1.1.2

Provenance

API Reference#

Use the DS004152 class to access this dataset programmatically.

class eegdash.dataset.DS004152(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#

Bases: EEGDashDataset

OpenNeuro dataset ds004152. Modality: eeg; Experiment type: Learning; Subject type: Healthy. Subjects: 21; recordings: 21; tasks: 1.

Parameters:
  • cache_dir (str | Path) – Directory where data are cached locally.

  • query (dict | None) – Additional MongoDB-style filters to AND with the dataset selection. Must not contain the key dataset.

  • s3_bucket (str | None) – Base S3 bucket used to locate the data.

  • **kwargs (dict) – Additional keyword arguments forwarded to EEGDashDataset.

data_dir#

Local dataset cache directory (cache_dir / dataset_id).

Type:

Path

query#

Merged query with the dataset filter applied.

Type:

dict

records#

Metadata records used to build the dataset, if pre-fetched.

Type:

list[dict] | None

Notes

Each item is a recording; recording-level metadata are available via dataset.description. query supports MongoDB-style filters on fields in ALLOWED_QUERY_FIELDS and is combined with the dataset filter. Dataset-specific caveats are not provided in the summary metadata.

References

OpenNeuro dataset: https://openneuro.org/datasets/ds004152 NeMAR dataset: https://nemar.org/dataexplorer/detail?dataset_id=ds004152

Examples

>>> from eegdash.dataset import DS004152
>>> dataset = DS004152(cache_dir="./data")
>>> recording = dataset[0]
>>> raw = recording.load()
__init__(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#
save(path, overwrite=False)[source]#

Save the dataset to disk.

Parameters:
  • path (str or Path) – Destination file path.

  • overwrite (bool, default False) – If True, overwrite existing file.

Return type:

None

See Also#