Neurons example, no slopes
Contents
Neurons example, no slopes¶
from importlib import reload
from bayes_window import visualization
from bayes_window import workflow, models, BayesWindow, BayesConditions, BayesRegression
from bayes_window.generative_models import generate_fake_spikes
Make fake data¶
df, df_monster, index_cols, firing_rates = generate_fake_spikes(n_trials=5,
n_neurons=3,
n_mice=4,
dur=7,
mouse_response_slope=16)
Quick workflow¶
bw=workflow.BayesWindow(df,y='isi',treatment='stim', condition='neuron', group='mouse',)
bw.plot(x='stim').facet('neuron')
TODO this default is fishy
bw.plot()
bw.plot(x='stim', detail='neuron', color='mouse:N')
Is this bc chart_p and chart_d traded places?
bw=BayesConditions(df=df,y='isi',treatment='stim', condition='neuron', group='mouse')
bw.fit(model=models.model_single, );
TODO data is fine, posterior is not
TODO Need saner facet call
bw.plot(x='stim:O',color='neuron:N',independent_axes=False,add_data=True)#.display()
BayesWindow.facet(bw, column='mouse')
df.neuron=df.neuron.astype(int)
bw=BayesConditions(df=df,y='isi',treatment='stim', condition='neuron', group='mouse')
bw.fit(model=models.model_single, )
bw.plot(x='stim:O',independent_axes=False,add_data=True);
#builtin facet
bw.chart.properties(height=60).facet(column='neuron', row='mouse').display()
# smart facet TODO
BayesWindow.facet(bw,column='neuron', row='mouse',height=60).display()
#Full: add_data=True, independent_axes=True
bw = BayesConditions(df=df, y='isi', treatment='stim', condition='neuron', group='mouse')
bw.fit(model=models.model_single)
bw.plot(x='stim:O', independent_axes=True, add_data=True).display()
BayesWindow.facet(bw, column='neuron', row='mouse', width=90,height=120).display()
Detailed steps¶
1. Estimate and make posterior plot¶
2. Make data slopeplot¶
import altair as alt
fig_trials=visualization.plot_data_slope_trials(
x='stim:O', y='log_firing_rate',
color='neuron:N',detail='i_trial',
base_chart=alt.Chart(df))
#chart = visualization.AltairHack(fig_trials)
#import types
#fig_trials.facetz = types.MethodType(facet, fig_trials )
#fig_trials.facetz(row='mouse')
#facet=visualization.facet
facet=fig_trials.facet
facet(column='mouse_code')
visualization.facet(fig_trials,column='mouse_code')
TODO neuron dont work here anymore, only neuron_code
fig_trials.properties(width=50,height=50).facet(row='mouse',column='neuron')
# Resolve scale doesnt work with facets yet:
#https://github.com/vega/vega-lite/issues/4373#issuecomment-447726094
# alt.layer(cposter, fig_trials, data=df_both).resolve_scale(y='independent').facet(row='mouse', column='neuron')