Skip to content

Overview of many new things TODO #26

@cudmore

Description

@cudmore

Overview of many new things TODO

This list is long and requires a lot of work. The items here are not listed in order of importance.

I am not suggesting we start on these today but this is a list of things we need to move forward!

1) Revamp metadata, in particular add ExperimentMetadata

Each timepoint/image needs metadata to keep track of experimental conditions. Most of these are freeform and will be entered by user. Each time a user acquires an image, the image may have metadata like:

keys = [
        'Species', 
        'Sex',
        'Age',
        'Region',
        'Cell Type',
        'Acq Date',  # ideally from imported tif, yyyymmdd
        'Acq Time',  # ideally from imported tiff, hh:mm:ss (24 hour clock)
        'Condition 1',
        'Condition 2',
        'Timer 1',
        'Timer 2'
        ]
  • Need desktop and web gui to edit this metadata.

  • We might need functions to copy this metadata into each spine? Or just scripts to make a final dataframe where each spine has columns corresponding to all fields in its ExperimentMetadata.

  • I am a fan of the newish Python DataClass ... but ... as an object oriented person ... I would like some functions to get/set load/save the metadata that dataclass does not provide?

2) Allow multiple images per mmap zarr file (not a time series)

This is very cool! We need to do this for our single timepoint analysis (e.g. publication) !!!

Allow multiple images per file, just like timepoints but spines are never connected between timepoints.This allows us to use zarr as a general purpose container with multiple disjoin images. The rational/utility is this one zarr file can represent all the images and analysis that go into one published figure.

In the following figure there are hundreds of image volumes analyzed, each with a number of dendritic segments.

My idea is that the final plot (lower row) will not necessarily be done with our gui but with a jupyter notebook script. This would use ExperimentMetadata (#1 above) to then group each measurement of spine density based on ExperimentMetadata like Region and Conditon 1. In this example, Region metadata is like ['Frontal Cortex', 'Motor Cortex', ...] and condition 1 is like ['Sham, OVX`].

Click this link to see the image ...

https://www.jneurosci.org/content/jneuro/39/25/4874/F1.large.jpg

3) We need to incorporate physical units into our analysis.

All of our analysis parameters and visualizations by a user need to pretend we are using physical units like micrometer.

When we plot, for example, spine length we want to plot spine length in physical units like micrometer.

When our backend accesses pixels it is always 0 based. Yet, when we show info to the user we never want to use pixels, we always use PhysicalUnits like micrometer.

This also applies to the core Analysis Parameters. We want our users to specify PhysicalUntis, never pixels.

4) Add additional statistics for each segment

We need to add summary spine statistics per segment.

  • Spine density (spines/um)
  • Mean/SD/SE of distance between spines (basically a histogram)
  • Other ?

5) We need a new widget to infer "spine type"

Neuronal spines are generally classified as follows:

  • stubby: short spine length
  • filopodia: long and thin
  • mushroom: they are intermediate in length but have a prominent (bright) spine head with a dim shaft
  • unknown: None of the above

We need a widget to semi auto classify spines into these three types.

We need to add a spineType to the class Spine (easy)

More on this later ...

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions