Ejemplo n.º 1
0
    def __init__ (self,**kwargs):
        self.datapath=sum_data_path
        self.pck_open_name='summary_data.pck'

        self.sumdt=fh.open_pickle(self.pck_open_name)['sumdt']
        
        self.adt=fh.open_pickle(self.pck_open_name)['adt']
Ejemplo n.º 2
0
    def make_plots(self):
        self.exec_file = os.path.abspath(__file__)
        self.python_directory = os.path.split(self.exec_file)[0]

        self.datapath = path['sum_data_path'] + 'summary_data/'

        self.pck_open_name = 'vecstrength_unpaired_sumsundata.pck'
        self.datapath = path['input_data_path'] + 'summary_data/'

        self.sumdt = fh.open_pickle(self.datapath +
                                    self.pck_open_name)['sumdt']

        for data_type_ind, crflytype in enumerate(FLY_TYPE_TO_SAVE):
            motor_offset = OFFSET_TO_SUBTRACT[data_type_ind]
            self.crindtype = IND_TYPE_TO_SAVE[data_type_ind]

            self.csv_ind = 0
            flyinds = self.sumdt[crflytype]
            for self.crflynum in flyinds:

                self.get_fly_data(self.crflynum)
                if self.crdt:
                    for crind in np.arange(len(self.crdt)):
                        #0 is index for first sun flight
                        #1 is index for second sun flight
                        #2 is index for stripe flight
                        self.add_to_cr_csv(crind=crind)
Ejemplo n.º 3
0
    def process_data_by_fly(self):
        self.datvls = {}
        files = sorted(os.listdir(self.in_data_path))
        self.exec_file = os.path.abspath(__file__)
        self.txtfiles = sorted([f for f in files if f[-3:] == 'txt'])
        self.crdt = {}

        for self.crfile in self.txtfiles:
            self.get_data_by_file()

            if self.params:
                try:
                    self.datpath = self.raw_save_file_name

                    self.crdt = fh.open_pickle(self.datpath)

                    self.pckname = self.in_data_path + str(
                        self.fname) + '_rawdata.pck'
                except:

                    self.pckname = []

                    print 'no pickle'
            else:
                #pdb.set_trace()
                self.crdt = {}
                self.pckname = []
                print 'no pickle'

            self.make_example_figure()
def make_image():
    fig=plt.figure(figsize=(1,2))
    ax=fig.add_subplot(111)
    plt.set_cmap('viridis')
    crfile=files_to_plot[0]
    dt=fh.open_pickle(data_path+crfile+'.pck')
    ax.imshow(dt['im_mean'],origin='lower')
    
    plt.sca(ax)
           
    cr_roi=dt['roi'][roi_ind]
    
    cr_roi.display_roi()
    ax.set_ylim(10,70)
    ax.set_xlim(20,90)
    ten_microns_in_pixels=10/microns_per_pixel
    plt.plot([30,30+ten_microns_in_pixels],[20,20],'r')
    
    cr_center=on_target_centers[0]
    circ=plt.Circle((cr_center[0],cr_center[1]),radius=5/microns_per_pixel,edgecolor='k',facecolor='None')
    ax.add_patch(circ)
    cr_center=on_target_centers[1]
    circ=plt.Circle((cr_center[0],cr_center[1]),radius=5/microns_per_pixel,edgecolor='k',facecolor='None')
    ax.add_patch(circ)
    cr_center=off_target_centers[0]
    circ=plt.Circle((cr_center[0],cr_center[1]),radius=5/microns_per_pixel,edgecolor='r',facecolor='None')
    ax.add_patch(circ)
    cr_center=off_target_centers[1]
    circ=plt.Circle((cr_center[0],cr_center[1]),radius=5/microns_per_pixel,edgecolor='r',facecolor='None')
    ax.add_patch(circ)
    fpl.adjust_spines(ax,[])
