Custom events file without onset and duration

Hi all,

I would like to use the BIDS for our project (using EEG). However in our case we do not have the fields ‘onset’ and ‘duration’ for a run and therefore we cannot specify it in the event-file. Instead we would like to link another file (containing more details about the data) in the events file.

Is it possible to specify only one field in events json-file and verify whether this field is present in the event tsv-files using the bids validator?


If an event does not have an onset or duration, it probably is a different data type. Could you give an example, of what sort of event you want to encode?

During an EEG experiment, we create a stimulation files which contains all the stimuli (e.g.: different types of tonepips) presented during the experiment. We do not keep track of onset times as these are encoded in the EEG data and via signal processing we could trace the start of each stimulus. Additionally it would be harder to extract all this information to put it into the events file and it seems redundant if you have the stimulation file.
However we need to make a link between the recorded eeg and the stimulation file, therefore I assumed that this belongs in the events file.

The events.tsv file is a good place for this information. It is true that some data in BIDS is redundant --> but this is by design to make metadata more easily searchable and readable … instead of keeping it inside the (often binary) raw data files.

What file formats are you dealing with? I recommend to construct events.tsv files using the following procedure:

  1. read your EEG data files
  2. extract the onset of each TTL trigger (each of those is an “event”, i.e., a row in events.tsv)
  3. use your sampling frequency and each event onset in samples to get the onset column in seconds for your events.tsv
  4. For the duration column it is fair enough to specify n/a for each event unless you can easily re-compute the exact durations from your data (or get them from your experiment presentation code). Note that a duration of 0 is “special” in BIDS, see:
  5. finally, specify new columns in which you can enter the metadata for each event (i.e., each TTL trigger)