NeuroAnalyzer tutorials: Edit EEG (2)

Edit channels

Load data:

using NeuroAnalyzer
eeg = import_edf("files/eeg_edfplus.edf");
[ Info: Imported: EEG (29 × 400200 × 1; 2001.0 s)

Show labels:

labels(eeg)
29-element Vector{String}:
 "Fp1"
 "Fp2"
 "F3"
 "F4"
 "C3"
 "C4"
 "P3"
 "P4"
 "O1"
 "O2"
 "F7"
 "F8"
 "T3"
 ⋮
 "Cz"
 "Pz"
 "E"
 "PG1"
 "PG2"
 "A1"
 "A2"
 "T1"
 "T2"
 "Mark1"
 "Mark2"
 "Events/Markers"

Get channel by number:

get_channel(eeg, ch=labels(eeg)[18])
1-element Vector{Int64}:
 18

Rename channels:

rename_channel(eeg, ch="Cz", name="CZ");
labels(eeg)
29-element Vector{String}:
 "Fp1"
 "Fp2"
 "F3"
 "F4"
 "C3"
 "C4"
 "P3"
 "P4"
 "O1"
 "O2"
 "F7"
 "F8"
 "T3"
 ⋮
 "Cz"
 "Pz"
 "E"
 "PG1"
 "PG2"
 "A1"
 "A2"
 "T1"
 "T2"
 "Mark1"
 "Mark2"
 "Events/Markers"

Delete channels (epochs and channels may be specified using number, range or vector):

delete_channel(eeg, ch="Cz");
labels(eeg)
29-element Vector{String}:
 "Fp1"
 "Fp2"
 "F3"
 "F4"
 "C3"
 "C4"
 "P3"
 "P4"
 "O1"
 "O2"
 "F7"
 "F8"
 "T3"
 ⋮
 "Cz"
 "Pz"
 "E"
 "PG1"
 "PG2"
 "A1"
 "A2"
 "T1"
 "T2"
 "Mark1"
 "Mark2"
 "Events/Markers"

or

delete_channel(eeg, ch=get_channel(eeg, type="eeg")[10:18]);
labels(eeg)
29-element Vector{String}:
 "Fp1"
 "Fp2"
 "F3"
 "F4"
 "C3"
 "C4"
 "P3"
 "P4"
 "O1"
 "O2"
 "F7"
 "F8"
 "T3"
 ⋮
 "Cz"
 "Pz"
 "E"
 "PG1"
 "PG2"
 "A1"
 "A2"
 "T1"
 "T2"
 "Mark1"
 "Mark2"
 "Events/Markers"

Keep channel:

keep_channel(eeg, ch=get_channel(eeg, type="eeg")[1:4])
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg"], :label => ["Fp1", "Fp2", "F3", "F4"], :prefiltering => ["", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215;;;], Dict{Any, Any}(), 45×5 DataFrame
 Row  id      start     length   value                 channel  String  Float64   Float64  String                Int64   
─────┼──────────────────────────────────────────────────────────
   1 │ 1          0.0        0.0  REC START BioCal CAL        0
   2 │ 2          1.14       0.0  A1+A2 OFF                   0
   3 │ 3          4.22       0.0  IMP CHECK ON                0
   4 │ 4          8.24       0.0  IMP CHECK OFF               0
   5 │ 5         10.24       0.0  PAT BioCal EEG              0
   6 │ 6         17.07       0.0  PAT 1-Banana EEG            0
   7 │ 7         21.64       0.0  Head Straight               0
   8 │ 8         23.38       0.0  Awake                       0
   9 │ 9         25.629      0.0  Eyes Open                   0
  10 │ 10        30.468      0.0  Eyes Closed                 0
  11 │ 11        35.899      0.0  Swallow                     0
  ⋮  │   ⋮        ⋮         ⋮              ⋮               ⋮
  36 │ 35       552.88       0.0  PHOTO 19Hz                  0
  37 │ 36       568.08       0.0  PHOTO 20Hz                  0
  38 │ 37      1272.7        0.0  PAT 2-Trans EEG             0
  39 │ 38      1281.01       0.0  Drowsy                      0
  40 │ 39      1603.66       0.0  PAT 3-EarRef EEG            0
  41 │ 9       1625.96       0.0  Eyes Open                   0
  42 │ 10      1638.53       0.0  Eyes Closed                 0
  43 │ 9       1939.59       0.0  Eyes Open                   0
  44 │ 10      1966.55       0.0  Eyes Closed                 0
  45 │ 40      1987.52       0.0  PAT 3-EarRef CAL            0
                                                 24 rows omitted, 4×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
                                                               3 columns omitted, ["reset_components(OBJ)", "delete_channel(OBJ, ch=[29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5])"])

Replace channel 1 with channel 18:

ch18 = extract_channel(eeg, ch=get_channel(eeg, type="all")[18])
replace_channel(eeg, ch=get_channel(eeg, type="all")[1], s=ch18)
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;;], Dict{Any, Any}(), 45×5 DataFrame
 Row  id      start     length   value                 channel  String  Float64   Float64  String                Int64   
─────┼──────────────────────────────────────────────────────────
   1 │ 1          0.0        0.0  REC START BioCal CAL        0
   2 │ 2          1.14       0.0  A1+A2 OFF                   0
   3 │ 3          4.22       0.0  IMP CHECK ON                0
   4 │ 4          8.24       0.0  IMP CHECK OFF               0
   5 │ 5         10.24       0.0  PAT BioCal EEG              0
   6 │ 6         17.07       0.0  PAT 1-Banana EEG            0
   7 │ 7         21.64       0.0  Head Straight               0
   8 │ 8         23.38       0.0  Awake                       0
   9 │ 9         25.629      0.0  Eyes Open                   0
  10 │ 10        30.468      0.0  Eyes Closed                 0
  11 │ 11        35.899      0.0  Swallow                     0
  ⋮  │   ⋮        ⋮         ⋮              ⋮               ⋮
  36 │ 35       552.88       0.0  PHOTO 19Hz                  0
  37 │ 36       568.08       0.0  PHOTO 20Hz                  0
  38 │ 37      1272.7        0.0  PAT 2-Trans EEG             0
  39 │ 38      1281.01       0.0  Drowsy                      0
  40 │ 39      1603.66       0.0  PAT 3-EarRef EEG            0
  41 │ 9       1625.96       0.0  Eyes Open                   0
  42 │ 10      1638.53       0.0  Eyes Closed                 0
  43 │ 9       1939.59       0.0  Eyes Open                   0
  44 │ 10      1966.55       0.0  Eyes Closed                 0
  45 │ 40      1987.52       0.0  PAT 3-EarRef CAL            0
                                                 24 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "replace_channel(OBJ, ch=1, s"])

Epoching

(!) Many processing operations (such as filtering or ICA decomposition) should be performed on non-epoched (continuous) signal (e.g. due to the edge artifacts that may occur in case of filtering or the minimum required signal length for ICA decomposition).

Split EEG into 10-second epochs:

e10 = epoch(eeg, ep_len=10)
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "length_10s", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  1999.95, 1999.955, 1999.96, 1999.965, 1999.97, 1999.975, 1999.98, 1999.985, 1999.99, 1999.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  9.95, 9.955, 9.96, 9.965, 9.97, 9.975, 9.98, 9.985, 9.99, 9.995], [49.99999731441215 49.99999731441215 … 0.0 0.0; 49.99999731441215 49.99999731441215 … 0.0 0.0; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;; 0.0 0.0 … -8.593749538414588 11.914061860074769; 0.0 0.0 … -58.88671558709087 -38.86718541237507; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 0.0 0.0;;; 24.999998657206074 -9.374999496452277 … 106.34765053788053 120.31249353780423; -27.92968599984741 -60.35155925841154 … 36.523435538262 56.73827820248722; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; … ;;; 4.980468482490273 5.468749706263829 … -8.593749538414588 -25.48827988097963; 4.296874769207294 17.871092790112154 … -8.984374517433434 -22.558592538338292; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -1.9531248950942246 1.5624999160753796 … 0.0 0.0; 10.546874433508812 7.91015582513161 … 0.0 0.0; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 3.0518043793392844e-5 3.0518043793392844e-5;;; 0.0 0.0 … 49.99999731441215 49.99999731441215; 0.0 0.0 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5], Dict{Any, Any}(), 45×5 DataFrame
 Row  id      start     length   value                 channel  String  Float64   Float64  String                Int64   
