Alpha rhythm in vitro visual cortex (Traub et al 2020)

 Download zip file 
Help downloading and running models
Accession:263703
The paper describes an experimental model of the alpha rhythm generated by layer 4 pyramidal neurons in a visual cortex slice. The simulation model is derived from that of Traub et al. (2005) J Neurophysiol, developed for thalamocortical oscillations.
Reference:
1 . Traub RD, Hawkins K, Adams NE, Hall SP, Simon A, Whittington MA (2020) Layer 4 pyramidal neuron dendritic bursting underlies a post-stimulus visual cortical alpha rhythm Nature Communications Biology, in press
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Thalamus; Neocortex;
Cell Type(s): Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex U1 L6 pyramidal corticalthalamic GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex layer 4 pyramidal cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron; Neocortex spiny stellate cell;
Channel(s): I Na,p; I Na,t; I L high threshold; I A; I K; I M; I h; I K,Ca; I Calcium; I A, slow;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: FORTRAN;
Model Concept(s): Brain Rhythms; Dendritic Action Potentials;
Implementer(s): Traub, Roger D [rtraub at us.ibm.com];
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex U1 L6 pyramidal corticalthalamic GLU cell; I Na,p; I Na,t; I L high threshold; I A; I K; I M; I h; I K,Ca; I Calcium; I A, slow;
/
alpha_rhythm_code_RT
readme.txt
alphaY33.pdf
alphaY67.f
alphaY67.pdf
dexptablebig_setup.f *
dexptablesmall_setup.f *
durand.f *
fnmda.f *
gettime.c *
groucho_gapbld.f *
groucho_gapbld_mix.f *
integrate_deepaxaxx.f *
integrate_deepbaskx.f *
integrate_deepLTSx.f *
integrate_deepng.f *
integrate_nontuftRSXXB.f
integrate_nrtxB.f *
integrate_spinstelldiegoxB.f *
integrate_supaxaxx.f *
integrate_supbaskx.f *
integrate_supLTSX.f *
integrate_supng.f *
integrate_suppyrFRBxPB.f *
integrate_suppyrRSXPB.f
integrate_tcrxB.f *
integrate_tuftIBVx3B.f
integrate_tuftRSXXB.f *
makefile
otis.f *
otis_table_setup.f *
synaptic_compmap_construct.f *
synaptic_map_construct.f *
                            
            SUBROUTINE GROUCHO_gapbld (thisno, numcells, numgj,
     &       gjtable, allowedcomps, num_allowedcomps, display)
c       Construct a gap-junction network for groucho.f
c numcells = number of cells in population, e.g. number of tufted IB cells
c numgj = total number of gj to be formed in this population
c gjtable = table of gj's: each row is a gj.  Entries are: cell A,
c    compartment on cell A; cell B, compartment on cell B
c allowedcomps = a list of compartments where gj allowed to form
c num_allowedcomps = number of compartments in a cell on which a gj 
c    might form.
c display is an integer flag.  If display = 1, print gjtable

        INTEGER thisno, numcells, numgj, gjtable(numgj,4),
     &    num_allowedcomps, allowedcomps(num_allowedcomps)
        INTEGER i,j,k,l,m,n,o,p, ictr /0/
c ictr keeps track of how many gj have been "built"
        INTEGER display

        double precision seed, x(2), y(2)

            seed = 137.d0
            gjtable = 0
            ictr = 0
            k = 2

2           call durand (seed, k, x)
c This defines a candidate cell pair
            call durand (seed, k, y)
c This defines a candidate pair of compartments

           i = int ( x(1) * dble (numcells) )
           j = int ( x(2) * dble (numcells) )
           if (i.eq.0) i = 1
           if (i.gt.numcells) i = numcells
           if (j.eq.0) j = 1
           if (j.gt.numcells) j = numcells

c Is the unordered cell pair (i,j) in the list so far?
           if (ictr.eq.0) goto 1

           p = 0
         do L = 1, ictr
       if ((gjtable(L,1).eq.i).and.(gjtable(L,3).eq.j)) p = 1
       if ((gjtable(L,1).eq.j).and.(gjtable(L,3).eq.i)) p = 1
         end do

          if (p.eq.1) goto 2

c Proceed with construction
1          ictr = ictr + 1
           m = int ( y(1) * dble (num_allowedcomps) )
           n = int ( y(2) * dble (num_allowedcomps) )
         if (m.eq.0) m = 1
         if (m.gt.num_allowedcomps) m = num_allowedcomps
         if (n.eq.0) n = 1
         if (n.gt.num_allowedcomps) n = num_allowedcomps

         gjtable (ictr,1) = i
         gjtable (ictr,3) = j
         gjtable (ictr,2) = allowedcomps (m)
         gjtable (ictr,4) = allowedcomps (n)

            if (ictr.lt.numgj) goto 2

c Possibly print out gjtable when done.
       if ((display.eq.1).and.(thisno.eq.0)) then
        write (6,800)           
800     format(' GJTABLE ')
        do i = 1, numgj
         write (6,50) gjtable(i,1), gjtable(i,2),
     &                gjtable(i,3), gjtable(i,4)
50       FORMAT(4i6)
        end do
       endif

                 END

Loading data, please wait...