-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Soup up and make user-friendly Region info in SessionInfo #203
Comments
Hi Brendon
This is great. I suggest that regions are defined according to Allan Brain
institute brain regions acronyms which I also have implemented in the
current state of the database. I was very skeptical about using the Allan
Brain atlas as first, because the brain region tree in Brain Explorer
<http://mouse.brain-map.org/static/brainexplorer> had always been very
confusing for me to use, and because their region tree has up to 9 levels
of depths, which made it hard to hook onto specific levels for definitions.
What is really great (and what convinced me to use it) is that the tree
definition is publicly available, they built a very user-friendly Brain
Atlas
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=549&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>
allowing
you to browse brain regions easily, and the tree structure allows one to
define by arbitrary depth. What this means is that you can define
sessions/channels/cells to different levels of depths/details. As an
example, say you are recording from the Hippocampus, so you label the
session as HIP
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=1080&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>,
but a subset of the shanks are in CA1
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=382&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>,
some
channels are in CA2
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=423&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>,
and you might even want to assign a subset of cells to the pyramidal layer
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=407&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>
CA1sp.
From an analysis/database perspective, this allows you can request
sessions/channels/cells from a specific region, say CA1 and get the subset
labeled not only CA1, but also what is assigned to the pyramidal layer,
Orions
<http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=399&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5>
and so on. I already implemented this in the database functions in buzcode
<https://github.com/buzsakilab/buzcode/tree/master/database> that filters
sessions from the database.
Further I think we should create a hierarchy defining how regions can be
inherited directional from higher levels: (Project) -> Sessions -> Channel
groups -> Channels -> Cells. Such that if you assign a session to a brain
region, all lower levels inherit this assignment, but you can always define
any lower levels which would overrule the inheritance. Again, the
inheritance would only apply to lower levels such that e.g. a session
cannot inherit how a channel is defined.
2018-06-10 8:41 GMT-04:00 Brendon Watson <[email protected]>:
… I started working with regions and realized it'd be really nice to have
ready-made lists of which region has which shanks, and in addition to a
'string' with the region name for each channel it'd be convenient to have a
list of channel numbers in each region in a field like this:
.region.mPFC.channellist (1,2,3...)
So I'd like to add things like
.region.perRegionList(1).name = 'mPFC'
.region.perRegionList(1).channels = [1,2,3...]
.region.perRegionList(1).spikeGroups = [1:6]
.region.perRegionList(2).name = 'CA1'
.region.perRegionList(2).channels = [65, 66, 67]
.region.perRegionList(2).spikeGroups = [7:12]
What do you guys think?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#203>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ANb8udorbNL74uLVXeCx4DC0_4Mm3OMvks5t7RPdgaJpZM4Uhszp>
.
|
This sounds great to me!
I love the use of a standardized atlas/regions. I think we may need to
leave open the ability to add a custom-named region - in case something is
not in the atlas. But other than that it seems like a very positive
addition.
I also like: "Further I think we should create a hierarchy defining how
regions can be
inherited directional from higher levels: (Project) -> Sessions -> Channel
groups -> Channels -> Cells"
This sounds perfect.
How would you implement this? ... especially in a matlab context like the
sessionInfo struct. Is there a good way to have an element (say a cell)
with multiple properties and those properties are inherited from properties
above it?
I guess what I'm saying is I love this concept and totally agree with it,
but as of now we have a fractured system of matlab data containers holding
things like cell info (CellInfo.mat), region info (in another
sessionInf.mat).
Any obvious ideas on how to handle this?
…On Sun, Jun 10, 2018 at 11:13 AM Peter Petersen ***@***.***> wrote:
Hi Brendon
This is great. I suggest that regions are defined according to Allan Brain
institute brain regions acronyms which I also have implemented in the
current state of the database. I was very skeptical about using the Allan
Brain atlas as first, because the brain region tree in Brain Explorer
<http://mouse.brain-map.org/static/brainexplorer> had always been very
confusing for me to use, and because their region tree has up to 9 levels
of depths, which made it hard to hook onto specific levels for definitions.
What is really great (and what convinced me to use it) is that the tree
definition is publicly available, they built a very user-friendly Brain
Atlas
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=549&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>
allowing
you to browse brain regions easily, and the tree structure allows one to
define by arbitrary depth. What this means is that you can define
sessions/channels/cells to different levels of depths/details. As an
example, say you are recording from the Hippocampus, so you label the
session as HIP
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=1080&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>,
but a subset of the shanks are in CA1
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=382&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>,
some
channels are in CA2
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=423&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>,
and you might even want to assign a subset of cells to the pyramidal layer
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=407&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>
CA1sp.
From an analysis/database perspective, this allows you can request
sessions/channels/cells from a specific region, say CA1 and get the subset
labeled not only CA1, but also what is assigned to the pyramidal layer,
Orions
<
http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=399&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
>
and so on. I already implemented this in the database functions in buzcode
<https://github.com/buzsakilab/buzcode/tree/master/database> that filters
sessions from the database.
Further I think we should create a hierarchy defining how regions can be
inherited directional from higher levels: (Project) -> Sessions -> Channel
groups -> Channels -> Cells. Such that if you assign a session to a brain
region, all lower levels inherit this assignment, but you can always define
any lower levels which would overrule the inheritance. Again, the
inheritance would only apply to lower levels such that e.g. a session
cannot inherit how a channel is defined.
2018-06-10 8:41 GMT-04:00 Brendon Watson ***@***.***>:
> I started working with regions and realized it'd be really nice to have
> ready-made lists of which region has which shanks, and in addition to a
> 'string' with the region name for each channel it'd be convenient to
have a
> list of channel numbers in each region in a field like this:
>
> .region.mPFC.channellist (1,2,3...)
>
> So I'd like to add things like
> .region.perRegionList(1).name = 'mPFC'
> .region.perRegionList(1).channels = [1,2,3...]
> .region.perRegionList(1).spikeGroups = [1:6]
> .region.perRegionList(2).name = 'CA1'
> .region.perRegionList(2).channels = [65, 66, 67]
> .region.perRegionList(2).spikeGroups = [7:12]
>
> What do you guys think?
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#203>, or mute the thread
> <
https://github.com/notifications/unsubscribe-auth/ANb8udorbNL74uLVXeCx4DC0_4Mm3OMvks5t7RPdgaJpZM4Uhszp
>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#203 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADXrTdNMmb22324S6gYxfS7tlOIf7PFEks5t7TeNgaJpZM4Uhszp>
.
|
What do you guys think of this?
On Tue, Jun 12, 2018 at 5:45 AM Brendon Watson <[email protected]>
wrote:
… This sounds great to me!
I love the use of a standardized atlas/regions. I think we may need to
leave open the ability to add a custom-named region - in case something is
not in the atlas. But other than that it seems like a very positive
addition.
I also like: "Further I think we should create a hierarchy defining how
regions can be
inherited directional from higher levels: (Project) -> Sessions -> Channel
groups -> Channels -> Cells"
This sounds perfect.
How would you implement this? ... especially in a matlab context like the
sessionInfo struct. Is there a good way to have an element (say a cell)
with multiple properties and those properties are inherited from properties
above it?
I guess what I'm saying is I love this concept and totally agree with it,
but as of now we have a fractured system of matlab data containers holding
things like cell info (CellInfo.mat), region info (in another
sessionInf.mat).
Any obvious ideas on how to handle this?
On Sun, Jun 10, 2018 at 11:13 AM Peter Petersen ***@***.***>
wrote:
> Hi Brendon
>
> This is great. I suggest that regions are defined according to Allan Brain
> institute brain regions acronyms which I also have implemented in the
> current state of the database. I was very skeptical about using the Allan
> Brain atlas as first, because the brain region tree in Brain Explorer
> <http://mouse.brain-map.org/static/brainexplorer> had always been very
> confusing for me to use, and because their region tree has up to 9 levels
> of depths, which made it hard to hook onto specific levels for
> definitions.
> What is really great (and what convinced me to use it) is that the tree
> definition is publicly available, they built a very user-friendly Brain
> Atlas
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=549&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >
> allowing
> you to browse brain regions easily, and the tree structure allows one to
> define by arbitrary depth. What this means is that you can define
> sessions/channels/cells to different levels of depths/details. As an
> example, say you are recording from the Hippocampus, so you label the
> session as HIP
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=1080&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >,
> but a subset of the shanks are in CA1
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=382&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >,
> some
> channels are in CA2
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=423&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >,
> and you might even want to assign a subset of cells to the pyramidal layer
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=407&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >
> CA1sp.
> From an analysis/database perspective, this allows you can request
> sessions/channels/cells from a specific region, say CA1 and get the subset
> labeled not only CA1, but also what is assigned to the pyramidal layer,
> Orions
> <
> http://atlas.brain-map.org/atlas?atlas=1#atlas=1&plate=100960224&structure=399&x=5279.74755859375&y=3743.74755859375&zoom=-2&resolution=8.38&z=5
> >
> and so on. I already implemented this in the database functions in buzcode
> <https://github.com/buzsakilab/buzcode/tree/master/database> that filters
> sessions from the database.
>
> Further I think we should create a hierarchy defining how regions can be
> inherited directional from higher levels: (Project) -> Sessions -> Channel
> groups -> Channels -> Cells. Such that if you assign a session to a brain
> region, all lower levels inherit this assignment, but you can always
> define
> any lower levels which would overrule the inheritance. Again, the
> inheritance would only apply to lower levels such that e.g. a session
> cannot inherit how a channel is defined.
>
>
>
>
> 2018-06-10 8:41 GMT-04:00 Brendon Watson ***@***.***>:
>
> > I started working with regions and realized it'd be really nice to have
> > ready-made lists of which region has which shanks, and in addition to a
> > 'string' with the region name for each channel it'd be convenient to
> have a
> > list of channel numbers in each region in a field like this:
> >
> > .region.mPFC.channellist (1,2,3...)
> >
> > So I'd like to add things like
> > .region.perRegionList(1).name = 'mPFC'
> > .region.perRegionList(1).channels = [1,2,3...]
> > .region.perRegionList(1).spikeGroups = [1:6]
> > .region.perRegionList(2).name = 'CA1'
> > .region.perRegionList(2).channels = [65, 66, 67]
> > .region.perRegionList(2).spikeGroups = [7:12]
> >
> > What do you guys think?
> >
> > —
> > You are receiving this because you are subscribed to this thread.
> > Reply to this email directly, view it on GitHub
> > <#203>, or mute the thread
> > <
> https://github.com/notifications/unsubscribe-auth/ANb8udorbNL74uLVXeCx4DC0_4Mm3OMvks5t7RPdgaJpZM4Uhszp
> >
> > .
> >
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <#203 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ADXrTdNMmb22324S6gYxfS7tlOIf7PFEks5t7TeNgaJpZM4Uhszp>
> .
>
|
I think it's a great idea to use the allen atlas hierarchy, and agree that implementation in matlab is non-trivial. Not really sure how to go about doing that. |
Maybe non-trivial, but hopefully solvable :-)
Brendon, could you come with some examples as to regions missing in the
Allan atlas? http://atlas.brain-map.org/atlas?atlas=1
It becomes complicated if we have to support more than one atlas. What
atlas do you use? I assume Paximus and Watson?
One downside of the Allan institute region ontology is that it is defined
for mice, but I think that for our purpose it will work just fine for rats
as well.
2018-07-03 16:48 GMT-04:00 Dan Levenstein <[email protected]>:
… I think it's a great idea to use the allen atlas hierarchy, and agree that
implementation in matlab is non-trivial. Not really sure how to go about
doing that.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#203 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ANb8uXR15NRrPxpjwP2GYgH6dUMV6Y27ks5uC9iegaJpZM4Uhszp>
.
|
Peter thanks for replying about this. I don't currently have any ideas for
missing regions. Just seemed like a good idea, but for now we could drop
it.
Maybe for now we just change that "edit" type uicontrol to a dropdown box
with a list of allen brain regions?
Seems the simplest way to just get started
…On Sat, Jul 7, 2018 at 6:49 PM Peter Petersen ***@***.***> wrote:
Maybe non-trivial, but hopefully solvable :-)
Brendon, could you come with some examples as to regions missing in the
Allan atlas? http://atlas.brain-map.org/atlas?atlas=1
It becomes complicated if we have to support more than one atlas. What
atlas do you use? I assume Paximus and Watson?
One downside of the Allan institute region ontology is that it is defined
for mice, but I think that for our purpose it will work just fine for rats
as well.
2018-07-03 16:48 GMT-04:00 Dan Levenstein ***@***.***>:
> I think it's a great idea to use the allen atlas hierarchy, and agree
that
> implementation in matlab is non-trivial. Not really sure how to go about
> doing that.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#203 (comment)
>,
> or mute the thread
> <
https://github.com/notifications/unsubscribe-auth/ANb8uXR15NRrPxpjwP2GYgH6dUMV6Y27ks5uC9iegaJpZM4Uhszp
>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#203 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADXrTTfKK5nL25rawLAqBR02KK2mxgULks5uETr-gaJpZM4Uhszp>
.
|
That makes sense to me. There's a list of allen brain regions here: https://github.com/buzsakilab/buzcode/tree/master/database (in a .mat and a .json file), that we can pull the regions from. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I started working with regions and realized it'd be really nice to have ready-made lists of which region has which shanks, and in addition to a 'string' with the region name for each channel it'd be convenient to have a list of channel numbers in each region in a field like this:
.region.mPFC.channellist (1,2,3...)
So I'd like to add things like
.region.perRegionList(1).name = 'mPFC'
.region.perRegionList(1).channels = [1,2,3...]
.region.perRegionList(1).spikeGroups = [1:6]
.region.perRegionList(2).name = 'CA1'
.region.perRegionList(2).channels = [65, 66, 67]
.region.perRegionList(2).spikeGroups = [7:12]
What do you guys think?
The text was updated successfully, but these errors were encountered: