Skip to content

Notes on composabe experiment from multiple platforms #47

@bruno-f-cruz

Description

@bruno-f-cruz

The current launcher assumes that the experiment as a single entry point with a single set of [TRig, TSession, TTaskLogic].
I believe this concept can be easily generalizable to something like a CompositeExperiment.

  • The idea is to, from multiple Launcher[R, S, T], create a collection object that calls the inner launchers in order.
  • The CompositeLauncher could easily inherit from the BaseLauncher and overload the abstract methods to call the corresponding inner methods.
  • During experiment acquisition, there will obviously be a point where the run_hook must interact between the inner objects. This can be done by a custom override of the outer run_hook that implements some nice async logic
  • We should try to have a single TSession that is propagated to both underlying launchers
  • Metadata generation should still work as long as the mappers are scoped to each one of the launchers
  • Data transfer should still work from the point of view of the launcher. However:
    • There can only exist one session.json per experiment. This is a big problem as one of the inner launchers must now have elevated knowledge and possibly know about the other inner launcher. Alternatively, we can surface / code the mapper at the level of the outer launcher for the full experiment. I don't like this idea as it will require changing the mappers between running a session with and without physiology.
    • The alternative is to copy a session.json for the behavior only, and disregard physiology until aind-data-schema fixes composition.

Metadata

Metadata

Assignees

No one assigned

    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