.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/03_connectivity/plot_simulated_connectome.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_03_connectivity_plot_simulated_connectome.py: Connectivity structure estimation on simulated data =================================================== This example shows a comparison of graph lasso and group-sparse covariance estimation of connectivity structure for a synthetic dataset. .. GENERATED FROM PYTHON SOURCE LINES 9-12 .. code-block:: Python from nilearn import plotting .. GENERATED FROM PYTHON SOURCE LINES 13-14 Generate synthetic data .. GENERATED FROM PYTHON SOURCE LINES 14-26 .. code-block:: Python from nilearn._utils.data_gen import generate_group_sparse_gaussian_graphs n_subjects = 20 n_displayed = 3 subjects, precisions, _ = generate_group_sparse_gaussian_graphs( n_subjects=n_subjects, n_features=10, min_n_samples=30, max_n_samples=50, density=0.1, ) .. GENERATED FROM PYTHON SOURCE LINES 27-28 Run connectome estimations and plot the results .. GENERATED FROM PYTHON SOURCE LINES 28-112 .. code-block:: Python import matplotlib.pyplot as plt fig = plt.figure(figsize=(10, 7)) plt.subplots_adjust(hspace=0.4) for n in range(n_displayed): ax = plt.subplot(n_displayed, 4, 4 * n + 1) max_precision = precisions[n].max() plotting.plot_matrix( precisions[n], vmin=-max_precision, vmax=max_precision, axes=ax, colorbar=False, ) if n == 0: plt.title("ground truth") plt.ylabel(f"subject {int(n)}") # Run group-sparse covariance on all subjects from nilearn.connectome import GroupSparseCovarianceCV gsc = GroupSparseCovarianceCV(max_iter=50, verbose=1) gsc.fit(subjects) for n in range(n_displayed): ax = plt.subplot(n_displayed, 4, 4 * n + 2) max_precision = gsc.precisions_[..., n].max() plotting.plot_matrix( gsc.precisions_[..., n], axes=ax, vmin=-max_precision, vmax=max_precision, colorbar=False, ) if n == 0: plt.title(f"group-sparse\n$\\alpha={gsc.alpha_:.2f}$") # Fit one graph lasso per subject try: from sklearn.covariance import GraphicalLassoCV except ImportError: # for Scitkit-Learn < v0.20.0 from sklearn.covariance import GraphLassoCV as GraphicalLassoCV gl = GraphicalLassoCV(verbose=1) for n, subject in enumerate(subjects[:n_displayed]): gl.fit(subject) ax = plt.subplot(n_displayed, 4, 4 * n + 3) max_precision = gl.precision_.max() plotting.plot_matrix( gl.precision_, axes=ax, vmin=-max_precision, vmax=max_precision, colorbar=False, ) if n == 0: plt.title("graph lasso") plt.ylabel(f"$\\alpha={gl.alpha_:.2f}$") # Fit one graph lasso for all subjects at once import numpy as np gl.fit(np.concatenate(subjects)) ax = plt.subplot(n_displayed, 4, 4) max_precision = gl.precision_.max() plotting.plot_matrix( gl.precision_, axes=ax, vmin=-max_precision, vmax=max_precision, colorbar=False, ) plt.title(f"graph lasso, all subjects\n$\\alpha={gl.alpha_:.2f}$") plotting.show() .. image-sg:: /auto_examples/03_connectivity/images/sphx_glr_plot_simulated_connectome_001.png :alt: ground truth, group-sparse $\alpha=0.03$, graph lasso, graph lasso, all subjects $\alpha=0.02$ :srcset: /auto_examples/03_connectivity/images/sphx_glr_plot_simulated_connectome_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none [GroupSparseCovarianceCV.fit] [GroupSparseCovarianceCV] Done refinement 0 out of 4 [GroupSparseCovarianceCV.fit] [GroupSparseCovarianceCV] Done refinement 1 out of 4 [GroupSparseCovarianceCV.fit] [GroupSparseCovarianceCV] Done refinement 2 out of 4 [GroupSparseCovarianceCV.fit] [GroupSparseCovarianceCV] Done refinement 3 out of 4 [GroupSparseCovarianceCV.fit] Final optimization /home/himanshu/Desktop/nilearn_work/nilearn/nilearn/connectome/group_sparse_cov.py:267: UserWarning: input signals do not all have unit variance. This can lead to numerical instability. warnings.warn( [GraphicalLassoCV] Done refinement 1 out of 4: 0s [GraphicalLassoCV] Done refinement 2 out of 4: 0s [GraphicalLassoCV] Done refinement 3 out of 4: 0s [GraphicalLassoCV] Done refinement 4 out of 4: 0s [GraphicalLassoCV] Done refinement 1 out of 4: 0s [GraphicalLassoCV] Done refinement 2 out of 4: 0s [GraphicalLassoCV] Done refinement 3 out of 4: 0s [GraphicalLassoCV] Done refinement 4 out of 4: 0s [GraphicalLassoCV] Done refinement 1 out of 4: 0s [GraphicalLassoCV] Done refinement 2 out of 4: 0s [GraphicalLassoCV] Done refinement 3 out of 4: 0s [GraphicalLassoCV] Done refinement 4 out of 4: 0s [GraphicalLassoCV] Done refinement 1 out of 4: 0s [GraphicalLassoCV] Done refinement 2 out of 4: 0s [GraphicalLassoCV] Done refinement 3 out of 4: 0s [GraphicalLassoCV] Done refinement 4 out of 4: 0s .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 4.029 seconds) **Estimated memory usage:** 9 MB .. _sphx_glr_download_auto_examples_03_connectivity_plot_simulated_connectome.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/nilearn/nilearn/0.10.4?urlpath=lab/tree/notebooks/auto_examples/03_connectivity/plot_simulated_connectome.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_simulated_connectome.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_simulated_connectome.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_