─────┼──────────────────────────────────────────────────────────
   1 │ 1          0.0        0.0  REC START BioCal CAL        0
   2 │ 2          1.14       0.0  A1+A2 OFF                   0
   3 │ 3          4.22       0.0  IMP CHECK ON                0
   4 │ 4          8.24       0.0  IMP CHECK OFF               0
   5 │ 5         10.24       0.0  PAT BioCal EEG              0
   6 │ 6         17.07       0.0  PAT 1-Banana EEG            0
   7 │ 7         21.64       0.0  Head Straight               0
   8 │ 8         23.38       0.0  Awake                       0
   9 │ 9         25.629      0.0  Eyes Open                   0
  10 │ 10        30.468      0.0  Eyes Closed                 0
  11 │ 11        35.899      0.0  Swallow                     0
  ⋮  │   ⋮        ⋮         ⋮              ⋮               ⋮
  36 │ 35       552.88       0.0  PHOTO 19Hz                  0
  37 │ 36       568.08       0.0  PHOTO 20Hz                  0
  38 │ 37      1272.7        0.0  PAT 2-Trans EEG             0
  39 │ 38      1281.01       0.0  Drowsy                      0
  40 │ 39      1603.66       0.0  PAT 3-EarRef EEG            0
  41 │ 9       1625.96       0.0  Eyes Open                   0
  42 │ 10      1638.53       0.0  Eyes Closed                 0
  43 │ 9       1939.59       0.0  Eyes Open                   0
  44 │ 10      1966.55       0.0  Eyes Closed                 0
  45 │ 40      1987.52       0.0  PAT 3-EarRef CAL            0
                                                 24 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "epoch(OBJ, marker=, offset=0, ep_n=nothing, ep_len=2000)"])

Split into 5-second epochs and then average into one epoch:

e5 = epoch(eeg, ep_len=5)
e5avg = average_epochs(e5)
info(e5avg)
[ Warning: Non-signal channels will be removed.
              Data type: ERP
            File format: EDF+
            Source file: files/eeg_edfplus.edf
         File size [MB]: 22.95
       Memory size [MB]: 73.45
                Subject:  000000 F 02-SEP-1938 Kamakaeha_Liliuokalani
              Recording: Startdate 02-SEP-1988 98-001 Oe_Aloha_AASH Nihon_Kohden_EEG-0000A_V99.00
        Recording notes: 
         Recording date: 02.09.88
         Recording time: 09:11:38
     Sampling rate (Hz): 200
Signal length [samples]: 401000
Signal length [seconds]: 2005.0
     Number of channels: 23
              Epochs ID: length_5s
       Number of epochs: 401
 Epoch length [samples]: 1000
 Epoch length [seconds]: 5.0
                Markers: yes
      Channel locations: yes
             Components: no
 Number of EEG channels: 23

Channels:
 ch     label           type        unit    bad     
 ------ --------------- ----------- ------- -------
 1      Fp1             EEG         μV      false   
 2      Fp2             EEG         μV      false   
 3      F3              EEG         μV      false   
 4      F4              EEG         μV      false   
 5      C3              EEG         μV      false   
 6      C4              EEG         μV      false   
 7      P3              EEG         μV      false   
 8      P4              EEG         μV      false   
 9      O1              EEG         μV      false   
 10     O2              EEG         μV      false   
 11     F7              EEG         μV      false   
 12     F8              EEG         μV      false   
 13     T3              EEG         μV      false   
 14     T4              EEG         μV      false   
 15     T5              EEG         μV      false   
 16     T6              EEG         μV      false   
 17     Fz              EEG         μV      false   
 18     Cz              EEG         μV      false   
 19     Pz              EEG         μV      false   
 20     PG1             EEG         μV      false   
 21     PG2             EEG         μV      false   
 22     T1              EEG         μV      false   
 23     T2              EEG         μV      false   

Split into epochs at the event marker (each epoch is 1500 ms long and starts 200 ms before the event marker):

erp = epoch(eeg, marker="Eyes Open", offset=0.2, ep_len=1.5)
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "Eyes Open", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  4.45, 4.455, 4.46, 4.465, 4.47, 4.475, 4.48, 4.485, 4.49, 4.495], [-0.2, -0.195, -0.19, -0.185, -0.18000000000000002, -0.17500000000000002, -0.17, -0.165, -0.16, -0.15500000000000003  …  1.25, 1.2550000000000001, 1.26, 1.2650000000000001, 1.27, 1.2750000000000001, 1.28, 1.2850000000000001, 1.29, 1.2950000000000002], [-12.69531181811246 9.374999496452277 … -98.14452597848478 -126.1718682230869; -64.25780904859998 -35.35156060120546 … -134.37499278248265 -160.64452262149996; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -11.425780636301214 -37.890622964827955 … 2.7343748531319143 24.902342412451365; -11.718749370565348 -39.94140410467689 … -40.0390603494316 4.00390603494316; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -52.34374718852522 -23.828123720149538 … 4.3945310139620055 -13.57421802090486; -60.742184237430386 -43.06640393682765 … -24.902342412451365 -41.11327904173343; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0], Dict{Any, Any}(), 3×5 DataFrame
 Row  id      start    length   value      channel  String  Float64  Float64  String     Int64   
─────┼──────────────────────────────────────────────
   1 │ 9           0.2      0.0  Eyes Open        0
   2 │ 9           1.7      0.0  Eyes Open        0
   3 │ 9           3.2      0.0  Eyes Open        0, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "epoch(OBJ, marker=Eyes Open, offset=0.2, ep_n=nothing, ep_len=1.5)"])

Create sub-epochs (of reduced time range, start at 0.1 sec and end 1.1 sec):

subepoch(erp, ep_start=0.1, ep_end=1.1)
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "Eyes Open", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2.965, 2.97, 2.975, 2.98, 2.985, 2.99, 2.995, 3.0, 3.005, 3.01], [0.09999999999999998, 0.10499999999999998, 0.10999999999999999, 0.11499999999999999, 0.12, 0.125, 0.13, 0.135, 0.14, 0.14499999999999996  …  1.055, 1.06, 1.065, 1.07, 1.075, 1.08, 1.085, 1.09, 1.095, 1.1], [5.1757809719996954 37.30468549629969 … -129.4921805447471 -141.8945236285954; -70.89843369192035 -48.04687241931792 … -183.88670887312125 -191.406239719234; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -7.617187090867476 -20.996092622262914 … 19.72656144045167 -3.027343587396048; -36.42577929350729 -47.8515599298085 … -12.792968062867171 -56.05468448920424; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -80.17577694361792 -50.390622293430994 … -38.86718541237507 -86.81640158693828; -107.91015045395591 -81.835933104448 … -76.46483964293888 -102.83202572671092; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0], Dict{Any, Any}(), 3×5 DataFrame
 Row  id      start    length   value      channel  String  Float64  Float64  String     Int64   
─────┼──────────────────────────────────────────────
   1 │ 9         0.1        0.0  Eyes Open        0
   2 │ 9         1.105      0.0  Eyes Open        0
   3 │ 9         2.11       0.0  Eyes Open        0, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "epoch(OBJ, marker=Eyes Open, offset=0.2, ep_n=nothing, ep_len=1.5)", "reset_components(OBJ)", "subepoch(OBJ, ep_start=0.1, ep_start=1.1)"])

Edit epochs

Get 1st epoch:

e10e1 = extract_epoch(e10, ep=1)
info(e10e1)
              Data type: EEG
            File format: EDF+
            Source file: files/eeg_edfplus.edf
         File size [MB]: 22.95
       Memory size [MB]: 0.47
                Subject:  000000 F 02-SEP-1938 Kamakaeha_Liliuokalani
              Recording: Startdate 02-SEP-1988 98-001 Oe_Aloha_AASH Nihon_Kohden_EEG-0000A_V99.00
        Recording notes: 
         Recording date: 02.09.88
         Recording time: 09:11:38
     Sampling rate (Hz): 200
Signal length [samples]: 2000
Signal length [seconds]: 10.0
     Number of channels: 29
              Epochs ID: length_10s
       Number of epochs: 1
 Epoch length [samples]: 2000
 Epoch length [seconds]: 10.0
         Reference type: physical
         Line frequency: 50 Hz
                Markers: yes
      Channel locations: yes
             Components: no
 Number of EEG channels: 23

Channels:
 ch     label           type        unit    bad     
 ------ --------------- ----------- ------- -------
 1      Fp1             EEG         μV      false   
 2      Fp2             EEG         μV      false   
 3      F3              EEG         μV      false   
 4      F4              EEG         μV      false   
 5      C3              EEG         μV      false   
 6      C4              EEG         μV      false   
 7      P3              EEG         μV      false   
 8      P4              EEG         μV      false   
 9      O1              EEG         μV      false   
 10     O2              EEG         μV      false   
 11     F7              EEG         μV      false   
 12     F8              EEG         μV      false   
 13     T3              EEG         μV      false   
 14     T4              EEG         μV      false   
 15     T5              EEG         μV      false   
 16     T6              EEG         μV      false   
 17     Fz              EEG         μV      false   
 18     Cz              EEG         μV      false   
 19     Pz              EEG         μV      false   
 20     E               MRK         μV      false   
 21     PG1             EEG         μV      false   
 22     PG2             EEG         μV      false   
 23     A1              REF         μV      false   
 24     A2              REF         μV      false   
 25     T1              EEG         μV      false   
 26     T2              EEG         μV      false   
 27     Mark1           MRK         μV      false   
 28     Mark2           MRK         μV      false   
 29     Events/Markers  MRK         μV      false   

Delete epochs:

