Skip to content
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

Create initial specs integrating devices from ndx-ophys-devices #12

Closed
wants to merge 9 commits into from

Conversation

alessandratrapani
Copy link
Collaborator

@alessandratrapani alessandratrapani commented May 25, 2024

see catalystneuro/ndx-ophys-devices#1 for ophys devices

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#ffffff', "primaryBorderColor': '#144E73', 'lineColor': '#D96F32'}}}%%


classDiagram
    direction BT

    class MicroscopySeries {
        <<TimeSeries>>

        --------------------------------------
        datasets
        --------------------------------------
        microscopy_table_region : DynamicTableRegion
    }

    class PlanarMicroscopySeries {
        <<MicroscopySeries>>

        --------------------------------------
        datasets
        --------------------------------------
        data : numeric, frame x height x width
        --> unit : text

        --------------------------------------
        links
        --------------------------------------
        imaging_space : PlanarImagingSpace
    }

    class VariableDepthMicroscopySeries {
        <<MicroscopySeries>>

        --------------------------------------
        datasets
        --------------------------------------
        data : numeric, frame x height x width
        --> unit : text
        depth_per_frame : numeric, length of frames
        -- > unit : text, default="micrometers"

        --------------------------------------
        links
        --------------------------------------
        imaging_space : PlanarImagingSpace
    }

    class VolumetricMicroscopySeries {
        <<MicroscopySeries>>

        --------------------------------------
        datasets
        --------------------------------------
        data : numeric, frame x height x width x depth
        --> unit : text

        --------------------------------------
        links
        --------------------------------------
        imaging_space : VolumetricImageSpace
    }

    class ImagingSpace{
        <<NWBContainer>>

        --------------------------------------
        datasets
        --------------------------------------
        description : text
        origin_coordinates : numeric, length 3, optional
        --> unit : text, default="micrometers"

        --------------------------------------
        attributes
        --------------------------------------
        location : text, optional
    }

    class PlanarImagingSpace{
        <<ImagingSpace>>

        --------------------------------------
        datasets
        --------------------------------------
        grid_spacing : numeric, length 2, optional
        --> unit : text, default="micrometers"

        --------------------------------------
        attributes
        --------------------------------------
        reference_frame : text, optional
    }

    class VolumetricImagingSpace{
        <<ImagingSpace>>

        --------------------------------------
        datasets
        --------------------------------------
        grid_spacing : numeric, length 2, optional
        --> unit : text, default="micrometers"

        --------------------------------------
        attributes
        --------------------------------------
        reference_frame : text, optional
    }

    class MicroscopyTable{
        <<DynamicTable>>

        --------------------------------------
        datasets
        --------------------------------------
        VectorData :
        - location : text, optional
        - coordinates : numeric, length 2, optional
        --> unit : text, default="micrometers"
        - indicator : Indicator
        - notes : text, optional
        - microscope : Microscope
        - excitation_source : ExcitationSource
        - photodetector : Photodetector
        - dichroic_mirror : DichroicMirror
        - emission_filter : OpticalFilter
        - excitation_filter : OpticalFilter
        - objective_lens : ObjectiveLens
    }

    class Microscopy{
        <<LabMetaData>>

        --------------------------------------
        groups
        --------------------------------------
        microscopy_table : MicroscopyTable
    }

    PlanarMicroscopySeries *-- MicroscopySeries : extends
    PlanarMicroscopySeries -- PlanarImagingSpace : links
    VariableDepthMicroscopySeries *-- MicroscopySeries : extends
    VariableDepthMicroscopySeries -- PlanarImagingSpace : links
    VolumetricMicroscopySeries *-- MicroscopySeries : extends
    VolumetricMicroscopySeries -- VolumetricImagingSpace : links
    PlanarImagingSpace *-- ImagingSpace : extends
    VolumetricImagingSpace *-- ImagingSpace : extends
    MicroscopySeries ..> MicroscopyTable : reference rows
    Microscopy ..> MicroscopyTable : links
Loading
  • add diagram schema
  • add mock functions for Microscopy and MicroscopyTable

@alessandratrapani alessandratrapani changed the base branch from main to basic_spec May 25, 2024 15:43
@alessandratrapani alessandratrapani self-assigned this May 25, 2024
Comment on lines 11 to 13
- namespace:
- core
- ndx-ophys-devices
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be:

Suggested change
- namespace:
- core
- ndx-ophys-devices
- namespace: core
- namespace: ndx-ophys-devices

schema should be a list of dicts with certain keys

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, I recommend using the API to create the specs, though I know it adds another step.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does ndx-ophys-devices need to be in the ndx-catalog? I got this error:

KeyError: "'ndx-ophys-devices' not a namespace"

@alessandratrapani alessandratrapani marked this pull request as ready for review May 27, 2024 13:48
Base automatically changed from basic_spec to main June 5, 2024 13:08
@CodyCBakerPhD
Copy link
Member

@alessandratrapani Two small conflicts

@CodyCBakerPhD
Copy link
Member

replaced by #22

@CodyCBakerPhD CodyCBakerPhD deleted the create_specs branch August 27, 2024 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants