import numpy as np
from sys import argv
import matplotlib.pyplot as plt
import seaborn as sns
from math import ceil
if len(argv) < 3:
print 'expects fname, nx'
quit()
SKIP = 0
fname = argv[1]
col1 = 0
col2 = 1
col3 = 13
xpr=2
ypr=2
#nx = int(argv[2])
remove_cont = 0
col3 = int(argv[2])
path = fname.split('/')
temp = path[-1].split('_')
#print temp
if len(temp)>2:
xlabel = temp[0]
ylabel = temp[2] # output format is a_vs_b_prefix.dat
else:
xlabel ='xlabel'
ylabel ='ylabel'
xsc =1
ysc=1
offset = 0
blah = 3
for things in argv:
if len(things.split('='))>1:
temp = things.split('=')
try:
exec(things)
except:
temp[1] = str(temp[1])
exec('%s=\'%s\'' % (temp[0],temp[1]))
if xlabel == 'iamp':
xsc = 1000
xlabel = 'Applied Current (pA)'
if ylabel == 'slow':
ysc = 20
ylabel = 'Peak I1-I2 Rate (1/s)'
if col3 == 4:
vmn = 0
vmx = 2000
offset = -2000
zlabel = 'Burst Duration (ms)'
if col3 == 5:
vmn = 0
vmx = 1
remove_cont=1
zlabel = 'Spike Amp. Ratio (Last/First)'
if col3 == 2:
vmn = 0
vmx = 10
zlabel = 'Burst Duration (Spikes)'
if col3 == 3:
vmn = 0
remove_cont=1
#vmx = 20
zlabel = 'Burst Frequency (Hz)'
if col3 == 8:
vmn = -50
vmx = -30
zlabel = 'Dep. Block Voltage (mV)'
xd,yd,zd= np.loadtxt(fname, usecols=(col1,col2,col3),unpack=True)
ny = 0
startx = xd[0]
for things in xd:
if things == startx:
ny+=1
nx = int(len(xd)/ny)
if len(zd)%nx != 0:
print 'problem with data length'
quit()
#if col3!=5:
# md=np.loadtxt(fname, usecols=(5),unpack=True)
#else:
# md = zd
ny = len(zd)/nx
zt = zd + offset
zd = zt
zt = None
temp = yd[0]
x1 = xd[0]
y1 = yd[0]
z1 = zd[0]
#m1 = md[0]
#print nx, ny
xt = []
yt = []
zt = []
#qt = []
#mt = []
for i in range(ny): #flatten probably would be better
for j in range(nx):
xt.append(xd[j*ny+i])
yt.append(yd[j*ny+i])
zt.append(zd[j*ny+i])
#qt.append(qd[j*ny+i])
#mt.append(md[j*ny+i])
#print xt[i*nx+j], yt[i*nx+j], zt[i*nx+j], qt[i*nx+j]
#quit()
stahp = 1
temp = yt[0]
for i in range(len(zt)):
#if (qt[i] < 4000 or mt[i] < 0.25):
#print xt[i], yt[i], zt[i]
if zt[i] < 500:
if stahp:
print x1, y1, z1#, qt[i], mt[i]
if stahp:
stahp = 0
zt[i]=0
elif yt[i] == temp:
x1 = xt[i]*xsc
y1 = yt[i]*ysc
z1 = zt[i]
#print x1, y1, z1
else:
stahp = 1
temp = yt[i]