Disentangling astroglial physiology with a realistic cell model in silico (Savtchenko et al 2018)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:243508
"Electrically non-excitable astroglia take up neurotransmitters, buffer extracellular K+ and generate Ca2+ signals that release molecular regulators of neural circuitry. The underlying machinery remains enigmatic, mainly because the sponge-like astrocyte morphology has been difficult to access experimentally or explore theoretically. Here, we systematically incorporate multi-scale, tri-dimensional astroglial architecture into a realistic multi-compartmental cell model, which we constrain by empirical tests and integrate into the NEURON computational biophysical environment. This approach is implemented as a flexible astrocyte-model builder ASTRO. As a proof-of-concept, we explore an in silico astrocyte to evaluate basic cell physiology features inaccessible experimentally. ..."
Reference:
1 . Savtchenko LP, Bard L, Jensen TP, Reynolds JP, Kraev I, Medvedev N, Stewart MG, Henneberger C, Rusakov DA (2018) Disentangling astroglial physiology with a realistic cell model in silico. Nat Commun 9:3554 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Glia;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Astrocyte;
Channel(s): I Calcium; I Potassium; Kir;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s): Glutamate;
Simulation Environment: NEURON; MATLAB; C or C++ program;
Model Concept(s): Calcium waves; Calcium dynamics; Potassium buffering; Volume transmission; Membrane Properties;
Implementer(s): Savtchenko, Leonid P [leonid.savtchenko at ucl.ac.uk];
Search NeuronDB for information about:  I Calcium; I Potassium; Kir; Glutamate;
// 0 - Electric mechanisms, 1 - Glutamate mechanisms
currentMechanismSetup = 0
cadifusInElectricalLeaves = 0
cadifusInAllGlu = 0

// Insert-uninsert FRAP and set its params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertFRAP() {
    if ($1 > 0) {
        insert FRAP
        DFree_FRAP=0.15        // um2/sm
    } else {
        uninsert FRAP
    }
}

// Insert-uninsert cadifus and set its params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertCadifus() {
    if ($1 > 0) {
        insert cadifus
        DCa_cadifus=0.30       // um2/sm
        ip3i=1e-5              // initial ip3 mM
		//insert ip3diffus
		
    } else {
        uninsert cadifus
	//	uninsert ip3diffus
    }
}

// Insert-uninsert mechanisms for electrical simulations.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertElectricMechanisms() {
    // Soma
    soma {
        SectionInsertFRAP($1)
        SectionInsertCadifus($1)
    }

    // Dendrites
    for i = 0, NumberDendrites-1 dendrite[i]  {
        SectionInsertFRAP($1)
        SectionInsertCadifus($1)
    }

    // Leaves
    for i = 0, SizeTotal-1 LargeGlia[i] {
	insert pas
	   
        SectionInsertFRAP($1)

        if ($1 > 0) {
            if (cadifusInElectricalLeaves == 1) {
                SectionInsertCadifus(1)
            }
        } else {
            SectionInsertCadifus(0)
        }
    }
    
    // Stalks
    for i = 0, SizeTotal-1 SmallGlia[i] {
        SectionInsertFRAP($1)

        if (cadifusInElectricalLeaves == 1) {
            SectionInsertCadifus($1)
        }
    }
}

// Insert-uninsert mechanisms needed for Glutamate simulation and set their params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertGlutamateMechanisms() {
    if ($1 > 0) {
        insert CAl
        insert kdrglia
        insert kir
		insert kdifl // New added
        insert GluTrans
        Gluout_GluTrans= 20e-6   // mM

        if (cadifusInAllGlu == 1) {
            SectionInsertCadifus(1)
        }
    } else {
        uninsert CAl
        uninsert kdrglia
        uninsert kir
		uninsert kdifl // New added
        uninsert GluTrans
        SectionInsertCadifus(0)
    }
    
}

// Insert-uninsert mechanisms needed for Potasasium simulation and set their params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertPotasasiumMechanisms() {
   if ($1 > 0) {
        //Ra = 100
        //cm = 1
       // insert pas
       // g_pas = 0.001
       // e_pas = -85    
        insert kdifl
        D_kdifl = 0.6
	    ki0_kdifl=110	
	    insert kpump
   if (cadifusInAllGlu == 1) {
            SectionInsertCadifus(1)
        }
    } else {
       // uninsert CAl
       // uninsert kdrglia
       // uninsert kir
       // uninsert GluTrans 
	   uninsert kdifl
       // D_kdifl = 0.6
	   // ki0_kdifl=110	
	   uninsert kpump
}		
}



// Insert-uninsert mechanisms for Glutamate simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertGlutamateMechanisms() {
    // Soma
    soma[0] {
        SectionInsertGlutamateMechanisms($1)
    }

    // Dendrites
    for i = 0, NumberDendrites-1 dendrite[i] {
        SectionInsertGlutamateMechanisms($1)
    }
    
    // Leaves
    for i = 0, SizeTotal-1 LargeGlia[i] {
        SectionInsertGlutamateMechanisms($1)
        if ($1 > 0) {
            density_GluTrans=(1+diam/(2*L))*DensityGluTransporters
        }
    }

    // Stalks
    for i = 0, SizeTotal-1 SmallGlia[i] {
        SectionInsertGlutamateMechanisms($1)
    }
}


// Insert-uninsert mechanisms for potassium simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertPotassiumMechanisms() {
    // Soma
    soma[0] {
       SectionInsertPotasasiumMechanisms($1)
    }

    // Dendrites
    for i = 0, NumberDendrites-1 dendrite[i] {
       SectionInsertPotasasiumMechanisms($1)
    }
    
    // Leaves
    for i = 0, SizeTotal-1 LargeGlia[i] {
       SectionInsertPotasasiumMechanisms($1)
    }

    // Stalks
    for i = 0, SizeTotal-1 SmallGlia[i] {
       SectionInsertPotasasiumMechanisms($1)
    }
}



// Updates current mechanisms.
proc ResetMechanisms() {
    if (currentMechanismSetup == 0) {
        InsertElectricMechanisms(0)
        InsertElectricMechanisms(1)
    } else {
        InsertGlutamateMechanisms(0)
        InsertGlutamateMechanisms(1)
    }
}

// Insert-uninsert cadifus in leaves for electrical simulations.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertCadifusInElectricalLeaves() {
    cadifusInElectricalLeaves = $1
    ResetMechanisms()
}

// Insert-uninsert cadifus in soma, dendrites and leaves for Glutamate simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertCadifusInAllGlu() {
    cadifusInAllGlu = $1
    ResetMechanisms()
}


Loading data, please wait...