|
41 | 41 | "# General imports\n", |
42 | 42 | "import numpy as np\n", |
43 | 43 | "\n", |
44 | | - "# Import FOOOF objects\n", |
| 44 | + "# Import FOOOF objects & synth utilities\n", |
45 | 45 | "from fooof import FOOOF, FOOOFGroup\n", |
| 46 | + "from fooof.synth import gen_group_power_spectra, param_sampler\n", |
46 | 47 | "\n", |
47 | 48 | "# FOOOF comes with some basic analysis function to work with FOOOF outputs\n", |
48 | 49 | "from fooof.analysis import get_band_peak, get_band_peak_group" |
|
51 | 52 | { |
52 | 53 | "cell_type": "code", |
53 | 54 | "execution_count": 2, |
54 | | - "metadata": { |
55 | | - "collapsed": true |
56 | | - }, |
| 55 | + "metadata": {}, |
57 | 56 | "outputs": [], |
58 | 57 | "source": [ |
59 | | - "# Initialize a FOOOF object, and load data saved from previous tutorials\n", |
60 | | - "fm = FOOOF()\n", |
61 | | - "fm.load()\n", |
62 | | - "\n", |
63 | | - "# Initialize a FOOOFGroup, and load data saved from the previous tutorials\n", |
64 | | - "fg = FOOOFGroup()\n", |
65 | | - "fg.load()" |
| 58 | + "# Reload some data and fit a FOOOF model to use\n", |
| 59 | + "freqs = np.load('dat/freqs_lfp.npy')\n", |
| 60 | + "spectrum = np.load('dat/spectrum_lfp.npy')\n", |
| 61 | + "fm = FOOOF(peak_width_limits=[2, 8])\n", |
| 62 | + "fm.fit(freqs, spectrum, [3, 30])" |
| 63 | + ] |
| 64 | + }, |
| 65 | + { |
| 66 | + "cell_type": "code", |
| 67 | + "execution_count": 3, |
| 68 | + "metadata": {}, |
| 69 | + "outputs": [], |
| 70 | + "source": [ |
| 71 | + "# Generate some synthetic power spectra and fit a FOOOFGroup to use\n", |
| 72 | + "freqs, spectra, _ = gen_group_power_spectra(n_spectra=10,\n", |
| 73 | + " freq_range=[3, 40],\n", |
| 74 | + " background_params=param_sampler([[20, 2], [35, 1.5]]),\n", |
| 75 | + " gauss_params=param_sampler([[], [10, 0.5, 2]]))\n", |
| 76 | + "fg = FOOOFGroup(peak_width_limits=[1, 8], min_peak_amplitude=0.05, max_n_peaks=6, verbose=False)\n", |
| 77 | + "fg.fit(freqs, spectra)" |
66 | 78 | ] |
67 | 79 | }, |
68 | 80 | { |
|
82 | 94 | }, |
83 | 95 | { |
84 | 96 | "cell_type": "code", |
85 | | - "execution_count": 3, |
| 97 | + "execution_count": 4, |
86 | 98 | "metadata": { |
87 | 99 | "collapsed": true |
88 | 100 | }, |
|
101 | 113 | }, |
102 | 114 | { |
103 | 115 | "cell_type": "code", |
104 | | - "execution_count": 4, |
| 116 | + "execution_count": 5, |
105 | 117 | "metadata": { |
106 | 118 | "collapsed": true |
107 | 119 | }, |
|
113 | 125 | }, |
114 | 126 | { |
115 | 127 | "cell_type": "code", |
116 | | - "execution_count": 5, |
| 128 | + "execution_count": 6, |
117 | 129 | "metadata": { |
118 | 130 | "collapsed": true |
119 | 131 | }, |
120 | 132 | "outputs": [], |
121 | 133 | "source": [ |
122 | 134 | "# Define frequency bands of interest\n", |
123 | 135 | "theta_band = [4, 8]\n", |
124 | | - "alpha_band = [8, 12]" |
| 136 | + "alpha_band = [8, 12]\n", |
| 137 | + "beta_band = [15, 30]" |
125 | 138 | ] |
126 | 139 | }, |
127 | 140 | { |
128 | 141 | "cell_type": "code", |
129 | | - "execution_count": 6, |
| 142 | + "execution_count": 7, |
130 | 143 | "metadata": {}, |
131 | 144 | "outputs": [ |
132 | 145 | { |
133 | 146 | "data": { |
134 | 147 | "text/plain": [ |
135 | | - "array([ 7.98920599, 0.82222326, 2.06407363])" |
| 148 | + "array([16.08799633, 0.31497775, 2.91456728])" |
136 | 149 | ] |
137 | 150 | }, |
138 | | - "execution_count": 6, |
| 151 | + "execution_count": 7, |
139 | 152 | "metadata": {}, |
140 | 153 | "output_type": "execute_result" |
141 | 154 | } |
142 | 155 | ], |
143 | 156 | "source": [ |
144 | | - "# Extract any theta band oscillations from the FOOOF model\n", |
145 | | - "get_band_peak(fm.peak_params_, theta_band)" |
| 157 | + "# Extract any beta band oscillations from the FOOOF model\n", |
| 158 | + "get_band_peak(fm.peak_params_, beta_band)" |
146 | 159 | ] |
147 | 160 | }, |
148 | 161 | { |
|
156 | 169 | }, |
157 | 170 | { |
158 | 171 | "cell_type": "code", |
159 | | - "execution_count": 7, |
| 172 | + "execution_count": 8, |
160 | 173 | "metadata": { |
161 | 174 | "collapsed": true |
162 | 175 | }, |
|
168 | 181 | }, |
169 | 182 | { |
170 | 183 | "cell_type": "code", |
171 | | - "execution_count": 8, |
| 184 | + "execution_count": 9, |
172 | 185 | "metadata": {}, |
173 | 186 | "outputs": [ |
174 | 187 | { |
175 | 188 | "data": { |
176 | 189 | "text/plain": [ |
177 | | - "array([[ 10.09964663, 0.47133132, 3.60705373],\n", |
178 | | - " [ 10.08879109, 0.47731098, 3.68490876],\n", |
179 | | - " [ nan, nan, nan],\n", |
180 | | - " [ 10.09665833, 0.47097969, 3.6633977 ],\n", |
181 | | - " [ 10.02854683, 0.48826778, 3.81333837]])" |
| 190 | + "array([[ nan, nan, nan],\n", |
| 191 | + " [10.02967719, 0.48536385, 3.80421559],\n", |
| 192 | + " [ nan, nan, nan],\n", |
| 193 | + " [ nan, nan, nan],\n", |
| 194 | + " [10.04113301, 0.49012133, 3.78016585]])" |
182 | 195 | ] |
183 | 196 | }, |
184 | | - "execution_count": 8, |
| 197 | + "execution_count": 9, |
185 | 198 | "metadata": {}, |
186 | 199 | "output_type": "execute_result" |
187 | 200 | } |
|
208 | 221 | }, |
209 | 222 | { |
210 | 223 | "cell_type": "code", |
211 | | - "execution_count": 9, |
| 224 | + "execution_count": 10, |
212 | 225 | "metadata": {}, |
213 | 226 | "outputs": [ |
214 | 227 | { |
215 | 228 | "name": "stdout", |
216 | 229 | "output_type": "stream", |
217 | 230 | "text": [ |
218 | | - "Alpha CF : 10.0606832091\n", |
219 | | - "Alpha Amp: 0.482675280189\n", |
220 | | - "Alpha BW : 3.73077799688\n" |
| 231 | + "Alpha CF : 10.032316994652476\n", |
| 232 | + "Alpha Amp: 0.48704968437097024\n", |
| 233 | + "Alpha BW : 3.793087577369318\n" |
221 | 234 | ] |
222 | 235 | } |
223 | 236 | ], |
|
250 | 263 | }, |
251 | 264 | { |
252 | 265 | "cell_type": "code", |
253 | | - "execution_count": 10, |
| 266 | + "execution_count": 11, |
254 | 267 | "metadata": { |
255 | 268 | "collapsed": true |
256 | 269 | }, |
|
262 | 275 | }, |
263 | 276 | { |
264 | 277 | "cell_type": "code", |
265 | | - "execution_count": 11, |
| 278 | + "execution_count": 12, |
266 | 279 | "metadata": {}, |
267 | 280 | "outputs": [ |
268 | 281 | { |
269 | 282 | "data": { |
270 | 283 | "text/plain": [ |
271 | | - "array([ 2.03219939, 2.5261983 , 1.9998798 , 2.53002688, 1.51648434,\n", |
272 | | - " 1.50259231, 2.52335528, 2.01688269, 1.51448427, 2.52317579])" |
| 284 | + "array([1.49974605, 2.02193707, 1.50243998, 1.50058702, 2.01839346,\n", |
| 285 | + " 2.02086515, 1.49905775, 1.50216495, 1.52005248, 1.5156712 ])" |
273 | 286 | ] |
274 | 287 | }, |
275 | | - "execution_count": 11, |
| 288 | + "execution_count": 12, |
276 | 289 | "metadata": {}, |
277 | 290 | "output_type": "execute_result" |
278 | 291 | } |
|
336 | 349 | "name": "python", |
337 | 350 | "nbconvert_exporter": "python", |
338 | 351 | "pygments_lexer": "ipython3", |
339 | | - "version": "3.6.3" |
| 352 | + "version": "3.6.6" |
340 | 353 | } |
341 | 354 | }, |
342 | 355 | "nbformat": 4, |
|
0 commit comments