Skip to content

Commit b2e015f

Browse files
committed
notebooks to docs
1 parent 8c065b0 commit b2e015f

File tree

4 files changed

+323
-1922
lines changed

4 files changed

+323
-1922
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# Prepare"
8+
]
9+
},
10+
{
11+
"cell_type": "code",
12+
"execution_count": 1,
13+
"metadata": {},
14+
"outputs": [
15+
{
16+
"ename": "ImportError",
17+
"evalue": "cannot import name 'plot_data_and_posterior' from 'bayes_window.visualization' (/home/m/mmy/bayes-window/bayes_window/visualization.py)",
18+
"output_type": "error",
19+
"traceback": [
20+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
21+
"\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)",
22+
"\u001b[0;32m<ipython-input-1-f066f5cd42ab>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mbulwark\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchecks\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mck\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerative_models\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mgenerate_fake_spikes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvisualization\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mfake_spikes_explore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplot_data_and_posterior\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmodels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfitting\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mfit_numpyro\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
23+
"\u001b[0;31mImportError\u001b[0m: cannot import name 'plot_data_and_posterior' from 'bayes_window.visualization' (/home/m/mmy/bayes-window/bayes_window/visualization.py)"
24+
]
25+
}
26+
],
27+
"source": [
28+
"#!pip install -e ..\n",
29+
"from altair.vegalite.v4.api import FacetChart, Chart, LayerChart\n",
30+
"from sklearn.preprocessing import LabelEncoder\n",
31+
"import bulwark.checks as ck\n",
32+
"from bayes_window.generative_models import generate_fake_spikes\n",
33+
"from bayes_window.visualization import fake_spikes_explore, plot_data_and_posterior\n",
34+
"from bayes_window import models\n",
35+
"from bayes_window.fitting import fit_numpyro\n",
36+
"from bayes_window.utils import add_data_to_posterior\n",
37+
"\n",
38+
"trans = LabelEncoder().fit_transform\n",
39+
"\n"
40+
]
41+
},
42+
{
43+
"cell_type": "markdown",
44+
"metadata": {},
45+
"source": [
46+
"# Make some data\n"
47+
]
48+
},
49+
{
50+
"cell_type": "code",
51+
"execution_count": null,
52+
"metadata": {},
53+
"outputs": [],
54+
"source": [
55+
"df, df_monster, index_cols, firing_rates = generate_fake_spikes(n_trials=2,\n",
56+
" n_neurons=8,\n",
57+
" n_mice=4,\n",
58+
" dur=7, )"
59+
]
60+
},
61+
{
62+
"cell_type": "code",
63+
"execution_count": null,
64+
"metadata": {},
65+
"outputs": [],
66+
"source": [
67+
"import numpy as np\n",
68+
"df['log_isi']=np.log10(df['isi'])"
69+
]
70+
},
71+
{
72+
"cell_type": "code",
73+
"execution_count": null,
74+
"metadata": {
75+
"scrolled": false
76+
},
77+
"outputs": [],
78+
"source": [
79+
"import altair as alt\n",
80+
"from bayes_window import visualization,utils\n",
81+
"from importlib import reload\n",
82+
"reload(visualization)\n",
83+
"reload(utils)\n",
84+
"y='log_isi'\n",
85+
"df['neuron']=df['neuron'].astype(int)\n",
86+
"ddf, dy = utils.make_fold_change(df,\n",
87+
" y=y,\n",
88+
" index_cols=('stim', 'mouse_code', 'neuron'),\n",
89+
" condition_name='stim',\n",
90+
" do_take_mean=True)\n",
91+
"\n",
92+
"visualization.plot_data(x='neuron',y=dy, color='mouse_code',add_box=True,df=ddf)"
93+
]
94+
},
95+
{
96+
"cell_type": "markdown",
97+
"metadata": {},
98+
"source": [
99+
"# Estimate model"
100+
]
101+
},
102+
{
103+
"cell_type": "code",
104+
"execution_count": null,
105+
"metadata": {},
106+
"outputs": [],
107+
"source": [
108+
"#y = list(set(df.columns) - set(index_cols))[0]\n",
109+
"trace = fit_numpyro(y=df[y].values,\n",
110+
" stim_on=(df['stim']).astype(int).values,\n",
111+
" treat=trans(df['neuron']),\n",
112+
" subject=trans(df['mouse']),\n",
113+
" progress_bar=True,\n",
114+
" model=models.model_hier_normal_stim,\n",
115+
" n_draws=100, num_chains=1, )"
116+
]
117+
},
118+
{
119+
"cell_type": "markdown",
120+
"metadata": {},
121+
"source": [
122+
"# Add data back"
123+
]
124+
},
125+
{
126+
"cell_type": "code",
127+
"execution_count": null,
128+
"metadata": {},
129+
"outputs": [],
130+
"source": [
131+
"reload(utils)\n",
132+
"df_both = utils.add_data_to_posterior(df,\n",
133+
" trace=trace,\n",
134+
" y=y,\n",
135+
" index_cols=['neuron', 'stim', 'mouse_code', ],\n",
136+
" condition_name='stim',\n",
137+
" b_name='b_stim_per_condition', # for posterior\n",
138+
" group_name='neuron' # for posterior\n",
139+
" )"
140+
]
141+
},
142+
{
143+
"cell_type": "markdown",
144+
"metadata": {},
145+
"source": [
146+
"# Plot data and posterior"
147+
]
148+
},
149+
{
150+
"cell_type": "code",
151+
"execution_count": null,
152+
"metadata": {
153+
"scrolled": false
154+
},
155+
"outputs": [],
156+
"source": [
157+
"from bayes_window.workflow import BayesWindow\n",
158+
"#BayesWindow.plot_posteriors_slopes(df_both, y=f'{y} diff', x='neuron',color='mouse_code',title=y,hold_for_facet=False,add_box=False)\n",
159+
"\n",
160+
"\n",
161+
"chart_d = visualization.plot_data(df=df_both,x='neuron', y=f'{y} diff',)\n",
162+
"chart_d.display()\n",
163+
"\n",
164+
"chart_p = visualization.plot_posterior(df=df_both, title=f'd_{y}', x='neuron',)\n",
165+
"chart_p.display()"
166+
]
167+
},
168+
{
169+
"cell_type": "code",
170+
"execution_count": null,
171+
"metadata": {},
172+
"outputs": [],
173+
"source": [
174+
"(chart_d+chart_p).display()"
175+
]
176+
},
177+
{
178+
"cell_type": "code",
179+
"execution_count": null,
180+
"metadata": {},
181+
"outputs": [],
182+
"source": [
183+
"(chart_d+chart_p).facet(column='neuron')"
184+
]
185+
}
186+
],
187+
"metadata": {
188+
"kernelspec": {
189+
"display_name": "PyCharm (jup)",
190+
"language": "python",
191+
"name": "pycharm-d5912792"
192+
},
193+
"language_info": {
194+
"codemirror_mode": {
195+
"name": "ipython",
196+
"version": 3
197+
},
198+
"file_extension": ".py",
199+
"mimetype": "text/x-python",
200+
"name": "python",
201+
"nbconvert_exporter": "python",
202+
"pygments_lexer": "ipython3",
203+
"version": "3.8.5"
204+
}
205+
},
206+
"nbformat": 4,
207+
"nbformat_minor": 4
208+
}
+115
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# Generate some data"
8+
]
9+
},
10+
{
11+
"cell_type": "code",
12+
"execution_count": 1,
13+
"metadata": {},
14+
"outputs": [
15+
{
16+
"ename": "ImportError",
17+
"evalue": "cannot import name 'plot_data_and_posterior' from 'bayes_window.visualization' (/home/m/mmy/bayes-window/bayes_window/visualization.py)",
18+
"output_type": "error",
19+
"traceback": [
20+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
21+
"\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)",
22+
"\u001b[0;32m<ipython-input-1-540448e9e811>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerative_models\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mgenerate_fake_spikes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvisualization\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mfake_spikes_explore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplot_data_and_posterior\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmodels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfitting\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mfit_numpyro\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbayes_window\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0madd_data_to_posterior\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
23+
"\u001b[0;31mImportError\u001b[0m: cannot import name 'plot_data_and_posterior' from 'bayes_window.visualization' (/home/m/mmy/bayes-window/bayes_window/visualization.py)"
24+
]
25+
}
26+
],
27+
"source": [
28+
"from bayes_window.generative_models import generate_fake_spikes\n",
29+
"from bayes_window.visualization import fake_spikes_explore, plot_data_and_posterior\n",
30+
"from bayes_window import models\n",
31+
"from bayes_window.fitting import fit_numpyro\n",
32+
"from bayes_window.utils import add_data_to_posterior"
33+
]
34+
},
35+
{
36+
"cell_type": "code",
37+
"execution_count": null,
38+
"metadata": {},
39+
"outputs": [],
40+
"source": [
41+
"\n",
42+
"df, df_monster, index_cols, firing_rates = generate_fake_spikes(n_trials=10,\n",
43+
" n_neurons=7,\n",
44+
" n_mice=6,\n",
45+
" dur=7,\n",
46+
" mouse_response_slope=16)"
47+
]
48+
},
49+
{
50+
"cell_type": "markdown",
51+
"metadata": {},
52+
"source": [
53+
"# Exploratory plot without any fitting"
54+
]
55+
},
56+
{
57+
"cell_type": "code",
58+
"execution_count": null,
59+
"metadata": {
60+
"scrolled": true
61+
},
62+
"outputs": [],
63+
"source": [
64+
"\n",
65+
"from bayes_window.visualization import fake_spikes_explore\n",
66+
"charts=fake_spikes_explore(df,df_monster,index_cols)\n",
67+
"[chart.display() for chart in charts];\n",
68+
"#fig_mice, fig_select, fig_neurons, fig_trials, fig_isi + fig_overlay, bar, box, fig_raster, bar_combined"
69+
]
70+
},
71+
{
72+
"cell_type": "markdown",
73+
"metadata": {},
74+
"source": [
75+
"# Estimate with mouse>neuron"
76+
]
77+
},
78+
{
79+
"cell_type": "code",
80+
"execution_count": null,
81+
"metadata": {},
82+
"outputs": [],
83+
"source": [
84+
"from bayes_window import workflow\n",
85+
"from importlib import reload\n",
86+
"reload(workflow)\n",
87+
"bw=workflow.BayesWindow(df,y='isi', levels=('stim', 'mouse', 'neuron'))\n",
88+
"bw.fit_slopes(add_data=True, model=models.model_hier_normal_stim,)\n",
89+
"\n",
90+
"bw.plot()\n"
91+
]
92+
}
93+
],
94+
"metadata": {
95+
"kernelspec": {
96+
"display_name": "PyCharm (jup)",
97+
"language": "python",
98+
"name": "pycharm-d5912792"
99+
},
100+
"language_info": {
101+
"codemirror_mode": {
102+
"name": "ipython",
103+
"version": 3
104+
},
105+
"file_extension": ".py",
106+
"mimetype": "text/x-python",
107+
"name": "python",
108+
"nbconvert_exporter": "python",
109+
"pygments_lexer": "ipython3",
110+
"version": "3.8.5"
111+
}
112+
},
113+
"nbformat": 4,
114+
"nbformat_minor": 4
115+
}

0 commit comments

Comments
 (0)