diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle index 36dff56f..1161f7a2 100644 Binary files a/doc/build/doctrees/environment.pickle and b/doc/build/doctrees/environment.pickle differ diff --git a/doc/build/doctrees/pages/HBR_NormativeModel_FCONdata_Tutorial.doctree b/doc/build/doctrees/pages/HBR_NormativeModel_FCONdata_Tutorial.doctree index 9d6a3ddb..b1c2b183 100644 Binary files a/doc/build/doctrees/pages/HBR_NormativeModel_FCONdata_Tutorial.doctree and b/doc/build/doctrees/pages/HBR_NormativeModel_FCONdata_Tutorial.doctree differ diff --git a/doc/build/doctrees/pages/normative_modelling_walkthrough.doctree b/doc/build/doctrees/pages/normative_modelling_walkthrough.doctree index 81b62378..d8cdc849 100644 Binary files a/doc/build/doctrees/pages/normative_modelling_walkthrough.doctree and b/doc/build/doctrees/pages/normative_modelling_walkthrough.doctree differ diff --git a/doc/build/html/_sources/pages/HBR_NormativeModel_FCONdata_Tutorial.rst.txt b/doc/build/html/_sources/pages/HBR_NormativeModel_FCONdata_Tutorial.rst.txt index 55d17eb8..b4fa2dfb 100644 --- a/doc/build/html/_sources/pages/HBR_NormativeModel_FCONdata_Tutorial.rst.txt +++ b/doc/build/html/_sources/pages/HBR_NormativeModel_FCONdata_Tutorial.rst.txt @@ -25,110 +25,6 @@ Step 0: Install necessary libraries & grab data files !pip install pcntoolkit !pip install nutpie - -.. parsed-literal:: - - Collecting https://github.com/amarquand/PCNtoolkit/archive/dev.zip - Downloading https://github.com/amarquand/PCNtoolkit/archive/dev.zip -  \ 64.9 MB 15.9 MB/s 0:00:05 - [?25h Installing build dependencies ... [?25l[?25hdone - Getting requirements to build wheel ... [?25l[?25hdone - Preparing metadata (pyproject.toml) ... [?25l[?25hdone - Collecting bspline<0.2.0,>=0.1.1 (from pcntoolkit==0.31.0) - Downloading bspline-0.1.1.tar.gz (84 kB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.2/84.2 kB 2.3 MB/s eta 0:00:00 - [?25h Preparing metadata (setup.py) ... [?25l[?25hdone - Collecting matplotlib<4.0.0,>=3.9.2 (from pcntoolkit==0.31.0) - Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB) - Requirement already satisfied: nibabel<6.0.0,>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.3.2) - Requirement already satisfied: numpy<2.0,>=1.26 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.26.4) - Requirement already satisfied: pymc<6.0.0,>=5.18.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.18.0) - Requirement already satisfied: scikit-learn<2.0.0,>=1.5.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.5.2) - Requirement already satisfied: scipy<2.0,>=1.12 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.13.1) - Requirement already satisfied: seaborn<0.14.0,>=0.13.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (0.13.2) - Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.16.0) - Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.3.1) - Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (0.12.1) - Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (4.54.1) - Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.4.7) - Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (24.2) - Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (11.0.0) - Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (3.2.0) - Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (2.8.2) - Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (6.4.5) - Requirement already satisfied: typing-extensions>=4.6 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (4.12.2) - Requirement already satisfied: arviz>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.20.0) - Requirement already satisfied: cachetools>=4.2.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (5.5.0) - Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.1.0) - Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.2.2) - Requirement already satisfied: pytensor<2.26,>=2.25.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.25.5) - Requirement already satisfied: rich>=13.7.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (13.9.4) - Requirement already satisfied: threadpoolctl<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.5.0) - Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.5.2->pcntoolkit==0.31.0) (1.4.2) - Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (75.1.0) - Requirement already satisfied: xarray>=2022.6.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.10.0) - Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.4.1) - Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.8.0) - Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2) - Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2) - Requirement already satisfied: filelock>=3.15 in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.16.1) - Requirement already satisfied: etuples in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.3.9) - Requirement already satisfied: logical-unification in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6) - Requirement already satisfied: miniKanren in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.3) - Requirement already satisfied: cons in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6) - Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.0.0) - Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.18.0) - Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.12.1) - Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.1.2) - Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.12.1) - Requirement already satisfied: multipledispatch in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.0) - Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 55.1 MB/s eta 0:00:00 - [?25hBuilding wheels for collected packages: pcntoolkit, bspline - Building wheel for pcntoolkit (pyproject.toml) ... [?25l[?25hdone - Created wheel for pcntoolkit: filename=pcntoolkit-0.31.0-py3-none-any.whl size=114835 sha256=40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00 - Stored in directory: /tmp/pip-ephem-wheel-cache-f502unec/wheels/9e/c4/29/3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1e - Building wheel for bspline (setup.py) ... [?25l[?25hdone - Created wheel for bspline: filename=bspline-0.1.1-py3-none-any.whl size=84482 sha256=150d24f295ccda92c9789d421e52c3858d43c66874deec4a463a87b4e5533448 - Stored in directory: /root/.cache/pip/wheels/3c/ab/0a/70927853a6d9166bc777922736063a6f99c43a327c802f9326 - Successfully built pcntoolkit bspline - Installing collected packages: bspline, matplotlib, pcntoolkit - Attempting uninstall: matplotlib - Found existing installation: matplotlib 3.8.0 - Uninstalling matplotlib-3.8.0: - Successfully uninstalled matplotlib-3.8.0 - Successfully installed bspline-0.1.1 matplotlib-3.9.2 pcntoolkit-0.31.0 - Collecting nutpie - Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (5.4 kB) - Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (17.0.0) - Requirement already satisfied: pandas>=2.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2.2.2) - Requirement already satisfied: xarray>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2024.10.0) - Requirement already satisfied: arviz>=0.15.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (0.20.0) - Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (75.1.0) - Requirement already satisfied: matplotlib>=3.5 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (3.9.2) - Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.26.4) - Requirement already satisfied: scipy>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.13.1) - Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (24.2) - Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.4.1) - Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (4.12.2) - Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (0.8.0) - Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2.8.2) - Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2) - Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2) - Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.15.0->nutpie) (3.12.1) - Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.3.1) - Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (0.12.1) - Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (4.54.1) - Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.4.7) - Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (11.0.0) - Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (3.2.0) - Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0->nutpie) (1.16.0) - Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.5 MB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 16.5 MB/s eta 0:00:00 - [?25hInstalling collected packages: nutpie - Successfully installed nutpie-0.13.2 - - For this tutorial we will use data from the `Functional Connectom Project FCON1000 `__ to create a multi-site dataset. @@ -149,7 +45,7 @@ First we import the required package, and create a working directory. .. code:: ipython3 - processing_dir = "HBR_demo" # replace with desired working directory + processing_dir = "HBR_demo" # replace with desired working directory if not os.path.isdir(processing_dir): os.makedirs(processing_dir) os.chdir(processing_dir) @@ -165,415 +61,33 @@ color coded by the various sites: .. code:: ipython3 - fcon = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv') + fcon = pd.read_csv( + "https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv" + ) # extract the ICBM site for transfer - icbm = fcon.loc[fcon['site'] == 'ICBM'] - icbm['sitenum'] = 0 + icbm = fcon.loc[fcon["site"] == "ICBM"] + icbm["sitenum"] = 0 # remove from the training set (also Pittsburgh because it only has 3 samples) - fcon = fcon.loc[fcon['site'] != 'ICBM'] - fcon = fcon.loc[fcon['site'] != 'Pittsburgh'] + fcon = fcon.loc[fcon["site"] != "ICBM"] + fcon = fcon.loc[fcon["site"] != "Pittsburgh"] - sites = fcon['site'].unique() - fcon['sitenum'] = 0 + sites = fcon["site"].unique() + fcon["sitenum"] = 0 f, ax = plt.subplots(figsize=(12, 12)) - for i,s in enumerate(sites): - idx = fcon['site'] == s - fcon['sitenum'].loc[idx] = i + for i, s in enumerate(sites): + idx = fcon["site"] == s + fcon["sitenum"].loc[idx] = i - print('site',s, sum(idx)) - ax.scatter(fcon['age'].loc[idx], fcon['lh_MeanThickness_thickness'].loc[idx]) + print("site", s, sum(idx)) + ax.scatter(fcon["age"].loc[idx], fcon["lh_MeanThickness_thickness"].loc[idx]) ax.legend(sites) - ax.set_ylabel('LH mean cortical thickness [mm]') - ax.set_xlabel('age') - - - -.. parsed-literal:: - - :5: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame. - Try using .loc[row_indexer,col_indexer] = value instead - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - icbm['sitenum'] = 0 - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - - -.. parsed-literal:: - - site AnnArbor_a 24 - site AnnArbor_b 32 - site Atlanta 28 - site Baltimore 23 - site Bangor 20 - site Beijing_Zang 198 - site Berlin_Margulies 26 - site Cambridge_Buckner 198 - site Cleveland 31 - site Leiden_2180 12 - site Leiden_2200 19 - site Milwaukee_b 46 - site Munchen 15 - site NewYork_a 83 - site NewYork_a_ADHD 25 - site Newark 19 - site Oulu 102 - site Oxford 22 - site PaloAlto 17 - site Queensland 19 - site SaintLouis 31 - - - - -.. parsed-literal:: - - Text(0.5, 0, 'age') - - - - -.. image:: HBR_NormativeModel_FCONdata_Tutorial_files/HBR_NormativeModel_FCONdata_Tutorial_10_3.png + ax.set_ylabel("LH mean cortical thickness [mm]") + ax.set_xlabel("age") Step 1: Prepare training and testing sets @@ -601,53 +115,26 @@ then displayed. icbm_tr = icbm.loc[tr] icbm_te = icbm.loc[te] - print('sample size check') - for i,s in enumerate(sites): - idx = fcon_tr['site'] == s - idxte = fcon_te['site'] == s - print(i,s, sum(idx), sum(idxte)) + print("sample size check") + for i, s in enumerate(sites): + idx = fcon_tr["site"] == s + idxte = fcon_te["site"] == s + print(i, s, sum(idx), sum(idxte)) - fcon_tr.to_csv(processing_dir + '/fcon1000_tr.csv') - fcon_te.to_csv(processing_dir + '/fcon1000_te.csv') - icbm_tr.to_csv(processing_dir + '/fcon1000_icbm_tr.csv') - icbm_te.to_csv(processing_dir + '/fcon1000_icbm_te.csv') - - -.. parsed-literal:: - - sample size check - 0 AnnArbor_a 10 14 - 1 AnnArbor_b 19 13 - 2 Atlanta 12 16 - 3 Baltimore 12 11 - 4 Bangor 10 10 - 5 Beijing_Zang 91 107 - 6 Berlin_Margulies 9 17 - 7 Cambridge_Buckner 96 102 - 8 Cleveland 13 18 - 9 Leiden_2180 5 7 - 10 Leiden_2200 11 8 - 11 Milwaukee_b 18 28 - 12 Munchen 9 6 - 13 NewYork_a 38 45 - 14 NewYork_a_ADHD 15 10 - 15 Newark 9 10 - 16 Oulu 50 52 - 17 Oxford 9 13 - 18 PaloAlto 8 9 - 19 Queensland 10 9 - 20 SaintLouis 18 13 - + fcon_tr.to_csv(processing_dir + "/fcon1000_tr.csv") + fcon_te.to_csv(processing_dir + "/fcon1000_te.csv") + icbm_tr.to_csv(processing_dir + "/fcon1000_icbm_tr.csv") + icbm_te.to_csv(processing_dir + "/fcon1000_icbm_te.csv") Otherwise you can just load these pre defined subsets: .. code:: ipython3 # Optional - #fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv') - #fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv') - #icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv') - #icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv') + # fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv') + # fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv') + # icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv') + # icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv') Step 2: Configure HBR inputs: covariates, measures and batch effects -------------------------------------------------------------------- @@ -657,7 +144,7 @@ hemisphere: two idps. .. code:: ipython3 - idps = ['rh_MeanThickness_thickness','lh_MeanThickness_thickness'] + idps = ["rh_MeanThickness_thickness", "lh_MeanThickness_thickness"] As input to the model, we need covariates (used to describe predictable source of variability (fixed effects), here ‘age’), measures (here @@ -675,592 +162,79 @@ testing set (``_test``). .. code:: ipython3 - X_train = (fcon_tr['age']/100).to_numpy(dtype=float) + X_train = (fcon_tr["age"] / 100).to_numpy(dtype=float) Y_train = fcon_tr[idps].to_numpy(dtype=float) # configure batch effects for site and sex - #batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int) + # batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int) # or only site - batch_effects_train = fcon_tr[['sitenum']].to_numpy(dtype=int) + batch_effects_train = fcon_tr[["sitenum"]].to_numpy(dtype=int) - with open('X_train.pkl', 'wb') as file: + with open("X_train.pkl", "wb") as file: pickle.dump(pd.DataFrame(X_train), file) - with open('Y_train.pkl', 'wb') as file: + with open("Y_train.pkl", "wb") as file: pickle.dump(pd.DataFrame(Y_train), file) - with open('trbefile.pkl', 'wb') as file: + with open("trbefile.pkl", "wb") as file: pickle.dump(pd.DataFrame(batch_effects_train), file) - X_test = (fcon_te['age']/100).to_numpy(dtype=float) + X_test = (fcon_te["age"] / 100).to_numpy(dtype=float) Y_test = fcon_te[idps].to_numpy(dtype=float) - #batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int) - batch_effects_test = fcon_te[['sitenum']].to_numpy(dtype=int) + # batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int) + batch_effects_test = fcon_te[["sitenum"]].to_numpy(dtype=int) - with open('X_test.pkl', 'wb') as file: + with open("X_test.pkl", "wb") as file: pickle.dump(pd.DataFrame(X_test), file) - with open('Y_test.pkl', 'wb') as file: + with open("Y_test.pkl", "wb") as file: pickle.dump(pd.DataFrame(Y_test), file) - with open('tsbefile.pkl', 'wb') as file: + with open("tsbefile.pkl", "wb") as file: pickle.dump(pd.DataFrame(batch_effects_test), file) + # a simple function to quickly load pickle files def ldpkl(filename: str): - with open(filename, 'rb') as f: + with open(filename, "rb") as f: return pickle.load(f) .. code:: ipython3 batch_effects_test - - - -.. parsed-literal:: - - array([[ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [10], - [10], - [10], - [10], - [10], - [10], - [10], - [10], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [12], - [12], - [12], - [12], - [12], - [12], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20]]) - - - Step 3: Files and Folders grooming ---------------------------------- .. code:: ipython3 - respfile = os.path.join(processing_dir, 'Y_train.pkl') # measurements (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects) - covfile = os.path.join(processing_dir, 'X_train.pkl') # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects) - - testrespfile_path = os.path.join(processing_dir, 'Y_test.pkl') # measurements for the testing samples - testcovfile_path = os.path.join(processing_dir, 'X_test.pkl') # covariate file for the testing samples - - trbefile = os.path.join(processing_dir, 'trbefile.pkl') # training batch effects file (eg scanner_id, gender) (columns: the various batch effects, rows: observations or subjects) - tsbefile = os.path.join(processing_dir, 'tsbefile.pkl') # testing batch effects file - - output_path = os.path.join(processing_dir, 'Models/') # output path, where the models will be written - log_dir = os.path.join(processing_dir, 'log/') # + respfile = os.path.join( + processing_dir, "Y_train.pkl" + ) # measurements (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects) + covfile = os.path.join( + processing_dir, "X_train.pkl" + ) # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects) + + testrespfile_path = os.path.join( + processing_dir, "Y_test.pkl" + ) # measurements for the testing samples + testcovfile_path = os.path.join( + processing_dir, "X_test.pkl" + ) # covariate file for the testing samples + + trbefile = os.path.join( + processing_dir, "trbefile.pkl" + ) # training batch effects file (eg scanner_id, gender) (columns: the various batch effects, rows: observations or subjects) + tsbefile = os.path.join(processing_dir, "tsbefile.pkl") # testing batch effects file + + output_path = os.path.join( + processing_dir, "Models/" + ) # output path, where the models will be written + log_dir = os.path.join(processing_dir, "log/") # if not os.path.isdir(output_path): os.mkdir(output_path) if not os.path.isdir(log_dir): os.mkdir(log_dir) - outputsuffix = '_estimate' # a string to name the output files, of use only to you, so adapt it for your needs. + outputsuffix = "_estimate" # a string to name the output files, of use only to you, so adapt it for your needs. Step 4: Estimating the models ----------------------------- @@ -1275,403 +249,26 @@ and output files will be written and how they will be named. .. code:: ipython3 - ptk.normative.estimate(covfile=covfile, - respfile=respfile, - tsbefile=tsbefile, - trbefile=trbefile, - inscaler='standardize', - outscaler='standardize', - linear_mu='True', - random_intercept_mu='True', - centered_intercept_mu='True', - alg='hbr', - log_path=log_dir, - binary=True, - output_path=output_path, - testcov= testcovfile_path, - testresp = testrespfile_path, - outputsuffix=outputsuffix, - savemodel=True, - nuts_sampler='nutpie') - - -.. parsed-literal:: - - inscaler: standardize - outscaler: standardize - Processing data in /content/HBR_demo/Y_train.pkl - Estimating model 1 of 2 - - - -.. raw:: html - - - - - - - -.. raw:: html - - -
-

Sampler Progress

-

Total Chains: 1

-

Active Chains: 0

-

- Finished Chains: - 1 -

-

Sampling for now

-

- Estimated Time to Completion: - now -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressDrawsDivergencesStep SizeGradients/Draw
- - - 150000.3415
-
- - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -

-
-
-
-
-.. parsed-literal::
-
-    Output()
-
-
-.. parsed-literal::
-
-    Normal
-
-
-
-.. raw:: html
-
-    

-
-
-
-.. parsed-literal::
-
-    Estimating model  2 of 2
-
-
-
-.. raw:: html
-
-    
-    
-
-
-
-
-.. raw:: html
-
-    
-    
-

Sampler Progress

-

Total Chains: 1

-

Active Chains: 0

-

- Finished Chains: - 1 -

-

Sampling for now

-

- Estimated Time to Completion: - now -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressDrawsDivergencesStep SizeGradients/Draw
- - - 150000.3315
-
- - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -

-
-
-
-.. parsed-literal::
-
-    Normal
-
-
-
-.. parsed-literal::
-
-    Output()
-
-
-
-.. raw:: html
-
-    

-
-
-
-.. parsed-literal::
-
-    Saving model meta-data...
-    Evaluating the model ...
-    Writing outputs ...
-
+    ptk.normative.estimate(
+        covfile=covfile,
+        respfile=respfile,
+        tsbefile=tsbefile,
+        trbefile=trbefile,
+        inscaler="standardize",
+        outscaler="standardize",
+        linear_mu="True",
+        random_intercept_mu="True",
+        centered_intercept_mu="True",
+        alg="hbr",
+        log_path=log_dir,
+        binary=True,
+        output_path=output_path,
+        testcov=testcovfile_path,
+        testresp=testrespfile_path,
+        outputsuffix=outputsuffix,
+        savemodel=True,
+        nuts_sampler="nutpie",
+    )
 
 Here some analyses can be done, there are also some error metrics that
 could be of interest. This is covered in step 6 and in `Saige’s
@@ -1687,45 +284,49 @@ training and testing set of covariates, measures and batch effects:
 
 .. code:: ipython3
 
-    X_adapt = (icbm_tr['age']/100).to_numpy(dtype=float)
+    X_adapt = (icbm_tr["age"] / 100).to_numpy(dtype=float)
     Y_adapt = icbm_tr[idps].to_numpy(dtype=float)
-    #batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
-    batch_effects_adapt = icbm_tr[['sitenum']].to_numpy(dtype=int)
+    # batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
+    batch_effects_adapt = icbm_tr[["sitenum"]].to_numpy(dtype=int)
     
-    with open('X_adaptation.pkl', 'wb') as file:
+    with open("X_adaptation.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_adapt), file)
-    with open('Y_adaptation.pkl', 'wb') as file:
+    with open("Y_adaptation.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_adapt), file)
-    with open('adbefile.pkl', 'wb') as file:
+    with open("adbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_adapt), file)
     
     # Test data (new dataset)
-    X_test_txfr = (icbm_te['age']/100).to_numpy(dtype=float)
+    X_test_txfr = (icbm_te["age"] / 100).to_numpy(dtype=float)
     Y_test_txfr = icbm_te[idps].to_numpy(dtype=float)
-    #batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
-    batch_effects_test_txfr = icbm_te[['sitenum']].to_numpy(dtype=int)
+    # batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
+    batch_effects_test_txfr = icbm_te[["sitenum"]].to_numpy(dtype=int)
     
-    with open('X_test_txfr.pkl', 'wb') as file:
+    with open("X_test_txfr.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_test_txfr), file)
-    with open('Y_test_txfr.pkl', 'wb') as file:
+    with open("Y_test_txfr.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_test_txfr), file)
-    with open('txbefile.pkl', 'wb') as file:
+    with open("txbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_test_txfr), file)
 
 
 .. code:: ipython3
 
-    respfile = os.path.join(processing_dir, 'Y_adaptation.pkl')
-    covfile = os.path.join(processing_dir, 'X_adaptation.pkl')
-    testrespfile_path = os.path.join(processing_dir, 'Y_test_txfr.pkl')
-    testcovfile_path = os.path.join(processing_dir, 'X_test_txfr.pkl')
-    trbefile = os.path.join(processing_dir, 'adbefile.pkl')
-    tsbefile = os.path.join(processing_dir, 'txbefile.pkl')
-    
-    log_dir = os.path.join(processing_dir, 'log_transfer/')
-    output_path = os.path.join(processing_dir, 'Transfer/')
-    model_path = os.path.join(processing_dir, 'Models/')  # path to the previously trained models
-    outputsuffix = '_transfer'  # suffix added to the output files from the transfer function
+    respfile = os.path.join(processing_dir, "Y_adaptation.pkl")
+    covfile = os.path.join(processing_dir, "X_adaptation.pkl")
+    testrespfile_path = os.path.join(processing_dir, "Y_test_txfr.pkl")
+    testcovfile_path = os.path.join(processing_dir, "X_test_txfr.pkl")
+    trbefile = os.path.join(processing_dir, "adbefile.pkl")
+    tsbefile = os.path.join(processing_dir, "txbefile.pkl")
+    
+    log_dir = os.path.join(processing_dir, "log_transfer/")
+    output_path = os.path.join(processing_dir, "Transfer/")
+    model_path = os.path.join(
+        processing_dir, "Models/"
+    )  # path to the previously trained models
+    outputsuffix = (
+        "_transfer"  # suffix added to the output files from the transfer function
+    )
 
 Here, the difference is that the transfer function needs a model path,
 which points to the models we just trained, and new site data (training
@@ -1733,394 +334,37 @@ and testing). That is basically the only difference.
 
 .. code:: ipython3
 
-    yhat, s2, z_scores = ptk.normative.transfer(covfile=covfile,
-                                                respfile=respfile,
-                                                tsbefile=tsbefile,
-                                                trbefile=trbefile,
-                                                inscaler='standardize',
-                                                outscaler='standardize',
-                                                linear_mu='True',
-                                                random_intercept_mu='True',
-                                                centered_intercept_mu='True',
-                                                model_path = model_path,
-                                                alg='hbr',
-                                                log_path=log_dir,
-                                                binary=True,
-                                                output_path=output_path,
-                                                testcov= testcovfile_path,
-                                                testresp = testrespfile_path,
-                                                outputsuffix=outputsuffix,
-                                                savemodel=True,
-                                                nuts_sampler='nutpie')
-
-
-.. parsed-literal::
-
-    Loading data ...
-    Using HBR transform...
-    Transferring model  1 of 2
-
-
-
-.. raw:: html
-
-    
-    
-
-
-
-
-.. raw:: html
-
-    
-    
-

Sampler Progress

-

Total Chains: 1

-

Active Chains: 0

-

- Finished Chains: - 1 -

-

Sampling for now

-

- Estimated Time to Completion: - now -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressDrawsDivergencesStep SizeGradients/Draw
- - - 150020.477
-
- - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -

-
-
-
-.. parsed-literal::
-
-    Using HBR transform...
-    Transferring model  2 of 2
-
-
-
-.. raw:: html
-
-    
-    
-
-
-
-
-.. raw:: html
-
-    
-    
-

Sampler Progress

-

Total Chains: 1

-

Active Chains: 0

-

- Finished Chains: - 1 -

-

Sampling for now

-

- Estimated Time to Completion: - now -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressDrawsDivergencesStep SizeGradients/Draw
- - - 150010.4015
-
- - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -

-
-
-
-.. parsed-literal::
-
-    Evaluating the model ...
-    Writing outputs ...
-
+    yhat, s2, z_scores = ptk.normative.transfer(
+        covfile=covfile,
+        respfile=respfile,
+        tsbefile=tsbefile,
+        trbefile=trbefile,
+        inscaler="standardize",
+        outscaler="standardize",
+        linear_mu="True",
+        random_intercept_mu="True",
+        centered_intercept_mu="True",
+        model_path=model_path,
+        alg="hbr",
+        log_path=log_dir,
+        binary=True,
+        output_path=output_path,
+        testcov=testcovfile_path,
+        testresp=testrespfile_path,
+        outputsuffix=outputsuffix,
+        savemodel=True,
+        nuts_sampler="nutpie",
+    )
 
 .. code:: ipython3
 
     output_path
 
-
-
-
-.. parsed-literal::
-
-    '/content/HBR_demo/Transfer/'
-
-
-
 .. code:: ipython3
 
-    EV = pd.read_pickle('EXPV_estimate.pkl')
+    EV = pd.read_pickle("EXPV_estimate.pkl")
     print(EV)
 
-
-.. parsed-literal::
-
-              0
-    0  0.438215
-    1  0.439181
-
-
 And that is it, you now have models that benefited from prior knowledge
 about different scanner sites to learn on unseen sites.
 
diff --git a/doc/build/html/_sources/pages/normative_modelling_walkthrough.rst.txt b/doc/build/html/_sources/pages/normative_modelling_walkthrough.rst.txt
index 61a297a7..5bbc326e 100644
--- a/doc/build/html/_sources/pages/normative_modelling_walkthrough.rst.txt
+++ b/doc/build/html/_sources/pages/normative_modelling_walkthrough.rst.txt
@@ -42,109 +42,6 @@ bad if you cannot complete everything during the tutorial.
     !pip install nutpie
 
 
-.. parsed-literal::
-
-    Collecting https://github.com/amarquand/PCNtoolkit/archive/dev.zip
-      Downloading https://github.com/amarquand/PCNtoolkit/archive/dev.zip
-         \ 64.9 MB 16.9 MB/s 0:00:05
-    [?25h  Installing build dependencies ... [?25l[?25hdone
-      Getting requirements to build wheel ... [?25l[?25hdone
-      Preparing metadata (pyproject.toml) ... [?25l[?25hdone
-    Collecting bspline<0.2.0,>=0.1.1 (from pcntoolkit==0.31.0)
-      Downloading bspline-0.1.1.tar.gz (84 kB)
-         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.2/84.2 kB 2.0 MB/s eta 0:00:00
-    [?25h  Preparing metadata (setup.py) ... [?25l[?25hdone
-    Collecting matplotlib<4.0.0,>=3.9.2 (from pcntoolkit==0.31.0)
-      Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
-    Requirement already satisfied: nibabel<6.0.0,>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.3.2)
-    Requirement already satisfied: numpy<2.0,>=1.26 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.26.4)
-    Requirement already satisfied: pymc<6.0.0,>=5.18.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.18.0)
-    Requirement already satisfied: scikit-learn<2.0.0,>=1.5.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.5.2)
-    Requirement already satisfied: scipy<2.0,>=1.12 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.13.1)
-    Requirement already satisfied: seaborn<0.14.0,>=0.13.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (0.13.2)
-    Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.16.0)
-    Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.3.1)
-    Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (0.12.1)
-    Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (4.54.1)
-    Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.4.7)
-    Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (24.2)
-    Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (11.0.0)
-    Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (3.2.0)
-    Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (2.8.2)
-    Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (6.4.5)
-    Requirement already satisfied: typing-extensions>=4.6 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (4.12.2)
-    Requirement already satisfied: arviz>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.20.0)
-    Requirement already satisfied: cachetools>=4.2.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (5.5.0)
-    Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.1.0)
-    Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.2.2)
-    Requirement already satisfied: pytensor<2.26,>=2.25.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.25.5)
-    Requirement already satisfied: rich>=13.7.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (13.9.4)
-    Requirement already satisfied: threadpoolctl<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.5.0)
-    Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.5.2->pcntoolkit==0.31.0) (1.4.2)
-    Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (75.1.0)
-    Requirement already satisfied: xarray>=2022.6.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.10.0)
-    Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.4.1)
-    Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.8.0)
-    Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
-    Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
-    Requirement already satisfied: filelock>=3.15 in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.16.1)
-    Requirement already satisfied: etuples in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.3.9)
-    Requirement already satisfied: logical-unification in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
-    Requirement already satisfied: miniKanren in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.3)
-    Requirement already satisfied: cons in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
-    Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.0.0)
-    Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.18.0)
-    Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.12.1)
-    Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.1.2)
-    Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.12.1)
-    Requirement already satisfied: multipledispatch in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.0)
-    Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
-       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 37.7 MB/s eta 0:00:00
-    [?25hBuilding wheels for collected packages: pcntoolkit, bspline
-      Building wheel for pcntoolkit (pyproject.toml) ... [?25l[?25hdone
-      Created wheel for pcntoolkit: filename=pcntoolkit-0.31.0-py3-none-any.whl size=114835 sha256=40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00
-      Stored in directory: /tmp/pip-ephem-wheel-cache-nl3hy35q/wheels/9e/c4/29/3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1e
-      Building wheel for bspline (setup.py) ... [?25l[?25hdone
-      Created wheel for bspline: filename=bspline-0.1.1-py3-none-any.whl size=84482 sha256=1da013ad20b77d85515a6a2318eaf7cc4baaa7772eb1d26249f923ce8d779d7e
-      Stored in directory: /root/.cache/pip/wheels/3c/ab/0a/70927853a6d9166bc777922736063a6f99c43a327c802f9326
-    Successfully built pcntoolkit bspline
-    Installing collected packages: bspline, matplotlib, pcntoolkit
-      Attempting uninstall: matplotlib
-        Found existing installation: matplotlib 3.8.0
-        Uninstalling matplotlib-3.8.0:
-          Successfully uninstalled matplotlib-3.8.0
-    Successfully installed bspline-0.1.1 matplotlib-3.9.2 pcntoolkit-0.31.0
-    Collecting nutpie
-      Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
-    Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (17.0.0)
-    Requirement already satisfied: pandas>=2.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2.2.2)
-    Requirement already satisfied: xarray>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2024.10.0)
-    Requirement already satisfied: arviz>=0.15.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (0.20.0)
-    Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (75.1.0)
-    Requirement already satisfied: matplotlib>=3.5 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (3.9.2)
-    Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.26.4)
-    Requirement already satisfied: scipy>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.13.1)
-    Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (24.2)
-    Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.4.1)
-    Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (4.12.2)
-    Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (0.8.0)
-    Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2.8.2)
-    Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
-    Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
-    Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.15.0->nutpie) (3.12.1)
-    Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.3.1)
-    Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (0.12.1)
-    Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (4.54.1)
-    Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.4.7)
-    Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (11.0.0)
-    Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (3.2.0)
-    Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0->nutpie) (1.16.0)
-    Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.5 MB)
-       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 9.5 MB/s eta 0:00:00
-    [?25hInstalling collected packages: nutpie
-    Successfully installed nutpie-0.13.2
-
-
 **Option 1:** Connect your Google Drive account, and load data from
 Google Drive. Having Google Drive connected will allow you to save any
 files created back to your Drive folder. This step will require you to
@@ -177,54 +74,6 @@ them to Google Drive.
     # code by S. Rutherford
 
 
-.. parsed-literal::
-
-    --2024-11-19 12:28:31--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_demographics.csv
-    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
-    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
-    HTTP request sent, awaiting response... 200 OK
-    Length: 17484 (17K) [text/plain]
-    Saving to: ‘camcan_demographics.csv’
-    
-    camcan_demographics 100%[===================>]  17.07K  --.-KB/s    in 0.003s  
-    
-    2024-11-19 12:28:31 (5.14 MB/s) - ‘camcan_demographics.csv’ saved [17484/17484]
-    
-    --2024-11-19 12:28:31--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_demographics_nordan.csv
-    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
-    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
-    HTTP request sent, awaiting response... 200 OK
-    Length: 332 [text/plain]
-    Saving to: ‘camcan_demographics_nordan.csv’
-    
-    camcan_demographics 100%[===================>]     332  --.-KB/s    in 0s      
-    
-    2024-11-19 12:28:32 (4.10 MB/s) - ‘camcan_demographics_nordan.csv’ saved [332/332]
-    
-    --2024-11-19 12:28:32--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_features.csv
-    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ...
-    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
-    HTTP request sent, awaiting response... 200 OK
-    Length: 188944 (185K) [text/plain]
-    Saving to: ‘camcan_features.csv’
-    
-    camcan_features.csv 100%[===================>] 184.52K  --.-KB/s    in 0.05s   
-    
-    2024-11-19 12:28:33 (3.58 MB/s) - ‘camcan_features.csv’ saved [188944/188944]
-    
-    --2024-11-19 12:28:33--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_features_nordan.csv
-    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
-    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
-    HTTP request sent, awaiting response... 200 OK
-    Length: 1695 (1.7K) [text/plain]
-    Saving to: ‘camcan_features_nordan.csv’
-    
-    camcan_features_nor 100%[===================>]   1.66K  --.-KB/s    in 0s      
-    
-    2024-11-19 12:28:33 (22.1 MB/s) - ‘camcan_features_nordan.csv’ saved [1695/1695]
-    
-
-
 **TASK 1:** Format input data
 -----------------------------
 
@@ -268,203 +117,6 @@ between those two files.
     # code by T. Wolfers
 
 
-.. parsed-literal::
-
-                 age sex_name  sex  IQ_random
-    paricipants                              
-    CC110033      24     MALE    1         73
-    CC110037      18     MALE    1        103
-    CC110045      24   FEMALE    0        124
-    CC110056      22   FEMALE    0        124
-    CC110062      20     MALE    1        126
-    ...          ...      ...  ...        ...
-    CC722542      79     MALE    1        116
-    CC722651      79   FEMALE    0        128
-    CC722891      84   FEMALE    0        129
-    CC723197      80   FEMALE    0         96
-    CC723395      86   FEMALE    0        145
-    
-    [707 rows x 4 columns]
-                  left_Hippocampal_tail  left_subiculum    left_CA1  \
-    participants                                                      
-    CC110033                 482.768229      419.948094  666.496024   
-    CC110037                 595.269259      502.320315  698.157779   
-    CC110045                 655.847194      476.433625  654.215689   
-    CC110056                 561.345626      447.258970  611.114561   
-    CC110062                 756.521166      521.034681  716.391590   
-    ...                             ...             ...         ...   
-    CC722542                 467.896808      440.794061  688.130914   
-    CC722651                 406.326167      393.469843  613.794018   
-    CC722891                 393.430481      303.049578  444.772656   
-    CC723197                 475.929914      372.449778  525.739508   
-    CC723395                 444.301617      330.688394  565.359058   
-    
-                  left_hippocampal-fissure  left_presubiculum  left_parasubiculum  \
-    participants                                                                    
-    CC110033                    131.719049         285.535445           59.209377   
-    CC110037                    156.304335         367.678385           60.817591   
-    CC110045                    146.767569         346.347202           67.481121   
-    CC110056                    126.615335         327.528926           70.901227   
-    CC110062                    206.205818         384.356075           80.329689   
-    ...                                ...                ...                 ...   
-    CC722542                    184.300085         306.287030           72.629722   
-    CC722651                    224.292557         254.786917           50.006651   
-    CC722891                    158.987352         202.213773           46.418129   
-    CC723197                    172.558200         222.384434           40.304889   
-    CC723395                    206.235576         197.417773           34.240227   
-    
-                  left_molecular_layer_HP  left_GC-ML-DG    left_CA3    left_CA4  \
-    participants                                                                   
-    CC110033                   583.239022     313.144932  223.022262  266.801434   
-    CC110037                   619.053381     311.428298  192.949211  260.551999   
-    CC110045                   622.037178     322.315065  204.756048  275.428880   
-    CC110056                   597.467595     323.777115  233.160437  278.133998   
-    CC110062                   666.590397     364.130988  253.917949  311.079938   
-    ...                               ...            ...         ...         ...   
-    CC722542                   597.823380     322.236056  252.159707  275.293551   
-    CC722651                   558.060369     322.176631  261.160474  282.029715   
-    CC722891                   384.798819     204.562530  149.220194  184.259996   
-    CC723197                   467.847632     262.950594  215.411133  232.938256   
-    CC723395                   470.969863     269.963160  234.219152  241.325755   
-    
-                  ...  right_hippocampal-fissure  right_presubiculum  \
-    participants  ...                                                  
-    CC110033      ...                 133.101613          263.829445   
-    CC110037      ...                 148.099481          339.309772   
-    CC110045      ...                 159.687619          324.398659   
-    CC110056      ...                 123.262352          290.196432   
-    CC110062      ...                 136.785201          406.323486   
-    ...           ...                        ...                 ...   
-    CC722542      ...                 147.391931          273.150743   
-    CC722651      ...                 185.053756          232.752897   
-    CC722891      ...                 140.980648          211.807774   
-    CC723197      ...                 213.080235          258.567312   
-    CC723395      ...                 205.934342          210.039976   
-    
-                  right_parasubiculum  right_molecular_layer_HP  right_GC-ML-DG  \
-    participants                                                                  
-    CC110033                47.651798                586.026640      328.057551   
-    CC110037                59.693186                617.448302      312.116795   
-    CC110045                55.738550                609.208671      314.460832   
-    CC110056                67.410418                569.389816      310.290805   
-    CC110062                80.403248                767.955163      383.194510   
-    ...                           ...                       ...             ...   
-    CC722542                50.874375                572.634593      302.504826   
-    CC722651                44.493903                533.912687      308.141458   
-    CC722891                57.371362                387.195124      199.979009   
-    CC723197                50.846316                481.409074      267.190903   
-    CC723395                33.216529                493.194601      274.020748   
-    
-                   right_CA3   right_CA4  right_fimbria  right_HATA  \
-    participants                                                      
-    CC110033      283.392837  282.565685      87.127463   73.589184   
-    CC110037      212.605572  269.307660      99.657823   60.920924   
-    CC110045      237.869822  271.505300      69.436808   59.323542   
-    CC110056      218.809310  267.327199      60.505521   51.726283   
-    CC110062      268.227177  325.403040      92.215816   85.484454   
-    ...                  ...         ...            ...         ...   
-    CC722542      236.946562  261.352283      46.144212   43.966509   
-    CC722651      247.810543  267.203989      68.730322   59.699644   
-    CC722891      146.836915  187.083211      27.913196   38.629828   
-    CC723197      211.618157  244.176755      51.893458   65.474967   
-    CC723395      232.592060  240.980896      68.335159   62.081225   
-    
-                  right_Whole_hippocampus  
-    participants                           
-    CC110033                  3531.764896  
-    CC110037                  3835.426137  
-    CC110045                  3681.494304  
-    CC110056                  3461.373764  
-    CC110062                  4782.407821  
-    ...                               ...  
-    CC722542                  3284.108783  
-    CC722651                  3210.272905  
-    CC722891                  2423.675065  
-    CC723197                  3043.146264  
-    CC723395                  2988.001288  
-    
-    [651 rows x 26 columns]
-              age sex_name  sex  IQ_random  left_Hippocampal_tail  left_subiculum  \
-    CC110033   24     MALE    1         73             482.768229      419.948094   
-    CC110037   18     MALE    1        103             595.269259      502.320315   
-    CC110045   24   FEMALE    0        124             655.847194      476.433625   
-    CC110056   22   FEMALE    0        124             561.345626      447.258970   
-    CC110062   20     MALE    1        126             756.521166      521.034681   
-    ...       ...      ...  ...        ...                    ...             ...   
-    CC722542   79     MALE    1        116             467.896808      440.794061   
-    CC722651   79   FEMALE    0        128             406.326167      393.469843   
-    CC722891   84   FEMALE    0        129             393.430481      303.049578   
-    CC723197   80   FEMALE    0         96             475.929914      372.449778   
-    CC723395   86   FEMALE    0        145             444.301617      330.688394   
-    
-                left_CA1  left_hippocampal-fissure  left_presubiculum  \
-    CC110033  666.496024                131.719049         285.535445   
-    CC110037  698.157779                156.304335         367.678385   
-    CC110045  654.215689                146.767569         346.347202   
-    CC110056  611.114561                126.615335         327.528926   
-    CC110062  716.391590                206.205818         384.356075   
-    ...              ...                       ...                ...   
-    CC722542  688.130914                184.300085         306.287030   
-    CC722651  613.794018                224.292557         254.786917   
-    CC722891  444.772656                158.987352         202.213773   
-    CC723197  525.739508                172.558200         222.384434   
-    CC723395  565.359058                206.235576         197.417773   
-    
-              left_parasubiculum  ...  right_hippocampal-fissure  \
-    CC110033           59.209377  ...                 133.101613   
-    CC110037           60.817591  ...                 148.099481   
-    CC110045           67.481121  ...                 159.687619   
-    CC110056           70.901227  ...                 123.262352   
-    CC110062           80.329689  ...                 136.785201   
-    ...                      ...  ...                        ...   
-    CC722542           72.629722  ...                 147.391931   
-    CC722651           50.006651  ...                 185.053756   
-    CC722891           46.418129  ...                 140.980648   
-    CC723197           40.304889  ...                 213.080235   
-    CC723395           34.240227  ...                 205.934342   
-    
-              right_presubiculum  right_parasubiculum  right_molecular_layer_HP  \
-    CC110033          263.829445            47.651798                586.026640   
-    CC110037          339.309772            59.693186                617.448302   
-    CC110045          324.398659            55.738550                609.208671   
-    CC110056          290.196432            67.410418                569.389816   
-    CC110062          406.323486            80.403248                767.955163   
-    ...                      ...                  ...                       ...   
-    CC722542          273.150743            50.874375                572.634593   
-    CC722651          232.752897            44.493903                533.912687   
-    CC722891          211.807774            57.371362                387.195124   
-    CC723197          258.567312            50.846316                481.409074   
-    CC723395          210.039976            33.216529                493.194601   
-    
-              right_GC-ML-DG   right_CA3   right_CA4  right_fimbria  right_HATA  \
-    CC110033      328.057551  283.392837  282.565685      87.127463   73.589184   
-    CC110037      312.116795  212.605572  269.307660      99.657823   60.920924   
-    CC110045      314.460832  237.869822  271.505300      69.436808   59.323542   
-    CC110056      310.290805  218.809310  267.327199      60.505521   51.726283   
-    CC110062      383.194510  268.227177  325.403040      92.215816   85.484454   
-    ...                  ...         ...         ...            ...         ...   
-    CC722542      302.504826  236.946562  261.352283      46.144212   43.966509   
-    CC722651      308.141458  247.810543  267.203989      68.730322   59.699644   
-    CC722891      199.979009  146.836915  187.083211      27.913196   38.629828   
-    CC723197      267.190903  211.618157  244.176755      51.893458   65.474967   
-    CC723395      274.020748  232.592060  240.980896      68.335159   62.081225   
-    
-              right_Whole_hippocampus  
-    CC110033              3531.764896  
-    CC110037              3835.426137  
-    CC110045              3681.494304  
-    CC110056              3461.373764  
-    CC110062              4782.407821  
-    ...                           ...  
-    CC722542              3284.108783  
-    CC722651              3210.272905  
-    CC722891              2423.675065  
-    CC723197              3043.146264  
-    CC723395              2988.001288  
-    
-    [650 rows x 30 columns]
-
-
 **TASK 2:** Prepare the covariate_normsample and testresponse_normsample file.
 ------------------------------------------------------------------------------
 
diff --git a/doc/build/html/pages/HBR_NormativeModel_FCONdata_Tutorial.html b/doc/build/html/pages/HBR_NormativeModel_FCONdata_Tutorial.html
index 9c7cd389..6364c591 100644
--- a/doc/build/html/pages/HBR_NormativeModel_FCONdata_Tutorial.html
+++ b/doc/build/html/pages/HBR_NormativeModel_FCONdata_Tutorial.html
@@ -23,7 +23,7 @@
     
     
     
-    
+    
      
 
 
@@ -80,7 +80,7 @@
 
 
 
-
  • Braincharts: transfer
  • +
  • Using lifespan models to make predictions on new data
  • Predictive Clinical Neuroscience Toolkit
  • The Normative Modeling Framework for Computational Psychiatry Protocol
  • Data Preparation
  • @@ -150,105 +150,6 @@

    Step 0: Install necessary libraries & grab data files!pip install nutpie -
    Collecting https://github.com/amarquand/PCNtoolkit/archive/dev.zip
    -  Downloading https://github.com/amarquand/PCNtoolkit/archive/dev.zip
    -      64.9 MB 15.9 MB/s 0:00:05
    -[?25h  Installing build dependencies ... [?25l[?25hdone
    -  Getting requirements to build wheel ... [?25l[?25hdone
    -  Preparing metadata (pyproject.toml) ... [?25l[?25hdone
    -Collecting bspline<0.2.0,>=0.1.1 (from pcntoolkit==0.31.0)
    -  Downloading bspline-0.1.1.tar.gz (84 kB)
    -     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.2/84.2 kB 2.3 MB/s eta 0:00:00
    -[?25h  Preparing metadata (setup.py) ... [?25l[?25hdone
    -Collecting matplotlib<4.0.0,>=3.9.2 (from pcntoolkit==0.31.0)
    -  Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
    -Requirement already satisfied: nibabel<6.0.0,>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.3.2)
    -Requirement already satisfied: numpy<2.0,>=1.26 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.26.4)
    -Requirement already satisfied: pymc<6.0.0,>=5.18.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.18.0)
    -Requirement already satisfied: scikit-learn<2.0.0,>=1.5.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.5.2)
    -Requirement already satisfied: scipy<2.0,>=1.12 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.13.1)
    -Requirement already satisfied: seaborn<0.14.0,>=0.13.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (0.13.2)
    -Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.16.0)
    -Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.3.1)
    -Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (0.12.1)
    -Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (4.54.1)
    -Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.4.7)
    -Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (24.2)
    -Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (11.0.0)
    -Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (3.2.0)
    -Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (2.8.2)
    -Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (6.4.5)
    -Requirement already satisfied: typing-extensions>=4.6 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (4.12.2)
    -Requirement already satisfied: arviz>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.20.0)
    -Requirement already satisfied: cachetools>=4.2.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (5.5.0)
    -Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.1.0)
    -Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.2.2)
    -Requirement already satisfied: pytensor<2.26,>=2.25.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.25.5)
    -Requirement already satisfied: rich>=13.7.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (13.9.4)
    -Requirement already satisfied: threadpoolctl<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.5.0)
    -Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.5.2->pcntoolkit==0.31.0) (1.4.2)
    -Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (75.1.0)
    -Requirement already satisfied: xarray>=2022.6.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.10.0)
    -Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.4.1)
    -Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.8.0)
    -Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
    -Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
    -Requirement already satisfied: filelock>=3.15 in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.16.1)
    -Requirement already satisfied: etuples in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.3.9)
    -Requirement already satisfied: logical-unification in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
    -Requirement already satisfied: miniKanren in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.3)
    -Requirement already satisfied: cons in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
    -Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.0.0)
    -Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.18.0)
    -Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.12.1)
    -Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.1.2)
    -Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.12.1)
    -Requirement already satisfied: multipledispatch in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.0)
    -Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
    -   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 55.1 MB/s eta 0:00:00
    -[?25hBuilding wheels for collected packages: pcntoolkit, bspline
    -  Building wheel for pcntoolkit (pyproject.toml) ... [?25l[?25hdone
    -  Created wheel for pcntoolkit: filename=pcntoolkit-0.31.0-py3-none-any.whl size=114835 sha256=40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00
    -  Stored in directory: /tmp/pip-ephem-wheel-cache-f502unec/wheels/9e/c4/29/3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1e
    -  Building wheel for bspline (setup.py) ... [?25l[?25hdone
    -  Created wheel for bspline: filename=bspline-0.1.1-py3-none-any.whl size=84482 sha256=150d24f295ccda92c9789d421e52c3858d43c66874deec4a463a87b4e5533448
    -  Stored in directory: /root/.cache/pip/wheels/3c/ab/0a/70927853a6d9166bc777922736063a6f99c43a327c802f9326
    -Successfully built pcntoolkit bspline
    -Installing collected packages: bspline, matplotlib, pcntoolkit
    -  Attempting uninstall: matplotlib
    -    Found existing installation: matplotlib 3.8.0
    -    Uninstalling matplotlib-3.8.0:
    -      Successfully uninstalled matplotlib-3.8.0
    -Successfully installed bspline-0.1.1 matplotlib-3.9.2 pcntoolkit-0.31.0
    -Collecting nutpie
    -  Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
    -Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (17.0.0)
    -Requirement already satisfied: pandas>=2.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2.2.2)
    -Requirement already satisfied: xarray>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2024.10.0)
    -Requirement already satisfied: arviz>=0.15.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (0.20.0)
    -Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (75.1.0)
    -Requirement already satisfied: matplotlib>=3.5 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (3.9.2)
    -Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.26.4)
    -Requirement already satisfied: scipy>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.13.1)
    -Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (24.2)
    -Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.4.1)
    -Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (4.12.2)
    -Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (0.8.0)
    -Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2.8.2)
    -Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
    -Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
    -Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.15.0->nutpie) (3.12.1)
    -Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.3.1)
    -Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (0.12.1)
    -Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (4.54.1)
    -Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.4.7)
    -Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (11.0.0)
    -Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (3.2.0)
    -Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0->nutpie) (1.16.0)
    -Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.5 MB)
    -   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 16.5 MB/s eta 0:00:00
    -[?25hInstalling collected packages: nutpie
    -Successfully installed nutpie-0.13.2

    For this tutorial we will use data from the Functional Connectom Project FCON1000 to create a multi-site dataset.

    @@ -263,7 +164,7 @@

    Step 0: Install necessary libraries & grab data filesfrom matplotlib import pyplot as plt -
    processing_dir = "HBR_demo"    # replace with desired working directory
    +
    processing_dir = "HBR_demo"  # replace with desired working directory
     if not os.path.isdir(processing_dir):
         os.makedirs(processing_dir)
     os.chdir(processing_dir)
    @@ -276,402 +177,35 @@ 

    Overview assign some site id to the different scanner sites and print an overview of the left hemisphere mean raw cortical thickness as a function of age, color coded by the various sites:

    -
    fcon = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv')
    +
    fcon = pd.read_csv(
    +    "https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv"
    +)
     
     # extract the ICBM site for transfer
    -icbm = fcon.loc[fcon['site'] == 'ICBM']
    -icbm['sitenum'] = 0
    +icbm = fcon.loc[fcon["site"] == "ICBM"]
    +icbm["sitenum"] = 0
     
     # remove from the training set (also Pittsburgh because it only has 3 samples)
    -fcon = fcon.loc[fcon['site'] != 'ICBM']
    -fcon = fcon.loc[fcon['site'] != 'Pittsburgh']
    +fcon = fcon.loc[fcon["site"] != "ICBM"]
    +fcon = fcon.loc[fcon["site"] != "Pittsburgh"]
     
    -sites = fcon['site'].unique()
    -fcon['sitenum'] = 0
    +sites = fcon["site"].unique()
    +fcon["sitenum"] = 0
     
     f, ax = plt.subplots(figsize=(12, 12))
     
    -for i,s in enumerate(sites):
    -    idx = fcon['site'] == s
    -    fcon['sitenum'].loc[idx] = i
    +for i, s in enumerate(sites):
    +    idx = fcon["site"] == s
    +    fcon["sitenum"].loc[idx] = i
     
    -    print('site',s, sum(idx))
    -    ax.scatter(fcon['age'].loc[idx], fcon['lh_MeanThickness_thickness'].loc[idx])
    +    print("site", s, sum(idx))
    +    ax.scatter(fcon["age"].loc[idx], fcon["lh_MeanThickness_thickness"].loc[idx])
     
     ax.legend(sites)
    -ax.set_ylabel('LH mean cortical thickness [mm]')
    -ax.set_xlabel('age')
    +ax.set_ylabel("LH mean cortical thickness [mm]")
    +ax.set_xlabel("age")
     
    -
    <ipython-input-4-a7d14b9f2beb>:5: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame.
    -Try using .loc[row_indexer,col_indexer] = value instead
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  icbm['sitenum'] = 0
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0!
    -You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy.
    -A typical example is when you are setting values in a column of a DataFrame, like:
    -
    -df["col"][row_indexer] = value
    -
    -Use df.loc[row_indexer, "col"] = values instead, to perform the assignment in a single step and ensure this keeps updating the original df.
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -
    -  fcon['sitenum'].loc[idx] = i
    -<ipython-input-4-a7d14b9f2beb>:18: SettingWithCopyWarning:
    -A value is trying to be set on a copy of a slice from a DataFrame
    -
    -See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    -  fcon['sitenum'].loc[idx] = i
    -
    site AnnArbor_a 24
    -site AnnArbor_b 32
    -site Atlanta 28
    -site Baltimore 23
    -site Bangor 20
    -site Beijing_Zang 198
    -site Berlin_Margulies 26
    -site Cambridge_Buckner 198
    -site Cleveland 31
    -site Leiden_2180 12
    -site Leiden_2200 19
    -site Milwaukee_b 46
    -site Munchen 15
    -site NewYork_a 83
    -site NewYork_a_ADHD 25
    -site Newark 19
    -site Oulu 102
    -site Oxford 22
    -site PaloAlto 17
    -site Queensland 19
    -site SaintLouis 31
    -
    -
    -
    Text(0.5, 0, 'age')
    -
    -
    -../_images/HBR_NormativeModel_FCONdata_Tutorial_10_3.png
    @@ -694,48 +228,24 @@

    Step 1: Prepare training and testing setsicbm_tr = icbm.loc[tr] icbm_te = icbm.loc[te] -print('sample size check') -for i,s in enumerate(sites): - idx = fcon_tr['site'] == s - idxte = fcon_te['site'] == s - print(i,s, sum(idx), sum(idxte)) +print("sample size check") +for i, s in enumerate(sites): + idx = fcon_tr["site"] == s + idxte = fcon_te["site"] == s + print(i, s, sum(idx), sum(idxte)) -fcon_tr.to_csv(processing_dir + '/fcon1000_tr.csv') -fcon_te.to_csv(processing_dir + '/fcon1000_te.csv') -icbm_tr.to_csv(processing_dir + '/fcon1000_icbm_tr.csv') -icbm_te.to_csv(processing_dir + '/fcon1000_icbm_te.csv') -

    -
    -
    sample size check
    -0 AnnArbor_a 10 14
    -1 AnnArbor_b 19 13
    -2 Atlanta 12 16
    -3 Baltimore 12 11
    -4 Bangor 10 10
    -5 Beijing_Zang 91 107
    -6 Berlin_Margulies 9 17
    -7 Cambridge_Buckner 96 102
    -8 Cleveland 13 18
    -9 Leiden_2180 5 7
    -10 Leiden_2200 11 8
    -11 Milwaukee_b 18 28
    -12 Munchen 9 6
    -13 NewYork_a 38 45
    -14 NewYork_a_ADHD 15 10
    -15 Newark 9 10
    -16 Oulu 50 52
    -17 Oxford 9 13
    -18 PaloAlto 8 9
    -19 Queensland 10 9
    -20 SaintLouis 18 13
    +fcon_tr.to_csv(processing_dir + "/fcon1000_tr.csv")
    +fcon_te.to_csv(processing_dir + "/fcon1000_te.csv")
    +icbm_tr.to_csv(processing_dir + "/fcon1000_icbm_tr.csv")
    +icbm_te.to_csv(processing_dir + "/fcon1000_icbm_te.csv")
     

    Otherwise you can just load these pre defined subsets:

    # Optional
    -#fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv')
    -#fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv')
    -#icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv')
    -#icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv')
    +# fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv')
    +# fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv')
    +# icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv')
    +# icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv')
     
    @@ -743,7 +253,7 @@

    Step 1: Prepare training and testing sets

    We will here only use the mean cortical thickness for the Right and Left hemisphere: two idps.

    -
    idps = ['rh_MeanThickness_thickness','lh_MeanThickness_thickness']
    +
    idps = ["rh_MeanThickness_thickness", "lh_MeanThickness_thickness"]
     

    As input to the model, we need covariates (used to describe predictable @@ -755,584 +265,77 @@

    Step 2: Configure HBR inputs: covariates, measures and batch effectsbatch_effects to the random effects

    We need these values both for the training (_train) and for the testing set (_test).

    -
    X_train = (fcon_tr['age']/100).to_numpy(dtype=float)
    +
    X_train = (fcon_tr["age"] / 100).to_numpy(dtype=float)
     Y_train = fcon_tr[idps].to_numpy(dtype=float)
     
     # configure batch effects for site and sex
    -#batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int)
    +# batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int)
     
     # or only site
    -batch_effects_train = fcon_tr[['sitenum']].to_numpy(dtype=int)
    +batch_effects_train = fcon_tr[["sitenum"]].to_numpy(dtype=int)
     
    -with open('X_train.pkl', 'wb') as file:
    +with open("X_train.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_train), file)
    -with open('Y_train.pkl', 'wb') as file:
    +with open("Y_train.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_train), file)
    -with open('trbefile.pkl', 'wb') as file:
    +with open("trbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_train), file)
     
     
    -X_test = (fcon_te['age']/100).to_numpy(dtype=float)
    +X_test = (fcon_te["age"] / 100).to_numpy(dtype=float)
     Y_test = fcon_te[idps].to_numpy(dtype=float)
    -#batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int)
    -batch_effects_test = fcon_te[['sitenum']].to_numpy(dtype=int)
    +# batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int)
    +batch_effects_test = fcon_te[["sitenum"]].to_numpy(dtype=int)
     
    -with open('X_test.pkl', 'wb') as file:
    +with open("X_test.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_test), file)
    -with open('Y_test.pkl', 'wb') as file:
    +with open("Y_test.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_test), file)
    -with open('tsbefile.pkl', 'wb') as file:
    +with open("tsbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_test), file)
     
    +
     # a simple function to quickly load pickle files
     def ldpkl(filename: str):
    -    with open(filename, 'rb') as f:
    +    with open(filename, "rb") as f:
             return pickle.load(f)
     
    batch_effects_test
     
    -
    array([[ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 0],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 1],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 2],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 3],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 4],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 5],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 6],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 7],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 8],
    -       [ 9],
    -       [ 9],
    -       [ 9],
    -       [ 9],
    -       [ 9],
    -       [ 9],
    -       [ 9],
    -       [10],
    -       [10],
    -       [10],
    -       [10],
    -       [10],
    -       [10],
    -       [10],
    -       [10],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [11],
    -       [12],
    -       [12],
    -       [12],
    -       [12],
    -       [12],
    -       [12],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [13],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [14],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [15],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [16],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [17],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [18],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [19],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20],
    -       [20]])
    -
    -

    Step 3: Files and Folders grooming

    -
    respfile = os.path.join(processing_dir, 'Y_train.pkl')       # measurements  (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects)
    -covfile = os.path.join(processing_dir, 'X_train.pkl')        # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects)
    -
    -testrespfile_path = os.path.join(processing_dir, 'Y_test.pkl')       # measurements  for the testing samples
    -testcovfile_path = os.path.join(processing_dir, 'X_test.pkl')        # covariate file for the testing samples
    -
    -trbefile = os.path.join(processing_dir, 'trbefile.pkl')      # training batch effects file (eg scanner_id, gender)  (columns: the various batch effects, rows: observations or subjects)
    -tsbefile = os.path.join(processing_dir, 'tsbefile.pkl')      # testing batch effects file
    -
    -output_path = os.path.join(processing_dir, 'Models/')    #  output path, where the models will be written
    -log_dir = os.path.join(processing_dir, 'log/')           #
    +
    respfile = os.path.join(
    +    processing_dir, "Y_train.pkl"
    +)  # measurements  (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects)
    +covfile = os.path.join(
    +    processing_dir, "X_train.pkl"
    +)  # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects)
    +
    +testrespfile_path = os.path.join(
    +    processing_dir, "Y_test.pkl"
    +)  # measurements  for the testing samples
    +testcovfile_path = os.path.join(
    +    processing_dir, "X_test.pkl"
    +)  # covariate file for the testing samples
    +
    +trbefile = os.path.join(
    +    processing_dir, "trbefile.pkl"
    +)  # training batch effects file (eg scanner_id, gender)  (columns: the various batch effects, rows: observations or subjects)
    +tsbefile = os.path.join(processing_dir, "tsbefile.pkl")  # testing batch effects file
    +
    +output_path = os.path.join(
    +    processing_dir, "Models/"
    +)  #  output path, where the models will be written
    +log_dir = os.path.join(processing_dir, "log/")  #
     if not os.path.isdir(output_path):
         os.mkdir(output_path)
     if not os.path.isdir(log_dir):
         os.mkdir(log_dir)
     
    -outputsuffix = '_estimate'      # a string to name the output files, of use only to you, so adapt it for your needs.
    +outputsuffix = "_estimate"  # a string to name the output files, of use only to you, so adapt it for your needs.
     
    @@ -1345,320 +348,26 @@

    Step 4: Estimating the models
    ptk.normative.estimate(covfile=covfile,
    -                       respfile=respfile,
    -                       tsbefile=tsbefile,
    -                       trbefile=trbefile,
    -                       inscaler='standardize',
    -                       outscaler='standardize',
    -                       linear_mu='True',
    -                       random_intercept_mu='True',
    -                       centered_intercept_mu='True',
    -                       alg='hbr',
    -                       log_path=log_dir,
    -                       binary=True,
    -                       output_path=output_path,
    -                       testcov= testcovfile_path,
    -                       testresp = testrespfile_path,
    -                       outputsuffix=outputsuffix,
    -                       savemodel=True,
    -                       nuts_sampler='nutpie')
    -
    -

    -
    inscaler: standardize
    -outscaler: standardize
    -Processing data in /content/HBR_demo/Y_train.pkl
    -Estimating model  1 of 2
    -
    -
    -
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150000.3415
    -
    Output()
    -
    -
    -
    Output()
    -
    -
    -
    Normal
    -
    -
    -
    Estimating model  2 of 2
    -
    -
    -
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150000.3315
    -
    Output()
    -
    -
    -
    Normal
    -
    -
    -
    Output()
    -
    -
    -
    Saving model meta-data...
    -Evaluating the model ...
    -Writing outputs ...
    +
    ptk.normative.estimate(
    +    covfile=covfile,
    +    respfile=respfile,
    +    tsbefile=tsbefile,
    +    trbefile=trbefile,
    +    inscaler="standardize",
    +    outscaler="standardize",
    +    linear_mu="True",
    +    random_intercept_mu="True",
    +    centered_intercept_mu="True",
    +    alg="hbr",
    +    log_path=log_dir,
    +    binary=True,
    +    output_path=output_path,
    +    testcov=testcovfile_path,
    +    testresp=testrespfile_path,
    +    outputsuffix=outputsuffix,
    +    savemodel=True,
    +    nuts_sampler="nutpie",
    +)
     

    Here some analyses can be done, there are also some error metrics that @@ -1671,367 +380,82 @@

    Step 5: Transfering the models to unseen sites
    X_adapt = (icbm_tr['age']/100).to_numpy(dtype=float)
    +
    X_adapt = (icbm_tr["age"] / 100).to_numpy(dtype=float)
     Y_adapt = icbm_tr[idps].to_numpy(dtype=float)
    -#batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
    -batch_effects_adapt = icbm_tr[['sitenum']].to_numpy(dtype=int)
    +# batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
    +batch_effects_adapt = icbm_tr[["sitenum"]].to_numpy(dtype=int)
     
    -with open('X_adaptation.pkl', 'wb') as file:
    +with open("X_adaptation.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_adapt), file)
    -with open('Y_adaptation.pkl', 'wb') as file:
    +with open("Y_adaptation.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_adapt), file)
    -with open('adbefile.pkl', 'wb') as file:
    +with open("adbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_adapt), file)
     
     # Test data (new dataset)
    -X_test_txfr = (icbm_te['age']/100).to_numpy(dtype=float)
    +X_test_txfr = (icbm_te["age"] / 100).to_numpy(dtype=float)
     Y_test_txfr = icbm_te[idps].to_numpy(dtype=float)
    -#batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
    -batch_effects_test_txfr = icbm_te[['sitenum']].to_numpy(dtype=int)
    +# batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
    +batch_effects_test_txfr = icbm_te[["sitenum"]].to_numpy(dtype=int)
     
    -with open('X_test_txfr.pkl', 'wb') as file:
    +with open("X_test_txfr.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(X_test_txfr), file)
    -with open('Y_test_txfr.pkl', 'wb') as file:
    +with open("Y_test_txfr.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(Y_test_txfr), file)
    -with open('txbefile.pkl', 'wb') as file:
    +with open("txbefile.pkl", "wb") as file:
         pickle.dump(pd.DataFrame(batch_effects_test_txfr), file)
     
    -
    respfile = os.path.join(processing_dir, 'Y_adaptation.pkl')
    -covfile = os.path.join(processing_dir, 'X_adaptation.pkl')
    -testrespfile_path = os.path.join(processing_dir, 'Y_test_txfr.pkl')
    -testcovfile_path = os.path.join(processing_dir, 'X_test_txfr.pkl')
    -trbefile = os.path.join(processing_dir, 'adbefile.pkl')
    -tsbefile = os.path.join(processing_dir, 'txbefile.pkl')
    +
    respfile = os.path.join(processing_dir, "Y_adaptation.pkl")
    +covfile = os.path.join(processing_dir, "X_adaptation.pkl")
    +testrespfile_path = os.path.join(processing_dir, "Y_test_txfr.pkl")
    +testcovfile_path = os.path.join(processing_dir, "X_test_txfr.pkl")
    +trbefile = os.path.join(processing_dir, "adbefile.pkl")
    +tsbefile = os.path.join(processing_dir, "txbefile.pkl")
     
    -log_dir = os.path.join(processing_dir, 'log_transfer/')
    -output_path = os.path.join(processing_dir, 'Transfer/')
    -model_path = os.path.join(processing_dir, 'Models/')  # path to the previously trained models
    -outputsuffix = '_transfer'  # suffix added to the output files from the transfer function
    +log_dir = os.path.join(processing_dir, "log_transfer/")
    +output_path = os.path.join(processing_dir, "Transfer/")
    +model_path = os.path.join(
    +    processing_dir, "Models/"
    +)  # path to the previously trained models
    +outputsuffix = (
    +    "_transfer"  # suffix added to the output files from the transfer function
    +)
     

    Here, the difference is that the transfer function needs a model path, which points to the models we just trained, and new site data (training and testing). That is basically the only difference.

    -
    yhat, s2, z_scores = ptk.normative.transfer(covfile=covfile,
    -                                            respfile=respfile,
    -                                            tsbefile=tsbefile,
    -                                            trbefile=trbefile,
    -                                            inscaler='standardize',
    -                                            outscaler='standardize',
    -                                            linear_mu='True',
    -                                            random_intercept_mu='True',
    -                                            centered_intercept_mu='True',
    -                                            model_path = model_path,
    -                                            alg='hbr',
    -                                            log_path=log_dir,
    -                                            binary=True,
    -                                            output_path=output_path,
    -                                            testcov= testcovfile_path,
    -                                            testresp = testrespfile_path,
    -                                            outputsuffix=outputsuffix,
    -                                            savemodel=True,
    -                                            nuts_sampler='nutpie')
    -
    -
    -
    Loading data ...
    -Using HBR transform...
    -Transferring model  1 of 2
    -
    -
    -
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150020.477
    -
    Output()
    -
    -
    -
    Using HBR transform...
    -Transferring model  2 of 2
    -
    -
    -
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150010.4015
    -
    Output()
    -
    -
    -
    Evaluating the model ...
    -Writing outputs ...
    +
    yhat, s2, z_scores = ptk.normative.transfer(
    +    covfile=covfile,
    +    respfile=respfile,
    +    tsbefile=tsbefile,
    +    trbefile=trbefile,
    +    inscaler="standardize",
    +    outscaler="standardize",
    +    linear_mu="True",
    +    random_intercept_mu="True",
    +    centered_intercept_mu="True",
    +    model_path=model_path,
    +    alg="hbr",
    +    log_path=log_dir,
    +    binary=True,
    +    output_path=output_path,
    +    testcov=testcovfile_path,
    +    testresp=testrespfile_path,
    +    outputsuffix=outputsuffix,
    +    savemodel=True,
    +    nuts_sampler="nutpie",
    +)
     
    output_path
     
    -
    '/content/HBR_demo/Transfer/'
    -
    -
    -
    -
    Collecting https://github.com/amarquand/PCNtoolkit/archive/dev.zip
    -  Downloading https://github.com/amarquand/PCNtoolkit/archive/dev.zip
    -      64.9 MB 16.9 MB/s 0:00:05
    -[?25h  Installing build dependencies ... [?25l[?25hdone
    -  Getting requirements to build wheel ... [?25l[?25hdone
    -  Preparing metadata (pyproject.toml) ... [?25l[?25hdone
    -Collecting bspline<0.2.0,>=0.1.1 (from pcntoolkit==0.31.0)
    -  Downloading bspline-0.1.1.tar.gz (84 kB)
    -     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.2/84.2 kB 2.0 MB/s eta 0:00:00
    -[?25h  Preparing metadata (setup.py) ... [?25l[?25hdone
    -Collecting matplotlib<4.0.0,>=3.9.2 (from pcntoolkit==0.31.0)
    -  Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
    -Requirement already satisfied: nibabel<6.0.0,>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.3.2)
    -Requirement already satisfied: numpy<2.0,>=1.26 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.26.4)
    -Requirement already satisfied: pymc<6.0.0,>=5.18.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.18.0)
    -Requirement already satisfied: scikit-learn<2.0.0,>=1.5.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.5.2)
    -Requirement already satisfied: scipy<2.0,>=1.12 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.13.1)
    -Requirement already satisfied: seaborn<0.14.0,>=0.13.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (0.13.2)
    -Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.16.0)
    -Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.3.1)
    -Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (0.12.1)
    -Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (4.54.1)
    -Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.4.7)
    -Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (24.2)
    -Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (11.0.0)
    -Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (3.2.0)
    -Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (2.8.2)
    -Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (6.4.5)
    -Requirement already satisfied: typing-extensions>=4.6 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (4.12.2)
    -Requirement already satisfied: arviz>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.20.0)
    -Requirement already satisfied: cachetools>=4.2.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (5.5.0)
    -Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.1.0)
    -Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.2.2)
    -Requirement already satisfied: pytensor<2.26,>=2.25.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.25.5)
    -Requirement already satisfied: rich>=13.7.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (13.9.4)
    -Requirement already satisfied: threadpoolctl<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.5.0)
    -Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.5.2->pcntoolkit==0.31.0) (1.4.2)
    -Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (75.1.0)
    -Requirement already satisfied: xarray>=2022.6.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.10.0)
    -Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.4.1)
    -Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.8.0)
    -Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
    -Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2)
    -Requirement already satisfied: filelock>=3.15 in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.16.1)
    -Requirement already satisfied: etuples in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.3.9)
    -Requirement already satisfied: logical-unification in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
    -Requirement already satisfied: miniKanren in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.3)
    -Requirement already satisfied: cons in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6)
    -Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.0.0)
    -Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.18.0)
    -Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.12.1)
    -Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.1.2)
    -Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.12.1)
    -Requirement already satisfied: multipledispatch in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.0)
    -Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
    -   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 37.7 MB/s eta 0:00:00
    -[?25hBuilding wheels for collected packages: pcntoolkit, bspline
    -  Building wheel for pcntoolkit (pyproject.toml) ... [?25l[?25hdone
    -  Created wheel for pcntoolkit: filename=pcntoolkit-0.31.0-py3-none-any.whl size=114835 sha256=40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00
    -  Stored in directory: /tmp/pip-ephem-wheel-cache-nl3hy35q/wheels/9e/c4/29/3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1e
    -  Building wheel for bspline (setup.py) ... [?25l[?25hdone
    -  Created wheel for bspline: filename=bspline-0.1.1-py3-none-any.whl size=84482 sha256=1da013ad20b77d85515a6a2318eaf7cc4baaa7772eb1d26249f923ce8d779d7e
    -  Stored in directory: /root/.cache/pip/wheels/3c/ab/0a/70927853a6d9166bc777922736063a6f99c43a327c802f9326
    -Successfully built pcntoolkit bspline
    -Installing collected packages: bspline, matplotlib, pcntoolkit
    -  Attempting uninstall: matplotlib
    -    Found existing installation: matplotlib 3.8.0
    -    Uninstalling matplotlib-3.8.0:
    -      Successfully uninstalled matplotlib-3.8.0
    -Successfully installed bspline-0.1.1 matplotlib-3.9.2 pcntoolkit-0.31.0
    -Collecting nutpie
    -  Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
    -Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (17.0.0)
    -Requirement already satisfied: pandas>=2.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2.2.2)
    -Requirement already satisfied: xarray>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2024.10.0)
    -Requirement already satisfied: arviz>=0.15.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (0.20.0)
    -Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (75.1.0)
    -Requirement already satisfied: matplotlib>=3.5 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (3.9.2)
    -Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.26.4)
    -Requirement already satisfied: scipy>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.13.1)
    -Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (24.2)
    -Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.4.1)
    -Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (4.12.2)
    -Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (0.8.0)
    -Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2.8.2)
    -Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
    -Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2)
    -Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.15.0->nutpie) (3.12.1)
    -Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.3.1)
    -Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (0.12.1)
    -Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (4.54.1)
    -Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.4.7)
    -Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (11.0.0)
    -Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (3.2.0)
    -Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0->nutpie) (1.16.0)
    -Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.5 MB)
    -   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 9.5 MB/s eta 0:00:00
    -[?25hInstalling collected packages: nutpie
    -Successfully installed nutpie-0.13.2

    Option 1: Connect your Google Drive account, and load data from Google Drive. Having Google Drive connected will allow you to save any files created back to your Drive folder. This step will require you to @@ -284,51 +185,6 @@

    Task 0: Load data and install PCNtoolkit# code by S. Rutherford

    -
    --2024-11-19 12:28:31--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_demographics.csv
    -Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
    -Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
    -HTTP request sent, awaiting response... 200 OK
    -Length: 17484 (17K) [text/plain]
    -Saving to: ‘camcan_demographics.csv’
    -
    -camcan_demographics 100%[===================>]  17.07K  --.-KB/s    in 0.003s
    -
    -2024-11-19 12:28:31 (5.14 MB/s) - ‘camcan_demographics.csv’ saved [17484/17484]
    -
    ---2024-11-19 12:28:31--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_demographics_nordan.csv
    -Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
    -Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
    -HTTP request sent, awaiting response... 200 OK
    -Length: 332 [text/plain]
    -Saving to: ‘camcan_demographics_nordan.csv’
    -
    -camcan_demographics 100%[===================>]     332  --.-KB/s    in 0s
    -
    -2024-11-19 12:28:32 (4.10 MB/s) - ‘camcan_demographics_nordan.csv’ saved [332/332]
    -
    ---2024-11-19 12:28:32--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_features.csv
    -Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ...
    -Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
    -HTTP request sent, awaiting response... 200 OK
    -Length: 188944 (185K) [text/plain]
    -Saving to: ‘camcan_features.csv’
    -
    -camcan_features.csv 100%[===================>] 184.52K  --.-KB/s    in 0.05s
    -
    -2024-11-19 12:28:33 (3.58 MB/s) - ‘camcan_features.csv’ saved [188944/188944]
    -
    ---2024-11-19 12:28:33--  https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/master/tutorials/CPC_2020/data/camcan_features_nordan.csv
    -Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
    -Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
    -HTTP request sent, awaiting response... 200 OK
    -Length: 1695 (1.7K) [text/plain]
    -Saving to: ‘camcan_features_nordan.csv’
    -
    -camcan_features_nor 100%[===================>]   1.66K  --.-KB/s    in 0s
    -
    -2024-11-19 12:28:33 (22.1 MB/s) - ‘camcan_features_nordan.csv’ saved [1695/1695]
    -
    -

    TASK 1: Format input data

    @@ -369,188 +225,6 @@

    TASK 1: Format input data# code by T. Wolfers

    -
                 age sex_name  sex  IQ_random
    -paricipants
    -CC110033      24     MALE    1         73
    -CC110037      18     MALE    1        103
    -CC110045      24   FEMALE    0        124
    -CC110056      22   FEMALE    0        124
    -CC110062      20     MALE    1        126
    -...          ...      ...  ...        ...
    -CC722542      79     MALE    1        116
    -CC722651      79   FEMALE    0        128
    -CC722891      84   FEMALE    0        129
    -CC723197      80   FEMALE    0         96
    -CC723395      86   FEMALE    0        145
    -
    -[707 rows x 4 columns]
    -              left_Hippocampal_tail  left_subiculum    left_CA1  participants
    -CC110033                 482.768229      419.948094  666.496024
    -CC110037                 595.269259      502.320315  698.157779
    -CC110045                 655.847194      476.433625  654.215689
    -CC110056                 561.345626      447.258970  611.114561
    -CC110062                 756.521166      521.034681  716.391590
    -...                             ...             ...         ...
    -CC722542                 467.896808      440.794061  688.130914
    -CC722651                 406.326167      393.469843  613.794018
    -CC722891                 393.430481      303.049578  444.772656
    -CC723197                 475.929914      372.449778  525.739508
    -CC723395                 444.301617      330.688394  565.359058
    -
    -              left_hippocampal-fissure  left_presubiculum  left_parasubiculum  participants
    -CC110033                    131.719049         285.535445           59.209377
    -CC110037                    156.304335         367.678385           60.817591
    -CC110045                    146.767569         346.347202           67.481121
    -CC110056                    126.615335         327.528926           70.901227
    -CC110062                    206.205818         384.356075           80.329689
    -...                                ...                ...                 ...
    -CC722542                    184.300085         306.287030           72.629722
    -CC722651                    224.292557         254.786917           50.006651
    -CC722891                    158.987352         202.213773           46.418129
    -CC723197                    172.558200         222.384434           40.304889
    -CC723395                    206.235576         197.417773           34.240227
    -
    -              left_molecular_layer_HP  left_GC-ML-DG    left_CA3    left_CA4  participants
    -CC110033                   583.239022     313.144932  223.022262  266.801434
    -CC110037                   619.053381     311.428298  192.949211  260.551999
    -CC110045                   622.037178     322.315065  204.756048  275.428880
    -CC110056                   597.467595     323.777115  233.160437  278.133998
    -CC110062                   666.590397     364.130988  253.917949  311.079938
    -...                               ...            ...         ...         ...
    -CC722542                   597.823380     322.236056  252.159707  275.293551
    -CC722651                   558.060369     322.176631  261.160474  282.029715
    -CC722891                   384.798819     204.562530  149.220194  184.259996
    -CC723197                   467.847632     262.950594  215.411133  232.938256
    -CC723395                   470.969863     269.963160  234.219152  241.325755
    -
    -              ...  right_hippocampal-fissure  right_presubiculum  participants  ...
    -CC110033      ...                 133.101613          263.829445
    -CC110037      ...                 148.099481          339.309772
    -CC110045      ...                 159.687619          324.398659
    -CC110056      ...                 123.262352          290.196432
    -CC110062      ...                 136.785201          406.323486
    -...           ...                        ...                 ...
    -CC722542      ...                 147.391931          273.150743
    -CC722651      ...                 185.053756          232.752897
    -CC722891      ...                 140.980648          211.807774
    -CC723197      ...                 213.080235          258.567312
    -CC723395      ...                 205.934342          210.039976
    -
    -              right_parasubiculum  right_molecular_layer_HP  right_GC-ML-DG  participants
    -CC110033                47.651798                586.026640      328.057551
    -CC110037                59.693186                617.448302      312.116795
    -CC110045                55.738550                609.208671      314.460832
    -CC110056                67.410418                569.389816      310.290805
    -CC110062                80.403248                767.955163      383.194510
    -...                           ...                       ...             ...
    -CC722542                50.874375                572.634593      302.504826
    -CC722651                44.493903                533.912687      308.141458
    -CC722891                57.371362                387.195124      199.979009
    -CC723197                50.846316                481.409074      267.190903
    -CC723395                33.216529                493.194601      274.020748
    -
    -               right_CA3   right_CA4  right_fimbria  right_HATA  participants
    -CC110033      283.392837  282.565685      87.127463   73.589184
    -CC110037      212.605572  269.307660      99.657823   60.920924
    -CC110045      237.869822  271.505300      69.436808   59.323542
    -CC110056      218.809310  267.327199      60.505521   51.726283
    -CC110062      268.227177  325.403040      92.215816   85.484454
    -...                  ...         ...            ...         ...
    -CC722542      236.946562  261.352283      46.144212   43.966509
    -CC722651      247.810543  267.203989      68.730322   59.699644
    -CC722891      146.836915  187.083211      27.913196   38.629828
    -CC723197      211.618157  244.176755      51.893458   65.474967
    -CC723395      232.592060  240.980896      68.335159   62.081225
    -
    -              right_Whole_hippocampus
    -participants
    -CC110033                  3531.764896
    -CC110037                  3835.426137
    -CC110045                  3681.494304
    -CC110056                  3461.373764
    -CC110062                  4782.407821
    -...                               ...
    -CC722542                  3284.108783
    -CC722651                  3210.272905
    -CC722891                  2423.675065
    -CC723197                  3043.146264
    -CC723395                  2988.001288
    -
    -[651 rows x 26 columns]
    -          age sex_name  sex  IQ_random  left_Hippocampal_tail  left_subiculum  CC110033   24     MALE    1         73             482.768229      419.948094
    -CC110037   18     MALE    1        103             595.269259      502.320315
    -CC110045   24   FEMALE    0        124             655.847194      476.433625
    -CC110056   22   FEMALE    0        124             561.345626      447.258970
    -CC110062   20     MALE    1        126             756.521166      521.034681
    -...       ...      ...  ...        ...                    ...             ...
    -CC722542   79     MALE    1        116             467.896808      440.794061
    -CC722651   79   FEMALE    0        128             406.326167      393.469843
    -CC722891   84   FEMALE    0        129             393.430481      303.049578
    -CC723197   80   FEMALE    0         96             475.929914      372.449778
    -CC723395   86   FEMALE    0        145             444.301617      330.688394
    -
    -            left_CA1  left_hippocampal-fissure  left_presubiculum  CC110033  666.496024                131.719049         285.535445
    -CC110037  698.157779                156.304335         367.678385
    -CC110045  654.215689                146.767569         346.347202
    -CC110056  611.114561                126.615335         327.528926
    -CC110062  716.391590                206.205818         384.356075
    -...              ...                       ...                ...
    -CC722542  688.130914                184.300085         306.287030
    -CC722651  613.794018                224.292557         254.786917
    -CC722891  444.772656                158.987352         202.213773
    -CC723197  525.739508                172.558200         222.384434
    -CC723395  565.359058                206.235576         197.417773
    -
    -          left_parasubiculum  ...  right_hippocampal-fissure  CC110033           59.209377  ...                 133.101613
    -CC110037           60.817591  ...                 148.099481
    -CC110045           67.481121  ...                 159.687619
    -CC110056           70.901227  ...                 123.262352
    -CC110062           80.329689  ...                 136.785201
    -...                      ...  ...                        ...
    -CC722542           72.629722  ...                 147.391931
    -CC722651           50.006651  ...                 185.053756
    -CC722891           46.418129  ...                 140.980648
    -CC723197           40.304889  ...                 213.080235
    -CC723395           34.240227  ...                 205.934342
    -
    -          right_presubiculum  right_parasubiculum  right_molecular_layer_HP  CC110033          263.829445            47.651798                586.026640
    -CC110037          339.309772            59.693186                617.448302
    -CC110045          324.398659            55.738550                609.208671
    -CC110056          290.196432            67.410418                569.389816
    -CC110062          406.323486            80.403248                767.955163
    -...                      ...                  ...                       ...
    -CC722542          273.150743            50.874375                572.634593
    -CC722651          232.752897            44.493903                533.912687
    -CC722891          211.807774            57.371362                387.195124
    -CC723197          258.567312            50.846316                481.409074
    -CC723395          210.039976            33.216529                493.194601
    -
    -          right_GC-ML-DG   right_CA3   right_CA4  right_fimbria  right_HATA  CC110033      328.057551  283.392837  282.565685      87.127463   73.589184
    -CC110037      312.116795  212.605572  269.307660      99.657823   60.920924
    -CC110045      314.460832  237.869822  271.505300      69.436808   59.323542
    -CC110056      310.290805  218.809310  267.327199      60.505521   51.726283
    -CC110062      383.194510  268.227177  325.403040      92.215816   85.484454
    -...                  ...         ...         ...            ...         ...
    -CC722542      302.504826  236.946562  261.352283      46.144212   43.966509
    -CC722651      308.141458  247.810543  267.203989      68.730322   59.699644
    -CC722891      199.979009  146.836915  187.083211      27.913196   38.629828
    -CC723197      267.190903  211.618157  244.176755      51.893458   65.474967
    -CC723395      274.020748  232.592060  240.980896      68.335159   62.081225
    -
    -          right_Whole_hippocampus
    -CC110033              3531.764896
    -CC110037              3835.426137
    -CC110045              3681.494304
    -CC110056              3461.373764
    -CC110062              4782.407821
    -...                           ...
    -CC722542              3284.108783
    -CC722651              3210.272905
    -CC722891              2423.675065
    -CC723197              3043.146264
    -CC723395              2988.001288
    -
    -[650 rows x 30 columns]

    TASK 2: Prepare the covariate_normsample and testresponse_normsample file.

    diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js index f74e15f5..9a18253f 100644 --- a/doc/build/html/searchindex.js +++ b/doc/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"(Optional) Load adaptation data": [[5, "optional-load-adaptation-data"]], "Accuracy of Predictions": [[11, "accuracy-of-predictions"]], "Acknowledgements": [[4, null]], "Add variable to model site/scanner effects": [[1, "add-variable-to-model-site-scanner-effects"]], "Algorithm & Modeling": [[1, "algorithm-modeling"]], "Alternative installation (on a shared resource)": [[8, "alternative-installation-on-a-shared-resource"]], "BBS Cross Validation": [[11, "bbs-cross-validation"]], "Background": [[0, null]], "Background Story": [[10, "background-story"]], "Basic installation (on a local machine)": [[8, "basic-installation-on-a-local-machine"]], "Basic usage (command line)": [[12, "basic-usage-command-line"]], "Basic usage (scripted)": [[12, "basic-usage-scripted"]], "Basis expansion using B-Splines": [[1, "basis-expansion-using-b-splines"]], "Brain space extreme deviation counts": [[14, "brain-space-extreme-deviation-counts"]], "CPM Cross Validation": [[11, "cpm-cross-validation"]], "Centile visualization": [[14, "centile-visualization"]], "Classical case-control testing": [[13, "classical-case-control-testing"]], "Combine covariate & cortical thickness dataframes": [[1, "combine-covariate-cortical-thickness-dataframes"]], "Configure covariates": [[5, "configure-covariates"]], "Configure which models to fit": [[5, "configure-which-models-to-fit"]], "Connectome Predictive Modelling": [[11, "connectome-predictive-modelling"]], "Create Train/Test Splits": [[11, "create-train-test-splits"]], "Created by Saige Rutherford": [[3, "created-by-saige-rutherford"]], "DEMO ON NORMATIVE MODELING": [[10, null]], "Data Preparation": [[1, "data-preparation"]], "Data formats": [[12, "data-formats"]], "Describe the normative model performance": [[1, "describe-the-normative-model-performance"]], "Elastic Net (Linear Regression + L1/L2 Regularization)": [[11, "elastic-net-linear-regression-l1-l2-regularization"]], "Estimate normative model": [[1, "estimate-normative-model"]], "Evaluation & Interpretation": [[1, "evaluation-interpretation"]], "Extreme negative deviation viz": [[14, "extreme-negative-deviation-viz"]], "Extreme positive deviation viz": [[14, "extreme-positive-deviation-viz"]], "Figure 4A viz": [[1, "figure-4a-viz"]], "Fit Linear Regression Model": [[11, "fit-linear-regression-model"]], "Frequently Asked Questions": [[2, null]], "Function & Class Docs": [[0, null]], "Getting started": [[0, null]], "Glossary": [[7, null]], "Hierarchical Bayesian Regression Normative Modelling and Transfer onto unseen site.": [[3, "hierarchical-bayesian-regression-normative-modelling-and-transfer-onto-unseen-site"]], "How to cite PCNtoolkit": [[6, null]], "Install necessary libraries & grab data files": [[1, "install-necessary-libraries-grab-data-files"]], "Installation": [[8, null]], "Intro to normative modelling": [[12, "intro-to-normative-modelling"]], "Key abbreviations": [[7, "key-abbreviations"]], "Lasso (Linear Regression + L1 Regularization)": [[11, "lasso-linear-regression-l1-regularization"]], "Load Data": [[11, null]], "Load test data": [[5, "load-test-data"]], "Make predictions": [[5, "make-predictions"]], "Mass univariate two sample t-tests on deviation score maps": [[13, "mass-univariate-two-sample-t-tests-on-deviation-score-maps"]], "Mass univariate two sample t-tests on true cortical thickness data": [[13, "mass-univariate-two-sample-t-tests-on-true-cortical-thickness-data"]], "Module Index": [[9, null]], "Other Useful Stuff": [[0, null]], "Overview": [[3, "overview"]], "PCNtoolkit Background": [[12, null]], "Paralellising estimation to speed things up": [[12, "paralellising-estimation-to-speed-things-up"]], "Plotting the normative models": [[5, "plotting-the-normative-models"]], "Post-Hoc analysis ideas": [[1, "post-hoc-analysis-ideas"]], "Post-hoc analysis on normative modeling outputs": [[13, null]], "Predictive Clinical Neuroscience Toolkit": [[1, null], [3, null]], "Predictive Clinical Neuroscience toolkit": [[0, null]], "Prepare covariate data": [[1, "prepare-covariate-data"]], "Preparing dummy data for plotting": [[5, "preparing-dummy-data-for-plotting"]], "Preprare brain data": [[1, "preprare-brain-data"]], "Principal Component Regression (BBS)": [[11, "principal-component-regression-bbs"]], "Quickstart usage": [[8, "quickstart-usage"]], "Ridge (Linear Regression + L2 Regularization)": [[11, "ridge-linear-regression-l2-regularization"]], "SVM classification": [[13, "svm-classification"]], "SVM using deviation scores as features": [[13, "svm-using-deviation-scores-as-features"]], "SVM using true cortical thickness data as features": [[13, "svm-using-true-cortical-thickness-data-as-features"]], "Setup output directories": [[1, "setup-output-directories"]], "Step 0: Install necessary libraries & grab data files": [[3, "step-0-install-necessary-libraries-grab-data-files"]], "Step 1.": [[1, "step-1"]], "Step 10.": [[1, "step-10"]], "Step 11.": [[1, "step-11"]], "Step 12.": [[1, "step-12"]], "Step 1: Prepare training and testing sets": [[3, "step-1-prepare-training-and-testing-sets"]], "Step 2.": [[1, "step-2"]], "Step 2: Configure HBR inputs: covariates, measures and batch effects": [[3, "step-2-configure-hbr-inputs-covariates-measures-and-batch-effects"]], "Step 3.": [[1, "step-3"]], "Step 3: Files and Folders grooming": [[3, "step-3-files-and-folders-grooming"]], "Step 4.": [[1, "step-4"]], "Step 4: Estimating the models": [[3, "step-4-estimating-the-models"]], "Step 5.": [[1, "step-5"]], "Step 5: Transfering the models to unseen sites": [[3, "step-5-transfering-the-models-to-unseen-sites"]], "Step 6.": [[1, "step-6"]], "Step 6: Interpreting model performance": [[3, "step-6-interpreting-model-performance"]], "Step 7.": [[1, "step-7"]], "Step 8.": [[1, "step-8"]], "Step 9.": [[1, "step-9"]], "TASK 1: Format input data": [[10, "task-1-format-input-data"]], "TASK 2: Prepare the covariate_normsample and testresponse_normsample file.": [[10, "task-2-prepare-the-covariate-normsample-and-testresponse-normsample-file"]], "TASK 3: Estimate normative model": [[10, "task-3-estimate-normative-model"]], "TASK 4: Estimate the forward model of the normative model": [[10, "task-4-estimate-the-forward-model-of-the-normative-model"]], "TASK 5: Visualize forward model": [[10, "task-5-visualize-forward-model"]], "TASK 6: Apply the normative model to Nordan\u2019s data and the dementia patients.": [[10, "task-6-apply-the-normative-model-to-nordans-data-and-the-dementia-patients"]], "TASK 7: In which hyppocampal subfield(s) does Nordan deviate extremely?": [[10, "task-7-in-which-hyppocampal-subfield-s-does-nordan-deviate-extremely"]], "TASK 8 (OPTIONAL): Implement a function that calculates percentage change.": [[10, "task-8-optional-implement-a-function-that-calculates-percentage-change"]], "TASK 9 (OPTIONAL): Visualize percent change": [[10, "task-9-optional-visualize-percent-change"]], "Task 0: Load data and install PCNtoolkit": [[10, "task-0-load-data-and-install-pcntoolkit"]], "The Normative Modeling Framework for Computational Psychiatry Protocol": [[1, "the-normative-modeling-framework-for-computational-psychiatry-protocol"]], "Train/test split": [[1, "train-test-split"]], "Tutorials": [[0, null]], "Using Bayesian Linear Regression and Multi-Site Cortical Thickness Data": [[1, "using-bayesian-linear-regression-and-multi-site-cortical-thickness-data"]], "Using lifespan models to make predictions on new data": [[5, null]], "Violin plots of extreme deviations": [[14, "violin-plots-of-extreme-deviations"]], "Visualization of normative modeling outputs": [[14, null]], "Visualize normative model outputs": [[1, "visualize-normative-model-outputs"]], "What is the PCNtoolkit?": [[12, "what-is-the-pcntoolkit"]], "adapted/edited by Andre Marquand and Pierre Berthet": [[3, "adapted-edited-by-andre-marquand-and-pierre-berthet"]]}, "docnames": ["index", "pages/BLR_normativemodel_protocol", "pages/FAQs", "pages/HBR_NormativeModel_FCONdata_Tutorial", "pages/acknowledgements", "pages/apply_normative_models", "pages/citing", "pages/glossary", "pages/installation", "pages/modindex", "pages/normative_modelling_walkthrough", "pages/other_predictive_models", "pages/pcntoolkit_background", "pages/post_hoc_analysis", "pages/visualizations"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "pages/BLR_normativemodel_protocol.rst", "pages/FAQs.rst", "pages/HBR_NormativeModel_FCONdata_Tutorial.rst", "pages/acknowledgements.rst", "pages/apply_normative_models.rst", "pages/citing.rst", "pages/glossary.rst", "pages/installation.rst", "pages/modindex.rst", "pages/normative_modelling_walkthrough.rst", "pages/other_predictive_models.rst", "pages/pcntoolkit_background.rst", "pages/post_hoc_analysis.rst", "pages/visualizations.rst"], "indexentries": {}, "objects": {"": [[9, 0, 0, "-", "bayesreg"], [9, 0, 0, "-", "fileio"], [9, 0, 0, "-", "gp"], [9, 0, 0, "-", "normative"], [9, 0, 0, "-", "normative_parallel"], [9, 0, 0, "-", "rfa"], [9, 0, 0, "-", "trendsurf"], [9, 0, 0, "-", "util"]], "bayesreg": [[9, 1, 1, "", "BLR"]], "bayesreg.BLR": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "penalized_loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"], [9, 2, 1, "", "predict_and_adjust"]], "fileio": [[9, 3, 1, "", "alphanum_key"], [9, 3, 1, "", "create_mask"], [9, 3, 1, "", "file_extension"], [9, 3, 1, "", "file_stem"], [9, 3, 1, "", "file_type"], [9, 3, 1, "", "load"], [9, 3, 1, "", "load_ascii"], [9, 3, 1, "", "load_cifti"], [9, 3, 1, "", "load_nifti"], [9, 3, 1, "", "load_pd"], [9, 3, 1, "", "predictive_interval"], [9, 3, 1, "", "save"], [9, 3, 1, "", "save_ascii"], [9, 3, 1, "", "save_cifti"], [9, 3, 1, "", "save_nifti"], [9, 3, 1, "", "save_pd"], [9, 3, 1, "", "sort_nicely"], [9, 3, 1, "", "tryint"], [9, 3, 1, "", "vol2vec"]], "gp": [[9, 1, 1, "", "CovBase"], [9, 1, 1, "", "CovLin"], [9, 1, 1, "", "CovSqExp"], [9, 1, 1, "", "CovSqExpARD"], [9, 1, 1, "", "CovSum"], [9, 1, 1, "", "GPR"]], "gp.CovBase": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovLin": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSqExp": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSqExpARD": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSum": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.GPR": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"]], "normative": [[9, 3, 1, "", "entrypoint"], [9, 3, 1, "", "estimate"], [9, 3, 1, "", "evaluate"], [9, 3, 1, "", "extend"], [9, 3, 1, "", "fit"], [9, 3, 1, "", "get_args"], [9, 3, 1, "", "load_response_vars"], [9, 3, 1, "", "main"], [9, 3, 1, "", "merge"], [9, 3, 1, "", "predict"], [9, 3, 1, "", "save_results"], [9, 3, 1, "", "transfer"], [9, 3, 1, "", "tune"]], "normative_parallel": [[9, 3, 1, "", "bashwrap_nm"], [9, 3, 1, "", "check_job_status"], [9, 3, 1, "", "check_jobs"], [9, 3, 1, "", "collect_nm"], [9, 3, 1, "", "delete_nm"], [9, 3, 1, "", "execute_nm"], [9, 3, 1, "", "qsub_nm"], [9, 3, 1, "", "rerun_nm"], [9, 3, 1, "", "retrieve_jobs"], [9, 3, 1, "", "sbatch_nm"], [9, 3, 1, "", "sbatchrerun_nm"], [9, 3, 1, "", "sbatchwrap_nm"], [9, 3, 1, "", "split_nm"]], "rfa": [[9, 1, 1, "", "GPRRFA"]], "rfa.GPRRFA": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "get_n_params"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"]], "trendsurf": [[9, 3, 1, "", "create_basis"], [9, 3, 1, "", "estimate"], [9, 3, 1, "", "get_args"], [9, 3, 1, "", "load_data"], [9, 3, 1, "", "main"], [9, 3, 1, "", "write_nii"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"": [1, 2, 3, 5, 6, 9, 11, 12, 13], "0": [1, 5, 6, 9, 11, 13, 14], "00": [3, 10, 12], "000": 11, "00000": 1, "000000": [1, 14], "000047": 13, "00036": 6, "000558": 13, "00079": 13, "001": 9, "001288": 10, "001409": 13, "001476": 13, "001484": 13, "001658": 13, "002": 6, "002599": 13, "003": 10, "005493": 10, "006651": 10, "006802": 13, "00696": [2, 6, 13, 14], "007984": 13, "009": 6, "01": [5, 9, 11, 12], "010348": 13, "01047": 6, "01057": 6, "011567": 13, "013": 6, "014447": 13, "0146": 6, "01613": 13, "01673": 13, "016768": 13, "017": 6, "019": 6, "019369": 13, "019935": 13, "02": [], "020": 6, "020748": 10, "021034": 13, "021777": 13, "022": [2, 6, 13, 14], "022262": 10, "023": 6, "025994": 13, "026640": 10, "026761": 13, "027027": 14, "027299": 13, "027721": 1, "029075": 13, "029715": 10, "02k": [], "03": [], "030": 6, "032": 11, "034441": 1, "034681": 10, "035835": 13, "037178": 10, "03970345334827422": 11, "039976": 10, "04": 6, "040304": 13, "0423918944559644": 11, "04314": 13, "043665": 13, "04382929483334259": 11, "04401109832998077": 11, "0441": 6, "046111": 13, "04611195889050071": 11, "046162": 13, "046377": 13, "049578": 10, "05": [3, 5, 6, 10, 13], "053381": 10, "053756": 10, "0544661418971657": 11, "055785": 13, "056": 11, "057551": 10, "060369": 10, "061877": 10, "063284": 1, "066125": 13, "066297": 13, "067346": 13, "07": 13, "070606": 13, "072725": 13, "073063075099014": 11, "07308221069854426": 11, "074854": 13, "07594686106816084": 11, "076018": 13, "079938": 10, "07k": 10, "08": [1, 6], "080019": 1, "080235": 10, "081225": 10, "083211": 10, "08652435": 5, "08663": 13, "0877297694903234": 11, "089187": 13, "089765": 1, "089863": 10, "09891903798924773": 11, "099481": 10, "0a": [3, 10], "0f8461b95f1f": 1, "0m": [3, 10], "1": [5, 6, 9, 11, 12, 13, 14], "10": [3, 6, 9, 10, 11, 12, 14], "100": [3, 9, 10, 11, 13], "1000": 1, "1002": 6, "1007": 6, "101": 13, "1016": 6, "101613": 10, "1017": 6, "102": [3, 10], "103": [5, 10], "1038": 6, "10611096508367268": 11, "107": 3, "108": 10, "108108": 14, "108783": 10, "109": 10, "11": [3, 6, 10, 11, 13, 14], "110": [5, 10], "1101": 6, "1104": 13, "11087317503455552": 11, "111": 10, "11115": 5, "114": 10, "114371": 1, "114561": 10, "114679": 1, "114835": [3, 10], "116": 10, "1162": 1, "116795": 10, "1187": 1, "118715": 6, "12": [3, 6, 10, 11, 14], "1206": 1, "120775": 1, "121": 10, "122": 10, "123": 10, "1237": 11, "124": 10, "126": 10, "126840": 1, "127463": 10, "128": 10, "129": 10, "13": [3, 10, 11, 14], "13078279402705562": 11, "130914": 10, "130988": 10, "131": 10, "131996": 1, "133": 10, "133998": 10, "1342": [], "135": 13, "1353": 1, "136": 10, "1365": [], "13839227040918445": 11, "14": [1, 3, 10, 11, 13, 14], "140": 10, "141": [11, 13], "141458": 10, "142": 13, "142857": 14, "143": [10, 13], "144212": 10, "1444": [], "144932": 10, "145": 10, "145213": 10, "146": 10, "146264": 10, "147": 10, "148": 10, "149": [10, 13], "15": [3, 10, 11, 13], "1500": 3, "15009167262110168": 11, "150743": 10, "150d24f295ccda92c9789d421e52c3858d43c66874deec4a463a87b4e5533448": 3, "151": 11, "153": [], "15375414865695802": 11, "15485e": 1, "156": 10, "157321": 1, "157779": 10, "158": 10, "1580": 10, "1584": 10, "159": 10, "159707": 10, "16": [1, 3, 10, 13, 14], "160": 10, "160437": 10, "160474": 10, "16051209546739642": 11, "160k": [], "161901": 1, "1621": 10, "1627": 10, "163753": [], "164354": 14, "1687": 1, "1688": 1, "1689": 1, "1690": 1, "1691": 1, "1692": 1, "1695": 10, "17": [3, 10], "172": [10, 11], "17484": 10, "176": 13, "176631": 10, "176755": 10, "177": 13, "1788130249701112": 11, "179": 13, "17936527851907158": 11, "17k": 10, "18": [1, 3, 10, 11, 13], "180": 13, "1806": 6, "1808": 6, "181": 10, "182346": 14, "18265009272980137": 11, "184": 10, "1844": 10, "185": [10, 11, 13], "1851": 10, "185k": 10, "187": [10, 11], "18805636326129616": 11, "188944": 10, "19": [1, 3, 10], "190903": 10, "192": 10, "1922": 10, "1925": 10, "193694": 14, "194510": 10, "194601": 10, "195124": 10, "196": 1, "196432": 10, "197": 10, "198": 3, "19814613": 5, "199": 10, "1d": 9, "1da013ad20b77d85515a6a2318eaf7cc4baaa7772eb1d26249f923ce8d779d7": 10, "1st": 9, "2": [5, 9, 11, 12, 13, 14], "20": [1, 3, 10, 11, 13, 14], "200": [10, 11], "2006": 9, "2007": 12, "2015": 6, "2016": 6, "2017": [6, 12], "2018": [6, 12], "2019": 6, "202": 10, "2020": [3, 6, 10, 12], "20204581109658193": 11, "2021": [5, 6], "2022": [2, 3, 6, 10], "2023": [3, 10], "2024": [3, 10], "203989": 10, "204": 10, "204015": 1, "205": 10, "205071": 10, "205818": 10, "206": 10, "20854": 13, "208671": 10, "209377": 10, "21": 14, "210": 10, "211": 10, "212": 10, "213": 10, "21318694590257792": 11, "213773": 10, "215": 10, "215689": 10, "215816": 10, "216529": 10, "216747": 1, "217126": 13, "218": 10, "219152": 10, "219322": 13, "22": [1, 3, 10], "220194": 10, "220397": 1, "222": 10, "223": 10, "224": 10, "227177": 10, "2273489799189": 11, "227358858718446": 11, "23": [3, 6, 10, 11, 14], "232": 10, "233": 10, "234": 10, "234088": 13, "235": 1, "235576": 10, "236": 10, "236056": 10, "237": 10, "239022": 10, "24": [3, 10, 11, 14], "240": 10, "240227": 10, "241": 10, "24211": 13, "2423": 10, "2432x1824": 1, "244": 10, "247": 10, "25": [1, 3, 5, 10, 11, 13, 14], "250000": 14, "251486": 13, "252": 10, "253": 10, "25386": 6, "254": 10, "255": 11, "257838": 1, "258": 10, "258970": 10, "259200": 11, "259996": 10, "25h": [3, 10], "25hbuild": [3, 10], "25hdone": [3, 10], "25hinstal": [3, 10], "25l": [3, 10], "26": [1, 3, 10, 14], "260": 10, "261": 10, "262": 10, "262352": 10, "263": 10, "264058": 1, "266": 10, "267": 10, "267055": 1, "267676": 13, "268": 10, "269": 10, "269259": 10, "27": [1, 5, 10, 14], "271": 10, "272905": 10, "273": 10, "274": 10, "275": 10, "278": [10, 13], "28": [1, 3, 10, 11, 14], "282": 10, "283": 10, "285": 10, "287030": 10, "29": [1, 3, 10], "290": 10, "290805": 10, "292557": 10, "293551": 10, "2988": 10, "2d": 9, "2f": [11, 13], "2k": [3, 10], "2nd": 9, "3": [5, 6, 8, 11, 12, 13], "30": 10, "300085": 10, "301617": 10, "302": 10, "303": 10, "3043": 10, "304335": 10, "304889": 10, "306": [10, 11], "307660": 10, "308": 10, "309772": 10, "31": [3, 10], "310": 10, "310488": 10, "311": 10, "312": 10, "313": 10, "314": 10, "315065": 10, "315780": 10, "31896": 1, "31m15": 3, "31m16": [3, 10], "31m2": [3, 10], "31m37": 10, "31m55": 3, "31m9": 10, "32": [1, 3, 10], "3200": 10, "3201": 10, "320315": 10, "3210": 10, "322": 10, "323": 10, "323486": 10, "323542": 10, "324": 10, "324048": 13, "325": 10, "325755": 10, "326167": 10, "327": 10, "327199": 10, "328": 10, "3284": 10, "329689": 10, "32m": [3, 10], "32m1": [3, 10], "32m64": [3, 10], "32m8": [3, 10], "32m84": [3, 10], "33": [1, 3, 10, 14], "330": 10, "332": 10, "335159": 10, "337646": 13, "339": [1, 10], "33m0": [3, 10], "34": [1, 3, 10], "345626": 10, "346": 10, "3461": 10, "347202": 10, "35": [1, 11], "352283": 10, "3531": 10, "356075": 10, "359058": 10, "36": 10, "360": 11, "364": 10, "367": 10, "3681": 10, "369738": 13, "36m0": [3, 10], "37": [1, 10, 11], "371362": 10, "372": 10, "373764": 10, "3771": 10, "3781": 10, "38": [3, 10], "380": 1, "383": 10, "3835": 10, "384": 10, "384434": 10, "387": 10, "389816": 10, "39": [10, 12, 14], "391590": 10, "391931": 10, "392837": 10, "393": 10, "395619": 1, "397232": 1, "398659": 10, "3_68": 6, "3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1": [3, 10], "3c": [3, 10], "3d": [9, 14], "3f": 11, "4": [5, 9, 11, 12, 13, 14], "40": [3, 10], "40227749": 5, "403040": 10, "403248": 10, "403631": 1, "4036642558553467": 11, "406": 10, "40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00": [3, 10], "407821": 10, "409074": 10, "41": [1, 10, 11], "410418": 10, "411133": 10, "413415": 1, "417773": 10, "418129": 10, "419": 10, "42": [1, 10, 11, 12], "4205": 5, "425135": 13, "426137": 10, "428298": 10, "428880": 10, "43": [1, 10, 12], "430481": 10, "432432": 14, "433625": 10, "436": 5, "436808": 10, "438215": 3, "439181": 3, "439868": 13, "44": [1, 10], "440": 10, "442643": 13, "443": 10, "444": 10, "445961": 10, "447": 10, "448302": 10, "449140": 14, "449778": 10, "45": [1, 3, 11], "450319": 1, "452088": 1, "45898577": 5, "46": [1, 3, 10, 14], "460832": 10, "467": 10, "467595": 10, "469843": 10, "47": [1, 3, 10], "470": 10, "474967": 10, "475": 10, "476": 10, "476531": 1, "4782": 10, "48": [10, 12], "481": 10, "481121": 10, "482": 10, "484454": 10, "49": [1, 12], "49266088": 5, "493": 10, "493903": 10, "494304": 10, "496024": 10, "497283": 1, "497401": 10, "498272": 1, "4d": 9, "4gb": [9, 12], "5": [2, 5, 6, 9, 11, 12, 13, 14], "50": [1, 3, 10, 11, 14], "500": 1, "500mb": 9, "502": 10, "504826": 10, "505049v1": 6, "505300": 10, "505521": 10, "509099": 1, "51": [10, 11], "510988v1": 6, "513867": 1, "51813e": 1, "52": [3, 10, 12], "521": 10, "521166": 10, "525": 10, "527": 11, "528926": 10, "52k": 10, "532": 11, "533": 10, "535445": 10, "54": [1, 3, 10], "543947": 1, "54496": 13, "547377": 1, "55": [10, 12], "551999": 10, "555932": 1, "55690777": 5, "558": 10, "558200": 10, "56": [1, 12], "561": 10, "562": 11, "562530": 10, "565": 10, "565685": 10, "567312": 10, "569": 10, "57": 10, "57000": 5, "572": [10, 11], "577": 11, "578": 1, "57867990423236": 11, "58": [1, 10], "581": 11, "582": 11, "583": 10, "586": 10, "589184": 10, "59": [10, 12], "590": 1, "590397": 10, "592060": 10, "595": 10, "597": 10, "59728": 6, "59789079": 5, "599": 11, "6": [11, 12, 13, 14], "60": [3, 9, 10], "600": 11, "601": 13, "603031": 14, "603410": 1, "604": 11, "604355": 13, "605": 11, "605572": 10, "608": 11, "609": 10, "611": [10, 11], "61191": 1, "613": 10, "614": 11, "614878": 14, "614k": [], "615335": 10, "617": 10, "618157": 10, "619": [10, 11], "62": [10, 11], "620": 11, "621858": 1, "622": [10, 11], "624": 11, "625": 11, "626": 11, "62632393e": 5, "628752": [], "629722": 10, "629828": 10, "63": [1, 12], "630935": 1, "631": 11, "632": 11, "633": 11, "634593": 10, "636": 11, "638": 11, "639309": 1, "642": 11, "643": 11, "644": 11, "646": 11, "648": 11, "65": [10, 11, 13], "650": [10, 11], "651": [10, 11], "651798": 10, "652": 11, "653": 11, "654": 10, "655": 10, "656": 11, "657": 11, "657823": 10, "658": 11, "659": 11, "661": 11, "662": 11, "665": 11, "666": [10, 11], "668": 11, "66k": 10, "67": [10, 11, 13], "671": 11, "673": 11, "674": 11, "675": 11, "675065": 10, "676": 11, "678": 11, "678385": 10, "68": 10, "680": 11, "682": 11, "683": 11, "684": 11, "687": 11, "687619": 10, "688": 10, "688394": 10, "69": [1, 10], "690534": 1, "692": 11, "693186": 10, "695": 11, "696": 11, "697": 11, "698": [10, 11], "699": 11, "699644": 10, "7": [3, 5, 8, 11, 13, 14], "70": [10, 11], "700": 11, "701": 11, "704": 11, "705": 11, "707": 10, "708": 11, "709": 11, "70927853a6d9166bc777922736063a6f99c43a327c802f9326": [3, 10], "710": 11, "713": 11, "714286": 14, "716": [1, 10], "719049": 10, "72": 10, "720864": 1, "722": 11, "723": 11, "723477": 1, "726283": 10, "72904": [5, 6], "73": 10, "730": 1, "730322": 10, "734": 11, "736912": 1, "737": 13, "738550": 10, "739508": 10, "74": 14, "741": 11, "741273": 1, "75": [1, 3, 5, 10, 11, 14], "750000": 14, "752897": 10, "753296": 13, "756": 10, "756048": 10, "76": 14, "761309": 10, "764896": 10, "767": 10, "767569": 10, "768229": 10, "772656": 10, "77666469": 5, "777115": 10, "78": 10, "784798": 1, "785201": 10, "786917": 10, "79": 10, "792820": 1, "794018": 10, "794061": 10, "798426": 1, "798819": 10, "7k": 10, "8": [3, 11, 13, 14], "80": [1, 10, 12], "801434": 10, "807774": 10, "809310": 10, "81": 10, "810543": 10, "81397727": 5, "817591": 10, "82": 5, "823380": 10, "824324": 14, "829445": 10, "83": [3, 11], "830": 11, "836915": 10, "837262": 10, "837479": 1, "84": [1, 3, 10], "841000": 1, "84482": [3, 10], "846316": 10, "847194": 10, "847632": 10, "85": 10, "855": 13, "86": [1, 10], "8618322913218321": 11, "864114": 10, "869822": 10, "87": 10, "874375": 10, "877": 11, "883650580549045": 11, "893458": 10, "896808": 10, "9": [3, 11, 14], "90": [1, 5, 10], "901227": 10, "90m": [3, 10], "91": [3, 10], "912687": 10, "913196": 10, "917949": 10, "92": 10, "920924": 10, "929914": 10, "92k": [], "9342": 14, "9343": 14, "934342": 10, "936928": 1, "938256": 10, "94": 12, "945257": 1, "946": 11, "946562": 10, "948094": 10, "949211": 10, "95": [1, 5, 10, 11], "950594": 10, "955163": 10, "96": [3, 10, 13], "963160": 10, "966509": 10, "969863": 10, "97430261e": 5, "978": 6, "979009": 10, "980648": 10, "980835": 1, "980896": 10, "987352": 10, "989733": 1, "99": [5, 10, 11], "9e": [3, 10], "A": [1, 2, 3, 5, 6, 9, 10, 12], "And": 3, "As": [3, 5, 9, 10], "At": [5, 12], "By": 5, "For": [1, 3, 5, 8, 9, 12], "If": [1, 5, 6, 9, 12], "In": [1, 5, 6, 9, 12], "It": [1, 9], "No": [5, 10], "Not": 9, "ON": 0, "Of": 5, "That": [3, 9], "The": [0, 2, 3, 5, 6, 9, 10, 12, 13, 14], "Then": [1, 3, 5, 10], "There": [9, 12], "These": [5, 9, 12], "To": [1, 10], "With": [6, 10], "_2fold": 10, "_______________________________________________________________________________": 10, "__file__": 8, "__name__": 11, "_bspline_": 1, "_coordinate_desc": 11, "_dummi": 5, "_estim": [3, 9, 12], "_forward": 10, "_int_": 1, "_nordan": 10, "_parse_hyp": 5, "_predict": 12, "_test": 3, "_thick": 13, "_train": 3, "_transfer": 3, "_z_predict": 5, "a2009": 14, "a7d14b9f2beb": 3, "a_list": 14, "ab": [3, 6, 10], "abcd": 5, "abl": 5, "abolmaesumi": 6, "about": [2, 3, 5, 10], "abov": [1, 5, 11, 12], "absolut": [1, 5], "abstract": 9, "accompani": 5, "accord": 9, "accordingli": 14, "account": [5, 9, 10], "accross": 9, "accur": [1, 11], "accuraci": 1, "achiev": 12, "acknowledg": 0, "across": [1, 5, 11, 12], "activ": [3, 8], "actual": [3, 5, 10], "ad": [1, 3, 10], "adap": 9, "adapt": 9, "adaptation_data": 5, "adaptcovfil": 5, "adaptrespfil": 5, "adaptvargroupfil": 5, "adbefil": 3, "add": 9, "add_subplot": 10, "addit": [1, 5, 9, 12], "addition": 12, "address": [1, 9], "adhd": 6, "adjust": [5, 9, 14], "adult": 1, "after": [1, 9], "ag": [1, 3, 5, 6, 10, 12], "against": [5, 12], "agartz": 6, "ago": 10, "aim": 12, "al": [1, 5, 12], "aleator": 5, "alg": [1, 3, 5, 9, 10, 12], "algorithm": [0, 9, 10, 12], "align": 1, "all": [1, 5, 9, 10, 12], "all_count": 14, "all_data": 1, "all_data_covari": 1, "all_data_featur": 1, "all_sit": 5, "allclos": 11, "allow": [1, 10, 12], "aln\u00e6": 6, "along": 12, "alpha": [1, 5, 9, 11, 13], "alpha_": 11, "alpha_grid": 11, "alphanum_kei": 9, "alphas_": 11, "alreadi": [3, 10, 14], "also": [1, 3, 5, 9, 10, 12, 14], "altern": [5, 9, 12], "alwai": [5, 9, 11, 12], "amarquand": [3, 8, 10], "amp": 13, "amygdala_z_predict": 13, "an": [1, 3, 4, 5, 9, 10, 11, 12, 14], "anaconda": 8, "anaconda3": 8, "analys": [3, 10], "analysi": [0, 2, 5], "anatomi": 6, "andr": 4, "andreassen": 6, "ani": [1, 3, 5, 10], "annarbor_a": 3, "annarbor_b": 3, "annot": 14, "answer": 2, "ant_thick": 13, "aparc": 14, "aparcstats2t": 1, "app": 14, "appeal": 12, "append": [9, 10, 11, 13], "appli": [5, 9, 11, 12], "applic": 12, "appoint": 10, "approach": [1, 5, 6, 9, 12], "appropri": [9, 10, 14], "approprit": 10, "approx": 5, "approxim": [9, 12], "ar": [1, 2, 3, 4, 5, 9, 10, 11, 12], "arang": [5, 11], "architectur": 12, "archiv": [3, 10], "ard": 9, "area": 1, "arena": 6, "arg": 9, "argument": [1, 3, 9, 12], "around": 14, "arrai": [1, 3, 5, 9, 11], "array_split": 11, "articl": [2, 5, 6, 13, 14], "artifact": 11, "arviz": [3, 10], "arxiv": 6, "ascii": [5, 9, 12], "ask": [0, 9], "assert": 11, "assign": 3, "assist": 6, "associ": 9, "assses": [], "assum": [1, 5, 9], "astyp": [1, 13], "athat": 9, "atla": [1, 9], "atlanta": 3, "atlas_l": 14, "atlas_r": 14, "attempt": [3, 10], "auc": 13, "augustijn": 4, "autism": 6, "auto": 9, "autom": 1, "automat": [5, 9, 12], "automaticallu": 9, "avail": [5, 8], "averag": 6, "average_thick": 1, "avg_en": [], "avg_eul": 1, "avg_euler_cent": 1, "avg_euler_centered_neg": 1, "avg_euler_centered_neg_sqrt": 1, "await": 10, "awk": 1, "ax": [1, 3, 10, 11, 13, 14], "axi": [1, 5, 10, 11, 13, 14], "axvlin": 11, "b": [5, 6, 9, 13], "back": 10, "backend": 11, "bad": 10, "bad_sub": [], "baltimor": 3, "banaschewski": 6, "bangor": 3, "bar": [10, 11], "barkema": 4, "baron": 6, "base": [5, 6, 9, 10, 11], "baseline_fonts": 11, "bash": 9, "bashwrap_nm": 9, "basi": [5, 6, 9, 12], "basic": [1, 3, 5, 9], "batch": [9, 12], "batch_effect": 3, "batch_effects_adapt": 3, "batch_effects_test": 3, "batch_effects_test_txfr": 3, "batch_effects_train": 3, "batch_siz": [9, 12], "bathch": 9, "bayesian": [0, 5, 6, 7, 9, 12], "bayesreg": [1, 9], "bb": 0, "bbox_inch": 5, "be_stor": 12, "becaus": [1, 3, 5, 11, 12], "beckmann": [2, 6], "becom": 3, "been": [1, 12], "befor": [1, 3, 11, 12], "begin": 1, "behav": 3, "behavior": 1, "behaviour": [3, 6], "beijing_zang": 3, "being": 12, "being_saig": 10, "belong": [1, 5], "below": [1, 5, 9, 10, 11, 12, 14], "benefici": 12, "benefit": 3, "berlin_marguli": 3, "berthet": 6, "best": 10, "beta": [5, 9], "better": [10, 13], "between": [1, 3, 5, 7, 9, 10, 11], "beyond": 6, "bfg": 1, "bg_map": 14, "bia": [], "big": 6, "bigger_s": 11, "biggest": 5, "bin": 12, "binari": [1, 3, 9, 12], "biobank": 1, "biolog": [6, 12], "biomark": 10, "biopsych": 6, "biorxiv": 6, "bipolar": 6, "bishop": 9, "bitwise_and": 5, "bla": 8, "black": 1, "block": 5, "blr": [1, 5, 7, 9, 12], "blr_metric": 1, "blr_protocol": 1, "blr_site_metr": 1, "blue": 5, "boer": [4, 6], "bold": 13, "book": 10, "bool": [9, 11], "both": [1, 3, 9, 10, 14], "boundari": 1, "bourgeron": 6, "box": 14, "bpsc": 6, "brain": [6, 10, 11], "brain_al": 1, "brain_good": 1, "brainchart": 5, "brows": 2, "bspline": [1, 3, 5, 10], "bug": 9, "build": [3, 10], "built": [1, 3, 10, 14], "buitelaar": 6, "b\u00f6lte": 6, "c": [1, 2, 6, 8, 9, 10, 11, 12], "c0": 11, "c1": 11, "c2": 11, "c4": [3, 10], "cach": [3, 8, 10], "cachetool": [3, 10], "calcul": [1, 9], "calculate_percentage_chang": 10, "calibr": [5, 9], "call": [1, 5, 9, 10, 12], "cambridge_buckn": 3, "camcan_demograph": 10, "camcan_demographics_nordan": 10, "camcan_featur": 10, "camcan_features_nor": 10, "camcan_features_nordan": 10, "can": [1, 3, 5, 8, 9, 10, 12, 14], "cannot": [1, 10], "carefulli": 1, "case": [1, 3, 5, 6, 9, 12], "cat": [1, 5], "catch_warn": 11, "caveat": 3, "cc110033": 10, "cc110037": 10, "cc110045": 10, "cc110056": 10, "cc110062": 10, "cc722542": 10, "cc722651": 10, "cc722891": 10, "cc723197": 10, "cc723395": 10, "cd": [1, 8], "cd_fast": 11, "cell": 9, "center": [1, 11], "centered_intercept_mu": 3, "centil": [5, 12], "centiles_": 5, "centiles_1": 5, "certain": 3, "cfold": 9, "cg": 9, "chack": 9, "chain": 3, "chainedassignmenterror": 3, "challeng": 4, "chanc": 13, "chang": [1, 3, 5, 9, 14], "chapter": 3, "characterist": 13, "charlott": 4, "charman": 6, "chart": 6, "chdir": [1, 3, 5, 10, 11, 13, 14], "check": [1, 3, 5, 9, 10, 11], "check_finit": 1, "check_job": 9, "check_job_statu": 9, "choic": [1, 11], "choos": 5, "chosen": 1, "ci": 10, "ci_95": 10, "ci_99": 10, "ci_inx": 10, "cifti": [9, 12], "cite": 0, "class": 9, "classic": 1, "classif": 1, "classifi": 13, "clean": 1, "cleveland": 3, "click": 14, "clinic": [5, 6, 10, 11, 12, 13, 14], "clone": [1, 5, 8, 11, 13, 14], "close": 10, "cloudpickl": [3, 10], "clr": 5, "cluster": [9, 12], "cluster_spec": [9, 12], "cmap": 14, "code": [1, 3, 5, 9, 10, 12, 14], "coeffici": [1, 5, 9, 12], "cognit": [6, 10], "cohen": 6, "cohort": [6, 10], "col": 3, "col_index": 3, "colab": [1, 5, 10], "collect": [3, 9, 10, 12], "collect_nm": [9, 12], "color": [1, 3, 5, 11, 13], "color_gradi": 1, "colormap": 1, "cols_cov": 5, "column": [1, 3, 5, 9, 10, 11, 12, 13, 14], "com": [1, 2, 3, 5, 6, 8, 10, 11, 13, 14], "combin": [9, 10, 11], "command": [1, 8, 9], "comment": [1, 5], "commmand": [], "common": [1, 9], "commun": 2, "compar": [10, 12], "complet": [3, 5, 9, 10, 12], "complex": 5, "compon": [0, 5], "compress": [11, 13], "comput": [0, 2, 5, 6, 9, 10, 11, 12, 13, 14], "computation": 12, "compute_msl": [1, 5], "con": [3, 10], "concat": [5, 10], "concaten": 1, "conceptu": [6, 12], "concern": 10, "concurr": 11, "conda": 8, "condit": 1, "conduct": 10, "confid": 10, "confidence_interv": 10, "config": 12, "configparam": [9, 12], "configur": [1, 9], "configure_design_matrix": 5, "confirm": 1, "conjug": 9, "connect": [6, 10], "connectom": [0, 1, 3], "consequ": 9, "consid": [5, 6], "consider": 1, "constraint": 10, "contain": [1, 3, 5, 9, 11, 12, 13, 14], "contant": 11, "content": [1, 3, 6, 10, 11, 13, 14], "contin": 10, "continu": 5, "contourpi": [3, 10], "control": [1, 5, 6, 9, 10, 11, 14], "convent": 12, "converg": 11, "convergencewarn": 11, "convert": 9, "coordin": [9, 11], "copi": [1, 3, 9], "core": [4, 9, 11], "correctli": 10, "correl": [1, 3, 7, 9, 11], "correspond": [1, 3, 10, 12], "cortic": [3, 6, 11, 12], "cortical_thick": 13, "corticostriat": 6, "could": [1, 3, 5, 9, 10], "council": 4, "count": [1, 5, 9, 10, 11, 13], "coupl": 5, "cours": 5, "cov": [1, 9, 12], "cov_bspline_ad": 5, "cov_bspline_dummy_mean": 5, "cov_bspline_t": [1, 5], "cov_bspline_tr": 1, "cov_fil": 12, "cov_file_ad": 5, "cov_file_dummi": [5, 12], "cov_file_t": [1, 5, 12], "cov_file_tr": [1, 12], "cov_forward": 9, "cov_int_t": 1, "cov_int_tr": 1, "cov_t": 1, "cov_test": 12, "cov_tr": 1, "cov_train": 12, "covari": [8, 9, 10, 12], "covariat": 9, "covariate_forwardmodel": 10, "covariate_nordan": 10, "covbas": 9, "cover": [3, 10], "covfil": [3, 9, 10], "covfile_path": 9, "covfunc": [9, 12], "covfuncnam": 9, "covfunct": 9, "covlin": 9, "covsqexp": 9, "covsqexpard": 9, "covsum": 9, "cowork": 10, "cp": [1, 5], "cp310": [3, 10], "cpc_2020": 10, "creat": [0, 1, 5, 8, 9, 10, 12, 13, 14], "create_basi": 9, "create_bspline_basi": 1, "create_design_matrix": 5, "create_mask": 9, "creation": 9, "critic": 1, "crop": 11, "cross": [9, 10, 12, 13], "csv": [1, 3, 5, 9, 10, 12, 13, 14], "ct": 11, "ct_col": 13, "cubic": [1, 5], "current": [1, 3, 9, 10], "curv": [5, 13], "curvatur": 1, "custer": 9, "custom": 9, "customis": 12, "cv": [11, 13], "cv_fold": [9, 12], "cvfold": [9, 10, 12], "cycler": [3, 10], "d": [1, 6, 9, 10], "d7fe6256fd2": 1, "darkgrid": 1, "dat": 9, "data": [0, 6, 9, 14], "data_arrai": 9, "data_dir": [1, 5], "datafil": 9, "datafram": [3, 5, 9, 10, 13], "datapoint": 5, "dataset": [1, 3, 5, 9, 12, 14], "dateutil": [3, 10], "dcov": 9, "de": [4, 6], "decid": [1, 9], "decim": 11, "decomposit": 11, "def": [1, 3, 10, 11], "default": [1, 3, 5, 9, 11, 12], "defin": [3, 9], "definit": [3, 10], "degre": 9, "delai": 9, "delet": 9, "delete_nm": [9, 12], "deliber": 1, "delimit": 9, "delta": [11, 13], "demo": [0, 1, 3, 11, 13, 14], "demograhp": 10, "demograph": [10, 12], "demographics_nordan": 10, "demonstr": [], "depend": [1, 3, 8, 9, 10], "depent": 10, "deprec": [1, 12], "deriv": [1, 5, 9, 12], "descent": 11, "describ": [3, 5, 14], "descript": 12, "design": [1, 5, 12], "desikan": 1, "desir": [3, 12], "destrieux_atla": 14, "destrieux_surfac": 14, "detail": [1, 3, 5], "determin": 9, "dev": [3, 10, 13], "develop": [1, 2, 4, 12], "devianc": [3, 9], "deviat": [1, 5, 6, 7, 9, 11, 12], "deviation_count": 14, "deviation_scor": 5, "df": [1, 3], "df_ad": 5, "df_euler": 1, "df_te": 5, "df_te_z": 5, "dg": 10, "diag": 9, "diagnosi": 12, "dicotom": 10, "dict": 9, "dictionari": 9, "did": 11, "differ": [1, 3, 5, 6, 9, 12], "digit": 4, "dimens": [11, 12], "dimension": 1, "dinga": [4, 6], "dir": [1, 8, 9, 10], "direct": [1, 6], "directli": [1, 5, 9, 10], "directori": [3, 9, 10], "discuss": 14, "disk": [1, 9, 12], "disord": [6, 10], "displai": [1, 3, 11], "displot": 1, "dissect": 6, "dist": [1, 3, 10, 11], "distribut": [5, 9, 10, 12, 14], "diverg": 3, "divid": 3, "dk": 10, "dloglik": 9, "do": [1, 3, 5, 9, 10], "doc": [3, 5], "document": [3, 9, 11, 12], "doe": [1, 12], "doi": 6, "done": [1, 3, 5, 9, 10, 11, 12, 13, 14], "dot": 11, "doubt": 10, "downcast": 1, "download": [1, 3, 10, 14], "dpi": 1, "draw": 3, "drive": 10, "drop": 1, "dropna": [1, 13], "dtseri": 12, "dtype": [1, 3, 5, 9], "dualiti": 11, "duation": 9, "due": [1, 10], "duma": 6, "dummi": [1, 12], "dump": 3, "durat": [9, 12], "dure": 10, "durston": 6, "dutch": 4, "e": [1, 5, 6, 8, 9, 10, 12], "each": [1, 3, 5, 9, 10, 11, 12, 14], "echo": 1, "ecker": 6, "ed": 6, "edg": 11, "effect": [5, 9], "effici": 12, "eg": 3, "einstat": [3, 10], "either": [1, 3, 5, 9, 12], "elaps": 11, "elast": 0, "elasticnet": 11, "elasticnet_model_ct": 11, "elasticnet_model_z": 11, "elasticnetcv": 11, "elasticnetcv_model_ct": 11, "elasticnetcv_model_z": 11, "elem": 5, "elif": [6, 10], "elifesci": [5, 6], "ell": [9, 10], "ell_1": 9, "ell_d": 9, "ell_i": 9, "els": 5, "emploi": 1, "empti": 1, "encod": 1, "encount": 10, "end": [5, 10], "endless": 9, "endswith": 13, "enet_coordinate_descent_gram": 11, "enigma": 1, "ensur": [3, 11], "entri": [10, 11, 12], "entrypoint": 9, "enumer": [1, 3, 5, 10, 11, 13, 14], "env_nam": 8, "enviorn": 8, "environ": [1, 8], "ephem": [3, 10], "epistem": 5, "equal": [1, 5], "error": [3, 7, 9, 11, 12], "especi": 12, "essenti": 12, "estim": [5, 9], "et": [1, 5, 12], "eta": [3, 10], "etc": [9, 14], "etupl": [3, 10], "euler": 1, "ev": [1, 3, 7], "evalu": [0, 3, 5, 9, 10, 11, 12, 14], "everyth": [3, 10], "exacerb": 12, "exampl": [1, 3, 5, 9, 12], "examplenii": 9, "exclud": 1, "exclus": [1, 10], "execut": 9, "execute_nm": [9, 12], "exist": [1, 2, 3, 9, 10], "exist_ok": 1, "exp": [9, 10], "expans": 5, "expect": 11, "expens": 12, "experiment": [1, 4], "explain": [1, 3, 7, 9, 10, 11], "explained_variance_ratio_": 11, "explainedvar": 9, "explicit": 9, "explicitli": 1, "explor": 5, "exponenti": 9, "export": 1, "expv": [1, 5, 7, 9], "expv_estim": 3, "expv_predict": 5, "extend": [9, 12], "extens": [3, 6, 9, 10], "extra": 1, "extra_argu": 9, "extract": [1, 3, 5], "extrem": [6, 12], "f": [1, 2, 3, 5, 6, 11, 12], "f502unec": 3, "factor": 9, "fade": 1, "fail": [9, 10, 11], "fairli": [1, 12], "fals": [1, 5, 9, 10, 11, 12, 13, 14], "famili": 10, "far": 10, "fast": 11, "faster": 1, "father": 10, "fcon": 3, "fcon1000": 3, "fcon1000_icbm_t": 3, "fcon1000_icbm_tr": 3, "fcon1000_t": 3, "fcon1000_te_z": [13, 14], "fcon1000_tr": 3, "fcon_t": 3, "fcon_tr": 3, "fdr_pval": 13, "fdrcorrect": 13, "featru": 10, "featur": [1, 3, 9, 10, 11, 12], "feature_nam": 10, "features_nordan": 10, "features_normsampl": 10, "feel": [2, 10], "fellowship": 4, "femal": [5, 10], "fetch_atlas_surf_destrieux": 14, "fetch_surf_fsaverag": 14, "few": [1, 5, 10], "fi": [1, 5], "fig": [1, 10, 13, 14], "figsiz": [1, 3, 11, 13, 14], "figur": [10, 11], "file": [5, 9, 11, 12], "file_extens": 9, "file_stem": 9, "file_typ": 9, "fileio": 9, "filelist": 5, "filelock": [3, 10], "filenam": [3, 9, 10, 12], "fill": [1, 5], "fill_between": [5, 13], "fillna": 14, "final": [1, 3, 10], "find": 10, "finish": [3, 11], "first": [1, 3, 5, 8, 9, 10, 11, 12], "fissur": 10, "fit": [1, 9, 12, 13], "fit_intercept": 11, "fit_neg": 11, "fit_neg_ct": 11, "fit_neg_z": 11, "fit_po": 11, "fit_pos_ct": 11, "fit_pos_neg": 11, "fit_pos_neg_ct": 11, "fit_pos_neg_z": 11, "fit_pos_z": 11, "fix": [1, 3, 5], "flexibl": [1, 12], "float": [1, 3], "float64": 1, "flori": 6, "fold": [9, 10, 11, 12, 13], "fold_accs_test": 11, "fold_accs_test_ct": 11, "fold_accs_test_z": 11, "fold_accs_train": 11, "fold_accs_train_ct": 11, "fold_accs_train_z": 11, "fold_i": 11, "folder": [1, 5, 9, 10], "follow": [1, 5, 6, 9, 12], "font": 11, "font_scal": 1, "fontsiz": [1, 11, 13], "fonttool": [3, 10], "fontweight": 13, "forg": 8, "form": [5, 9, 12], "format": [1, 5, 9, 13], "formerli": 12, "formul": 9, "forward": [5, 9], "forward_yhat": 10, "found": [1, 3, 8, 10, 12, 14], "four": 10, "fpr": 13, "fr": 14, "frac": 10, "fraction": 6, "fragment": 1, "frame": 1, "framework": [0, 2, 5, 6, 13, 14], "frank": 6, "fraza": [1, 4, 5, 6], "free": [1, 2], "freesurf": [1, 3], "freesurfer_data": 1, "frequent": 0, "from": [1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "frouin": 6, "fsaverag": 14, "fsl": 12, "full": [1, 7, 9, 12], "fun": 14, "func": 9, "function": [1, 3, 5, 6, 8, 9, 12], "fund": 4, "fundament": 12, "further": [1, 5, 12], "futur": 1, "futurewarn": [1, 3], "g": [1, 5, 6, 8, 9, 10, 12], "gap": [5, 11], "garcia": 6, "gaussian": [5, 6, 7, 9, 12], "gaussianprocess": 3, "gender": 3, "gener": [1, 9, 11, 12, 13], "generation_factor": 9, "geometri": 9, "get": [1, 2, 3, 5, 8, 10], "get_arg": 9, "get_dummi": 1, "get_n_param": [5, 9], "getcwd": [3, 5], "git": [1, 5, 8, 11, 13, 14], "github": [1, 3, 5, 8, 10, 11, 13, 14], "githubusercont": [3, 10], "gitter": 2, "give": 1, "given": [9, 10], "glob3": 8, "global": [1, 5], "glossari": 0, "go": [3, 10], "goal": 6, "good": [1, 10], "googl": [1, 5, 10], "goyard": 6, "gp": [9, 10], "gpml": [3, 9], "gpr": [7, 9, 10, 12], "gprrfa": 9, "gr2": 10, "gradient": [3, 9, 10], "grant": 4, "gratefulli": 4, "grei": 13, "grep": 1, "group": [9, 10, 13, 14], "group_id": 14, "groupbi": 1, "growth": 6, "gscore": 11, "gz": [3, 9, 10, 12], "h": 6, "h5netcdf": [3, 10], "h5py": [3, 10], "ha": [1, 3, 9, 10, 12, 14], "haak": 6, "half": 3, "handl": [5, 8], "have": [1, 2, 3, 5, 9, 10, 12, 14], "hbm": 6, "hbr": [7, 9, 12], "hbr_demo": 3, "hc": 13, "hc_cortical_thick": 13, "hc_deviat": 13, "hcp": 1, "hcp1200_age_gend": 1, "hcp1200_aparc_lh_thick": 1, "hcp1200_aparc_rh_thick": 1, "hcp1200_aparc_thick": 1, "hcp_ct": 11, "hcp_euler": 1, "hcp_idx": 1, "hcp_z": 11, "hcpya": 1, "hcpya_ct": 11, "hcpya_g": 11, "hcpya_z": 11, "hdr": 12, "he": [9, 10], "head": [1, 12], "header": [1, 9, 10, 12], "health": 10, "healthi": 14, "heard": 10, "height": 1, "help": [2, 12], "hemi": [1, 14], "hemispher": [3, 5, 14], "here": [1, 3, 5, 9, 10], "heterogen": 6, "heteroskedast": 9, "hh": 9, "hi": 10, "hierarch": [0, 6, 7, 12], "high": [6, 12], "hint": [5, 10], "hoc": 0, "hold": 5, "holt": 6, "home": 10, "hoogman": 6, "how": [0, 1, 2, 3, 5, 10, 14], "howev": [1, 10], "hstack": 11, "html": [3, 11], "http": [1, 2, 3, 5, 6, 8, 10, 11, 13, 14], "hue": 1, "huerta": [6, 12], "huijsden": 6, "human": [1, 6], "hyp": [5, 9], "hyp0": 9, "hyperparamet": [1, 9, 11], "hyperparmat": 9, "hypocamp": 10, "hyppocampal_subfield": 10, "hyppocampu": 10, "i": [1, 3, 5, 6, 8, 9, 10, 11, 13, 14], "icbm": 3, "icbm_t": 3, "icbm_tr": 3, "id": [1, 3, 5, 9, 10], "identifi": 9, "idp": [3, 5], "idp_dir": 5, "idp_id": 5, "idp_ids_lh": 5, "idp_ids_rh": 5, "idp_ids_sc": 5, "idp_num": 5, "idx": [3, 5], "idx_a": 5, "idx_dummi": 5, "idxt": 3, "ie": 11, "ignor": 11, "ii": [5, 10, 12], "iii": 12, "ill": 1, "illustr": [5, 12], "iloc": 10, "imag": [5, 6, 9, 10, 12], "img": 12, "immun": 9, "implement": [9, 12], "implic": 1, "import": [1, 3, 5, 8, 10, 11, 12, 13, 14], "importlib": [3, 10], "includ": [1, 10, 12], "inclus": 1, "inconclus": 10, "increas": [1, 11], "indep": 13, "independ": [1, 9, 12], "index": [0, 1, 3, 5, 10, 13], "index_col": 10, "indic": [1, 9, 10], "individu": [1, 6, 10], "inf": 13, "infer_object": 1, "infl_left": 14, "infl_right": 14, "inflat": 11, "info": 5, "inform": [1, 6, 9, 10, 12], "informative_prior": 9, "ingrid": 10, "initi": [1, 9], "inlcud": 10, "inner": [1, 5, 10, 14], "innov": 4, "inplac": [1, 5, 13], "input": [1, 5, 9, 11], "inscal": [1, 3, 9, 10], "inspect": 1, "instal": [0, 5, 9, 13, 14], "instanc": 10, "instead": [1, 3], "instruct": [8, 12], "insuffic": 5, "int": [1, 3, 5, 11, 13], "integ": 9, "interact": [2, 9, 14], "intercept": [1, 5], "interest": [1, 3, 12], "intermedi": 3, "intern": [6, 9, 12], "interp": [1, 13], "interp_tpr": 13, "interpol": [1, 9], "interpret": [0, 2], "interv": [9, 10], "intervent": 6, "intialis": 9, "introduc": 1, "introductori": 10, "invalid": 10, "invaxt": 1, "invers": 5, "investig": 10, "involv": [5, 12], "inx": 10, "io": 13, "ipython": [1, 3, 11], "iq": 10, "iq_random": 10, "is_sort": 13, "isdir": 3, "isigma": 9, "isin": 10, "issu": 1, "item": 5, "iter": [1, 10, 11], "its": 1, "iv": 12, "ixi": 1, "ixi_age_gend": 1, "ixi_aparc_thick": 1, "ixi_eul": 1, "ixi_idx": 1, "j": [6, 10, 14], "job": [9, 12], "job_id": 9, "job_nam": [9, 12], "job_path": 9, "joblib": [3, 10], "join": [1, 3, 5, 10], "joskowicz": 6, "joypi": 1, "joyplot": 1, "jpg": 10, "junk": 5, "junk1": 5, "junk2": 5, "just": [1, 2, 3, 5, 9, 10], "justifi": 1, "k": [6, 9, 10, 11, 12, 13], "kaufmann": 6, "kb": [3, 10], "keep": [3, 5, 9, 11], "keep_edges_neg": 11, "keep_edges_neg_ct": 11, "keep_edges_neg_z": 11, "keep_edges_po": 11, "keep_edges_pos_ct": 11, "keep_edges_pos_z": 11, "kei": 12, "kept": 11, "kernel": 13, "keyword": [9, 12], "kia": [2, 4, 6, 9, 12], "killian": 1, "killiani": 1, "kiwisolv": [3, 10], "knot": [1, 5], "know": [9, 10], "knowledg": [3, 10], "kw_arg": 9, "kwarg": 9, "l": [1, 5, 6, 9], "l0bfg": 9, "l1": [0, 9], "l1_ratio": 11, "l1_ratio_": 11, "l2": [0, 9], "label": [10, 11, 13], "labels": [11, 13], "lambda": [1, 9], "lambda_a": 9, "larg": 12, "lasso": 0, "lasso_model_ct": 11, "lasso_model_z": 11, "lassocv": 11, "lassocv_model_ct": 11, "lassocv_model_z": 11, "latent": 9, "later": [3, 5, 11, 13], "latter": 5, "lbfg": 9, "ldpkl": 3, "learn": [1, 3, 5, 9, 10, 12], "least": 5, "left": [3, 5, 10, 13, 14], "left_ca1": 10, "left_ca3": 10, "left_ca4": 10, "left_gc": 10, "left_hippocamp": 10, "left_hippocampal_tail": 10, "left_molecular_layer_hp": 10, "left_parasubiculum": 10, "left_presubiculum": 10, "left_subiculum": 10, "legend": [1, 3, 10, 11, 13, 14], "leiden_2180": 3, "leiden_2200": 3, "len": [1, 5, 10, 11], "length": [9, 10], "lengthscal": 9, "lenient": 1, "less": 14, "lh": [1, 3, 14], "lh_bankssts_thick": 1, "lh_caudalanteriorcingulate_thick": 1, "lh_en": 1, "lh_euler": 1, "lh_g": 13, "lh_g_front_inf": 13, "lh_meanthickness_thick": [1, 3], "lh_s_temporal_inf_thickness_z_predict": 13, "lh_superiorfrontal_thick": 1, "lib": [1, 3, 10, 11], "librari": 5, "lifespan": 0, "lifespan_12k_57sites_mqc2_train": [], "lifespan_12k_59sites_mqc_train": [], "lifespan_23k_57sites_mqc2": [], "lifespan_29k_82sites_train": [], "lifespan_57k_82sit": 5, "like": [1, 3, 5, 10], "likelihood": [5, 9], "limit": [5, 9, 10], "linalg": [1, 11], "linalgwarn": 1, "line": [1, 5, 8, 9], "linear": [0, 5, 6, 7, 9, 12, 13], "linear_model": 11, "linear_mu": 3, "linearregress": 11, "linecolor": 1, "linestyl": [10, 11, 13], "linewidth": [1, 5, 10, 11], "lingual_thick": 13, "linspac": 13, "list": [1, 5, 9, 14], "listdir": 5, "literatur": 1, "live": 5, "load": [0, 1, 3, 9, 14], "load_2d": 5, "load_ascii": 9, "load_cifti": 9, "load_data": 9, "load_nifti": 9, "load_pd": 9, "load_response_var": 9, "loadtxt": 1, "loc": [1, 3, 10, 13, 14], "local": [1, 3, 5, 10, 11, 12], "locat": [1, 5, 8], "log": [1, 3, 7, 9, 12], "log_dir": [3, 12], "log_ell_d": 9, "log_path": [3, 9, 12], "log_transf": 3, "logic": [3, 10], "loglik": 9, "look": [5, 10], "loop": [1, 5, 9], "loop_percentage_change_femal": 10, "loop_percentage_change_mal": 10, "loss": [1, 3, 7, 9], "lot": 12, "loth": 6, "low": 10, "lower": 13, "lr_model": 11, "lr_model_ct": 11, "lr_model_z": 11, "lump": 6, "lw": 13, "m": [2, 6, 9, 10, 12], "m_zabihi": 10, "machin": [9, 12], "made": [9, 10], "mae": 11, "mai": [1, 5, 9, 12], "main": [3, 9], "maintain": 5, "make": [0, 1, 8, 9, 10, 12], "makedir": [1, 3], "male": [5, 10], "manag": 3, "mani": [5, 12], "manual": [1, 9], "manylinux2014_x86_64": [3, 10], "manylinux_2_17_x86_64": [3, 10], "manylinux_2_28_x86_64": [3, 10], "map": [1, 6, 9], "map_left": 14, "map_right": 14, "margin": 9, "mariam": [4, 10], "markdown": [3, 10], "marker": 11, "marquand": [2, 4, 6, 9], "martel": 6, "mask": [9, 11, 12], "maskfil": [9, 12], "maskvol": 9, "master": 10, "match": [1, 5, 10, 11], "mateu": 6, "math": 11, "matplotlib": [1, 3, 5, 10, 11, 13, 14], "matric": [1, 12], "matrix": [1, 5, 9, 11, 12], "max": [1, 5, 14], "max_column": 1, "max_row": 1, "maximum": [10, 13], "mb": [3, 10], "md": [], "mdurl": [3, 10], "mea": 1, "mead": 9, "mean": [1, 3, 7, 9, 10, 11, 12, 13, 14], "mean_absolute_error": 11, "mean_auc": 13, "mean_fpr": 13, "mean_squared_error": 11, "mean_tpr": 13, "measur": [1, 9, 10, 12], "med": 5, "med_t": 5, "median": [1, 5], "medic": [4, 6], "medicin": [4, 6], "medium_s": 11, "mell": 6, "memori": [9, 12, 14], "menn": 6, "mental": 6, "mention": 10, "merg": [1, 5, 9, 14], "meta": [1, 3, 12], "metadata": [3, 9, 10], "method": [1, 3, 5, 9, 10, 12, 13], "metric": [1, 3, 5, 9, 11, 12, 13, 14], "metrics_t": 1, "metrics_te_sit": 1, "mib": [11, 13], "miccai": 6, "mid": 13, "might": 11, "million": 10, "milwaukee_b": 3, "min": [1, 5, 14], "mind": 10, "minikanren": [3, 10], "minimum": [12, 13], "minmax": 9, "minor": 1, "mir": 6, "miss": 5, "mkdir": [1, 3, 5], "mkl": 8, "ml": 10, "mm": [3, 9], "moberget": 6, "model": [0, 2, 6, 7, 8, 9], "model_nam": 5, "model_path": [3, 5, 9], "model_path1": 9, "model_path2": 9, "model_select": [1, 13], "modif": 12, "modul": [0, 12], "moessnang": 6, "molecular": 6, "month": 10, "more": [1, 3, 5, 10, 12, 14], "morten": 10, "most": 2, "mostafa": 4, "mostli": 9, "mother": 9, "mount": 10, "move": 14, "mri": 1, "mse": 11, "mse_path_": 11, "msll": [1, 3, 7, 9], "msll_predict": [], "multi": [3, 5, 6, 12], "multipl": [1, 9, 12], "multipledispatch": [3, 10], "multipli": [1, 10], "multitest": 13, "munchen": 3, "murphi": 6, "must": [5, 9, 12], "my": [8, 9, 10, 12], "n": [5, 6, 9, 10], "n_alpha": 11, "n_brain_measur": 1, "n_compon": 11, "n_cv_split": 11, "n_feat": 9, "n_featur": 13, "n_iter": 9, "n_job": 11, "n_sampl": 13, "n_split": 13, "n_subject": 1, "n_train": 11, "name": [1, 3, 5, 7, 8, 9, 10, 12, 13, 14], "nan": [1, 11], "natur": [2, 6, 9, 13, 14], "nc": 10, "necessari": [5, 9, 10, 12], "need": [1, 3, 5, 9, 10], "neg": [1, 9, 11], "neg_error_ct": 11, "neg_error_z": 11, "neg_test_error_ct": 11, "neg_test_error_z": 11, "negative_count": 14, "negative_left_z": 14, "negative_left_z2": 14, "negative_right_z": 14, "negative_right_z2": 14, "negative_sc_z": 14, "negative_sc_z2": 14, "negloglik": 9, "nelder": 9, "net": 0, "neural": 12, "neuroanatom": 6, "neuroimag": [1, 6, 9, 12], "neurologist": 10, "neurosci": [5, 6, 10, 11, 12, 13, 14], "never": 3, "new": [0, 1, 3, 9, 10, 12], "new_dur": 9, "new_memori": 9, "newark": 3, "newaxi": [1, 5], "newyork_a": 3, "newyork_a_adhd": 3, "next": [1, 5, 10], "nib": 14, "nibabel": [3, 8, 10, 14], "nifti": [9, 12], "nii": [9, 12], "nilearn": 14, "nilearn_data": 14, "nilearn_ord": 14, "nispat": 12, "nitrc": 14, "nl": 14, "nl3hy35q": 10, "nl_negative_left": 14, "nl_negative_right": 14, "nl_positive_left": 14, "nl_positive_right": 14, "nl_roi": 14, "nlz": 9, "nm": [1, 3, 5, 7, 9], "nm_0_0_estim": 5, "nm_demo": 12, "nm_util": 5, "no_silent_downcast": 1, "node": 12, "nois": 9, "non": [5, 6], "none": [1, 3, 5, 9, 10, 14], "nonlinear": [1, 5], "norm": [0, 2, 6, 7, 8, 9], "norm_demograph": 10, "norm_demographics_featur": 10, "norm_featur": 10, "norm_sample_demograph": 10, "norm_sample_featur": 10, "normal": 3, "normative_parallel": [9, 12], "normative_path": [9, 12], "normsampl": 10, "notat": 9, "note": [1, 5, 9, 10, 12], "notebook": [1, 3, 5, 14], "now": [1, 3, 5, 10], "np": [1, 3, 5, 9, 10, 11, 12, 13, 14], "npc": 11, "npy": 11, "nte": 9, "nthi": 11, "num": 1, "num_fold": 12, "numba": 8, "number": [1, 3, 5, 9, 10, 11, 12, 14], "numpi": [1, 3, 5, 8, 9, 10, 11, 13, 14], "nutpi": [1, 3, 5, 8, 10], "nuts_sampl": 3, "nwo": 4, "o": [1, 3, 5, 6, 10, 11, 13, 14], "object": [3, 9, 11, 13], "observ": [3, 9], "obviou": 12, "obvious": 3, "occur": 1, "offer": 12, "offset": 5, "ok": 10, "ol": 11, "old": 1, "oldehinkel": 6, "onc": [1, 5, 10, 12], "one": [1, 5, 9, 10, 11, 12], "ones": [1, 5, 11], "onli": [1, 3, 9, 10, 11, 12], "onto": 0, "oort": 6, "open": [3, 5], "openneuro": 5, "openneurotransfer_c": [], "openneurotransfer_ct_ad": 5, "openneurotransfer_ct_t": 5, "openneurotransfer_ct_tr": [], "openneurotransfer_deviation_scor": 5, "openneurotransfer_t": [], "openneurotransfer_tr": [], "oper": [12, 13], "opercular_thick": 13, "opt": 1, "optim": [1, 9, 10, 12], "optimis": 9, "option": [1, 3, 9, 12], "orbital_thickness_z_predict": 13, "order": [1, 3, 5, 9, 10], "ordinari": 9, "org": [3, 5, 6, 8, 14], "organ": [1, 5], "organis": 4, "origin": [1, 3, 5], "orrel": 7, "other": [1, 5, 8, 10, 12], "otherwis": [3, 8, 9], "oulu": 3, "ouput": 9, "our": [1, 5], "out": [1, 5, 9, 10, 11, 12, 14], "out_dir": 5, "outer": [1, 10], "outlier": 5, "outlier_thresh": 5, "output": [0, 2, 3, 5, 9, 10, 12], "output_path": [3, 9], "outputal": 9, "outputsuffix": [3, 5, 9, 10, 12], "outscal": [1, 3, 9, 10], "over": [1, 9], "overal": 1, "overflow": 10, "overlap": [1, 10], "overview": 12, "own": 1, "oxford": 3, "p": [3, 6, 7, 9, 11], "p_threshold": 11, "pack": [11, 13], "packag": [1, 3, 5, 8, 10, 11, 12], "packeag": 9, "pad": 5, "page": 3, "paloalto": 3, "panad": 1, "panda": [1, 3, 5, 9, 10, 12, 13, 14], "panel": 1, "paper": 5, "parallel": [9, 11, 12], "param": 9, "paramatet": 12, "paramet": [5, 9, 12, 13], "parameter": 1, "parameteris": 5, "parametr": [3, 7, 9], "parcel": 14, "parcellation_l": 14, "parcellation_negative_l": 14, "parcellation_negative_r": 14, "parcellation_positive_l": 14, "parcellation_positive_r": 14, "parcellation_r": 14, "paricip": 10, "pars": 9, "part": 5, "part_thick": 13, "particip": [1, 3, 10], "participant_id": [1, 14], "particular": 5, "partner": 14, "pass": [5, 9, 11, 12], "path": [1, 3, 5, 8, 9, 10, 12], "patient": [6, 14], "pattern": 9, "pb": 9, "pc": 11, "pca": 11, "pca_model": 11, "pca_model_ct": 11, "pca_model_z": 11, "pcn": [10, 12], "pcntoolkit": [0, 1, 2, 3, 5, 8, 11, 13, 14], "pd": [1, 3, 5, 10, 13, 14], "pdf": 3, "pearson": [1, 3, 7, 9], "pearsonr": 11, "pearsonrconstantinputwarn": 11, "penal": 9, "penalized_loglik": 9, "penalti": 9, "per": [1, 3, 5, 12], "percentage_chang": 10, "percentage_change_femal": 10, "percentage_change_mal": 10, "percentil": 5, "perform": 11, "perpar": 10, "person": [10, 14], "phenotyp": 5, "phenotypes_ct_lh": 5, "phenotypes_ct_rh": 5, "phenotypes_sc": 5, "phi": [1, 9], "php": 14, "pickl": [3, 5, 12], "piecewis": 1, "pieter": 4, "pillow": [3, 10], "pinv": 11, "pip": [1, 3, 5, 8, 10, 13, 14], "pipelin": 1, "pittsburgh": 3, "pk": 8, "pkl": [3, 5, 9, 12], "place": 10, "plain": 10, "plasma": 14, "pleas": [1, 5, 6, 10], "plot": [10, 11, 12, 13], "plot_roc_curv": 13, "plt": [1, 3, 5, 10, 11, 13, 14], "plu": [5, 8], "pm": 13, "png": 5, "po": 11, "point": [1, 3, 5, 9, 10], "polynomi": [1, 9], "poor": 1, "poorli": 11, "popul": 10, "pos_error_ct": 11, "pos_error_z": 11, "pos_neg_error_ct": 11, "pos_neg_error_z": 11, "pos_neg_test_error_ct": 11, "pos_neg_test_error_z": 11, "pos_test_error_ct": 11, "pos_test_error_z": 11, "posit": 11, "positive_count": 14, "positive_left_z": 14, "positive_left_z2": 14, "positive_right_z": 14, "positive_right_z2": 14, "positive_sc_z": 14, "positive_sc_z2": 14, "possibl": [1, 9], "post": [0, 9], "post_thick": 13, "posterior": [9, 10], "potenti": 10, "powel": [1, 9, 12], "power": 10, "pr_int": 5, "pr_int25": 5, "pr_int25l": 5, "pr_int25u": 5, "pr_int95": 5, "pr_int95l": 5, "pr_int95u": 5, "pr_int99": 5, "pr_int99l": 5, "pr_int99u": 5, "practic": [10, 12], "pre": [1, 3, 5, 9], "precis": [6, 9], "pred_summary_funct": 11, "predict": [6, 7, 9, 10, 12, 13, 14], "predict_and_adjust": [5, 9], "predictive_interv": 9, "predictor": 1, "prefix": [1, 8], "prepackag": [], "prepar": [0, 9], "preporcess": 10, "preprocess": 11, "prercentag": 10, "present": [1, 5, 10, 12], "pretrain": 5, "previous": 3, "prho": [3, 5, 7, 9], "prho_predict": 5, "primarili": [9, 10], "princip": 0, "principl": 1, "print": [1, 3, 5, 8, 10, 11], "prior": [3, 9, 10], "probabl": [10, 13], "procedur": [5, 10, 12], "process": [1, 3, 5, 6, 7, 9, 10, 12], "processing_dir": [3, 9], "progress": 3, "project": [1, 3], "proper": 5, "properli": 5, "properti": 10, "proport": 5, "protocol": [0, 2, 6, 13, 14], "provid": [5, 9, 10, 12], "proxi": 1, "psuedo": 1, "psychiatr": 6, "psychiatri": [0, 2, 6, 13, 14], "psychiatrist": 10, "psycholog": 6, "ptk": 3, "public": [1, 12], "publish": 6, "purpos": [5, 12], "put": 10, "pval": 13, "pval_threshold": 11, "pvalu": 13, "py": [1, 3, 8, 9, 10, 11, 12], "py3": [3, 10], "pyarrow": [3, 10], "pydata": 3, "pygment": [3, 10], "pymc": [3, 10], "pypars": [3, 10], "pyplot": [1, 3, 5, 10, 11, 13, 14], "pyproject": [3, 10], "pytensor": [3, 10], "python": [1, 3, 8, 9, 10, 12], "python3": [1, 3, 8, 10, 11], "python_path": [9, 12], "pytorch": 8, "pytz": [3, 10], "qc": 1, "qestion": 10, "qstat": 9, "qsub": 9, "qsub_nm": 9, "qualiti": [1, 10], "quantit": 5, "quantiti": [5, 9], "queensland": 3, "queri": [1, 9, 13, 14], "question": [0, 1, 10], "queu": 9, "quickli": 3, "quit": 12, "r": [1, 6, 8, 9, 10, 11, 12, 13], "r2_score": 11, "racoceanu": 6, "rahimi": 12, "random": [1, 3, 9, 11, 12, 13], "random_intercept_mu": 3, "random_st": [1, 11, 13], "randomli": 3, "randomst": 13, "rang": [1, 5, 10, 11, 14], "rasmussen": 9, "rather": [1, 12], "ratio": 11, "raw": [3, 10], "rb": [3, 5], "rc": 11, "rcond": 1, "rcparam": 13, "re": [1, 9], "read": [1, 5, 10], "read_csv": [1, 3, 5, 10, 13, 14], "read_pickl": 3, "readi": 3, "readm": [], "real": [5, 9], "realiti": 10, "reassembl": 12, "receiv": [11, 13], "recent": 10, "recht": 12, "reciev": 2, "recognit": 9, "recommend": [1, 10], "recon": 1, "red": 5, "reduc": [1, 11], "refer": [5, 9, 10, 12], "reflect": 1, "regard": 12, "regex": 1, "region": [1, 5, 10, 12, 14], "regress": [0, 5, 6, 7, 9, 12], "regular": 0, "regularis": 9, "rel": [1, 5, 10], "relev": [9, 10], "reliabl": 5, "rema": 3, "remain": [3, 11], "rememb": [5, 10], "remot": [11, 13], "remov": [1, 3, 9, 12], "remove_bad_subject": 5, "rename_axi": 14, "replac": [1, 3, 11, 13], "replic": 6, "repo": 8, "report": 9, "repositori": [1, 5], "repres": [1, 5], "represent": 1, "request": 10, "requir": [1, 3, 5, 8, 9, 10, 12], "rerun": 9, "rerun_nm": 9, "rescal": 5, "research": [1, 4], "reset": 1, "reset_index": [1, 5, 14], "reshap": [9, 11, 12], "residu": 9, "resolut": 12, "resolv": [10, 11, 13], "resourc": [3, 10], "resp": 12, "resp_": 1, "resp_ad": 5, "resp_fil": 12, "resp_file_ad": 5, "resp_file_t": [1, 5, 12], "resp_file_tr": [1, 12], "resp_t": [1, 5], "resp_te_": 1, "resp_test": 12, "resp_tr": 1, "resp_tr_": 1, "resp_train": 12, "respect": [9, 12], "respfil": [3, 5, 9, 10], "respfile_path": 9, "respons": [1, 3, 5, 7, 8, 9, 10, 12], "responsefil": 9, "restrict": 10, "result": [1, 9, 11, 12], "retain": 1, "retriev": 9, "retrieve_job": 9, "return": [1, 3, 9, 10, 11], "return_i": 9, "reus": [11, 13], "review": 6, "rezek": 6, "rfa": [9, 12], "rh": [1, 14], "rh_en": 1, "rh_euler": 1, "rh_g_front_inf": 13, "rh_g_occipital_middle_thickness_z_predict": 13, "rh_g_precentral_thickness_z_predict": 13, "rh_g_temporal_inf_thickness_z_predict": 13, "rh_meanthickness_thick": [1, 3, 5, 13], "rh_meanthickness_thickness_z_predict": 13, "rh_pole_temporal_thickness_z_predict": 13, "rh_s_oc": 13, "rh_s_postcentral_thick": 13, "rh_s_precentr": 13, "rh_superiorfrontal_thick": 1, "rho": [1, 3, 5, 7, 9], "rho_predict": 5, "rich": [3, 10], "richard": 4, "rid": 10, "ridg": 0, "ridge_alpha_ct": 11, "ridge_alpha_z": 11, "ridge_model_ct": 11, "ridge_model_z": 11, "ridgecv": 11, "ridgecv_model_ct": 11, "ridgecv_model_z": 11, "right": [3, 5, 13, 14], "right_ca1": 10, "right_ca3": 10, "right_ca4": 10, "right_fimbria": 10, "right_gc": 10, "right_hata": 10, "right_hippocamp": 10, "right_molecular_layer_hp": 10, "right_parasubiculum": 10, "right_presubiculum": 10, "right_whole_hippocampu": 10, "rm": 1, "rmse": [1, 3, 5, 7, 9], "rmse_predict": 5, "rmtmp": 9, "robminmax": 9, "roc": 13, "roc_auc": 13, "roi": [1, 3, 5, 13, 14], "roi_dir": 1, "roi_dir_nam": 1, "roi_id": 1, "roi_model": 1, "roi_nam": 14, "rokicki": 6, "root": [1, 3, 7, 9, 10, 14], "root_dir": 5, "rosen": [], "rotat": 10, "roughli": 12, "round": 11, "routin": 9, "row": [1, 3, 5, 9, 10, 12, 13], "row_index": 3, "run": [1, 2, 3, 5, 8, 9, 10, 12, 13], "runtimewarn": 10, "rutherford": [1, 2, 4, 6, 9, 10, 13, 14], "rw2": 3, "s0033291719000084": 6, "s2": [3, 5, 9, 10, 12], "s245190221830329x": 10, "s2_forward": 9, "s2_rescal": 5, "s2_te": [1, 5], "s2n": 5, "s41380": 6, "s41398": 6, "s41562": 6, "s41596": [2, 6, 13, 14], "s_cingul": 13, "s_frontomargin_thickness_z_predict": 13, "s_hat": 10, "s_occipital_inf_thick": 13, "saig": [1, 4, 10, 13, 14], "saintloui": 3, "same": [1, 5, 9, 10, 12], "sampl": [3, 5, 9, 10, 11], "sampler": 3, "satisfi": [3, 10], "save": [1, 3, 5, 9, 10, 12], "save_ascii": 9, "save_cifti": 9, "save_nifti": 9, "save_path": 9, "save_pd": 9, "save_result": 9, "savefig": 5, "savemodel": [1, 3, 9, 12], "saveoutput": [1, 9, 12], "savetxt": [1, 5], "sbatch_nm": 9, "sbatchrerun_nm": 9, "sbatchwrap_nm": 9, "scalabl": 6, "scalar": 9, "scale": [1, 9, 11], "scaler": 9, "scan": [1, 5], "scanner": [3, 9], "scanner_id": 3, "scatter": [3, 5, 10], "scheme": 9, "schizophrenia": [6, 13, 14], "scientif": 4, "scikit": [1, 3, 10], "scipi": [3, 10, 11, 13], "scipt": 9, "score": [1, 3, 5, 7, 9, 10, 12], "scracth": 9, "scratch": 9, "screen": 10, "script": [1, 5, 8, 9], "scroll": 14, "se": 9, "seaborn": [1, 3, 5, 10, 14], "sec": 9, "second": [9, 14], "section": 1, "see": [1, 3, 5, 9, 12, 13], "seed": 11, "sei": 4, "select": [1, 5, 10, 11], "self": [1, 9, 10], "sent": 10, "sep": [1, 10], "separ": [1, 5, 12, 13], "seper": 10, "seri": 3, "set": [1, 5, 9, 10, 11, 12, 13], "set_opt": 1, "set_titl": 13, "set_xlabel": 3, "set_ylabel": 3, "settingwithcopywarn": 3, "setup": [3, 5, 8, 10], "setuptool": [3, 10], "seven": 5, "sever": 5, "sex": [1, 3, 5, 10], "sex_covari": 10, "sex_nam": 10, "sf": 9, "sf2": [9, 10], "sh": 9, "sha256": [3, 10], "shape": [1, 3, 10, 11, 13], "shortcut": 12, "should": [1, 2, 5, 9, 12], "show": [1, 5, 10, 11, 12, 13], "shown": [1, 12], "shuffled_idx": 11, "sid": 5, "side": 5, "sigma": 9, "sigma_a": 9, "signal": 9, "signific": 11, "similar": [9, 10], "similarli": 3, "simpl": 3, "simplefilt": 11, "simplest": 12, "simpli": 12, "sinarcsinh": 5, "sinc": [5, 12], "singl": [1, 3, 5, 12], "site": [0, 5, 6, 9, 12, 14], "site_hcp": 1, "site_id": [5, 14], "site_ids_ad": 5, "site_ids_ct_82sit": 5, "site_ids_t": 5, "site_ids_tr": 5, "site_ixi": 1, "site_median": 1, "site_nam": [1, 5], "site_num_ad": 5, "site_num_t": 5, "sitenum": [3, 5], "sitenum_ad": 5, "sitenum_file_ad": 5, "sitenum_file_t": 5, "sitenum_t": 5, "six": [3, 10], "size": [1, 3, 9, 10, 11, 12, 13], "skip": [5, 10, 12], "sklearn": [1, 8, 11, 13], "slice": 3, "slightli": [], "slowli": 1, "slurm": 9, "sm": 9, "small_siz": 11, "smse": [1, 3, 5, 7, 9], "smse_predict": 5, "sn": [1, 5, 9, 14], "sn2": 9, "snippet": 12, "so": [1, 3, 5, 12], "soli": 6, "solv": 1, "some": [1, 3, 5, 6, 11, 12], "sort": [5, 9], "sort_nic": 9, "sourc": [3, 8, 9], "space": [5, 9, 10, 12], "span": 5, "spatial": 6, "specialist": 10, "specif": [1, 3, 9, 10], "specifi": [1, 3, 5, 9, 12], "spectrum": 6, "spline": 5, "split": [0, 3, 6, 12, 13], "split_nm": 9, "splitlin": 5, "springer": [6, 9], "sqrt": 1, "squar": [1, 3, 7, 9], "squared_dist": 10, "squeez": 5, "ss": 9, "stabl": 3, "stack": [1, 11], "standard": [1, 3, 7, 9, 12], "standardis": [3, 9], "start": [1, 2, 8, 9], "start_tim": 9, "stat": [11, 13], "statist": [5, 13], "statsmodel": 13, "statu": 9, "std": [1, 10, 13, 14], "std_auc": 13, "std_tpr": 13, "stem": 9, "step": [5, 10, 12], "stick": 5, "still": 1, "stop": 1, "store": [1, 3, 5, 9, 10, 12], "stoyanov": 6, "str": [3, 5, 9, 13, 14], "stratifi": [1, 6], "stratifiedkfold": 13, "strict": 1, "string": [1, 3, 9], "structur": 6, "strutur": 9, "studi": [1, 6], "style": [1, 5, 11], "sub": [1, 9], "sub_id": [5, 14], "subcort": [5, 14], "subejct": 1, "subject": [1, 3, 5, 9, 10, 12], "subject_id": 1, "subjects_dir": 1, "submiss": 9, "submit": [9, 12], "subplot": [3, 10, 13, 14], "subset": [1, 3, 13], "subtract": 1, "successfulli": [1, 3, 9, 10], "suffix": [3, 9, 10, 12], "suggest": 10, "suit": 3, "sulc_left": 14, "sulc_right": 14, "sum": [3, 9, 11], "summar": [1, 5, 14], "sup": 13, "superior": 1, "suppli": 5, "support": [9, 12], "sure": [1, 8], "surfac": [9, 12], "svc": 13, "svd": 11, "svm": 1, "sy": 9, "symmetric_cmap": 14, "system": [8, 9], "sz": 13, "sz_cortical_thick": 13, "sz_deviat": 13, "sz_hc_ct_sig_diff": 13, "sz_hc_fdr_ct": 13, "sz_hc_fdr_z": 13, "sz_hc_pvals_ct": 13, "sz_hc_pvals_z": 13, "sz_hc_z_sig_diff": 13, "t": [1, 2, 6, 8, 9, 10, 11, 12], "tab": [9, 12], "tabl": [1, 12], "tablefil": 1, "tail": 1, "tak": 9, "take": [1, 5, 9], "tar": [3, 10], "target": [9, 10], "task": [6, 9, 12], "te": [3, 12], "te_cov_s": 1, "te_resp_s": 1, "techniqu": [10, 12], "tell": 12, "temp_log": 1, "temp_m": 13, "temporari": [9, 12], "tensor": 6, "term": 10, "termin": [1, 10], "test": [0, 8, 9, 10, 12], "test_data": 5, "test_data_ct": 11, "test_data_z": 11, "test_features_ct": 11, "test_features_z": 11, "test_i": 11, "test_idx": 11, "test_mae_ct": 11, "test_mae_z": 11, "test_mu_centered_ct": 11, "test_mu_centered_z": 11, "test_neg_edges_sum": 11, "test_neg_edges_sum_ct": 11, "test_neg_edges_sum_z": 11, "test_neg_error": 11, "test_phen": 11, "test_pos_edges_sum": 11, "test_pos_edges_sum_ct": 11, "test_pos_edges_sum_z": 11, "test_pos_error": 11, "test_posneg_error": 11, "test_pr": 11, "test_pred_phen_ct": 11, "test_pred_phen_lr_model_ct": 11, "test_pred_phen_lr_model_z": 11, "test_pred_phen_z": 11, "test_preds_en_model_ct": 11, "test_preds_en_model_z": 11, "test_preds_lasso_model_ct": 11, "test_preds_lasso_model_z": 11, "test_preds_ridge_model_ct": 11, "test_preds_ridge_model_z": 11, "test_siz": 1, "test_transformed_ct": 11, "test_transformed_z": 11, "test_x": 11, "testcov": [1, 3, 9, 10, 12], "testcovfile_path": [3, 9], "testresp": [1, 3, 9, 10, 12], "testrespfile_path": [3, 9], "testrespons": 9, "testvargroupfil": 5, "text": [1, 3, 5, 9, 10, 11, 12], "th": 9, "thalamu": 5, "than": [1, 5, 10, 12], "thei": [1, 3, 9, 10, 12], "them": [1, 5, 10], "theparticular": 9, "therefor": [1, 10], "theta": [9, 10], "thi": [1, 3, 5, 7, 9, 10, 11, 12, 14], "thick": [3, 11, 12], "think": [5, 12, 14], "thiu": 9, "thoma": [4, 10], "thomaswolf": 10, "those": [5, 9, 10], "threadingbackend": 11, "threadpoolctl": [3, 10], "three": 3, "threshold": [1, 11, 14], "through": [1, 3, 5, 10], "throw": 11, "thu": [1, 9], "tick": 11, "tight": 5, "tillmann": 6, "time": [3, 10, 12], "timeseri": 12, "titl": [1, 5, 10, 11], "title_fonts": 13, "titles": [11, 13], "tmp": [3, 10], "to_csv": [1, 3, 5, 10], "to_list": [1, 5, 14], "to_numpi": [3, 5, 13, 14], "togeth": [1, 10], "tol": 9, "toler": 11, "toml": [3, 10], "too": 1, "tool": 10, "toolbox": [4, 9], "toolkit": [10, 12], "toolz": [3, 10], "topographi": 6, "torch": 8, "torqu": [9, 12], "total": [3, 11, 13], "toth": 9, "tpr": 13, "tprs_lower": 13, "tprs_upper": 13, "tr": 3, "tr_cov_siz": 1, "tr_resp_siz": 1, "track": 5, "train": [0, 5, 8, 9, 12, 13], "train_betas_ct": 11, "train_betas_z": 11, "train_brain": 11, "train_corr": 11, "train_ct_corr": 11, "train_ct_pheno_corr_p": 11, "train_ct_pval": 11, "train_data_ct": 11, "train_data_z": 11, "train_features_ct": 11, "train_features_inv_ct": 11, "train_features_inv_z": 11, "train_features_z": 11, "train_i": 11, "train_idx": 11, "train_mae_ct": 11, "train_mae_z": 11, "train_mask": 11, "train_mu_centered_ct": 11, "train_mu_centered_z": 11, "train_neg_edges_sum": 11, "train_neg_edges_sum_ct": 11, "train_neg_edges_sum_z": 11, "train_neg_error": 11, "train_phen": 11, "train_pheno_corr_p": 11, "train_phenotyp": 11, "train_pos_edges_sum": 11, "train_pos_edges_sum_ct": 11, "train_pos_edges_sum_z": 11, "train_pos_error": 11, "train_posneg_error": 11, "train_pr": 11, "train_pred_phen_ct": 11, "train_pred_phen_lr_model_ct": 11, "train_pred_phen_lr_model_z": 11, "train_pred_phen_z": 11, "train_preds_en_model_ct": 11, "train_preds_en_model_z": 11, "train_preds_lasso_model_ct": 11, "train_preds_lasso_model_z": 11, "train_preds_ridge_model_ct": 11, "train_preds_ridge_model_z": 11, "train_pval": 11, "train_r2_ct": 11, "train_r2_z": 11, "train_test_split": 1, "train_transformed_ct": 11, "train_transformed_z": 11, "train_x": 11, "train_x_mu": 11, "train_z_corr": 11, "train_z_pheno_corr_p": 11, "train_z_pval": 11, "trainig": 5, "trajectori": 10, "transfer": [0, 1, 5, 9, 12], "transform": [3, 9, 11], "translat": 6, "trbefil": [3, 9], "treatment": 10, "trejactori": 10, "trejactroi": 10, "trejectori": 10, "trend": [1, 9, 12], "trendcoeff": 9, "trendsurf": 9, "treshold": 5, "troubl": 10, "true": [1, 3, 5, 7, 9, 11, 12], "trust": 4, "try": [3, 9], "tryint": 9, "tsbefil": 3, "tstat": 13, "tsv": 12, "ttest_ind": 13, "tune": 9, "turn": [9, 10], "tutori": [1, 3, 5, 10], "two": [1, 3, 5, 9, 10], "txbefil": 3, "txt": [1, 5, 9, 10, 12], "type": [1, 3, 9, 10, 13], "typic": [3, 12], "tzdata": [3, 10], "u": 1, "uk": [1, 4], "unbias": 5, "uncertainti": [5, 12], "uncom": 1, "under": [1, 9], "understan": 10, "understand": [6, 10], "undertak": 10, "unif": [3, 10], "uniform": 3, "uninstal": [3, 10], "uniqu": [3, 5], "unless": 9, "unseen": 0, "unstandard": 1, "until": [9, 12], "unzip": 5, "up": [1, 5, 10], "updat": [3, 5, 9, 11, 13], "upload": 10, "upper": 10, "us": [3, 6, 8, 9, 10, 11, 12, 14], "usag": 9, "user": 9, "user_guid": 3, "userwarn": 1, "usr": [1, 3, 10, 11], "util": [1, 5, 9], "v": [1, 6, 11, 13], "valid": [9, 10, 12, 13], "valu": [1, 3, 5, 7, 9, 10, 11, 12, 14], "value_count": 14, "van": 6, "var": 1, "var_covariates_test": 9, "var_groups_adapt": 9, "var_groups_test": 9, "var_groups_xxx": 9, "vari": 1, "variabl": [3, 5, 8, 9, 10, 12, 14], "varianc": [1, 3, 5, 7, 9, 11, 12], "variat": [5, 6, 12, 14], "variou": 3, "vector": [9, 12], "vectoris": 9, "ventricl": 5, "ventricle_z_predict": 13, "verbos": [9, 11], "veri": 1, "verif": 9, "verifi": [1, 5], "vernieuwingsimpul": 4, "version": [1, 5, 8], "versu": 3, "vertex": 12, "via": 4, "viabl": 1, "vidi": 4, "view": [1, 3, 14], "view_surf": 14, "violinplot": 14, "visit": 10, "visual": 0, "visualis": 5, "visul": 10, "viz": 13, "vol": 9, "vol2vec": 9, "volatla": 9, "volmask": 9, "volum": [9, 10], "voxel": [9, 12], "voxelwis": 12, "w": [1, 5], "wa": [1, 3], "wai": [5, 9, 10], "wait": 12, "walltim": 12, "want": [1, 5, 9, 11], "warn": [5, 10, 11], "warp": [5, 6, 9, 12], "warp_param": 5, "warp_predict": 5, "wave": 5, "wb": 3, "wc": 5, "wdir": [1, 5], "we": [1, 2, 3, 4, 5, 10, 11, 14], "websit": 8, "well": [3, 10], "wellcom": 4, "were": [1, 10], "westly": 6, "wget": 10, "what": [3, 5, 10, 14], "whatev": 10, "wheel": [3, 10], "when": [1, 3, 5, 9, 10], "where": [1, 3, 5, 9, 10, 12, 14], "wherev": 1, "whether": [1, 5, 9], "which": [1, 2, 3, 8, 9, 12, 13], "whichev": 1, "while": 10, "whilst": 1, "whitegrid": 5, "whl": [3, 10], "who": 10, "whole": [1, 5], "why": 10, "width": [1, 5, 11], "william": 9, "wise": [9, 12], "wish": [1, 5], "without": [5, 12], "witten": 9, "wolfer": [2, 4, 6, 9, 10], "work": [3, 6], "worker": 11, "working_dir": 12, "world": 9, "worthi": 1, "would": [1, 5, 10], "wrap": 9, "write": [1, 3, 5, 9, 10, 12], "write_nii": 9, "written": [2, 3, 5, 9], "www": [2, 3, 6, 8, 13, 14], "x": [1, 3, 5, 9, 10, 11, 12, 14], "x0_dummi": 5, "x1": [10, 13], "x2": [10, 13], "x_ad": 5, "x_adapt": 3, "x_dummi": 5, "x_forward": 10, "x_te": [1, 5], "x_test": [1, 3], "x_test_txfr": 3, "x_tr": 1, "x_train": [1, 3], "xarrai": [3, 10], "xcov": 9, "xdot": 10, "xlabel": [1, 5, 11], "xlim": [5, 13], "xmax": [1, 5], "xmin": [1, 5], "xtick": [10, 11, 13], "xv": 9, "xx": 5, "xz_tr": 9, "y": [1, 3, 5, 8, 9, 10, 11, 13, 14], "y2": 10, "y_ad": 5, "y_adapt": 3, "y_mean_te_sit": 1, "y_te": [1, 5], "y_te_resc": 5, "y_te_rescaled_al": 5, "y_test": [1, 3], "y_test_txfr": 3, "y_tr": 1, "y_train": [1, 3], "y_var_te_sit": 1, "ya_eul": 1, "year": [5, 10], "yhat": [3, 5, 7, 9, 10, 12], "yhat_dummi": 5, "yhat_forward": 10, "yhat_mean_te_sit": 1, "yhat_predict": 5, "yhat_t": [1, 5], "yhat_var_te_sit": 1, "yield": 9, "ylabel": [1, 5, 11], "ylim": [1, 10, 13], "you": [1, 2, 3, 5, 6, 9, 10, 11, 14], "young": 1, "your": [1, 3, 5, 10, 12, 14], "ys2": [3, 7, 9, 10], "ys2_2fold": 10, "ys2_dummi": 5, "ys2_predict": 5, "ytick": [11, 13], "z": [1, 3, 5, 7, 9, 10, 11, 13], "z_col": 13, "z_df": [5, 13, 14], "z_dir": 5, "z_long_format": 14, "z_neg": 14, "z_posit": 14, "z_predict": [5, 13, 14], "z_score": 3, "zabihi": [4, 6, 10], "zero": [1, 5, 9, 10, 11], "zeros_lik": 5, "zhou": 6, "zip": [3, 5, 10], "zuluaga": 6}, "titles": ["Predictive Clinical Neuroscience toolkit", "Predictive Clinical Neuroscience Toolkit", "FAQs", "Predictive Clinical Neuroscience Toolkit", "Acknowledgements", "Using lifespan models to make predictions on new data", "References", "Glossary", "install", "Module Index", "DEMO ON NORMATIVE MODELING", "Load Data", "Background", "post-hoc tutorial", "visualization tutorial"], "titleterms": {"": 10, "0": [3, 10], "1": [1, 3, 10], "10": 1, "11": 1, "12": 1, "2": [1, 3, 10], "3": [1, 3, 10], "4": [1, 3, 10], "4a": 1, "5": [1, 3, 10], "6": [1, 3, 10], "7": [1, 10], "8": [1, 10], "9": [1, 10], "In": 10, "ON": 10, "The": 1, "abbrevi": 7, "accuraci": 11, "acknowledg": 4, "adapt": [3, 5], "add": 1, "algorithm": 1, "altern": 8, "analysi": [1, 13], "andr": 3, "appli": 10, "ask": 2, "b": 1, "background": [0, 10, 12], "basi": 1, "basic": [8, 12], "batch": 3, "bayesian": [1, 3], "bb": 11, "berthet": 3, "brain": [1, 14], "brainchart": [], "calcul": 10, "case": 13, "centil": 14, "chang": 10, "cite": 6, "class": 0, "classic": 13, "classif": 13, "clinic": [0, 1, 3], "combin": 1, "command": 12, "compon": 11, "comput": 1, "configur": [3, 5], "connectom": 11, "control": 13, "cortic": [1, 13], "count": 14, "covari": [1, 3, 5], "covariate_normsampl": 10, "cpm": 11, "creat": [3, 11], "cross": 11, "data": [1, 3, 5, 10, 11, 12, 13], "datafram": 1, "dataset": [], "dementia": 10, "demo": 10, "describ": 1, "deviat": [10, 13, 14], "directori": 1, "doc": 0, "doe": 10, "download": [], "dummi": 5, "edit": 3, "effect": [1, 3], "elast": 11, "estim": [1, 3, 10, 12], "evalu": 1, "expans": 1, "extrem": [10, 14], "featur": 13, "figur": 1, "file": [1, 3, 10], "fit": [5, 11], "folder": 3, "format": [10, 12], "forward": 10, "framework": 1, "frequent": 2, "function": [0, 10], "get": 0, "glossari": 7, "grab": [1, 3], "groom": 3, "hbr": 3, "hierarch": 3, "hoc": [1, 13], "how": 6, "hyppocamp": 10, "i": 12, "idea": 1, "implement": 10, "index": 9, "input": [3, 10], "instal": [1, 3, 8, 10], "interpret": [1, 3], "intro": 12, "kei": 7, "l1": 11, "l2": 11, "lasso": 11, "librari": [1, 3], "lifespan": 5, "line": 12, "linear": [1, 11], "load": [5, 10, 11], "local": 8, "machin": 8, "make": 5, "map": 13, "marquand": 3, "mass": 13, "measur": 3, "model": [1, 3, 5, 10, 11, 12, 13, 14], "modul": 9, "multi": 1, "necessari": [1, 3], "neg": 14, "net": 11, "neurosci": [0, 1, 3], "new": 5, "nordan": 10, "norm": [1, 3, 5, 10, 12, 13, 14], "onto": 3, "option": [5, 10], "other": 0, "output": [1, 13, 14], "overview": 3, "paralellis": 12, "patient": 10, "pcntoolkit": [6, 10, 12], "percent": 10, "percentag": 10, "perform": [1, 3], "pierr": 3, "plot": [5, 14], "posit": 14, "post": [1, 13], "predict": [0, 1, 3, 5, 11], "prepar": [1, 3, 5, 10], "preprar": 1, "princip": 11, "protocol": 1, "psychiatri": 1, "question": 2, "quickstart": 8, "regress": [1, 3, 11], "regular": 11, "resourc": 8, "ridg": 11, "rutherford": 3, "saig": 3, "sampl": 13, "scanner": 1, "score": 13, "script": 12, "set": 3, "setup": 1, "share": 8, "site": [1, 3], "space": 14, "speed": 12, "spline": 1, "split": [1, 11], "start": 0, "step": [1, 3], "stori": 10, "stuff": 0, "subfield": 10, "svm": 13, "t": 13, "task": 10, "test": [1, 3, 5, 11, 13], "testresponse_normsampl": 10, "thick": [1, 13], "thing": 12, "toolkit": [0, 1, 3], "train": [1, 3, 11], "transfer": 3, "true": 13, "tutori": 0, "two": 13, "univari": 13, "unseen": 3, "up": 12, "us": [0, 1, 5, 13], "usag": [8, 12], "valid": 11, "variabl": 1, "violin": 14, "visual": [1, 10, 14], "viz": [1, 14], "what": 12, "which": [5, 10]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"(Optional) Load adaptation data": [[5, "optional-load-adaptation-data"]], "Accuracy of Predictions": [[11, "accuracy-of-predictions"]], "Acknowledgements": [[4, null]], "Add variable to model site/scanner effects": [[1, "add-variable-to-model-site-scanner-effects"]], "Algorithm & Modeling": [[1, "algorithm-modeling"]], "Alternative installation (on a shared resource)": [[8, "alternative-installation-on-a-shared-resource"]], "BBS Cross Validation": [[11, "bbs-cross-validation"]], "Background": [[0, null]], "Background Story": [[10, "background-story"]], "Basic installation (on a local machine)": [[8, "basic-installation-on-a-local-machine"]], "Basic usage (command line)": [[12, "basic-usage-command-line"]], "Basic usage (scripted)": [[12, "basic-usage-scripted"]], "Basis expansion using B-Splines": [[1, "basis-expansion-using-b-splines"]], "Brain space extreme deviation counts": [[14, "brain-space-extreme-deviation-counts"]], "CPM Cross Validation": [[11, "cpm-cross-validation"]], "Centile visualization": [[14, "centile-visualization"]], "Classical case-control testing": [[13, "classical-case-control-testing"]], "Combine covariate & cortical thickness dataframes": [[1, "combine-covariate-cortical-thickness-dataframes"]], "Configure covariates": [[5, "configure-covariates"]], "Configure which models to fit": [[5, "configure-which-models-to-fit"]], "Connectome Predictive Modelling": [[11, "connectome-predictive-modelling"]], "Create Train/Test Splits": [[11, "create-train-test-splits"]], "Created by Saige Rutherford": [[3, "created-by-saige-rutherford"]], "DEMO ON NORMATIVE MODELING": [[10, null]], "Data Preparation": [[1, "data-preparation"]], "Data formats": [[12, "data-formats"]], "Describe the normative model performance": [[1, "describe-the-normative-model-performance"]], "Elastic Net (Linear Regression + L1/L2 Regularization)": [[11, "elastic-net-linear-regression-l1-l2-regularization"]], "Estimate normative model": [[1, "estimate-normative-model"]], "Evaluation & Interpretation": [[1, "evaluation-interpretation"]], "Extreme negative deviation viz": [[14, "extreme-negative-deviation-viz"]], "Extreme positive deviation viz": [[14, "extreme-positive-deviation-viz"]], "Figure 4A viz": [[1, "figure-4a-viz"]], "Fit Linear Regression Model": [[11, "fit-linear-regression-model"]], "Frequently Asked Questions": [[2, null]], "Function & Class Docs": [[0, null]], "Getting started": [[0, null]], "Glossary": [[7, null]], "Hierarchical Bayesian Regression Normative Modelling and Transfer onto unseen site.": [[3, "hierarchical-bayesian-regression-normative-modelling-and-transfer-onto-unseen-site"]], "How to cite PCNtoolkit": [[6, null]], "Install necessary libraries & grab data files": [[1, "install-necessary-libraries-grab-data-files"]], "Installation": [[8, null]], "Intro to normative modelling": [[12, "intro-to-normative-modelling"]], "Key abbreviations": [[7, "key-abbreviations"]], "Lasso (Linear Regression + L1 Regularization)": [[11, "lasso-linear-regression-l1-regularization"]], "Load Data": [[11, null]], "Load test data": [[5, "load-test-data"]], "Make predictions": [[5, "make-predictions"]], "Mass univariate two sample t-tests on deviation score maps": [[13, "mass-univariate-two-sample-t-tests-on-deviation-score-maps"]], "Mass univariate two sample t-tests on true cortical thickness data": [[13, "mass-univariate-two-sample-t-tests-on-true-cortical-thickness-data"]], "Module Index": [[9, null]], "Other Useful Stuff": [[0, null]], "Overview": [[3, "overview"]], "PCNtoolkit Background": [[12, null]], "Paralellising estimation to speed things up": [[12, "paralellising-estimation-to-speed-things-up"]], "Plotting the normative models": [[5, "plotting-the-normative-models"]], "Post-Hoc analysis ideas": [[1, "post-hoc-analysis-ideas"]], "Post-hoc analysis on normative modeling outputs": [[13, null]], "Predictive Clinical Neuroscience Toolkit": [[1, null], [3, null]], "Predictive Clinical Neuroscience toolkit": [[0, null]], "Prepare covariate data": [[1, "prepare-covariate-data"]], "Preparing dummy data for plotting": [[5, "preparing-dummy-data-for-plotting"]], "Preprare brain data": [[1, "preprare-brain-data"]], "Principal Component Regression (BBS)": [[11, "principal-component-regression-bbs"]], "Quickstart usage": [[8, "quickstart-usage"]], "Ridge (Linear Regression + L2 Regularization)": [[11, "ridge-linear-regression-l2-regularization"]], "SVM classification": [[13, "svm-classification"]], "SVM using deviation scores as features": [[13, "svm-using-deviation-scores-as-features"]], "SVM using true cortical thickness data as features": [[13, "svm-using-true-cortical-thickness-data-as-features"]], "Setup output directories": [[1, "setup-output-directories"]], "Step 0: Install necessary libraries & grab data files": [[3, "step-0-install-necessary-libraries-grab-data-files"]], "Step 1.": [[1, "step-1"]], "Step 10.": [[1, "step-10"]], "Step 11.": [[1, "step-11"]], "Step 12.": [[1, "step-12"]], "Step 1: Prepare training and testing sets": [[3, "step-1-prepare-training-and-testing-sets"]], "Step 2.": [[1, "step-2"]], "Step 2: Configure HBR inputs: covariates, measures and batch effects": [[3, "step-2-configure-hbr-inputs-covariates-measures-and-batch-effects"]], "Step 3.": [[1, "step-3"]], "Step 3: Files and Folders grooming": [[3, "step-3-files-and-folders-grooming"]], "Step 4.": [[1, "step-4"]], "Step 4: Estimating the models": [[3, "step-4-estimating-the-models"]], "Step 5.": [[1, "step-5"]], "Step 5: Transfering the models to unseen sites": [[3, "step-5-transfering-the-models-to-unseen-sites"]], "Step 6.": [[1, "step-6"]], "Step 6: Interpreting model performance": [[3, "step-6-interpreting-model-performance"]], "Step 7.": [[1, "step-7"]], "Step 8.": [[1, "step-8"]], "Step 9.": [[1, "step-9"]], "TASK 1: Format input data": [[10, "task-1-format-input-data"]], "TASK 2: Prepare the covariate_normsample and testresponse_normsample file.": [[10, "task-2-prepare-the-covariate-normsample-and-testresponse-normsample-file"]], "TASK 3: Estimate normative model": [[10, "task-3-estimate-normative-model"]], "TASK 4: Estimate the forward model of the normative model": [[10, "task-4-estimate-the-forward-model-of-the-normative-model"]], "TASK 5: Visualize forward model": [[10, "task-5-visualize-forward-model"]], "TASK 6: Apply the normative model to Nordan\u2019s data and the dementia patients.": [[10, "task-6-apply-the-normative-model-to-nordans-data-and-the-dementia-patients"]], "TASK 7: In which hyppocampal subfield(s) does Nordan deviate extremely?": [[10, "task-7-in-which-hyppocampal-subfield-s-does-nordan-deviate-extremely"]], "TASK 8 (OPTIONAL): Implement a function that calculates percentage change.": [[10, "task-8-optional-implement-a-function-that-calculates-percentage-change"]], "TASK 9 (OPTIONAL): Visualize percent change": [[10, "task-9-optional-visualize-percent-change"]], "Task 0: Load data and install PCNtoolkit": [[10, "task-0-load-data-and-install-pcntoolkit"]], "The Normative Modeling Framework for Computational Psychiatry Protocol": [[1, "the-normative-modeling-framework-for-computational-psychiatry-protocol"]], "Train/test split": [[1, "train-test-split"]], "Tutorials": [[0, null]], "Using Bayesian Linear Regression and Multi-Site Cortical Thickness Data": [[1, "using-bayesian-linear-regression-and-multi-site-cortical-thickness-data"]], "Using lifespan models to make predictions on new data": [[5, null]], "Violin plots of extreme deviations": [[14, "violin-plots-of-extreme-deviations"]], "Visualization of normative modeling outputs": [[14, null]], "Visualize normative model outputs": [[1, "visualize-normative-model-outputs"]], "What is the PCNtoolkit?": [[12, "what-is-the-pcntoolkit"]], "adapted/edited by Andre Marquand and Pierre Berthet": [[3, "adapted-edited-by-andre-marquand-and-pierre-berthet"]]}, "docnames": ["index", "pages/BLR_normativemodel_protocol", "pages/FAQs", "pages/HBR_NormativeModel_FCONdata_Tutorial", "pages/acknowledgements", "pages/apply_normative_models", "pages/citing", "pages/glossary", "pages/installation", "pages/modindex", "pages/normative_modelling_walkthrough", "pages/other_predictive_models", "pages/pcntoolkit_background", "pages/post_hoc_analysis", "pages/visualizations"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "pages/BLR_normativemodel_protocol.rst", "pages/FAQs.rst", "pages/HBR_NormativeModel_FCONdata_Tutorial.rst", "pages/acknowledgements.rst", "pages/apply_normative_models.rst", "pages/citing.rst", "pages/glossary.rst", "pages/installation.rst", "pages/modindex.rst", "pages/normative_modelling_walkthrough.rst", "pages/other_predictive_models.rst", "pages/pcntoolkit_background.rst", "pages/post_hoc_analysis.rst", "pages/visualizations.rst"], "indexentries": {}, "objects": {"": [[9, 0, 0, "-", "bayesreg"], [9, 0, 0, "-", "fileio"], [9, 0, 0, "-", "gp"], [9, 0, 0, "-", "normative"], [9, 0, 0, "-", "normative_parallel"], [9, 0, 0, "-", "rfa"], [9, 0, 0, "-", "trendsurf"], [9, 0, 0, "-", "util"]], "bayesreg": [[9, 1, 1, "", "BLR"]], "bayesreg.BLR": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "penalized_loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"], [9, 2, 1, "", "predict_and_adjust"]], "fileio": [[9, 3, 1, "", "alphanum_key"], [9, 3, 1, "", "create_mask"], [9, 3, 1, "", "file_extension"], [9, 3, 1, "", "file_stem"], [9, 3, 1, "", "file_type"], [9, 3, 1, "", "load"], [9, 3, 1, "", "load_ascii"], [9, 3, 1, "", "load_cifti"], [9, 3, 1, "", "load_nifti"], [9, 3, 1, "", "load_pd"], [9, 3, 1, "", "predictive_interval"], [9, 3, 1, "", "save"], [9, 3, 1, "", "save_ascii"], [9, 3, 1, "", "save_cifti"], [9, 3, 1, "", "save_nifti"], [9, 3, 1, "", "save_pd"], [9, 3, 1, "", "sort_nicely"], [9, 3, 1, "", "tryint"], [9, 3, 1, "", "vol2vec"]], "gp": [[9, 1, 1, "", "CovBase"], [9, 1, 1, "", "CovLin"], [9, 1, 1, "", "CovSqExp"], [9, 1, 1, "", "CovSqExpARD"], [9, 1, 1, "", "CovSum"], [9, 1, 1, "", "GPR"]], "gp.CovBase": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovLin": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSqExp": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSqExpARD": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.CovSum": [[9, 2, 1, "", "cov"], [9, 2, 1, "", "dcov"], [9, 2, 1, "", "get_n_params"]], "gp.GPR": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"]], "normative": [[9, 3, 1, "", "entrypoint"], [9, 3, 1, "", "estimate"], [9, 3, 1, "", "evaluate"], [9, 3, 1, "", "extend"], [9, 3, 1, "", "fit"], [9, 3, 1, "", "get_args"], [9, 3, 1, "", "load_response_vars"], [9, 3, 1, "", "main"], [9, 3, 1, "", "merge"], [9, 3, 1, "", "predict"], [9, 3, 1, "", "save_results"], [9, 3, 1, "", "transfer"], [9, 3, 1, "", "tune"]], "normative_parallel": [[9, 3, 1, "", "bashwrap_nm"], [9, 3, 1, "", "check_job_status"], [9, 3, 1, "", "check_jobs"], [9, 3, 1, "", "collect_nm"], [9, 3, 1, "", "delete_nm"], [9, 3, 1, "", "execute_nm"], [9, 3, 1, "", "qsub_nm"], [9, 3, 1, "", "rerun_nm"], [9, 3, 1, "", "retrieve_jobs"], [9, 3, 1, "", "sbatch_nm"], [9, 3, 1, "", "sbatchrerun_nm"], [9, 3, 1, "", "sbatchwrap_nm"], [9, 3, 1, "", "split_nm"]], "rfa": [[9, 1, 1, "", "GPRRFA"]], "rfa.GPRRFA": [[9, 2, 1, "", "dloglik"], [9, 2, 1, "", "estimate"], [9, 2, 1, "", "get_n_params"], [9, 2, 1, "", "loglik"], [9, 2, 1, "", "post"], [9, 2, 1, "", "predict"]], "trendsurf": [[9, 3, 1, "", "create_basis"], [9, 3, 1, "", "estimate"], [9, 3, 1, "", "get_args"], [9, 3, 1, "", "load_data"], [9, 3, 1, "", "main"], [9, 3, 1, "", "write_nii"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"": [1, 2, 3, 5, 6, 9, 11, 12, 13], "0": [1, 5, 6, 9, 11, 13, 14], "00": 12, "000": 11, "00000": 1, "000000": [1, 14], "000047": 13, "00036": 6, "000558": 13, "00079": 13, "001": 9, "001288": [], "001409": 13, "001476": 13, "001484": 13, "001658": 13, "002": 6, "002599": 13, "003": [], "005493": 10, "006651": [], "006802": 13, "00696": [2, 6, 13, 14], "007984": 13, "009": 6, "01": [5, 9, 11, 12], "010348": 13, "01047": 6, "01057": 6, "011567": 13, "013": 6, "014447": 13, "0146": 6, "01613": 13, "01673": 13, "016768": 13, "017": 6, "019": 6, "019369": 13, "019935": 13, "02": [], "020": 6, "020748": [], "021034": 13, "021777": 13, "022": [2, 6, 13, 14], "022262": [], "023": 6, "025994": 13, "026640": [], "026761": 13, "027027": 14, "027299": 13, "027721": 1, "029075": 13, "029715": [], "02k": [], "03": [], "030": 6, "032": 11, "034441": 1, "034681": [], "035835": 13, "037178": [], "03970345334827422": 11, "039976": [], "04": 6, "040304": 13, "0423918944559644": 11, "04314": 13, "043665": 13, "04382929483334259": 11, "04401109832998077": 11, "0441": 6, "046111": 13, "04611195889050071": 11, "046162": 13, "046377": 13, "049578": [], "05": [5, 6, 13], "053381": [], "053756": [], "0544661418971657": 11, "055785": 13, "056": 11, "057551": [], "060369": [], "061877": 10, "063284": 1, "066125": 13, "066297": 13, "067346": 13, "07": 13, "070606": 13, "072725": 13, "073063075099014": 11, "07308221069854426": 11, "074854": 13, "07594686106816084": 11, "076018": 13, "079938": [], "07k": [], "08": [1, 6], "080019": 1, "080235": [], "081225": [], "083211": [], "08652435": 5, "08663": 13, "0877297694903234": 11, "089187": 13, "089765": 1, "089863": 10, "09891903798924773": 11, "099481": [], "0a": [], "0f8461b95f1f": 1, "0m": [], "1": [5, 6, 9, 11, 12, 13, 14], "10": [6, 9, 10, 11, 12, 14], "100": [3, 9, 10, 11, 13], "1000": 1, "1002": 6, "1007": 6, "101": 13, "1016": 6, "101613": [], "1017": 6, "102": 10, "103": 5, "1038": 6, "10611096508367268": 11, "107": [], "108": [], "108108": 14, "108783": [], "109": [], "11": [6, 11, 13, 14], "110": 5, "1101": 6, "1104": 13, "11087317503455552": 11, "111": 10, "11115": 5, "114": 10, "114371": 1, "114561": [], "114679": 1, "114835": [], "116": 10, "1162": 1, "116795": [], "1187": 1, "118715": 6, "12": [3, 6, 11, 14], "1206": 1, "120775": 1, "121": 10, "122": 10, "123": [], "1237": 11, "124": [], "126": [], "126840": 1, "127463": [], "128": [], "129": [], "13": [11, 14], "13078279402705562": 11, "130914": [], "130988": [], "131": [], "131996": 1, "133": [], "133998": [], "1342": [], "135": 13, "1353": 1, "136": [], "1365": [], "13839227040918445": 11, "14": [1, 11, 13, 14], "140": [], "141": [11, 13], "141458": [], "142": 13, "142857": 14, "143": [10, 13], "144212": [], "1444": [], "144932": [], "145": [], "145213": 10, "146": [], "146264": [], "147": 10, "148": [], "149": 13, "15": [11, 13], "1500": [], "15009167262110168": 11, "150743": [], "150d24f295ccda92c9789d421e52c3858d43c66874deec4a463a87b4e5533448": [], "151": 11, "153": [], "15375414865695802": 11, "15485e": 1, "156": 10, "157321": 1, "157779": [], "158": [], "1580": 10, "1584": 10, "159": [], "159707": [], "16": [1, 13, 14], "160": 10, "160437": [], "160474": [], "16051209546739642": 11, "160k": [], "161901": 1, "1621": 10, "1627": 10, "163753": [], "164354": 14, "1687": 1, "1688": 1, "1689": 1, "1690": 1, "1691": 1, "1692": 1, "1695": [], "17": [], "172": 11, "17484": [], "176": 13, "176631": [], "176755": [], "177": 13, "1788130249701112": 11, "179": 13, "17936527851907158": 11, "17k": [], "18": [1, 11, 13], "180": 13, "1806": 6, "1808": 6, "181": 10, "182346": 14, "18265009272980137": 11, "184": [], "1844": 10, "185": [11, 13], "1851": 10, "185k": [], "187": 11, "18805636326129616": 11, "188944": [], "19": 1, "190903": [], "192": [], "1922": 10, "1925": 10, "193694": 14, "194510": [], "194601": [], "195124": [], "196": 1, "196432": [], "197": [], "198": [], "19814613": 5, "199": [], "1d": 9, "1da013ad20b77d85515a6a2318eaf7cc4baaa7772eb1d26249f923ce8d779d7": [], "1st": 9, "2": [5, 9, 11, 12, 13, 14], "20": [1, 10, 11, 13, 14], "200": 11, "2006": 9, "2007": 12, "2015": 6, "2016": 6, "2017": [6, 12], "2018": [6, 12], "2019": 6, "202": [], "2020": [6, 12], "20204581109658193": 11, "2021": [5, 6], "2022": [2, 6], "2023": [], "2024": [], "203989": [], "204": [], "204015": 1, "205": [], "205071": 10, "205818": [], "206": [], "20854": 13, "208671": [], "209377": [], "21": 14, "210": [], "211": [], "212": [], "213": [], "21318694590257792": 11, "213773": [], "215": [], "215689": [], "215816": [], "216529": [], "216747": 1, "217126": 13, "218": [], "219152": [], "219322": 13, "22": 1, "220194": [], "220397": 1, "222": [], "223": [], "224": [], "227177": [], "2273489799189": 11, "227358858718446": 11, "23": [3, 6, 11, 14], "232": [], "233": [], "234": [], "234088": 13, "235": 1, "235576": [], "236": [], "236056": [], "237": [], "239022": [], "24": [11, 14], "240": [], "240227": [], "241": [], "24211": 13, "2423": [], "2432x1824": 1, "244": [], "247": [], "25": [1, 5, 11, 13, 14], "250000": 14, "251486": 13, "252": [], "253": [], "25386": 6, "254": [], "255": 11, "257838": 1, "258": [], "258970": [], "259200": 11, "259996": [], "25h": [], "25hbuild": [], "25hdone": [], "25hinstal": [], "25l": [], "26": [1, 14], "260": [], "261": [], "262": [], "262352": [], "263": [], "264058": 1, "266": [], "267": [], "267055": 1, "267676": 13, "268": [], "269": [], "269259": [], "27": [1, 5, 14], "271": [], "272905": [], "273": [], "274": [], "275": [], "278": 13, "28": [1, 11, 14], "282": [], "283": [], "285": [], "287030": [], "29": 1, "290": [], "290805": [], "292557": [], "293551": [], "2988": [], "2d": 9, "2f": [11, 13], "2k": [], "2nd": 9, "3": [5, 6, 8, 11, 12, 13], "30": 10, "300085": [], "301617": [], "302": [], "303": [], "3043": [], "304335": [], "304889": [], "306": 11, "307660": [], "308": [], "309772": [], "31": [], "310": [], "310488": 10, "311": [], "312": [], "313": [], "314": [], "315065": [], "315780": 10, "31896": 1, "31m15": [], "31m16": [], "31m2": [], "31m37": [], "31m55": [], "31m9": [], "32": [1, 10], "3200": 10, "3201": 10, "320315": [], "3210": [], "322": [], "323": [], "323486": [], "323542": [], "324": [], "324048": 13, "325": [], "325755": [], "326167": [], "327": [], "327199": [], "328": [], "3284": [], "329689": [], "32m": [], "32m1": [], "32m64": [], "32m8": [], "32m84": [], "33": [1, 14], "330": [], "332": [], "335159": [], "337646": 13, "339": 1, "33m0": [], "34": 1, "345626": [], "346": [], "3461": [], "347202": [], "35": [1, 11], "352283": [], "3531": [], "356075": [], "359058": [], "36": 10, "360": 11, "364": [], "367": [], "3681": [], "369738": 13, "36m0": [], "37": [1, 10, 11], "371362": [], "372": [], "373764": [], "3771": 10, "3781": 10, "38": [], "380": 1, "383": [], "3835": [], "384": [], "384434": [], "387": [], "389816": [], "39": [10, 12, 14], "391590": [], "391931": [], "392837": [], "393": [], "395619": 1, "397232": 1, "398659": [], "3_68": 6, "3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1": [], "3c": [], "3d": [9, 14], "3f": 11, "4": [5, 9, 11, 12, 13, 14], "40": 10, "40227749": 5, "403040": [], "403248": [], "403631": 1, "4036642558553467": 11, "406": [], "40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00": [], "407821": [], "409074": [], "41": [1, 10, 11], "410418": [], "411133": [], "413415": 1, "417773": [], "418129": [], "419": [], "42": [1, 10, 11, 12], "4205": 5, "425135": 13, "426137": [], "428298": [], "428880": [], "43": [1, 12], "430481": [], "432432": 14, "433625": [], "436": 5, "436808": [], "438215": [], "439181": [], "439868": 13, "44": 1, "440": [], "442643": 13, "443": [], "444": [], "445961": 10, "447": [], "448302": [], "449140": 14, "449778": [], "45": [1, 11], "450319": 1, "452088": 1, "45898577": 5, "46": [1, 14], "460832": [], "467": [], "467595": [], "469843": [], "47": 1, "470": [], "474967": [], "475": [], "476": [], "476531": 1, "4782": [], "48": [10, 12], "481": [], "481121": [], "482": [], "484454": [], "49": [1, 12], "49266088": 5, "493": [], "493903": [], "494304": [], "496024": [], "497283": 1, "497401": 10, "498272": 1, "4d": 9, "4gb": [9, 12], "5": [2, 5, 6, 9, 11, 12, 13, 14], "50": [1, 10, 11, 14], "500": 1, "500mb": 9, "502": [], "504826": [], "505049v1": 6, "505300": [], "505521": [], "509099": 1, "51": 11, "510988v1": 6, "513867": 1, "51813e": 1, "52": [10, 12], "521": [], "521166": [], "525": [], "527": 11, "528926": [], "52k": [], "532": 11, "533": [], "535445": [], "54": 1, "543947": 1, "54496": 13, "547377": 1, "55": 12, "551999": [], "555932": 1, "55690777": 5, "558": [], "558200": [], "56": [1, 12], "561": [], "562": 11, "562530": [], "565": [], "565685": [], "567312": [], "569": [], "57": [], "57000": 5, "572": 11, "577": 11, "578": 1, "57867990423236": 11, "58": [1, 10], "581": 11, "582": 11, "583": [], "586": [], "589184": [], "59": 12, "590": 1, "590397": [], "592060": [], "595": [], "597": [], "59728": 6, "59789079": 5, "599": 11, "6": [11, 12, 13, 14], "60": [9, 10], "600": 11, "601": 13, "603031": 14, "603410": 1, "604": 11, "604355": 13, "605": 11, "605572": [], "608": 11, "609": [], "611": 11, "61191": 1, "613": [], "614": 11, "614878": 14, "614k": [], "615335": [], "617": [], "618157": [], "619": 11, "62": 11, "620": 11, "621858": 1, "622": 11, "624": 11, "625": 11, "626": 11, "62632393e": 5, "628752": [], "629722": [], "629828": [], "63": [1, 12], "630935": 1, "631": 11, "632": 11, "633": 11, "634593": [], "636": 11, "638": 11, "639309": 1, "642": 11, "643": 11, "644": 11, "646": 11, "648": 11, "65": [10, 11, 13], "650": 11, "651": 11, "651798": [], "652": 11, "653": 11, "654": [], "655": [], "656": 11, "657": 11, "657823": [], "658": 11, "659": 11, "661": 11, "662": 11, "665": 11, "666": 11, "668": 11, "66k": [], "67": [10, 11, 13], "671": 11, "673": 11, "674": 11, "675": 11, "675065": [], "676": 11, "678": 11, "678385": [], "68": 10, "680": 11, "682": 11, "683": 11, "684": 11, "687": 11, "687619": [], "688": [], "688394": [], "69": [1, 10], "690534": 1, "692": 11, "693186": [], "695": 11, "696": 11, "697": 11, "698": 11, "699": 11, "699644": [], "7": [5, 8, 11, 13, 14], "70": [10, 11], "700": 11, "701": 11, "704": 11, "705": 11, "707": [], "708": 11, "709": 11, "70927853a6d9166bc777922736063a6f99c43a327c802f9326": [], "710": 11, "713": 11, "714286": 14, "716": 1, "719049": [], "72": [], "720864": 1, "722": 11, "723": 11, "723477": 1, "726283": [], "72904": [5, 6], "73": 10, "730": 1, "730322": [], "734": 11, "736912": 1, "737": 13, "738550": [], "739508": [], "74": 14, "741": 11, "741273": 1, "75": [1, 5, 10, 11, 14], "750000": 14, "752897": [], "753296": 13, "756": [], "756048": [], "76": 14, "761309": 10, "764896": [], "767": [], "767569": [], "768229": [], "772656": [], "77666469": 5, "777115": [], "78": 10, "784798": 1, "785201": [], "786917": [], "79": 10, "792820": 1, "794018": [], "794061": [], "798426": 1, "798819": [], "7k": [], "8": [11, 13, 14], "80": [1, 10, 12], "801434": [], "807774": [], "809310": [], "81": 10, "810543": [], "81397727": 5, "817591": [], "82": 5, "823380": [], "824324": 14, "829445": [], "83": 11, "830": 11, "836915": [], "837262": 10, "837479": 1, "84": 1, "841000": 1, "84482": [], "846316": [], "847194": [], "847632": [], "85": [], "855": 13, "86": 1, "8618322913218321": 11, "864114": 10, "869822": [], "87": [], "874375": [], "877": 11, "883650580549045": 11, "893458": [], "896808": [], "9": [11, 14], "90": [1, 5, 10], "901227": [], "90m": [], "91": 10, "912687": [], "913196": [], "917949": [], "92": [], "920924": [], "929914": [], "92k": [], "9342": 14, "9343": 14, "934342": [], "936928": 1, "938256": [], "94": 12, "945257": 1, "946": 11, "946562": [], "948094": [], "949211": [], "95": [1, 5, 10, 11], "950594": [], "955163": [], "96": [10, 13], "963160": [], "966509": [], "969863": [], "97430261e": 5, "978": 6, "979009": [], "980648": [], "980835": 1, "980896": [], "987352": [], "989733": 1, "99": [5, 10, 11], "9e": [], "A": [1, 2, 5, 6, 9, 10, 12], "And": 3, "As": [3, 5, 9, 10], "At": [5, 12], "By": 5, "For": [1, 3, 5, 8, 9, 12], "If": [1, 5, 6, 9, 12], "In": [1, 5, 6, 9, 12], "It": [1, 9], "No": [5, 10], "Not": 9, "ON": 0, "Of": 5, "That": [3, 9], "The": [0, 2, 3, 5, 6, 9, 10, 12, 13, 14], "Then": [1, 3, 5, 10], "There": [9, 12], "These": [5, 9, 12], "To": [1, 10], "With": [6, 10], "_2fold": 10, "_______________________________________________________________________________": 10, "__file__": 8, "__name__": 11, "_bspline_": 1, "_coordinate_desc": 11, "_dummi": 5, "_estim": [3, 9, 12], "_forward": 10, "_int_": 1, "_nordan": 10, "_parse_hyp": 5, "_predict": 12, "_test": 3, "_thick": 13, "_train": 3, "_transfer": 3, "_z_predict": 5, "a2009": 14, "a7d14b9f2beb": [], "a_list": 14, "ab": [6, 10], "abcd": 5, "abl": 5, "abolmaesumi": 6, "about": [2, 3, 5, 10], "abov": [1, 5, 11, 12], "absolut": [1, 5], "abstract": 9, "accompani": 5, "accord": 9, "accordingli": 14, "account": [5, 9, 10], "accross": 9, "accur": [1, 11], "accuraci": 1, "achiev": 12, "acknowledg": 0, "across": [1, 5, 11, 12], "activ": 8, "actual": [3, 5, 10], "ad": [1, 3, 10], "adap": 9, "adapt": 9, "adaptation_data": 5, "adaptcovfil": 5, "adaptrespfil": 5, "adaptvargroupfil": 5, "adbefil": 3, "add": 9, "add_subplot": 10, "addit": [1, 5, 9, 12], "addition": 12, "address": [1, 9], "adhd": 6, "adjust": [5, 9, 14], "adult": 1, "after": [1, 9], "ag": [1, 3, 5, 6, 10, 12], "against": [5, 12], "agartz": 6, "ago": 10, "aim": 12, "al": [1, 5, 12], "aleator": 5, "alg": [1, 3, 5, 9, 10, 12], "algorithm": [0, 9, 10, 12], "align": 1, "all": [1, 5, 9, 10, 12], "all_count": 14, "all_data": 1, "all_data_covari": 1, "all_data_featur": 1, "all_sit": 5, "allclos": 11, "allow": [1, 10, 12], "aln\u00e6": 6, "along": 12, "alpha": [1, 5, 9, 11, 13], "alpha_": 11, "alpha_grid": 11, "alphanum_kei": 9, "alphas_": 11, "alreadi": 14, "also": [1, 3, 5, 9, 10, 12, 14], "altern": [5, 9, 12], "alwai": [5, 9, 11, 12], "amarquand": 8, "amp": 13, "amygdala_z_predict": 13, "an": [1, 3, 4, 5, 9, 10, 11, 12, 14], "anaconda": 8, "anaconda3": 8, "analys": [3, 10], "analysi": [0, 2, 5], "anatomi": 6, "andr": 4, "andreassen": 6, "ani": [1, 5, 10], "annarbor_a": [], "annarbor_b": [], "annot": 14, "answer": 2, "ant_thick": 13, "aparc": 14, "aparcstats2t": 1, "app": 14, "appeal": 12, "append": [9, 10, 11, 13], "appli": [5, 9, 11, 12], "applic": 12, "appoint": 10, "approach": [1, 5, 6, 9, 12], "appropri": [9, 10, 14], "approprit": 10, "approx": 5, "approxim": [9, 12], "ar": [1, 2, 3, 4, 5, 9, 10, 11, 12], "arang": [5, 11], "architectur": 12, "archiv": [], "ard": 9, "area": 1, "arena": 6, "arg": 9, "argument": [1, 3, 9, 12], "around": 14, "arrai": [1, 5, 9, 11], "array_split": 11, "articl": [2, 5, 6, 13, 14], "artifact": 11, "arviz": [], "arxiv": 6, "ascii": [5, 9, 12], "ask": [0, 9], "assert": 11, "assign": 3, "assist": 6, "associ": 9, "assses": [], "assum": [1, 5, 9], "astyp": [1, 13], "athat": 9, "atla": [1, 9], "atlanta": [], "atlas_l": 14, "atlas_r": 14, "attempt": [], "auc": 13, "augustijn": 4, "autism": 6, "auto": 9, "autom": 1, "automat": [5, 9, 12], "automaticallu": 9, "avail": [5, 8], "averag": 6, "average_thick": 1, "avg_en": [], "avg_eul": 1, "avg_euler_cent": 1, "avg_euler_centered_neg": 1, "avg_euler_centered_neg_sqrt": 1, "await": [], "awk": 1, "ax": [1, 3, 10, 11, 13, 14], "axi": [1, 5, 10, 11, 13, 14], "axvlin": 11, "b": [5, 6, 9, 13], "back": 10, "backend": 11, "bad": 10, "bad_sub": [], "baltimor": [], "banaschewski": 6, "bangor": [], "bar": [10, 11], "barkema": 4, "baron": 6, "base": [5, 6, 9, 10, 11], "baseline_fonts": 11, "bash": 9, "bashwrap_nm": 9, "basi": [5, 6, 9, 12], "basic": [1, 3, 5, 9], "batch": [9, 12], "batch_effect": 3, "batch_effects_adapt": 3, "batch_effects_test": 3, "batch_effects_test_txfr": 3, "batch_effects_train": 3, "batch_siz": [9, 12], "bathch": 9, "bayesian": [0, 5, 6, 7, 9, 12], "bayesreg": [1, 9], "bb": 0, "bbox_inch": 5, "be_stor": 12, "becaus": [1, 3, 5, 11, 12], "beckmann": [2, 6], "becom": [], "been": [1, 12], "befor": [1, 3, 11, 12], "begin": 1, "behav": [], "behavior": 1, "behaviour": 6, "beijing_zang": [], "being": 12, "being_saig": 10, "belong": [1, 5], "below": [1, 5, 9, 10, 11, 12, 14], "benefici": 12, "benefit": 3, "berlin_marguli": [], "berthet": 6, "best": 10, "beta": [5, 9], "better": [10, 13], "between": [1, 3, 5, 7, 9, 10, 11], "beyond": 6, "bfg": 1, "bg_map": 14, "bia": [], "big": 6, "bigger_s": 11, "biggest": 5, "bin": 12, "binari": [1, 3, 9, 12], "biobank": 1, "biolog": [6, 12], "biomark": 10, "biopsych": 6, "biorxiv": 6, "bipolar": 6, "bishop": 9, "bitwise_and": 5, "bla": 8, "black": 1, "block": 5, "blr": [1, 5, 7, 9, 12], "blr_metric": 1, "blr_protocol": 1, "blr_site_metr": 1, "blue": 5, "boer": [4, 6], "bold": 13, "book": 10, "bool": [9, 11], "both": [1, 3, 9, 10, 14], "boundari": 1, "bourgeron": 6, "box": 14, "bpsc": 6, "brain": [6, 10, 11], "brain_al": 1, "brain_good": 1, "brainchart": 5, "brows": 2, "bspline": [1, 5], "bug": 9, "build": 10, "built": [1, 14], "buitelaar": 6, "b\u00f6lte": 6, "c": [1, 2, 6, 8, 9, 10, 11, 12], "c0": 11, "c1": 11, "c2": 11, "c4": [], "cach": 8, "cachetool": [], "calcul": [1, 9], "calculate_percentage_chang": 10, "calibr": [5, 9], "call": [1, 5, 9, 10, 12], "cambridge_buckn": [], "camcan_demograph": 10, "camcan_demographics_nordan": 10, "camcan_featur": 10, "camcan_features_nor": [], "camcan_features_nordan": 10, "can": [1, 3, 5, 8, 9, 10, 12, 14], "cannot": [1, 10], "carefulli": 1, "case": [1, 5, 6, 9, 12], "cat": [1, 5], "catch_warn": 11, "caveat": [], "cc110033": [], "cc110037": [], "cc110045": [], "cc110056": [], "cc110062": [], "cc722542": [], "cc722651": [], "cc722891": [], "cc723197": [], "cc723395": [], "cd": [1, 8], "cd_fast": 11, "cell": 9, "center": [1, 11], "centered_intercept_mu": 3, "centil": [5, 12], "centiles_": 5, "centiles_1": 5, "certain": [], "cfold": 9, "cg": 9, "chack": 9, "chain": [], "chainedassignmenterror": [], "challeng": 4, "chanc": 13, "chang": [1, 5, 9, 14], "chapter": 3, "characterist": 13, "charlott": 4, "charman": 6, "chart": 6, "chdir": [1, 3, 5, 10, 11, 13, 14], "check": [1, 3, 5, 9, 10, 11], "check_finit": 1, "check_job": 9, "check_job_statu": 9, "choic": [1, 11], "choos": 5, "chosen": 1, "ci": 10, "ci_95": 10, "ci_99": 10, "ci_inx": 10, "cifti": [9, 12], "cite": 0, "class": 9, "classic": 1, "classif": 1, "classifi": 13, "clean": 1, "cleveland": [], "click": 14, "clinic": [5, 6, 10, 11, 12, 13, 14], "clone": [1, 5, 8, 11, 13, 14], "close": 10, "cloudpickl": [], "clr": 5, "cluster": [9, 12], "cluster_spec": [9, 12], "cmap": 14, "code": [1, 3, 5, 9, 10, 12, 14], "coeffici": [1, 5, 9, 12], "cognit": [6, 10], "cohen": 6, "cohort": [6, 10], "col": [], "col_index": [], "colab": [1, 5, 10], "collect": [9, 12], "collect_nm": [9, 12], "color": [1, 3, 5, 11, 13], "color_gradi": 1, "colormap": 1, "cols_cov": 5, "column": [1, 3, 5, 9, 10, 11, 12, 13, 14], "com": [1, 2, 3, 5, 6, 8, 10, 11, 13, 14], "combin": [9, 10, 11], "command": [1, 8, 9], "comment": [1, 5], "commmand": [], "common": [1, 9], "commun": 2, "compar": [10, 12], "complet": [5, 9, 10, 12], "complex": 5, "compon": [0, 5], "compress": [11, 13], "comput": [0, 2, 5, 6, 9, 10, 11, 12, 13, 14], "computation": 12, "compute_msl": [1, 5], "con": [], "concat": [5, 10], "concaten": 1, "conceptu": [6, 12], "concern": 10, "concurr": 11, "conda": 8, "condit": 1, "conduct": 10, "confid": 10, "confidence_interv": 10, "config": 12, "configparam": [9, 12], "configur": [1, 9], "configure_design_matrix": 5, "confirm": 1, "conjug": 9, "connect": [6, 10], "connectom": [0, 1, 3], "consequ": 9, "consid": [5, 6], "consider": 1, "constraint": 10, "contain": [1, 3, 5, 9, 11, 12, 13, 14], "contant": 11, "content": [1, 6, 10, 11, 13, 14], "contin": 10, "continu": 5, "contourpi": [], "control": [1, 5, 6, 9, 10, 11, 14], "convent": 12, "converg": 11, "convergencewarn": 11, "convert": 9, "coordin": [9, 11], "copi": [1, 9], "core": [4, 9, 11], "correctli": 10, "correl": [1, 3, 7, 9, 11], "correspond": [1, 3, 10, 12], "cortic": [3, 6, 11, 12], "cortical_thick": 13, "corticostriat": 6, "could": [1, 3, 5, 9, 10], "council": 4, "count": [1, 5, 9, 10, 11, 13], "coupl": 5, "cours": 5, "cov": [1, 9, 12], "cov_bspline_ad": 5, "cov_bspline_dummy_mean": 5, "cov_bspline_t": [1, 5], "cov_bspline_tr": 1, "cov_fil": 12, "cov_file_ad": 5, "cov_file_dummi": [5, 12], "cov_file_t": [1, 5, 12], "cov_file_tr": [1, 12], "cov_forward": 9, "cov_int_t": 1, "cov_int_tr": 1, "cov_t": 1, "cov_test": 12, "cov_tr": 1, "cov_train": 12, "covari": [8, 9, 10, 12], "covariat": 9, "covariate_forwardmodel": 10, "covariate_nordan": 10, "covbas": 9, "cover": [3, 10], "covfil": [3, 9, 10], "covfile_path": 9, "covfunc": [9, 12], "covfuncnam": 9, "covfunct": 9, "covlin": 9, "covsqexp": 9, "covsqexpard": 9, "covsum": 9, "cowork": 10, "cp": [1, 5], "cp310": [], "cpc_2020": 10, "creat": [0, 1, 5, 8, 9, 10, 12, 13, 14], "create_basi": 9, "create_bspline_basi": 1, "create_design_matrix": 5, "create_mask": 9, "creation": 9, "critic": 1, "crop": 11, "cross": [9, 10, 12, 13], "csv": [1, 3, 5, 9, 10, 12, 13, 14], "ct": 11, "ct_col": 13, "cubic": [1, 5], "current": [1, 9, 10], "curv": [5, 13], "curvatur": 1, "custer": 9, "custom": 9, "customis": 12, "cv": [11, 13], "cv_fold": [9, 12], "cvfold": [9, 10, 12], "cycler": [], "d": [1, 6, 9, 10], "d7fe6256fd2": 1, "darkgrid": 1, "dat": 9, "data": [0, 6, 9, 14], "data_arrai": 9, "data_dir": [1, 5], "datafil": 9, "datafram": [3, 5, 9, 10, 13], "datapoint": 5, "dataset": [1, 3, 5, 9, 12, 14], "dateutil": [], "dcov": 9, "de": [4, 6], "decid": [1, 9], "decim": 11, "decomposit": 11, "def": [1, 3, 10, 11], "default": [1, 5, 9, 11, 12], "defin": [3, 9], "definit": [3, 10], "degre": 9, "delai": 9, "delet": 9, "delete_nm": [9, 12], "deliber": 1, "delimit": 9, "delta": [11, 13], "demo": [0, 1, 3, 11, 13, 14], "demograhp": 10, "demograph": [10, 12], "demographics_nordan": 10, "demonstr": [], "depend": [1, 8, 9], "depent": 10, "deprec": [1, 12], "deriv": [1, 5, 9, 12], "descent": 11, "describ": [3, 5, 14], "descript": 12, "design": [1, 5, 12], "desikan": 1, "desir": [3, 12], "destrieux_atla": 14, "destrieux_surfac": 14, "detail": [1, 3, 5], "determin": 9, "dev": 13, "develop": [1, 2, 4, 12], "devianc": [3, 9], "deviat": [1, 5, 6, 7, 9, 11, 12], "deviation_count": 14, "deviation_scor": 5, "df": 1, "df_ad": 5, "df_euler": 1, "df_te": 5, "df_te_z": 5, "dg": [], "diag": 9, "diagnosi": 12, "dicotom": 10, "dict": 9, "dictionari": 9, "did": 11, "differ": [1, 3, 5, 6, 9, 12], "digit": 4, "dimens": [11, 12], "dimension": 1, "dinga": [4, 6], "dir": [1, 8, 9, 10], "direct": [1, 6], "directli": [1, 5, 9, 10], "directori": [3, 9], "discuss": 14, "disk": [1, 9, 12], "disord": [6, 10], "displai": [1, 3, 11], "displot": 1, "dissect": 6, "dist": [1, 10, 11], "distribut": [5, 9, 10, 12, 14], "diverg": [], "divid": 3, "dk": 10, "dloglik": 9, "do": [1, 3, 5, 9, 10], "doc": 5, "document": [9, 11, 12], "doe": [1, 12], "doi": 6, "done": [1, 3, 5, 9, 10, 11, 12, 13, 14], "dot": 11, "doubt": 10, "downcast": 1, "download": [1, 10, 14], "dpi": 1, "draw": [], "drive": 10, "drop": 1, "dropna": [1, 13], "dtseri": 12, "dtype": [1, 3, 5, 9], "dualiti": 11, "duation": 9, "due": [1, 10], "duma": 6, "dummi": [1, 12], "dump": 3, "durat": [9, 12], "dure": 10, "durston": 6, "dutch": 4, "e": [1, 5, 6, 8, 9, 10, 12], "each": [1, 3, 5, 9, 10, 11, 12, 14], "echo": 1, "ecker": 6, "ed": 6, "edg": 11, "effect": [5, 9], "effici": 12, "eg": 3, "einstat": [], "either": [1, 3, 5, 9, 12], "elaps": 11, "elast": 0, "elasticnet": 11, "elasticnet_model_ct": 11, "elasticnet_model_z": 11, "elasticnetcv": 11, "elasticnetcv_model_ct": 11, "elasticnetcv_model_z": 11, "elem": 5, "elif": [6, 10], "elifesci": [5, 6], "ell": [9, 10], "ell_1": 9, "ell_d": 9, "ell_i": 9, "els": 5, "emploi": 1, "empti": 1, "encod": 1, "encount": 10, "end": [5, 10], "endless": 9, "endswith": 13, "enet_coordinate_descent_gram": 11, "enigma": 1, "ensur": 11, "entri": [10, 11, 12], "entrypoint": 9, "enumer": [1, 3, 5, 10, 11, 13, 14], "env_nam": 8, "enviorn": 8, "environ": [1, 8], "ephem": [], "epistem": 5, "equal": [1, 5], "error": [3, 7, 9, 11, 12], "especi": 12, "essenti": 12, "estim": [5, 9], "et": [1, 5, 12], "eta": [], "etc": [9, 14], "etupl": [], "euler": 1, "ev": [1, 3, 7], "evalu": [0, 3, 5, 9, 10, 11, 12, 14], "everyth": [3, 10], "exacerb": 12, "exampl": [1, 5, 9, 12], "examplenii": 9, "exclud": 1, "exclus": [1, 10], "execut": 9, "execute_nm": [9, 12], "exist": [1, 2, 9], "exist_ok": 1, "exp": [9, 10], "expans": 5, "expect": 11, "expens": 12, "experiment": [1, 4], "explain": [1, 3, 7, 9, 10, 11], "explained_variance_ratio_": 11, "explainedvar": 9, "explicit": 9, "explicitli": 1, "explor": 5, "exponenti": 9, "export": 1, "expv": [1, 5, 7, 9], "expv_estim": 3, "expv_predict": 5, "extend": [9, 12], "extens": [6, 9], "extra": 1, "extra_argu": 9, "extract": [1, 3, 5], "extrem": [6, 12], "f": [1, 2, 3, 5, 6, 11, 12], "f502unec": [], "factor": 9, "fade": 1, "fail": [9, 10, 11], "fairli": [1, 12], "fals": [1, 5, 9, 10, 11, 12, 13, 14], "famili": 10, "far": 10, "fast": 11, "faster": 1, "father": 10, "fcon": 3, "fcon1000": 3, "fcon1000_icbm_t": 3, "fcon1000_icbm_tr": 3, "fcon1000_t": 3, "fcon1000_te_z": [13, 14], "fcon1000_tr": 3, "fcon_t": 3, "fcon_tr": 3, "fdr_pval": 13, "fdrcorrect": 13, "featru": 10, "featur": [1, 3, 9, 10, 11, 12], "feature_nam": 10, "features_nordan": 10, "features_normsampl": 10, "feel": [2, 10], "fellowship": 4, "femal": [5, 10], "fetch_atlas_surf_destrieux": 14, "fetch_surf_fsaverag": 14, "few": [1, 5, 10], "fi": [1, 5], "fig": [1, 10, 13, 14], "figsiz": [1, 3, 11, 13, 14], "figur": [10, 11], "file": [5, 9, 11, 12], "file_extens": 9, "file_stem": 9, "file_typ": 9, "fileio": 9, "filelist": 5, "filelock": [], "filenam": [3, 9, 12], "fill": [1, 5], "fill_between": [5, 13], "fillna": 14, "final": [1, 3, 10], "find": 10, "finish": 11, "first": [1, 3, 5, 8, 9, 10, 11, 12], "fissur": [], "fit": [1, 9, 12, 13], "fit_intercept": 11, "fit_neg": 11, "fit_neg_ct": 11, "fit_neg_z": 11, "fit_po": 11, "fit_pos_ct": 11, "fit_pos_neg": 11, "fit_pos_neg_ct": 11, "fit_pos_neg_z": 11, "fit_pos_z": 11, "fix": [1, 3, 5], "flexibl": [1, 12], "float": [1, 3], "float64": 1, "flori": 6, "fold": [9, 10, 11, 12, 13], "fold_accs_test": 11, "fold_accs_test_ct": 11, "fold_accs_test_z": 11, "fold_accs_train": 11, "fold_accs_train_ct": 11, "fold_accs_train_z": 11, "fold_i": 11, "folder": [1, 5, 9, 10], "follow": [1, 5, 6, 9, 12], "font": 11, "font_scal": 1, "fontsiz": [1, 11, 13], "fonttool": [], "fontweight": 13, "forg": 8, "form": [5, 9, 12], "format": [1, 5, 9, 13], "formerli": 12, "formul": 9, "forward": [5, 9], "forward_yhat": 10, "found": [1, 8, 12, 14], "four": 10, "fpr": 13, "fr": 14, "frac": 10, "fraction": 6, "fragment": 1, "frame": 1, "framework": [0, 2, 5, 6, 13, 14], "frank": 6, "fraza": [1, 4, 5, 6], "free": [1, 2], "freesurf": [1, 3], "freesurfer_data": 1, "frequent": 0, "from": [1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "frouin": 6, "fsaverag": 14, "fsl": 12, "full": [1, 7, 9, 12], "fun": 14, "func": 9, "function": [1, 3, 5, 6, 8, 9, 12], "fund": 4, "fundament": 12, "further": [1, 5, 12], "futur": 1, "futurewarn": 1, "g": [1, 5, 6, 8, 9, 10, 12], "gap": [5, 11], "garcia": 6, "gaussian": [5, 6, 7, 9, 12], "gaussianprocess": 3, "gender": 3, "gener": [1, 9, 11, 12, 13], "generation_factor": 9, "geometri": 9, "get": [1, 2, 3, 5, 8, 10], "get_arg": 9, "get_dummi": 1, "get_n_param": [5, 9], "getcwd": [3, 5], "git": [1, 5, 8, 11, 13, 14], "github": [1, 5, 8, 10, 11, 13, 14], "githubusercont": [3, 10], "gitter": 2, "give": 1, "given": [9, 10], "glob3": 8, "global": [1, 5], "glossari": 0, "go": [3, 10], "goal": 6, "good": [1, 10], "googl": [1, 5, 10], "goyard": 6, "gp": [9, 10], "gpml": [3, 9], "gpr": [7, 9, 10, 12], "gprrfa": 9, "gr2": 10, "gradient": [9, 10], "grant": 4, "gratefulli": 4, "grei": 13, "grep": 1, "group": [9, 10, 13, 14], "group_id": 14, "groupbi": 1, "growth": 6, "gscore": 11, "gz": [9, 12], "h": 6, "h5netcdf": [], "h5py": [], "ha": [1, 3, 9, 10, 12, 14], "haak": 6, "half": 3, "handl": [5, 8], "have": [1, 2, 3, 5, 9, 10, 12, 14], "hbm": 6, "hbr": [7, 9, 12], "hbr_demo": 3, "hc": 13, "hc_cortical_thick": 13, "hc_deviat": 13, "hcp": 1, "hcp1200_age_gend": 1, "hcp1200_aparc_lh_thick": 1, "hcp1200_aparc_rh_thick": 1, "hcp1200_aparc_thick": 1, "hcp_ct": 11, "hcp_euler": 1, "hcp_idx": 1, "hcp_z": 11, "hcpya": 1, "hcpya_ct": 11, "hcpya_g": 11, "hcpya_z": 11, "hdr": 12, "he": [9, 10], "head": [1, 12], "header": [1, 9, 10, 12], "health": 10, "healthi": 14, "heard": 10, "height": 1, "help": [2, 12], "hemi": [1, 14], "hemispher": [3, 5, 14], "here": [1, 3, 5, 9, 10], "heterogen": 6, "heteroskedast": 9, "hh": 9, "hi": 10, "hierarch": [0, 6, 7, 12], "high": [6, 12], "hint": [5, 10], "hoc": 0, "hold": 5, "holt": 6, "home": 10, "hoogman": 6, "how": [0, 1, 2, 3, 5, 10, 14], "howev": [1, 10], "hstack": 11, "html": 11, "http": [1, 2, 3, 5, 6, 8, 10, 11, 13, 14], "hue": 1, "huerta": [6, 12], "huijsden": 6, "human": [1, 6], "hyp": [5, 9], "hyp0": 9, "hyperparamet": [1, 9, 11], "hyperparmat": 9, "hypocamp": 10, "hyppocampal_subfield": 10, "hyppocampu": 10, "i": [1, 3, 5, 6, 8, 9, 10, 11, 13, 14], "icbm": 3, "icbm_t": 3, "icbm_tr": 3, "id": [1, 3, 5, 9, 10], "identifi": 9, "idp": [3, 5], "idp_dir": 5, "idp_id": 5, "idp_ids_lh": 5, "idp_ids_rh": 5, "idp_ids_sc": 5, "idp_num": 5, "idx": [3, 5], "idx_a": 5, "idx_dummi": 5, "idxt": 3, "ie": 11, "ignor": 11, "ii": [5, 10, 12], "iii": 12, "ill": 1, "illustr": [5, 12], "iloc": 10, "imag": [5, 6, 9, 10, 12], "img": 12, "immun": 9, "implement": [9, 12], "implic": 1, "import": [1, 3, 5, 8, 10, 11, 12, 13, 14], "importlib": [], "includ": [1, 10, 12], "inclus": 1, "inconclus": 10, "increas": [1, 11], "indep": 13, "independ": [1, 9, 12], "index": [0, 1, 5, 10, 13], "index_col": 10, "indic": [1, 9, 10], "individu": [1, 6, 10], "inf": 13, "infer_object": 1, "infl_left": 14, "infl_right": 14, "inflat": 11, "info": 5, "inform": [1, 6, 9, 10, 12], "informative_prior": 9, "ingrid": 10, "initi": [1, 9], "inlcud": 10, "inner": [1, 5, 10, 14], "innov": 4, "inplac": [1, 5, 13], "input": [1, 5, 9, 11], "inscal": [1, 3, 9, 10], "inspect": 1, "instal": [0, 5, 9, 13, 14], "instanc": 10, "instead": 1, "instruct": [8, 12], "insuffic": 5, "int": [1, 3, 5, 11, 13], "integ": 9, "interact": [2, 9, 14], "intercept": [1, 5], "interest": [1, 3, 12], "intermedi": [], "intern": [6, 9, 12], "interp": [1, 13], "interp_tpr": 13, "interpol": [1, 9], "interpret": [0, 2], "interv": [9, 10], "intervent": 6, "intialis": 9, "introduc": 1, "introductori": 10, "invalid": 10, "invaxt": 1, "invers": 5, "investig": 10, "involv": [5, 12], "inx": 10, "io": 13, "ipython": [1, 11], "iq": 10, "iq_random": [], "is_sort": 13, "isdir": 3, "isigma": 9, "isin": 10, "issu": 1, "item": 5, "iter": [1, 10, 11], "its": 1, "iv": 12, "ixi": 1, "ixi_age_gend": 1, "ixi_aparc_thick": 1, "ixi_eul": 1, "ixi_idx": 1, "j": [6, 10, 14], "job": [9, 12], "job_id": 9, "job_nam": [9, 12], "job_path": 9, "joblib": [], "join": [1, 3, 5, 10], "joskowicz": 6, "joypi": 1, "joyplot": 1, "jpg": 10, "junk": 5, "junk1": 5, "junk2": 5, "just": [1, 2, 3, 5, 9, 10], "justifi": 1, "k": [6, 9, 10, 11, 12, 13], "kaufmann": 6, "kb": [], "keep": [5, 9, 11], "keep_edges_neg": 11, "keep_edges_neg_ct": 11, "keep_edges_neg_z": 11, "keep_edges_po": 11, "keep_edges_pos_ct": 11, "keep_edges_pos_z": 11, "kei": 12, "kept": 11, "kernel": 13, "keyword": [9, 12], "kia": [2, 4, 6, 9, 12], "killian": 1, "killiani": 1, "kiwisolv": [], "knot": [1, 5], "know": [9, 10], "knowledg": [3, 10], "kw_arg": 9, "kwarg": 9, "l": [1, 5, 6, 9], "l0bfg": 9, "l1": [0, 9], "l1_ratio": 11, "l1_ratio_": 11, "l2": [0, 9], "label": [10, 11, 13], "labels": [11, 13], "lambda": [1, 9], "lambda_a": 9, "larg": 12, "lasso": 0, "lasso_model_ct": 11, "lasso_model_z": 11, "lassocv": 11, "lassocv_model_ct": 11, "lassocv_model_z": 11, "latent": 9, "later": [3, 5, 11, 13], "latter": 5, "lbfg": 9, "ldpkl": 3, "learn": [1, 3, 5, 9, 12], "least": 5, "left": [3, 5, 10, 13, 14], "left_ca1": 10, "left_ca3": 10, "left_ca4": [], "left_gc": [], "left_hippocamp": [], "left_hippocampal_tail": [], "left_molecular_layer_hp": [], "left_parasubiculum": [], "left_presubiculum": [], "left_subiculum": [], "legend": [1, 3, 10, 11, 13, 14], "leiden_2180": [], "leiden_2200": [], "len": [1, 5, 10, 11], "length": [9, 10], "lengthscal": 9, "lenient": 1, "less": 14, "lh": [1, 3, 14], "lh_bankssts_thick": 1, "lh_caudalanteriorcingulate_thick": 1, "lh_en": 1, "lh_euler": 1, "lh_g": 13, "lh_g_front_inf": 13, "lh_meanthickness_thick": [1, 3], "lh_s_temporal_inf_thickness_z_predict": 13, "lh_superiorfrontal_thick": 1, "lib": [1, 10, 11], "librari": 5, "lifespan": 0, "lifespan_12k_57sites_mqc2_train": [], "lifespan_12k_59sites_mqc_train": [], "lifespan_23k_57sites_mqc2": [], "lifespan_29k_82sites_train": [], "lifespan_57k_82sit": 5, "like": [1, 5, 10], "likelihood": [5, 9], "limit": [5, 9, 10], "linalg": [1, 11], "linalgwarn": 1, "line": [1, 5, 8, 9], "linear": [0, 5, 6, 7, 9, 12, 13], "linear_model": 11, "linear_mu": 3, "linearregress": 11, "linecolor": 1, "linestyl": [10, 11, 13], "linewidth": [1, 5, 10, 11], "lingual_thick": 13, "linspac": 13, "list": [1, 5, 9, 14], "listdir": 5, "literatur": 1, "live": 5, "load": [0, 1, 3, 9, 14], "load_2d": 5, "load_ascii": 9, "load_cifti": 9, "load_data": 9, "load_nifti": 9, "load_pd": 9, "load_response_var": 9, "loadtxt": 1, "loc": [1, 3, 10, 13, 14], "local": [1, 5, 10, 11, 12], "locat": [1, 5, 8], "log": [1, 3, 7, 9, 12], "log_dir": [3, 12], "log_ell_d": 9, "log_path": [3, 9, 12], "log_transf": 3, "logic": [], "loglik": 9, "look": [5, 10], "loop": [1, 5, 9], "loop_percentage_change_femal": 10, "loop_percentage_change_mal": 10, "loss": [1, 3, 7, 9], "lot": 12, "loth": 6, "low": 10, "lower": 13, "lr_model": 11, "lr_model_ct": 11, "lr_model_z": 11, "lump": 6, "lw": 13, "m": [2, 6, 9, 10, 12], "m_zabihi": 10, "machin": [9, 12], "made": [9, 10], "mae": 11, "mai": [1, 5, 9, 12], "main": [3, 9], "maintain": 5, "make": [0, 1, 8, 9, 10, 12], "makedir": [1, 3], "male": [5, 10], "manag": 3, "mani": [5, 12], "manual": [1, 9], "manylinux2014_x86_64": [], "manylinux_2_17_x86_64": [], "manylinux_2_28_x86_64": [], "map": [1, 6, 9], "map_left": 14, "map_right": 14, "margin": 9, "mariam": [4, 10], "markdown": [], "marker": 11, "marquand": [2, 4, 6, 9], "martel": 6, "mask": [9, 11, 12], "maskfil": [9, 12], "maskvol": 9, "master": 10, "match": [1, 5, 10, 11], "mateu": 6, "math": 11, "matplotlib": [1, 3, 5, 10, 11, 13, 14], "matric": [1, 12], "matrix": [1, 5, 9, 11, 12], "max": [1, 5, 14], "max_column": 1, "max_row": 1, "maximum": [10, 13], "mb": [], "md": [], "mdurl": [], "mea": 1, "mead": 9, "mean": [1, 3, 7, 9, 10, 11, 12, 13, 14], "mean_absolute_error": 11, "mean_auc": 13, "mean_fpr": 13, "mean_squared_error": 11, "mean_tpr": 13, "measur": [1, 9, 10, 12], "med": 5, "med_t": 5, "median": [1, 5], "medic": [4, 6], "medicin": [4, 6], "medium_s": 11, "mell": 6, "memori": [9, 12, 14], "menn": 6, "mental": 6, "mention": 10, "merg": [1, 5, 9, 14], "meta": [1, 12], "metadata": 9, "method": [1, 3, 5, 9, 10, 12, 13], "metric": [1, 3, 5, 9, 11, 12, 13, 14], "metrics_t": 1, "metrics_te_sit": 1, "mib": [11, 13], "miccai": 6, "mid": 13, "might": 11, "million": 10, "milwaukee_b": [], "min": [1, 5, 14], "mind": 10, "minikanren": [], "minimum": [12, 13], "minmax": 9, "minor": 1, "mir": 6, "miss": 5, "mkdir": [1, 3, 5], "mkl": 8, "ml": [], "mm": [3, 9], "moberget": 6, "model": [0, 2, 6, 7, 8, 9], "model_nam": 5, "model_path": [3, 5, 9], "model_path1": 9, "model_path2": 9, "model_select": [1, 13], "modif": 12, "modul": [0, 12], "moessnang": 6, "molecular": 6, "month": 10, "more": [1, 3, 5, 10, 12, 14], "morten": 10, "most": 2, "mostafa": 4, "mostli": 9, "mother": 9, "mount": 10, "move": 14, "mri": 1, "mse": 11, "mse_path_": 11, "msll": [1, 3, 7, 9], "msll_predict": [], "multi": [3, 5, 6, 12], "multipl": [1, 9, 12], "multipledispatch": [], "multipli": [1, 10], "multitest": 13, "munchen": [], "murphi": 6, "must": [5, 9, 12], "my": [8, 9, 10, 12], "n": [5, 6, 9, 10], "n_alpha": 11, "n_brain_measur": 1, "n_compon": 11, "n_cv_split": 11, "n_feat": 9, "n_featur": 13, "n_iter": 9, "n_job": 11, "n_sampl": 13, "n_split": 13, "n_subject": 1, "n_train": 11, "name": [1, 3, 5, 7, 8, 9, 10, 12, 13, 14], "nan": [1, 11], "natur": [2, 6, 9, 13, 14], "nc": 10, "necessari": [5, 9, 10, 12], "need": [1, 3, 5, 9, 10], "neg": [1, 9, 11], "neg_error_ct": 11, "neg_error_z": 11, "neg_test_error_ct": 11, "neg_test_error_z": 11, "negative_count": 14, "negative_left_z": 14, "negative_left_z2": 14, "negative_right_z": 14, "negative_right_z2": 14, "negative_sc_z": 14, "negative_sc_z2": 14, "negloglik": 9, "nelder": 9, "net": 0, "neural": 12, "neuroanatom": 6, "neuroimag": [1, 6, 9, 12], "neurologist": 10, "neurosci": [5, 6, 10, 11, 12, 13, 14], "never": [], "new": [0, 1, 3, 9, 10, 12], "new_dur": 9, "new_memori": 9, "newark": [], "newaxi": [1, 5], "newyork_a": [], "newyork_a_adhd": [], "next": [1, 5, 10], "nib": 14, "nibabel": [8, 14], "nifti": [9, 12], "nii": [9, 12], "nilearn": 14, "nilearn_data": 14, "nilearn_ord": 14, "nispat": 12, "nitrc": 14, "nl": 14, "nl3hy35q": [], "nl_negative_left": 14, "nl_negative_right": 14, "nl_positive_left": 14, "nl_positive_right": 14, "nl_roi": 14, "nlz": 9, "nm": [1, 3, 5, 7, 9], "nm_0_0_estim": 5, "nm_demo": 12, "nm_util": 5, "no_silent_downcast": 1, "node": 12, "nois": 9, "non": [5, 6], "none": [1, 5, 9, 10, 14], "nonlinear": [1, 5], "norm": [0, 2, 6, 7, 8, 9], "norm_demograph": 10, "norm_demographics_featur": 10, "norm_featur": 10, "norm_sample_demograph": 10, "norm_sample_featur": 10, "normal": [], "normative_parallel": [9, 12], "normative_path": [9, 12], "normsampl": 10, "notat": 9, "note": [1, 5, 9, 10, 12], "notebook": [1, 3, 5, 14], "now": [1, 3, 5, 10], "np": [1, 3, 5, 9, 10, 11, 12, 13, 14], "npc": 11, "npy": 11, "nte": 9, "nthi": 11, "num": 1, "num_fold": 12, "numba": 8, "number": [1, 3, 5, 9, 10, 11, 12, 14], "numpi": [1, 3, 5, 8, 9, 10, 11, 13, 14], "nutpi": [1, 3, 5, 8, 10], "nuts_sampl": 3, "nwo": 4, "o": [1, 3, 5, 6, 10, 11, 13, 14], "object": [9, 11, 13], "observ": [3, 9], "obviou": 12, "obvious": 3, "occur": 1, "offer": 12, "offset": 5, "ok": [], "ol": 11, "old": 1, "oldehinkel": 6, "onc": [1, 5, 10, 12], "one": [1, 5, 9, 10, 11, 12], "ones": [1, 5, 11], "onli": [1, 3, 9, 10, 11, 12], "onto": 0, "oort": 6, "open": [3, 5], "openneuro": 5, "openneurotransfer_c": [], "openneurotransfer_ct_ad": 5, "openneurotransfer_ct_t": 5, "openneurotransfer_ct_tr": [], "openneurotransfer_deviation_scor": 5, "openneurotransfer_t": [], "openneurotransfer_tr": [], "oper": [12, 13], "opercular_thick": 13, "opt": 1, "optim": [1, 9, 10, 12], "optimis": 9, "option": [1, 3, 9, 12], "orbital_thickness_z_predict": 13, "order": [1, 3, 5, 9, 10], "ordinari": 9, "org": [3, 5, 6, 8, 14], "organ": [1, 5], "organis": 4, "origin": [1, 5], "orrel": 7, "other": [1, 5, 8, 10, 12], "otherwis": [3, 8, 9], "oulu": [], "ouput": 9, "our": [1, 5], "out": [1, 5, 9, 10, 11, 12, 14], "out_dir": 5, "outer": [1, 10], "outlier": 5, "outlier_thresh": 5, "output": [0, 2, 3, 5, 9, 10, 12], "output_path": [3, 9], "outputal": 9, "outputsuffix": [3, 5, 9, 10, 12], "outscal": [1, 3, 9, 10], "over": [1, 9], "overal": 1, "overflow": 10, "overlap": [1, 10], "overview": 12, "own": 1, "oxford": [], "p": [3, 6, 7, 9, 11], "p_threshold": 11, "pack": [11, 13], "packag": [1, 3, 5, 8, 10, 11, 12], "packeag": 9, "pad": 5, "page": 3, "paloalto": [], "panad": 1, "panda": [1, 3, 5, 9, 10, 12, 13, 14], "panel": 1, "paper": 5, "parallel": [9, 11, 12], "param": 9, "paramatet": 12, "paramet": [5, 9, 12, 13], "parameter": 1, "parameteris": 5, "parametr": [3, 7, 9], "parcel": 14, "parcellation_l": 14, "parcellation_negative_l": 14, "parcellation_negative_r": 14, "parcellation_positive_l": 14, "parcellation_positive_r": 14, "parcellation_r": 14, "paricip": [], "pars": 9, "part": 5, "part_thick": 13, "particip": [1, 3, 10], "participant_id": [1, 14], "particular": 5, "partner": 14, "pass": [5, 9, 11, 12], "path": [1, 3, 5, 8, 9, 10, 12], "patient": [6, 14], "pattern": 9, "pb": 9, "pc": 11, "pca": 11, "pca_model": 11, "pca_model_ct": 11, "pca_model_z": 11, "pcn": [10, 12], "pcntoolkit": [0, 1, 2, 3, 5, 8, 11, 13, 14], "pd": [1, 3, 5, 10, 13, 14], "pdf": 3, "pearson": [1, 3, 7, 9], "pearsonr": 11, "pearsonrconstantinputwarn": 11, "penal": 9, "penalized_loglik": 9, "penalti": 9, "per": [1, 3, 5, 12], "percentage_chang": 10, "percentage_change_femal": 10, "percentage_change_mal": 10, "percentil": 5, "perform": 11, "perpar": 10, "person": [10, 14], "phenotyp": 5, "phenotypes_ct_lh": 5, "phenotypes_ct_rh": 5, "phenotypes_sc": 5, "phi": [1, 9], "php": 14, "pickl": [3, 5, 12], "piecewis": 1, "pieter": 4, "pillow": [], "pinv": 11, "pip": [1, 3, 5, 8, 10, 13, 14], "pipelin": 1, "pittsburgh": 3, "pk": 8, "pkl": [3, 5, 9, 12], "place": 10, "plain": [], "plasma": 14, "pleas": [1, 5, 6, 10], "plot": [10, 11, 12, 13], "plot_roc_curv": 13, "plt": [1, 3, 5, 10, 11, 13, 14], "plu": [5, 8], "pm": 13, "png": 5, "po": 11, "point": [1, 3, 5, 9, 10], "polynomi": [1, 9], "poor": 1, "poorli": 11, "popul": 10, "pos_error_ct": 11, "pos_error_z": 11, "pos_neg_error_ct": 11, "pos_neg_error_z": 11, "pos_neg_test_error_ct": 11, "pos_neg_test_error_z": 11, "pos_test_error_ct": 11, "pos_test_error_z": 11, "posit": 11, "positive_count": 14, "positive_left_z": 14, "positive_left_z2": 14, "positive_right_z": 14, "positive_right_z2": 14, "positive_sc_z": 14, "positive_sc_z2": 14, "possibl": [1, 9], "post": [0, 9], "post_thick": 13, "posterior": [9, 10], "potenti": 10, "powel": [1, 9, 12], "power": 10, "pr_int": 5, "pr_int25": 5, "pr_int25l": 5, "pr_int25u": 5, "pr_int95": 5, "pr_int95l": 5, "pr_int95u": 5, "pr_int99": 5, "pr_int99l": 5, "pr_int99u": 5, "practic": [10, 12], "pre": [1, 3, 5, 9], "precis": [6, 9], "pred_summary_funct": 11, "predict": [6, 7, 9, 10, 12, 13, 14], "predict_and_adjust": [5, 9], "predictive_interv": 9, "predictor": 1, "prefix": [1, 8], "prepackag": [], "prepar": [0, 9], "preporcess": 10, "preprocess": 11, "prercentag": 10, "present": [1, 5, 10, 12], "pretrain": 5, "previous": 3, "prho": [3, 5, 7, 9], "prho_predict": 5, "primarili": [9, 10], "princip": 0, "principl": 1, "print": [1, 3, 5, 8, 10, 11], "prior": [3, 9, 10], "probabl": [10, 13], "procedur": [5, 10, 12], "process": [1, 3, 5, 6, 7, 9, 10, 12], "processing_dir": [3, 9], "progress": [], "project": [1, 3], "proper": 5, "properli": 5, "properti": 10, "proport": 5, "protocol": [0, 2, 6, 13, 14], "provid": [5, 9, 10, 12], "proxi": 1, "psuedo": 1, "psychiatr": 6, "psychiatri": [0, 2, 6, 13, 14], "psychiatrist": 10, "psycholog": 6, "ptk": 3, "public": [1, 12], "publish": 6, "purpos": [5, 12], "put": 10, "pval": 13, "pval_threshold": 11, "pvalu": 13, "py": [1, 8, 9, 10, 11, 12], "py3": [], "pyarrow": [], "pydata": [], "pygment": [], "pymc": [], "pypars": [], "pyplot": [1, 3, 5, 10, 11, 13, 14], "pyproject": [], "pytensor": [], "python": [1, 8, 9, 12], "python3": [1, 8, 10, 11], "python_path": [9, 12], "pytorch": 8, "pytz": [], "qc": 1, "qestion": 10, "qstat": 9, "qsub": 9, "qsub_nm": 9, "qualiti": [1, 10], "quantit": 5, "quantiti": [5, 9], "queensland": [], "queri": [1, 9, 13, 14], "question": [0, 1, 10], "queu": 9, "quickli": 3, "quit": 12, "r": [1, 6, 8, 9, 10, 11, 12, 13], "r2_score": 11, "racoceanu": 6, "rahimi": 12, "random": [1, 3, 9, 11, 12, 13], "random_intercept_mu": 3, "random_st": [1, 11, 13], "randomli": 3, "randomst": 13, "rang": [1, 5, 10, 11, 14], "rasmussen": 9, "rather": [1, 12], "ratio": 11, "raw": [3, 10], "rb": [3, 5], "rc": 11, "rcond": 1, "rcparam": 13, "re": [1, 9], "read": [1, 5, 10], "read_csv": [1, 3, 5, 10, 13, 14], "read_pickl": 3, "readi": 3, "readm": [], "real": [5, 9], "realiti": 10, "reassembl": 12, "receiv": [11, 13], "recent": 10, "recht": 12, "reciev": 2, "recognit": 9, "recommend": [1, 10], "recon": 1, "red": 5, "reduc": [1, 11], "refer": [5, 9, 10, 12], "reflect": 1, "regard": 12, "regex": 1, "region": [1, 5, 10, 12, 14], "regress": [0, 5, 6, 7, 9, 12], "regular": 0, "regularis": 9, "rel": [1, 5, 10], "relev": [9, 10], "reliabl": 5, "rema": 3, "remain": [3, 11], "rememb": [5, 10], "remot": [11, 13], "remov": [1, 3, 9, 12], "remove_bad_subject": 5, "rename_axi": 14, "replac": [1, 3, 11, 13], "replic": 6, "repo": 8, "report": 9, "repositori": [1, 5], "repres": [1, 5], "represent": 1, "request": [], "requir": [1, 3, 5, 8, 9, 10, 12], "rerun": 9, "rerun_nm": 9, "rescal": 5, "research": [1, 4], "reset": 1, "reset_index": [1, 5, 14], "reshap": [9, 11, 12], "residu": 9, "resolut": 12, "resolv": [11, 13], "resourc": [], "resp": 12, "resp_": 1, "resp_ad": 5, "resp_fil": 12, "resp_file_ad": 5, "resp_file_t": [1, 5, 12], "resp_file_tr": [1, 12], "resp_t": [1, 5], "resp_te_": 1, "resp_test": 12, "resp_tr": 1, "resp_tr_": 1, "resp_train": 12, "respect": [9, 12], "respfil": [3, 5, 9, 10], "respfile_path": 9, "respons": [1, 3, 5, 7, 8, 9, 12], "responsefil": 9, "restrict": 10, "result": [1, 9, 11, 12], "retain": 1, "retriev": 9, "retrieve_job": 9, "return": [1, 3, 9, 10, 11], "return_i": 9, "reus": [11, 13], "review": 6, "rezek": 6, "rfa": [9, 12], "rh": [1, 14], "rh_en": 1, "rh_euler": 1, "rh_g_front_inf": 13, "rh_g_occipital_middle_thickness_z_predict": 13, "rh_g_precentral_thickness_z_predict": 13, "rh_g_temporal_inf_thickness_z_predict": 13, "rh_meanthickness_thick": [1, 3, 5, 13], "rh_meanthickness_thickness_z_predict": 13, "rh_pole_temporal_thickness_z_predict": 13, "rh_s_oc": 13, "rh_s_postcentral_thick": 13, "rh_s_precentr": 13, "rh_superiorfrontal_thick": 1, "rho": [1, 3, 5, 7, 9], "rho_predict": 5, "rich": [], "richard": 4, "rid": 10, "ridg": 0, "ridge_alpha_ct": 11, "ridge_alpha_z": 11, "ridge_model_ct": 11, "ridge_model_z": 11, "ridgecv": 11, "ridgecv_model_ct": 11, "ridgecv_model_z": 11, "right": [3, 5, 13, 14], "right_ca1": 10, "right_ca3": 10, "right_ca4": [], "right_fimbria": [], "right_gc": [], "right_hata": [], "right_hippocamp": [], "right_molecular_layer_hp": [], "right_parasubiculum": [], "right_presubiculum": [], "right_whole_hippocampu": [], "rm": 1, "rmse": [1, 3, 5, 7, 9], "rmse_predict": 5, "rmtmp": 9, "robminmax": 9, "roc": 13, "roc_auc": 13, "roi": [1, 3, 5, 13, 14], "roi_dir": 1, "roi_dir_nam": 1, "roi_id": 1, "roi_model": 1, "roi_nam": 14, "rokicki": 6, "root": [1, 3, 7, 9, 14], "root_dir": 5, "rosen": [], "rotat": 10, "roughli": 12, "round": 11, "routin": 9, "row": [1, 3, 5, 9, 12, 13], "row_index": [], "run": [1, 2, 3, 5, 8, 9, 10, 12, 13], "runtimewarn": 10, "rutherford": [1, 2, 4, 6, 9, 10, 13, 14], "rw2": 3, "s0033291719000084": 6, "s2": [3, 5, 9, 10, 12], "s245190221830329x": 10, "s2_forward": 9, "s2_rescal": 5, "s2_te": [1, 5], "s2n": 5, "s41380": 6, "s41398": 6, "s41562": 6, "s41596": [2, 6, 13, 14], "s_cingul": 13, "s_frontomargin_thickness_z_predict": 13, "s_hat": 10, "s_occipital_inf_thick": 13, "saig": [1, 4, 10, 13, 14], "saintloui": [], "same": [1, 5, 9, 10, 12], "sampl": [3, 5, 9, 10, 11], "sampler": [], "satisfi": [], "save": [1, 5, 9, 10, 12], "save_ascii": 9, "save_cifti": 9, "save_nifti": 9, "save_path": 9, "save_pd": 9, "save_result": 9, "savefig": 5, "savemodel": [1, 3, 9, 12], "saveoutput": [1, 9, 12], "savetxt": [1, 5], "sbatch_nm": 9, "sbatchrerun_nm": 9, "sbatchwrap_nm": 9, "scalabl": 6, "scalar": 9, "scale": [1, 9, 11], "scaler": 9, "scan": [1, 5], "scanner": [3, 9], "scanner_id": 3, "scatter": [3, 5, 10], "scheme": 9, "schizophrenia": [6, 13, 14], "scientif": 4, "scikit": 1, "scipi": [11, 13], "scipt": 9, "score": [1, 3, 5, 7, 9, 10, 12], "scracth": 9, "scratch": 9, "screen": 10, "script": [1, 5, 8, 9], "scroll": 14, "se": 9, "seaborn": [1, 5, 14], "sec": 9, "second": [9, 14], "section": 1, "see": [1, 3, 5, 9, 12, 13], "seed": 11, "sei": 4, "select": [1, 5, 10, 11], "self": [1, 9, 10], "sent": [], "sep": [1, 10], "separ": [1, 5, 12, 13], "seper": 10, "seri": [], "set": [1, 5, 9, 10, 11, 12, 13], "set_opt": 1, "set_titl": 13, "set_xlabel": 3, "set_ylabel": 3, "settingwithcopywarn": [], "setup": [5, 8], "setuptool": [], "seven": 5, "sever": 5, "sex": [1, 3, 5, 10], "sex_covari": 10, "sex_nam": [], "sf": 9, "sf2": [9, 10], "sh": 9, "sha256": [], "shape": [1, 3, 10, 11, 13], "shortcut": 12, "should": [1, 2, 5, 9, 12], "show": [1, 5, 10, 11, 12, 13], "shown": [1, 12], "shuffled_idx": 11, "sid": 5, "side": 5, "sigma": 9, "sigma_a": 9, "signal": 9, "signific": 11, "similar": [9, 10], "similarli": 3, "simpl": 3, "simplefilt": 11, "simplest": 12, "simpli": 12, "sinarcsinh": 5, "sinc": [5, 12], "singl": [1, 5, 12], "site": [0, 5, 6, 9, 12, 14], "site_hcp": 1, "site_id": [5, 14], "site_ids_ad": 5, "site_ids_ct_82sit": 5, "site_ids_t": 5, "site_ids_tr": 5, "site_ixi": 1, "site_median": 1, "site_nam": [1, 5], "site_num_ad": 5, "site_num_t": 5, "sitenum": [3, 5], "sitenum_ad": 5, "sitenum_file_ad": 5, "sitenum_file_t": 5, "sitenum_t": 5, "six": [], "size": [1, 3, 9, 11, 12, 13], "skip": [5, 10, 12], "sklearn": [1, 8, 11, 13], "slice": [], "slightli": [], "slowli": 1, "slurm": 9, "sm": 9, "small_siz": 11, "smse": [1, 3, 5, 7, 9], "smse_predict": 5, "sn": [1, 5, 9, 14], "sn2": 9, "snippet": 12, "so": [1, 3, 5, 12], "soli": 6, "solv": 1, "some": [1, 3, 5, 6, 11, 12], "sort": [5, 9], "sort_nic": 9, "sourc": [3, 8, 9], "space": [5, 9, 10, 12], "span": 5, "spatial": 6, "specialist": 10, "specif": [1, 3, 9, 10], "specifi": [1, 3, 5, 9, 12], "spectrum": 6, "spline": 5, "split": [0, 3, 6, 12, 13], "split_nm": 9, "splitlin": 5, "springer": [6, 9], "sqrt": 1, "squar": [1, 3, 7, 9], "squared_dist": 10, "squeez": 5, "ss": 9, "stabl": [], "stack": [1, 11], "standard": [1, 3, 7, 9, 12], "standardis": [3, 9], "start": [1, 2, 8, 9], "start_tim": 9, "stat": [11, 13], "statist": [5, 13], "statsmodel": 13, "statu": 9, "std": [1, 10, 13, 14], "std_auc": 13, "std_tpr": 13, "stem": 9, "step": [5, 10, 12], "stick": 5, "still": 1, "stop": 1, "store": [1, 5, 9, 12], "stoyanov": 6, "str": [3, 5, 9, 13, 14], "stratifi": [1, 6], "stratifiedkfold": 13, "strict": 1, "string": [1, 3, 9], "structur": 6, "strutur": 9, "studi": [1, 6], "style": [1, 5, 11], "sub": [1, 9], "sub_id": [5, 14], "subcort": [5, 14], "subejct": 1, "subject": [1, 3, 5, 9, 10, 12], "subject_id": 1, "subjects_dir": 1, "submiss": 9, "submit": [9, 12], "subplot": [3, 10, 13, 14], "subset": [1, 3, 13], "subtract": 1, "successfulli": [1, 9, 10], "suffix": [3, 9, 10, 12], "suggest": 10, "suit": 3, "sulc_left": 14, "sulc_right": 14, "sum": [3, 9, 11], "summar": [1, 5, 14], "sup": 13, "superior": 1, "suppli": 5, "support": [9, 12], "sure": [1, 8], "surfac": [9, 12], "svc": 13, "svd": 11, "svm": 1, "sy": 9, "symmetric_cmap": 14, "system": [8, 9], "sz": 13, "sz_cortical_thick": 13, "sz_deviat": 13, "sz_hc_ct_sig_diff": 13, "sz_hc_fdr_ct": 13, "sz_hc_fdr_z": 13, "sz_hc_pvals_ct": 13, "sz_hc_pvals_z": 13, "sz_hc_z_sig_diff": 13, "t": [1, 2, 6, 8, 9, 10, 11, 12], "tab": [9, 12], "tabl": [1, 12], "tablefil": 1, "tail": 1, "tak": 9, "take": [1, 5, 9], "tar": [], "target": [9, 10], "task": [6, 9, 12], "te": [3, 12], "te_cov_s": 1, "te_resp_s": 1, "techniqu": [10, 12], "tell": 12, "temp_log": 1, "temp_m": 13, "temporari": [9, 12], "tensor": 6, "term": 10, "termin": [1, 10], "test": [0, 8, 9, 10, 12], "test_data": 5, "test_data_ct": 11, "test_data_z": 11, "test_features_ct": 11, "test_features_z": 11, "test_i": 11, "test_idx": 11, "test_mae_ct": 11, "test_mae_z": 11, "test_mu_centered_ct": 11, "test_mu_centered_z": 11, "test_neg_edges_sum": 11, "test_neg_edges_sum_ct": 11, "test_neg_edges_sum_z": 11, "test_neg_error": 11, "test_phen": 11, "test_pos_edges_sum": 11, "test_pos_edges_sum_ct": 11, "test_pos_edges_sum_z": 11, "test_pos_error": 11, "test_posneg_error": 11, "test_pr": 11, "test_pred_phen_ct": 11, "test_pred_phen_lr_model_ct": 11, "test_pred_phen_lr_model_z": 11, "test_pred_phen_z": 11, "test_preds_en_model_ct": 11, "test_preds_en_model_z": 11, "test_preds_lasso_model_ct": 11, "test_preds_lasso_model_z": 11, "test_preds_ridge_model_ct": 11, "test_preds_ridge_model_z": 11, "test_siz": 1, "test_transformed_ct": 11, "test_transformed_z": 11, "test_x": 11, "testcov": [1, 3, 9, 10, 12], "testcovfile_path": [3, 9], "testresp": [1, 3, 9, 10, 12], "testrespfile_path": [3, 9], "testrespons": 9, "testvargroupfil": 5, "text": [1, 5, 9, 11, 12], "th": 9, "thalamu": 5, "than": [1, 5, 10, 12], "thei": [1, 3, 9, 10, 12], "them": [1, 5, 10], "theparticular": 9, "therefor": [1, 10], "theta": [9, 10], "thi": [1, 3, 5, 7, 9, 10, 11, 12, 14], "thick": [3, 11, 12], "think": [5, 12, 14], "thiu": 9, "thoma": [4, 10], "thomaswolf": 10, "those": [5, 9, 10], "threadingbackend": 11, "threadpoolctl": [], "three": 3, "threshold": [1, 11, 14], "through": [1, 3, 5, 10], "throw": 11, "thu": [1, 9], "tick": 11, "tight": 5, "tillmann": 6, "time": [10, 12], "timeseri": 12, "titl": [1, 5, 10, 11], "title_fonts": 13, "titles": [11, 13], "tmp": [], "to_csv": [1, 3, 5, 10], "to_list": [1, 5, 14], "to_numpi": [3, 5, 13, 14], "togeth": [1, 10], "tol": 9, "toler": 11, "toml": [], "too": 1, "tool": 10, "toolbox": [4, 9], "toolkit": [10, 12], "toolz": [], "topographi": 6, "torch": 8, "torqu": [9, 12], "total": [11, 13], "toth": 9, "tpr": 13, "tprs_lower": 13, "tprs_upper": 13, "tr": 3, "tr_cov_siz": 1, "tr_resp_siz": 1, "track": 5, "train": [0, 5, 8, 9, 12, 13], "train_betas_ct": 11, "train_betas_z": 11, "train_brain": 11, "train_corr": 11, "train_ct_corr": 11, "train_ct_pheno_corr_p": 11, "train_ct_pval": 11, "train_data_ct": 11, "train_data_z": 11, "train_features_ct": 11, "train_features_inv_ct": 11, "train_features_inv_z": 11, "train_features_z": 11, "train_i": 11, "train_idx": 11, "train_mae_ct": 11, "train_mae_z": 11, "train_mask": 11, "train_mu_centered_ct": 11, "train_mu_centered_z": 11, "train_neg_edges_sum": 11, "train_neg_edges_sum_ct": 11, "train_neg_edges_sum_z": 11, "train_neg_error": 11, "train_phen": 11, "train_pheno_corr_p": 11, "train_phenotyp": 11, "train_pos_edges_sum": 11, "train_pos_edges_sum_ct": 11, "train_pos_edges_sum_z": 11, "train_pos_error": 11, "train_posneg_error": 11, "train_pr": 11, "train_pred_phen_ct": 11, "train_pred_phen_lr_model_ct": 11, "train_pred_phen_lr_model_z": 11, "train_pred_phen_z": 11, "train_preds_en_model_ct": 11, "train_preds_en_model_z": 11, "train_preds_lasso_model_ct": 11, "train_preds_lasso_model_z": 11, "train_preds_ridge_model_ct": 11, "train_preds_ridge_model_z": 11, "train_pval": 11, "train_r2_ct": 11, "train_r2_z": 11, "train_test_split": 1, "train_transformed_ct": 11, "train_transformed_z": 11, "train_x": 11, "train_x_mu": 11, "train_z_corr": 11, "train_z_pheno_corr_p": 11, "train_z_pval": 11, "trainig": 5, "trajectori": 10, "transfer": [0, 1, 5, 9, 12], "transform": [9, 11], "translat": 6, "trbefil": [3, 9], "treatment": 10, "trejactori": 10, "trejactroi": 10, "trejectori": 10, "trend": [1, 9, 12], "trendcoeff": 9, "trendsurf": 9, "treshold": 5, "troubl": 10, "true": [1, 3, 5, 7, 9, 11, 12], "trust": 4, "try": 9, "tryint": 9, "tsbefil": 3, "tstat": 13, "tsv": 12, "ttest_ind": 13, "tune": 9, "turn": [9, 10], "tutori": [1, 3, 5, 10], "two": [1, 3, 5, 9, 10], "txbefil": 3, "txt": [1, 5, 9, 10, 12], "type": [1, 9, 13], "typic": 12, "tzdata": [], "u": 1, "uk": [1, 4], "unbias": 5, "uncertainti": [5, 12], "uncom": 1, "under": [1, 9], "understan": 10, "understand": [6, 10], "undertak": 10, "unif": [], "uniform": 3, "uninstal": [], "uniqu": [3, 5], "unless": 9, "unseen": 0, "unstandard": 1, "until": [9, 12], "unzip": 5, "up": [1, 5, 10], "updat": [5, 9, 11, 13], "upload": 10, "upper": 10, "us": [3, 6, 8, 9, 10, 11, 12, 14], "usag": 9, "user": 9, "user_guid": [], "userwarn": 1, "usr": [1, 10, 11], "util": [1, 5, 9], "v": [1, 6, 11, 13], "valid": [9, 10, 12, 13], "valu": [1, 3, 5, 7, 9, 10, 11, 12, 14], "value_count": 14, "van": 6, "var": 1, "var_covariates_test": 9, "var_groups_adapt": 9, "var_groups_test": 9, "var_groups_xxx": 9, "vari": 1, "variabl": [3, 5, 8, 9, 10, 12, 14], "varianc": [1, 3, 5, 7, 9, 11, 12], "variat": [5, 6, 12, 14], "variou": 3, "vector": [9, 12], "vectoris": 9, "ventricl": 5, "ventricle_z_predict": 13, "verbos": [9, 11], "veri": 1, "verif": 9, "verifi": [1, 5], "vernieuwingsimpul": 4, "version": [1, 5, 8], "versu": [], "vertex": 12, "via": 4, "viabl": 1, "vidi": 4, "view": [1, 14], "view_surf": 14, "violinplot": 14, "visit": 10, "visual": 0, "visualis": 5, "visul": 10, "viz": 13, "vol": 9, "vol2vec": 9, "volatla": 9, "volmask": 9, "volum": [9, 10], "voxel": [9, 12], "voxelwis": 12, "w": [1, 5], "wa": [1, 3], "wai": [5, 9, 10], "wait": 12, "walltim": 12, "want": [1, 5, 9, 11], "warn": [5, 10, 11], "warp": [5, 6, 9, 12], "warp_param": 5, "warp_predict": 5, "wave": 5, "wb": 3, "wc": 5, "wdir": [1, 5], "we": [1, 2, 3, 4, 5, 10, 11, 14], "websit": 8, "well": [3, 10], "wellcom": 4, "were": [1, 10], "westly": 6, "wget": 10, "what": [3, 5, 10, 14], "whatev": 10, "wheel": [], "when": [1, 5, 9, 10], "where": [1, 3, 5, 9, 10, 12, 14], "wherev": 1, "whether": [1, 5, 9], "which": [1, 2, 3, 8, 9, 12, 13], "whichev": 1, "while": 10, "whilst": 1, "whitegrid": 5, "whl": [], "who": 10, "whole": [1, 5], "why": 10, "width": [1, 5, 11], "william": 9, "wise": [9, 12], "wish": [1, 5], "without": [5, 12], "witten": 9, "wolfer": [2, 4, 6, 9, 10], "work": [3, 6], "worker": 11, "working_dir": 12, "world": 9, "worthi": 1, "would": [1, 5, 10], "wrap": 9, "write": [1, 5, 9, 10, 12], "write_nii": 9, "written": [2, 3, 5, 9], "www": [2, 3, 6, 8, 13, 14], "x": [1, 3, 5, 9, 10, 11, 12, 14], "x0_dummi": 5, "x1": [10, 13], "x2": [10, 13], "x_ad": 5, "x_adapt": 3, "x_dummi": 5, "x_forward": 10, "x_te": [1, 5], "x_test": [1, 3], "x_test_txfr": 3, "x_tr": 1, "x_train": [1, 3], "xarrai": [], "xcov": 9, "xdot": 10, "xlabel": [1, 5, 11], "xlim": [5, 13], "xmax": [1, 5], "xmin": [1, 5], "xtick": [10, 11, 13], "xv": 9, "xx": 5, "xz_tr": 9, "y": [1, 3, 5, 8, 9, 10, 11, 13, 14], "y2": 10, "y_ad": 5, "y_adapt": 3, "y_mean_te_sit": 1, "y_te": [1, 5], "y_te_resc": 5, "y_te_rescaled_al": 5, "y_test": [1, 3], "y_test_txfr": 3, "y_tr": 1, "y_train": [1, 3], "y_var_te_sit": 1, "ya_eul": 1, "year": [5, 10], "yhat": [3, 5, 7, 9, 10, 12], "yhat_dummi": 5, "yhat_forward": 10, "yhat_mean_te_sit": 1, "yhat_predict": 5, "yhat_t": [1, 5], "yhat_var_te_sit": 1, "yield": 9, "ylabel": [1, 5, 11], "ylim": [1, 10, 13], "you": [1, 2, 3, 5, 6, 9, 10, 11, 14], "young": 1, "your": [1, 3, 5, 10, 12, 14], "ys2": [3, 7, 9, 10], "ys2_2fold": 10, "ys2_dummi": 5, "ys2_predict": 5, "ytick": [11, 13], "z": [1, 3, 5, 7, 9, 10, 11, 13], "z_col": 13, "z_df": [5, 13, 14], "z_dir": 5, "z_long_format": 14, "z_neg": 14, "z_posit": 14, "z_predict": [5, 13, 14], "z_score": 3, "zabihi": [4, 6, 10], "zero": [1, 5, 9, 10, 11], "zeros_lik": 5, "zhou": 6, "zip": 5, "zuluaga": 6}, "titles": ["Predictive Clinical Neuroscience toolkit", "Predictive Clinical Neuroscience Toolkit", "FAQs", "Predictive Clinical Neuroscience Toolkit", "Acknowledgements", "Using lifespan models to make predictions on new data", "References", "Glossary", "install", "Module Index", "DEMO ON NORMATIVE MODELING", "Load Data", "Background", "post-hoc tutorial", "visualization tutorial"], "titleterms": {"": 10, "0": [3, 10], "1": [1, 3, 10], "10": 1, "11": 1, "12": 1, "2": [1, 3, 10], "3": [1, 3, 10], "4": [1, 3, 10], "4a": 1, "5": [1, 3, 10], "6": [1, 3, 10], "7": [1, 10], "8": [1, 10], "9": [1, 10], "In": 10, "ON": 10, "The": 1, "abbrevi": 7, "accuraci": 11, "acknowledg": 4, "adapt": [3, 5], "add": 1, "algorithm": 1, "altern": 8, "analysi": [1, 13], "andr": 3, "appli": 10, "ask": 2, "b": 1, "background": [0, 10, 12], "basi": 1, "basic": [8, 12], "batch": 3, "bayesian": [1, 3], "bb": 11, "berthet": 3, "brain": [1, 14], "brainchart": [], "calcul": 10, "case": 13, "centil": 14, "chang": 10, "cite": 6, "class": 0, "classic": 13, "classif": 13, "clinic": [0, 1, 3], "combin": 1, "command": 12, "compon": 11, "comput": 1, "configur": [3, 5], "connectom": 11, "control": 13, "cortic": [1, 13], "count": 14, "covari": [1, 3, 5], "covariate_normsampl": 10, "cpm": 11, "creat": [3, 11], "cross": 11, "data": [1, 3, 5, 10, 11, 12, 13], "datafram": 1, "dataset": [], "dementia": 10, "demo": 10, "describ": 1, "deviat": [10, 13, 14], "directori": 1, "doc": 0, "doe": 10, "download": [], "dummi": 5, "edit": 3, "effect": [1, 3], "elast": 11, "estim": [1, 3, 10, 12], "evalu": 1, "expans": 1, "extrem": [10, 14], "featur": 13, "figur": 1, "file": [1, 3, 10], "fit": [5, 11], "folder": 3, "format": [10, 12], "forward": 10, "framework": 1, "frequent": 2, "function": [0, 10], "get": 0, "glossari": 7, "grab": [1, 3], "groom": 3, "hbr": 3, "hierarch": 3, "hoc": [1, 13], "how": 6, "hyppocamp": 10, "i": 12, "idea": 1, "implement": 10, "index": 9, "input": [3, 10], "instal": [1, 3, 8, 10], "interpret": [1, 3], "intro": 12, "kei": 7, "l1": 11, "l2": 11, "lasso": 11, "librari": [1, 3], "lifespan": 5, "line": 12, "linear": [1, 11], "load": [5, 10, 11], "local": 8, "machin": 8, "make": 5, "map": 13, "marquand": 3, "mass": 13, "measur": 3, "model": [1, 3, 5, 10, 11, 12, 13, 14], "modul": 9, "multi": 1, "necessari": [1, 3], "neg": 14, "net": 11, "neurosci": [0, 1, 3], "new": 5, "nordan": 10, "norm": [1, 3, 5, 10, 12, 13, 14], "onto": 3, "option": [5, 10], "other": 0, "output": [1, 13, 14], "overview": 3, "paralellis": 12, "patient": 10, "pcntoolkit": [6, 10, 12], "percent": 10, "percentag": 10, "perform": [1, 3], "pierr": 3, "plot": [5, 14], "posit": 14, "post": [1, 13], "predict": [0, 1, 3, 5, 11], "prepar": [1, 3, 5, 10], "preprar": 1, "princip": 11, "protocol": 1, "psychiatri": 1, "question": 2, "quickstart": 8, "regress": [1, 3, 11], "regular": 11, "resourc": 8, "ridg": 11, "rutherford": 3, "saig": 3, "sampl": 13, "scanner": 1, "score": 13, "script": 12, "set": 3, "setup": 1, "share": 8, "site": [1, 3], "space": 14, "speed": 12, "spline": 1, "split": [1, 11], "start": 0, "step": [1, 3], "stori": 10, "stuff": 0, "subfield": 10, "svm": 13, "t": 13, "task": 10, "test": [1, 3, 5, 11, 13], "testresponse_normsampl": 10, "thick": [1, 13], "thing": 12, "toolkit": [0, 1, 3], "train": [1, 3, 11], "transfer": 3, "true": 13, "tutori": 0, "two": 13, "univari": 13, "unseen": 3, "up": 12, "us": [0, 1, 5, 13], "usag": [8, 12], "valid": 11, "variabl": 1, "violin": 14, "visual": [1, 10, 14], "viz": [1, 14], "what": 12, "which": [5, 10]}}) \ No newline at end of file diff --git a/doc/source/pages/HBR_NormativeModel_FCONdata_Tutorial.rst b/doc/source/pages/HBR_NormativeModel_FCONdata_Tutorial.rst index 55d17eb8..b4fa2dfb 100644 --- a/doc/source/pages/HBR_NormativeModel_FCONdata_Tutorial.rst +++ b/doc/source/pages/HBR_NormativeModel_FCONdata_Tutorial.rst @@ -25,110 +25,6 @@ Step 0: Install necessary libraries & grab data files !pip install pcntoolkit !pip install nutpie - -.. parsed-literal:: - - Collecting https://github.com/amarquand/PCNtoolkit/archive/dev.zip - Downloading https://github.com/amarquand/PCNtoolkit/archive/dev.zip -  \ 64.9 MB 15.9 MB/s 0:00:05 - [?25h Installing build dependencies ... [?25l[?25hdone - Getting requirements to build wheel ... [?25l[?25hdone - Preparing metadata (pyproject.toml) ... [?25l[?25hdone - Collecting bspline<0.2.0,>=0.1.1 (from pcntoolkit==0.31.0) - Downloading bspline-0.1.1.tar.gz (84 kB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.2/84.2 kB 2.3 MB/s eta 0:00:00 - [?25h Preparing metadata (setup.py) ... [?25l[?25hdone - Collecting matplotlib<4.0.0,>=3.9.2 (from pcntoolkit==0.31.0) - Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB) - Requirement already satisfied: nibabel<6.0.0,>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.3.2) - Requirement already satisfied: numpy<2.0,>=1.26 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.26.4) - Requirement already satisfied: pymc<6.0.0,>=5.18.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (5.18.0) - Requirement already satisfied: scikit-learn<2.0.0,>=1.5.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.5.2) - Requirement already satisfied: scipy<2.0,>=1.12 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.13.1) - Requirement already satisfied: seaborn<0.14.0,>=0.13.2 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (0.13.2) - Requirement already satisfied: six<2.0.0,>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from pcntoolkit==0.31.0) (1.16.0) - Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.3.1) - Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (0.12.1) - Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (4.54.1) - Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (1.4.7) - Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (24.2) - Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (11.0.0) - Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (3.2.0) - Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<4.0.0,>=3.9.2->pcntoolkit==0.31.0) (2.8.2) - Requirement already satisfied: importlib-resources>=5.12 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (6.4.5) - Requirement already satisfied: typing-extensions>=4.6 in /usr/local/lib/python3.10/dist-packages (from nibabel<6.0.0,>=5.3.1->pcntoolkit==0.31.0) (4.12.2) - Requirement already satisfied: arviz>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.20.0) - Requirement already satisfied: cachetools>=4.2.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (5.5.0) - Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.1.0) - Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.2.2) - Requirement already satisfied: pytensor<2.26,>=2.25.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.25.5) - Requirement already satisfied: rich>=13.7.1 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (13.9.4) - Requirement already satisfied: threadpoolctl<4.0.0,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.5.0) - Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.5.2->pcntoolkit==0.31.0) (1.4.2) - Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (75.1.0) - Requirement already satisfied: xarray>=2022.6.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.10.0) - Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.4.1) - Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.8.0) - Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2) - Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2024.2) - Requirement already satisfied: filelock>=3.15 in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.16.1) - Requirement already satisfied: etuples in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.3.9) - Requirement already satisfied: logical-unification in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6) - Requirement already satisfied: miniKanren in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.3) - Requirement already satisfied: cons in /usr/local/lib/python3.10/dist-packages (from pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.4.6) - Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.0.0) - Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (2.18.0) - Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.13.0->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (3.12.1) - Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=13.7.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.1.2) - Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (0.12.1) - Requirement already satisfied: multipledispatch in /usr/local/lib/python3.10/dist-packages (from logical-unification->pytensor<2.26,>=2.25.1->pymc<6.0.0,>=5.18.0->pcntoolkit==0.31.0) (1.0.0) - Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 55.1 MB/s eta 0:00:00 - [?25hBuilding wheels for collected packages: pcntoolkit, bspline - Building wheel for pcntoolkit (pyproject.toml) ... [?25l[?25hdone - Created wheel for pcntoolkit: filename=pcntoolkit-0.31.0-py3-none-any.whl size=114835 sha256=40635c10c24ccf2c319ee965aaf1038272cd5578f14d9cb3dd14598ddab31d00 - Stored in directory: /tmp/pip-ephem-wheel-cache-f502unec/wheels/9e/c4/29/3bca3a5facf8ef69b8622461d8520d24a19d3745aefa093d1e - Building wheel for bspline (setup.py) ... [?25l[?25hdone - Created wheel for bspline: filename=bspline-0.1.1-py3-none-any.whl size=84482 sha256=150d24f295ccda92c9789d421e52c3858d43c66874deec4a463a87b4e5533448 - Stored in directory: /root/.cache/pip/wheels/3c/ab/0a/70927853a6d9166bc777922736063a6f99c43a327c802f9326 - Successfully built pcntoolkit bspline - Installing collected packages: bspline, matplotlib, pcntoolkit - Attempting uninstall: matplotlib - Found existing installation: matplotlib 3.8.0 - Uninstalling matplotlib-3.8.0: - Successfully uninstalled matplotlib-3.8.0 - Successfully installed bspline-0.1.1 matplotlib-3.9.2 pcntoolkit-0.31.0 - Collecting nutpie - Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (5.4 kB) - Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (17.0.0) - Requirement already satisfied: pandas>=2.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2.2.2) - Requirement already satisfied: xarray>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (2024.10.0) - Requirement already satisfied: arviz>=0.15.0 in /usr/local/lib/python3.10/dist-packages (from nutpie) (0.20.0) - Requirement already satisfied: setuptools>=60.0.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (75.1.0) - Requirement already satisfied: matplotlib>=3.5 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (3.9.2) - Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.26.4) - Requirement already satisfied: scipy>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.13.1) - Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (24.2) - Requirement already satisfied: h5netcdf>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (1.4.1) - Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (4.12.2) - Requirement already satisfied: xarray-einstats>=0.3 in /usr/local/lib/python3.10/dist-packages (from arviz>=0.15.0->nutpie) (0.8.0) - Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2.8.2) - Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2) - Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2.0->nutpie) (2024.2) - Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from h5netcdf>=1.0.2->arviz>=0.15.0->nutpie) (3.12.1) - Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.3.1) - Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (0.12.1) - Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (4.54.1) - Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (1.4.7) - Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (11.0.0) - Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.5->arviz>=0.15.0->nutpie) (3.2.0) - Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0->nutpie) (1.16.0) - Downloading nutpie-0.13.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.5 MB) -  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 16.5 MB/s eta 0:00:00 - [?25hInstalling collected packages: nutpie - Successfully installed nutpie-0.13.2 - - For this tutorial we will use data from the `Functional Connectom Project FCON1000 `__ to create a multi-site dataset. @@ -149,7 +45,7 @@ First we import the required package, and create a working directory. .. code:: ipython3 - processing_dir = "HBR_demo" # replace with desired working directory + processing_dir = "HBR_demo" # replace with desired working directory if not os.path.isdir(processing_dir): os.makedirs(processing_dir) os.chdir(processing_dir) @@ -165,415 +61,33 @@ color coded by the various sites: .. code:: ipython3 - fcon = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv') + fcon = pd.read_csv( + "https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000.csv" + ) # extract the ICBM site for transfer - icbm = fcon.loc[fcon['site'] == 'ICBM'] - icbm['sitenum'] = 0 + icbm = fcon.loc[fcon["site"] == "ICBM"] + icbm["sitenum"] = 0 # remove from the training set (also Pittsburgh because it only has 3 samples) - fcon = fcon.loc[fcon['site'] != 'ICBM'] - fcon = fcon.loc[fcon['site'] != 'Pittsburgh'] + fcon = fcon.loc[fcon["site"] != "ICBM"] + fcon = fcon.loc[fcon["site"] != "Pittsburgh"] - sites = fcon['site'].unique() - fcon['sitenum'] = 0 + sites = fcon["site"].unique() + fcon["sitenum"] = 0 f, ax = plt.subplots(figsize=(12, 12)) - for i,s in enumerate(sites): - idx = fcon['site'] == s - fcon['sitenum'].loc[idx] = i + for i, s in enumerate(sites): + idx = fcon["site"] == s + fcon["sitenum"].loc[idx] = i - print('site',s, sum(idx)) - ax.scatter(fcon['age'].loc[idx], fcon['lh_MeanThickness_thickness'].loc[idx]) + print("site", s, sum(idx)) + ax.scatter(fcon["age"].loc[idx], fcon["lh_MeanThickness_thickness"].loc[idx]) ax.legend(sites) - ax.set_ylabel('LH mean cortical thickness [mm]') - ax.set_xlabel('age') - - - -.. parsed-literal:: - - :5: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame. - Try using .loc[row_indexer,col_indexer] = value instead - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - icbm['sitenum'] = 0 - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - :18: FutureWarning: ChainedAssignmentError: behaviour will change in pandas 3.0! - You are setting values through chained assignment. Currently this works in certain cases, but when using Copy-on-Write (which will become the default behaviour in pandas 3.0) this will never work to update the original DataFrame or Series, because the intermediate object on which we are setting values will behave as a copy. - A typical example is when you are setting values in a column of a DataFrame, like: - - df["col"][row_indexer] = value - - Use `df.loc[row_indexer, "col"] = values` instead, to perform the assignment in a single step and ensure this keeps updating the original `df`. - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - - fcon['sitenum'].loc[idx] = i - :18: SettingWithCopyWarning: - A value is trying to be set on a copy of a slice from a DataFrame - - See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy - fcon['sitenum'].loc[idx] = i - - -.. parsed-literal:: - - site AnnArbor_a 24 - site AnnArbor_b 32 - site Atlanta 28 - site Baltimore 23 - site Bangor 20 - site Beijing_Zang 198 - site Berlin_Margulies 26 - site Cambridge_Buckner 198 - site Cleveland 31 - site Leiden_2180 12 - site Leiden_2200 19 - site Milwaukee_b 46 - site Munchen 15 - site NewYork_a 83 - site NewYork_a_ADHD 25 - site Newark 19 - site Oulu 102 - site Oxford 22 - site PaloAlto 17 - site Queensland 19 - site SaintLouis 31 - - - - -.. parsed-literal:: - - Text(0.5, 0, 'age') - - - - -.. image:: HBR_NormativeModel_FCONdata_Tutorial_files/HBR_NormativeModel_FCONdata_Tutorial_10_3.png + ax.set_ylabel("LH mean cortical thickness [mm]") + ax.set_xlabel("age") Step 1: Prepare training and testing sets @@ -601,53 +115,26 @@ then displayed. icbm_tr = icbm.loc[tr] icbm_te = icbm.loc[te] - print('sample size check') - for i,s in enumerate(sites): - idx = fcon_tr['site'] == s - idxte = fcon_te['site'] == s - print(i,s, sum(idx), sum(idxte)) + print("sample size check") + for i, s in enumerate(sites): + idx = fcon_tr["site"] == s + idxte = fcon_te["site"] == s + print(i, s, sum(idx), sum(idxte)) - fcon_tr.to_csv(processing_dir + '/fcon1000_tr.csv') - fcon_te.to_csv(processing_dir + '/fcon1000_te.csv') - icbm_tr.to_csv(processing_dir + '/fcon1000_icbm_tr.csv') - icbm_te.to_csv(processing_dir + '/fcon1000_icbm_te.csv') - - -.. parsed-literal:: - - sample size check - 0 AnnArbor_a 10 14 - 1 AnnArbor_b 19 13 - 2 Atlanta 12 16 - 3 Baltimore 12 11 - 4 Bangor 10 10 - 5 Beijing_Zang 91 107 - 6 Berlin_Margulies 9 17 - 7 Cambridge_Buckner 96 102 - 8 Cleveland 13 18 - 9 Leiden_2180 5 7 - 10 Leiden_2200 11 8 - 11 Milwaukee_b 18 28 - 12 Munchen 9 6 - 13 NewYork_a 38 45 - 14 NewYork_a_ADHD 15 10 - 15 Newark 9 10 - 16 Oulu 50 52 - 17 Oxford 9 13 - 18 PaloAlto 8 9 - 19 Queensland 10 9 - 20 SaintLouis 18 13 - + fcon_tr.to_csv(processing_dir + "/fcon1000_tr.csv") + fcon_te.to_csv(processing_dir + "/fcon1000_te.csv") + icbm_tr.to_csv(processing_dir + "/fcon1000_icbm_tr.csv") + icbm_te.to_csv(processing_dir + "/fcon1000_icbm_te.csv") Otherwise you can just load these pre defined subsets: .. code:: ipython3 # Optional - #fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv') - #fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv') - #icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv') - #icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv') + # fcon_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_tr.csv') + # fcon_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_te.csv') + # icbm_tr = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_tr.csv') + # icbm_te = pd.read_csv('https://raw.githubusercontent.com/predictive-clinical-neuroscience/PCNtoolkit-demo/main/data/fcon1000_icbm_te.csv') Step 2: Configure HBR inputs: covariates, measures and batch effects -------------------------------------------------------------------- @@ -657,7 +144,7 @@ hemisphere: two idps. .. code:: ipython3 - idps = ['rh_MeanThickness_thickness','lh_MeanThickness_thickness'] + idps = ["rh_MeanThickness_thickness", "lh_MeanThickness_thickness"] As input to the model, we need covariates (used to describe predictable source of variability (fixed effects), here ‘age’), measures (here @@ -675,592 +162,79 @@ testing set (``_test``). .. code:: ipython3 - X_train = (fcon_tr['age']/100).to_numpy(dtype=float) + X_train = (fcon_tr["age"] / 100).to_numpy(dtype=float) Y_train = fcon_tr[idps].to_numpy(dtype=float) # configure batch effects for site and sex - #batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int) + # batch_effects_train = fcon_tr[['sitenum','sex']].to_numpy(dtype=int) # or only site - batch_effects_train = fcon_tr[['sitenum']].to_numpy(dtype=int) + batch_effects_train = fcon_tr[["sitenum"]].to_numpy(dtype=int) - with open('X_train.pkl', 'wb') as file: + with open("X_train.pkl", "wb") as file: pickle.dump(pd.DataFrame(X_train), file) - with open('Y_train.pkl', 'wb') as file: + with open("Y_train.pkl", "wb") as file: pickle.dump(pd.DataFrame(Y_train), file) - with open('trbefile.pkl', 'wb') as file: + with open("trbefile.pkl", "wb") as file: pickle.dump(pd.DataFrame(batch_effects_train), file) - X_test = (fcon_te['age']/100).to_numpy(dtype=float) + X_test = (fcon_te["age"] / 100).to_numpy(dtype=float) Y_test = fcon_te[idps].to_numpy(dtype=float) - #batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int) - batch_effects_test = fcon_te[['sitenum']].to_numpy(dtype=int) + # batch_effects_test = fcon_te[['sitenum','sex']].to_numpy(dtype=int) + batch_effects_test = fcon_te[["sitenum"]].to_numpy(dtype=int) - with open('X_test.pkl', 'wb') as file: + with open("X_test.pkl", "wb") as file: pickle.dump(pd.DataFrame(X_test), file) - with open('Y_test.pkl', 'wb') as file: + with open("Y_test.pkl", "wb") as file: pickle.dump(pd.DataFrame(Y_test), file) - with open('tsbefile.pkl', 'wb') as file: + with open("tsbefile.pkl", "wb") as file: pickle.dump(pd.DataFrame(batch_effects_test), file) + # a simple function to quickly load pickle files def ldpkl(filename: str): - with open(filename, 'rb') as f: + with open(filename, "rb") as f: return pickle.load(f) .. code:: ipython3 batch_effects_test - - - -.. parsed-literal:: - - array([[ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 0], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 1], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 2], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 3], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 4], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 5], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 6], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 7], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 8], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [ 9], - [10], - [10], - [10], - [10], - [10], - [10], - [10], - [10], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [11], - [12], - [12], - [12], - [12], - [12], - [12], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [13], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [14], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [15], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [16], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [17], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [18], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [19], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20], - [20]]) - - - Step 3: Files and Folders grooming ---------------------------------- .. code:: ipython3 - respfile = os.path.join(processing_dir, 'Y_train.pkl') # measurements (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects) - covfile = os.path.join(processing_dir, 'X_train.pkl') # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects) - - testrespfile_path = os.path.join(processing_dir, 'Y_test.pkl') # measurements for the testing samples - testcovfile_path = os.path.join(processing_dir, 'X_test.pkl') # covariate file for the testing samples - - trbefile = os.path.join(processing_dir, 'trbefile.pkl') # training batch effects file (eg scanner_id, gender) (columns: the various batch effects, rows: observations or subjects) - tsbefile = os.path.join(processing_dir, 'tsbefile.pkl') # testing batch effects file - - output_path = os.path.join(processing_dir, 'Models/') # output path, where the models will be written - log_dir = os.path.join(processing_dir, 'log/') # + respfile = os.path.join( + processing_dir, "Y_train.pkl" + ) # measurements (eg cortical thickness) of the training samples (columns: the various features/ROIs, rows: observations or subjects) + covfile = os.path.join( + processing_dir, "X_train.pkl" + ) # covariates (eg age) the training samples (columns: covariates, rows: observations or subjects) + + testrespfile_path = os.path.join( + processing_dir, "Y_test.pkl" + ) # measurements for the testing samples + testcovfile_path = os.path.join( + processing_dir, "X_test.pkl" + ) # covariate file for the testing samples + + trbefile = os.path.join( + processing_dir, "trbefile.pkl" + ) # training batch effects file (eg scanner_id, gender) (columns: the various batch effects, rows: observations or subjects) + tsbefile = os.path.join(processing_dir, "tsbefile.pkl") # testing batch effects file + + output_path = os.path.join( + processing_dir, "Models/" + ) # output path, where the models will be written + log_dir = os.path.join(processing_dir, "log/") # if not os.path.isdir(output_path): os.mkdir(output_path) if not os.path.isdir(log_dir): os.mkdir(log_dir) - outputsuffix = '_estimate' # a string to name the output files, of use only to you, so adapt it for your needs. + outputsuffix = "_estimate" # a string to name the output files, of use only to you, so adapt it for your needs. Step 4: Estimating the models ----------------------------- @@ -1275,403 +249,26 @@ and output files will be written and how they will be named. .. code:: ipython3 - ptk.normative.estimate(covfile=covfile, - respfile=respfile, - tsbefile=tsbefile, - trbefile=trbefile, - inscaler='standardize', - outscaler='standardize', - linear_mu='True', - random_intercept_mu='True', - centered_intercept_mu='True', - alg='hbr', - log_path=log_dir, - binary=True, - output_path=output_path, - testcov= testcovfile_path, - testresp = testrespfile_path, - outputsuffix=outputsuffix, - savemodel=True, - nuts_sampler='nutpie') - - -.. parsed-literal:: - - inscaler: standardize - outscaler: standardize - Processing data in /content/HBR_demo/Y_train.pkl - Estimating model 1 of 2 - - - -.. raw:: html - - - - - - - -.. raw:: html - - -
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150000.3415
    -
    - - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -
    
    -
    -
    -
    -
    -.. parsed-literal::
    -
    -    Output()
    -
    -
    -.. parsed-literal::
    -
    -    Normal
    -
    -
    -
    -.. raw:: html
    -
    -    
    
    -
    -
    -
    -.. parsed-literal::
    -
    -    Estimating model  2 of 2
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150000.3315
    -
    - - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -
    
    -
    -
    -
    -.. parsed-literal::
    -
    -    Normal
    -
    -
    -
    -.. parsed-literal::
    -
    -    Output()
    -
    -
    -
    -.. raw:: html
    -
    -    
    
    -
    -
    -
    -.. parsed-literal::
    -
    -    Saving model meta-data...
    -    Evaluating the model ...
    -    Writing outputs ...
    -
    +    ptk.normative.estimate(
    +        covfile=covfile,
    +        respfile=respfile,
    +        tsbefile=tsbefile,
    +        trbefile=trbefile,
    +        inscaler="standardize",
    +        outscaler="standardize",
    +        linear_mu="True",
    +        random_intercept_mu="True",
    +        centered_intercept_mu="True",
    +        alg="hbr",
    +        log_path=log_dir,
    +        binary=True,
    +        output_path=output_path,
    +        testcov=testcovfile_path,
    +        testresp=testrespfile_path,
    +        outputsuffix=outputsuffix,
    +        savemodel=True,
    +        nuts_sampler="nutpie",
    +    )
     
     Here some analyses can be done, there are also some error metrics that
     could be of interest. This is covered in step 6 and in `Saige’s
    @@ -1687,45 +284,49 @@ training and testing set of covariates, measures and batch effects:
     
     .. code:: ipython3
     
    -    X_adapt = (icbm_tr['age']/100).to_numpy(dtype=float)
    +    X_adapt = (icbm_tr["age"] / 100).to_numpy(dtype=float)
         Y_adapt = icbm_tr[idps].to_numpy(dtype=float)
    -    #batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
    -    batch_effects_adapt = icbm_tr[['sitenum']].to_numpy(dtype=int)
    +    # batch_effects_adapt = icbm_tr[['sitenum','sex']].to_numpy(dtype=int)
    +    batch_effects_adapt = icbm_tr[["sitenum"]].to_numpy(dtype=int)
         
    -    with open('X_adaptation.pkl', 'wb') as file:
    +    with open("X_adaptation.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(X_adapt), file)
    -    with open('Y_adaptation.pkl', 'wb') as file:
    +    with open("Y_adaptation.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(Y_adapt), file)
    -    with open('adbefile.pkl', 'wb') as file:
    +    with open("adbefile.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(batch_effects_adapt), file)
         
         # Test data (new dataset)
    -    X_test_txfr = (icbm_te['age']/100).to_numpy(dtype=float)
    +    X_test_txfr = (icbm_te["age"] / 100).to_numpy(dtype=float)
         Y_test_txfr = icbm_te[idps].to_numpy(dtype=float)
    -    #batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
    -    batch_effects_test_txfr = icbm_te[['sitenum']].to_numpy(dtype=int)
    +    # batch_effects_test_txfr = icbm_te[['sitenum','sex']].to_numpy(dtype=int)
    +    batch_effects_test_txfr = icbm_te[["sitenum"]].to_numpy(dtype=int)
         
    -    with open('X_test_txfr.pkl', 'wb') as file:
    +    with open("X_test_txfr.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(X_test_txfr), file)
    -    with open('Y_test_txfr.pkl', 'wb') as file:
    +    with open("Y_test_txfr.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(Y_test_txfr), file)
    -    with open('txbefile.pkl', 'wb') as file:
    +    with open("txbefile.pkl", "wb") as file:
             pickle.dump(pd.DataFrame(batch_effects_test_txfr), file)
     
     
     .. code:: ipython3
     
    -    respfile = os.path.join(processing_dir, 'Y_adaptation.pkl')
    -    covfile = os.path.join(processing_dir, 'X_adaptation.pkl')
    -    testrespfile_path = os.path.join(processing_dir, 'Y_test_txfr.pkl')
    -    testcovfile_path = os.path.join(processing_dir, 'X_test_txfr.pkl')
    -    trbefile = os.path.join(processing_dir, 'adbefile.pkl')
    -    tsbefile = os.path.join(processing_dir, 'txbefile.pkl')
    -    
    -    log_dir = os.path.join(processing_dir, 'log_transfer/')
    -    output_path = os.path.join(processing_dir, 'Transfer/')
    -    model_path = os.path.join(processing_dir, 'Models/')  # path to the previously trained models
    -    outputsuffix = '_transfer'  # suffix added to the output files from the transfer function
    +    respfile = os.path.join(processing_dir, "Y_adaptation.pkl")
    +    covfile = os.path.join(processing_dir, "X_adaptation.pkl")
    +    testrespfile_path = os.path.join(processing_dir, "Y_test_txfr.pkl")
    +    testcovfile_path = os.path.join(processing_dir, "X_test_txfr.pkl")
    +    trbefile = os.path.join(processing_dir, "adbefile.pkl")
    +    tsbefile = os.path.join(processing_dir, "txbefile.pkl")
    +    
    +    log_dir = os.path.join(processing_dir, "log_transfer/")
    +    output_path = os.path.join(processing_dir, "Transfer/")
    +    model_path = os.path.join(
    +        processing_dir, "Models/"
    +    )  # path to the previously trained models
    +    outputsuffix = (
    +        "_transfer"  # suffix added to the output files from the transfer function
    +    )
     
     Here, the difference is that the transfer function needs a model path,
     which points to the models we just trained, and new site data (training
    @@ -1733,394 +334,37 @@ and testing). That is basically the only difference.
     
     .. code:: ipython3
     
    -    yhat, s2, z_scores = ptk.normative.transfer(covfile=covfile,
    -                                                respfile=respfile,
    -                                                tsbefile=tsbefile,
    -                                                trbefile=trbefile,
    -                                                inscaler='standardize',
    -                                                outscaler='standardize',
    -                                                linear_mu='True',
    -                                                random_intercept_mu='True',
    -                                                centered_intercept_mu='True',
    -                                                model_path = model_path,
    -                                                alg='hbr',
    -                                                log_path=log_dir,
    -                                                binary=True,
    -                                                output_path=output_path,
    -                                                testcov= testcovfile_path,
    -                                                testresp = testrespfile_path,
    -                                                outputsuffix=outputsuffix,
    -                                                savemodel=True,
    -                                                nuts_sampler='nutpie')
    -
    -
    -.. parsed-literal::
    -
    -    Loading data ...
    -    Using HBR transform...
    -    Transferring model  1 of 2
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150020.477
    -
    - - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -
    
    -
    -
    -
    -.. parsed-literal::
    -
    -    Using HBR transform...
    -    Transferring model  2 of 2
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -
    -
    -
    -
    -.. raw:: html
    -
    -    
    -    
    -

    Sampler Progress

    -

    Total Chains: 1

    -

    Active Chains: 0

    -

    - Finished Chains: - 1 -

    -

    Sampling for now

    -

    - Estimated Time to Completion: - now -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ProgressDrawsDivergencesStep SizeGradients/Draw
    - - - 150010.4015
    -
    - - - - -.. parsed-literal:: - - Output() - - - -.. raw:: html - -
    
    -
    -
    -
    -.. parsed-literal::
    -
    -    Evaluating the model ...
    -    Writing outputs ...
    -
    +    yhat, s2, z_scores = ptk.normative.transfer(
    +        covfile=covfile,
    +        respfile=respfile,
    +        tsbefile=tsbefile,
    +        trbefile=trbefile,
    +        inscaler="standardize",
    +        outscaler="standardize",
    +        linear_mu="True",
    +        random_intercept_mu="True",
    +        centered_intercept_mu="True",
    +        model_path=model_path,
    +        alg="hbr",
    +        log_path=log_dir,
    +        binary=True,
    +        output_path=output_path,
    +        testcov=testcovfile_path,
    +        testresp=testrespfile_path,
    +        outputsuffix=outputsuffix,
    +        savemodel=True,
    +        nuts_sampler="nutpie",
    +    )
     
     .. code:: ipython3
     
         output_path
     
    -
    -
    -
    -.. parsed-literal::
    -
    -    '/content/HBR_demo/Transfer/'
    -
    -
    -
     .. code:: ipython3
     
    -    EV = pd.read_pickle('EXPV_estimate.pkl')
    +    EV = pd.read_pickle("EXPV_estimate.pkl")
         print(EV)
     
    -
    -.. parsed-literal::
    -
    -              0
    -    0  0.438215
    -    1  0.439181
    -
    -
     And that is it, you now have models that benefited from prior knowledge
     about different scanner sites to learn on unseen sites.