Continuous time stochastic model for neurite branching (van Elburg 2011)

 Download zip file 
Help downloading and running models
Accession:129071
"In this paper we introduce a continuous time stochastic neurite branching model closely related to the discrete time stochastic BES-model. The discrete time BES-model is underlying current attempts to simulate cortical development, but is difficult to analyze. The new continuous time formulation facilitates analytical treatment thus allowing us to examine the structure of the model more closely. ..."
Reference:
1 . van Elburg R (2011) Stochastic Continuous Time Neurite Branching Models with Tree and Segment Dependent Rates Journal of Theoretical Biology 276(1):159-173
Model Information (Click on a link to find other models with that property)
Model Type: Axon; Dendrite;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program; MATLAB;
Model Concept(s): Development;
Implementer(s): van Elburg, Ronald A.J. [R.van.Elburg at ai.rug.nl];
/*=================================================================
 *
 * mex_handletest.cpp
 * Test for persistence of heap-allocated objects between mex calls
 * using handles in MatLab. This technique was originally developed by 
 * Mike Stevens.
 *
 * Tim Bailey 2004
 *
 *=================================================================*/

#include "ObjectHandle.h"

class MyClass {
	int i;
public:
	MyClass() : i(0) { mexPrintf("MyClass created.\n"); }
	~MyClass() { mexPrintf("MyClass destroyed.\n"); }
	void dostuff() { mexPrintf("MyClass value %d\n", i++); }
};

void create (mxArray **out) {
#if 0 // simple interface
	*out = create_handle(new MyClass);

#else // direct interface
	MyClass *mine = new MyClass;
mexPrintf("Pointer before: %#x, ", mine);
	ObjectHandle<MyClass> *handle = new ObjectHandle<MyClass>(mine);
mexPrintf("Pointer after: %#x\n", mine);
	*out = handle->to_mex_handle();
#endif
}

void display (const mxArray *in) {
#if 1 // simple interface
	MyClass& mine = get_object<MyClass>(in);
	mine.dostuff();

#else // direct interface
	ObjectHandle<MyClass>* handle = ObjectHandle<MyClass>::from_mex_handle(in);
	handle->get_object().dostuff();
#endif
}

void destroy (const mxArray *in) {
#if 0 // simple interface
	destroy_object<MyClass>(in);

#else // direct interface
	ObjectHandle<MyClass>* handle = ObjectHandle<MyClass>::from_mex_handle(in);
	delete handle;
#endif
}

void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )     
{
	if (nlhs == 1 && nrhs == 0) create(&plhs[0]);
	else if ( nlhs == 0 && nrhs == 1 ) display(prhs[0]);
	else if ( nlhs == 0 && nrhs == 2 ) destroy(prhs[0]);
	else mexErrMsgTxt("Bad input.");
}

Loading data, please wait...