# Get population sparseness
# Run as: python get_spar_biophys.py basedir
# basedir is eg data_r20
# Saves results as .mat in basedir
import numpy as np
import pickle as pkl
import scipy.io as io
from datetime import datetime
import sys
basedir = sys.argv[1]
def get_spar(x):
N = x.shape[0]; T =x.shape[1]
sptemp = np.zeros((T))
sptemp2 = np.zeros((T))
for t in range(T):
sptemp[t] = (N-np.sum(x[:,t])**2./np.sum(x[:,t]**2.))/(N-1.)
sptemp2[t] = len(np.where(x[:,t]>0)[0])*1./N
spar = np.nanmean(sptemp)
active = np.nanmean(sptemp2)
return spar,active
filename = 'grc_spar_biophys_'+basedir.split('_')[1][:-1]
samples_mf = np.loadtxt(basedir+'MF_samples_1_0.05.txt')
samples_grc = np.loadtxt(basedir+'GrC_samples_1_0.05.txt')
N_grc = samples_grc.shape[0]
N_mf = samples_mf.shape[0]
N_syn = range(1,21)
f_mf = np.linspace(.05,.95,19)
spar_mf = np.zeros((len(N_syn),len(f_mf)),float)
spar_grc = np.zeros((len(N_syn),len(f_mf)),float)
active_mf = np.zeros((len(N_syn),len(f_mf)),float)
active_grc = np.zeros((len(N_syn),len(f_mf)),float)
for k1 in range(len(N_syn)):
print N_syn[k1]
for k2 in range(len(f_mf)):
#
samples_mf = np.loadtxt(basedir+'MF_samples_'+str(N_syn[k1])+'_'+'{:.2f}'.format(f_mf[k2])+'.txt')
samples_grc = np.loadtxt(basedir+'GrC_samples_'+str(N_syn[k1])+'_'+'{:.2f}'.format(f_mf[k2])+'.txt')
spar_mf[k1,k2], active_mf[k1,k2] = get_spar(samples_mf)
spar_grc[k1,k2], active_grc[k1,k2] = get_spar(samples_grc)
#
p = {'spar_mf':spar_mf, 'spar_grc':spar_grc, 'active_mf':active_mf, 'active_grc':active_grc}
io.savemat(basedir+filename,p)