delete_epoch(e10, ep=1)
delete_epoch(e10, ep=8:10)
delete_epoch(e10, ep=[1:5; 9; 10])
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "length_10s", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  1929.95, 1929.955, 1929.96, 1929.965, 1929.97, 1929.975, 1929.98, 1929.985, 1929.99, 1929.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  9.95, 9.955, 9.96, 9.965, 9.97, 9.975, 9.98, 9.985, 9.99, 9.995], [8.496093293659877 15.429686671244374 … 22.753905027847715 15.82031165026322; -30.957029587243458 -23.437498741130696 … -17.578124055848022 -22.949217517357138; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -1.9531248950942246 24.02343620965896 … -1.3671874265659572 -26.074217349507897; -38.574216678110936 -15.234374181734951 … -29.296873426413367 -65.33202774090181; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -29.199217181658657 -8.886718272678722 … 66.30859018844892 48.24218490882735; -65.91796520943008 -44.238278873884184 … 57.91015313954376 37.109373006790264; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; … ;;; 4.980468482490273 5.468749706263829 … -8.593749538414588 -25.48827988097963; 4.296874769207294 17.871092790112154 … -8.984374517433434 -22.558592538338292; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; -1.9531248950942246 1.5624999160753796 … 0.0 0.0; 10.546874433508812 7.91015582513161 … 0.0 0.0; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 3.0518043793392844e-5 3.0518043793392844e-5;;; 0.0 0.0 … 49.99999731441215 49.99999731441215; 0.0 0.0 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5], Dict{Any, Any}(), 34×5 DataFrame
 Row  id      start     length   value                 channel  String  Float64   Float64  String                Int64   
─────┼──────────────────────────────────────────────────────────
   1 │ 1          0.0        0.0  REC START BioCal CAL        0
   2 │ 12         0.063      0.0  laughing                    0
   3 │ 13        28.91       0.0  HV START                    0
   4 │ 15        38.94       0.0  HV 00:30                    0
   5 │ 16        68.96       0.0  HV 01:00                    0
   6 │ 17        98.94       0.0  HV 01:30                    0
   7 │ 18       128.94       0.0  HV 02:00                    0
   8 │ 19       158.98       0.0  HV 02:30                    0
   9 │ 20       188.96       0.0  HV 03:00                    0
  10 │ 21       218.94       0.0  HV 03:30                    0
  11 │ 22       248.98       0.0  HV 04:00                    0
  ⋮  │   ⋮        ⋮         ⋮              ⋮               ⋮
  25 │ 35       482.88       0.0  PHOTO 19Hz                  0
  26 │ 36       498.08       0.0  PHOTO 20Hz                  0
  27 │ 37      1202.7        0.0  PAT 2-Trans EEG             0
  28 │ 38      1211.01       0.0  Drowsy                      0
  29 │ 39      1533.66       0.0  PAT 3-EarRef EEG            0
  30 │ 9       1555.96       0.0  Eyes Open                   0
  31 │ 10      1568.53       0.0  Eyes Closed                 0
  32 │ 9       1869.59       0.0  Eyes Open                   0
  33 │ 10      1896.55       0.0  Eyes Closed                 0
  34 │ 40      1917.52       0.0  PAT 3-EarRef CAL            0
                                                 13 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "epoch(OBJ, marker=, offset=0, ep_n=nothing, ep_len=2000)", "reset_components(OBJ)", "delete_epoch(OBJ, [10, 9, 5, 4, 3, 2, 1])"])

(!) Note the use of ; if mixed range is specified.

Keep epochs:

keep_epoch(e10, ep=[1, 3, 5, 9])
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "length_10s", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  39.95, 39.955, 39.96, 39.965, 39.97, 39.975, 39.98, 39.985, 39.99, 39.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  9.95, 9.955, 9.96, 9.965, 9.97, 9.975, 9.98, 9.985, 9.99, 9.995], [49.99999731441215 49.99999731441215 … 0.0 0.0; 49.99999731441215 49.99999731441215 … 0.0 0.0; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;; 24.999998657206074 -9.374999496452277 … 106.34765053788053 120.31249353780423; -27.92968599984741 -60.35155925841154 … 36.523435538262 56.73827820248722; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; 17.67578030060273 7.226562111848631 … 26.855467307545588 37.59765423056382; -28.417967223620966 -36.230466803997864 … 1.269531181811246 2.148437384603647; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0;;; 34.17968566414893 59.86327803463798 … 10.742186923018235 -16.210936629282063; 21.67968633554589 49.90234106965744 … -30.566404608224612 -71.48437116044862; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 0.0 0.0 … 0.0 0.0], Dict{Any, Any}(), 7×5 DataFrame
 Row  id      start    length   value                 channel  String  Float64  Float64  String                Int64   