Ejemplo n.º 5
0
def make_traces():
    fig = plt.figure(figsize=(1.5, 1.5))
    gs = GridSpec(2, 2, figure=fig)
    ax = {}
    ax['on'] = []
    ax['off'] = []
    ax['on'].append(fig.add_subplot(gs[0, 0]))
    ax['on'].append(fig.add_subplot(gs[1, 0]))
    ax['off'].append(fig.add_subplot(gs[0, 1]))
    ax['off'].append(fig.add_subplot(gs[1, 1]))
    for crind, crfile in enumerate(files_to_plot):
        dt = fh.open_pickle(data_path + crfile + '.pck')
        pdb.set_trace()
        pre_time_in_frames = int(np.ceil(pre_time_in_sec /
                                         TIME_BETWEEN_FRAMES))
        post_time_in_frames = int(
            np.ceil(post_time_in_sec / TIME_BETWEEN_FRAMES))
        for key in ['on', 'off']:
            if key is 'on':
                col = 'k'
            else:
                col = 'r'
            crax = ax[key][crind]

            st_time = stim_time_in_sec[key][crind]

            st_frame = int(np.ceil(st_time / TIME_BETWEEN_FRAMES) - 1)
            modvl = np.mod(st_time / TIME_BETWEEN_FRAMES,
                           np.floor(st_time / TIME_BETWEEN_FRAMES))
            crax.plot(np.arange(pre_time_in_frames),
                      dt['mn_roi'][roi_ind][st_frame -
                                            pre_time_in_frames:st_frame],
                      color=col,
                      linewidth=0.5)
            stim_duration_in_frames = stim_duration / TIME_BETWEEN_FRAMES
            st_time_in_frames = pre_time_in_frames - 1 + modvl
            crax.plot([
                st_time_in_frames, st_time_in_frames + stim_duration_in_frames
            ], [700, 700],
                      color='c',
                      linewidth=2)

            pre_f = dt['deltaf_vls']['pre_f'][roi_ind][stim_ind[key]]
            pst_f = dt['deltaf_vls']['pst_f'][roi_ind][stim_ind[key]]
            crax.plot(39, pre_f, '<')
            crax.plot(50, pst_f, '<')
            crax.plot(np.arange(post_time_in_frames) + pre_time_in_frames + 3,
                      dt['mn_roi'][roi_ind][st_frame + 3:st_frame + 3 +
                                            post_time_in_frames],
                      color=col,
                      linewidth=0.5)

            fpl.adjust_spines(crax, ['left'])
            crax.set_ylim(300, 900)
            crax.set_yticks([300, 900])
            if crind == 0:
                if key is 'on':
                    crax.plot([10, 10 + 1 / TIME_BETWEEN_FRAMES], [350, 350],
                              'k')
Ejemplo n.º 6
0
def check_if_period_calculated(fname):
    #check if file exists
    pck_fname = fname.strip('.txt') + '_sumdata.pck'
    if os.path.isfile(pck_fname):
        params = fh.open_pickle(pck_fname)
        try:
            return params['steps_per_rotation'], params['corr_dict']
        except:
            return
    else:
        return
Ejemplo n.º 7
0
    def get_data_by_fly(self):
        #print
        EXPCT=0
        self.suffix=self.crflyname+'/cloop/'

        files = sorted(os.listdir(self.datapath+self.suffix))
        crdt={}

        pck_files = [f for f in files if f.find(self.cr_indata_str)>0]


        for self.crfile in pck_files:

            crdata=fh.open_pickle(self.datapath+self.suffix+self.crfile)
            
            if crdata:
                crdt[EXPCT]=crdata
                if ADD_START_ANGLE:
                    skip_flag=False

                    if 'exp' in crdata['sumstats'].keys():
                        crkey='exp'
                    elif 'ctrl' in crdata['sumstats'].keys():
                        crkey='ctrl'
                    else:
                        skip_flag=True
                    if not skip_flag:
                        cr_rad=crdata['sumstats'][crkey]['mot_rad']
                        mnvl=circ.circmean(cr_rad[0:2])
                        crdt[EXPCT]['sumstats'][crkey]['start_rad']=circ.circmean(mnvl)

                        if mnvl>100:
                            print('mnvl greater than 100')
                if ADD_TIME_OF_DAY:

                    if 'exp' in crdata['sumstats'].keys():
                        crkey='exp'
                    elif 'ctrl' in crdata['sumstats'].keys():
                        crkey='ctrl'
                    else:
                        skip_flag=True
                    if not skip_flag:
                        tst=1

                EXPCT=EXPCT+1

        if crdt:
            crdt=self.add_total_vec_strength_across_paired(crdt)
           
            self.sumdt[self.flyct]=crdt

            self.sumdt[self.flyct]['crday']=self.crday

            self.flyct=self.flyct+1
