def run_plot(person1, mode1, person2, mode2, avg_sizes, channels): chain1 = p300_sample_data.get_chain(person1, mode1, 5) chain2 = p300_sample_data.get_chain(person2, mode2, 5) x = 1 # for now y = 1 # for now assert(len(channels) == 1) # for now mgrs1 = None mgrs2 = None # Filter for ch in [chain1[0], chain1[3], chain1[4]]: mgrs1 = ch.process(mgrs1) for ch in [chain2[0], chain2[3], chain2[4]]: mgrs2 = ch.process(mgrs2) # Segment segmenter = my_tools.Segment(classes=('target','non-target'), start_offset=-0.1, duration=0.6) mgrs1 = segmenter.process(mgrs1) mgrs2 = segmenter.process(mgrs2) averager = my_tools.Average(bin_selectors=[lambda mgr: mgr['name'] == 'target', lambda mgr: mgr['name'] == 'non-target'], bin_names=['target', 'non-target'], size=5, baseline=0.1, strategy='random') samp = float(mgrs1[0].get_param('sampling_frequency')) for i, avg_size in enumerate(avg_sizes): # Ommit reading-in : normalize, prepare, classify averager.size = avg_size avgs1 = averager.process(mgrs1) avgs2 = averager.process(mgrs2) plotter = erp_plot.Plotter(x, y, avg_size) plt_id = 0 for i_ch_name in channels: plt_id += 1 avgs = [] for avg in avgs1: if avg.get_param('epoch_name') == 'target': avg.name = '1 - target' avgs.append(avg) break for avg in avgs1: if avg.get_param('epoch_name') == 'non-target': avg.name = '1 - non-target' avgs.append(avg) break for avg in avgs2: if avg.get_param('epoch_name') == 'target': avg.name = '2 - target' avgs.append(avg) break for avg in avgs2: if avg.get_param('epoch_name') == 'non-target': avg.name = '2 - non-target' avgs.append(avg) break for j, avg in enumerate(avgs): ch = avg.get_channel_samples(i_ch_name)*0.0715 plotter.add_plot(ch, avg.name+" - "+i_ch_name, [i*(1/samp)*1000 for i in range(-0.1*samp-1, len(ch)-(0.1*samp))], plt_id, {'linewidth':2.0}) plotter.prepare_to_show() erp_plot.show()
def plot_avgs_for(p_files, plot_type='all', p_show=True, x=None, y=None, channel_names=None): mgr_neu1 = smart_tags_manager.SmartTagsManager(NEU1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neu1.kamil_desc = "Neutr1" mgr_neu3 = smart_tags_manager.SmartTagsManager(NEU3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neu3.kamil_desc = "Neutr3" mgr_neg1 = smart_tags_manager.SmartTagsManager(NEG1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neg1.kamil_desc = "N1" mgr_neg3 = smart_tags_manager.SmartTagsManager(NEG3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neg3.kamil_desc = "N3" mgr_pos1 = smart_tags_manager.SmartTagsManager(POS1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_pos1.kamil_desc = "P1" mgr_pos3 = smart_tags_manager.SmartTagsManager(POS3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_pos3.kamil_desc = "P3" mgr_dr = smart_tags_manager.SmartTagsManager(DREWNO_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_dr.kamil_desc = "Drewno" mgrs = [] if plot_type == 'all': mgrs.append(mgr_neu1) mgrs.append(mgr_neu3) mgrs.append(mgr_neg1) mgrs.append(mgr_neg3) mgrs.append(mgr_pos1) mgrs.append(mgr_pos3) mgrs.append(mgr_dr) elif plot_type == 'system': mgr_pos1.kamil_desc = "Aut1 = P1+N1" mgr_pos1.get_smart_tags() mgr_pos1._smart_tags += mgr_neg1.get_smart_tags() mgrs.append(mgr_pos1) mgr_pos3.kamil_desc = "Refl3 = P3+N3" mgr_pos3.get_smart_tags() mgr_pos3._smart_tags += mgr_neg3.get_smart_tags() mgrs.append(mgr_pos3) mgr_neu1.kamil_desc = "Neu = Neu1+Neu3" mgr_neu1.get_smart_tags() mgr_neu1._smart_tags += mgr_neu3.get_smart_tags() mgrs.append(mgr_neu1) mgrs.append(mgr_dr) elif plot_type == 'sign': mgr_pos1.kamil_desc = "Pos = P1+P3" mgr_pos1.get_smart_tags() mgr_pos1._smart_tags += mgr_pos3.get_smart_tags() mgrs.append(mgr_pos1) mgr_neg1.kamil_desc = "Neg = N1+N3" mgr_neg1.get_smart_tags() mgr_neg1._smart_tags += mgr_neg3.get_smart_tags() mgrs.append(mgr_neg1) mgr_neu1.kamil_desc = "Neu = Neu1+Neu3" mgr_neu1.get_smart_tags() mgr_neu1._smart_tags += mgr_neu3.get_smart_tags() mgrs.append(mgr_neu1) mgrs.append(mgr_dr) #mgr_pos3.kamil_desc = "P3+N3" #mgr_pos3.get_smart_tags() #mgr_pos3._smart_tags += mgr_neg3.get_smart_tags() #mgrs.append(mgr_pos3) if channel_names is None: import math channel_names = [mgr_pos.get_param('channels_names')] x = int(math.sqrt(len(channels_names))) y = ceil(math.sqrt(len(channels_names))) for i, channels in enumerate(channel_names): plotter = erp_plot.Plotter(x, y, i) plt_id = 0 for i_ch_name in channels: plt_id += 1 for mgr in mgrs: avgs_for_channels = erp_avg.get_normalised_avgs( mgr, abs(START_SEC_OFFSET) * 1024) * 0.0715 ch = get_channel_data(mgr_dr, avgs_for_channels, i_ch_name) if ch is None: LOGGER.warning("Couldn`t find channel for name: " + i_ch_name) else: samp = float( mgr.get_read_manager().get_param('sampling_frequency')) plotter.add_plot(ch, mgr.kamil_desc + " " + i_ch_name, [ i for i in range( START_SEC_OFFSET * samp - 1, len(ch) - (abs(START_SEC_OFFSET) * samp)) ], plt_id) #store_avgs_for_svarog([ch]) plotter.prepare_to_show() if p_show: erp_plot.show()
def plot_avgs_for(p_files, plot_type='all', p_show=True, x=None, y=None, channel_names=None): mgr_neu1 = smart_tags_manager.SmartTagsManager(NEU1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neu1.kamil_desc = "Neutr1" mgr_neu3 = smart_tags_manager.SmartTagsManager(NEU3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neu3.kamil_desc = "Neutr3" mgr_neg1 = smart_tags_manager.SmartTagsManager(NEG1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neg1.kamil_desc = "N1" mgr_neg3 = smart_tags_manager.SmartTagsManager(NEG3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_neg3.kamil_desc = "N3" mgr_pos1 = smart_tags_manager.SmartTagsManager(POS1_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_pos1.kamil_desc = "P1" mgr_pos3 = smart_tags_manager.SmartTagsManager(POS3_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_pos3.kamil_desc = "P3" mgr_dr = smart_tags_manager.SmartTagsManager(DREWNO_TAG_DEF, p_files['info'], p_files['data'], p_files['tags']) mgr_dr.kamil_desc = "Drewno" mgrs = [] if plot_type == 'all': mgrs.append(mgr_neu1) mgrs.append(mgr_neu3) mgrs.append(mgr_neg1) mgrs.append(mgr_neg3) mgrs.append(mgr_pos1) mgrs.append(mgr_pos3) mgrs.append(mgr_dr) elif plot_type == 'system': mgr_pos1.kamil_desc = "Aut1 = P1+N1" mgr_pos1.get_smart_tags() mgr_pos1._smart_tags += mgr_neg1.get_smart_tags() mgrs.append(mgr_pos1) mgr_pos3.kamil_desc = "Refl3 = P3+N3" mgr_pos3.get_smart_tags() mgr_pos3._smart_tags += mgr_neg3.get_smart_tags() mgrs.append(mgr_pos3) mgr_neu1.kamil_desc = "Neu = Neu1+Neu3" mgr_neu1.get_smart_tags() mgr_neu1._smart_tags += mgr_neu3.get_smart_tags() mgrs.append(mgr_neu1) mgrs.append(mgr_dr) elif plot_type == 'sign': mgr_pos1.kamil_desc = "Pos = P1+P3" mgr_pos1.get_smart_tags() mgr_pos1._smart_tags += mgr_pos3.get_smart_tags() mgrs.append(mgr_pos1) mgr_neg1.kamil_desc = "Neg = N1+N3" mgr_neg1.get_smart_tags() mgr_neg1._smart_tags += mgr_neg3.get_smart_tags() mgrs.append(mgr_neg1) mgr_neu1.kamil_desc = "Neu = Neu1+Neu3" mgr_neu1.get_smart_tags() mgr_neu1._smart_tags += mgr_neu3.get_smart_tags() mgrs.append(mgr_neu1) mgrs.append(mgr_dr) #mgr_pos3.kamil_desc = "P3+N3" #mgr_pos3.get_smart_tags() #mgr_pos3._smart_tags += mgr_neg3.get_smart_tags() #mgrs.append(mgr_pos3) if channel_names is None: import math channel_names = [mgr_pos.get_param('channels_names')] x = int(math.sqrt(len(channels_names))) y = ceil(math.sqrt(len(channels_names))) for i, channels in enumerate(channel_names): plotter = erp_plot.Plotter(x, y, i) plt_id = 0 for i_ch_name in channels: plt_id += 1 for mgr in mgrs: avgs_for_channels = erp_avg.get_normalised_avgs(mgr, abs(START_SEC_OFFSET)*1024)*0.0715 ch = get_channel_data(mgr_dr, avgs_for_channels, i_ch_name) if ch is None: LOGGER.warning("Couldn`t find channel for name: "+i_ch_name) else: samp = float(mgr.get_read_manager().get_param('sampling_frequency')) plotter.add_plot(ch, mgr.kamil_desc+" "+i_ch_name, [i for i in range(START_SEC_OFFSET*samp-1, len(ch)-(abs(START_SEC_OFFSET)*samp))], plt_id) #store_avgs_for_svarog([ch]) plotter.prepare_to_show() if p_show: erp_plot.show()