Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. fname = '/home/jrking/Desktop/R0174_block1_1.13.17.sqd'
  2. from mne.io.pick import channel_type
  3.  
  4. raw = read_raw_kit(fname)
  5. stim_channel = [ii for ii in range(len(raw.info['chs']))
  6. if channel_type(raw.info, ii) == 'stim'][0]
  7. raw.load_data()
  8.  
  9. def fix_trigger_channel(data, shortest_event=3):
  10. diff = np.diff(data) # isolate onset and offsets by taking derivative
  11. starts = np.where(diff > 0)[0] # keep onsets indices only
  12. good = np.where(np.diff(starts) >= shortest_event)[0]
  13. new_data = np.zeros_like(data) # create a new trigger channels
  14.  
  15. # for each good start, fill the array with 50 times the actual trigger value
  16. for t in range(shortest_event):
  17. new_data[starts[good] + t] = data[starts[good] + shortest_event]
  18.  
  19. return new_data
  20.  
  21. # Clean raw trigger channel to ensure that the values are either = trigger or 0 (no transition < 1 time sample)
  22. raw._data[stim_channel] = fix_trigger_channel(255 - raw._data[stim_channel])
  23. events = find_events(raw, stim_channel='STI 014', shortest_event=1)
  24.  
  25. # only keep the relevant events
  26. good = np.where(events[:, 2] <= 27)[0]
  27. events = events[good]
  28.  
  29. # somehow, only every other event seem to be important
  30. events = events[::2]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement