def plot_data(datasets, datanames, plotTraces=False, startVel = 0.0):

    #initialize arrays and timing
    e_first_startshock = []
    e_first_endshock = []
    e_first_end = []
    mean_line = []
    trace_data =[]
    sm = 15
    endWinLen = 5*60 #amount of tracking at end

    for i in range(0,len(datasets)):
        ndx =[]
        vel = aba.getMedianVelMulti(datasets[i], tRange=[0, 900], smoothWinLen = sm)
        for pos,sv in enumerate(vel):
            if sv<startVel:
                print "you lost a fish with starting velocity lower than {} in {}".format(startVel, datanames[i])
                ndx.append(pos)
        startshock = aba.getMedianVelMulti(datasets[i], tRange=[0, 900], smoothWinLen = sm)
        endshock = aba.getMedianVelMulti(datasets[i], tRange=[50*60, 55*60], smoothWinLen = sm)
        end = aba.getMedianVelMulti(datasets[i], tRange=[-15*60, -0], smoothWinLen = sm)
        startshock=np.delete(startshock, ndx)
        endshock=np.delete(endshock, ndx)
        end=np.delete(end, ndx)
        e_first_startshock.append(startshock)
        e_first_endshock.append(endshock)
        e_first_end.append(end)
            
        #for i in range(len(datasets)): 
        mean_line.append(np.transpose(np.hstack((np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_first_end[i])))))
        if plotTraces:
            trace_data.append(np.vstack((e_first_startshock[i],e_first_endshock[i], e_first_end[i])))
    print e_first_startshock, e_first_endshock, e_first_end

#plot all the data together
    subx = len(datasets)/2
    suby = 1
    
    pylab.figure()

    for i in range(len(datasets)):
        ax=pylab.subplot(1,len(datasets),i+1)
        if plotTraces:
            print "plotting all fish traces"
            pylab.plot(trace_data[i],'grey')
        #yerr = (2*scipy.stats.sem(e_first_startshock[i]), 2*scipy.stats.sem(e_first_endshock[i]), 2*scipy.stats.sem(e_first_end[i]))
        pylab.plot([0,1,2],[np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_first_end[i])], lw=3, label=datanames[i])
       # pylab.errorbar([0,1,2],[np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_first_end[i])], yerr = yerr, lw=3)
        ax.set_xticks((0,1,2))
        ax.set_xticklabels(('first 15', 'last 5', '30m later'))
        pylab.xlim((-.25, 2.25))
        pylab.ylim((0,2.0))
        pylab.gca()
        pylab.plot(mean_line[i], lw=3)
        pylab.ylabel('Median speed (mm/s)')
        patch = mpl.patches.Rectangle((.25,0), .5, 10, color=[1,.5,.5], fill=True)
        pyplot.gca().add_patch(patch)
        handles, labels = ax.get_legend_handles_labels()
        ax.legend(handles, labels)
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00446/f00446_2013-05-17-14-44-34.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00447/f00447_2013-05-17-14-44-27.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00448/f00448_2013-05-17-14-44-18.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00449/f00449_2013-05-17-14-44-14.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00450/f00450_2013-05-17-14-45-26.json',
# '/home/vburns/Dropbox/ConchisData/2013-05-17/f00451/f00451_2013-05-17-14-45-33.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00452/f00452_2013-05-17-14-45-36.json',
 '/home/vburns/Dropbox/ConchisData/2013-05-17/f00453/f00453_2013-05-17-14-45-41.json',
]
e_safesafe_third = aba.loadMultipleDataFiles(e_safesafe_third)

#velocity analysis 
sm = 15; #smooth over 15 frames.
endWinLen = 5 * 60; #seconds

eBaseVelSafe_1a = aba.getMedianVelMulti(e_safe_first, (0,900), smoothWinLen = sm)
eBaseVelSafe_1b = aba.getMedianVelMulti(e_safe_first, (900,1800), smoothWinLen = sm)
eBaseVelSafe_2a = aba.getMedianVelMulti(e_safe_sec, (0,900), smoothWinLen = sm)
eBaseVelSafe_2b = aba.getMedianVelMulti(e_safe_sec, (900,1800), smoothWinLen = sm)
eBaseVelSafe_3a = aba.getMedianVelMulti(e_safe_third, (0,900), smoothWinLen = sm)
eBaseVelSafe_3b = aba.getMedianVelMulti(e_safe_third, (900,1800), smoothWinLen = sm)
eBaseSafe = aba.getMedianVelMulti(e_safe_shock, (0, 900), smoothWinLen = sm)
eEndVelSafe = aba.getMedianVelMulti(e_safe_shock, tRange=[-endWinLen,-0], smoothWinLen=sm)

eBaseVelSafeShock_1a = aba.getMedianVelMulti(e_safeshock_first, (0,900), smoothWinLen = sm)
eBaseVelSafeShock_1b = aba.getMedianVelMulti(e_safeshock_first, (900,1800), smoothWinLen = sm)
eBaseVelSafeShock_2a = aba.getMedianVelMulti(e_safeshock_sec, (0,900), smoothWinLen = sm)
eBaseVelSafeShock_2b = aba.getMedianVelMulti(e_safeshock_sec, (900,1800), smoothWinLen = sm)
eBaseVelSafeShock_3a = aba.getMedianVelMulti(e_safeshock_third, (0,900), smoothWinLen = sm)
eBaseVelSafeShock_3b = aba.getMedianVelMulti(e_safeshock_third, (900,1800), smoothWinLen = sm)
eBaseSafeShock = aba.getMedianVelMulti(e_safeshock_shock, (0, 900), smoothWinLen = sm)
Ejemplo n.º 3
0
def plot_drug_data(datasets, datanames, sbplt=(2, 2)):
    suby = sbplt[0]
    subx = sbplt[1]
    if subx * suby != len(datasets) / 2:
        print "warning, wrong plotting or data lengths"

    # initialize arrays and timing
    e_first_startshock = []
    e_first_endshock = []
    e_sec_2a = []
    e_sec_2b = []
    mean_line = []
    sm = 15
    endWinLen = 5 * 60  # amount of tracking at end

    for i in range(0, len(datasets), 2):
        e_first_startshock.append(aba.getMedianVelMulti(datasets[i], (0, 900), smoothWinLen=sm))
        e_first_endshock.append(aba.getMedianVelMulti(datasets[i], tRange=[-endWinLen, -0], smoothWinLen=sm))
        e_sec_2a.append(aba.getMedianVelMulti(datasets[i + 1], (0, 900), smoothWinLen=sm))
        e_sec_2b.append(aba.getMedianVelMulti(datasets[i + 1], (900, 1800), smoothWinLen=sm))

    for i in range(len(datasets) / 2):
        mean_line.append(
            np.transpose(
                np.hstack(
                    (
                        np.mean(e_first_startshock[i]),
                        np.mean(e_first_endshock[i]),
                        np.mean(e_sec_2a[i]),
                        np.mean(e_sec_2b[i]),
                    )
                )
            )
        )

    # plot data
    pylab.figure()
    pylab.suptitle("Drug Pilot Results")
    for i in range(subx * suby):
        ax = pylab.subplot(subx, suby, i + 1)
        pylab.plot(0, [e_first_startshock[i]], ".")
        pylab.plot(1, [e_first_endshock[i]], ".")
        pylab.plot(2, [e_sec_2a[i]], ".")
        pylab.plot(3, [e_sec_2b[i]], ".")
        yerr = (
            2 * scipy.stats.sem(e_first_startshock[i]),
            2 * scipy.stats.sem(e_first_endshock[i]),
            2 * scipy.stats.sem(e_sec_2a[i]),
            2 * scipy.stats.sem(e_sec_2b[i]),
        )
        pylab.plot(
            [0, 1, 2, 3],
            [np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_sec_2a[i]), np.mean(e_sec_2b[i])],
            "ok",
            lw=3,
        )
        pylab.errorbar(
            [0, 1, 2, 3],
            [np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_sec_2a[i]), np.mean(e_sec_2b[i])],
            fmt="ok",
            yerr=yerr,
            lw=3,
        )
        pylab.title(datanames[i])
        ax.set_xticks((0, 1, 2, 3))
        ax.set_xticklabels(("first 15", "last 5", "post 0-15", "post 15-30"))
        pylab.xlim((-0.25, 3.25))
        pylab.ylim((0, 4))
        pylab.plot(mean_line[i], "k", lw=3)
        pylab.ylabel("Median speed (mm/s)")
Ejemplo n.º 4
0
allfish = [
'/home/vburns/Dropbox/ConchisData/2013-04-21/f00350/f00350_2013-04-21-14-01-18.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00351/f00351_2013-04-21-14-01-30.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00352/f00352_2013-04-21-14-01-39.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00353/f00353_2013-04-21-14-01-52.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00354/f00354_2013-04-21-13-56-28.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00355/f00355_2013-04-21-13-56-25.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00356/f00356_2013-04-21-13-56-23.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-21/f00357/f00357_2013-04-21-13-56-21.json'
]
allfish = aba.loadMultipleDataFiles(allfish)

sm = 15
sections = 15

fish_vel0 = aba.getMedianVelMulti(allfish, (0,900), smoothWinLen=sm)
fish_vel1 = aba.getMedianVelMulti(allfish, (900,1800), smoothWinLen=sm)
fish_vel2 = aba.getMedianVelMulti(allfish, (1800,2700), smoothWinLen=sm)
fish_vel3 = aba.getMedianVelMulti(allfish, (2700,3600), smoothWinLen=sm)

vel0 = np.array([np.array([fish_vel0[n]]) for n in range(len(fish_vel0))])
vel1 = np.array([np.array([fish_vel1[n]]) for n in range(len(fish_vel1))])
vel2 = np.array([np.array([fish_vel2[n]]) for n in range(len(fish_vel2))])
vel3 = np.array([np.array([fish_vel3[n]]) for n in range(len(fish_vel3))])

allvelocity = np.transpose(np.hstack((vel0, vel1, vel2, vel3)))

pylab.figure()
pylab.suptitle('Fish Velocity over 1 hour - no noise or shocking')
ax = pylab.subplot(1,1,1)
pylab.plot(allvelocity)
        medVel.append(np.median(vel))     
    return medVel

def getVelRaw(d, tRange=None):
    w = d['warpedTracking']
    if tRange:
        bNdxWin = np.logical_and(w[:,0]>tRange[0]+w[0,0], w[:,0]<tRange[1]+w[0,0])
        vel = np.sqrt(pow(np.diff(w[bNdxWin,1]),2) + pow(np.diff(w[bNdxWin,2]),2)) / np.diff(w[bNdxWin,0])
    else:
        vel = np.sqrt(pow(np.diff(w[:,1]),2) + pow(np.diff(w[:,2]),2)) / np.diff(w[:,0])
    return vel
"""
#velocity locomation analysis
n = 15 # minutes to look at
sm = 15; #smooth over 15 frames.
eBaseVelN = aba.getMedianVelMulti(e_shockN, tRange=(0,900), smoothWinLen=sm)
eStartShockVelN = aba.getMedianVelMulti(e_shockN, tRange=(900, 60*(15+n)), smoothWinLen=sm)
eShockVelN = aba.getMedianVelMulti(e_shockN, tRange=(60*(45-n), 60*45), smoothWinLen=sm)
eLHVelN = aba.getMedianVelMulti(e_RTN, smoothWinLen=sm)
eVellate = aba.getMedianVelMulti(e_long, tRange=(2700,3600), smoothWinLen=sm)
#eNovVel = aba.getMedianVelMulti(e_novel, (0,900))
eBaseVelR = aba.getMedianVelMulti(e_shockR, tRange=(0, 900), smoothWinLen=sm)
eStartShockR = aba.getMedianVelMulti(e_shockR, tRange=(900, 60*(15+n)), smoothWinLen=sm)
eShockR = aba.getMedianVelMulti(e_shockR, tRange=(60*(45-n), 60*45), smoothWinLen=sm)
eLHVelR = aba.getMedianVelMulti(e_RTR, smoothWinLen=sm)

#same context
[tv, e_Base_RTN] = scipy.stats.ttest_ind(eBaseVelN, eLHVelN)
[tv, e_Base_Nov] = scipy.stats.ttest_ind(eBaseVelN, eVellate)
[tv, e_shockN_LH] = scipy.stats.ttest_ind(eShockVelN, eLHVelN)
[tv, e_shockN_Nov] = scipy.stats.ttest_ind(eShockVelN, eVellate)
#cEndOMRstats = aba.getOMRScoreStatsMulti(c_omr, stateRange=[8,8], timePoint=tp)
cEndOMRstats = aba.getOMRScoreStatsMulti(c_omr_last, stateRange=[8,8], timePoint=tp)
cPostOMRstats_2a= aba.getOMRScoreStatsMulti(c_omr_post, stateRange=[3,3], timePoint=tp)
cPostOMRstats_2b = aba.getOMRScoreStatsMulti(c_omr_post, stateRange=[8,8], timePoint=tp)

#velocity stats 
sm=15
'''
ePreVel_1a = aba.getMedianVelMulti(e_omr_pre, tRange=[0,15*30], smoothWinLen = sm)
ePreVel_1b = aba.getMedianVelMulti(e_omr_pre, tRange=[15*30,30*30], smoothWinLen = sm)
eVel = aba.getMedianVelMulti(e_omr, stateRange=[3,3], smoothWinLen=sm)
eEndVel = aba.getMedianVelMulti(e_omr, stateRange=[8,8], smoothWinLen=sm)
ePostVel_2a = aba.getMedianVelMulti(e_omr_post, stateRange=[3,3], smoothWinLen = sm)
ePostVel_2b = aba.getMedianVelMulti(e_omr_post, stateRange=[8,8], smoothWinLen = sm)
'''
ePreVelSame_1a = aba.getMedianVelMulti(e_omr_same_pre, tRange=[0,15*30], smoothWinLen = sm)
ePreVelSame_1b = aba.getMedianVelMulti(e_omr_same_pre, tRange=[15*30,30*30], smoothWinLen = sm)
eVelSame = aba.getMedianVelMulti(e_omr_same, stateRange=[3,3], smoothWinLen=sm)
#eEndVelSame = aba.getMedianVelMulti(e_omr_same, stateRange=[8,8], smoothWinLen=sm)
eEndVelSame = aba.getMedianVelMulti(e_omr_same_last, stateRange=[8,8], smoothWinLen=sm)
ePostVelSame_2a = aba.getMedianVelMulti(e_omr_same_post, stateRange=[3,3], smoothWinLen = sm)
ePostVelSame_2b = aba.getMedianVelMulti(e_omr_same_post, stateRange=[8,8], smoothWinLen = sm)

cPreVel_1a = aba.getMedianVelMulti(c_omr_pre, tRange=[0,15*30], smoothWinLen = sm)
cPreVel_1b = aba.getMedianVelMulti(c_omr_pre, tRange=[15*30,30*30], smoothWinLen = sm)
cVel = aba.getMedianVelMulti(c_omr, stateRange=[3,3], smoothWinLen=sm)
#cEndVel = aba.getMedianVelMulti(c_omr, stateRange=[8,8], smoothWinLen=sm)
cEndVel = aba.getMedianVelMulti(c_omr_last, stateRange=[8,8], smoothWinLen=sm)
cPostVel_2a = aba.getMedianVelMulti(c_omr_post, stateRange=[3,3], smoothWinLen = sm)
cPostVel_2b = aba.getMedianVelMulti(c_omr_post, stateRange=[8,8], smoothWinLen = sm)
'''
Ejemplo n.º 7
0
import pylab
import scipy
import os

##make sure fish have been loaded
if len(e_first) < 1:
    print "No fish"
    1/0
else: 
    print "Fish data found"

#velocity analysis 
sm = 15; #smooth over 15 frames.
endWinLen = 5 * 60; #seconds

eBaseVel5_1a = aba.getMedianVelMulti(e_first, (0,900), smoothWinLen = sm)
eBaseVel5_1b = aba.getMedianVelMulti(e_first, (900,1800), smoothWinLen = sm)
cBaseVel_1a = aba.getMedianVelMulti(c_first, (0,900), smoothWinLen = sm)
cBaseVel_1b = aba.getMedianVelMulti(c_first, (900,1800), smoothWinLen = sm)

eBaseVel5_2a = aba.getMedianVelMulti(e_sec, (0,900), smoothWinLen = sm)
eBaseVel5_2b = aba.getMedianVelMulti(e_sec, (900,1800), smoothWinLen = sm)
cBaseVel_2a = aba.getMedianVelMulti(c_sec, (0,900), smoothWinLen = sm)
cBaseVel_2b = aba.getMedianVelMulti(c_sec, (900,1800), smoothWinLen = sm)

eBase5 = aba.getMedianVelMulti(e_shock, (0, 900), smoothWinLen = sm)
cBase = aba.getMedianVelMulti(c_shock, (0, 900), smoothWinLen = sm)
eEndVel5 = aba.getMedianVelMulti(e_shock, tRange=[-endWinLen,-0], smoothWinLen=sm)
cEndVel = aba.getMedianVelMulti(c_shock, tRange=[-endWinLen,-0], smoothWinLen = sm)
eBaseSame_1a = aba.getMedianVelMulti(e_same_first, (0, 900), smoothWinLen = sm)
eBaseSame_1b = aba.getMedianVelMulti(e_same_first, (900, 1800), smoothWinLen = sm)
Ejemplo n.º 8
0
    eStartShockVel.append(np.median(eshockvel))

c_shocktimemin = []
for n in range(len(c_shock)):
    cacclimate = c_shock[n]['parameters']['acclimate (m)']*60
    c_shocktimemin.append(cacclimate)
c_shocktimemax = [y + minutes for y in c_shocktimemin]

cStartShockVel = []
for n in range(len(c_shock)):
    csvelocity = aba.getVelRaw(c_shock[n], tRange=(c_shocktimemin[n], c_shocktimemax[n]), smoothWinLen=sm)
    cStartShockVel.append(np.median(csvelocity))
"""

#velocity locomation analysis
eStartShockVel = aba.getMedianVelMulti(e_shock, tRange=[-mins,0], smoothWinLen=sm)
eBaseVel = aba.getMedianVelMulti(e_shock, tRange=(0,900),smoothWinLen=sm)
eShockVel = aba.getMedianVelMulti(e_shock, tRange=[-mins,0],smoothWinLen=sm)
eLHVel = aba.getMedianVelMulti(e_RT,smoothWinLen=sm)
eNovVel = aba.getMedianVelMulti(e_novel, tRange=(0,900),smoothWinLen=sm)
eNovVellate = aba.getMedianVelMulti(e_novel, tRange=(2700,3600),smoothWinLen=sm)
eNov = aba.getMedianVelMulti(e_novel,smoothWinLen=sm)
#eLHVel2 = aba.getMedianVelMulti(e_RT2, tRange=(0,900),smoothWinLen=sm)

#test = getVelRaw(e_shock[0])
cStartShockVel = aba.getMedianVelMulti(c_shock, tRange=[-mins,0], smoothWinLen=sm)
cBaseVel = aba.getMedianVelMulti(c_shock, tRange=(0, 900),smoothWinLen=sm)
cShockVel = aba.getMedianVelMulti(c_shock, tRange=[-mins,0],smoothWinLen=sm)
cLHVel = aba.getMedianVelMulti(c_RT,smoothWinLen=sm)
cNovVel = aba.getMedianVelMulti(c_novel,tRange=(0,900),smoothWinLen=sm)
cNovVellate = aba.getMedianVelMulti(c_novel, tRange=(2700,3600),smoothWinLen=sm)
def plot_data(datasets, datanames, plotTraces=False, startVel = 0.0):

    #initialize arrays and timing
    e_first_startshock = []
    e_first_endshock = []
    e_second_start = []
    e_second_end = []
    e_second_pre_probe = []
    e_second_post_probe = []
    mean_line = []
    trace_data =[]
    sm = 15
    endWinLen = 5*60 #amount of tracking at end

    for i in range(0,len(datasets),2):
        ndx =[]
        vel = aba.getMedianVelMulti(datasets[i], tRange=[0, 900], smoothWinLen = sm)
        for pos,sv in enumerate(vel):
            if sv<startVel:
                print "you lost a fish with starting velocity lower than {} in {}".format(startVel, datanames[int(math.floor(i/2))])
                ndx.append(pos)
        startshock = aba.getMedianVelMulti(datasets[i], tRange=[0, 900], smoothWinLen = sm)
        endshock = aba.getMedianVelMulti(datasets[i], tRange=[-5*60, -0], smoothWinLen = sm)
        end_first = aba.getMedianVelMulti(datasets[i+1], tRange=[0, 15*60], smoothWinLen = sm)
        end_second = aba.getMedianVelMulti(datasets[i+1], tRange=[15*60, 30*60], smoothWinLen = sm)
        end_start_probe = aba.getMedianVelMulti(datasets[i+1], tRange=[25*60, 30*60], smoothWinLen = sm)
        end_end_probe = aba.getMedianVelMulti(datasets[i+1], stateRange=[8, 8], smoothWinLen = sm)

        startshock=np.delete(startshock, ndx)
        endshock=np.delete(endshock, ndx)
        end_first=np.delete(end_first, ndx)
        end_second=np.delete(end_second, ndx)
        end_start_probe = np.delete(end_start_probe, ndx)
        end_end_probe = np.delete(end_end_probe, ndx)

        e_first_startshock.append(startshock)
        e_first_endshock.append(endshock)
        e_second_start.append(end_first)
        e_second_end.append(end_second)
        e_second_pre_probe.append(end_start_probe)
        e_second_post_probe.append(end_end_probe)
            
    for i in range(0,len(datasets)/2): 
        mean_line.append(np.transpose(np.hstack((np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_second_start[i]), np.mean(e_second_end[i]), np.mean(e_second_pre_probe[i]), np.mean(e_second_post_probe[i])))))
        if plotTraces:
            trace_data.append(np.vstack((e_first_startshock[i],e_first_endshock[i], e_second_start[i], e_second_end[i], e_second_pre_probe[i], e_second_post_probe[i])))
    print e_first_startshock, e_first_endshock, mean_line

#plot all the data together
    subx = len(datasets)/4
    suby = 1
    
    pylab.figure()

    for i in range(0,len(datasets)/2):
        ax=pylab.subplot(1,len(datasets)/2,i+1)
        if plotTraces:
            print "plotting all fish traces"
            pylab.plot(trace_data[i],'grey')
        pylab.plot([0,1,2,3,4,5],[np.mean(e_first_startshock[i]), np.mean(e_first_endshock[i]), np.mean(e_second_start[i]), np.mean(e_second_end[i]), np.mean(e_second_pre_probe[i]), np.mean(e_second_post_probe[i])], lw=3, label=datanames[i])
        ax.set_xticks((0,1,2,3,4,5))
        ax.set_xticklabels(('first 15', 'last 5', '15m new', '15-30', '30-45', '5m post probe'))
        pylab.xlim((-.25, 5.25))
        pylab.ylim((0,3.5))
        pylab.gca()
        pylab.plot(mean_line[i], lw=3)
        pylab.ylabel('Median speed (mm/s)')
        patch = mpl.patches.Rectangle((.25,0), .5, 10, color=[1,.5,.5], fill=True)
        patch2 = mpl.patches.Rectangle((4.25,0),.5, 10, color=[1,.5,.5], fill=True)
        pyplot.gca().add_patch(patch)
        pylab.gca().add_patch(patch2)
        handles, labels = ax.get_legend_handles_labels()
        ax.legend(handles, labels)
Ejemplo n.º 10
0
#omr analysis
[eBaseMaxDist, eBaseTotalDist, eBaseFrac] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[3,3])
[eEndMaxDist, eEndTotalDist, eEndFrac] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[8,8])
[cBaseMaxDist, cBaseTotalDist, cBaseFrac] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[3,3])
[cEndMaxDist, cEndTotalDist, cEndFrac] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[8,8])

#get info for nonOMR times
[cBaseMaxDistNon, cBaseTotalDistNon, cBaseFracNon] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[3,3],useOMR=False)
[cEndMaxDistNon, cEndTotalDistNon, cEndFracNon] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[8,8], useOMR=False)
[eBaseMaxDistNon, eBaseTotalDistNon, eBaseFracNon] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[3,3],useOMR=False)
[eEndMaxDistNon, eEndTotalDistNon, eEndFracNon] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[8,8], useOMR=False)

#velocity analysis 
sm = 15; #smooth over 15 frames.
endWinLen = 5 * 60; #last five minutes
eBaseVel = aba.getMedianVelMulti(e_omr, (0, 15*60), smoothWinLen = sm)
eEndVel = aba.getMedianVelMulti(e_omr, tRange=[-endWinLen,-0], smoothWinLen=sm)
cBaseVel = aba.getMedianVelMulti(c_omr, (0, 15*60), smoothWinLen = sm)
cEndVel = aba.getMedianVelMulti(c_omr, tRange=[-endWinLen,-0], smoothWinLen=sm)

#velocity comparisons 
[tv, exper_start_end] = scipy.stats.ttest_ind(eBaseVel, eEndVel)
[tv, control_start_end] = scipy.stats.ttest_ind(cBaseVel, cEndVel)
print 'Statistics comparing velocity between start and end velocity (experimental, control fish):', exper_start_end, control_start_end

