Repository: mne-tools/mne-python

Issue:
ENH: add precomputed fwd operator for somato?
I am working on IR schemes for TF-MxNE in #5075. The benefits of this solver are best shown on data where the sources contains a mix of transient and slow activations, eg in somato data. For this reason, in the example I plan to add in my PR, I'd like to work on somato instead of sample. 

Currently the forward solution is not stored and has to be computed, which would make the example long to run and less specific about irTFMxNE.

Would it be possible to add the forward solution to the data in the somato dataset, as it is the case in sample ? If so, what is the way to go?


Discussion:
This is possible depending on the increase in file size. For forward it can be large but would be worth it IMO. Same process would apply for #4184 and other "dataset-update" requests:

1. Download dataset
2. Extract
3. Add file
4. Compress
5. Upload to `osf.io` (@agramfort can give you upload permissions, or share the file with me or him and we can do it)
6. Open PR to update hash in `mne/datasets/utils.py`
7. Test that the download works on new PR
8. Update any tutorials / examples as necessary
Thanks for the detailed answer, I'll do it.
The .fif file is 46.9 MB. Is the name `somato-meg-oct-6-fwd.fif` OK ?
I've shared it on dropbox with @larsoner and @agramfort, i'll add the tar.gz file

The new  `MNE-somato-data.tar.gz` is 655 MB (was 589 MB) > am I compressing right ?
I used `tar -zcvf` to compress the directory.

Resolving patch:
diff --git a/mne/datasets/utils.py b/mne/datasets/utils.py
--- a/mne/datasets/utils.py
+++ b/mne/datasets/utils.py
@@ -313,7 +313,7 @@ def _data_path(path=None, force_update=False, update_path=True, download=True,
         fake='3194e9f7b46039bb050a74f3e1ae9908',
         misc='d822a720ef94302467cb6ad1d320b669',
         sample='fc2d5b9eb0a144b1d6ba84dc3b983602',
-        somato='f3e3a8441477bb5bacae1d0c6e0964fb',
+        somato='77a7601948c9e38d2da52446e2eab10f',
         spm='9f43f67150e3b694b523a21eb929ea75',
         testing='e3ac9a1a56f9b5864020008bc58bd729',
         multimodal='26ec847ae9ab80f58f204d09e2c08367',
diff --git a/tutorials/plot_sensors_time_frequency.py b/tutorials/plot_sensors_time_frequency.py
--- a/tutorials/plot_sensors_time_frequency.py
+++ b/tutorials/plot_sensors_time_frequency.py
@@ -64,7 +64,7 @@
 
 f, ax = plt.subplots()
 psds, freqs = psd_multitaper(epochs, fmin=2, fmax=40, n_jobs=1)
-psds = 10 * np.log10(psds)
+psds = 10. * np.log10(psds)
 psds_mean = psds.mean(0).mean(0)
 psds_std = psds.mean(0).std(0)
 
@@ -76,11 +76,11 @@
 plt.show()
 
 ###############################################################################
-# Time-frequency analysis: power and intertrial coherence
+# Time-frequency analysis: power and inter-trial coherence
 # -------------------------------------------------------
 #
 # We now compute time-frequency representations (TFRs) from our Epochs.
-# We'll look at power and intertrial coherence (ITC).
+# We'll look at power and inter-trial coherence (ITC).
 #
 # To this we'll use the function :func:`mne.time_frequency.tfr_morlet`
 # but you can also use :func:`mne.time_frequency.tfr_multitaper`
@@ -98,7 +98,7 @@
 #
 # .. note::
 #     The generated figures are interactive. In the topo you can click
-#     on an image to visualize the data for one censor.
+#     on an image to visualize the data for one sensor.
 #     You can also select a portion in the time-frequency plane to
 #     obtain a topomap for a certain time-frequency region.
 power.plot_topo(baseline=(-0.5, 0), mode='logratio', title='Average power')
@@ -139,5 +139,5 @@
 # Exercise
 # --------
 #
-#    - Visualize the intertrial coherence values as topomaps as done with
+#    - Visualize the inter-trial coherence values as topomaps as done with
 #      power.


Test patch: