A computational model of oxytocin modulation of olfactory recognition memory (Linster & Kelsch 2019)

 Download zip file 
Help downloading and running models
Accession:257940
Model of olfactory bulb (OB) and anterior olfactory nucleus (AON) pyramidal cells. Includes olfactory sensory neurons, mitral cells, periglomerular, external tufted and granule interneurons and pyramidal cells. Can be built to include a feedback loop between OB and AON. Output consists of voltage and spikes over time in all neurons. Model can be stimulated with simulated odorants. The code submitted here has served for a number of modeling explorations of olfactory bulb and cortex. The model architecture is defined in "bulb.dat" with synapses defined in "channels.dat". The main function to run the model can be found in "neuron.c". Model architecture is constructed in "set.c" from types defined in "sim.c". A make file to create an executable is located in "neuron.mak".
Reference:
1 . Linster C, Kelsch W (2019) A computational model of oxytocin modulation of olfactory recognition memory. eNeuro [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell; Olfactory bulb main tufted cell external;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s):
Implementer(s): Linster, Christiane [cl243 at cornell.edu];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell;
#include "my.init"    /** personal definitions **/
#include "lib.init"   /** library definitions and functions **/
#include "gra.init"
#include "draw.init"
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

                                       

				

/************neurons***********/
/************one link**********/

typedef struct	_link {
			int			from_unit;
			float			weight;
			float			firstweight;
			float			*signal;
			int			delay;  
			struct _link 		*next;
			enum LINK_TYPES		type;
			enum BOOLEAN 		reverse;
			float 			reversal;
			int			channel;
			enum BOOLEAN		hebb;
			float			learning_rate;
			float 			max_weight;
			float			delta_weight;
			float			old_signal, old_help;
			float			tau1;
			float			tau2;
			float 			gmax; 
			int			nspikes; 
			int			*spikes;
			float 			*amps; 
			float 			mod; 
			enum COMPS		from_comp;
			enum COMPS		too_comp;
                	}   LINK;   


typedef struct 
			{

			float 			nernst; 
			float 			tau1, tau2;
			enum BOOLEAN 		hebb, reverse;
			float 			max_weight;
			float 			nuu;
			float 			gmax; 
			}	CHANNEL; 



/************update function****/

typedef float (*FUNCTION) ();

/*********one neuron*************/ 


typedef struct {
		enum TYPES 		type;   
		char 			name[10];
		FUNCTION		input_function;
		FUNCTION		state_function;
		FUNCTION		output_function;
		float			inpar1, inpar2;		
		float			stpar1, outpar1, outpar2;
		float   		*state, *output;
		float 			old_state; 
		float 			*calcium;   
		LINK			*links_to_unit;
		int			x_coor, y_coor; 
		int			couche;              
		enum BOOLEAN 		selected; 
		enum BOOLEAN		flag;
		int 			layer;
		int			ncomps;
		float 			comps[5];
		}  NEURON;

                                


/**********variables**********/

int			N_STEPS;	/*number of steps*/
float			ww;
int			N_UNITS;	/*number of neurons*/
NEURON			*units;       	/*neuron vector*/
int			ialea;          /*random numbers*/
double			alea;                           
char			TEX[10];
CHANNEL			channels[4];
int			points;
float 			DELTA;
int			COUNT1;
float 			aplus, aminus, tauplus, tauminus, threshold;
float			*AVSM, *AVSG, *AVSP;
float 			*MAV, *GAV, *PAV, *EAV, *RAV;
float 			*POTSM, *POTSG, *POTSP;

/*************functions**********/

extern double		RANF ();  
extern enum 		BOOLEAN EQU ();
extern float 		GAUSSIENNE ();
extern float		DEXP ();
extern float 		COUNTSPIKES ();
extern float 		VUM ();
extern float 		*INTERSPIKE ();
extern float 		SYNC_COUNT ();
extern float 		*ALDS2 ();

Loading data, please wait...