-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
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_hookmust interact between the inner objects. This can be done by a custom override of the outerrun_hookthat 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
Labels
No labels