Fronto-parietal visuospatial WM model with HH cells (Edin et al 2007)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:98017
1) J Cogn Neurosci: 3 structural mechanisms that had been hypothesized to underlie vsWM development during childhood were evaluated by simulating the model and comparing results to fMRI. It was concluded that inter-regional synaptic connection strength cause vsWM development. 2) J Integr Neurosci: Given the importance of fronto-parietal connections, we tested whether connection asymmetry affected resistance to distraction. We drew the conclusion that stronger frontal connections are beneficial. By comparing model results to EEG, we concluded that the brain indeed has stronger frontal-to-parietal connections than vice versa.
Reference:
1 . Edin F, Macoveanu J, Olesen P, Tegnér J, Klingberg T (2007) Stronger synaptic connectivity as a mechanism behind development of working memory-related brain activity during childhood. J Cogn Neurosci 19:750-60 [PubMed]
2 . Edin F, Klingberg T, Stödberg T, Tegnér J (2007) Fronto-parietal connection asymmetry regulates working memory distractibility. J Integr Neurosci 6:567-96 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Abstract Wang-Buzsaki neuron;
Channel(s):
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Working memory; Attractor Neural Network;
Implementer(s):
Search NeuronDB for information about:  Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell;
/* MyRandom generates random numbers in exactly the same way as the built-in 
* Random function, but with an added function to generate random seeds.
*
* Author: Fredrik Edin, 2003.
* Address: freedin@nada.kth.se
*
*/

begintemplate MyRandom

    objref r
    strdef str, str2
    objref fi
    
    /* Public functions */
    public newSeed
    public uniform
    public normal
    public discunif
    public gamma
    public erlang
    public repick
    
    /* Creates an object with a random seed 
    *
    *(Arg 1, seed:   : A seed. If no argument is given, then the seed is random,) 
    * 
    * Return, rseed  : A seed 
    */
    proc init() {
	if( numarg() > 0 ) {
	    rseed = $1
	    newSeed(rseed)
	} else {
	    newSeed()
	}
	state = 0 /* to remember the current distribution */
    }  
    
    /* Generates a random seed 
    *
    *(Arg 1, rseed   : A seed. If no argument is given, then the seed is random,) 
    * 
    * Return, rseed  : A seed 
    */
    func newSeed() { local rseed, ind
	if( numarg() > 0 ) {
	    rseed = $1
	} else {
	    rseed = 12345
	    str = "Seed is not random"
	    // The following lines removes the decimal point and 
	    // saves the seed to file in reversed order
	    system("python RandomSeed.py")
	    fi = new File()
	    fi.ropen("SEED.txt")
	    rseed = fi.scanvar(str)
	    fi.close()
	    str = "Seed is random"
	}
	//print "rseed ", rseed
	r = new Random( rseed )
	//print str
	return rseed
    }
    
    /* picks a number from the uniform distribution 
    *
    * return, p: a number drawn from the uniform distribution */ 
    func uniform() { local p
	p = r.uniform($1,$2)
	state = 0
	return p
    }
    
    /* picks a number from the normal distribution
    *
    * return, p: a number drawn from the normal distribution */ 
    func normal() { local p
	p = r.normal($1,$2)
	return p
    }
    
    /* picks a random integer between high and low
    *
    * return, p: a discrete number drawn from the uniform distribution */ 
    func discunif() { local p
	p = r.discunif($1,$2)
	state = 0
	return p
    }
    
    /* picks a random number from the Erlang distribution
    *
    * Arg 1, alpha
    * Arg 2, beta
    * return, p: a discrete number drawn from the Erlang distribution */ 
    func erlang() { local p
	alpha = $1
	beta = $2
	p = r.erlang(alpha,beta)
	return p
    }
    
    /* private faculty function */
    func fac() { local m, n
	n = $1
	m = 1
	for i = 2, n {
	    m = m * i
	}
	return m
    }
    
    /* picks a random number from the Gamma distribution
    * f(x) = x^(alpha-1)*exp(-x/beta)/(Gamma(p)*beta^alpha)
    *
    * Arg 1, alpha
    * Arg 2, beta
    * return, p: a discrete number drawn from the uniform distribution */ 
    func gamma() { local p
	alpha = $1
	beta = $2
	print "Gamma not implemented"
	//p = r.gamma( alpha, beta )
	p = r.repick()
	return p
    }    
    
    /* picks a number from the distribution last chosen 
    *
    * return, p: a number drawn from the distribution chosen last */ 
    func repick() { local p
	p = r.repick()
	return p
    }
 
endtemplate MyRandom