From b32609d41f397cb31b762d5c719096c34e241606 Mon Sep 17 00:00:00 2001 From: PeerHerholz Date: Mon, 7 Nov 2022 16:06:48 +0100 Subject: [PATCH 1/3] update intro to remove encoding part --- content/intro.md | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/content/intro.md b/content/intro.md index 6c2bb9c..e38cfa1 100644 --- a/content/intro.md +++ b/content/intro.md @@ -1,9 +1,9 @@ # Welcome -**"Introduction to brain encoding and decoding in fMRI"** +**"Introduction to brain decoding in fMRI"** -This `jupyter book` presents an introduction to `brain encoding` and `decoding` using `fMRI`. It was developed within the [educational courses](https://main-educational.github.io), conducted as part of the [Montreal AI and Neuroscience (MAIN) conference](https://www.main2022.org/) in November 2022. +This `jupyter book` presents an introduction to `brain decoding` using `fMRI`. It was developed within the [educational courses](https://main-educational.github.io), conducted as part of the [Montreal AI and Neuroscience (MAIN) conference](https://www.main2022.org/) in November 2022. [![Jupyter Book Badge](https://jupyterbook.org/badge.svg)](https://main-educational.github.io/brain_encoding_decoding/intro.html) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/main-educational/brain_encoding_decoding/HEAD) @@ -14,7 +14,7 @@ This `jupyter book` presents an introduction to `brain encoding` and `decoding` [![License](https://img.shields.io/github/license/main-educational/brain_encoding_decoding)](https://github.com/main-educational/brain_encoding_decoding) [![CONP](https://img.shields.io/badge/Supported%20by-%20CONP%2FPCNO-red)](https://conp.ca/) -Building upon the prior sections of the [educational courses](https://main-educational.github.io), the here presented resources aim to provide an overview of how `encoding` and `decoding` `models` can be applied to `fMRI` data in order to investigate `brain function`. Importantly, these methods cannot only be utilized to analyze data from `biological agents` (e.g. `humans`, `non-human primates`, etc.) but also `artificial neural networks`, as well as presenting the opportunity to compare processing in both. They are thus core approaches that are prominently used at the intersection of `neuroscience` and `AI`. +Building upon the prior sections of the [educational courses](https://main-educational.github.io), the here presented resources aim to provide an overview of how `decoding` `models` can be applied to `fMRI` data in order to investigate `brain function`. Importantly, the respective methods cannot only be utilized to analyze data from `biological agents` (e.g. `humans`, `non-human primates`, etc.) but also `artificial neural networks`, as well as presenting the opportunity to compare processing in both. They are thus core approaches that are prominently used at the intersection of `neuroscience` and `AI`. ```{figure} haxby_data/brain-encoding-decoding.png @@ -27,12 +27,12 @@ To test the consistency of representations in artificial neural networks (ANNs) ``` The tutorials make heavy use of [nilearn](https://nilearn.github.io/stable/index.html) concerning -manipulating and processing `fMRI` data, as well as [scikit-learn](https://scikit-learn.org/stable/) and [pytorch](https://pytorch.org/) to apply `encoding` and `decoding` on the data. +manipulating and processing `fMRI` data, as well as [scikit-learn](https://scikit-learn.org/stable/) and [pytorch](https://pytorch.org/) to apply `decoding models` on the data. We used the [Jupyter Book](https://jupyterbook.org/en/stable/intro.html) framework to provide all materials in an open, structured and interactive manner. ALl pages and section you see here are built from `markdown` files or `jupyter notebooks`, allowing you to read through the materials and/or run them, locally or in the cloud. The three symbols on the top right allow to enable full screen mode, link to the underlying [GitHub repository](https://github.com/main-educational/brain_encoding_decoding) and allow you to download the respective sections as a `pdf` or `jupyter notebook` respectively. Some sections will additionally have a little rocket in that row which will allow you to interactively rerun certain parts via cloud computing (please see the [Binder](#Binder) section for more information). -## Brain encoding and decoding +## Brain decoding vs. encoding In short, `encoding` and `decoding` entail contrary operations that can yet be utilized in a complementary manner. `Encoding models` applied to `brain data`, e.g. `fMRI`, aim to predict `brain responses`/`activity` based on `annotations` or `features` of the `stimuli` perceived by the `participant`. These can be obtained from a multitude of options, including `artificial neural networks` which would allow to relate their `processing` of the `stimuli` to that of `biological agents`, ie `brains`. `Decoding models` on the other hand comprise `models` with which we aim to `estimate`/`predict` what a `participant` is `perceiving` or `doing` based on `recordings` of `brain responses`/`activity`, e.g. `fMRI`. @@ -46,10 +46,12 @@ name: brain_encoding_decoding_example_fig `Encoding` and `decoding` present contrary, yet complementary operations. While the former targets the prediction of `brain activity`/`responses` based on stimulus percepts/features (e.g. vision & audition), cognitive states or behavior, the latter aims to predict those aspects based on `brain activity`/`responses`. ``` -More information and their application can be found in the respective sections of this resources. You can either use the `ToC` on the left or the links below to navigate accordingly. +For the tutorial on `encoding models`, please have a look at the respective session [here](). +As noted above, this part of the educational course focuses on `decoding models`. More information and their application can be found in the respective sections of this resource. You can either use the `ToC` on the left or the links below to navigate accordingly. -::::{card-carousel} 3 + +::::{card-carousel} 4 :::{card} :margin: 3 @@ -100,10 +102,7 @@ Brain decoding using a basic artificial neural network. +++ Explore this book {fas}`arrow-right` ::: -:::: - -::::{card-carousel} 2 :::{card} :margin: 3 :class-body: text-center @@ -120,23 +119,6 @@ Graph convolutional networks for brain decoding. +++ Explore this tutorial {fas}`arrow-right` ::: - -:::{card} -:margin: 3 -:class-body: text-center -:class-header: bg-light text-center -:link: https://main-educational.github.io/brain_encoding_decoding/encoding.html - -**Brain encoding with regression** -^^^ -```{image} https://main-educational.github.io/brain_encoding_decoding/_images/encoding_87_0.png -:height: 100 -``` - -Conducting brain encoding analyses using regression models. -+++ -Explore this tutorial {fas}`arrow-right` -::: :::: From 1051a0f531e10c08eb691de7a8339562bd96cba5 Mon Sep 17 00:00:00 2001 From: PeerHerholz Date: Tue, 15 Nov 2022 20:25:05 +0100 Subject: [PATCH 2/3] update config files --- content/_config.yml | 38 ++++++++++++++++++++++++++++++++++++-- content/conf.py | 2 +- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/content/_config.yml b/content/_config.yml index cced1c9..d8dd5a3 100644 --- a/content/_config.yml +++ b/content/_config.yml @@ -5,7 +5,7 @@ ####################################################################################### # Book settings -title : "Introduction to brain encoding and decoding in fMRI" # The title of the book. Will be placed in the left navbar. +title : "Introduction to brain decoding in fMRI" # The title of the book. Will be placed in the left navbar. author : # The author of the book copyright : "2022" # Copyright year to be placed in the footer logo : "../images/neurolibre-logo.png" # A path to the book logo @@ -30,7 +30,8 @@ html: google_analytics_id : "" # A GA id that can be used to track book views. home_page_in_navbar : true # Whether to include your home page in the left Navigation Bar baseurl : "https://main-educational.github.io/brain_encoding_decoding/" # The base URL where your book will be hosted. Used for creating image previews and social links. e.g.: https://mypage.com/mybook/ - + comments: + hypothesis: true ####################################################################################### # Launch button settings launch_buttons: @@ -55,6 +56,39 @@ sphinx: config: html_js_files: - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js + nb_custom_formats: + .Rmd: + - jupytext.reads + - fmt: Rmd + mathjax_config: + TeX: + Macros: + "N": "\\mathbb{N}" + "floor": ["\\lfloor#1\\rfloor", 1] + "bmat": ["\\left[\\begin{array}"] + "emat": ["\\end{array}\\right]"] + latex_elements: + preamble: | + \newcommand\N{\mathbb{N}} + \newcommand\floor[1]{\lfloor#1\rfloor} + \newcommand{\bmat}{\left[\begin{array}} + \newcommand{\emat}{\end{array}\right]} + intersphinx_mapping: + ebp: + - "https://executablebooks.org/en/latest/" + - null + myst-parser: + - "https://myst-parser.readthedocs.io/en/latest/" + - null + myst-nb: + - "https://myst-nb.readthedocs.io/en/latest/" + - null + sphinx: + - "https://www.sphinx-doc.org/en/master" + - null + nbformat: + - "https://nbformat.readthedocs.io/en/latest" + - null ####################################################################################### # parse settings diff --git a/content/conf.py b/content/conf.py index 1f5356a..dbea9d2 100644 --- a/content/conf.py +++ b/content/conf.py @@ -54,7 +54,7 @@ # html_title = "" html_theme = "sphinx_book_theme" -html_logo = "_static/cog_com_neuro_ml_dl.png" +html_logo = "images/neurolibre_logo.png" html_theme_options = { "github_url": "https://github.com/main-educational/brain_encoding_decoding", "repository_url": "https://github.com/main-educational/brain_encoding_decoding", From 9dc237c8a772b137e645a35bf3b3246cc0627bfc Mon Sep 17 00:00:00 2001 From: PeerHerholz Date: Tue, 15 Nov 2022 20:25:17 +0100 Subject: [PATCH 3/3] update tutorial dataset intro --- .../graphics/decoding_pipeline_example.png | Bin 0 -> 120459 bytes content/haxby_data.md | 359 ++++++++++++++---- content/references.bib | 15 + 3 files changed, 305 insertions(+), 69 deletions(-) create mode 100644 content/graphics/decoding_pipeline_example.png diff --git a/content/graphics/decoding_pipeline_example.png b/content/graphics/decoding_pipeline_example.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9fdea3f1a6e810d2831281051bc485694ef730 GIT binary patch literal 120459 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

ex`m1&-P1i^{+&k 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

BSH~Ww!29iv z?wQHix0G~9AVcWg_I9ttVtM@^=O3qGC^kH0&Y4~8=?B~~lN$F^QaZwY|NZy>pZ}5H zKOb4w4cg;;Aac-iw4@Ip@+-Z)*f&WKgmGc8V+gR0oZDo6aP-+jA$K0-hjDT>q+M87 z&OV3+{Ydid30cyio55X}>gp1Aj*!I-$9bP5?CKD|%yvbA-%1%tDNo~8c8TBkONClg z(c~`h^c#9&mUp{hnpb{Po+tls$7Wmh=i}TYiKib2N*3Mptty*Qb8IDSHo9YnR`DeU zv$8AVX6OV8q-1VLs-lx*@7WnsU@>hvp5L`RWDGV3jd;9pt>XMWNEi;lQim~p@#d%zk7Q6ke4)kPcNNF{_{@% z-@W|a`3UJ0cay2sxNJ0}BQSytfJS>)_Dm`~0OH&~S%XYcY*LItb}62-CAk9gJrk0? zRokw=BK<&CX}kB<%OfvgLQD4_{nj9n6innORB@0)>9o|;G~wMTKgJhn2*>)u|8JaIrY5Ol^!5@wg+Fq06aND@kWU?;Qv4 z4|0#@pwVhoDOUy%J@Lpx9EDiL`TMN|`BJ=CIu~`x3Us#6qps)Y&Qv7hxQ?WHLdK6kwWCvp!3GmsdDYB5 zI-m+G?!+@UhgV@$_Ihl<(>e+`; z6~Dr5kONnZFhp5s#pa#Dpe1u0iD3x}0ow}r4opvvMvpkMwp1;`b_@J2*jsh_5t&D& z8jk3gY%}gL3;Gpzt8YNrH(f1HjWNdSXRQC%tq>jE`}lXg0PrV%Eu9L!ZkBT8_Mw5uivK;=eof z4PG7^@J+jM)$GxRtiLKC&pOFZ2raSL>T8q$g6H?*R0nln5R4b3!xDrX(&IAqx3?*g zVWRFQEMpJk_LI3{BKA2u82^3-`vr+V-DCflsVLC+3VpB!vZpk+3IE_03zQ9(TXlXX z&3<90QMbn;fYl1s4@f4^9k8nA82ML)1`jM)F3;}b~cK5yGbUih)Yf%o!kXps=3@WIO~;f%g7S3Lq2@o6;YgU4)tr5uGkRmPwApd@dc;&|Up&n5A1 zd)9)itoz{axlBg~69OeO=s*o91$4zlluQ-r*T6qL%z^;k7I*vskacUje5oW=xdUDw z_89dC`M^^mBIR)*A4P(O?k>OAOt#bi>DnVrRokAqNd70~JrKFbfJRv@RLDZ*_*u^* zZ#A2WwLTkUPzj%h@u@jsW5#UN>cEM!bsS^164Z-2-Vk~xO47F~Z}pZbn8i4Az^VA> zU^#;%F{ccEChVCM3`t&foTV;fl7vAzWim;&k|X$J z%zw@v{%584^3iME)QYIDDnfE%fulbM^R*B@${-Sw5{<9kGpcr;zBkYuWS|*NLTI0+ zyXU-gYO6t!(eS4f5bSNQkrLuYkbCRk%i@(J)$A`uCj@)_oI^k$G*FS30m?03Utie+ zH0_0sYW})oGe^(ma?L!aEBXx&&Zx+U*Cn{W>3_p8hq7!8%l={WcBcSlK@Y}#muc?P z{YSFkE&Y;z8>2ZSf*PLdrR1FHsRMO=*}m8&dkDMs>l}yzi|Cw4{{L8ny=h!H=+6`aQ}sdUP^<| z;)Va+LB$W=;4^Gz)x~@|0AK4^5Om!b%nrz0pB#r&9NM>&UMw|2zTQsU7FoTE1d&&u z8^Lj&+xDMG7^S=0>PY#oV}$u7&FkLhAoz!1z0}R0roz;a^KRBC-Up)v|2hR9Hga zv-_M(KMH)|Y!xD_h%PI0JaDR_qu-NHX+0#b1FwM3t9K@iImrynRJ_la+*T;r*P7(< z7)O1^6jn(Aqi#}}&mfZL;EP;QObMPbaA3C%jwcx#2 zV_{yqsq$r5EiXkiENE;s4bQUw&#En~S0uU@_!jl!Q-gq%zjD9>xnjQM9oM}g1Z$7R~V_dGpO&7ChNJJNMA#~`Zj z*oyN3pcdB)RL22<+f?hyfca(Uez~#H|I8|940yWb@O1rRc(-;g=J}8yIQc2y#+%;O zvOigxrJej=aLEwx=p$D^xe51c*Nonc|3HOmlMN(&iBGjR|F)rWUN5g-7+W~g^|G3{ zA8)_9yA^25rgMe~9PSMDPNV@5p3TyI+!j46TfM@A6=L;LveOL#({|tSutEc>tN!kf0>tk zk5258y@l&b$>zJ=R~^M0K*%2Yrc=2?Gu006Q$tK)$mqqb`|~QhI#Im>?p~wa_MOA^ zjmqyf8wC~PHWqLD0cO%I4c*2puglM+o$x(KO}*gUL{^&Lig$(2+!qTKvejTukh{rI z4F4X@e^h_Z-zcytZhZhJMyc&s#?NMCoB2P$rt|?~MgA7BPtgNTDbu@cx~Ht3+X?sb zy}dnnGX||<<&5ayh5A~3*CB^)_2bQul%|VZ_v5j>lo~cEm+~L~p%=#iXz42v_>x)5 z9Dl1`1&#I{O%DMX7&(%FnU=CKMm5o%a&O2Rmx*GVbZKyM+nVkk`WDDPtfOFJkd4yS z6k~q*^l&lH8p&wQ&#LEj%xm1j_6QJ6c&RzA|N97blVI~@YwqHh< zR}J%7)ij2B$VII98fHRs zMKSni9Wth+m-XY0M2u8GEDrP|$Rqe#-Kir!f$3Wahs$5pR7LKp-iz1QS1)5gw%S_% zpT4d%9Ll!+i%AL@Z(%aYWF2KMJ6XmuCQ>BZOk|{G%#5{~QWAL>B1N*LqRGC-Af{qG z_9cTbmJqU460*P7JpccPM<3q#b|1&w$9){v`kRJ%5*nKhA_;K1lJ z-stP4AQ+!lgvKZxDDDwb(*isK7O05D0*bw-v|z+r3C&_Y5VROur*%^ZV!kuj-E5@( z{=SghrpMT40mp6bQ4AP&`RRE^K|kw}_~ErS$pzvxG)+(h{`ZYj#VaQW=;KWl!i7tY zqyeO(wh$Phx1^SnyMn`OFZ0Y#Y@pr?zrG6*V848@Pc-v0@VZxwgzu_2m#>(mgz+qN z{sL3E4|sq!3JuvwQiL&yOR`x;X9YXN9#<$?6NjMg|+O(samtZx3skP@(M3t3Y;#y{S_rS zZOHWFYd0e4rvsJg7Mha_n55%J6JxK2NUpoNe}F>umwNG60O(yB;L&-a)u4-YJd+vg z(MD9A90^#M*;rz?Peddu;w30wVnyq}Js=0--FL$&kb8k}N)$fS$c-udIm~ad+adYg zX6LJuMEy8COp8mt0g*qDQsq7zvv!Sf=pw@g4zvN<6LW_fdudU0ja;XJ?l}DYCY`fh zar0qe47E`S?|mqcB{RhA5b7k8Dxst|hbQ3dT@wBevqo~~HCHED*Ojd%wF&%})g3SMN^=}%&dU;voHAE2t46jE>B)?+TEWt@*LN7_ zZc>Rj<%e0#{~%f2@W&HG>zH|9s|H!C1Ye^Ful?(rIGy z0jb7q#&3J}kdSFFeCS7*gTyj779F89srhu_N9Bq}yB*L~2I&Iz3yY(Uc6sl$wXqE3 zQ^@5Sb5TzBBRc%m016X z#=UOol~v4B4&Y0KEGNbaJtb>e<4Lpls=86_x!wtF!m68KqJmt1ml@hY6WG~3rx zU$%M4gov>woZgH_PB@dNACBgoJu7Yrle5R1L2@~Is}N)FYaHi@jcn!B?v5S1t>cWo0_y$Wks}0QkyaC)QLP%l7~7tDfX{p zzzF#C2qQejoiO~ZX}CSj3v2o|`^8n3)YN0$zvWYa*$r)VM}zKkS9f>Ov=(`6=jOT@ z_kF=cda~Yil2kN%)e9&m&QEr@wc%5FD1qo-!Q8!u8GT zsGVb;r~@)d?J*h`f9(KW+}Wm-%XplN3!z@&(%xSd@aq+&ZS)aCvEcwz<<}oJPFQ+E z+*dAAo}+T6EQZ;^O0K(=BX@>-kJf;NjW>n%D6^#`Pp^)K9dWP=P$iwS z&Q3ag;c9Is<58FQ7R#ha?LnHpT0EJKtMs1V$yUwwxw?G;y6|uVPA1yDZ$HY|Ts^d^ zB1b;astBn5x_e{{kS(yLl131#^a!hTNo3b=l)i>35AyS#ycaJHb9hL!Vm<4`)0F5B zX7Nmc`}rlzXJd(tsP8viLv(}+l3gFS1h4qzhif{bq4P7YTm7mVJ#>c17nehY!o7Qc z5+OzplzD=cg1KCW7A9J6b+ch<{Pk+`xm8u(t@9?bDfDLgMLqJ6oME(N`||DxUMF({ zKHZ*&SBA6*q!Y}W&G1F!vW!5K#X1k^Zh^>8LH#2~BkclQ9i-H1#Op5CIy*L3zp>2~ zXA^zZ<{mzWDq$n`<^dF9FDGU%d+L3;f8dH(d)CQr7D3>hRJB0hH?bJ@{QP72jOEnZ zfk_)Zizh$lxv%fuwpsE)%D5pUkQ(Se8X>=AI0>x`^WYDC+XrytoItehbf!Oup`~$P z{FGnX8a4>G_t~A*sV5IdLmNPg$ED??b62F+T)w}g^l{xKp z4H?7o?~JwoB-$<%4IsXpW>!yGlQBa2KkjPL7v0);ehM`k+KgPq(Ci;+L-QL1+ZCR@ zI)Ad=?#{RLYEaKN!ZGvQ!NMk7zS96N!d?v3ljteSghu6xnN|PBGn42!nl{<@0MT}W zB_~Xhu|bM|N~7HgZyIG5{q!KZ_d7!oTpk}kQC z8B1oyotVijQJifBOY0(&y}q)bg|5?Srq4|TG>tUlazF$(RM>-Vr$kGrme>k7lZpe9pY1fnYHx#3s)D{hG zr?SOZn2Y-NPbVWriKS>dDQgh(%0I_0%+@!4)Ynj`-ASHkE#W&1W`JZ%${u&L3-{{2ux1wOOR7Q>XUo;g8%N?0Y-; zJAqf1S15d3hHy6%wQ}xqh)xX15Ay$~nNfbLhzr_S6h*E54JTWH(iI3(TY`5=OV1GL zgPLwqku^p5pam#Q-dtk=)n9ezWx)SaZIM#m^;--ngSFp3e~mU-oof@LBw)`FGQwt9 zLR9tQ_#+Caq6Y2ar09YbSND6Yd9f#Gzy>jZ$3Ggfx7t%8{w`2 z2ugeVouS7OgwmGoS%vubKYd|NxOx=>+TG$_7CgtW!>8YHq2*YFqc^e>M3RJaq>Q2_ z;f1<~I_qc1O%&+2zkUa>Xx1(k#un>zvGX@Rs6JK0hY1PK2%96~$kGDd{*s(y;5{1Q zJ!&|+Ijg4+mq5_-gKH>(@(*1L(Y$_#m}&5Ej}+kF4Im4S zb0XlX@NfPpK$u{#kn8QD#Q^r}6VkqUNF|rfC;b_uT9MM5+?GmI+fwz^XN#@{5PONT z59#TD)a?I$3}X({^0^xo^Up>dg@c@8%vToaRXlat*2scJ|2`Bk&y}ry*3G4acyzKz z!!@Ke^%gUbjfJG&{^PsbS7hNK$bPEcpLl%RVG3?A=jI>> n) problem? +:class: tip, dropdown + +"Classical" `machine learning`/`decoding` models and the underlying algorithms operate on the assumption that are more `predictors` or `features` than there are `sample`. In fact many more. Why is that? +Consider a high-dimensional `space` whose `dimensions` are defined by the number of `features` (e.g. `10 features` would result in a space with `10 dimensions`. The resulting `volume` of this `space` is the amount of `samples` that could be drawn from the `domain` and the number of `samples` entail the `samples` you need to address your `learning problem`, ie `decoding` outcome. That is why folks say: "get more data", `machine learning` is `data`-hungry: our `sample` needs to be as representative of the high-dimensional domain as possible. Thus, as the number of `features` increases, so should the number of `samples` so to capture enough of the `space` for the `decoding model` at hand. + +This referred to as the [curse of dimensionality](https://en.wikipedia.org/wiki/Curse_of_dimensionality) and poses as a major problem in many fields that aim to utilize `machine learning`/`decoding` on unsuitable data. Why is that? +Just imagine we have way more `features` than `samples`, ie `50 features` and `10` `samples`. Instead of having a large amount of `samples` within the `space`, allowing to achieve a sufficient coverage of the latter, we now have a very high-dimensional `space` (`50 dimensions`) and only very few `samples` therein, basically not allowing us to capture nearly enough of the `space` as we would need to. This can result in expected outcomes, misleading results or even lead to complete `model` failure. Furthermore, respective `datasets` often lead to `models` that are `overfitted` and don't `generalize` well. + +However, there are a few things that can be done to address this, including `feature selection`, `projection` into `lower-dimensional` `spaces` or `representations` or `regularization`. + +Question for everyone: what kind have `datasets` do we usually have in `neuroscience`, especially `neuroimaging`? +``` + ++++ + +## Downloading & exploring the `Haxby dataset` + +In the field of `functional magnetic resonance imaging` (`fMRI`), one of the first studies which have demonstrated the feasibility of `brain decoding` was the study by Haxby and colleagues (2001) {cite:p}`Haxby2001-vt`. `Subjects` were presented with various `images` drawn from different `categories` and subsequently a `decoding model` used to `predict` the presented `categories` based on the `brain activity`/`responses`. In the respective parts of this session, we will try to do the same! + +We are going to start with one `subject`, number `4`. To get the `data`, we can simply use [nilearn's dataset module](https://nilearn.github.io/stable/modules/datasets.html). At first, we need to import the respective `module`. + +```{code-cell} ipython3 import os from nilearn import datasets -# We are fetching the data for subject 4 +``` + +Next, we get the `data` and going to save it in a directory called `data`. Depending on your machine and internet connection, this might take a minute or so. + +```{code-cell} ipython3 data_dir = os.path.join('..', 'data') -sub_no = 4 -haxby_dataset = datasets.fetch_haxby(subjects=[sub_no], fetch_stimuli=True, data_dir=data_dir) -func_file = haxby_dataset.func[0] +haxby_dataset = datasets.fetch_haxby(subjects=[4], fetch_stimuli=True, data_dir=data_dir) ``` -## Visualizing the data -The data includes `nii` files, which contains images of brain volumes, either anatomical or functional. We can examine one functional volume using nilearn's plotting tools. Because fmri data are 4D we use [nilearn.image.mean_img](https://nilearn.github.io/modules/generated/nilearn.image.mean_img.html#nilearn.image.mean_img) to extract the average brain volume. -```{code-cell} python3 -from nilearn import plotting -from nilearn.image import mean_img -plotting.view_img(mean_img(func_file), threshold=None) + +What do we have now? Lets have a look! + +```{code-cell} ipython3 +haxby_dataset ``` -Note that it is very hard to see the anatomy of the brain with that type of image. But it is not designed to capture brain anatomy, but rather changes of brain activity over time, through the coupling of neuronal activity with the oxygenation of blood vessels. -```{admonition} Interactive viewer +As you can see, we get a `python dictionary` and there's quite bit in it. This includes: + +- the `anatomical data` under `anat` +- the `functional data` under `func` +- an annotation when `participants` perceived what `category` +- several `masks` under `mask*` +- a `dataset` `description` +- `stimuli categories` and respective `stimuli` + ++++ + +`````{admonition} Thinking about input data again... :class: tip -The viewer `plotting.view_img` is interactive. You can click on the brain volume to explore different slices. You can learn about the three anatomical planes: sagittal (`x`), coronal (`y`) and axial (`z`) in the [wikipedia article](https://en.wikipedia.org/wiki/Anatomical_plane). +What would be our `samples` and `features`? +````` + ++++ + +## The data in more depth + +After getting a first idea of what our `dataset` entails, we should spend a bit more time exploring it in more depth, starting with the neuroimaging files. + +### Neuroimaging files + +As seen above, the data includes several `nii` files, which contain `images` of `brain volumes`, either `anatomical` or `functional` `scans`, as well as (`binary`) `masks`. Lets have a look at the `anatomical` `image` first. +Using `nilearn`, we can either `load` and then `plot` it or directly `plot` it. Here we are going to do the first option as it will allow us to check the properties of the `image`. + +```{code-cell} ipython3 +from nilearn.image import load_img ``` -## Preparing the fMRI data -```{figure} haxby_data/masker.png ---- -width: 800px -name: masker-fig ---- -A `Masker` object is used to convert a 4D volume (space + time) into a data array, where each column is a voxel or brain region (features) and each row is a time point (samples). Figure from the [nilearn documentation](https://nilearn.github.io/stable/manipulating_images/masker_objects.html). +```{code-cell} ipython3 +anat_image = load_img(haxby_dataset.anat) ``` -Instead of keeping the fMRI data as a 4D array (3D spatial coordinates + time), we are going to extract the time series associated with a mask of the ventral temporal cortex. This mask has been generated as part of the Haxby et al. (2001) study, and highlights a part of the brain specialized in the processing of visual information, and which contains areas sensitive to different types of image categories. -```{code-cell} python3 -mask_filename = haxby_dataset.mask_vt[0] -# Let's visualize it, using the subject's anatomical image as a -# background -plotting.plot_roi(mask_filename, bg_img=haxby_dataset.anat[0], - cmap='Paired') +Now we can access basically all parts of the `image`, including the `header` + +```{code-cell} ipython3 +print(anat_image.header) ``` -We use one of the nilearn maskers to extract the fMRI time series associated just with this mask: -```{code-cell} python3 -from nilearn.input_data import NiftiMasker -masker = NiftiMasker(mask_img=mask_filename, standardize=True, detrend=True) -# Selecting data -X = masker.fit_transform(func_file) -print(X.shape) +and actual `data`. + +```{code-cell} ipython3 +anat_image.dataobj +``` + +```{code-cell} ipython3 +anat_image.dataobj.shape +``` + +As you can see, this is basically a `numpy array` that has the same `dimensions` as our `image` and the `data` reflect `values` for a given `voxel`. So far so good but how does it actually look? We can make use of one of `nilearn`'s many [plotting functions](https://nilearn.github.io/stable/modules/plotting.html). + +```{code-cell} ipython3 +from nilearn import plotting +``` + +```{code-cell} ipython3 +plotting.plot_anat(anat_image) +``` + +We can even create an `interactive plot`: + +```{code-cell} ipython3 +plotting.view_img(anat_image, symmetric_cmap=False, cmap='Greys_r', colorbar=False) +``` + +Comparably, we can do the same things with the `functional` `image`. That is `load`ing the `image`: + +```{code-cell} ipython3 +func_image = load_img(haxby_dataset.func) +``` + +and inspect its `header`: + +```{code-cell} ipython3 +print(func_image.header) +``` + +and `data`: + +```{code-cell} ipython3 +func_image.get_data() ``` -We can see that the dataset has 1452 time samples (number of rows) and 675 voxels in the mask (number of columns). -```{admonition} Nilearn maskers +```{code-cell} ipython3 +func_image.dataobj.shape +``` + +`````{admonition} We already noticed something... :class: tip -Nilearn maskers are very versatile and offer many approaches to extract a time series array from 4D data, as well as reshape back an array into a series of brain volumes. You can learn more about nilearn maskers in this [documentation](https://nilearn.github.io/stable/manipulating_images/masker_objects.html). +The `data` of the `anatomical` and `functional` `image` are quite different. Do you know why and which we would use for our planned `decoding` analyses? +````` + ++++ + +As we have a `4D` `image`, that is `brain volumes` acquired over time (the `4th dimension`), we need to adapt the `plotting` a bit. More precisely, we need to either `plot` a `3D image` at a given `time point` or e.g. compute the `mean image` over `time` and `plot` that. The latter might be more informative and additional shows you how easy this can be done using `nilearn`'s [image functions](https://nilearn.github.io/stable/modules/image.html). Thus, we, at first, `import` the respective `function` and compute the `mean image`: + +```{code-cell} ipython3 +from nilearn.image import mean_img +``` + +```{code-cell} ipython3 +func_image_mean = mean_img(func_image) +``` + +We can check if this worked via the approach we followed above, ie checking the `data`: + +```{code-cell} ipython3 +func_image_mean.dataobj.shape +``` + +That seems about right and we can give the plot a try: + +```{code-cell} ipython3 +plotting.plot_epi(func_image_mean, cmap='magma') ``` -## Preparing the cognitive annotations +and of course, this also works for `interactive` plots. + +```{code-cell} ipython3 +plotting.view_img(func_image_mean, cmap='magma', symmetric_cmap=False) +``` + +The last type of `neuroimaging` file we need to check are the (`binary`) `masks`, so let's do it for one example `mask`: the `ventral temporal cortex`. This mask has been generated as part of the Haxby et al. (2001) study {cite:p}`Haxby2001-vt`, and highlights a part of the brain specialized in the processing of visual information, and which contains areas sensitive to different types of image categories {cite:p}`grill-spector_functional_2014` . As with the types before, we can `load`, + +```{code-cell} ipython3 +vt_mask = load_img(haxby_dataset.mask_vt) +``` + +`inspect` + +```{code-cell} ipython3 +print(vt_mask.header) +``` + +```{code-cell} ipython3 +vt_mask.get_data() +``` + +```{code-cell} ipython3 +vt_mask.dataobj.shape +``` + +and `visualize` it (Here, we are going to plot it as an overlay on the `anatomical image`). + +```{code-cell} ipython3 +plotting.plot_roi(vt_mask, bg_img=anat_image, + cmap='Paired') +``` + +With that, we had a quick look at all `neuroimaging` `file` `types` present in the `dataset` and can continue to have a look at the other `file types` (and information therein) required to apply a `decoding model`. + ++++ + +### Labels and stimulus annotations + +As mentioned in prior sessions (e.g.[Supervised learning using scikit-learn](https://main-educational.github.io/material.html#supervised-learning-using-scikit-learn) and hinted at the [beginning of this session](#A-short-primer-on-datasets), when working on a `supervised learning problem`, we also need the `ground truth`/`true labels` for each `sample`. Why? Because we need to evaluate how a given `model` performs via comparing the `labels` it `predicted` to the `true labels`. What these `labels` refer to can be manifold and of course depends on the `task` at hand. + +For example, a `supervised learning problem` in the `dataset` at hand could entail `training` a `model` to `recognize` and `predict` what `category` `participants` perceived based on their `brain activation`. Thus, we would need to know what `category` was shown when during the acquisition of the `data` (or which `category` resulted in which `estimated` `brain activity`). -Now, we are going to extract cognitive annotations, that is values which tell us what type of images the subject was viewing at each time point. Let's look at the first 20 annotations: -```{code-cell} python3 +Within our `tutorial dataset`, this information is included in the `session_target` file. Using [pandas](https://pandas.pydata.org/pandas-docs/stable/index.html) we can easily `load` and `inspect` this file: + +```{code-cell} ipython3 import pandas as pd -behavioral = pd.read_csv(haxby_dataset.session_target[0], delimiter=' ') -display(behavioral.iloc[0:20]) +stimulus_annotations = pd.read_csv(haxby_dataset.session_target[0], delimiter=' ') ``` -So let's extract the labels for each time points. We can check that the number of annotations match exactly the number of samples we had in `X`. We can also check all the annotation categories available. -```{code-cell} python3 -y = behavioral['labels'] -categories = y.unique() -print(categories) -print(y.shape) -print(X.shape) + +```{code-cell} ipython3 +stimulus_annotations.head(n=40) ``` -These annotations correspond to the category of the image subjects were watching at each time point. Samples of images for each category are shown below: -```{code-cell} python3 -:tags: ["hide-input"] +While this is already informative, let's plot it to get a better intuition. + +```{code-cell} ipython3 +import seaborn as sns +import matplotlib.pyplot as plt + +ax = sns.scatterplot(x=stimulus_annotations.index, y=stimulus_annotations['labels'], + hue=stimulus_annotations['labels'], legend=False, palette='colorblind') +plt.title('Categories shown across time') +ax.set_xlabel('Time point/fMRI scan') +sns.despine(offset=5) +``` + +As we can see, the information provided indicates what `category` `participants` perceived at which `sample` or `fMRI image acquisition` aka point in time during the experiment. With that, we have the needed `labels` for our `samples` (ie our `Y`) and can thus apply a `supervised learning problem`. + ++++ + +## Summary + +This already concludes this section of the session within which we explored the went through basic `datasets` concepts again and afterwards explored the `tutorial dataset` which we are going to use during the remaining sections of this session, ie [Decoding via SVM](), [Decoding using MLPs]() and [Decoding using GCNs](). + +Within this section you should have learned: + +- important aspects of `datasets` + - structured input in the form `samples X features` + - `small n high p` problem + + +- the `tutorial dataset` + - background + - file types and information therein + - `neuroimaging` files + - `stimulus annotations` + +If you have any questions, please don't hesitate to ask us. Thank you very much for your attention and see you in the next section. + ++++ + +## References + +```{bibliography} +:filter: docname in docnames +``` +``` + ++++ + +## Bonus: checking the stimuli + +As you saw above, our `tutorial dataset` actually also contains the `stimuli` utilized in the experiment. This pretty unique (because of e.g. copyright problems) but really cool. As we could use the `stimuli` for certain analyses, e.g. [encoding]() and/or comparing their processing in `biological` and `artificial neural networks`. However, this is unfortunately outside the scope of this session. Thus, we are just going to plot a few of them so you get an impression. + ++++ + +We can examine one functional volume using nilearn's plotting tools. Because fmri data are 4D we use [nilearn.image.mean_img](https://nilearn.github.io/modules/generated/nilearn.image.mean_img.html#nilearn.image.mean_img) to extract the average brain volume. + +```{code-cell} ipython3 import matplotlib.pyplot as plt from nilearn import datasets @@ -120,10 +348,10 @@ for stim_type in stimulus_information: show() ``` -Note that for each image category, a number of scrambled images were also presented. -```{code-cell} python3 -:tags: ["hide-input"] +Please note that for each `image` `category`, a number of `scrambled images` were also presented. + +```{code-cell} ipython3 for stim_num in range(len(stimulus_information['controls'])): stim_type = stimulus_information['controls'][stim_num][0] file_names = stimulus_information['controls'][stim_num][1] @@ -139,10 +367,3 @@ for stim_num in range(len(stimulus_information['controls'])): show() ``` - -## References - -```{bibliography} -:filter: docname in docnames -``` -``` diff --git a/content/references.bib b/content/references.bib index e631896..f3a5b14 100644 --- a/content/references.bib +++ b/content/references.bib @@ -1,3 +1,18 @@ +@ARTICLE{grill-spector_functional_2014, + title = "The functional architecture of the ventral temporal cortex and its role in categorization", + volume = 15, + issn = "1471-0048", + url = "https://doi.org/10.1038/nrn3747", + doi = "10.1038/nrn3747", + abstract = "Understanding information processing in the visual system requires an understanding of the interplay among the system's computational goals and representations, and their physical implementation in the brain.Recent results indicate a consistent topology of functional representations relative to each other and anatomical landmarks in high-level visual cortex.The consistent topology of functional representations reveals that axes of representational spaces are physically implemented as axes in cortical space.Anatomical constraints might determine the topology of functional representations in the brain, which would explain the correspondence between representational and anatomical axes in the ventral temporal cortex (VTC).Superimposition and topology generate predictable spatial convergences and divergences among functional representations, which in turn enable information integration and parallel processing, respectively.Superimposition and topological organization in the VTC generates a series of nested functional representations, the arrangements of which generate a spatial hierarchy of category information.The spatial scale of functional representations may be tied to the level of category abstractness in which more abstract information is represented in larger spatial scales across the VTC.", + number = 8, + journal = "Nature Reviews Neuroscience", + author = "Grill-Spector, Kalanit and Weiner, Kevin S.", + month = aug, + year = 2014, + pages = "536--548", +} + @ARTICLE{Haxby2001-vt, title = "Distributed and overlapping representations of faces and objects