z coordinate for positionning cells into layers

Moderator: wwlytton

Post Reply
Sandrine

z coordinate for positionning cells into layers

Post by Sandrine »

Hi,

I created 3 types of neurons (pyramidal cell in layer 2, pyramidal cell in layers 5 and smooth stellate cell in all layers, and i would like to differentiate them by their postion into cortical layers or their z coordinate (i assume that say that a neuron is inone layer is just a test on its position, am i wrong?) , and maybe x and y also.

Which functions should i use to do this?

Is it possible to index my neurons or attach a label "layer number" to my neurons?

Thanks,
Sandrine.
ted
Site Admin
Posts: 5786
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Since your cell types are actually class definitions (i.e. defined by templates)--they are,
right?--you could append them to separate lists when they are created, then treat each list
like a bag (set) of cells of a given type. The following assumes that the class names are
P2, P5, SS, and that you want NUMP2, NUMP5, NUMSS2, NUMSS5 of them.

Code: Select all

objref p2, p5, ss2, ss5 // one list for each class
p2 = new List()
for i = 0,NUMP2-1 p2.append(new P2)
// do the same for p5, ss2, and ss5
However, if you ever want to simulate your net on parallel hardware, it's best to keep all
cells in a single list--but then how do you tell them apart? You might add
public type
to each template, and insert this line into each template's proc init:
type = $1
Then

Code: Select all

// table of codes that distinguish the different cell types
CP2 = 0 // "C" for "C"ode
CP5 = 1
CSS2 = 2
CSS5 = 3
objref cells // holds all cells
cells = new List()
proc mkcells() { local i  localobj tob
  for i = 0,NUMP2-1 cells.append(new P2(CP2))
  for i = 0,NUMP5-1 cells.append(new P5(CP5))
  for i = 0,NUMSS2-1 cells.append(new SS2(CSS2))
  for i = 0,NUMSS5-1 cells.append(new SS5(CSS5))
}
mkcells()
creates each cell, tags it according to the class it belongs to, and appends it to the list
called cells. Later, when you want to do something special to all cells of a given class,

Code: Select all

// do something to all P5 cells
for i = 0, cells.count()-1 if (cells.o(i).type == CP5) {
  etc.
}
There's no need to give any cell xyz coordinates unless the coords play a vital role in
cell properties (e.g. position-dependent cell size, morphology, or biophysical properties),
or network connectivity (e.g. does P(A projects to B) or netcon latency depend on distance
between A and B?).
Sandrine

z coordinate for positionning cells into layers

Post by Sandrine »

Indeed, since i want to model a cortical minicolumn (in order to find optical signal sources (e.g extrinsic optical imaging)), i need to take into account the morphology of the neurons and their distances to the cortex surface (because there is a diffusion coefficient to be taken into account which depends of the depth) . The distance between neurons will be taken into account after.

Thanks a lot for your answer. Indeed my cells are defined by templates so your code are perfect!

Sandrine.
Post Reply