─────┼─────────────────────────────────────────────────────────
   1 │ 1         0.0        0.0  REC START BioCal CAL        0
   2 │ 2         1.14       0.0  A1+A2 OFF                   0
   3 │ 3         4.22       0.0  IMP CHECK ON                0
   4 │ 4         8.24       0.0  IMP CHECK OFF               0
   5 │ 7        11.64       0.0  Head Straight               0
   6 │ 8        13.38       0.0  Awake                       0
   7 │ 9        15.629      0.0  Eyes Open                   0, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "epoch(OBJ, marker=, offset=0, ep_n=nothing, ep_len=2000)", "reset_components(OBJ)", "delete_epoch(OBJ, [200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 8, 7, 6, 4, 2])", "reset_components(OBJ)", "keep_epoch(OBJ, [9, 5, 3, 1])"])

Using markers

View markers:

view_marker(eeg)
n    ID                      start [s]   length [s]  value                   channel
1    '1'                     0.0         0.0         'REC START BioCal CAL'  0
2    '2'                     1.14        0.0         'A1+A2 OFF'             0
3    '3'                     4.22        0.0         'IMP CHECK ON'          0
4    '4'                     8.24        0.0         'IMP CHECK OFF'         0
5    '5'                     10.24       0.0         'PAT BioCal EEG'        0
6    '6'                     17.07       0.0         'PAT 1-Banana EEG'      0
7    '7'                     21.64       0.0         'Head Straight'         0
8    '8'                     23.38       0.0         'Awake'                 0
9    '9'                     25.629      0.0         'Eyes Open'             0
10   '10'                    30.468      0.0         'Eyes Closed'           0
11   '11'                    35.899      0.0         'Swallow'               0
12   '12'                    50.063      0.0         'laughing'              0
13   '13'                    78.91       0.0         'HV START'              0
14   '14'                    92.122      0.0         '35 Hz'                 0
15   '15'                    108.94      0.0         'HV 00:30'              0
16   '16'                    138.96      0.0         'HV 01:00'              0
17   '17'                    168.94      0.0         'HV 01:30'              0
18   '18'                    198.94      0.0         'HV 02:00'              0
19   '19'                    228.98      0.0         'HV 02:30'              0
20   '20'                    258.96      0.0         'HV 03:00'              0
21   '21'                    288.94      0.0         'HV 03:30'              0
22   '22'                    318.98      0.0         'HV 04:00'              0
23   '23'                    348.98      0.0         'HV 04:30'              0
24   '24'                    378.9       0.0         'HV 05:00'              0
25   '25'                    380.22      0.0         'HV END'                0
26   '26'                    410.26      0.0         'POST HV 00:30'         0
27   '25'                    425.88      0.0         'HV END'                0
28   '27'                    432.56      0.0         'PHOTO 4Hz'             0
29   '28'                    448.14      0.0         'PHOTO 6Hz'             0
30   '29'                    462.87      0.0         'PHOTO 7Hz'             0
31   '30'                    478.12      0.0         'PHOTO 9Hz'             0
32   '31'                    492.9       0.0         'PHOTO 10Hz'            0
33   '32'                    508.12      0.0         'PHOTO 12Hz'            0
34   '33'                    522.94      0.0         'PHOTO 15Hz'            0
35   '34'                    537.68      0.0         'PHOTO 17Hz'            0
36   '35'                    552.88      0.0         'PHOTO 19Hz'            0
37   '36'                    568.08      0.0         'PHOTO 20Hz'            0
38   '37'                    1272.7      0.0         'PAT 2-Trans EEG'       0
39   '38'                    1281.011    0.0         'Drowsy'                0
40   '39'                    1603.66     0.0         'PAT 3-EarRef EEG'      0
41   '9'                     1625.963    0.0         'Eyes Open'             0
42   '10'                    1638.531    0.0         'Eyes Closed'           0
43   '9'                     1939.592    0.0         'Eyes Open'             0
44   '10'                    1966.553    0.0         'Eyes Closed'           0
45   '40'                    1987.52     0.0         'PAT 3-EarRef CAL'      0

(!) Value of channel refers to channels affected by the marker; 0 means all channels; values other than 0 are not supported.

Delete 1st marker:

delete_marker(eeg, n=1)
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;;], Dict{Any, Any}(), 44×5 DataFrame
 Row  id      start     length   value             channel  String  Float64   Float64  String            Int64   
