non_package_files/Examples___/workflow_ideas.R

# Workflow -idea

tree <- get_treeinfo( filename(s) ) 
tree %<>% showtree()
tree %>%  set_selection %>% showtree()
tree %>%  set_selection %>% get_tracedata %>% plot.Hekadata()
tree %>%  set_selection %>% get_tracedata %>% calculate_cursors  %>% plot.cursordata()
tree %>%  set_selection %>% get_tracedata %>% calculate_cursors  %>% calculate_lpresults %>% plot.lpresults()
tree %>%  set_selection %>% get_tracedata %>% calculate_cursors  %>% calculate_lpresults %>% calculate_drcresults %>% plot.drcresults()

# Having "get_treeinfo(filename(s))" as a first step is justified by perforance considerations: users should reuse the reusult. 


# all visualisations (e.g. plots) in shwotree operate on the same input as produced by: 
# Filename(s) %>% get_treeinfo %>% set_selection

# all parts of the chain can be skipped, if the default arguments of the intermediate function calls suffice. e.g.:
tree %>% plot.drc("min")  # will operate on all experiments that have compound and concentration info and contain a cursor named "min"
# this will enable or even encourage users to program in a way that has less typing but also may have slow performance (because intermediate results will be calcualted redundantly)
# do we realy want this ? 
# using memoise could provide the best of both worlds, but would it be reliable ? Downside: how to ensure updated files or cursors always trigger recalculations ? 


# some downstream functions *could* have optional parameters that are passed to upstream functions, e.g.:
tree %>% set_selection(goodcells) %>% plot.drc("min")  # would be the same as
tree %>% plot.drc("min", selection=goodcells)  # will restrain its operation to the selection "goodcells" 
# but this should be implemented in a consistent way.
tdanker/ephys2 documentation built on Aug. 11, 2019, 12:12 p.m.