#fix
#eEndVel25[2]= np.nan

#convert to array
eBV = np.array([np.array([eBaseVel[n]]) for n in range(len(eBaseVel))])
eEV = np.array([np.array([eEndVel[n]]) for n in range(len(eEndVel))])
Ejemplo n.º 11
0
    # '~/Dropbox/ConchisData/2013-10-04/f00776/f00776_2013-10-04-11-12-36.json'
]
e_omr_post = aba.loadMultipleDataFiles(e_omr_post)

# omr stats
tp = 12
cPreOMRstats = aba.getOMRScoreStatsMulti(c_omr, stateRange=[3, 3], timePoint=tp)
cPostOMRstats = aba.getOMRScoreStatsMulti(c_omr, stateRange=[8, 8], timePoint=tp)
ePreOMRstats = aba.getOMRScoreStatsMulti(e_omr, stateRange=[3, 3], timePoint=tp)
ePostOMRstats = aba.getOMRScoreStatsMulti(e_omr, stateRange=[8, 8], timePoint=tp)
esafePreOMRstats = aba.getOMRScoreStatsMulti(e_omr_post, stateRange=[3, 3], timePoint=tp)
esafePostOMRstats = aba.getOMRScoreStatsMulti(e_omr_post, stateRange=[8, 8], timePoint=tp)

# velocity stats
sm = 15
cPreVel = aba.getMedianVelMulti(c_omr, stateRange=[3, 3], smoothWinLen=sm)
cPostVel = aba.getMedianVelMulti(c_omr, stateRange=[8, 8], smoothWinLen=sm)
ePreVel = aba.getMedianVelMulti(e_omr, stateRange=[3, 3], smoothWinLen=sm)
ePostVel = aba.getMedianVelMulti(e_omr, stateRange=[8, 8], smoothWinLen=sm)
esafePreVel = aba.getMedianVelMulti(e_omr_post, stateRange=[3, 3], smoothWinLen=sm)
esafePostVel = aba.getMedianVelMulti(e_omr_post, stateRange=[8, 8], smoothWinLen=sm)

# velocity comparisons
[tv, exper_start_end] = scipy.stats.ttest_ind(ePreVel, ePostVel)
[tv, exper_end_end] = scipy.stats.ttest_ind(esafePostVel, ePostVel)
[tv, exper_start_end_post] = scipy.stats.ttest_ind(esafePreVel, esafePostVel)
print "Stats (pre end vel, end end vel, start to end post):", exper_start_end, exper_end_end, exper_start_end_post


def plotPairedConditions(states, statenames, color=[0.5, 0.5, 0.5], ylabel=None, title=None):
    pyplot.hold(True)
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00383/f00383_2013-04-29-17-23-55.json', 
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00384/f00384_2013-04-29-17-23-45.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00385/f00385_2013-04-29-17-23-39.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00386/f00386_2013-04-29-17-25-16.json',
# '/home/vburns/Dropbox/ConchisData/2013-04-29/f00387/f00387_2013-04-29-17-25-08.json', 
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00388/f00388_2013-04-29-17-25-00.json',  
# '/home/vburns/Dropbox/ConchisData/2013-04-29/f00389/f00389_2013-04-29-17-24-54.json', 
]
c_safe_sec = aba.loadMultipleDataFiles(c_safe_sec)

#velocity analysis 
sm = 15; #smooth over 15 frames.

endWinLen = 5 * 60; #seconds

cBaseVel_1a = aba.getMedianVelMulti(c_safe_first, (0,900), smoothWinLen = sm)
cBaseVel_1b = aba.getMedianVelMulti(c_safe_first, (900,1800), smoothWinLen = sm)
cBaseVel_2a = aba.getMedianVelMulti(c_safe_sec, (0,900), smoothWinLen = sm)
cBaseVel_2b = aba.getMedianVelMulti(c_safe_sec, (900,1800), smoothWinLen = sm)

eBaseVelW_1a = aba.getMedianVelMulti(e_water_first, (0,900), smoothWinLen = sm)
eBaseVelW_1b = aba.getMedianVelMulti(e_water_first, (900,1800), smoothWinLen = sm)
eBaseVelW_2a = aba.getMedianVelMulti(e_water_sec, (0,900), smoothWinLen = sm)
eBaseVelW_2b = aba.getMedianVelMulti(e_water_sec, (900,1800), smoothWinLen = sm)
eBaseW = aba.getMedianVelMulti(e_water_shock, (0,900), smoothWinLen=sm)
eEndVelW = aba.getMedianVelMulti(e_water_shock, tRange=[-endWinLen,-0], smoothWinLen=sm)

