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

Support user-side integration of additional templates and annotations #196

Open
jcfr opened this issue Aug 5, 2021 · 1 comment
Open
Labels
Type: Feature Request Request for a new feature
Milestone

Comments

@jcfr
Copy link
Collaborator

jcfr commented Aug 5, 2021

What's the problem this feature will solve?

Currently, adding support for new types of atlases, such as the macaque atlas (see Issue #229), requires engineering effort. Users are unable to independently load and visualize other atlas types without modifying the codebase, which restricts flexibility and usability for diverse research needs.

Describe the solution you'd like

Enable users to integrate and visualize new atlases, such as the macaque CCF, without requiring codebase modifications. This can be achieved by implementing the following steps:

  1. Finalize Coordinate System Standardization: Complete the ongoing work to standardize the coordinate system, led by @lydiang. See Add support for updated Mouse CCF #230

  2. Evaluate and Simplify Color Table Mapping: Determine if the "compacting" of color tables and mapping files (<atlas_type>_annotation_color_(slicer2allen|allen2slicer)_mapping.json) remains necessary after integrating ENH: Increase maximum number of colors loaded from colortable files Slicer/Slicer#6358.

  3. Design a JSON schema to describe user-specified CCF templates and annotation files. This schema should include:

    • File paths for the template and annotations.
    • Coordinate system details.
    • Metadata for proper visualization.
  4. Enhance Atlas Loading Logic: Update the Cell Locator loading mechanism to:

    • Parse the user-provided JSON configuration.
    • Display the corresponding atlas and annotations seamlessly.

Alternative Solutions
NA

Additional context

@jcfr jcfr added the Status: Triage Issues/PRs that need to be triaged label Aug 5, 2021
@jcfr jcfr changed the title Generalize the logic for loading atlases Add support for working with new atlases Aug 5, 2021
allemangD added a commit that referenced this issue Mar 4, 2022
Adds `structure` to each control point in JSON output. This value is ignored during file loading, only used as metadata in consuming applications. See #208.

Note this change requires each `Annotation` instance hold a reference to the `HomeLogic` instance. Looking toward #196, it may make sense to introduce a "AtlasLogic" or similar which contains the volume node, color node, and related metadata _for only one atlas_. This metadata could then be serialized within `Annotation.toDict`.
allemangD added a commit that referenced this issue Mar 4, 2022
Adds `structure` to each control point in JSON output. This value is ignored during file loading, only used as metadata in consuming applications. See #208.

Note this change requires each `Annotation` instance hold a reference to the `HomeLogic` instance. Looking toward #196, it may make sense to introduce a "AtlasLogic" or similar which contains the volume node, color node, and related metadata _for only one atlas_. This metadata could then be serialized within `Annotation.toDict`.
@allemangD
Copy link
Collaborator

allemangD commented Mar 4, 2022

Will need to add some atlas metadata to the root level of the JSON file. Key parts are atlas ID and checksum.

Need to isolate the "atlas loading" logic into some class, probably AtlasLogic or similar, that Annotations.fromDict can use to create its own atlas rather than depending on HomeWidget.logic. See #209 (comment).

allemangD added a commit that referenced this issue Mar 7, 2022
Adds `structure` to each control point in JSON output. This value is ignored during file loading, only used as metadata in consuming applications. See #208.

Note this change requires each `Annotation` instance hold a reference to the `HomeLogic` instance. Looking toward #196, it may make sense to introduce a "AtlasLogic" or similar which contains the volume node, color node, and related metadata _for only one atlas_. This metadata could then be serialized within `Annotation.toDict`.
@jcfr jcfr added this to the Phase 5 milestone Nov 21, 2024
@jcfr jcfr added Type: Feature Request Request for a new feature and removed Status: Triage Issues/PRs that need to be triaged labels Nov 22, 2024
@jcfr jcfr changed the title Add support for working with new atlases Support user-side integration of additional template and annotation Nov 22, 2024
@jcfr jcfr changed the title Support user-side integration of additional template and annotation Support user-side integration of additional templates and annotations Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Request Request for a new feature
Projects
None yet
Development

No branches or pull requests

2 participants