{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from nltools.data import Adjacency\n", "import seaborn as sns\n", "from brainiak.isc import bootstrap_isc\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def make_correlated_data(num_obs, num_features, corrs, mu=0.0,sigma=1.0):\n", " \"\"\"Quick function to generate correlated data given the upper triangle of a correlation matrix\"\"\"\n", " from scipy.spatial.distance import squareform\n", "\n", " mu = [mu] * num_features\n", " sigma = [sigma] * num_features\n", " corrs = squareform(corrs)\n", " np.fill_diagonal(corrs, 1.0)\n", " # Rescale correlation matrix by variances, given standard deviations of features\n", " sd = np.diag(sigma)\n", " # R * Vars = R * SD * SD\n", " cov = corrs.dot(sd.dot(sd))\n", " X = np.random.multivariate_normal(mu, cov, size=num_obs)\n", "\n", " return X" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Generate correlated data\n", "num_trs = 1000\n", "num_subs = 30\n", "num_cells = int((num_features * (num_features - 1) / 2))\n", "corrs = np.random.uniform(low=-1, high=1, size=num_cells)\n", "\n", "x = make_correlated_data(num_trs, num_subs, corrs=corrs)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot it to make sure it's symmetric\n", "corrmat = np.corrcoef(x.T)\n", "sns.heatmap(corrmat, cmap='RdBu_r', vmin=-1,vmax=1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0028299493293925766" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create Adjacency object\n", "X = Adjacency(corrmat, matrix_type='similarity')\n", "# Median ISC\n", "X.median()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'isc': 0.0028299493293925766,\n", " 'p': 0.7936412717456509,\n", " 'ci': (-0.01888830822675221, 0.02807737203904172)}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1 core no parallelization\n", "out_jobs1 =X.isc(n_jobs=1)\n", "out_jobs1" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'isc': 0.0028299493293925766,\n", " 'p': 0.7800439912017596,\n", " 'ci': (-0.01799797962376179, 0.026901557539205936)}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2 cores \n", "out_jobs2 = X.isc(n_jobs=2)\n", "out_jobs2" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'isc': 0.0028299493293925766,\n", " 'p': 0.7610477904419116,\n", " 'ci': (-0.01564921846884966, 0.030241130678989932)}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 4 cores \n", "out_jobs2 = X.isc(n_jobs=4)\n", "out_jobs2" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'isc': 0.0028299493293925766,\n", " 'p': 0.7726454709058188,\n", " 'ci': (-0.008974907949958427, 0.026901557539205936)}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# All cores (8 on my machine)\n", "out_jobsall = X.isc()\n", "out_jobsall" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ISC: [0.00282995], p: [0.34733053], ci: (array([-0.01903863]), array([0.02807737]))\n" ] } ], "source": [ "# Now with brainiak\n", "observed, ci, p, dist = bootstrap_isc(X.data, n_bootstraps=5000, pairwise=True)\n", "print(f\"ISC: {observed}, p: {p}, ci: {ci}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:brainiak]", "language": "python", "name": "conda-env-brainiak-py" }, "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.7.9" } }, "nbformat": 4, "nbformat_minor": 4 }