ETG4000 not ETG 7000, with 50 events rather than 100

  • MNE version: 1.2
  • Windows 10

Hi, I have noticed the following. It believes we are usin a ETG-7000 but we are using a ETG 4000, also we have 5 conditions and 10 trials per condition, this means there should be only 50 events found.

Loading C:\Users\rebec\fNIRS-project\Data\S11\S11_MES_Probe1.csv
Reading Hitachi fNIRS file version 1.25
Constructing pairing matrix for ETG-7000 (3x5)
Loading C:\Users\rebec\fNIRS-project\Data\S11\S11_MES_Probe2.csv
Reading Hitachi fNIRS file version 1.25
Constructing pairing matrix for ETG-7000 (3x5)
Reading 0 ... 22346  =      0.000 ...  2234.600 secs...
100 events found
Event IDs: [1 2 3 4 5]
Trigger channel has a non-zero initial value of 1 (consider using initial_event=True to detect this event)
Using qt as 2D backend.
Not setting metadata
100 matching events found

It seems to double trigger, we did have a short ‘rest’ between the triggers.
In the ETG you have the possibiity to choose different settings, such as rest-periods.

Because the resting periods are also noticed as events, it messes up the analysis further downstream.

[[  108     0     4]
 [  323     0     4]
 [  543     0     5]
 [  758     0     5]
 [  988     0     3]
 [ 1203     0     3]
 [ 1443     0     1]
 [ 1658     0     1]
 [ 1868     0     2]
 [ 2083     0     2]
 [ 2333     0     2]
 [ 2546     0     2]
 [ 2786     0     1]
 [ 3000     0     1]
 [ 3211     0     5]
 [ 3425     0     5]
 [ 3645     0     4]
 [ 3860     0     4]
 [ 4100     0     3]
 [ 4315     0     3]
 [ 4525     0     3]
 [ 4738     0     3]
 [ 4978     0     4]
 [ 5193     0     4]
 [ 5403     0     1]
 [ 5618     0     1]
 [ 5838     0     2]
 [ 6052     0     2]
 [ 6292     0     5]
 [ 6507     0     5]
 [ 6727     0     1]
 [ 6942     0     1]
 [ 7152     0     3]
 [ 7367     0     3]
 [ 7597     0     2]
 [ 7812     0     2]
 [ 8022     0     5]
 [ 8237     0     5]
 [ 8467     0     4]
 [ 8682     0     4]
 [ 8902     0     5]
 [ 9114     0     5]
 [ 9364     0     2]
 [ 9579     0     2]
 [ 9809     0     4]
 [10024     0     4]
 [10274     0     3]
 [10489     0     3]
 [10719     0     1]
 [10933     0     1]
 [11153     0     1]
 [11365     0     1]
 [11586     0     3]
 [11800     0     3]
 [12050     0     2]
 [12265     0     2]
 [12485     0     5]
 [12700     0     5]
 [12930     0     4]
 [13146     0     4]
 [13396     0     3]
 [13611     0     3]
 [13860     0     4]
 [14073     0     4]
 [14293     0     1]
 [14508     0     1]
 [14748     0     2]
 [14962     0     2]
 [15202     0     5]
 [15417     0     5]
 [15637     0     5]
 [15850     0     5]
 [16080     0     2]
 [16295     0     2]
 [16515     0     4]
 [16730     0     4]
 [16980     0     3]
 [17195     0     3]
 [17405     0     1]
 [17620     0     1]
 [17840     0     4]
 [18054     0     4]
 [18265     0     5]
 [18480     0     5]
 [18700     0     3]
 [18914     0     3]
 [19165     0     1]
 [19379     0     1]
 [19609     0     2]
 [19824     0     2]
 [20074     0     2]
 [20287     0     2]
 [20528     0     1]
 [20742     0     1]
 [20962     0     5]
 [21177     0     5]
 [21417     0     4]
 [21632     0     4]
 [21882     0     3]
 [22097     0     3]]

I am not sure if I should just delete the second trigger, but then two consecutive events could be the same. Do you have an idea?

Best,
Rebecka

You seem a bit surprised that it “double triggers”, so the first thing I would say is look back at the script that ran the experiment stimuli, and make sure you understand what it’s doing / why it double-triggered when you didn’t expect it to. That way you can be sure than any “fixes” at the analysis stage are fixing the right problem.

If you’re certain that every event got triggered twice and you want to always ignore the second one, you can do it efficiently like this:

events = events[::2]

If you’re not sure, you could do some safety checks first: if you expect (from your experimental design) a known amount of time between consecutive identical triggers (like if they’re always exactly 1 second apart, or always between 1.5 and 1.75 seconds) then you could assert that first before deleting the alternating event rows. Or you could make sure that there’s always the same trigger value in each pair of rows. You can get the even and odd rows as separate arrays like this:

odd_rows = events[1::2]  # indices 1, 3, 5, ...
even_rows = events[::2]  # indices 0, 2, 4, ...
1 Like