{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Generation of supplemental materials for the MRIQC paper\n", "\n", "This notebook is associated to the paper:\n", "\n", "Esteban O, Birman D, Schaer M, Koyejo OO, Poldrack RA, Gorgolewski KJ; MRIQC: Predicting Quality in Manual MRI Assessment Protocols Using No-Reference Image Quality Measures; bioRxiv 111294; doi:[10.1101/111294](https://doi.org/10.1101/111294)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "%load_ext autoreload\n", "%autoreload 2\n", "import os.path as op\n", "import numpy as np\n", "import pandas as pd\n", "from mriqc.viz import misc as mviz\n", "from pkg_resources import resource_filename as pkgrf\n", "outputs_path = '../../mriqc-data/'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x_path = pkgrf('mriqc', 'data/csv/x_abide.csv')\n", "y_path = pkgrf('mriqc', 'data/csv/y_abide.csv')\n", "ds030_x_path = pkgrf('mriqc', 'data/csv/x_ds030.csv')\n", "ds030_y_path = pkgrf('mriqc', 'data/csv/y_ds030.csv')\n", "\n", "rater_types = {'rater_1': float, 'rater_2': float, 'rater_3': float}\n", "mdata = pd.read_csv(y_path, index_col=False, dtype=rater_types)\n", "\n", "sites = list(sorted(list(set(mdata.site.values.ravel().tolist()))))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fig = mviz.raters_variability_plot(\n", " mdata, raters=['rater_1', 'rater_2', 'rater_3'], \n", " rater_names=['Rater 1', 'Rater 2A', 'Rater 2B'],\n", " out_file=op.join(outputs_path, 'figures', 'suppl-fig02.pdf'),\n", " only_overlap=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import cohen_kappa_score\n", "overlap = mdata[np.all(~np.isnan(mdata[['rater_2', 'rater_3']]), axis=1)]\n", "y1 = overlap.rater_2.values.ravel().tolist()\n", "y2 = overlap.rater_3.values.ravel().tolist()\n", "\n", "fig = mviz.inter_rater_variability(y1, y2, raters=['Protocol A', 'Protocol B'],\n", " out_file=op.join(outputs_path, 'figures', 'suppl-intrarv.pdf'))\n", "\n", "print(\"Cohen's Kappa %f\" % cohen_kappa_score(y1, y2))\n", "\n", "y1 = overlap.rater_2.values.ravel()\n", "y1[y1 == 0] = 1\n", "\n", "y2 = overlap.rater_3.values.ravel()\n", "y2[y2 == 0] = 1\n", "print(\"Cohen's Kappa (binarized): %f\" % cohen_kappa_score(y1, y2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fig = mviz.plot_corrmat(x_path)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fig = mviz.plot_histograms(x_path, y_path)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }