Note
Go to the end to download the full example code
8.7. Run junifer and julearn.#
This example uses a ParcelAggregation marker to compute the mean of each parcel using the Schaefer parcellation (100 rois, 7 Yeo networks) for a 3D nifti to extract some features for machine learning using julearn to predict some other data.
Authors: Leonard Sasse, Sami Hamdan, Nicolas Nieto, Synchon Mandal
License: BSD 3 clause
import tempfile
import nilearn
import pandas as pd
from julearn import run_cross_validation, PipelineCreator
import junifer.testing.registry # noqa: F401
from junifer.api import collect, run
from junifer.storage.sqlite import SQLiteFeatureStorage
from junifer.utils import configure_logging
Set the logging level to info to see extra information:
configure_logging(level="INFO")
2024-02-09 10:28:08,063 - JUNIFER - INFO - ===== Lib Versions =====
2024-02-09 10:28:08,063 - JUNIFER - INFO - numpy: 1.26.4
2024-02-09 10:28:08,063 - JUNIFER - INFO - scipy: 1.11.4
2024-02-09 10:28:08,063 - JUNIFER - INFO - pandas: 2.1.4
2024-02-09 10:28:08,063 - JUNIFER - INFO - nilearn: 0.10.2
2024-02-09 10:28:08,063 - JUNIFER - INFO - nibabel: 5.2.0
2024-02-09 10:28:08,063 - JUNIFER - INFO - junifer: 0.0.4.dev565
2024-02-09 10:28:08,063 - JUNIFER - INFO - ========================
Define the markers you want:
marker_dicts = [
{
"name": "Schaefer100x17_TrimMean80",
"kind": "ParcelAggregation",
"parcellation": "Schaefer100x17",
"method": "trim_mean",
"method_params": {"proportiontocut": 0.2},
},
{
"name": "Schaefer200x17_Mean",
"kind": "ParcelAggregation",
"parcellation": "Schaefer200x17",
"method": "mean",
},
]
Define target and confounds for julearn machine learning:
Load the VBM phenotype data for machine learning data: - Fetch the Oasis dataset
oasis_dataset = nilearn.datasets.fetch_oasis_vbm()
age = oasis_dataset.ext_vars[y][:10]
sex = (
pd.Series(oasis_dataset.ext_vars["mf"][:10])
.map(lambda x: 1 if x == "F" else 0)
.values
)
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/nilearn/datasets/struct.py:852: UserWarning: `legacy_format` will default to `False` in release 0.11. Dataset fetchers will then return pandas dataframes by default instead of recarrays.
warnings.warn(_LEGACY_FORMAT_MSG)
Create a temporary directory for junifer feature extraction:
with tempfile.TemporaryDirectory() as tmpdir:
storage = {"kind": "SQLiteFeatureStorage", "uri": f"{tmpdir}/test.sqlite"}
# run the defined junifer feature extraction pipeline
run(
workdir="/tmp",
datagrabber={"kind": "OasisVBMTestingDataGrabber"},
markers=marker_dicts,
storage=storage,
)
# read in extracted features and add confounds and targets
# for julearn run cross validation
collect(storage)
db = SQLiteFeatureStorage(uri=storage["uri"])
df_vbm = db.read_df(feature_name="VBM_GM_Schaefer200x17_Mean")
oasis_subjects = [x[0] for x in df_vbm.index]
df_vbm.index = oasis_subjects
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/nilearn/datasets/struct.py:852: UserWarning: `legacy_format` will default to `False` in release 0.11. Dataset fetchers will then return pandas dataframes by default instead of recarrays.
warnings.warn(_LEGACY_FORMAT_MSG)
2024-02-09 10:28:08,083 - JUNIFER - INFO - Getting element sub-01
2024-02-09 10:28:08,083 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:08,083 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0001_MR1/mwrc1OAS1_0001_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:08,083 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:08,084 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:08,084 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:08,084 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:08,084 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:08,084 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:08,084 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:08,084 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:08,086 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:08,742 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:08,780 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:08,780 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:08,780 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:08,780 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:08,780 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:08,781 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:08,781 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:08,782 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:09,451 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:09,511 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:09,511 - JUNIFER - INFO - Getting element sub-02
2024-02-09 10:28:09,511 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:09,511 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0002_MR1/mwrc1OAS1_0002_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:09,511 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:09,512 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:09,512 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:09,512 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:09,512 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:09,512 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:09,512 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:09,512 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:09,514 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:10,174 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:10,213 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:10,213 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:10,213 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:10,213 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:10,213 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:10,213 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:10,213 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:10,215 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:10,902 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:10,962 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:10,962 - JUNIFER - INFO - Getting element sub-03
2024-02-09 10:28:10,962 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:10,962 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0003_MR1/mwrc1OAS1_0003_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:10,962 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:10,963 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:10,963 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:10,963 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:10,964 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:10,964 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:10,964 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:10,964 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:10,965 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:11,650 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:11,688 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:11,688 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:11,689 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:11,689 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:11,689 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:11,689 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:11,689 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:11,690 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:12,374 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:12,432 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:12,432 - JUNIFER - INFO - Getting element sub-04
2024-02-09 10:28:12,432 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:12,433 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0004_MR1/mwrc1OAS1_0004_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:12,433 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:12,434 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:12,434 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:12,434 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:12,434 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:12,434 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:12,434 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:12,434 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:12,435 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:13,110 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:13,149 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:13,149 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:13,149 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:13,149 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:13,149 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:13,149 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:13,149 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:13,151 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:13,822 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:13,882 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:13,882 - JUNIFER - INFO - Getting element sub-05
2024-02-09 10:28:13,882 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:13,882 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0005_MR1/mwrc1OAS1_0005_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:13,882 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:13,883 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:13,883 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:13,883 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:13,884 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:13,884 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:13,884 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:13,884 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:13,885 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:14,564 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:14,602 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:14,602 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:14,603 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:14,603 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:14,603 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:14,603 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:14,603 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:14,604 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:15,288 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:15,348 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:15,348 - JUNIFER - INFO - Getting element sub-06
2024-02-09 10:28:15,348 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:15,348 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0006_MR1/mwrc1OAS1_0006_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:15,348 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:15,349 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:15,349 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:15,349 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:15,349 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:15,349 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:15,350 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:15,350 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:15,351 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:16,013 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:16,051 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:16,051 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:16,052 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:16,052 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:16,052 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:16,052 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:16,052 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:16,053 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:16,765 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:16,826 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:16,826 - JUNIFER - INFO - Getting element sub-07
2024-02-09 10:28:16,826 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:16,826 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0007_MR1/mwrc1OAS1_0007_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:16,826 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:16,827 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:16,827 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:16,827 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:16,827 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:16,827 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:16,827 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:16,827 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:16,829 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:17,508 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:17,549 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:17,549 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:17,549 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:17,549 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:17,549 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:17,549 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:17,549 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:17,551 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:18,223 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:18,283 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:18,283 - JUNIFER - INFO - Getting element sub-08
2024-02-09 10:28:18,284 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:18,284 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0009_MR1/mwrc1OAS1_0009_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:18,284 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:18,285 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:18,285 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:18,285 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:18,285 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:18,285 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:18,285 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:18,285 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:18,286 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:18,960 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:18,998 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:18,998 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:18,998 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:18,998 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:18,998 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:18,998 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:18,998 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:19,000 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:19,673 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:19,732 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:19,732 - JUNIFER - INFO - Getting element sub-09
2024-02-09 10:28:19,732 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:19,732 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0010_MR1/mwrc1OAS1_0010_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:19,732 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:19,733 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:19,733 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:19,733 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:19,733 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:19,733 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:19,733 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:19,733 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:19,735 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:20,437 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:20,478 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:20,478 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:20,478 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:20,478 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:20,478 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:20,478 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:20,478 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:20,480 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:21,174 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:21,232 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:21,232 - JUNIFER - INFO - Getting element sub-10
2024-02-09 10:28:21,232 - JUNIFER - INFO - Fitting pipeline
2024-02-09 10:28:21,233 - JUNIFER - INFO - Reading VBM_GM from /home/runner/nilearn_data/oasis1/OAS1_0011_MR1/mwrc1OAS1_0011_MR1_mpr_anon_fslswapdim_bet.nii.gz
2024-02-09 10:28:21,233 - JUNIFER - INFO - VBM_GM is type NIFTI
2024-02-09 10:28:21,234 - JUNIFER - INFO - Fitting marker Schaefer100x17_TrimMean80
2024-02-09 10:28:21,234 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:21,234 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:21,234 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:21,234 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:21,234 - JUNIFER - INFO - n_rois: 100
2024-02-09 10:28:21,234 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:21,235 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:21,903 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:21,941 - JUNIFER - INFO - Fitting marker Schaefer200x17_Mean
2024-02-09 10:28:21,942 - JUNIFER - INFO - Computing VBM_GM
2024-02-09 10:28:21,942 - JUNIFER - INFO - Fetching one of Schaefer parcellations.
2024-02-09 10:28:21,942 - JUNIFER - INFO - Parcellation parameters:
2024-02-09 10:28:21,942 - JUNIFER - INFO - resolution: 2.0
2024-02-09 10:28:21,942 - JUNIFER - INFO - n_rois: 200
2024-02-09 10:28:21,942 - JUNIFER - INFO - yeo_networks: 17
2024-02-09 10:28:21,943 - JUNIFER - INFO - Loading parcellation /home/runner/junifer/data/parcellations/schaefer_2018/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_2mm.nii.gz
2024-02-09 10:28:22,619 - JUNIFER - INFO - Storing in <SQLiteFeatureStorage @ /tmp/tmp4snpe0gk/test.sqlite (multiple output)>
2024-02-09 10:28:22,676 - JUNIFER - INFO - Marker collection fitting done
2024-02-09 10:28:22,676 - JUNIFER - INFO - Collecting data using SQLiteFeatureStorage
2024-02-09 10:28:22,677 - JUNIFER - INFO - Collecting data from /tmp/tmp4snpe0gk/*test.sqlite
file: 0it [00:00, ?it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 12.77it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 12.75it/s]
file: 1it [00:00, 5.90it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.01it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.98it/s]
file: 2it [00:00, 6.20it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.78it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.75it/s]
file: 3it [00:00, 6.26it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 7.89it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 7.88it/s]
file: 4it [00:00, 4.95it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.94it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.91it/s]
file: 5it [00:00, 5.38it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.16it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.13it/s]
file: 6it [00:01, 5.71it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.98it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 13.95it/s]
file: 7it [00:01, 5.92it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.07it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.04it/s]
file: 8it [00:01, 6.07it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 7.91it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 7.90it/s]
file: 9it [00:01, 5.09it/s]
feature: 0%| | 0/2 [00:00<?, ?it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.03it/s]
feature: 100%|██████████| 2/2 [00:00<00:00, 14.00it/s]
file: 10it [00:01, 5.44it/s]
file: 10it [00:01, 5.57it/s]
2024-02-09 10:28:24,473 - JUNIFER - INFO - Collect done
Using julearn for machine learning: We predict the age given our vbm features and sex as a confound.
X = list(df_vbm.columns)
df_vbm[y] = age
df_vbm[confound] = sex
X_types = {
"features": X,
"confound": confound,
}
creator = PipelineCreator(problem_type="regression", apply_to="features")
creator.add("zscore", apply_to=["features", "confound"])
creator.add("confound_removal", apply_to="features", confounds="confound")
creator.add("ridge")
scores = run_cross_validation(
X=X + [confound],
y=y,
X_types=X_types,
data=df_vbm,
model=creator,
cv=3,
)
print(scores)
fit_time score_time ... fold cv_mdsum
0 0.160528 0.022687 ... 0 509497eb21da473048117e0c6704d3ea
1 0.158221 0.022446 ... 1 509497eb21da473048117e0c6704d3ea
2 0.156487 0.022393 ... 2 509497eb21da473048117e0c6704d3ea
[3 rows x 8 columns]
Interpretation of results: Doing machine learning with only 10 datapoints is not meaningful. This explains the big variation in scores for different cross-validation folds.
Total running time of the script: (0 minutes 17.139 seconds)