Skip to content

Instantly share code, notes, and snippets.

@agramfort
Created August 4, 2017 07:31
Show Gist options
  • Save agramfort/a3e3139a1f64315885c923a57e541e7a to your computer and use it in GitHub Desktop.
Save agramfort/a3e3139a1f64315885c923a57e541e7a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Automatically created module for IPython interactive environment\n"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"from nilearn.plotting import plot_stat_map\n",
"from nilearn.image import index_img\n",
"\n",
"from mne.datasets import sample\n",
"from mne import read_evokeds\n",
"from mne.minimum_norm import apply_inverse, read_inverse_operator\n",
"\n",
"print(__doc__)\n",
"\n",
"data_path = sample.data_path()\n",
"fname_inv = data_path + '/MEG/sample/sample_audvis-meg-vol-7-meg-inv.fif'\n",
"fname_evoked = data_path + '/MEG/sample/sample_audvis-ave.fif'\n",
"\n",
"snr = 3.0\n",
"lambda2 = 1.0 / snr ** 2\n",
"method = \"dSPM\" # use dSPM method (could also be MNE or sLORETA)\n",
"\n",
"# Load data\n",
"evoked = read_evokeds(fname_evoked, condition=0, baseline=(None, 0))\n",
"inverse_operator = read_inverse_operator(fname_inv)\n",
"src = inverse_operator['src']\n",
"\n",
"# Compute inverse solution\n",
"stc = apply_inverse(evoked.crop(0., 0.), inverse_operator, lambda2, method)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3757, 1)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stc.data.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import mne\n",
"\n",
"data = (1 + np.arange(len(stc.data)))[:, np.newaxis]\n",
"stc_tmp = mne.VolSourceEstimate(data, stc.vertices, tmin=0., tstep=1., subject=stc.subject)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x109f014a8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116965f60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Export result as a 4D nifti object\n",
"img = stc_tmp.as_volume(src, mri_resolution=False)\n",
"\n",
"img_data = img.get_data()[:, :, :, 0]\n",
"img_data.shape\n",
"\n",
"plt.imshow(img_data[15])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.feature_extraction import grid_to_graph\n",
"graph = grid_to_graph?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"graph = grid_to_graph"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"graph = grid_to_graph"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(21, 26, 24)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"img_data.shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"graph = grid_to_graph(*img_data.shape, mask=(img_data != 0))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3757, 3757)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"graph.shape"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3757"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(img_data != 0)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment