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

Add Visualize in Neurosift on Dandiset Landing Page #2039

Open
kabilar opened this issue Oct 8, 2024 · 6 comments
Open

Add Visualize in Neurosift on Dandiset Landing Page #2039

kabilar opened this issue Oct 8, 2024 · 6 comments
Labels
UX Affects usability of the system visualization Integration of data viewers or other vis tools

Comments

@kabilar
Copy link
Member

kabilar commented Oct 8, 2024

Current state

Neurosift is available for NWB files on DANDI and when in the file browser can be accessed for a single asset by selecting the External Services menu. However, it takes many clicks to get to a Neurosift page.

Feature request

I would suggest that we also add a Visualize in Neurosift button on the landing page of Dandisets that contain NWB files. This will help surface this tool so that more users see it. Each Dandiset on Neurosift has a corresponding "summary" page of all the assets which can be linked to from the DLP (e.g. https://neurosift.app/?p=/dandiset&dandisetId=001065&dandisetVersion=draft).

Perhaps we can add this button under the Dandiset Actions section:
image

cc @magland @bendichter

@magland
Copy link
Contributor

magland commented Oct 8, 2024

@kabilar I'm in favor. :)

@yarikoptic
Copy link
Member

me too! I just want us to ensure that we implement such specification in a generic "fashion".

Notes on a potential design

ATM we decide on allowing for neurosift simply given the filename .nwb extension. But at the dandiset level we do not have in our summary file extensions, we have "Data standards" an in particular

  "assetsSummary": {
...
    "dataStandard": [
      {
        "name": "Neurodata Without Borders (NWB)",
        "schemaKey": "StandardsType",
        "identifier": "RRID:SCR_015242"
      }
    ],

so IMHO the decision should be based on that. But we might like to add to dandischema mapping to IDs like we did in unfinished

We might later also add apps which work on BIDS datasets etc. Hence let's extend our specification/list of external services we coded in https://github.com/dandi/dandi-archive/blob/HEAD/web/src/views/FileBrowserView/FileBrowser.vue#L319 to

  1. specify the target ("asset" vs "dataset"; default to "asset");
  2. rename regex into path_regex unless we want to add regexing based on dandiset id (makes little sense besides possible blacklisting, but then better be explicit)
  • we can even apply limitation by size at "dataset" level but not sure if there is a use case to limit??
  1. in dandi-schema add shorter id to standards, i.e. NWB or BIDS instead of extended "name". Create a mapping from those ids to identifiers
  2. add data_standards list (as any of those) to trigger based on those (instead of regex)

so here we would have something like

  {
    name: 'Neurosift',
    path_regex: /\.nwb$/,
    maxsize: Infinity,
    endpoint: 'https://neurosift.app?p=/nwb&url=$asset_dandi_url$&dandisetId=$dandiset_id$&dandisetVersion=$dandiset_version$', // eslint-disable-line max-len
  },
  {
    name: 'Neurosift',
    target: 'dataset',
    data_standards: ['NWB'],
    endpoint: 'https://neurosift.app?FIXMEHERE&dandisetId=$dandiset_id$&dandisetVersion=$dandiset_version$', // eslint-disable-line max-len
  },

or smth like that ;-)

@yarikoptic yarikoptic added UX Affects usability of the system visualization Integration of data viewers or other vis tools labels Oct 10, 2024
@bendichter
Copy link
Member

The endpoint can simply be:

https://neurosift.app/?p=/dandiset&dandisetId=$dandiset_id$&dandisetVersion=$dandiset_version$

e.g.: https://neurosift.app/?p=/dandiset&dandisetId=000582&dandisetVersion=draft

@yarikoptic
Copy link
Member

anyone knows enough of Vue to prototype a solution? ;-)

@magland
Copy link
Contributor

magland commented Oct 11, 2024

anyone knows enough of Vue to prototype a solution? ;-)

I can work on it next week.

@magland
Copy link
Contributor

magland commented Oct 14, 2024

See #2041

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
UX Affects usability of the system visualization Integration of data viewers or other vis tools
Projects
None yet
Development

No branches or pull requests

4 participants