eBaseVelWR_1a = aba.getMedianVelMulti(e_waterrotateS_first, (0,900), smoothWinLen = sm)
eBaseVelWR_1b = aba.getMedianVelMulti(e_waterrotateS_first, (900,1800), smoothWinLen = sm)
eBaseVelWR_2a = aba.getMedianVelMulti(e_waterrotateS_sec, (0,900), smoothWinLen = sm)
eBaseVelWR_2b = aba.getMedianVelMulti(e_waterrotateS_sec, (900,1800), smoothWinLen = sm)
Ejemplo n.º 13
0
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00259/f00259_2013-03-30-09-15-56.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00260/f00260_2013-03-30-09-15-54.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00261/f00261_2013-03-30-09-15-51.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00262/f00262_2013-03-30-09-15-49.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00382/f00382_2013-04-29-15-53-10.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00383/f00383_2013-04-29-15-53-08.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00384/f00384_2013-04-29-15-53-06.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00385/f00385_2013-04-29-15-53-04.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00386/f00386_2013-04-29-15-54-54.json', #has current when not supposed to? nothing else wrong
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00387/f00387_2013-04-29-15-54-52.json', #low starting velocity
 '/home/vburns/Dropbox/ConchisData/2013-04-29/f00388/f00388_2013-04-29-15-54-50.json',
]
all_fish = aba.loadMultipleDataFiles(all_fish)

#velocity analysis 
sm = 15; #smooth over 15 frames.
endWinLen = 5 * 60; #seconds

all_fish_vel = aba.getMedianVelMulti(all_fish, (0,900), smoothWinLen = sm)

#convert to array

pylab.figure()
pylab.suptitle('Distribution of Starting Velocities')
ax = pylab.subplot(1,1,1)
pylab.hist(all_fish_vel, bins=len(all_fish))
pylab.ylabel('Number of Fish')
pylab.xlabel('Velocity (mm/s)')
#pylab.xticks(np.array(xrange(0,14))/2.0)
pylab.show()
Ejemplo n.º 14
0
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00334/f00334_2013-04-19-16-29-20.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00335/f00335_2013-04-19-16-29-18.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00336/f00336_2013-04-19-16-29-15.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00337/f00337_2013-04-19-16-29-13.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00338/f00338_2013-04-19-16-32-46.json',
# '/home/vburns/Dropbox/ConchisData/2013-04-19/f00339/f00339_2013-04-19-16-32-52.json',
 '/home/vburns/Dropbox/ConchisData/2013-04-19/f00340/f00340_2013-04-19-16-32-59.json',
# '/home/vburns/Dropbox/ConchisData/2013-04-19/f00341/f00341_2013-04-19-16-33-07.json',
]
c_round_safe_sec = aba.loadMultipleDataFiles(c_round_safe_sec)

#velocity analysis 
sm = 15; #smooth over 15 frames.

endWinLen = 5 * 60; #seconds
eEndVel5 = aba.getMedianVelMulti(e_shock5, tRange=[-endWinLen,-0], smoothWinLen=sm)
eEndVel25 = aba.getMedianVelMulti(e_shock25, tRange=[-endWinLen,-0], smoothWinLen=sm)
eEndVel8 = aba.getMedianVelMulti(e_shock8, tRange=[-endWinLen,-0], smoothWinLen=sm)
cEndVel = aba.getMedianVelMulti(c_shock, tRange=[-endWinLen,-0], smoothWinLen = sm)

eBaseVel25_1a = aba.getMedianVelMulti(e_safe25_first, (0,900), smoothWinLen = sm)
eBaseVel25_1b = aba.getMedianVelMulti(e_safe25_first, (900,1800), smoothWinLen = sm)
eBaseVel5_1a = aba.getMedianVelMulti(e_safe5_first, (0,900), smoothWinLen = sm)
eBaseVel5_1b = aba.getMedianVelMulti(e_safe5_first, (900,1800), smoothWinLen = sm)
eBaseVel8_1a = aba.getMedianVelMulti(e_safe8_first, (0,900), smoothWinLen = sm)
eBaseVel8_1b = aba.getMedianVelMulti(e_safe8_first, (900,1800), smoothWinLen = sm)
cBaseVel_1a = aba.getMedianVelMulti(c_safe_first, (0,900), smoothWinLen = sm)
cBaseVel_1b = aba.getMedianVelMulti(c_safe_first, (900,1800), smoothWinLen = sm)

eBaseVel25_2a = aba.getMedianVelMulti(e_safe25_sec, (0,900), smoothWinLen = sm)
eBaseVel25_2b = aba.getMedianVelMulti(e_safe25_sec, (900,1800), smoothWinLen = sm)
Ejemplo n.º 15
0
#omr analysis
[eBaseMaxDist, eBaseTotalDist, eBaseFrac] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[3,3])
[eEndMaxDist, eEndTotalDist, eEndFrac] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[8,8])
[cBaseMaxDist, cBaseTotalDist, cBaseFrac] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[3,3])
[cEndMaxDist, cEndTotalDist, cEndFrac] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[8,8])

#get info for nonOMR times
[cBaseMaxDistNon, cBaseTotalDistNon, cBaseFracNon] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[3,3],useOMR=False)
[cEndMaxDistNon, cEndTotalDistNon, cEndFracNon] = aba.getAvgOMRScoreMulti(c_omr, stateRange=[8,8], useOMR=False)
[eBaseMaxDistNon, eBaseTotalDistNon, eBaseFracNon] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[3,3],useOMR=False)
[eEndMaxDistNon, eEndTotalDistNon, eEndFracNon] = aba.getAvgOMRScoreMulti(e_omr, stateRange=[8,8], useOMR=False)

#velocity analysis 
sm = 15; #smooth over 15 frames.
endWinLen = 5 * 60; #last five minutes
eBaseVel = aba.getMedianVelMulti(e_omr, (0, 15*60), smoothWinLen = sm)
eEndVel = aba.getMedianVelMulti(e_omr, tRange=[-endWinLen,-0], smoothWinLen=sm)
eEndVel_2a = aba.getMedianVelMulti(e_post_omr, (0,900), smoothWinLen=sm)
eEndVel_2b = aba.getMedianVelMulti(e_post_omr, (900,1800), smoothWinLen=sm)
cBaseVel = aba.getMedianVelMulti(c_omr, (0, 15*60), smoothWinLen = sm)
cEndVel = aba.getMedianVelMulti(c_omr, tRange=[-endWinLen,-0], smoothWinLen=sm)
cEndVel_2a = aba.getMedianVelMulti(c_post_omr, (0,900), smoothWinLen=sm)
cEndVel_2b = aba.getMedianVelMulti(c_post_omr, (900,1800), smoothWinLen=sm)

#velocity comparisons 
[tv, exper_start_end] = scipy.stats.ttest_ind(eBaseVel, eEndVel)
[tv, control_start_end] = scipy.stats.ttest_ind(cBaseVel, cEndVel)
print 'Statistics comparing velocity between start and end velocity (experimental, control fish):', exper_start_end, control_start_end

#fix
#eEndVel25[2]= np.nan
Ejemplo n.º 16
0
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00288/f00288_2013-03-30-19-42-16.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00289/f00289_2013-03-30-19-42-22.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00290/f00290_2013-03-30-19-43-34.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00291/f00291_2013-03-30-19-43-48.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00292/f00292_2013-03-30-19-43-54.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00293/f00293_2013-03-30-19-44-01.json',
 '/home/vburns/Dropbox/ConchisData/2013-03-30/f00294/f00294_2013-03-30-19-44-14.json'
]
c_novel = aba.loadMultipleDataFiles(c_novel)


#velocity analysis 
endWinLen = 5 * 60; #seconds
sm = 15; #smooth over 15 frames.

eEndVel5 = aba.getMedianVelMulti(e_shock5, tRange=[-endWinLen,-0], smoothWinLen=sm)
eEndVel25 = aba.getMedianVelMulti(e_shock25, tRange=[-endWinLen,-0], smoothWinLen=sm)
cEndVel = aba.getMedianVelMulti(c_shock, tRange=[-endWinLen,-0], smoothWinLen = sm)

baseWinLen = 15*60
eBaseVel25 = aba.getVelMulti(e_shock25, tRange=(0,baseWinLen), smoothWinLen=sm)
eBaseVel5 = aba.getVelMulti(e_shock5, tRange=(0,baseWinLen), smoothWinLen=sm)
cBaseVel = aba.getVelMulti(c_shock, tRange=(0,baseWinLen), smoothWinLen=sm)

eNovel25 = aba.getVelMulti(e_novel25, smoothWinLen=sm)
eNovel5 = aba.getVelMulti(e_novel5, smoothWinLen=sm)
cNovel = aba.getVelMulti(c_novel, smoothWinLen=sm)

#same context
[tv, e_statBase25] = scipy.stats.ttest_ind(eBaseVel25, cBaseVel)
[tv, e_statBase5] = scipy.stats.ttest_ind(eBaseVel5, cBaseVel)
Ejemplo n.º 17
0
    pyplot.ylabel('Prob in Center')

pyplot.show()

####### getMedianVelocity
whichndx = [0,1,2,3,4,5,6,7]
compare = [[d_pre[whichndx],d_veh[whichndx]],[d_veh[whichndx], d_sch[whichndx]]]
trange = [[[1000,1700],[0,360]],  [[1000,1700],[0,360]]]
titles = ['Vehicle','Schreckstoff']
labels = [['Baseline','Vehicle_Start'],['Vehicle_End','Schreckstoff_Start']]
bins = np.linspace(0,300,50)
f = pyplot.figure(6)
f.set_facecolor('w')
mmperpixel=35.0/300
for i,d in enumerate(compare):
    med_a = aba.getMedianVelMulti(d[0], trange[i][0], smoothWinLen=15)
    med_b = aba.getMedianVelMulti(d[1], trange[i][1], smoothWinLen=15)
    (t,p) = scipy.stats.ttest_rel(med_a,med_b)
    pyplot.subplot(1,len(compare),1+i)
    pyplot.plot([0,1],[med_a * mmperpixel,med_b * mmperpixel],'o-b')
    pyplot.xlim([-0.5,1.5])
    pyplot.ylim([0,5])
    pyplot.title('%s (paired t-test p=%f)'%(titles[i],p))
    pyplot.gca().xaxis.set_ticks([0,1])
    pyplot.gca().xaxis.set_ticklabels(labels[i])
    pyplot.ylabel('Median Velocity (mm/s)')

######## PLOT PATHS
whichndx = [1,2,3,5,6,7]
trange = [[0,1700],[0,1700],[0,1700]]
f = pyplot.figure(1)