Пример #1
0
 def load_dic(self, *filt, **kw):
     d={}  
     if kw.get('keys_iterator'):
         for keys in kw['keys_iterator']:
             print keys
             storage=misc.dict_recursive_get(self, keys)
             val=storage.load_data()
             d=misc.dict_recursive_add(d, keys, val)
         return d
   
     for keys, storage in misc.dict_iter(self):
         if filt==():
             pass
         else:
             a=False
             i=0
             for key in keys:
                 if key not in filt and i not in kw.get('star', []):
                     a=True
                 i+=1
                 
                 if key=='mean_rates':
                     pass
                 if i==len(keys):
                     break
                 
             if a:
                 continue
                    
         val=storage.load_data()
         d=misc.dict_recursive_add(d, keys, val)
             
     return d
Пример #2
0
    def load_dic(self, *filt, **kw):
        d = {}
        if kw.get('keys_iterator'):
            for keys in kw['keys_iterator']:
                print keys
                storage = misc.dict_recursive_get(self, keys)
                val = storage.load_data()
                d = misc.dict_recursive_add(d, keys, val)
            return d

        for keys, storage in misc.dict_iter(self):
            if filt == ():
                pass
            else:
                a = False
                i = 0
                for key in keys:
                    if key not in filt and i not in kw.get('star', []):
                        a = True
                    i += 1

                    if key == 'mean_rates':
                        pass
                    if i == len(keys):
                        break

                if a:
                    continue

            val = storage.load_data()
            d = misc.dict_recursive_add(d, keys, val)

        return d
Пример #3
0
def show_plot(axs,
              name,
              d,
              models=['M1', 'M2', 'FS', 'GA', 'GI', 'ST', 'SN'],
              **k):
    dd = {}
    by_sets = k.pop('by_sets', False)

    for keys, val in misc.dict_iter(d):

        if keys[-1] != name:
            continue
        if by_sets and keys[0][0:3] != 'set':
            continue

        first_keys = keys[:-2]
        if type(first_keys) == str:
            first_keys = [first_keys]

        new_keys = ['_'.join(first_keys)] + keys[-2:]

        dd = misc.dict_recursive_add(dd, new_keys, val)

    d = dd

    #     if k.get('fig_and_axes', False):

    #     else:
    #         fig, axs=ps.get_figure(n_rows=len(models), n_cols=1, w=1000.0, h=800.0,
    #                            fontsize=k.get('fontsize',10))
    labels = k.pop('labels', sorted(d.keys()))
    #     colors=misc.make_N_colors('Paired', max(len(labels), 6))
    colors = k.pop('colors', misc.make_N_colors('jet', max(len(labels), 1)))
    linestyles = ['-'] * len(labels)

    j = 0
    nets = k.get('nets', sorted(d.keys()))
    for key in nets:
        v = d[key]
        #         axs[0].set_title(k)
        for i, model in enumerate(models):
            kk = {
                'label': model + ' ' + labels[j],
                'linestyle': linestyles[j],
                'color': colors[j]
            }
            if 'win' in k.keys():
                kk['win'] = k['win']
            if 't_start' in k.keys():
                kk['t_start'] = k['t_start']
            if 't_stop' in k.keys():
                kk['t_stop'] = k['t_stop']

            print model
            if model in v.keys():
                v[model][name].plot(ax=axs[i], **kk)
        j += 1

    for ax in axs:
        ax.legend()
Пример #4
0
 def force_update(self, file_name):
     
     self.file_name=file_name
     self.directory=file_name+'/'
     
     for _, storage in misc.dict_iter(self.dic):
         storage.set_main_path(self.directory)
         file_name=storage.get_data_path().split('/')[-1]
         storage.set_data_path(self.directory+file_name)
Пример #5
0
    def force_update(self, file_name):

        self.file_name = file_name
        self.directory = file_name + '/'

        for _, storage in misc.dict_iter(self.dic):
            storage.set_main_path(self.directory)
            file_name = storage.get_data_path().split('/')[-1]
            storage.set_data_path(self.directory + file_name)
def interpolate(d):
    dinter={}

    
    for keys, val in misc.dict_iter(d):
        if keys[-1]!= 'mean_rate_slices':
            continue
        key='_'.join(keys[0].split('_')[2:])
        dinter[key]=interp1d(val.y, val.x)
    return dinter
Пример #7
0
    def save_dic(self, d, **k):
        print 'Saving ' + self.file_name
        for keys, data in misc.dict_iter(d):

            if not misc.dict_haskey(self.dic, keys):
                self.add_storage(keys)

            s = misc.dict_recursive_get(self.dic, keys)
            s.save_data('-'.join(keys), data, **k)

        self.save()
Пример #8
0
 def save_dic(self, d, **k):
     print 'Saving '+self.file_name
     for keys, data in misc.dict_iter(d):
         
         if not misc.dict_haskey(self.dic, keys):
             self.add_storage(keys)
     
         s=misc.dict_recursive_get(self.dic, keys)
         s.save_data('-'.join(keys), data, **k)
     
     self.save()