─────┼──────────────────────────────────────────────────────
   1 │ 2          1.14       0.0  A1+A2 OFF               0
   2 │ 3          4.22       0.0  IMP CHECK ON            0
   3 │ 4          8.24       0.0  IMP CHECK OFF           0
   4 │ 5         10.24       0.0  PAT BioCal EEG          0
   5 │ 6         17.07       0.0  PAT 1-Banana EEG        0
   6 │ 7         21.64       0.0  Head Straight           0
   7 │ 8         23.38       0.0  Awake                   0
   8 │ 9         25.629      0.0  Eyes Open               0
   9 │ 10        30.468      0.0  Eyes Closed             0
  10 │ 11        35.899      0.0  Swallow                 0
  11 │ 12        50.063      0.0  laughing                0
  ⋮  │   ⋮        ⋮         ⋮            ⋮             ⋮
  35 │ 35       552.88       0.0  PHOTO 19Hz              0
  36 │ 36       568.08       0.0  PHOTO 20Hz              0
  37 │ 37      1272.7        0.0  PAT 2-Trans EEG         0
  38 │ 38      1281.01       0.0  Drowsy                  0
  39 │ 39      1603.66       0.0  PAT 3-EarRef EEG        0
  40 │ 9       1625.96       0.0  Eyes Open               0
  41 │ 10      1638.53       0.0  Eyes Closed             0
  42 │ 9       1939.59       0.0  Eyes Open               0
  43 │ 10      1966.55       0.0  Eyes Closed             0
  44 │ 40      1987.52       0.0  PAT 3-EarRef CAL        0
                                             23 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "delete_marker(OBJ; n=1)"])

Edit 1st marker:

edit_marker(eeg, n=1, id="Note", start=1, len=1, value="test")
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;;], Dict{Any, Any}(), 45×5 DataFrame
 Row  id      start     length   value             channel  String  Float64   Float64  String            Int64   
─────┼──────────────────────────────────────────────────────
   1 │ Note       1.0        1.0  test                    0
   2 │ 2          1.14       0.0  A1+A2 OFF               0
   3 │ 3          4.22       0.0  IMP CHECK ON            0
   4 │ 4          8.24       0.0  IMP CHECK OFF           0
   5 │ 5         10.24       0.0  PAT BioCal EEG          0
   6 │ 6         17.07       0.0  PAT 1-Banana EEG        0
   7 │ 7         21.64       0.0  Head Straight           0
   8 │ 8         23.38       0.0  Awake                   0
   9 │ 9         25.629      0.0  Eyes Open               0
  10 │ 10        30.468      0.0  Eyes Closed             0
  11 │ 11        35.899      0.0  Swallow                 0
  ⋮  │   ⋮        ⋮         ⋮            ⋮             ⋮
  36 │ 35       552.88       0.0  PHOTO 19Hz              0
  37 │ 36       568.08       0.0  PHOTO 20Hz              0
  38 │ 37      1272.7        0.0  PAT 2-Trans EEG         0
  39 │ 38      1281.01       0.0  Drowsy                  0
  40 │ 39      1603.66       0.0  PAT 3-EarRef EEG        0
  41 │ 9       1625.96       0.0  Eyes Open               0
  42 │ 10      1638.53       0.0  Eyes Closed             0
  43 │ 9       1939.59       0.0  Eyes Open               0
  44 │ 10      1966.55       0.0  Eyes Closed             0
  45 │ 40      1987.52       0.0  PAT 3-EarRef CAL        0
                                             24 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "edit_marker(OBJ; id=Note, start=1, len=1, value=test, ch=0)"])

Add marker at position start (in seconds):