Ejemplo n.º 8
0
    def get_fly_data(self, crflynum):
        try:
            fname_to_plot = self.sumdt[crflynum][0]['sumstats'][0]['fname']
        except:
            self.crdt = {}
            return
        split_name = fname_to_plot.split('Dropbox')

        datpath = dropbox_path + 'Dropbox' + split_name[1].strip(
            '.txt') + '_rawdata.pck'

        self.crdt = fh.open_pickle(datpath)

        print 'pickle file opened'
Ejemplo n.º 9
0
    def get_data_by_file(self):
        mod_file_name = os.path.join(self.in_data_path,
                                     'modified_raw_data.pck')
        self.fname = os.path.join(self.in_data_path, self.crfile)
        pck_fname = self.fname.strip('.txt') + '.pck'
        try:
            self.params = fh.open_pickle(pck_fname)
        except:
            print('open pickle error')

        try:
            if not os.path.isfile(mod_file_name):
                self.tmpdat = (np.array(np.genfromtxt(self.fname)))
            else:
                self.tmpdat = fh.open_pickle(mod_file_name)
        except:
            print('file name error')
            self.tmpdat = []

        self.prep_data_fxn()

        if self.crdata:
            #if self.exp_type=='closed':

            self.anal_closed_stroke_data()
            if self.anal_type == 'paired':
                self.datvls[self.pairind] = {}

                self.datvls[self.pairind]['sumstats'] = self.sumstats
                self.datvls[self.pairind]['splitstats'] = self.splitstats
            else:
                self.datvls['PAIR_FLAG'] = 0
                self.datvls['sumstats'] = self.sumstats
                self.datvls['splitstats'] = self.splitstats

                self.datvls['params'] = self.params
Ejemplo n.º 10
0
    def get_data(self,crfly):
        crexp=0
        crind=0

        try:
            split_name=self.sumdt[crfly][crexp]['sumstats'][crind]['fname'].split('Dropbox/')
            DAT_FLAG=True
        except:
            DAT_FLAG=False

        if DAT_FLAG:
            if len(split_name)<2:
                split_name=self.sumdt[crfly][crexp]['sumstats']['sun'][0]['fname'].split('data/')

            datpath=dropbox_path+split_name[1].strip('.txt')+'_rawdata.pck'
            params_datapath=dropbox_path+split_name[1].strip('.txt')+'.pck'
            try:
                self.crdt=fh.open_pickle(datpath)

                self.params=fh.open_pickle(params_datapath)
            except:
                pdb.set_trace()
        else:
            self.crdt=[]
#file_name=['2x 10 micron diam z-stack20space seperation  - 1_XY1553116792_Z000_T0_C0.tif']
microns_per_pixel = 1.47441
off_target_centers = [[182, 195], [190, 189]]
on_target_centers = [[179, 186], [187.5, 202]]
UNIQUE_STIM_EVENTS = 1
fig = plt.figure()
ax = []
ax.append(fig.add_subplot(221))
ax.append(fig.add_subplot(222))
ax.append(fig.add_subplot(223))
ax.append(fig.add_subplot(224))

stim_region = {}
for crind in np.arange(len(file_names)):
    dt = util.read_in_tif(data_path + file_names[crind])
    savedt = fh.open_pickle(data_path + pck_name)
    stim_region = savedt['stim_region']
    pdb.set_trace()
    plt.set_cmap('hot')
    imobj = ax[crind].imshow(dt['tifstack'])
    ax[crind].set_xlim(140, 240)
    ax[crind].set_ylim(125, 240)
    if crind == 0:
        imobj.set_clim(200, 500)
    if crind == 1:
        imobj.set_clim(200, 500)
    imobj = ax[crind + 2].imshow(dt['tifstack'])
    imobj.set_clim(100, 900)
    ax[crind + 2].set_xlim(130, 250)
    ax[crind + 2].set_ylim(130, 250)
