{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Predicting Schizophrenia Diagnosis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebooks contains an analysis of the COBRE dataset available on Nilearn. The dataset contains resting state fMRI data from 146 participants. Approximately half of the subjects are patients diagnosed with schizophrenia and the remainder are healthy controls. The anlaysis in this notebook attempt to predict schizophrenia diagnosis using resting state fMRI data." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "#import data\n", "from nilearn import datasets\n", "data = datasets.fetch_cobre(n_subjects=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Phenotypic info for the subjects is included with the data ut requires some cleaning first." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#import phenotypic data\n", "import pandas\n", "pheno = pandas.DataFrame(data.phenotypic)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll extract subject ID from the niifti file names using index slicing and then merge the fMRI file paths to the phenotypic data." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#extract participant id from file paths\n", "file_names = []\n", "for path in data.func:\n", " \n", " file_names.append(path[40:45])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#create dataframe of file paths and ids\n", "files = pandas.DataFrame(data.func, columns = ['path'])\n", "files['id'] = file_names\n", "files['id'] = files.id.astype(int)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#merge phenotypic data with file paths\n", "import pandas\n", "pheno = pandas.merge(pheno, files, on = 'id')\n", "\n", "#fix string decoding\n", "pheno['gender'] = pheno['gender'].map(lambda x: x.decode('utf-8'))\n", "pheno['handedness'] = pheno['handedness'].map(lambda x: x.decode('utf-8'))\n", "pheno['subject_type'] = pheno['subject_type'].map(lambda x: x.decode('utf-8'))\n", "pheno['diagnosis'] = pheno['diagnosis'].map(lambda x: x.decode('utf-8'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at what we have now. And also sve the cleaned phenotypic data to a csv." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | id | \n", "current_age | \n", "gender | \n", "handedness | \n", "subject_type | \n", "diagnosis | \n", "frames_ok | \n", "fd | \n", "fd_scrubbed | \n", "path | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "40061 | \n", "18 | \n", "Male | \n", "Right | \n", "Control | \n", "None | \n", "133 | \n", "0.25512 | \n", "0.22657 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040061.... | \n", "
| 1 | \n", "40090 | \n", "18 | \n", "Female | \n", "Right | \n", "Control | \n", "None | \n", "150 | \n", "0.16963 | \n", "0.16963 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040090.... | \n", "
| 2 | \n", "40046 | \n", "18 | \n", "Male | \n", "Left | \n", "Patient | \n", "295.70 depressed type | \n", "76 | \n", "0.37504 | \n", "0.30042 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040046.... | \n", "
| 3 | \n", "40002 | \n", "19 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "67 | \n", "0.40006 | \n", "0.21575 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040002.... | \n", "
| 4 | \n", "40117 | \n", "19 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "133 | \n", "0.20975 | \n", "0.18410 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040117.... | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 141 | \n", "40089 | \n", "62 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "40 | \n", "0.70368 | \n", "0.72439 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040089.... | \n", "
| 142 | \n", "40040 | \n", "63 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "42 | \n", "0.58301 | \n", "0.40646 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040040.... | \n", "
| 143 | \n", "40028 | \n", "64 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "55 | \n", "0.42364 | \n", "0.26393 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040028.... | \n", "
| 144 | \n", "40086 | \n", "65 | \n", "Male | \n", "Right | \n", "Control | \n", "None | \n", "48 | \n", "0.39595 | \n", "0.32296 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040086.... | \n", "
| 145 | \n", "40007 | \n", "65 | \n", "Female | \n", "Right | \n", "Patient | \n", "295.3 | \n", "40 | \n", "0.70044 | \n", "0.72077 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040007.... | \n", "
146 rows × 10 columns
\n", "| \n", " | id | \n", "current_age | \n", "gender | \n", "handedness | \n", "subject_type | \n", "diagnosis | \n", "frames_ok | \n", "fd | \n", "fd_scrubbed | \n", "path | \n", "features | \n", "file | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "40061 | \n", "18 | \n", "Male | \n", "Right | \n", "Control | \n", "None | \n", "133 | \n", "0.25512 | \n", "0.22657 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040061.... | \n", "[0.12785325357282862, 0.24422311479417322, 0.0... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040061.... | \n", "
| 1 | \n", "40090 | \n", "18 | \n", "Female | \n", "Right | \n", "Control | \n", "None | \n", "150 | \n", "0.16963 | \n", "0.16963 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040090.... | \n", "[0.05584897620355883, 0.11246991477285287, 0.0... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040090.... | \n", "
| 2 | \n", "40046 | \n", "18 | \n", "Male | \n", "Left | \n", "Patient | \n", "295.70 depressed type | \n", "76 | \n", "0.37504 | \n", "0.30042 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040046.... | \n", "[0.08678037911430761, 0.06380639929297223, 0.2... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040046.... | \n", "
| 3 | \n", "40002 | \n", "19 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "67 | \n", "0.40006 | \n", "0.21575 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040002.... | \n", "[0.1456258349041035, -0.06313977045762048, 0.0... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040002.... | \n", "
| 4 | \n", "40117 | \n", "19 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "133 | \n", "0.20975 | \n", "0.18410 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040117.... | \n", "[0.17462308889197792, -0.11825290188441862, -0... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040117.... | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 141 | \n", "40089 | \n", "62 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "40 | \n", "0.70368 | \n", "0.72439 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040089.... | \n", "[0.010289989396440208, 0.05385253837186407, 0.... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040089.... | \n", "
| 142 | \n", "40040 | \n", "63 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "42 | \n", "0.58301 | \n", "0.40646 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040040.... | \n", "[-0.05942811380550243, 0.005379451667081145, 0... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040040.... | \n", "
| 143 | \n", "40028 | \n", "64 | \n", "Male | \n", "Right | \n", "Patient | \n", "295.3 | \n", "55 | \n", "0.42364 | \n", "0.26393 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040028.... | \n", "[0.1526906170886252, 0.2197449376315366, 0.301... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040028.... | \n", "
| 144 | \n", "40086 | \n", "65 | \n", "Male | \n", "Right | \n", "Control | \n", "None | \n", "48 | \n", "0.39595 | \n", "0.32296 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040086.... | \n", "[0.44868677474053265, -0.1957847795785304, -0.... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040086.... | \n", "
| 145 | \n", "40007 | \n", "65 | \n", "Female | \n", "Right | \n", "Patient | \n", "295.3 | \n", "40 | \n", "0.70044 | \n", "0.72077 | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040007.... | \n", "[0.08900283860731034, 0.11650348658751322, 0.3... | \n", "/home/aalbury/nilearn_data/cobre/fmri_0040007.... | \n", "
146 rows × 12 columns
\n", "