Hotspots of dendritic spine turnover facilitates new spines and NN sparsity (Frank et al 2018)

 Download zip file 
Help downloading and running models
Accession:227087
Model for the following publication: Adam C. Frank, Shan Huang, Miou Zhou, Amos Gdalyahu, George Kastellakis, Panayiota Poirazi, Tawnie K. Silva, Ximiao Wen, Joshua T. Trachtenberg, and Alcino J. Silva Hotspots of Dendritic Spine Turnover Facilitate Learning-related Clustered Spine Addition and Network Sparsity
Reference:
1 . Frank AC, Huang S, Zhou M, Gdalyahu A, Kastellakis G, Silva TK, Lu E, Wen X, Poirazi P, Trachtenberg JT, Silva AJ (2018) Hotspots of dendritic spine turnover facilitate clustered spine addition and learning and memory. Nat Commun 9:422 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Connectionist Network;
Brain Region(s)/Organism:
Cell Type(s): Abstract integrate-and-fire leaky neuron with dendritic subunits;
Channel(s):
Gap Junctions:
Receptor(s): NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program; MATLAB;
Model Concept(s): Active Dendrites; Synaptic Plasticity;
Implementer(s): Kastellakis, George [gkastel at gmail.com];
Search NeuronDB for information about:  NMDA;
/
tomodel
data
distributionPlot
exportfig
fig
figs
mtrand
README
.exrc *
an_m_to.m
an_to.m
barwitherr.m *
btagstats.m *
CImg.h *
constructs. *
constructs.cpp *
constructs.h
csvgraph.m
defaults.m
dir2.m *
gconstructs.cpp *
getspikedata.m *
getsynstate.m *
getsynstate2.m *
graphs.m *
hist_percents.m *
hist_with_errs.m *
interact.m *
kurtos.m *
lamodel
lamodel.cpp
LICENSE *
make_graphs.m *
Makefile *
matlab.mat *
mtrand.cpp *
mtrand.h *
multistats.m *
nextplot.m *
pairstrong.m *
repeated.m *
rotateXLabels.m *
run_to.sh
S2sparse.m *
savefig.m *
scratch.m *
sensitivity.m *
stats.m *
stats.py *
stderr.m *
strong2.m *
strongstrong.m *
submit_lamodel.sh *
three.m *
to.cpp
trevrolls.m *
vis.py *
weastrong.m *
wxglmodel *
wxglmodel.cpp *
wxglmodel.h *
wxmodel.cpp *
wxmodel.h *
                            
//
// Version: $Id: wxmodel.h 162 2014-01-08 15:09:14Z gk $
//
// WxWidgets GUI for visualization and demonstration purposes
//
/* 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/





#include <wx/wx.h>
#include "wx/glcanvas.h"
#include <wx/thread.h>
#include <wx/event.h>

// extern
class LANetwork;

class LAApp: public wxApp
{
	public:
	LAWindow* window;
	LANetwork* network;
	virtual bool OnInit();

};


typedef map<int, wxPoint>::iterator pt_iterator;

class LAPanel: public wxPanel
{
	public:
	LAPanel(wxFrame*);
	LANetwork* network;
	bool hasStarted ;
	map<int, wxPoint> nrnpoints;


	protected:

	void drawPyrCell(wxPaintDC& dc, LANeuron* n, int x , int y);
	void drawInCell(wxPaintDC& dc, LANeuron* n, int x , int y);
	void OnPaint(wxPaintEvent& event);
	void OnTimer(wxCommandEvent& );
	void OnClick(wxMouseEvent& );
};


class LAGLPane;


class LAWindow: public wxFrame
{
	public:
	LAPanel* network_panel;
	LAGLPane* network_glpanel;
	LANetwork* network;
	wxTimer* timer;
	int timersRun;

	LAWindow(const wxString& title, LANetwork* net);
	void OnRun(wxCommandEvent& ev);
	void OnRefresh(wxCommandEvent& ev);
	void OnQuit(wxCommandEvent& ev);

	void UpdatePanel()
	{
		this->network_panel->Refresh();
		this->SetStatusText(wxString::Format(wxT("T=%d"), this->network->T));
		this->Update();
	}


	protected:

	void OnTimer(wxCommandEvent& );


	DECLARE_EVENT_TABLE()
};



class LAGLPane : public wxGLCanvas
{
    wxGLContext*	m_context;
    GLUquadric* m_quadric;
 
	public:
	LANetwork* m_network;

	LAGLPane(wxFrame* parent, LANetwork* net, int* args);
	virtual ~LAGLPane();
 
	void resized(wxSizeEvent& evt);
 
	int getWidth();
	int getHeight();
 
	void render(wxPaintEvent& evt);
	void prepare3DViewport(int topleft_x, int topleft_y, int bottomrigth_x, int bottomrigth_y);
	void prepare2DViewport(int topleft_x, int topleft_y, int bottomrigth_x, int bottomrigth_y);
 
	void drawPyrNeuron( LANeuron* n);
	// events
	//void mouseMoved(wxMouseEvent& event);
	//void mouseDown(wxMouseEvent& event);
	//void mouseWheelMoved(wxMouseEvent& event);
	//void mouseReleased(wxMouseEvent& event);
	//void rightClick(wxMouseEvent& event);
	//void mouseLeftWindow(wxMouseEvent& event);
	//void keyPressed(wxKeyEvent& event);
	//void keyReleased(wxKeyEvent& event);
	//
	DECLARE_EVENT_TABLE()
};




Loading data, please wait...