Пример #9
0
def extract_data(d, nets, models, attrs):

    out = {}
    for keys, val in misc.dict_iter(d):

        if keys[-1] == 'phases_diff_with_cohere':
            v = numpy.mean(val.y_val, axis=0)
        if keys[-1] == 'mean_coherence':
            v = val.y[2:20]

        out = misc.dict_recursive_add(out, keys, v)
    return out
Пример #10
0
def extract_data(d, nets, models, attrs):
    
    out={}
    for keys, val in misc.dict_iter(d):
        
        if keys[-1]=='phases_diff_with_cohere':
            v=numpy.mean(val.y_val, axis=0)
        if keys[-1]=='mean_coherence':
            v=val.y[2:20]
            
        out=misc.dict_recursive_add(out,  keys, v)
    return out             
Пример #11
0
    def test_save(self):
        self.sd = Storage_dic(self.file_name)
        for keys, val in misc.dict_iter(self.data):

            #Add storage objects
            self.sd.add_storage(keys)
            s = misc.dict_recursive_get(self.sd, keys)
            key = '-'.join(keys)
            s.save_data(key, val)

        self.sd.save()
        self.assertTrue(os.path.isfile(self.file_name + '.pkl'))
        self.assertTrue(os.path.isdir(self.file_name + '/'))
Пример #12
0
 def test_save(self):
     self.sd=Storage_dic(self.file_name)
     for keys, val in misc.dict_iter(self.data):
         
         #Add storage objects
         self.sd.add_storage(keys)
         s=misc.dict_recursive_get(self.sd, keys)
         key='-'.join(keys)
         s.save_data(key,val)
     
     self.sd.save()
     self.assertTrue(os.path.isfile(self.file_name+'.pkl'))
     self.assertTrue(os.path.isdir(self.file_name+'/'))
Пример #13
0
def process_exp(exp, tr):
    out = {}

    put_at = {'STN': 3, 'TA': 0, 'TI': 1, 'all': 2}
    for keys, val in misc.dict_iter(exp):
        if keys[-1] == 'CV':
            continue
        keys2 = [tr[keys[1]], tr[keys[2]], 'mean_rates']

        if not misc.dict_haskey(out, keys2):
            a = numpy.zeros(4)
            a[put_at[keys[0]]] = val
            misc.dict_recursive_add(out, keys2, a)
        else:
            out[tr[keys[1]]][tr[keys[2]]]['mean_rates'][put_at[keys[0]]] = val

    pp(out)
    return out
Пример #14
0
 def _garbage_collect(self):
     
     files1=[self.file_name_info]
     for _, storage in misc.dict_iter(self.dic):
         files1.append(storage.get_data_path())
     
     mypath=self.directory
     if not os.path.isdir(mypath):
         return
         
     files2=[ os.path.join(mypath,f) for f in os.listdir(mypath) 
            if os.path.isfile(os.path.join(mypath,f)) ]
     
     for f in files2:
         if f in files1:
             continue
         else:
             os.remove(f)
Пример #15
0
    def _garbage_collect(self):

        files1 = [self.file_name_info]
        for _, storage in misc.dict_iter(self.dic):
            files1.append(storage.get_data_path())

        mypath = self.directory
        if not os.path.isdir(mypath):
            return

        files2 = [
            os.path.join(mypath, f) for f in os.listdir(mypath)
            if os.path.isfile(os.path.join(mypath, f))
        ]

        for f in files2:
            if f in files1:
                continue
            else:
                os.remove(f)
Пример #16
0
def process_exp(exp, tr):
    out={}
    
    put_at={'STN':3,
            'TA':0,
            'TI':1,
            'all':2}
    for keys, val in misc.dict_iter(exp):
        if keys[-1]=='CV':
            continue
        keys2=[tr[keys[1]],tr[keys[2]], 'mean_rates']
        
        if not misc.dict_haskey(out, keys2):
            a=numpy.zeros(4)
            a[put_at[keys[0]]]=val
            misc.dict_recursive_add(out, keys2,a )
        else:
            out[tr[keys[1]]] [tr[keys[2]]] ['mean_rates'][put_at[keys[0]]]=val

    pp(out)
    return out
Пример #17
0
 def load_dic(self, *filt):
           
     d={}
     for keys, storage in misc.dict_iter(self):
         if filt==():
             pass
         else:
             a=False
             i=0
             for key in keys:
                 if key not in filt:
                     a=True
                 i+=1
                 if i==3:
                     break
             if a:
                 continue
                    
         val=storage.load_data()
         d=misc.dict_recursive_add(d, keys, val)
             
     return d
Пример #18
0
    def load_dic(self, *filt):

        d = {}
        for keys, storage in misc.dict_iter(self):
            if filt == ():
                pass
            else:
                a = False
                i = 0
                for key in keys:
                    if key not in filt:
                        a = True
                    i += 1
                    if i == 3:
                        break
                if a:
                    continue

            val = storage.load_data()
            d = misc.dict_recursive_add(d, keys, val)

        return d