config_dump_16_04_01.yaml 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. system:
  2. plot: 0
  3. general:
  4. debug: 1
  5. clear_trial_history: False
  6. daq:
  7. n_channels_max: 128
  8. # n_channels: 2
  9. # exclude_channels: [] # These are BlackRock channel IDs (1-based).
  10. exclude_channels: []
  11. # car_channels: [] # channel IDs to use for common average reference. This is useful
  12. # for spike band power and LFP calculations
  13. car_channels: []
  14. fs: 30000. # sampling frequency
  15. smpl_fct: 30 # downsample factor
  16. trigger_len: 50 # length of triggers <--- review: this parameter only appears in a commented out line
  17. daq_sleep: 0.1 # s <--- review: this parameter does not seem to be used anywhere
  18. normalization:
  19. len: 600.0 # in seconds. Length of normalization period
  20. do_update: false # Performs automatic updates if true
  21. update_interval: 10.0 # in seconds. Defines in what intervals the rate normalization will be updated
  22. range: [10, 90] # centiles, for automated normalization
  23. clamp_firing_rates: True
  24. # if use_all_channels is False:
  25. # channel firing rate r will be clamped and normalized (r_n):
  26. # r_n = (max(bottom, min(top, r)) - bottom) / (top - bottom)
  27. # if the channel is set to 'invert', then r_n := 1 - r_n
  28. # All normalized rates are then averaged.
  29. # otherwise, all channels will be averaged first, then normalized
  30. use_all_channels: false # if True, all channels will be used. If False, channels as specified below will be used
  31. all_channels: {bottom: 1.15625, top: 1.59375, invert: false}
  32. channels:
  33. - {id: 20, bottom: 20.0, top: 35.0, invert: true}
  34. - {id: 99, bottom: 7.0, top: 16.0, invert: false}
  35. # - id: 18
  36. # bottom: 2 # signal will be clamped to the range [bottom, top] and normalized
  37. # top: 19
  38. # invert: True # if True, channels normalized rate will be subtracted from 1.
  39. # # - id: 17
  40. # bottom: 0 # signal will be clamped to the range [bottom, top] and normalized
  41. # top: 16
  42. # invert: False # if True, channels normalized rate will be subtracted from 1.
  43. # - id: 42
  44. # bottom: 0 # signal will be clamped to the range [bottom, top] and normalized
  45. # top: 9
  46. # invert: False # if True, channels normalized rate will be subtracted from 1.
  47. # - id: 0
  48. # bottom: 1 # signal will be clamped to the range [bottom, top] and normalized
  49. # top: 20
  50. # invert: False # if True, channels normalized rate will be subtracted from 1.
  51. # - id: 1
  52. # bottom: 2 # signal will be clamped to the range [bottom, top] and normalized
  53. # top: 24
  54. # invert: True # if True, channels normalized rate will be subtracted from 1.
  55. spike_rates:
  56. n_units: 1 # number of units per channel
  57. bin_width: 0.05 # sec, for spike rate estimation
  58. loop_interval: 50 # ms
  59. method: 'boxcar' # exponential or boxcar
  60. decay_factor: .9 # for exponential decay, for each step back, a bin's count will be multiplied by decay_factor
  61. max_bins: 20 # for exponential and boxcar methods, determines numbers of bins in history to take into account
  62. # bl_offset: 0.000001 # baseline correction constant
  63. bl_offset: 30. # baseline correction constant
  64. # bl_offset: 0.1 # baseline correction constant
  65. correct_bl: False # for online mode
  66. correct_bl_model: False # for offline mode
  67. buffer:
  68. length: 600 # buffer shape: (length, channels)
  69. session:
  70. flags:
  71. bl: True
  72. bl_rand: True
  73. decode: True
  74. stimulus: True
  75. recording:
  76. timing:
  77. t_baseline_1: 5. # sec, trial-1 baseline duration
  78. t_baseline_all: 2. # sec, all other trials
  79. t_baseline_rand: 1. # sec, add random inter-trial interval between 0 and t_baseline_rand IF session.flags.bl_rand is True
  80. t_after_stimulus: 0.50
  81. t_response: 5. # sec, trial response duration
  82. decoder_refresh_interval: .01 # sec, for continuous decoding, the cycle time of the decoder
  83. bci_loop_interval: .05 # sec, step for bci thread loop
  84. recording_loop_interval: .05 # sec, step for bci thread loop
  85. recording_loop_interval_data: .02 # sec, step for data process loop
  86. classifier:
  87. max_active_ch_nr: []
  88. # include_channels: [38, 43, 50, 52, 56, 61, 65, 67, 73, 81, 87, 88, 91]
  89. # include_channels: [0, 1, 4, 7, 8, 12, 14, 19, 22, 26, 28, 29, 31, 96, 100, 103]
  90. # include_channels: range(0,128)
  91. include_channels: [20]
  92. # include_channels: [0, 1, 4, 6, 7, 8, 12, 14, 19, 20, 22, 26, 28, 29, 31, 96, 100, 103, 121]
  93. # include_channels: [ 1, 2, 3, 9, 19, 29, 41, 44, 48, 51, 52, 53, 54,
  94. # 62, 63, 66, 74, 82, 94, 95, 113]
  95. # exclude_channels: []
  96. exclude_channels: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
  97. 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27,
  98. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
  99. 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  100. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
  101. 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  102. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
  103. 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  104. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
  105. 119, 120, 121, 122, 123, 124, 125, 126, 127]
  106. # exclude_channels: range(32,96)
  107. # exclude_channels: []
  108. n_triggers: 2 # DO NOT CHANGE THIS
  109. n_classes: 2
  110. template: [10, 14, 18, 22, 26, 30, 34, 38]
  111. trigger_pos: 'start' # 'start' or 'stop'
  112. online: False # will be overwritten by code, see bci.py
  113. thr_prob: 0.8
  114. thr_window: 40 #30 # number of samples for prob above threshold to trigger decision
  115. break_loop: True # True: move on as soon as decision is there, otherwise wait t_response time
  116. # models to use for online decoding
  117. path_model1: '/data/clinical/neural/fr/2019-06-26/model1_104948.pkl' # scikit
  118. path_model2: '/data/clinical/neural/fr/2019-06-26/model2_104948.pkl' # explicit LDA
  119. exclude_data_channels: []
  120. n_neg_train: 100000
  121. deadtime: 40
  122. model_training:
  123. save_model: False
  124. model: 'scikit' # eigen, scikit, explicit
  125. solver: 'lsqr' # svd, lsqr, eigen
  126. cross_validation: True
  127. n_splits: 5 # for cross-validation
  128. test_size: .2 # float between (0,1) or int (absolute number of trials, >=n_classes)
  129. reg_fact: 0.3 # regularization factor
  130. fsel: False # feature selection
  131. triggers_plot: 3
  132. peaks: # these values are for offline training
  133. # height: 0.9 # probability threshold
  134. # width: 28 # min number of samples above threshold
  135. distance: 40 # number of samples for peaks to be apart
  136. sig: 'pred' # 'prob', 'pred' -> signal based on probabilities or prediction class
  137. prefilter: False
  138. psth:
  139. cut : [-40, 100]
  140. lfp:
  141. fs: 1000 # sampling rate
  142. sampling_ratio: 30
  143. filter_fc_lb: [10, 0] # cut-off frequencies for filter
  144. filter_fc_mb: [12, 40] # cut-off frequencies for filter
  145. filter_fc_hb: [60, 250] # cut-off frequencies for filter
  146. filter_order_lb: 2
  147. filter_order_mb: 6
  148. filter_order_hb: 10
  149. artifact_thr: 400 # exclude data above this threshold
  150. array1: range(32,64) #3 4 7 8 10 14 17 15 44
  151. array21: range(2)
  152. # array22: range(100,112)
  153. array22: [] #range(96,128)
  154. array1_exclude: []
  155. array2_exclude: []
  156. i_start: 0 #None # import data from start index
  157. i_stop: -1 #600000 #None # to stop index
  158. psth_win: [-1000, 5000]
  159. exclude: False
  160. normalize: False
  161. zscore: False
  162. car: True
  163. sub_band: 1
  164. motor_mapping: ['Zunge', 'Schliesse_Hand', 'Oeffne_Hand', 'Bewege_Augen', 'Bewege_Kopf']
  165. spectra:
  166. spgr_len: 500
  167. plot:
  168. ch_ids: [0] # relative id of imported channel
  169. general: True
  170. filters: False
  171. cerebus:
  172. instance: 0
  173. buffer_reset: True
  174. buffer_size_cont: 30001
  175. buffer_size_comments: 500
  176. file_handling:
  177. data_path: '/data/clinical/neural/fr/'
  178. # data_path: '/home/vlachos/devel/vg/kiapvmdev/data/clinical/neural_new/'
  179. results: '/data/clinical/nf/results/'
  180. # results: '/home/vlachos/devel/vg/kiapvmdev/data/clinical/neural_new/results/'
  181. # data_path: '/media/vlachos/kiap_backup/Recordings/K01/laptop/clinical/neural/'
  182. # data_path: '/media/kiap/kiap_backup/Recordings/K01/Recordings/20190326-160445/'
  183. save_data: True # keep always True
  184. mode: 'ab' # ab: append binary, wb: write binary (will overwrite existing files)
  185. git_hash: e5cf42b
  186. filename_data: /data/clinical/neural/fr/2019-07-03/data_16_04_01.bin
  187. filename_log_info: /data/clinical/neural/fr/2019-07-03/info_16_04_01.log
  188. filename_events: /data/clinical/neural/fr/2019-07-03/events_16_04_01.txt
  189. speller:
  190. type: 'feedback' # exploration, question, training_color, color, feedback
  191. audio: True
  192. pyttsx_rate: 100
  193. audio_result_fb: True
  194. feedback:
  195. # normalized rate is multiplied by alpha, and baseline beta added.
  196. feedback_tone: True
  197. alpha: 360 # scaling coefficient
  198. beta: 120 # offset
  199. tone_length: 0.25 # lenght of feedback tone in seconds
  200. target_tone_length: 1.0 # length of feedback tone in seconds
  201. reward_on_target: true # If target is reached, play reward tone and abort trial
  202. target_n_tones: 5 # Play the target tone every n feedback tones
  203. reward_sound: '/kiap/data/speller/feedback/kerching.wav'
  204. hold_iterations: 3
  205. plot:
  206. channels: [20, 99] # channels for live plot, need to restart app if changed
  207. fps: 10. # frames per second
  208. pca: False
  209. sim_data:
  210. rate_bl: 10