From e6899a597d86b9a5d35e876dbf895b150f65caf6 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Fri, 8 Nov 2024 16:16:32 +0000
Subject: [PATCH 01/10] Put stages in Witvliet
---
mkdocs.yml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/mkdocs.yml b/mkdocs.yml
index d22696b4e..a48099619 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -86,14 +86,14 @@ nav:
- 'Cook et al. 2019 Herm': 'Cook2019Herm_data_graph.md'
- 'Cook et al. 2019 Male': 'Cook2019Male_data_graph.md'
- 'Cook et al. 2020': 'Cook2020_data_graph.md'
- - 'Witvliet et al. 2021 - 1': 'Witvliet1_data_graph.md'
- - 'Witvliet et al. 2021 - 2': 'Witvliet2_data_graph.md'
- - 'Witvliet et al. 2021 - 3': 'Witvliet3_data_graph.md'
- - 'Witvliet et al. 2021 - 4': 'Witvliet4_data_graph.md'
- - 'Witvliet et al. 2021 - 5': 'Witvliet5_data_graph.md'
- - 'Witvliet et al. 2021 - 6': 'Witvliet6_data_graph.md'
- - 'Witvliet et al. 2021 - 7': 'Witvliet7_data_graph.md'
- - 'Witvliet et al. 2021 - 8': 'Witvliet8_data_graph.md'
+ - 'Witvliet et al. 2021 1 (L1)': 'Witvliet1_data_graph.md'
+ - 'Witvliet et al. 2021 2 (L1)': 'Witvliet2_data_graph.md'
+ - 'Witvliet et al. 2021 3 (L1)': 'Witvliet3_data_graph.md'
+ - 'Witvliet et al. 2021 4 (L1)': 'Witvliet4_data_graph.md'
+ - 'Witvliet et al. 2021 5 (L2)': 'Witvliet5_data_graph.md'
+ - 'Witvliet et al. 2021 6 (L3)': 'Witvliet6_data_graph.md'
+ - 'Witvliet et al. 2021 7 (adult)': 'Witvliet7_data_graph.md'
+ - 'Witvliet et al. 2021 8 (adult)': 'Witvliet8_data_graph.md'
- 'WormNeuroAtlas Anatomy': 'WormNeuroAtlas_data_graph.md'
- 'Randi et al. 2023': 'Randi2023_data_graph.md'
- 'Ripoll-Sánchez 2023 (short)': 'RipollSanchezShortRange_data.md'
From e634ef4699b8d01cd7170801f19ab0be0a0190eb Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Wed, 13 Nov 2024 16:01:42 +0000
Subject: [PATCH 02/10] Adding Jarrell et al 2012
---
docs/Jarrell_2012.md | 13 +++++++++++++
mkdocs.yml | 1 +
2 files changed, 14 insertions(+)
create mode 100644 docs/Jarrell_2012.md
diff --git a/docs/Jarrell_2012.md b/docs/Jarrell_2012.md
new file mode 100644
index 000000000..572aa2c25
--- /dev/null
+++ b/docs/Jarrell_2012.md
@@ -0,0 +1,13 @@
+## The Connectome of a Decision-Making Neural Network
+_Travis A. Jarrell, Yi Wang, Adam E. Bloniarz, Christopher A. Brittin, Meng Xu, J. Nichol Thomson, Donna G. Albertson, David H. Hall and Scott W. Emmons_
+_[Science 337(6093):437-44](https://doi.org/10.1126/science.1221762)_
+_Published: Jul 27 2012_
+
+**Summary**
+
+- Describes the wiring diagram of the posterior nervous system of the C. elegans adult male
+
+- Discussion of how the reconstructed circuit underlies a number of sex-specific behaviours
+
+
+
diff --git a/mkdocs.yml b/mkdocs.yml
index a48099619..428d4d215 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -59,6 +59,7 @@ nav:
- 'Hall & Russell 1991': 'Hall_1991.md'
- 'Altun et al. 2009': 'Altun_2009.md'
- 'Varshney et al. 2011': 'Varshney_2011.md'
+ - 'Jarrell et al. 2012': 'Jarrell_2012.md'
- 'Serrano-Saiz et al. 2013': 'Serrano_2013.md'
- 'Pereira et al. 2015': 'Pereira_2015.md'
- 'Gendrel, Atlas & Hobert 2016': 'Gendrel_2016.md'
From 5b52b076b09f454f4cb348a4ee91dfe4eaacc2bc Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Wed, 13 Nov 2024 16:02:25 +0000
Subject: [PATCH 03/10] Better cell info extraction
---
cect/CellInfo.py | 29 +-
cect/data/all_cell_info.csv | 525 ++++++++++++++++++------------------
2 files changed, 282 insertions(+), 272 deletions(-)
diff --git a/cect/CellInfo.py b/cect/CellInfo.py
index 7689234aa..fc6963afe 100644
--- a/cect/CellInfo.py
+++ b/cect/CellInfo.py
@@ -147,15 +147,14 @@ def generate_cell_info_pages(connectomes):
cell_info = '---\ntitle: "Cell: %s"\n---\n\n' % cell
+ cell_ref = (
+ cell
+ if not ((cell.startswith("CA") or cell.startswith("CP")) and cell[2] == "0")
+ else "%s%s" % (cell[:2], cell[-1])
+ ) # CA04 -> CA4 etc.
+
# TODO: investigate DX1, DX2, DX3, EF1, EF2, EF3
if is_any_neuron(cell) and "DX" not in cell and "EF" not in cell:
- cell_ref = (
- cell
- if not (
- (cell.startswith("CA") or cell.startswith("CP")) and cell[2] == "0"
- )
- else "%s%s" % (cell[:2], cell[-1])
- ) # CA04 -> CA4 etc.
acronym = cell_data[cell_ref][0]
lineage = cell_data[cell_ref][1]
desc = cell_data[cell_ref][2]
@@ -186,15 +185,25 @@ def generate_cell_info_pages(connectomes):
cell,
get_cell_notes(cell),
cell_data[cell_ref][0],
- cell_data[cell_ref][1],
- cell_data[cell_ref][2],
+ lineage,
+ desc,
]
)
else:
cell_info += '!!! question "**%s: %s**"\n\n' % (cell, get_cell_notes(cell))
+ cc = cell_classification[cell]
all_cell_info.append(
- [cell, get_cell_notes(cell), cell_data[cell_ref][0], '""', '""', '""']
+ [
+ cell,
+ get_cell_notes(cell),
+ cell_data[cell_ref][0]
+ if cell_ref in cell_data
+ else "- To be added... - ",
+ get_cell_notes(cell),
+ "- To be added... - ",
+ cc[0].upper() + cc[1:],
+ ]
)
cell_info += (
diff --git a/cect/data/all_cell_info.csv b/cect/data/all_cell_info.csv
index 1554f973e..d5b55cf60 100644
--- a/cect/data/all_cell_info.csv
+++ b/cect/data/all_cell_info.csv
@@ -1,3 +1,4 @@
+Cell name,Type,Name details,Lineage,Classification
ADAL,Layer 3 interneuron,Anterior Process from Deirid Commissure A Left,AB plapaaaapp,Ring interneuron
ADAR,Layer 3 interneuron,Anterior Process from Deirid Commissure A Right,AB prapaaaapp,Ring interneuron
ADEL,Mechanosensory,Anterior DEirid Neuron Left,AB plapaaaapa,"Anterior deirid, sensory neuron"
@@ -300,224 +301,224 @@ VD6,Ventral cord motor neuron,Ventral D-type Motor Neuron 6,P5.app,"Ventral cord
VD7,Ventral cord motor neuron,Ventral D-type Motor Neuron 7,P6.app,"Ventral cord motor neuron, innervates vent body muscles, reciprocal inhibitor"
VD8,Ventral cord motor neuron,Ventral D-type Motor Neuron 8,P7.app,"Ventralcord motor neuron, innervates vent body muscles, reciprocal inhibitor"
VD9,Ventral cord motor neuron,Ventral D-type Motor Neuron 9,P8.app,"Ventral cord motor neuron, innervates vent body muscles, reciprocal inhibitor"
-MDL01,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL02,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL03,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL04,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL05,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL06,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL07,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDL08,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL09,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL10,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL11,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL12,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL13,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL14,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL15,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL16,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL17,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL18,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL19,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL20,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL21,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL22,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL23,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDL24,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR01,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR02,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR03,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR04,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR05,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR06,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR07,Head muscle,Ventral D-type Motor Neuron 9,,,
-MDR08,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR09,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR10,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR11,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR12,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR13,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR14,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR15,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR16,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR17,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR18,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR19,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR20,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR21,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR22,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR23,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MDR24,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL01,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL02,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL03,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL04,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL05,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL06,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL07,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVL08,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL09,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL10,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL11,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL12,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL13,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL14,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL15,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL16,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL17,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL18,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL19,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL20,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL21,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL22,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVL23,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR01,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR02,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR03,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR04,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR05,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR06,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR07,Head muscle,Ventral D-type Motor Neuron 9,,,
-MVR08,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR09,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR10,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR11,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR12,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR13,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR14,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR15,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR16,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR17,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR18,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR19,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR20,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR21,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR22,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR23,Main body muscle,Ventral D-type Motor Neuron 9,,,
-MVR24,Main body muscle,Ventral D-type Motor Neuron 9,,,
-pm1,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm3D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm3VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm3VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm5D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm5VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm5VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm7D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm7VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm7VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm2D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm2VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm2VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm4D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm4VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm4VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm4_UNSPECIFIED,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm6D,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm6VR,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm6VL,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-pm8,Pharyngeal muscle,Ventral D-type Motor Neuron 9,,,
-MVULVA,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm1AL,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm1PL,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm1PR,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm1AR,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm2AL,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm2AR,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm2PL,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-vm2PR,Vulval muscle,Ventral D-type Motor Neuron 9,,,
-um2AL,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um2AR,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um1AL,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um1AR,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um1PL,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um1PR,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um2PL,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-um2PR,Uterine muscle,Ventral D-type Motor Neuron 9,,,
-MANAL,Anal/sphincter muscle,Ventral D-type Motor Neuron 9,,,
-mu_sph,Anal/sphincter muscle,Ventral D-type Motor Neuron 9,,,
-mu_anal,Anal/sphincter muscle,Ventral D-type Motor Neuron 9,,,
-dglL1,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL2,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL3,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL4,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL5,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL6,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglL7,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR1,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR2,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR3,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR4,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR5,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR6,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR7,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dglR8,Diagonal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-aobL,Anterior oblique (male specific),Ventral D-type Motor Neuron 9,,,
-aobR,Anterior oblique (male specific),Ventral D-type Motor Neuron 9,,,
-pobL,Posterior oblique (male specific),Ventral D-type Motor Neuron 9,,,
-pobR,Posterior oblique (male specific),Ventral D-type Motor Neuron 9,,,
-gecL,Gubernacular erector (male specific),Ventral D-type Motor Neuron 9,,,
-gecR,Gubernacular erector (male specific),Ventral D-type Motor Neuron 9,,,
-grtL,Gubernacular retractor (male specific),Ventral D-type Motor Neuron 9,,,
-grtR,Gubernacular retractor (male specific),Ventral D-type Motor Neuron 9,,,
-cdlL,Caudal longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-cdlR,Caudal longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-ailL,Anterior inner longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-ailR,Anterior inner longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-pilL,Posterior inner longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-pilR,Posterior inner longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-polL,Posterior outer longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-polR,Posterior outer longitudinal muscle (male specific),Ventral D-type Motor Neuron 9,,,
-dspL,Dorsal spicule protractor (male specific),Ventral D-type Motor Neuron 9,,,
-dspR,Dorsal spicule protractor (male specific),Ventral D-type Motor Neuron 9,,,
-vspL,Ventral spicule protractor (male specific),Ventral D-type Motor Neuron 9,,,
-vspR,Ventral spicule protractor (male specific),Ventral D-type Motor Neuron 9,,,
-dsrL,Dorsal spicule retractor (male specific),Ventral D-type Motor Neuron 9,,,
-dsrR,Dorsal spicule retractor (male specific),Ventral D-type Motor Neuron 9,,,
-vsrL,Ventral spicule retractor (male specific),Ventral D-type Motor Neuron 9,,,
-vsrR,Ventral spicule retractor (male specific),Ventral D-type Motor Neuron 9,,,
-mu_intL,Intestinal muscles,Ventral D-type Motor Neuron 9,,,
-mu_intR,Intestinal muscles,Ventral D-type Motor Neuron 9,,,
-BWM,Unspecified body wall muscle,Ventral D-type Motor Neuron 9,,,
-GLRDL,GLR cell,Ventral D-type Motor Neuron 9,,,
-GLRDR,GLR cell,Ventral D-type Motor Neuron 9,,,
-GLRL,GLR cell,Ventral D-type Motor Neuron 9,,,
-GLRR,GLR cell,Ventral D-type Motor Neuron 9,,,
-GLRVL,GLR cell,Ventral D-type Motor Neuron 9,,,
-GLRVR,GLR cell,Ventral D-type Motor Neuron 9,,,
-CEPshDL,Sheath cell other than amphid sheath and phasmid,Ventral D-type Motor Neuron 9,,,
-CEPshDR,Sheath cell other than amphid sheath and phasmid,Ventral D-type Motor Neuron 9,,,
-CEPshVL,Sheath cell other than amphid sheath and phasmid,Ventral D-type Motor Neuron 9,,,
-CEPshVR,Sheath cell other than amphid sheath and phasmid,Ventral D-type Motor Neuron 9,,,
-mc1DL,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc1DR,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc1V,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc2DL,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc2DR,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc2V,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc3DL,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc3DR,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-mc3V,Marginal cell of the pharynx,Ventral D-type Motor Neuron 9,,,
-e2DL,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e2DR,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e2D,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e2V,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e2VL,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e2VR,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e3D,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e3VL,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-e3VR,Pharyngeal epithelium,Ventral D-type Motor Neuron 9,,,
-g1AL,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-g1AR,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-g1p,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-g1P,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-g2L,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-g2R,Pharyngeal glial cell,Ventral D-type Motor Neuron 9,,,
-bm,Pharyngeal basement membrane,Ventral D-type Motor Neuron 9,,,
-exc_cell,Excretory cell,Ventral D-type Motor Neuron 9,,,
-exc_gl,Excretory gland,Ventral D-type Motor Neuron 9,,,
-hmc,Head mesodermal cell,Ventral D-type Motor Neuron 9,,,
-hyp,Hypodermis,Ventral D-type Motor Neuron 9,,,
-int,Intestine,Ventral D-type Motor Neuron 9,,,
+MDL01,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL02,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL03,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL04,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL05,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL06,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL07,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDL08,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL09,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL10,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL11,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL12,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL13,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL14,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL15,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL16,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL17,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL18,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL19,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL20,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL21,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL22,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL23,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDL24,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR01,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR02,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR03,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR04,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR05,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR06,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR07,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MDR08,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR09,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR10,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR11,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR12,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR13,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR14,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR15,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR16,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR17,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR18,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR19,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR20,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR21,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR22,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR23,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MDR24,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL01,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL02,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL03,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL04,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL05,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL06,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL07,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVL08,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL09,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL10,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL11,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL12,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL13,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL14,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL15,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL16,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL17,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL18,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL19,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL20,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL21,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL22,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVL23,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR01,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR02,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR03,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR04,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR05,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR06,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR07,Head muscle,- To be added... - ,Head muscle,- To be added... - ,Body wall muscle
+MVR08,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR09,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR10,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR11,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR12,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR13,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR14,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR15,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR16,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR17,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR18,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR19,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR20,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR21,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR22,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR23,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+MVR24,Main body muscle,- To be added... - ,Main body muscle,- To be added... - ,Body wall muscle
+pm1,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm3D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm3VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm3VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm5D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm5VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm5VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm7D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm7VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm7VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Odd numbered pharyngeal muscle
+pm2D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm2VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm2VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm4D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm4VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm4VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm4_UNSPECIFIED,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm6D,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm6VR,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm6VL,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+pm8,Pharyngeal muscle,- To be added... - ,Pharyngeal muscle,- To be added... - ,Even numbered pharyngeal muscle
+MVULVA,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm1AL,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm1PL,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm1PR,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm1AR,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm2AL,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm2AR,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm2PL,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+vm2PR,Vulval muscle,- To be added... - ,Vulval muscle,- To be added... - ,Vulval muscle
+um2AL,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um2AR,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um1AL,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um1AR,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um1PL,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um1PR,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um2PL,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+um2PR,Uterine muscle,- To be added... - ,Uterine muscle,- To be added... - ,Uterine muscle
+MANAL,Anal/sphincter muscle,- To be added... - ,Anal/sphincter muscle,- To be added... - ,Sphincter and anal depressor muscle
+mu_sph,Anal/sphincter muscle,- To be added... - ,Anal/sphincter muscle,- To be added... - ,Sphincter and anal depressor muscle
+mu_anal,Anal/sphincter muscle,- To be added... - ,Anal/sphincter muscle,- To be added... - ,Sphincter and anal depressor muscle
+dglL1,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL2,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL3,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL4,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL5,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL6,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglL7,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR1,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR2,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR3,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR4,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR5,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR6,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR7,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+dglR8,Diagonal muscle (male specific),- To be added... - ,Diagonal muscle (male specific),- To be added... - ,Diagonal muscles
+aobL,Anterior oblique (male specific),- To be added... - ,Anterior oblique (male specific),- To be added... - ,Anterior oblique muscles
+aobR,Anterior oblique (male specific),- To be added... - ,Anterior oblique (male specific),- To be added... - ,Anterior oblique muscles
+pobL,Posterior oblique (male specific),- To be added... - ,Posterior oblique (male specific),- To be added... - ,Posterior oblique muscles
+pobR,Posterior oblique (male specific),- To be added... - ,Posterior oblique (male specific),- To be added... - ,Posterior oblique muscles
+gecL,Gubernacular erector (male specific),- To be added... - ,Gubernacular erector (male specific),- To be added... - ,Gubernacular erector muscles
+gecR,Gubernacular erector (male specific),- To be added... - ,Gubernacular erector (male specific),- To be added... - ,Gubernacular erector muscles
+grtL,Gubernacular retractor (male specific),- To be added... - ,Gubernacular retractor (male specific),- To be added... - ,Gubernacular retractor muscles
+grtR,Gubernacular retractor (male specific),- To be added... - ,Gubernacular retractor (male specific),- To be added... - ,Gubernacular retractor muscles
+cdlL,Caudal longitudinal muscle (male specific),- To be added... - ,Caudal longitudinal muscle (male specific),- To be added... - ,Caudal inner longitudinal muscles
+cdlR,Caudal longitudinal muscle (male specific),- To be added... - ,Caudal longitudinal muscle (male specific),- To be added... - ,Caudal inner longitudinal muscles
+ailL,Anterior inner longitudinal muscle (male specific),- To be added... - ,Anterior inner longitudinal muscle (male specific),- To be added... - ,Anterior inner longitudinal muscles
+ailR,Anterior inner longitudinal muscle (male specific),- To be added... - ,Anterior inner longitudinal muscle (male specific),- To be added... - ,Anterior inner longitudinal muscles
+pilL,Posterior inner longitudinal muscle (male specific),- To be added... - ,Posterior inner longitudinal muscle (male specific),- To be added... - ,Posterior inner longitudinal muscles
+pilR,Posterior inner longitudinal muscle (male specific),- To be added... - ,Posterior inner longitudinal muscle (male specific),- To be added... - ,Posterior inner longitudinal muscles
+polL,Posterior outer longitudinal muscle (male specific),- To be added... - ,Posterior outer longitudinal muscle (male specific),- To be added... - ,Posterior outer longitudinal muscles
+polR,Posterior outer longitudinal muscle (male specific),- To be added... - ,Posterior outer longitudinal muscle (male specific),- To be added... - ,Posterior outer longitudinal muscles
+dspL,Dorsal spicule protractor (male specific),- To be added... - ,Dorsal spicule protractor (male specific),- To be added... - ,Spicule protractor muscles
+dspR,Dorsal spicule protractor (male specific),- To be added... - ,Dorsal spicule protractor (male specific),- To be added... - ,Spicule protractor muscles
+vspL,Ventral spicule protractor (male specific),- To be added... - ,Ventral spicule protractor (male specific),- To be added... - ,Spicule protractor muscles
+vspR,Ventral spicule protractor (male specific),- To be added... - ,Ventral spicule protractor (male specific),- To be added... - ,Spicule protractor muscles
+dsrL,Dorsal spicule retractor (male specific),- To be added... - ,Dorsal spicule retractor (male specific),- To be added... - ,Spicule retractor muscles
+dsrR,Dorsal spicule retractor (male specific),- To be added... - ,Dorsal spicule retractor (male specific),- To be added... - ,Spicule retractor muscles
+vsrL,Ventral spicule retractor (male specific),- To be added... - ,Ventral spicule retractor (male specific),- To be added... - ,Spicule retractor muscles
+vsrR,Ventral spicule retractor (male specific),- To be added... - ,Ventral spicule retractor (male specific),- To be added... - ,Spicule retractor muscles
+mu_intL,Intestinal muscles,- To be added... - ,Intestinal muscles,- To be added... - ,Intestinal muscle
+mu_intR,Intestinal muscles,- To be added... - ,Intestinal muscles,- To be added... - ,Intestinal muscle
+BWM,Unspecified body wall muscle,- To be added... - ,Unspecified body wall muscle,- To be added... - ,Body wall muscle
+GLRDL,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+GLRDR,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+GLRL,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+GLRR,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+GLRVL,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+GLRVR,GLR cell,- To be added... - ,GLR cell,- To be added... - ,GLR cell
+CEPshDL,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid
+CEPshDR,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid
+CEPshVL,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid
+CEPshVR,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid,- To be added... - ,Sheath cell other than amphid sheath and phasmid
+mc1DL,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc1DR,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc1V,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc2DL,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc2DR,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc2V,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc3DL,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc3DR,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+mc3V,Marginal cell of the pharynx,- To be added... - ,Marginal cell of the pharynx,- To be added... - ,Marginal cells (mc) of the pharynx
+e2DL,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e2DR,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e2D,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e2V,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e2VL,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e2VR,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e3D,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e3VL,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+e3VR,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium,- To be added... - ,Pharyngeal epithelium
+g1AL,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+g1AR,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+g1p,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+g1P,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+g2L,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+g2R,Pharyngeal glial cell,- To be added... - ,Pharyngeal glial cell,- To be added... - ,Pharyngeal epithelium
+bm,Pharyngeal basement membrane,- To be added... - ,Pharyngeal basement membrane,- To be added... - ,Basement membrane
+exc_cell,Excretory cell,- To be added... - ,Excretory cell,- To be added... - ,Excretory cell
+exc_gl,Excretory gland,- To be added... - ,Excretory gland,- To be added... - ,Gland cell
+hmc,Head mesodermal cell,- To be added... - ,Head mesodermal cell,- To be added... - ,Head mesodermal cell
+hyp,Hypodermis,- To be added... - ,Hypodermis,- To be added... - ,Hypodermis
+int,Intestine,- To be added... - ,Intestine,- To be added... - ,Intestinal cells
MCML,Male head interneuron,Mystery Cell of the Male Left,AmsoL,Male specific interneuron
MCMR,Male head interneuron,Mystery Cell of the Male Right,AmsoR,Male specific interneuron
CEMDL,Male head sensory neuron,CEphalic Male Sensory Neuron Dorsal Left,AB plaaaaaap,"Male specific cephalic neurons (programmed cell death in hermaphrodite embryo) open to outside, possible function in male chemotaxis toward hermaphrodite"
@@ -530,12 +531,12 @@ PVY,Male interneuron,Posterior Ventral Process Y,P11.paap,"Male specific interne
PVZ,Male interneuron,Posterior Ventral Process Z,P10.ppppa,"Male specific motor neuron, cell body in pre-anal ganglion"
DVE,Male interneuron,Dorsorectal Ventral Process E,B.ppap,"Male specific interneuron, cell body in dorsorectal ganglion"
DVF,Male interneuron,Dorsorectal Ventral Process F,B.ppppa,"Male specific interneuron, cell body in dorsorectal ganglion"
-DX1,Male interneuron,Dorsorectal Ventral Process F,,,
-DX2,Male interneuron,Dorsorectal Ventral Process F,,,
-DX3,Male interneuron,Dorsorectal Ventral Process F,,,
-EF1,Male interneuron,Dorsorectal Ventral Process F,,,
-EF2,Male interneuron,Dorsorectal Ventral Process F,,,
-EF3,Male interneuron,Dorsorectal Ventral Process F,,,
+DX1,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
+DX2,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
+DX3,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
+EF1,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
+EF2,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
+EF3,Male interneuron,- To be added... - ,Male interneuron,- To be added... - ,Interneuron
PDC,Male interneuron,Preanal Cell with Dorsal Process C,P11.papa,"Male specific interneuron, pre-anal ganglion"
PGA,Male interneuron,Preanal Ganglion Cell A,P11.papp,"Male specific interneuron, pre-anal ganglion"
CA01,Male interneuron,"C-type Neuron, Anterior Daughter after Division 1",P3.aapa,"Male specific cells, ventral cord, not constructed"
@@ -608,41 +609,41 @@ SPDL,Male sensory neuron,SPicule Neuron D Left,B.alpapaa,"Male specific sensory
SPDR,Male sensory neuron,SPicule Neuron D Right,B.arpapaa,"Male specific sensory neuron of male copulatory spicules, ciliated, open to outside at tip of spicule, cell body in right cloacal ganglion"
SPVL,Male sensory neuron,SPicule Neuron V Left,B.al/raalda,"Male specific sensory neuron of male copulatory spicules, ciliated, open to outside at tip of spicule, cell body in left cloacal ganglion"
SPVR,Male sensory neuron,SPicule Neuron V Right,B.al/raarda,"Male specific sensory neuron of male copulatory spicules, ciliated, open to outside at tip of spicule, cell body in right cloacal ganglion"
-R1stL,Male ray structural cell,SPicule Neuron V Right,,,
-R1stR,Male ray structural cell,SPicule Neuron V Right,,,
-R2stL,Male ray structural cell,SPicule Neuron V Right,,,
-R2stR,Male ray structural cell,SPicule Neuron V Right,,,
-R3stL,Male ray structural cell,SPicule Neuron V Right,,,
-R3stR,Male ray structural cell,SPicule Neuron V Right,,,
-R4stL,Male ray structural cell,SPicule Neuron V Right,,,
-R4stR,Male ray structural cell,SPicule Neuron V Right,,,
-R5stL,Male ray structural cell,SPicule Neuron V Right,,,
-R5stR,Male ray structural cell,SPicule Neuron V Right,,,
-R6stL,Male ray structural cell,SPicule Neuron V Right,,,
-R6stR,Male ray structural cell,SPicule Neuron V Right,,,
-R7stL,Male ray structural cell,SPicule Neuron V Right,,,
-R7stR,Male ray structural cell,SPicule Neuron V Right,,,
-R8stL,Male ray structural cell,SPicule Neuron V Right,,,
-R8stR,Male ray structural cell,SPicule Neuron V Right,,,
-R9stL,Male ray structural cell,SPicule Neuron V Right,,,
-R9stR,Male ray structural cell,SPicule Neuron V Right,,,
-R1shL,Male ray structural cell,SPicule Neuron V Right,,,
-R1shR,Male ray structural cell,SPicule Neuron V Right,,,
-R2shL,Male ray structural cell,SPicule Neuron V Right,,,
-R2shR,Male ray structural cell,SPicule Neuron V Right,,,
-R3shL,Male ray structural cell,SPicule Neuron V Right,,,
-R3shR,Male ray structural cell,SPicule Neuron V Right,,,
-R4shL,Male ray structural cell,SPicule Neuron V Right,,,
-R4shR,Male ray structural cell,SPicule Neuron V Right,,,
-R5shL,Male ray structural cell,SPicule Neuron V Right,,,
-R5shR,Male ray structural cell,SPicule Neuron V Right,,,
-R6shL,Male ray structural cell,SPicule Neuron V Right,,,
-R6shR,Male ray structural cell,SPicule Neuron V Right,,,
-R7shL,Male ray structural cell,SPicule Neuron V Right,,,
-R7shR,Male ray structural cell,SPicule Neuron V Right,,,
-R8shL,Male ray structural cell,SPicule Neuron V Right,,,
-R8shR,Male ray structural cell,SPicule Neuron V Right,,,
-R9shL,Male ray structural cell,SPicule Neuron V Right,,,
-R9shR,Male ray structural cell,SPicule Neuron V Right,,,
-proctodeum,Proctodeum (male specific),SPicule Neuron V Right,,,
-gonad,Gonad (male specific),SPicule Neuron V Right,,,
+R1stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R1stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R2stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R2stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R3stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R3stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R4stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R4stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R5stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R5stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R6stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R6stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R7stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R7stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R8stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R8stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R9stL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R9stR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R1shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R1shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R2shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R2shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R3shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R3shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R4shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R4shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R5shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R5shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R6shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R6shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R7shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R7shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R8shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R8shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R9shL,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+R9shR,Male ray structural cell,- To be added... - ,Male ray structural cell,- To be added... - ,Ray structural cell
+proctodeum,Proctodeum (male specific),- To be added... - ,Proctodeum (male specific),- To be added... - ,Proctodeum
+gonad,Gonad (male specific),- To be added... - ,Gonad (male specific),- To be added... - ,Vas deferens
From 9e40ad7902b21ca409cde97b19c609ebbea8c23b Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Wed, 13 Nov 2024 16:03:50 +0000
Subject: [PATCH 04/10] Comment text updated
---
cect/WhiteDataReader.py | 5 +----
cect/WormNeuroAtlasExtSynReader.py | 2 +-
cect/WormNeuroAtlasFuncReader.py | 2 +-
cect/WormNeuroAtlasMAReader.py | 2 +-
cect/WormNeuroAtlasPepReader.py | 2 +-
cect/WormNeuroAtlasReader.py | 2 +-
6 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/cect/WhiteDataReader.py b/cect/WhiteDataReader.py
index 431648755..c12a7764e 100644
--- a/cect/WhiteDataReader.py
+++ b/cect/WhiteDataReader.py
@@ -2,10 +2,7 @@
############################################################
-# A simple script to read the values in herm_full_edgelist.csv.
-
-# This is on of a number of interchangeable "Readers" which can
-# be used to get connection data for c302
+# A script to read the values from White et al. 1986
############################################################
diff --git a/cect/WormNeuroAtlasExtSynReader.py b/cect/WormNeuroAtlasExtSynReader.py
index d19911770..bd6588d25 100644
--- a/cect/WormNeuroAtlasExtSynReader.py
+++ b/cect/WormNeuroAtlasExtSynReader.py
@@ -22,7 +22,7 @@
LOGGER = logging.getLogger(__name__)
-READER_DESCRIPTION = """Data on extrasynaptic connectivity from the **[WormNeuroAtlas package](https://github.com/francescorandi/wormneuroatlas)**"""
+READER_DESCRIPTION = """Data on extrasynaptic connectivity from the WormNeuroAtlas package"""
class WormNeuroAtlasExtSynReader(ConnectomeDataset):
diff --git a/cect/WormNeuroAtlasFuncReader.py b/cect/WormNeuroAtlasFuncReader.py
index 5fdec60e8..c4bc4190d 100644
--- a/cect/WormNeuroAtlasFuncReader.py
+++ b/cect/WormNeuroAtlasFuncReader.py
@@ -20,7 +20,7 @@
LOGGER = logging.getLogger(__name__)
-READER_DESCRIPTION = """Data on functional connectivity from the **[WormNeuroAtlas package](https://github.com/francescorandi/wormneuroatlas)**"""
+READER_DESCRIPTION = """Data on functional connectivity from the WormNeuroAtlas package"""
FUNCTIONAL_SYN_TYPE = "Functional"
FUNCTIONAL_SYN_CLASS = "Functional"
diff --git a/cect/WormNeuroAtlasMAReader.py b/cect/WormNeuroAtlasMAReader.py
index a63461a48..3c83069a6 100644
--- a/cect/WormNeuroAtlasMAReader.py
+++ b/cect/WormNeuroAtlasMAReader.py
@@ -13,7 +13,7 @@
LOGGER = logging.getLogger(__name__)
-READER_DESCRIPTION = """Data on monoaminergic connectivity from the **[WormNeuroAtlas package](https://github.com/francescorandi/wormneuroatlas)**"""
+READER_DESCRIPTION = """Data on monoaminergic connectivity from the WormNeuroAtlas package"""
def get_instance():
diff --git a/cect/WormNeuroAtlasPepReader.py b/cect/WormNeuroAtlasPepReader.py
index c9359671f..8f85b8b0b 100644
--- a/cect/WormNeuroAtlasPepReader.py
+++ b/cect/WormNeuroAtlasPepReader.py
@@ -13,7 +13,7 @@
LOGGER = logging.getLogger(__name__)
-READER_DESCRIPTION = """Data on peptidergic connectivity from the **[WormNeuroAtlas package](https://github.com/francescorandi/wormneuroatlas)**"""
+READER_DESCRIPTION = """Data on peptidergic connectivity from the WormNeuroAtlas package"""
def get_instance():
diff --git a/cect/WormNeuroAtlasReader.py b/cect/WormNeuroAtlasReader.py
index bdfb0ddd9..329f5babf 100644
--- a/cect/WormNeuroAtlasReader.py
+++ b/cect/WormNeuroAtlasReader.py
@@ -24,7 +24,7 @@
LOGGER = logging.getLogger(__name__)
-READER_DESCRIPTION = """Data from the **[WormNeuroAtlas package](https://github.com/francescorandi/wormneuroatlas)** for neuronal connectivity"""
+READER_DESCRIPTION = """Data from the WormNeuroAtlas package for neuronal connectivity"""
def get_all_cells(watlas):
From b4c9165851e5b0caf8f436f7bd5d2541b5650571 Mon Sep 17 00:00:00 2001
From: pgleeson
Date: Wed, 13 Nov 2024 18:36:11 +0000
Subject: [PATCH 05/10] Initial Britin dataset
---
.gitignore | 3 +
cect/BrittinDataReader.py | 91 ++++++++++++++++++++++
cect/Comparison.py | 3 +
cect/ConnectomeView.py | 23 +++---
cect/data/41586_2021_3284_MOESM5_ESM.xlsx | Bin 0 -> 129504 bytes
docs/Brittin_2021.md | 28 ++++---
docs/api/cect/BrittinDataReader.md | 1 +
7 files changed, 128 insertions(+), 21 deletions(-)
create mode 100644 cect/BrittinDataReader.py
create mode 100644 cect/data/41586_2021_3284_MOESM5_ESM.xlsx
create mode 100644 docs/api/cect/BrittinDataReader.md
diff --git a/.gitignore b/.gitignore
index fd2ddeb68..258a07c1a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -669,3 +669,6 @@ __pycache__
/docs/vspR.md
/docs/vsrL.md
/docs/vsrR.md
+/docs/Brittin*_data*.md
+/docs/assets/Brittin2021*
+/docs/*_Brittin2021_data*.md
diff --git a/cect/BrittinDataReader.py b/cect/BrittinDataReader.py
new file mode 100644
index 000000000..d76498470
--- /dev/null
+++ b/cect/BrittinDataReader.py
@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+
+############################################################
+
+# A script to read the values from Brittin et al 2021
+
+############################################################
+
+
+from cect.ConnectomeReader import ConnectionInfo
+from cect.ConnectomeReader import analyse_connections
+
+from cect.ConnectomeDataset import ConnectomeDataset
+from cect.ConnectomeDataset import get_dataset_source_on_github
+
+import os
+from openpyxl import load_workbook
+
+from cect import print_
+
+
+spreadsheet_location = os.path.dirname(os.path.abspath(__file__)) + "/data/"
+
+filename = "%s41586_2021_3284_MOESM5_ESM.xlsx" % spreadsheet_location
+
+READER_DESCRIPTION = (
+ """Data extracted from %s for ... connectivity."""
+ % get_dataset_source_on_github(filename.split("/")[-1])
+)
+
+
+class BrittinDataReader(ConnectomeDataset):
+ """Reader for datasets from [Brittin et al. 2021](../../Brittin_2021.md)"""
+
+ verbose = False
+
+ def __init__(self, reference_graph):
+ ConnectomeDataset.__init__(self)
+ self.reference_graph = reference_graph
+
+ cells, neuron_conns = self.read_data()
+ for conn in neuron_conns:
+ self.add_connection_info(conn)
+
+ def read_data(self):
+ cells = []
+ conns = []
+
+ wb = load_workbook(filename)
+
+ sheet = wb.get_sheet_by_name(self.reference_graph)
+
+ print_("Opened sheet %s in Excel file: %s" % (sheet, filename))
+ print(dir(sheet))
+
+ for row in sheet.rows:
+ print(row[0].value)
+ if "cell_1" not in row[0].value:
+ delta = int(row[3].value)
+ if delta == 4:
+ pre = row[0].value
+ post = row[1].value
+ num = float(row[2].value)
+ syntype = "Contact"
+ synclass = "%s%s" % (self.reference_graph, row[3].value)
+ synclass = "Contact"
+ ci = ConnectionInfo(pre, post, num, syntype, synclass)
+ print("Adding %s" % ci)
+ conns.append(ci)
+
+ if pre not in cells:
+ cells.append(pre)
+ if post not in cells:
+ cells.append(post)
+
+ return cells, conns
+
+
+def get_instance():
+ return BrittinDataReader("M")
+
+
+my_instance = get_instance()
+
+if __name__ == "__main__":
+ wdr = get_instance()
+
+ cells, neuron_conns = wdr.read_data()
+ neurons2muscles, muscles, muscle_conns = wdr.read_muscle_data()
+
+ analyse_connections(cells, neuron_conns, neurons2muscles, muscles, muscle_conns)
diff --git a/cect/Comparison.py b/cect/Comparison.py
index 78f5b1521..4c16ca31a 100644
--- a/cect/Comparison.py
+++ b/cect/Comparison.py
@@ -22,6 +22,7 @@
"Cook2019Herm": "Cook2019Herm_data",
"Cook2019Male": "Cook2019Male_data",
"Cook2020": "Cook2020_data",
+ "Brittin2021": "Brittin2021_data",
"Witvliet1": "Witvliet1_data",
"Witvliet2": "Witvliet2_data",
"Witvliet3": "Witvliet3_data",
@@ -169,6 +170,8 @@ def generate_comparison_page(quick: bool, color_table=True):
readers["Cook2020"] = ["cect.Cook2020DataReader", "Cook_2020"]
+ readers["Brittin2021"] = ["cect.BrittinDataReader", "Brittin_2021"]
+
if not quick:
readers["Witvliet1"] = ["cect.WitvlietDataReader1", "Witvliet_2021"]
readers["Witvliet2"] = ["cect.WitvlietDataReader2", "Witvliet_2021"]
diff --git a/cect/ConnectomeView.py b/cect/ConnectomeView.py
index bb91bfc98..142edee22 100644
--- a/cect/ConnectomeView.py
+++ b/cect/ConnectomeView.py
@@ -115,8 +115,9 @@ def get_index_of_cell(self, cell):
"Extrasynaptic": ALL_KNOWN_EXTRASYNAPTIC_CLASSES,
}
-EXC_INH_GJ_FUNC_SYN_CLASSES = copy.deepcopy(EXC_INH_GJ_SYN_CLASSES)
-EXC_INH_GJ_FUNC_SYN_CLASSES["Functional"] = ["Functional"]
+EXC_INH_GJ_FUNC_CONT_SYN_CLASSES = copy.deepcopy(EXC_INH_GJ_SYN_CLASSES)
+EXC_INH_GJ_FUNC_CONT_SYN_CLASSES["Functional"] = ["Functional"]
+EXC_INH_GJ_FUNC_CONT_SYN_CLASSES["Contact"] = ["Contact"]
ALL_SYN_CLASSES = {
"All synapses": [GENERIC_CHEM_SYN]
@@ -125,6 +126,7 @@ def get_index_of_cell(self, cell):
+ [GENERIC_ELEC_SYN]
+ ALL_KNOWN_EXTRASYNAPTIC_CLASSES
+ ["Functional"]
+ + ["Contact"]
}
CHEM_GJ_SYN_CLASSES = {
@@ -134,8 +136,9 @@ def get_index_of_cell(self, cell):
"Extrasynaptic": EXC_INH_GJ_SYN_CLASSES["Extrasynaptic"],
}
-CHEM_GJ_FUNC_SYN_CLASSES = copy.deepcopy(CHEM_GJ_SYN_CLASSES)
-CHEM_GJ_FUNC_SYN_CLASSES["Functional"] = ["Functional"]
+CHEM_GJ_FUNC_CONT_SYN_CLASSES = copy.deepcopy(CHEM_GJ_SYN_CLASSES)
+CHEM_GJ_FUNC_CONT_SYN_CLASSES["Functional"] = ["Functional"]
+CHEM_GJ_FUNC_CONT_SYN_CLASSES["Contact"] = ["Contact"]
RAW_VIEW = View(
@@ -143,7 +146,7 @@ def get_index_of_cell(self, cell):
"Raw Data",
"All of the cells present in the original connectome dataset",
[],
- CHEM_GJ_FUNC_SYN_CLASSES,
+ CHEM_GJ_FUNC_CONT_SYN_CLASSES,
only_show_existing_nodes=True,
)
@@ -153,7 +156,7 @@ def get_index_of_cell(self, cell):
"Neurons",
"All 302 hermaphrodite neurons (whether present or not in the connectome dataset)",
[],
- EXC_INH_GJ_FUNC_SYN_CLASSES,
+ EXC_INH_GJ_FUNC_CONT_SYN_CLASSES,
)
for cell in (
@@ -183,7 +186,7 @@ def get_index_of_cell(self, cell):
"Pharynx",
"Only the 20 neurons of the pharynx (whether present or not in the connectome dataset)",
[],
- EXC_INH_GJ_FUNC_SYN_CLASSES,
+ EXC_INH_GJ_FUNC_CONT_SYN_CLASSES,
)
for cell in sorted(PHARYNGEAL_NEURONS):
PHARYNX_VIEW.node_sets.append(NodeSet(cell, [cell], get_standard_color(cell)))
@@ -194,7 +197,7 @@ def get_index_of_cell(self, cell):
"Escape Response Circuit",
"Escape Response Circuit from [Pirri & Alkema, 2013](https://pmc.ncbi.nlm.nih.gov/articles/PMC3437330/)",
[],
- EXC_INH_GJ_FUNC_SYN_CLASSES,
+ EXC_INH_GJ_FUNC_CONT_SYN_CLASSES,
)
len_scale = 1
@@ -288,7 +291,7 @@ def get_index_of_cell(self, cell):
"Social Network",
"Hub and spoke circuit for social behavior as in Macosko et al. 2009",
[],
- EXC_INH_GJ_FUNC_SYN_CLASSES,
+ EXC_INH_GJ_FUNC_CONT_SYN_CLASSES,
)
len_scale = 1.5
@@ -328,7 +331,7 @@ def get_index_of_cell(self, cell):
"Cook 2019 Fig 3",
"A view of the data set with neurons grouped as in Figure 3 of Cook et al. 2019",
[],
- CHEM_GJ_FUNC_SYN_CLASSES,
+ CHEM_GJ_FUNC_CONT_SYN_CLASSES,
)
sn_pos = {
diff --git a/cect/data/41586_2021_3284_MOESM5_ESM.xlsx b/cect/data/41586_2021_3284_MOESM5_ESM.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..10fa5f0ed32db318120b5f3b2ad6fbdd15325d23
GIT binary patch
literal 129504
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
z
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