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]
Citations  Citation Browser
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
//



#ifndef WXGLMODEL_H
#define WXGLMODEL_H
#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:
	LANetwork* network;
	bool hasStarted ;
	map<int, wxPoint> nrnpoints;
	LAPanel(wxFrame*);


	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();
		usleep(100000);
	}


	protected:

	void OnTimer(wxCommandEvent& );


	DECLARE_EVENT_TABLE()
};



class LAGLPane : public wxGLCanvas
{
    wxGLContext*	m_context;
    GLUquadric* m_quadric;
    GLUquadric* m_sphereq;
    GLuint   m_sphereTexture;
 
	public:
	LANetwork* m_network;
	    float angle;

	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()
};



#endif