Model of memory linking through memory allocation (Kastellakis et al. 2016)

 Download zip file 
Help downloading and running models
Accession:206249
Here, we present a simplified, biophysically inspired network model that incorporates multiple plasticity processes and explains linking of information at three different levels: (a) learning of a single associative memory (b) rescuing of a weak memory when paired with a strong one and (c) linking of multiple memories across time. By dissecting synaptic from intrinsic plasticity and neuron-wide from dendritically restricted protein capture, the model reveals a simple, unifying principle: Linked memories share synaptic clusters within the dendrites of overlapping populations of neurons
Reference:
1 . Kastellakis G, Silva AJ, Poirazi P (2016) Linking Memories across Time via Neuronal and Dendritic Overlaps in Model Neurons with Active Dendrites. Cell Rep 17:1491-1504 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Abstract integrate-and-fire leaky neuron with dendritic subunits;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program; C or C++ program (web link to model);
Model Concept(s): Active Dendrites;
Implementer(s): Kastellakis, George [gkastel at gmail.com];
/
stdmodel
distributionPlot
exportfig
figs
mtrand
README
allgraphs.m
allrun.m
an_brtest.m
an_stats.m
anmulti.py
ansims.py
barwitherr.m *
btagstats.m *
CImg.h *
constructs.cpp
constructs.h
defaults.m
dir2.m *
getspikedata.m *
getsynstate.m *
getsynstate2.m *
graphs.m *
hist_percents.m *
hist_with_errs.m *
interact.m *
intexp_constructs.cpp
job_sims.sh
kurtos.m *
lamodel.cpp
LICENSE *
make_graphs.m *
Makefile *
matlab.mat *
mtest.py
mtrand.cpp *
mtrand.h *
multi.py
multistats.m *
nextplot.m *
pairstrong.m *
repeated.m *
rotateXLabels.m *
run_1.sh
run_2strong.sh
run_2weak.sh
run_3.sh
run_all.sh
run_brov.sh
run_brtest.sh
run_btag.sh
run_dir.sh
run_ep.sh
run_gp.sh
run_gp2.sh
run_mult.sh
run_Nsparse.sh
run_pairstrong.sh
run_rep.sh
run_sims.sh
run_sparse.sh
run_sparseS2.sh
runloc.sh
runmany.sh
S2sparse.m *
savefig.m *
scratch.m *
sensitivity.m *
stats.m *
stats.py *
stderr.m *
strong2.m *
strongstrong.m *
submit_lamodel.sh *
three.m *
trevrolls.m *
vis.py *
weastrong.m *
wxglmodel *
wxglmodel.cpp *
wxglmodel.h *
wxmodel.cpp *
wxmodel.h *
                            
import sys
import matplotlib
import pylab
import numpy


bdir = sys.argv[1]

ar = numpy.genfromtxt("./data/%s/memorytest.dat"%(bdir)) 
nins =  len(ar)

pops  = numpy.zeros( (nins,nins));
coss  = numpy.zeros( (nins,nins));
coact = numpy.zeros( (nins,nins));



for i in range(nins):
	for k in range(len(ar[i])):
		if (ar[i][k] < 7.0): ar[i][k] =  0.0;
			#else: ar[i][k]  =0.0

print ar

for i in range(nins):
	for j in range(nins):
		pops[i][j] =  numpy.dot(ar[i]  , ar[j] ) 
		s1 = numpy.sqrt(numpy.dot(ar[i], ar[i]))
		s2 = numpy.sqrt(numpy.dot(ar[j], ar[j]))
		coss[i][j] = numpy.dot(ar[i], ar[j]) / (s1*s2)

pylab.figure();
pylab.imshow(pops, interpolation='nearest', aspect='auto',cmap='hot')
pylab.colorbar()

pylab.figure();
pylab.imshow(coss, interpolation='nearest', aspect='auto',cmap='hot')
pylab.colorbar()


dr = numpy.genfromtxt("./data/%s/synweights.txt"%(bdir)) 
maxbid = max(dr[:,1]);
maxinpid = max(dr[:,3]);

myar =  numpy.zeros((maxinpid+1,maxbid+1));

for i in range(len(dr)):
	if (dr[i,3] >=0):
		v = dr[i,4]
		if (v <= 0.4): v = 0.0
		myar[dr[i,3], dr[i,1]] += v

maxinpid += 1
coss  = numpy.zeros( (maxinpid,maxinpid));


for i in range(int(maxinpid) ):
	for j in range(int(maxinpid)):
		s1 = numpy.sqrt(numpy.dot(myar[i], myar[i]))
		s2 = numpy.sqrt(numpy.dot(myar[j], myar[j]))
		#if (i==j): coss[i][j] = 0.0
		#else: 
		coss[i][j] = numpy.dot(myar[i], myar[j]) / (s1*s2)


pylab.figure();
pylab.imshow(coss, interpolation='nearest', aspect='auto',cmap='hot')
pylab.colorbar()



pylab.figure();
for i in [4]: pylab.plot(coss[i, :], label='Mem #4 - Overlap');

pylab.figure();
for i in [1,5,9]: pylab.plot(coss[i, :], label='3 Mems / Overlap');

pylab.show()