Skip to content

Documentation/justification missing for Cell._update_end_pts #1220

@katduecker

Description

@katduecker

Disclaimer: If you are new contributor, please do not work on this issue at this time. If you would like to contribute, please find a different issue, and make sure that there is no Pull Request already open for that issue.

I have a question regarding #661 that I can't make sense of.
My understanding is that @raj1701 implemented a function called _update_end_pts in cell.py which allows us to access information on the section end points in python and not in NEURON, which helps with pickeling parallelization etc.

I do not understand why in cells_default.py we define end points that we don't end up using anyway.
E.g. the end points for the L2/3 pyramidal neuron in cells_default.py is

end_pts = {
'soma': [[-50, 0, 765], [-50, 0, 778]],
'apical_trunk': [[-50, 0, 778], [-50, 0, 813]],
'apical_oblique': [[-50, 0, 813], [-250, 0, 813]],
'apical_1': [[-50, 0, 813], [-50, 0, 993]],
'apical_tuft': [[-50, 0, 993], [-50, 0, 1133]],
'basal_1': [[-50, 0, 765], [-50, 0, 715]],
'basal_2': [[-50, 0, 715], [-156, 0, 609]],
'basal_3': [[-50, 0, 715], [56, 0, 609]],
}

but the actual end points (from net.cell_type['L2_pyramidal'].sections[section].end_pts) are:

end_pts = {
'soma': [[0, 0, 0], [0, 0, 22.1]],
'apical_trunk': [[0,0,22.099999999999987], [0,0,81.59999999999998]],
'apical_oblique': [[0,0,81.59999999999998], [-340, 0, 81.59999999999998]],
'apical_1': [[0, 0, 81.59999999999997], [0,0, 387.59999999999997]],
'apical_tuft': [[0, 0, 387.5999999999999], [0, 0, 625.5999999999999]],
'basal_1': [[0,0,0], [0,0,-85.0]],
'basal_2': [[2.842170943040401e-14, 0, -84.99999999999997], [-180.3122292025696, 0, -265.3122292025696]],
'basal_3': [[-2.842170943040401e-14, 0, -84.99999999999997], [180.3122292025696, 0, -265.312229202569]],
}

I think @rythorpe asked the same question in that PR too but I don't see a clear answer to it.

This does not seem to change the behavior of the cell as far as I can tell based on some clamping that I have done,
but it has caused confusion when developing new plots of the network cells.

Why define the "wrong" end points in cells_default.py to then overwrite them in private functions in cell.py?

@ntolley @jasmainak @rythorpe could you explain so that we can document this?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions