Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()