AnatomicMaps / map-knowledge

Flatmap SCKAN knowledge store
Apache License 2.0
0 stars 5 forks source link

Revisit how axon and dendrite nodes are identified #29

Open napakalas opened 1 week ago

napakalas commented 1 week ago

Review of the NPO's TTL files confirms that ilxtr:hasAxonLocatedIn and ilxtr:hasDendriteLocatedInare used to specify axons and dendrites. For example: ilxtr:neuron-type-bolew-unbranched-4: https://github.com/SciCrunch/NIF-Ontology/blob/b6db0d85d6b0b6bc4e842ef08276039b5ab1a28b/ttl/generated/neurons/apinat-simple-sheet.ttl#L1369C1-L1393C42 The current code should use this partonomy and avoid ilxtr:hasSomaLocatedIn, ilxtr:hasAxonPresynapticElementIn, ilxtr:hasAxonSensorySubcellularElementIn, and ilxtr:hasAxonLeadingToSensorySubcellularElementIn.

dbrnz commented 1 week ago

Thanks.

It though still would be useful to record ilxtr:hasSomaLocatedIn as a somas property of a neuron path, similar to dendrites and axons.

napakalas commented 1 week ago

I'll add that. Additionally, some somas, axons, and dendrites are found to be unavailable as nodes in the corresponding neuron population, so they are filtered out.

dbrnz commented 1 week ago

Additionally, some somas, axons, and dendrites are found to be unavailable as nodes in the corresponding neuron population, so they are filtered out.

In what way are nodes not available? I understood that we start with a set of nodes that make up a neuron population and these nodes have various classifications.

How does using ilxtr:hasAxonLocatedIn compare with the previous way of identifying axons? Have you compared old and new sets of axons over all neuron populations? To me, it would make sense if the new axon set was a superset of the old set, but it would be good to confirm this.

napakalas commented 1 week ago

As an example, in ilxtr:neuron-type-keast-8, there is an axon specified as: [ a owl:Restriction ; owl:onProperty ilxtr:hasAxonLocatedIn ; owl:someValuesFrom [ a owl:Restriction ; owl:onProperty partOf: ; owl:someValuesFrom UBERON:0002318 ] ] However, UBERON:0002318 is not used in any nodes. In this case, this axon is removed.

The use of ilxtr:hasAxonLocatedIn is consistent with other partonomies, such as ilxtr:hasAxonPresynapticElementIn. After checking all populations, most of the new axons are not supersets of the old ones.

napakalas commented 1 week ago

It seem like, I did a mistake when comparing the new axon to the old one. I have rechecked.

Results: I confirm that all of the new axons are not supersets of the old ones. Here is some examples: ilxtr:neuron-type-keast-19

ilxtr:neuron-type-keast-13

dbrnz commented 1 week ago

It would be useful to understand why keast-8 has an axon in UBERON:0002318 but UBERON:0002318 isn't a path node. Presumably there is some node that is part-of UBERON:0002318 -- maybe worth asking on the K-Core Slack channel.

And also to ask K-Core what the differences are between the different axon properties...

napakalas commented 1 week ago

I have rechecked keast-8 in apinat-partial-orders.ttl and found that UBERON:0002318 (spinal cord white matter) is available there as a layer, such as (UBERON:0006448, (UBERON:0002318)). This is also appeared in other populations as layers. UBERON:0002318 is not displayed because it is included in the EXCLUDED_LAYERS list, so this should be fine.

https://github.com/AnatomicMaps/map-knowledge/blob/3f145fe28f3cba74b7dc495ba10a3f54c62ef81c/mapknowledge/apinatomy.py#L43C1-L54C2

While for the axon properties, I'll flick a message to K-Core.