add_marker(eeg, id="Note", start=1, len=1, value="test")
NeuroAnalyzer.NEURO(NeuroAnalyzer.HEADER(Dict{Symbol, Any}(:weight => -1, :id => "", :middle_name => "", :height => -1, :head_circumference => -1, :handedness => "", :last_name => "000000 F 02-SEP-1938 Kamakaeha_Liliuokalani", :first_name => ""), Dict{Symbol, Any}(:epoch_id => "", :channel_type => ["eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg", "eeg"  …  "mrk", "eeg", "eeg", "ref", "ref", "eeg", "eeg", "mrk", "mrk", "mrk"], :label => ["Fp1", "Fp2", "F3", "F4", "C3", "C4", "P3", "P4", "O1", "O2"  …  "E", "PG1", "PG2", "A1", "A2", "T1", "T2", "Mark1", "Mark2", "Events/Markers"], :prefiltering => ["", "", "", "", "", "", "", "", "", ""  …  "", "", "", "", "", "", "", "", "", ""], :gain => [0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123  …  0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.09765624475471123, 0.3662998397802701, 0.3662998397802701, 3.0518043793392844e-5, 3.0518043793392844e-5], :data_type => "eeg", :recording_notes => "", :recording_date => "02.09.88", :sampling_rate => 200, :file_type => "EDF+"…), Dict(:name => "", :design => "", :notes => "")), [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [0.0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045  …  2000.95, 2000.955, 2000.96, 2000.965, 2000.97, 2000.975, 2000.98, 2000.985, 2000.99, 2000.995], [49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; 49.99999731441215 49.99999731441215 … 49.99999731441215 49.99999731441215; … ; -12002.91314991989 -12002.91314991989 … -12002.91314991989 -12002.91314991989; 3.0518043793392844e-5 3.0518043793392844e-5 … 3.0518043793392844e-5 3.0518043793392844e-5;;;], Dict{Any, Any}(), 46×5 DataFrame
 Row  id      start     length   value                 channel  String  Float64   Float64  String                Int64   
─────┼──────────────────────────────────────────────────────────
   1 │ 1          0.0        0.0  REC START BioCal CAL        0
   2 │ Note       1.0        1.0  test                        0
   3 │ 2          1.14       0.0  A1+A2 OFF                   0
   4 │ 3          4.22       0.0  IMP CHECK ON                0
   5 │ 4          8.24       0.0  IMP CHECK OFF               0
   6 │ 5         10.24       0.0  PAT BioCal EEG              0
   7 │ 6         17.07       0.0  PAT 1-Banana EEG            0
   8 │ 7         21.64       0.0  Head Straight               0
   9 │ 8         23.38       0.0  Awake                       0
  10 │ 9         25.629      0.0  Eyes Open                   0
  11 │ 10        30.468      0.0  Eyes Closed                 0
  ⋮  │   ⋮        ⋮         ⋮              ⋮               ⋮
  37 │ 35       552.88       0.0  PHOTO 19Hz                  0
  38 │ 36       568.08       0.0  PHOTO 20Hz                  0
  39 │ 37      1272.7        0.0  PAT 2-Trans EEG             0
  40 │ 38      1281.01       0.0  Drowsy                      0
  41 │ 39      1603.66       0.0  PAT 3-EarRef EEG            0
  42 │ 9       1625.96       0.0  Eyes Open                   0
  43 │ 10      1638.53       0.0  Eyes Closed                 0
  44 │ 9       1939.59       0.0  Eyes Open                   0
  45 │ 10      1966.55       0.0  Eyes Closed                 0
  46 │ 40      1987.52       0.0  PAT 3-EarRef CAL            0
                                                 25 rows omitted, 25×9 DataFrame
 Row  label   loc_radius  loc_theta  loc_x    loc_y    loc_z    loc_radius_sp ⋯
     │ String  Float64     Float64    Float64  Float64  Float64  Float64       ⋯
─────┼──────────────────────────────────────────────────────────────────────────
   1 │ Fp1            0.0        0.0      0.0      0.0      0.0             0. ⋯
   2 │ Fp2            0.0        0.0      0.0      0.0      0.0             0.
   3 │ F3             0.0        0.0      0.0      0.0      0.0             0.
   4 │ F4             0.0        0.0      0.0      0.0      0.0             0.
   5 │ C3             0.0        0.0      0.0      0.0      0.0             0. ⋯
   6 │ C4             0.0        0.0      0.0      0.0      0.0             0.
   7 │ P3             0.0        0.0      0.0      0.0      0.0             0.
   8 │ P4             0.0        0.0      0.0      0.0      0.0             0.
   9 │ O1             0.0        0.0      0.0      0.0      0.0             0. ⋯
  10 │ O2             0.0        0.0      0.0      0.0      0.0             0.
  11 │ F7             0.0        0.0      0.0      0.0      0.0             0.
  ⋮  │   ⋮         ⋮           ⋮         ⋮        ⋮        ⋮           ⋮       ⋱
  16 │ T6             0.0        0.0      0.0      0.0      0.0             0.
  17 │ Fz             0.0        0.0      0.0      0.0      0.0             0. ⋯
  18 │ Cz             0.0        0.0      0.0      0.0      0.0             0.
  19 │ Pz             0.0        0.0      0.0      0.0      0.0             0.
  20 │ PG1            0.0        0.0      0.0      0.0      0.0             0.
  21 │ PG2            0.0        0.0      0.0      0.0      0.0             0. ⋯
  22 │ T1             0.0        0.0      0.0      0.0      0.0             0.
  23 │ T2             0.0        0.0      0.0      0.0      0.0             0.
  24 │ A1             0.0        0.0      0.0      0.0      0.0             0.
  25 │ A2             0.0        0.0      0.0      0.0      0.0             0. ⋯
                                                    3 columns and 4 rows omitted, ["reset_components(OBJ)", "add_marker(OBJ; id=Note, start=1, len=1, value=test, ch=0)"])