I&F recurrent networks with current- or conductance-based synapses (Cavallari et al. 2014)

 Download zip file 
Help downloading and running models
Accession:152539
Recurrent networks of two populations (excitatory and inhibitory) of randomly connected Leaky Integrate-and-Fire (LIF) neurons with either current- or conductance-based synapses from the paper S. Cavallari, S. Panzeri and A. Mazzoni (2014)
Reference:
1 . Cavallari S, Panzeri S, Mazzoni A (2014) Comparison of the dynamics of neural interactions between current-based and conductance-based integrate-and-fire recurrent networks. Front Neural Circuits 8:12 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Abstract integrate-and-fire leaky neuron;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Activity Patterns;
Implementer(s): Cavallari, Stefano [stefano.cavallari at iit.it];
Search NeuronDB for information about:  GabaA; AMPA;
#include "ran1.h"
/* note #undef's at end of file */
/* returns a uniform random deviate between 0 and 1 (exclusive of the endpoint values)*/
/* call with idum a negative integer to initialize (if you use a positive integer the deviates you obtain is independet of the seed); 
 * do not alter idum between successive deviates in a sequence
 * If the value of idum is not initialized you will always obtain the same deviates
 */

#define IA 16807
#define IM 2147483647
#define AM (1.0/IM)
#define IQ 127773
#define IR 2836
#define NTAB 32
#define NDIV (1+(IM-1)/NTAB)
#define EPS 1.2e-7
#define RNMX (1.0-EPS)



float ran1(long *idum) /* ran1 ha in input un puntatore a long, ma poi nel codice sfrutta il valore puntato, non il suo indirizzo*/
{
	int j;
	long k;
	static long iy=0;
	static long iv[NTAB];
	float temp;

	if (*idum <= 0 || !iy) {
		if (-(*idum) < 1) *idum=1;
		else *idum = -(*idum);
		for (j=NTAB+7;j>=0;j--) {
			k=(*idum)/IQ;
			*idum=IA*(*idum-k*IQ)-IR*k;
			if (*idum < 0) *idum += IM;
			if (j < NTAB) iv[j] = *idum;
		}
		iy=iv[0];
	}
	k=(*idum)/IQ;
	*idum=IA*(*idum-k*IQ)-IR*k;
	if (*idum < 0) *idum += IM;
	j=iy/NDIV;
	iy=iv[j];
	iv[j] = *idum;
	if ((temp=AM*iy) > RNMX) return RNMX;
	else return temp;
}


#undef IA
#undef IM
#undef AM
#undef IQ
#undef IR
#undef NTAB
#undef NDIV
#undef EPS
#undef RNMX