Ejemplo n.º 12
0
TIME_BETWEEN_FRAMES = .12625
PREVIOUS_ROI_FILE = '---Streaming Phasor Capture - 8_XY0_Z0_T0000_C0.tif'
#specific to configuration
data_path = '/Volumes/LaCie/tstdir/'
meta_dt_file = 'anim5_plotdata.pck'
stim_meta_dir = 'photomanipulation_data/'
#file_names= ['---Streaming Phasor Capture - 1_XY0_Z0_T000_C0.tif']
file_names = ['---Streaming Phasor Capture - 8_XY0_Z0_T0000_C0.tif']
preframes = 20
postframes = 5
stim_region = {}
colors = ['c', 'g', 'm', 'b']

#read in tif file
if USE_META_DT_FILE:
    meta_dt = fh.open_pickle(data_path + meta_dt_file)
    file_names = meta_dt['file_names']
    PREVIOUS_ROI_FILE = file_names[0]

#im is a dictionary with tifstack and metadata about imaging from PMT
for file_name in file_names:
    (im, stim) = util.read_in_tif_and_get_metadata(data_path + file_name)

    if STIM_FLAG:
        logfile = file_name.split('_')[0] + '.txt'
        stimfile = data_path + stim_meta_dir + logfile
        (stim_depths, erroneous_stim_times) = util.get_stim_depths(stimfile)

        roi_file = stimfile.split('.txt')[0] + '-points.txt'
        (stim_region['xlist'], stim_region['ylist']) = util.get_stim_region(
            roi_file, unique_events=UNIQUE_STIM_EVENTS)
def main():
    mn_by_animal = {}
    for file_ind, crfile in enumerate(summary_data_files_to_load):
        dt = fh.open_pickle(summary_data_location + crfile)
        delta_f = dt['delta_f']

        fvls_array = {}

        for target_key in ['on', 'off']:
            if file_ind == 0:
                mn_by_animal[target_key] = []
            fvls_sum = {}

            fvls_sum['raw'] = []
            fvls_sum['norm'] = []
            fvls_array[target_key] = {}
            for expind, exp_key in enumerate(delta_f.keys()):

                try:
                    fvls_to_add = delta_f[exp_key][target_key]['fvl']
                except:
                    fvls_to_add = delta_f[exp_key][target_key]['fvl_raw']
                norm_fvls_to_add = fvls_to_add / dt['max_value'][exp_key]

                fvls_sum['norm'].append(norm_fvls_to_add)
                if expind > 0:
                    crlen = len(fvls_sum['raw'][0])
                    if len(fvls_to_add) > crlen:
                        pdb.set_trace()
                        fvls_to_add = fvls_to_add[0:crlen]
                fvls_sum['raw'].append(fvls_to_add)

                shape1 = np.shape(fvls_sum['norm'])[0]
            if len(np.shape(fvls_sum['norm'])) == 2:
                shape = np.shape(fvls_sum['norm'])

            fvls_array[target_key]['fvl_norm'] = np.mean(np.array(
                fvls_sum['norm']),
                                                         axis=0)
            try:
                fvls_array[target_key]['fvl_raw'] = np.mean(np.array(
                    fvls_sum['raw']),
                                                            axis=0)
            except:
                pdb.set_trace()
            tmp_depth = delta_f[0][target_key]['depth']
            if ROUND_TO_NEAREST:
                fvls_array[target_key]['depth'] = myround(
                    np.array(tmp_depth), base=ROUND_TO_NEAREST)
            else:
                fvls_array[target_key]['depth'] = np.array(tmp_depth)

            mn_by_animal[target_key].append(
                calc_mean_for_animal_over_depth_range(fvls_array[target_key],
                                                      target_key))

            norm_flag = False

            plt_util.plot_raw(axnorm, fvls_array, norm_flag, line_flag=True)
        fpl.adjust_spines(axnorm, ['left', 'bottom'])
        axnorm.set_ylim(-.25, 0.75)
        axnorm.set_yticks([-.25, 0, 0.25, 0.5, 0.75])
        axnorm.set_xlim(-62, 42)
    plot_sum_for_each_animal(axsum, mn_by_animal)