ndcn / soda-ndcn

soda-ndcn
GNU General Public License v3.0
1 stars 4 forks source link

Analysis/Session Provenance #18

Open cjsifuen opened 1 year ago

cjsifuen commented 1 year ago

Enable users to capture with ease, fidelity, and accuracy the actions/analysis performed on a dataset or sets of datasets.

Information to capture

Potential implementations

Considerations

cjsifuen commented 1 year ago

I spoke with the imaging group about learning from napari. Their strategy is different in that they support a local instance only. They capture the commands run, but I'm not sure it's actually they type of provenance we're talking about.

ergonyc commented 1 year ago

From what I understand about SODAs current workflow this should be pretty straightforward. The "output" of SODA is either a downloaded dataset or a visualization. So I think there are just 3 states to log or capture:

  1. data origin (file name / path / source?) + metadata
  2. sample filter
  3. feature filter
  4. visualization
    • vis type + parameters
    • subset selection

I think a generic R logging module can do capture, so that log as metadata just needs to be added to metadata and saved along with the visualization / data.

cjsifuen commented 1 year ago

From what I understand about SODAs current workflow this should be pretty straightforward. The "output" of SODA is either a downloaded dataset or a visualization. So I think there are just 3 states to log or capture:

  1. data origin (file name / path / source?) + metadata
  2. sample filter
  3. feature filter
  4. visualization

    • vis type + parameters
    • subset selection

I think a generic R logging module can do capture, so that log as metadata just needs to be added to metadata and saved along with the visualization / data.

This would be a light way to implement the first option.

A few more things to flag if this approach was taken:

A possible way to do more complex logging/debugging could be to use a shiny logger to capture events and interactions -- though perhaps this is unnecessary. Just wanted to add some options that I found here.