{ "cells": [ { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "\n", "\"Open " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Preprocessing with AFNI\n", "\n", "Author: Monika Doerig\n", "\n", "Citation:\n", "\n", "__Andy's Brain Book:__\n", "- This AFNI example is based on the [AFNI Tutorial: Commands and Preprocessing](https://andysbrainbook.readthedocs.io/en/latest/AFNI/AFNI_Short_Course/AFNI_04_Preprocessing.html) from Andy’s Brain Book (Jahn, 2022. [doi:10.5281/zenodo.5879293](https://zenodo.org/records/5879294))\n", "\n", "__Data from OpenNeuro:__ Flanker Dataset\n", "\n", "- Kelly AMC and Uddin LQ and Biswal BB and Castellanos FX and Milham MP (2018). Flanker task (event-related). [OpenNeuro Dataset ds000102](https://openneuro.org/datasets/ds000102/versions/00001/). [Dataset] doi: null\n", "- Kelly AM, Uddin LQ, Biswal BB, Castellanos FX, Milham MP. Competition between functional brain networks mediates behavioral variability. Neuroimage. 2008 Jan 1;39(1):527-37. doi: [10.1016/j.neuroimage.2007.08.008](https://doi.org/10.1016/j.neuroimage.2007.08.008). Epub 2007 Aug 23. PMID: 17919929.\n", "- Mennes, M., Kelly, C., Zuo, X.N., Di Martino, A., Biswal, B.B., Castellanos, F.X., Milham, M.P. (2010). Inter-individual differences in resting-state functional connectivity predict task-induced BOLD activity. Neuroimage, 50(4):1690-701. doi: [10.1016/j.neuroimage.2010.01.002](https://doi.org/10.1016/j.neuroimage.2010.01.002). Epub 2010 Jan 15. Erratum in: Neuroimage. 2011 Mar 1;55(1):434\n", "- Mennes, M., Zuo, X.N., Kelly, C., Di Martino, A., Zang, Y.F., Biswal, B., Castellanos, F.X., Milham, M.P. (2011). Linking inter-individual differences in neural activation and behavior to intrinsic brain dynamics. Neuroimage, 54(4):2950-9. doi: [10.1016/j.neuroimage.2010.10.046](https://doi.org/10.1016/j.neuroimage.2010.10.046)" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Setup Neurodesk" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [], "vscode": { "languageId": "plaintext" } }, "outputs": [], "source": [ "%%capture\n", "import os\n", "import sys\n", "IN_COLAB = 'google.colab' in sys.modules\n", "\n", "if IN_COLAB:\n", " os.environ[\"LD_PRELOAD\"] = \"\";\n", " os.environ[\"APPTAINER_BINDPATH\"] = \"/content,/tmp,/cvmfs\"\n", " os.environ[\"MPLCONFIGDIR\"] = \"/content/matplotlib-mpldir\"\n", " os.environ[\"LMOD_CMD\"] = \"/usr/share/lmod/lmod/libexec/lmod\"\n", "\n", " !curl -J -O https://raw.githubusercontent.com/NeuroDesk/neurocommand/main/googlecolab_setup.sh\n", " !chmod +x googlecolab_setup.sh\n", " !./googlecolab_setup.sh\n", "\n", " os.environ[\"MODULEPATH\"] = ':'.join(map(str, list(map(lambda x: os.path.join(os.path.abspath('/cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/'), x),os.listdir('/cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/')))))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "vendor_id\t: GenuineIntel\n", "model name\t: Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz\n" ] } ], "source": [ "# Output CPU information:\n", "!cat /proc/cpuinfo | grep 'vendor' | uniq\n", "!cat /proc/cpuinfo | grep 'model name' | uniq" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### Load packages" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "['afni/21.2.00']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import lmod\n", "await lmod.load('afni/21.2.00')\n", "await lmod.list()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Install tcsh" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-ouput" ] }, "outputs": [], "source": [ "%%capture\n", "!sudo apt update; sudo apt install tcsh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check the installation:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello from tcsh\n" ] } ], "source": [ "%%script tcsh\n", "set var = \"hello from tcsh\"\n", "echo $var" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### Import Python Modules" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "import os\n", "import nibabel as nib\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from ipyniivue import NiiVue\n", "from IPython.display import display\n", "from ipywidgets import VBox, Dropdown\n", "import ipywidgets as widgets" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Data preparation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ], "vscode": { "languageId": "plaintext" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cloning: 0%| | 0.00/2.00 [00:00 \u001b[00m../../.git/annex/objects/Q4/jv/MD5E-s14180--3addf0456b803b7c5ec5147481ecdd62.csv/MD5E-s14180--3addf0456b803b7c5ec5147481ecdd62.csv\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_group.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/6m/q9/MD5E-s98927--d11151f65ae061833e7fd4373adfec3f.pdf/MD5E-s98927--d11151f65ae061833e7fd4373adfec3f.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-01.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/K3/7x/MD5E-s2747349--5d40f2a54fb4194ac4a79f0295ff51c0.pdf/MD5E-s2747349--5d40f2a54fb4194ac4a79f0295ff51c0.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-02.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Kx/Kv/MD5E-s2803965--56f6b768362bd9b7f0ef501b8cb6dde6.pdf/MD5E-s2803965--56f6b768362bd9b7f0ef501b8cb6dde6.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-03.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/kx/g5/MD5E-s2809843--e90d7a4859ed4be986b55e23f93ca89d.pdf/MD5E-s2809843--e90d7a4859ed4be986b55e23f93ca89d.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-04.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/JK/Zm/MD5E-s2846770--4869146771178dbb01ac79b95b35a8a1.pdf/MD5E-s2846770--4869146771178dbb01ac79b95b35a8a1.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-05.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/zm/FG/MD5E-s2824086--fda634d34556c83005a5eb2ca8c498dd.pdf/MD5E-s2824086--fda634d34556c83005a5eb2ca8c498dd.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-06.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/92/q0/MD5E-s2798058--fdddf0aff1eca8f61ed7c8b04ada9735.pdf/MD5E-s2798058--fdddf0aff1eca8f61ed7c8b04ada9735.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-07.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/39/3K/MD5E-s2795270--29ce2e2352596df940e5f3fae45b5a38.pdf/MD5E-s2795270--29ce2e2352596df940e5f3fae45b5a38.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-08.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Fx/F4/MD5E-s2727492--b55dad8ffe22fc035110ecf4119d2960.pdf/MD5E-s2727492--b55dad8ffe22fc035110ecf4119d2960.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-09.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/4M/pz/MD5E-s2887144--28ea830af2a4d741147d18ea9c7fda84.pdf/MD5E-s2887144--28ea830af2a4d741147d18ea9c7fda84.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-10.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/0z/Vw/MD5E-s2874045--6542a57a9fc58f97f2a03c2384663c62.pdf/MD5E-s2874045--6542a57a9fc58f97f2a03c2384663c62.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-11.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/wm/76/MD5E-s2781221--1071b83e3c1b4532879521c37c3329da.pdf/MD5E-s2781221--1071b83e3c1b4532879521c37c3329da.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-12.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/GF/19/MD5E-s2817233--bfd24ca3274fa5efd654e2afd927f9ef.pdf/MD5E-s2817233--bfd24ca3274fa5efd654e2afd927f9ef.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-13.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/9Q/X2/MD5E-s2796088--ed299ab7e1662cb03aa01299eed2602b.pdf/MD5E-s2796088--ed299ab7e1662cb03aa01299eed2602b.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-14.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Wg/55/MD5E-s2558074--cadc9bd81856dcd02677de84e7e6ca90.pdf/MD5E-s2558074--cadc9bd81856dcd02677de84e7e6ca90.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-15.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/43/Q3/MD5E-s2847293--0c678a4b309d055ad9ba4ba25b77351b.pdf/MD5E-s2847293--0c678a4b309d055ad9ba4ba25b77351b.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-16.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/xq/qj/MD5E-s2890454--87c62253c1711f30d53c41b3ac38dc66.pdf/MD5E-s2890454--87c62253c1711f30d53c41b3ac38dc66.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-17.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/zK/M1/MD5E-s2825765--0a91015e22836a3076641b963e1ccfc6.pdf/MD5E-s2825765--0a91015e22836a3076641b963e1ccfc6.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-18.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/w2/Vk/MD5E-s2821624--1d9a3f0b21ce1f9a3b490d44d36f1f11.pdf/MD5E-s2821624--1d9a3f0b21ce1f9a3b490d44d36f1f11.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-19.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/J2/Jq/MD5E-s2453814--533411f3353cb3fa0264485e81f3fcf6.pdf/MD5E-s2453814--533411f3353cb3fa0264485e81f3fcf6.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-20.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/MF/9X/MD5E-s2881144--176c560778c55db87e8468b3246d373c.pdf/MD5E-s2881144--176c560778c55db87e8468b3246d373c.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-21.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/XQ/p1/MD5E-s2330589--b7546dfe5fb43a974cd23111b860c493.pdf/MD5E-s2330589--b7546dfe5fb43a974cd23111b860c493.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-22.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Fx/k8/MD5E-s2505165--55f0661ad209b742c517cc5b5469436a.pdf/MD5E-s2505165--55f0661ad209b742c517cc5b5469436a.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-23.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/qj/8K/MD5E-s2784018--7e8697a7d4601547a899a27af132166d.pdf/MD5E-s2784018--7e8697a7d4601547a899a27af132166d.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-24.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/G8/Kw/MD5E-s2828817--e86be931adef2a7b0297d557d827d629.pdf/MD5E-s2828817--e86be931adef2a7b0297d557d827d629.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-25.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/XG/kg/MD5E-s2447908--3d392b9d27929dc4146d2b47be16e8dc.pdf/MD5E-s2447908--3d392b9d27929dc4146d2b47be16e8dc.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01manatomical_sub-26.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/8P/42/MD5E-s2850007--6d2f87a305b30d5704aaf4be9b8ff1e6.pdf/MD5E-s2850007--6d2f87a305b30d5704aaf4be9b8ff1e6.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfMRIQC.csv\u001b[0m -> \u001b[00m../../.git/annex/objects/2Z/Ff/MD5E-s21038--cbe73db3db1beb0a1977583cff2a724b.csv/MD5E-s21038--cbe73db3db1beb0a1977583cff2a724b.csv\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_group.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Kq/xg/MD5E-s90712--7058c3db328fecb86303bc27a9ef0110.pdf/MD5E-s90712--7058c3db328fecb86303bc27a9ef0110.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-01.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/k2/vQ/MD5E-s1157925--e055f942b72b9aabad7a5e3d7b25b201.pdf/MD5E-s1157925--e055f942b72b9aabad7a5e3d7b25b201.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-02.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/X3/X6/MD5E-s1235840--cb32b7f8f1274af250b4f0fc15dacecb.pdf/MD5E-s1235840--cb32b7f8f1274af250b4f0fc15dacecb.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-03.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Vp/0x/MD5E-s1228507--73ab1cc4cb27712892fcb10a0853ba7c.pdf/MD5E-s1228507--73ab1cc4cb27712892fcb10a0853ba7c.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-04.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/xk/jz/MD5E-s1252659--8ae6d1b02767c1ddb72dd7e6afefe696.pdf/MD5E-s1252659--8ae6d1b02767c1ddb72dd7e6afefe696.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-05.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Zm/VJ/MD5E-s1258815--dd043691d548a501dd63d1aaf420e43c.pdf/MD5E-s1258815--dd043691d548a501dd63d1aaf420e43c.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-06.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/M5/gq/MD5E-s1247345--9c06bc69792b812ab8deffb01c6656c2.pdf/MD5E-s1247345--9c06bc69792b812ab8deffb01c6656c2.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-07.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/25/35/MD5E-s1229731--99cc64e99df0025ccb0341cd0dcf688b.pdf/MD5E-s1229731--99cc64e99df0025ccb0341cd0dcf688b.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-08.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/MX/vQ/MD5E-s1222308--e13c56f17109d3f142c9c4db60fea674.pdf/MD5E-s1222308--e13c56f17109d3f142c9c4db60fea674.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-09.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/90/0F/MD5E-s1265097--41a69211a0569413917ce3825eac95d6.pdf/MD5E-s1265097--41a69211a0569413917ce3825eac95d6.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-10.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/FZ/gq/MD5E-s1299358--12ccfc4a5f52b077b99481fe25aa8ef1.pdf/MD5E-s1299358--12ccfc4a5f52b077b99481fe25aa8ef1.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-11.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/MJ/mQ/MD5E-s1166014--3465ef6b18514d3cd361c0bffe2b73fc.pdf/MD5E-s1166014--3465ef6b18514d3cd361c0bffe2b73fc.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-12.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/xp/1f/MD5E-s1177325--6fe4937d5aa567fb5b3c3977362fc9af.pdf/MD5E-s1177325--6fe4937d5aa567fb5b3c3977362fc9af.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-13.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/4g/vW/MD5E-s1178873--96f341322d21e2bdeb709edc5b047df0.pdf/MD5E-s1178873--96f341322d21e2bdeb709edc5b047df0.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-14.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/5p/6X/MD5E-s1206987--729f64cf514c9103556c53ccb5430bc4.pdf/MD5E-s1206987--729f64cf514c9103556c53ccb5430bc4.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-15.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/m1/k9/MD5E-s1223617--9239a1c2d968ed18093b69d28fd9e654.pdf/MD5E-s1223617--9239a1c2d968ed18093b69d28fd9e654.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-16.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/jq/wP/MD5E-s1294856--5eb7ec97924a22c7e68fd95373694e7e.pdf/MD5E-s1294856--5eb7ec97924a22c7e68fd95373694e7e.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-17.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/0m/3Q/MD5E-s1238563--129db424a50b7889278024828c08c736.pdf/MD5E-s1238563--129db424a50b7889278024828c08c736.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-18.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/VF/Fm/MD5E-s1197868--3b23e8d53b11d98d49b1adf62ff559df.pdf/MD5E-s1197868--3b23e8d53b11d98d49b1adf62ff559df.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-19.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Jj/m8/MD5E-s1164028--aea7dfa78e9be2e83a9b313f2ebdc4bd.pdf/MD5E-s1164028--aea7dfa78e9be2e83a9b313f2ebdc4bd.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-20.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/x1/ZQ/MD5E-s1292308--8869b1b640797a2be2aa03be69b89840.pdf/MD5E-s1292308--8869b1b640797a2be2aa03be69b89840.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-21.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/MG/zW/MD5E-s1216271--3d5c5ca0f8f4ba06b3289e197a40defd.pdf/MD5E-s1216271--3d5c5ca0f8f4ba06b3289e197a40defd.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-22.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/5m/pj/MD5E-s1142289--4f9e57d8bfe3d39881c43b959189d69f.pdf/MD5E-s1142289--4f9e57d8bfe3d39881c43b959189d69f.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-23.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/m7/Z2/MD5E-s1233046--7758914aecbf2b5d01cd0825952609be.pdf/MD5E-s1233046--7758914aecbf2b5d01cd0825952609be.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-24.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/mz/5m/MD5E-s1265224--c188bd88fc1c99308389f528ea4df71e.pdf/MD5E-s1265224--c188bd88fc1c99308389f528ea4df71e.pdf\u001b[0m\n", "│   ├── \u001b[40;31;01mfunctional_sub-25.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/Mk/G6/MD5E-s1260984--1b16abcbbf55ccc7763f1d704d76628f.pdf/MD5E-s1260984--1b16abcbbf55ccc7763f1d704d76628f.pdf\u001b[0m\n", "│   └── \u001b[40;31;01mfunctional_sub-26.pdf\u001b[0m -> \u001b[00m../../.git/annex/objects/1m/zq/MD5E-s1285726--6838f727d5c4b5593a7b5e0e6b20483a.pdf/MD5E-s1285726--6838f727d5c4b5593a7b5e0e6b20483a.pdf\u001b[0m\n", "├── \u001b[00mparticipants.tsv\u001b[0m\n", "├── \u001b[01;34msub-01\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-01_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Pf/6k/MD5E-s10581116--757e697a01eeea5c97a7d6fbc7153373.nii.gz/MD5E-s10581116--757e697a01eeea5c97a7d6fbc7153373.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-01_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/5m/w9/MD5E-s28061534--8e8c44ff53f9b5d46f2caae5916fa4ef.nii.gz/MD5E-s28061534--8e8c44ff53f9b5d46f2caae5916fa4ef.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-01_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-01_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/2F/58/MD5E-s28143286--f0bcf782c3688e2cf7149b4665949484.nii.gz/MD5E-s28143286--f0bcf782c3688e2cf7149b4665949484.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-01_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-02\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-02_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/3m/FF/MD5E-s10737123--cbd4181ee26559e8ec0a441fa2f834a7.nii.gz/MD5E-s10737123--cbd4181ee26559e8ec0a441fa2f834a7.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-02_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/8v/2j/MD5E-s29188378--80050f0deb13562c24f2fc23f8d095bd.nii.gz/MD5E-s29188378--80050f0deb13562c24f2fc23f8d095bd.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-02_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-02_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/fM/Kw/MD5E-s29193540--cc013f2d7d148b448edca8aada349d02.nii.gz/MD5E-s29193540--cc013f2d7d148b448edca8aada349d02.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-02_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-03\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-03_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/7W/9z/MD5E-s10707026--8f1858934cc7c7457e3a4a71cc2131fc.nii.gz/MD5E-s10707026--8f1858934cc7c7457e3a4a71cc2131fc.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-03_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/q6/kF/MD5E-s28755729--b19466702eee6b9385bd6e19e362f94c.nii.gz/MD5E-s28755729--b19466702eee6b9385bd6e19e362f94c.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-03_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-03_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/zV/K1/MD5E-s28782544--8d9700a435d08c90f0c1d534efdc8b69.nii.gz/MD5E-s28782544--8d9700a435d08c90f0c1d534efdc8b69.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-03_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-04\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-04_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/FW/14/MD5E-s10738444--2a9a2ba4ea7d2324c84bf5a2882f196c.nii.gz/MD5E-s10738444--2a9a2ba4ea7d2324c84bf5a2882f196c.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-04_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/9Z/0Q/MD5E-s29062799--27171406951ea275cb5857ea0dc32345.nii.gz/MD5E-s29062799--27171406951ea275cb5857ea0dc32345.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-04_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-04_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/FW/FZ/MD5E-s29071279--f89b61fe3ebab26df1374f2564bd95c2.nii.gz/MD5E-s29071279--f89b61fe3ebab26df1374f2564bd95c2.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-04_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-05\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-05_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/k2/Kj/MD5E-s10753867--c4b5788da5f4c627f0f5862da5f46c35.nii.gz/MD5E-s10753867--c4b5788da5f4c627f0f5862da5f46c35.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-05_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/VZ/z5/MD5E-s29667270--0ce9ac78b6aa9a77fc94c655a6ff5a06.nii.gz/MD5E-s29667270--0ce9ac78b6aa9a77fc94c655a6ff5a06.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-05_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-05_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/z7/MP/MD5E-s29660544--752750dabb21e2cf28e87d1d550a71b9.nii.gz/MD5E-s29660544--752750dabb21e2cf28e87d1d550a71b9.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-05_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-06\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-06_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/5w/G0/MD5E-s10620585--1132eab3830fe59b8a10b6582bb49004.nii.gz/MD5E-s10620585--1132eab3830fe59b8a10b6582bb49004.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-06_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/3x/qj/MD5E-s29386982--e671c0c647ce7d0d4596e35b702ee970.nii.gz/MD5E-s29386982--e671c0c647ce7d0d4596e35b702ee970.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-06_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-06_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/9j/6P/MD5E-s29379265--e513a2746d2b5c603f96044cf48c557c.nii.gz/MD5E-s29379265--e513a2746d2b5c603f96044cf48c557c.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-06_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-07\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-07_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/08/fF/MD5E-s10718092--38481fbc489dfb1ec4b174b57591a074.nii.gz/MD5E-s10718092--38481fbc489dfb1ec4b174b57591a074.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-07_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/z1/7W/MD5E-s28946009--5baf7a314874b280543fc0f91f2731af.nii.gz/MD5E-s28946009--5baf7a314874b280543fc0f91f2731af.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-07_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-07_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Jf/W7/MD5E-s28960603--682e13963bfc49cc6ae05e9ba5c62619.nii.gz/MD5E-s28960603--682e13963bfc49cc6ae05e9ba5c62619.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-07_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-08\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[01;36msub-08_T1w.nii.gz\u001b[0m -> \u001b[01;31m../../.git/annex/objects/mw/MM/MD5E-s10561256--b94dddd8dc1c146aa8cd97f8d9994146.nii.gz/MD5E-s10561256--b94dddd8dc1c146aa8cd97f8d9994146.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[01;36msub-08_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[01;31m../../.git/annex/objects/zX/v9/MD5E-s28641609--47314e6d1a14b8545686110b5b67f8b8.nii.gz/MD5E-s28641609--47314e6d1a14b8545686110b5b67f8b8.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-08_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[01;36msub-08_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[01;31m../../.git/annex/objects/WZ/F0/MD5E-s28636310--4535bf26281e1c5556ad0d3468e7fe4e.nii.gz/MD5E-s28636310--4535bf26281e1c5556ad0d3468e7fe4e.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-08_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-09\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-09_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/QJ/ZZ/MD5E-s10775967--e6a18e64bc0a6b17254a9564cf9b8f82.nii.gz/MD5E-s10775967--e6a18e64bc0a6b17254a9564cf9b8f82.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-09_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/k9/1X/MD5E-s29200533--59e86a903e0ab3d1d320c794ba1f0777.nii.gz/MD5E-s29200533--59e86a903e0ab3d1d320c794ba1f0777.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-09_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-09_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/W3/94/MD5E-s29223017--7f3fb9e260d3bd28e29b0b586ce4c344.nii.gz/MD5E-s29223017--7f3fb9e260d3bd28e29b0b586ce4c344.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-09_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-10\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-10_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/5F/3f/MD5E-s10750712--bde2309077bffe22cb65e42ebdce5bfa.nii.gz/MD5E-s10750712--bde2309077bffe22cb65e42ebdce5bfa.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-10_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/3p/qp/MD5E-s29732696--339715d5cec387f4d44dfe94f304a429.nii.gz/MD5E-s29732696--339715d5cec387f4d44dfe94f304a429.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-10_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-10_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/11/Zx/MD5E-s29724034--16f2bf452524a315182f188becc1866d.nii.gz/MD5E-s29724034--16f2bf452524a315182f188becc1866d.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-10_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-11\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-11_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/kj/xX/MD5E-s10534963--9e5bff7ec0b5df2850e1d05b1af281ba.nii.gz/MD5E-s10534963--9e5bff7ec0b5df2850e1d05b1af281ba.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-11_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/35/fk/MD5E-s28226875--d5012074c2c7a0a394861b010bcf9a8f.nii.gz/MD5E-s28226875--d5012074c2c7a0a394861b010bcf9a8f.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-11_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-11_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/j7/ff/MD5E-s28198976--c0a64e3b549568c44bb40b1588027c9a.nii.gz/MD5E-s28198976--c0a64e3b549568c44bb40b1588027c9a.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-11_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-12\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-12_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/kx/2F/MD5E-s10550168--a7f651adc817b6678148b575654532a4.nii.gz/MD5E-s10550168--a7f651adc817b6678148b575654532a4.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-12_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/M0/fX/MD5E-s28403807--f1c3eb2e519020f4315a696ea845fc01.nii.gz/MD5E-s28403807--f1c3eb2e519020f4315a696ea845fc01.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-12_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-12_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/vW/V0/MD5E-s28424992--8740628349be3c056a0411bf4a852b25.nii.gz/MD5E-s28424992--8740628349be3c056a0411bf4a852b25.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-12_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-13\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-13_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/wM/Xw/MD5E-s10609761--440413c3251d182086105649164222c6.nii.gz/MD5E-s10609761--440413c3251d182086105649164222c6.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-13_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/mf/M4/MD5E-s28180916--aa35f4ad0cf630d6396a8a2dd1f3dda6.nii.gz/MD5E-s28180916--aa35f4ad0cf630d6396a8a2dd1f3dda6.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-13_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-13_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/XP/76/MD5E-s28202786--8caf1ac548c87b2b35f85e8ae2bf72c1.nii.gz/MD5E-s28202786--8caf1ac548c87b2b35f85e8ae2bf72c1.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-13_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-14\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-14_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Zw/0z/MD5E-s9223596--33abfb5da565f3487e3a7aebc15f940c.nii.gz/MD5E-s9223596--33abfb5da565f3487e3a7aebc15f940c.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-14_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Jp/29/MD5E-s29001492--250f1e4daa9be1d95e06af0d56629cc9.nii.gz/MD5E-s29001492--250f1e4daa9be1d95e06af0d56629cc9.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-14_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-14_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/PK/V2/MD5E-s29068193--5621a3b0af8132c509420b4ad9aaf8fb.nii.gz/MD5E-s29068193--5621a3b0af8132c509420b4ad9aaf8fb.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-14_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-15\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-15_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Mz/qq/MD5E-s10752891--ddd2622f115ec0d29a0c7ab2366f6f95.nii.gz/MD5E-s10752891--ddd2622f115ec0d29a0c7ab2366f6f95.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-15_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/08/JJ/MD5E-s28285239--feda22c4526af1910fcee58d4c42f07e.nii.gz/MD5E-s28285239--feda22c4526af1910fcee58d4c42f07e.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-15_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-15_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/9f/0W/MD5E-s28289760--433000a1def662e72d8433dba151c61b.nii.gz/MD5E-s28289760--433000a1def662e72d8433dba151c61b.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-15_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-16\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-16_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/4g/8k/MD5E-s10927450--a196f7075c793328dd6ff3cebf36ea6b.nii.gz/MD5E-s10927450--a196f7075c793328dd6ff3cebf36ea6b.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-16_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/9z/g2/MD5E-s29757991--1a1648b2fa6cc74e31c94f109d8137ba.nii.gz/MD5E-s29757991--1a1648b2fa6cc74e31c94f109d8137ba.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-16_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-16_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/k8/4F/MD5E-s29773832--fe08739ea816254395b985ee704aaa99.nii.gz/MD5E-s29773832--fe08739ea816254395b985ee704aaa99.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-16_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-17\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-17_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/jQ/MQ/MD5E-s10826014--8e2a6b062df4d1c4327802f2b905ef36.nii.gz/MD5E-s10826014--8e2a6b062df4d1c4327802f2b905ef36.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-17_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Wz/2P/MD5E-s28991563--9845f461a017a39d1f6e18baaa0c9c41.nii.gz/MD5E-s28991563--9845f461a017a39d1f6e18baaa0c9c41.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-17_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-17_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/jF/3m/MD5E-s29057821--84ccc041163bcc5b3a9443951e2a5a78.nii.gz/MD5E-s29057821--84ccc041163bcc5b3a9443951e2a5a78.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-17_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-18\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-18_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/3v/pK/MD5E-s10571510--6fc4b5792bc50ea4d14eb5247676fafe.nii.gz/MD5E-s10571510--6fc4b5792bc50ea4d14eb5247676fafe.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-18_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/94/P2/MD5E-s28185776--5b3879ec6fc4bbe1e48efc64984f88cf.nii.gz/MD5E-s28185776--5b3879ec6fc4bbe1e48efc64984f88cf.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-18_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-18_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/qp/6K/MD5E-s28234699--58019d798a133e5d7806569374dd8160.nii.gz/MD5E-s28234699--58019d798a133e5d7806569374dd8160.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-18_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-19\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-19_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Zw/p8/MD5E-s8861893--d338005753d8af3f3d7bd8dc293e2a97.nii.gz/MD5E-s8861893--d338005753d8af3f3d7bd8dc293e2a97.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-19_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/04/k6/MD5E-s28178448--3874e748258cf19aa69a05a7c37ad137.nii.gz/MD5E-s28178448--3874e748258cf19aa69a05a7c37ad137.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-19_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-19_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/mz/P4/MD5E-s28190932--91e6b3e4318ca28f01de8cb967cf8421.nii.gz/MD5E-s28190932--91e6b3e4318ca28f01de8cb967cf8421.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-19_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-20\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-20_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/g1/FF/MD5E-s11025608--5929806a7aa5720fc755687e1450b06c.nii.gz/MD5E-s11025608--5929806a7aa5720fc755687e1450b06c.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-20_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/v5/ZJ/MD5E-s29931631--bf9abb057367ce66961f0b7913e8e707.nii.gz/MD5E-s29931631--bf9abb057367ce66961f0b7913e8e707.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-20_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-20_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/J3/KW/MD5E-s29945590--96cfd5b77cd096f6c6a3530015fea32d.nii.gz/MD5E-s29945590--96cfd5b77cd096f6c6a3530015fea32d.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-20_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-21\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-21_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/K6/6K/MD5E-s8662805--77b262ddd929fa08d78591bfbe558ac6.nii.gz/MD5E-s8662805--77b262ddd929fa08d78591bfbe558ac6.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-21_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Wz/p9/MD5E-s28756041--9ae556d4e3042532d25af5dc4ab31840.nii.gz/MD5E-s28756041--9ae556d4e3042532d25af5dc4ab31840.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-21_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-21_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/xF/M3/MD5E-s28758438--81866411fc6b6333ec382a20ff0be718.nii.gz/MD5E-s28758438--81866411fc6b6333ec382a20ff0be718.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-21_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-22\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-22_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/JG/ZV/MD5E-s9282392--9e7296a6a5b68df46b77836182b6681a.nii.gz/MD5E-s9282392--9e7296a6a5b68df46b77836182b6681a.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-22_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/qW/Gw/MD5E-s28002098--c6bea10177a38667ceea3261a642b3c6.nii.gz/MD5E-s28002098--c6bea10177a38667ceea3261a642b3c6.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-22_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-22_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/VX/Zj/MD5E-s28027568--b34d0df9ad62485aba25296939429885.nii.gz/MD5E-s28027568--b34d0df9ad62485aba25296939429885.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-22_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-23\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-23_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/4Z/4x/MD5E-s10626062--db5a6ba6730b319c6425f2e847ce9b14.nii.gz/MD5E-s10626062--db5a6ba6730b319c6425f2e847ce9b14.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-23_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/VK/8F/MD5E-s28965005--4a9a96d9322563510ca14439e7fd6cea.nii.gz/MD5E-s28965005--4a9a96d9322563510ca14439e7fd6cea.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-23_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-23_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/56/20/MD5E-s29050413--753b0d2c23c4af6592501219c2e2c6bd.nii.gz/MD5E-s29050413--753b0d2c23c4af6592501219c2e2c6bd.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-23_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-24\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-24_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/jQ/fV/MD5E-s10739691--458f0046eff18ee8c43456637766a819.nii.gz/MD5E-s10739691--458f0046eff18ee8c43456637766a819.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-24_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/km/fV/MD5E-s29354610--29ebfa60e52d49f7dac6814cb5fdc2bc.nii.gz/MD5E-s29354610--29ebfa60e52d49f7dac6814cb5fdc2bc.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-24_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-24_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Wj/KK/MD5E-s29423307--fedaa1d7c6e34420735bb3bbe5a2fe38.nii.gz/MD5E-s29423307--fedaa1d7c6e34420735bb3bbe5a2fe38.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-24_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-25\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-25_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Gk/FQ/MD5E-s8998578--f560d832f13e757b485c16d570bf6ebc.nii.gz/MD5E-s8998578--f560d832f13e757b485c16d570bf6ebc.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-25_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/XW/1v/MD5E-s29473003--49b04e7e4b450ec5ef93ff02d4158775.nii.gz/MD5E-s29473003--49b04e7e4b450ec5ef93ff02d4158775.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-25_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-25_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/Qm/M7/MD5E-s29460132--b0e9039e9f33510631f229c8c2193285.nii.gz/MD5E-s29460132--b0e9039e9f33510631f229c8c2193285.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-25_task-flanker_run-2_events.tsv\u001b[0m\n", "├── \u001b[01;34msub-26\u001b[0m\n", "│   ├── \u001b[01;34manat\u001b[0m\n", "│   │   └── \u001b[40;31;01msub-26_T1w.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/kf/9F/MD5E-s10850250--5f103b2660f488e4afa193f9307c1291.nii.gz/MD5E-s10850250--5f103b2660f488e4afa193f9307c1291.nii.gz\u001b[0m\n", "│   └── \u001b[01;34mfunc\u001b[0m\n", "│   ├── \u001b[40;31;01msub-26_task-flanker_run-1_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/QV/10/MD5E-s30127491--8e30aa4bbfcc461bac8598bf621283c5.nii.gz/MD5E-s30127491--8e30aa4bbfcc461bac8598bf621283c5.nii.gz\u001b[0m\n", "│   ├── \u001b[00msub-26_task-flanker_run-1_events.tsv\u001b[0m\n", "│   ├── \u001b[40;31;01msub-26_task-flanker_run-2_bold.nii.gz\u001b[0m -> \u001b[00m../../.git/annex/objects/3G/Q6/MD5E-s30162480--80fd132e7cb1600ab248249e78f6f1aa.nii.gz/MD5E-s30162480--80fd132e7cb1600ab248249e78f6f1aa.nii.gz\u001b[0m\n", "│   └── \u001b[00msub-26_task-flanker_run-2_events.tsv\u001b[0m\n", "└── \u001b[00mtask-flanker_bold.json\u001b[0m\n", "\n", "80 directories, 192 files\n" ] } ], "source": [ "!tree -L 4 ds000102" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### Inspecting the anatomical and functional images\n", "\n", "To use the AFNI graphical user interface, you would type:\n", "```javascript\n", "afni sub-08_T1w.nii.gz\n", "```\n", "We will use ipyniivue to look at the data:\n", "\n", "Many of the quality checks for the functional images are similar to those for the anatomical images. Look out for excessively bright or dark spots in the grey or white matter, as well as any image distortions, such as abnormal stretching or warping. A common area where slight distortion may occur is in the orbitofrontal region, just above the eyeballs.\n", "\n", "Additionally, it’s important to check for excessive motion during the scan." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "anat_image = './ds000102/sub-08/anat/sub-08_T1w.nii.gz'\n", "func1_image = './ds000102/sub-08/func/sub-08_task-flanker_run-1_bold.nii.gz'\n", "func2_image = './ds000102/sub-08/func/sub-08_task-flanker_run-2_bold.nii.gz'" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e5a20c63367549709a42c1573e9856ec", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NiiVue(height=300)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# anatomical image\n", "nv = NiiVue()\n", "nv.load_volumes([{\"path\": anat_image}])\n", "nv" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c3c2f757200d4bb4a0d9ffc48dad8e51", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NiiVue(height=300)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# functional run 1\n", "nv = NiiVue()\n", "nv.load_volumes([{\"path\": func1_image}])\n", "nv" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## AFNI Commands and Preprocessing" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "We will be working with the data from subject sub-08. First, we'll introduce basic AFNI commands. Then, we’ll create a processing script using ```afni_proc.py```, which automates the entire preprocessing workflow. AFNI also provides graphical user interfaces (GUIs), such as ```uber_subject.py``` and ```uber_ttest.py``` (for group analysis), which help build processing scripts by combining many commands in the correct order. However, since GUIs cannot be used within a Jupyter Notebook environment, we will focus on writing the scripts directly.\n", "\n", "After setting up the automated script, we'll walk through each preprocessing step individually and discuss how to check data quality before and after each step.\n", "\n", "- 1: AFNI Commands\n", " \n", "- 2: Preprocessing with ```afni_prc.py``` \n", " - Registration and Normalization \n", " - Alignment and Motion Correction\n", " - Smoothing\n", " - Masking and Scaling\n", " - Checking Preprocessing" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### 1. AFNI commands\n", "AFNI commands typicallly require at least one argument, or input, and they also usually require you to specify what to call the output of the command.\n", "\n", "Let’s take skull-stripping, for example - a common preprocessing step that removes the skull from the brain. The AFNI command to do this step is called 3dSkullStrip. Use the ```-h``` flag to print the help page." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Usage: A program to extract the brain from surrounding.\n", " tissue from MRI T1-weighted images. \n", " The simplest command would be:\n", " 3dSkullStrip <-input DSET>\n", "\n", " Also consider the script @SSwarper, which combines the use of\n", " 3dSkullStrip and nonlinear warping to an MNI template to produce\n", " a skull-stripped dataset in MNI space, plus the nonlinear warp\n", " that can used to transform other datasets from the same subject\n", " (e.g., EPI) to MNI space. (This script only applies to human brain\n", " images.)\n", "\n", " The fully automated process consists of three steps:\n", " 1- Preprocessing of volume to remove gross spatial image \n", " non-uniformity artifacts and reposition the brain in\n", " a reasonable manner for convenience.\n", " ** Note that in many cases, using 3dUnifize before **\n", " ** using 3dSkullStrip will give better results. **\n", " 2- Expand a spherical surface iteratively until it envelopes\n", " the brain. This is a modified version of the BET algorithm:\n", " Fast robust automated brain extraction, \n", " by Stephen M. Smith, HBM 2002 v 17:3 pp 143-155\n", " Modifications include the use of:\n", " . outer brain surface\n", " . expansion driven by data inside and outside the surface\n", " . avoidance of eyes and ventricles\n", " . a set of operations to avoid the clipping of certain brain\n", " areas and reduce leakage into the skull in heavily shaded\n", " data\n", " . two additional processing stages to ensure convergence and\n", " reduction of clipped areas.\n", " . use of 3d edge detection, see Deriche and Monga references\n", " in 3dedge3 -help.\n", " 3- The creation of various masks and surfaces modeling brain\n", " and portions of the skull\n", "\n", " Common examples of usage:\n", " -------------------------\n", " o 3dSkullStrip -input VOL -prefix VOL_PREFIX\n", " Vanilla mode, should work for most datasets.\n", " o 3dSkullStrip -input VOL -prefix VOL_PREFIX -push_to_edge\n", " Adds an agressive push to brain edges. Use this option\n", " when the chunks of gray matter are not included. This option\n", " might cause the mask to leak into non-brain areas.\n", " o 3dSkullStrip -input VOL -surface_coil -prefix VOL_PREFIX -monkey\n", " Vanilla mode, for use with monkey data.\n", " o 3dSkullStrip -input VOL -prefix VOL_PREFIX -ld 30\n", " Use a denser mesh, in the cases where you have lots of \n", " csf between gyri. Also helps when some of the brain is clipped\n", " close to regions of high curvature.\n", "\n", " Tips:\n", " -----\n", " I ran the program with the default parameters on 200+ datasets.\n", " The results were quite good in all but a couple of instances, here\n", " are some tips on fixing trouble spots:\n", "\n", " Clipping in frontal areas, close to the eye balls:\n", " + Try -push_to_edge option first.\n", " Can also try -no_avoid_eyes option.\n", " Clipping in general:\n", " + Try -push_to_edge option first.\n", " Can also use lower -shrink_fac, start with 0.5 then 0.4\n", " Problems down below:\n", " + Piece of cerebellum missing, reduce -shrink_fac_bot_lim \n", " from default value.\n", " + Leakage in lower areas, increase -shrink_fac_bot_lim \n", " from default value.\n", " Some lobules are not included:\n", " + Use a denser mesh. Start with -ld 30. If that still fails,\n", " try even higher density (like -ld 50) and increase iterations \n", " (say to -niter 750). \n", " Expect the program to take much longer in that case.\n", " + Instead of using denser meshes, you could try blurring the data \n", " before skull stripping. Something like -blur_fwhm 2 did\n", " wonders for some of my data with the default options of 3dSkullStrip\n", " Blurring is a lot faster than increasing mesh density.\n", " + Use also a smaller -shrink_fac is you have lots of CSF between\n", " gyri.\n", " Massive chunks missing:\n", " + If brain has very large ventricles and lots of CSF between gyri,\n", " the ventricles will keep attracting the surface inwards. \n", " This often happens with older brains. In such \n", " cases, use the -visual option to see what is happening.\n", " For example, the options below did the trick in various\n", " instances. \n", " -blur_fwhm 2 -use_skull \n", " or for more stubborn cases increase csf avoidance with this cocktail\n", " -blur_fwhm 2 -use_skull -avoid_vent -avoid_vent -init_radius 75 \n", " + Too much neck in the volume might throw off the initialization\n", " step. You can fix this by clipping tissue below the brain with \n", " @clip_volume -below ZZZ -input INPUT \n", " where ZZZ is a Z coordinate somewhere below the brain.\n", "\n", " Large regions outside brain included:\n", " + Usually because noise level is high. Try @NoisySkullStrip.\n", "\n", " Make sure that brain orientation is correct. This means the image in \n", " AFNI's axial slice viewer should be close to the brain's axial plane.\n", " The same goes for the other planes. Otherwise, the program might do a lousy\n", " job removing the skull.\n", "\n", " Eye Candy Mode: \n", " ---------------\n", " You can run 3dSkullStrip and have it send successive iterations\n", " to SUMA and AFNI. This is very helpful in following the\n", " progression of the algorithm and determining the source\n", " of trouble, if any.\n", " Example:\n", " afni -niml -yesplugouts &\n", " suma -niml &\n", " 3dSkullStrip -input Anat+orig -o_ply anat_brain -visual\n", "\n", " Help section for the intrepid:\n", " ------------------------------\n", " 3dSkullStrip < -input VOL >\n", " [< -o_TYPE PREFIX >] [< -prefix VOL_PREFIX >] \n", " [< -spatnorm >] [< -no_spatnorm >] [< -write_spatnorm >]\n", " [< -niter N_ITER >] [< -ld LD >] \n", " [< -shrink_fac SF >] [< -var_shrink_fac >] \n", " [< -no_var_shrink_fac >] [< -shrink_fac_bot_lim SFBL >]\n", " [< -pushout >] [< -no_pushout >] [< -exp_frac FRAC]\n", " [< -touchup >] [< -no_touchup >]\n", " [< -fill_hole R >] [< -NN_smooth NN_SM >]\n", " [< -smooth_final SM >] [< -avoid_vent >] [< -no_avoid_vent >]\n", " [< -use_skull >] [< -no_use_skull >] \n", " [< -avoid_eyes >] [< -no_avoid_eyes >] \n", " [< -use_edge >] [< -no_use_edge >] \n", " [< -push_to_edge >] [<-no_push_to_edge>]\n", " [< -perc_int PERC_INT >] \n", " [< -max_inter_iter MII >] [-mask_vol | -orig_vol | -norm_vol]\n", " [< -debug DBG >] [< -node_debug NODE_DBG >]\n", " [< -demo_pause >]\n", " [< -monkey >] [< -marmoset >] [<-rat>]\n", "\n", " NOTE: Please report bugs and strange failures\n", " to saadz@mail.nih.gov\n", "\n", " Mandatory parameters:\n", " -input VOL: Input AFNI (or AFNI readable) volume.\n", " \n", "\n", " Optional Parameters:\n", " -monkey: the brain of a monkey.\n", " -marmoset: the brain of a marmoset. \n", " this one was tested on one dataset\n", " and may not work with non default\n", " options. Check your results!\n", " -rat: the brain of a rat.\n", " By default, no_touchup is used with the rat.\n", " -surface_coil: Data acquired with a surface coil.\n", " -o_TYPE PREFIX: prefix of output surface.\n", " where TYPE specifies the format of the surface\n", " and PREFIX is, well, the prefix.\n", " TYPE is one of: fs, 1d (or vec), sf, ply.\n", " More on that below.\n", " -skulls: Output surface models of the skull.\n", " -4Tom: The output surfaces are named based\n", " on PREFIX following -o_TYPE option below.\n", " -prefix VOL_PREFIX: prefix of output volume.\n", " If not specified, the prefix is the same\n", " as the one used with -o_TYPE.\n", " The output volume is skull stripped version\n", " of the input volume. In the earlier version\n", " of the program, a mask volume was written out.\n", " You can still get that mask volume instead of the\n", " skull-stripped volume with the option -mask_vol . \n", " NOTE: In the default setting, the output volume does not \n", " have values identical to those in the input. \n", " In particular, the range might be larger \n", " and some low-intensity values are set to 0.\n", " If you insist on having the same range of values as in\n", " the input, then either use option -orig_vol, or run:\n", " 3dcalc -nscale -a VOL+VIEW -b VOL_PREFIX+VIEW \\\n", " -expr 'a*step(b)' -prefix VOL_SAME_RANGE\n", " With the command above, you can preserve the range\n", " of values of the input but some low-intensity voxels would\n", " still be masked. If you want to preserve them, then use\n", " -mask_vol in the 3dSkullStrip command that would produce \n", " VOL_MASK_PREFIX+VIEW. Then run 3dcalc masking with voxels\n", " inside the brain surface envelope:\n", " 3dcalc -nscale -a VOL+VIEW -b VOL_MASK_PREFIX+VIEW \\\n", " -expr 'a*step(b-3.01)' -prefix VOL_SAME_RANGE_KEEP_LOW\n", " -norm_vol: Output a masked and somewhat intensity normalized and \n", " thresholded version of the input. This is the default,\n", " and you can use -orig_vol to override it.\n", " -orig_vol: Output a masked version of the input AND do not modify\n", " the values inside the brain as -norm_vol would.\n", " -mask_vol: Output a mask volume instead of a skull-stripped\n", " volume.\n", " The mask volume containes:\n", " 0: Voxel outside surface\n", " 1: Voxel just outside the surface. This means the voxel\n", " center is outside the surface but inside the \n", " bounding box of a triangle in the mesh. \n", " 2: Voxel intersects the surface (a triangle), but center\n", " lies outside.\n", " 3: Voxel contains a surface node.\n", " 4: Voxel intersects the surface (a triangle), center lies\n", " inside surface. \n", " 5: Voxel just inside the surface. This means the voxel\n", " center is inside the surface and inside the \n", " bounding box of a triangle in the mesh. \n", " 6: Voxel inside the surface. \n", " -spat_norm: (Default) Perform spatial normalization first.\n", " This is a necessary step unless the volume has\n", " been 'spatnormed' already.\n", " -no_spatnorm: Do not perform spatial normalization.\n", " Use this option only when the volume \n", " has been run through the 'spatnorm' process\n", " -spatnorm_dxyz DXYZ: Use DXY for the spatial resolution of the\n", " spatially normalized volume. The default \n", " is the lowest of all three dimensions.\n", " For human brains, use DXYZ of 1.0, for\n", " primate brain, use the default setting.\n", " -write_spatnorm: Write the 'spatnormed' volume to disk.\n", " -niter N_ITER: Number of iterations. Default is 250\n", " For denser meshes, you need more iterations\n", " N_ITER of 750 works for LD of 50.\n", " -ld LD: Parameter to control the density of the surface.\n", " Default is 20 if -no_use_edge is used,\n", " 30 with -use_edge. See CreateIcosahedron -help\n", " for details on this option.\n", " -shrink_fac SF: Parameter controlling the brain vs non-brain\n", " intensity threshold (tb). Default is 0.6.\n", " tb = (Imax - t2) SF + t2 \n", " where t2 is the 2 percentile value and Imax is the local\n", " maximum, limited to the median intensity value.\n", " For more information on tb, t2, etc. read the BET paper\n", " mentioned above. Note that in 3dSkullStrip, SF can vary across \n", " iterations and might be automatically clipped in certain areas.\n", " SF can vary between 0 and 1.\n", " 0: Intensities < median inensity are considered non-brain\n", " 1: Intensities < t2 are considered non-brain\n", " -var_shrink_fac: Vary the shrink factor with the number of\n", " iterations. This reduces the likelihood of a surface\n", " getting stuck on large pools of CSF before reaching\n", " the outer surface of the brain. (Default)\n", " -no_var_shrink_fac: Do not use var_shrink_fac.\n", " -shrink_fac_bot_lim SFBL: Do not allow the varying SF to go\n", " below SFBL . Default 0.65, 0.4 when edge detection is used. \n", " This option helps reduce potential for leakage below \n", " the cerebellum.\n", " In certain cases where you have severe non-uniformity resulting\n", " in low signal towards the bottom of the brain, you will need to\n", " reduce this parameter.\n", " -pushout: Consider values above each node in addition to values\n", " below the node when deciding on expansion. (Default)\n", " -no_pushout: Do not use -pushout.\n", " -exp_frac FRAC: Speed of expansion (see BET paper). Default is 0.1.\n", " -touchup: Perform touchup operations at end to include\n", " areas not covered by surface expansion. \n", " Use -touchup -touchup for aggressive makeup.\n", " (Default is -touchup)\n", " -no_touchup: Do not use -touchup\n", " -fill_hole R: Fill small holes that can result from small surface\n", " intersections caused by the touchup operation.\n", " R is the maximum number of pixels on the side of a hole\n", " that can be filled. Big holes are not filled.\n", " If you use -touchup, the default R is 10. Otherwise \n", " the default is 0.\n", " This is a less than elegant solution to the small\n", " intersections which are usually eliminated\n", " automatically. \n", " -NN_smooth NN_SM: Perform Nearest Neighbor coordinate interpolation\n", " every few iterations. Default is 72\n", " -smooth_final SM: Perform final surface smoothing after all iterations.\n", " Default is 20 smoothing iterations.\n", " Smoothing is done using Taubin's method, \n", " see SurfSmooth -help for detail.\n", " -avoid_vent: avoid ventricles. Default.\n", " Use this option twice to make the avoidance more\n", " agressive. That is at times needed with old brains.\n", " -no_avoid_vent: Do not use -avoid_vent.\n", " -init_radius RAD: Use RAD for the initial sphere radius.\n", " For the automatic setting, there is an\n", " upper limit of 100mm for humans.\n", " For older brains with lots of CSF, you\n", " might benefit from forcing the radius \n", " to something like 75mm\n", " -avoid_eyes: avoid eyes. Default\n", " -no_avoid_eyes: Do not use -avoid_eyes.\n", " -use_edge: Use edge detection to reduce leakage into meninges and eyes.\n", " Default.\n", " -no_use_edge: Do no use edges.\n", " -push_to_edge: Perform aggressive push to edge at the end.\n", " This option might cause leakage.\n", " -no_push_to_edge: (Default).\n", " -use_skull: Use outer skull to limit expansion of surface into\n", " the skull due to very strong shading artifacts.\n", " This option is buggy at the moment, use it only \n", " if you have leakage into skull.\n", " -no_use_skull: Do not use -use_skull (Default).\n", " -send_no_skull: Do not send the skull surface to SUMA if you are\n", " using -talk_suma\n", " -perc_int PERC_INT: Percentage of segments allowed to intersect\n", " surface. Ideally this should be 0 (Default). \n", " However, few surfaces might have small stubborn\n", " intersections that produce a few holes.\n", " PERC_INT should be a small number, typically\n", " between 0 and 0.1. A -1 means do not do\n", " any testing for intersection.\n", " -max_inter_iter N_II: Number of iteration to remove intersection\n", " problems. With each iteration, the program\n", " automatically increases the amount of smoothing\n", " to get rid of intersections. Default is 4\n", " -blur_fwhm FWHM: Blur dset after spatial normalization.\n", " Recommended when you have lots of CSF in brain\n", " and when you have protruding gyri (finger like)\n", " Recommended value is 2..4. \n", " -interactive: Make the program stop at various stages in the \n", " segmentation process for a prompt from the user\n", " to continue or skip that stage of processing.\n", " This option is best used in conjunction with options\n", " -talk_suma and -feed_afni\n", " -demo_pause: Pause at various step in the process to facilitate\n", " interactive demo while 3dSkullStrip is communicating\n", " with AFNI and SUMA. See 'Eye Candy' mode below and\n", " -talk_suma option. \n", " -fac FAC: Multiply input dataset by FAC if range of values is too\n", " small.\n", "\n", " -visual: Equivalent to using -talk_suma -feed_afni -send_kth 5\n", "\n", " -debug DBG: debug levels of 0 (default), 1, 2, 3.\n", " This is no Rick Reynolds debug, which is oft nicer\n", " than the results, but it will do.\n", " -node_debug NODE_DBG: Output lots of parameters for node\n", " NODE_DBG for each iteration.\n", " The next 3 options are for specifying surface coordinates\n", " to keep the program from having to recompute them.\n", " The options are only useful for saving time during debugging.\n", " -brain_contour_xyz_file BRAIN_CONTOUR_XYZ.1D\n", " -brain_hull_xyz_file BRAIN_HULL_XYZ.1D\n", " -skull_outer_xyz_file SKULL_OUTER_XYZ.1D\n", " -help: The help you need\n", "\n", "\n", "\n", "Compile Date:\n", " Jul 8 2021\n", "\n", " Ziad S. Saad SSCC/NIMH/NIH saadz@mail.nih.gov \n" ] } ], "source": [ "!3dSkullStrip -h" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of AFNI’s major advantages is the quality of its documentation and help resources. Each command's usage is thoroughly described, and the purpose behind various options is clearly explained. Example commands are provided to illustrate how to handle different situations — for instance, if too much skull remains after skull-stripping, you might be advised to use a flag like ```-push_to_edge```.\n", "\n", "The simplest way to run ```3dSkullStrip``` is by using the ```-input``` option to specify the anatomical dataset for processing. The ```-prefix``` option is also used to output a NIfTI image for visualization with ipyniivue." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The intensity in the output dataset is a modified version\n", "of the intensity in the input volume.\n", "To obtain a masked version of the input with identical values inside\n", "the brain, you can either use 3dSkullStrip's -orig_vol option\n", "or run the following command:\n", " 3dcalc -a ./ds000102/sub-08/anat/sub-08_T1w.nii.gz -b ./anat_ss.nii.gz+orig -expr 'a*step(b)' \\\n", " -prefix ./anat_ss.nii.gz_orig_vol\n", "to generate a new masked version of the input.\n" ] } ], "source": [ "!3dSkullStrip -input $anat_image -prefix anat_ss.nii.gz " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c19a118ee25448dda1eecc2dba1d801c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NiiVue(height=300)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "volumes = [{\"path\": anat_image}, \n", " {\"path\": \"./anat_ss.nii.gz\", \"colormap\": \"red\"}]\n", "\n", "nv = NiiVue()\n", "nv.load_volumes(volumes) \n", "nv" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### 2. Preprocessing\n", "To automate preprocessing in AFNI, the powerful ```afni_proc.py``` tool is used. This command generates a fully customizable tcsh script that includes all necessary preprocessing steps, from slice timing correction to scaling.\n", "\n", "The basic idea is:\n", "\n", "- Specify which processing blocks to apply.\n", "\n", "- ```afni_proc.py``` writes a script to carry them out in the correct order.\n", "\n", "- The generated script can be reviewed and run, or modified if needed.\n", " \n", "\n", "The processing blocks include both automatic steps (such as setup and initial time concatenation) and default blocks that you can customize, skip, or reorder. For example:\n", "\n", "\n", "- **Automatic blocks**:\n", "\n", "-```setup```: Set up subject information, create output directory (subj_id, script, out_dir)\n", "\n", "-```tcat```: Remove unwanted initial TRs.\n", "\n", "- **Default blocks**:\n", "\n", "-```tshift```: Slice timing correction.\n", "\n", "-```volreg```: Volume registration (motion correction).\n", "\n", "-```blur```: Spatial smoothing.\n", "\n", "-```mask```: Create a brain mask from EPI data.\n", "\n", "-```scale```: Normalize voxel-wise signal intensities.\n", "\n", "-```regress```: (optional) Regression analysis for task-based designs.\n", "\n", "\n", "A full list of options and help can be found in the [AFNI documentation](https://afni.nimh.nih.gov/pub/dist/doc/program_help/afni_proc.py.html).\n", "\n", "The following command specifies key preprocessing steps for ```sub-08```, including motion correction, normalization to MNI space, smoothing, and scaling. Additionally, the alignment option ```-giant_move``` is included, which allows for larger shifts and rotations during alignments.\n", "\n", "\n", "
\n", "Preprocessing Workflow:

\n", "➡️ setup ➡️ tcat ➡️ tshift ➡️ align ➡️ tlrc ➡️ volreg ➡️ blur ➡️ mask ➡️ scale ➡️ ✅ outputs\n", "
" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "-- applying input view as +orig\n", "-- will use min outlier volume as motion base\n", "-- tcat: reps is now 146\n", "++ updating polort to 2, from run len 292.0 s\n", "-- volreg: using base dset vr_base_min_outlier+orig\n", "++ volreg: applying volreg/epi2anat/tlrc xforms to isotropic 3 mm tlrc voxels\n", "-- applying anat warps to 1 dataset(s): sub-08_T1w\n", "-- masking: group anat = 'MNI_avg152T1+tlrc', exists = 1\n", "-- have 1 ROI dict entries ...\n", "-- no regress block, skipping gen_ss_review_scripts.py\n", "-- using default: will not apply EPI Automask\n", " (see 'MASKING NOTE' from the -help for details)\n", "\n", "--> script is file: proc.sub_08\n", "\n", " to execute via tcsh:\n", " tcsh -xef proc.sub_08 |& tee output.proc.sub_08\n", "\n", " to execute via bash:\n", " tcsh -xef proc.sub_08 2>&1 | tee output.proc.sub_08\n", "\n" ] } ], "source": [ "!afni_proc.py \\\n", " -subj_id sub_08 \\\n", " -script proc.sub_08 \\\n", " -scr_overwrite \\\n", " -out_dir ./afni_processing/sub_08.results \\\n", " -blocks tshift align tlrc volreg blur mask scale \\\n", " -copy_anat $anat_image \\\n", " -dsets \\\n", " $func1_image \\\n", " $func2_image \\\n", " -tcat_remove_first_trs 0 \\\n", " -align_opts_aea -giant_move \\\n", " -tlrc_base MNI_avg152T1+tlrc \\\n", " -volreg_align_to MIN_OUTLIER \\\n", " -volreg_align_e2a \\\n", " -volreg_tlrc_warp \\\n", " -blur_size 4.0" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "**Run the Preprocessing Script and Inspect the Output**\n", "\n", "Now that we have generated our preprocessing script `proc.sub_08`, we can run it using the following command:\n", "\n", "```bash\n", "! tcsh -xef proc.sub_08 |& tee output.proc.sub_08\n", "```\n", "\n", "This will execute the script and save a full record of the output in a file called ```output.proc.sub_08```, while also displaying it in the notebook." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "echo auto-generated by afni_proc.py, Thu May 1 05:08:45 2025\n", "auto-generated by afni_proc.py, Thu May 1 05:08:45 2025\n", "echo (version 7.16, May 19, 2021)\n", "(version 7.16, May 19, 2021)\n", "echo execution started: `date`\n", "date\n", "execution started: Thu May 1 05:08:46 UTC 2025\n", "afni -ver\n", "Precompiled binary linux_openmp_64: Jul 8 2021 (Version AFNI_21.2.00 'Nerva')\n", "afni_history -check_date 27 Jun 2019\n", "-- is current: afni_history as new as: 27 Jun 2019\n", " most recent entry is: 30 Jun 2021\n", "if ( 0 ) then\n", "if ( 0 > 0 ) then\n", "set subj = sub_08\n", "endif\n", "set output_dir = ./afni_processing/sub_08.results\n", "if ( -d ./afni_processing/sub_08.results ) then\n", "set runs = ( `count -digits 2 1 2` )\n", "count -digits 2 1 2\n", "mkdir -p ./afni_processing/sub_08.results\n", "mkdir ./afni_processing/sub_08.results/stimuli\n", "3dcopy ds000102/sub-08/anat/sub-08_T1w.nii.gz ./afni_processing/sub_08.results/sub-08_T1w\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dTcat -prefix ./afni_processing/sub_08.results/pb00.sub_08.r01.tcat ds000102/sub-08/func/sub-08_task-flanker_run-1_bold.nii.gz[0..$]\n", "++ 3dTcat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ elapsed time = 0.7 s\n", "3dTcat -prefix ./afni_processing/sub_08.results/pb00.sub_08.r02.tcat ds000102/sub-08/func/sub-08_task-flanker_run-2_bold.nii.gz[0..$]\n", "++ 3dTcat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ elapsed time = 0.7 s\n", "set tr_counts = ( 146 146 )\n", "cd ./afni_processing/sub_08.results\n", "touch out.pre_ss_warn.txt\n", "foreach run ( 01 02 )\n", "3dToutcount -automask -fraction -polort 2 -legendre pb00.sub_08.r01.tcat+orig\n", "++ 3dToutcount: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 38915 voxels passed mask/clip\n", "if ( `1deval -a outcount.r$run.1D\"{0}\" -expr \"step(a-0.4)\"` ) then\n", "1deval -a outcount.r01.1D{0} -expr step(a-0.4)\n", "end\n", "3dToutcount -automask -fraction -polort 2 -legendre pb00.sub_08.r02.tcat+orig\n", "++ 3dToutcount: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 38896 voxels passed mask/clip\n", "if ( `1deval -a outcount.r$run.1D\"{0}\" -expr \"step(a-0.4)\"` ) then\n", "1deval -a outcount.r02.1D{0} -expr step(a-0.4)\n", "end\n", "cat outcount.r01.1D outcount.r02.1D\n", "set minindex = `3dTstat -argmin -prefix - outcount_rall.1D\\'`\n", "3dTstat -argmin -prefix - outcount_rall.1D'\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "\u001b[7m*+ WARNING:\u001b[0m Input dataset is not 3D+time; assuming TR=1.0\n", "set ovals = ( `1d_tool.py -set_run_lengths $tr_counts \n", " -index_to_run_tr $minindex` )\n", "1d_tool.py -set_run_lengths 146 146 -index_to_run_tr 28\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "set minoutrun = 01\n", "set minouttr = 28\n", "echo min outlier: run 01, TR 28\n", "tee out.min_outlier.txt\n", "min outlier: run 01, TR 28\n", "foreach run ( 01 02 )\n", "3dTshift -tzero 0 -quintic -prefix pb01.sub_08.r01.tshift pb00.sub_08.r01.tcat+orig\n", "++ 3dTshift: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "\u001b[7m*+ WARNING:\u001b[0m dataset is already aligned in time!\n", "\u001b[7m*+ WARNING:\u001b[0m ==>> output dataset is just a copy of input dataset\n", "end\n", "3dTshift -tzero 0 -quintic -prefix pb01.sub_08.r02.tshift pb00.sub_08.r02.tcat+orig\n", "++ 3dTshift: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "\u001b[7m*+ WARNING:\u001b[0m dataset is already aligned in time!\n", "\u001b[7m*+ WARNING:\u001b[0m ==>> output dataset is just a copy of input dataset\n", "end\n", "3dbucket -prefix vr_base_min_outlier pb01.sub_08.r01.tshift+orig[28]\n", "++ 3dbucket: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "align_epi_anat.py -anat2epi -anat sub-08_T1w+orig -save_skullstrip -suffix _al_junk -epi vr_base_min_outlier+orig -epi_base 0 -epi_strip 3dAutomask -giant_move -volreg off -tshift off\n", "#++ align_epi_anat version: 1.62\n", "#++ turning off volume registration\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./vr_base_min_outlier+orig\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./vr_base_min_outlier+orig\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./sub-08_T1w+orig\n", "#++ Multi-cost is lpc\n", "#++ Removing all the temporary files\n", "#Script is running:\n", " \\rm -f ./__tt_vr_base_min_outlier*\n", "#Script is running:\n", " \\rm -f ./__tt_sub-08_T1w*\n", "#Script is running (command trimmed):\n", " 3dcopy ./sub-08_T1w+orig ./__tt_sub-08_T1w+orig\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ Removing skull from anat data\n", "#Script is running (command trimmed):\n", " 3dSkullStrip -orig_vol -input ./__tt_sub-08_T1w+orig -prefix ./__tt_sub-08_T1w_ns\n", "#Script is running (command trimmed):\n", " 3dinfo ./__tt_sub-08_T1w_ns+orig | \\grep 'Data Axes Tilt:'|\\grep 'Oblique'\n", "#++ Dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_sub-08_T1w_ns+orig is not oblique\n", "#Script is running (command trimmed):\n", " 3dinfo ./vr_base_min_outlier+orig | \\grep 'Data Axes Tilt:'|\\grep 'Oblique'\n", "#++ Dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/vr_base_min_outlier+orig is not oblique\n", "#++ using 0th sub-brick because only one found\n", "#Script is running (command trimmed):\n", " 3dbucket -prefix ./__tt_vr_base_min_outlier_ts ./vr_base_min_outlier+orig'[0]'\n", "++ 3dbucket: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ removing skull or area outside brain\n", "#Script is running (command trimmed):\n", " 3dAutomask -apply_prefix ./__tt_vr_base_min_outlier_ts_ns ./__tt_vr_base_min_outlier_ts+orig\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset ./__tt_vr_base_min_outlier_ts+orig\n", "++ Forming automask\n", " + Fixed clip level = 345.050415\n", " + Used gradual clip level = 330.013794 .. 365.519012\n", " + Number voxels above clip level = 39471\n", " + Clustering voxels ...\n", " + Largest cluster has 38949 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 38549 voxels\n", " + Filled 354 voxels in small holes; now have 38903 voxels\n", " + Filled 3 voxels in large holes; now have 38906 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 38906 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 124934 voxels\n", " + Mask now has 38906 voxels\n", "++ 38906 voxels in the mask [out of 163840: 23.75%]\n", "++ first 11 x-planes are zero [from L]\n", "++ last 11 x-planes are zero [from R]\n", "++ first 0 y-planes are zero [from P]\n", "++ last 5 y-planes are zero [from A]\n", "++ first 1 z-planes are zero [from I]\n", "++ last 3 z-planes are zero [from S]\n", "++ applying mask to original data\n", "++ Writing masked data\n", "++ Output dataset ./__tt_vr_base_min_outlier_ts_ns+orig.BRIK\n", "++ CPU time = 0.000000 sec\n", "#++ Computing weight mask\n", "#Script is running (command trimmed):\n", " 3dBrickStat -automask -percentile 90.000000 1 90.000000 ./__tt_vr_base_min_outlier_ts_ns+orig\n", "#++ Applying threshold of 819.000000 on /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_vr_base_min_outlier_ts_ns+orig\n", "#Script is running (command trimmed):\n", " 3dcalc -datum float -prefix ./__tt_vr_base_min_outlier_ts_ns_wt -a ./__tt_vr_base_min_outlier_ts_ns+orig -expr 'min(1,(a/819.000000))'\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__tt_vr_base_min_outlier_ts_ns_wt+orig.BRIK\n", "#++ Aligning anat data to epi data\n", "#Script is running (command trimmed):\n", " 3dAllineate -lpc -wtprefix ./__tt_sub-08_T1w_ns_al_junk_wtal -weight ./__tt_vr_base_min_outlier_ts_ns_wt+orig -source ./__tt_sub-08_T1w_ns+orig -prefix ./sub-08_T1w_al_junk -base ./__tt_vr_base_min_outlier_ts_ns+orig -cmass -1Dmatrix_save ./sub-08_T1w_al_junk_mat.aff12.1D -master BASE -mast_dxyz 1.000000 -weight_frac 1.0 -maxrot 6 -maxshf 10 -VERB -warp aff -source_automask+4 -twobest 11 -twopass -VERB -maxrot 45 -maxshf 40 -fineblur 1 -source_automask+2 \n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Option '-cmass' enables center-of-mass code = 7 = +xyz\n", "++ Source dataset: ./__tt_sub-08_T1w_ns+orig.HEAD\n", "++ Base dataset: ./__tt_vr_base_min_outlier_ts_ns+orig.HEAD\n", "++ Loading datasets into memory\n", "++ 1583872 voxels in -source_automask+2\n", "++ largeness ==> set -twobest 29\n", "++ Zero-pad: ybot=8 ytop=3\n", "++ Zero-pad: zbot=7 ztop=5\n", "++ 38906 voxels [15.6%] in weight mask\n", "++ Output dataset ./__tt_sub-08_T1w_ns_al_junk_wtal+orig.BRIK\n", "++ Number of points for matching = 38906\n", "++ NOTE: base and source coordinate systems have different handedness\n", " + Orientations: base=Right handed (LPI); source=Left handed (RPI)\n", " + - It is nothing to worry about: 3dAllineate aligns based on coordinates.\n", " + - But it is always important to check the alignment visually to be sure.\n", "++ Local correlation: blok type = 'TOHD(17.0941)'\n", "++ base center of mass = 31.963 35.048 27.741 (index)\n", " + source center of mass = 84.800 114.693 116.298 (index)\n", " + source-target CM = 86.190 -3.441 -1.709 (xyz)\n", " + estimated center of mass shifts = 86.190 -3.441 -1.709\n", "++ shift param auto-range: 25.5..146.9 -74.7..67.8 -67.2..63.8\n", " + Range param#4 [z-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#5 [x-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#6 [y-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#1 [x-shift] = 76.190132 .. 96.190132 center = 86.190132\n", " + Range param#2 [y-shift] = -13.440697 .. 6.559303 center = -3.440697\n", " + Range param#3 [z-shift] = -11.708786 .. 8.291214 center = -1.708786\n", " + Range param#4 [z-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#5 [x-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#6 [y-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#1 [x-shift] = 46.190132 .. 126.190132 center = 86.190132\n", " + Range param#2 [y-shift] = -43.440697 .. 36.559303 center = -3.440697\n", " + Range param#3 [z-shift] = -41.708786 .. 38.291214 center = -1.708786\n", " + 12 free parameters\n", "++ Normalized (unitless) convergence radius = 0.0000088\n", "++ Final parameter search ranges:\n", " + x-shift = 46.190 .. 126.190\n", " + y-shift = -43.441 .. 36.559\n", " + z-shift = -41.709 .. 38.291\n", " + z-angle = -45.000 .. 45.000\n", " + x-angle = -45.000 .. 45.000\n", " + y-angle = -45.000 .. 45.000\n", " + x-scale = 0.711 .. 1.406\n", " + y-scale = 0.711 .. 1.406\n", " + z-scale = 0.711 .. 1.406\n", " + y/x-shear = -0.111 .. 0.111\n", " + z/x-shear = -0.111 .. 0.111\n", " + z/y-shear = -0.111 .. 0.111\n", "++ changing output grid spacing to 1.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ======= Allineation of 1 sub-bricks using Local Pearson Correlation Signed =======\n", " + source mask has 1583872 [out of 11534336] voxels\n", " + base mask has 52253 [out of 249600] voxels\n", "++ ========== sub-brick #0 ========== [total CPU to here=0.0 s]\n", "++ *** Coarse pass begins ***\n", " + * Enter alignment setup routine\n", " + - copying base image\n", " + - copying source image\n", " + - Smoothing base; radius=4.00\n", " + - Smoothing source; radius=4.00\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - copying weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + - Search for coarse starting parameters\n", " + 32391 total points stored in 63 'TOHD(17.5558)' bloks (0 duplicates)\n", " + - number of free params = 6\n", " + - Test (64+191)*64 params [top5=*o+-.]:#o+o-.+.o--.--+oo-.++-.o-+-.+o+o---+.--.oo.+++o+$+.--.+..o.o + - best 88 costs found:\n", " o= 0 v=-0.078395: 86.19 -3.44 -1.71 0.00 0.00 0.00 [grid]\n", " o= 1 v=-0.024170: 91.62 4.15 28.38 -38.19 22.74 -41.67 [rand]\n", " o= 2 v=-0.022830: 100.19 -18.97 33.97 -14.61 -39.00 -28.71 [rand]\n", " o= 3 v=-0.022358: 92.86 -30.11 24.96 7.50 -30.00 -30.00 [grid]\n", " o= 4 v=-0.022101: 121.80 -7.85 -38.58 -37.76 24.22 3.86 [rand]\n", " o= 5 v=-0.021851: 97.68 -19.75 -35.46 -19.17 13.96 2.56 [rand]\n", " o= 6 v=-0.021730: 122.84 -20.67 20.55 5.26 -41.39 -40.03 [rand]\n", " o= 7 v=-0.021515: 101.83 -12.20 -35.54 -23.16 17.17 -3.59 [rand]\n", " o= 8 v=-0.021205: 91.12 -0.47 27.39 -40.99 18.21 -33.12 [rand]\n", " o= 9 v=-0.020806: 121.80 -7.85 -38.58 -37.76 24.22 -3.86 [rand]\n", " o=10 v=-0.020703: 97.68 -19.75 -35.46 -19.17 13.96 -2.56 [rand]\n", " o=11 v=-0.020229: 121.80 0.97 35.16 37.76 -24.22 -3.86 [rand]\n", " o=12 v=-0.020075: 90.34 20.37 30.18 31.52 -11.26 -33.63 [rand]\n", " o=13 v=-0.019908: 100.19 -18.97 33.97 14.61 -39.00 -28.71 [rand]\n", " o=14 v=-0.019694: 120.99 -17.22 -35.72 10.62 -7.10 -10.42 [rand]\n", " o=15 v=-0.019540: 119.22 1.58 -38.52 -11.98 4.28 -19.20 [rand]\n", " o=16 v=-0.019170: 88.48 -10.62 -33.40 -10.97 18.37 5.04 [rand]\n", " o=17 v=-0.018913: 121.80 0.97 -38.58 -37.76 24.22 3.86 [rand]\n", " o=18 v=-0.018894: 96.65 -30.71 19.79 -34.95 -5.03 -42.69 [rand]\n", " o=19 v=-0.018891: 115.81 31.17 35.11 24.31 -11.89 -2.84 [rand]\n", " o=20 v=-0.018703: 92.86 -30.11 24.96 -7.50 -30.00 -30.00 [grid]\n", " o=21 v=-0.018636: 115.81 31.17 35.11 24.31 -11.89 2.84 [rand]\n", " o=22 v=-0.018271: 74.70 12.87 -35.46 19.17 13.96 2.56 [rand]\n", " o=23 v=-0.018249: 83.90 -10.62 -33.40 -10.97 18.37 5.04 [rand]\n", " o=24 v=-0.018182: 119.22 -8.46 -38.52 -11.98 4.28 -19.20 [rand]\n", " o=25 v=-0.018157: 112.86 3.23 -28.38 -30.00 7.50 7.50 [grid]\n", " o=26 v=-0.018092: 113.03 -16.54 -34.29 -39.07 28.37 8.01 [rand]\n", " o=27 v=-0.018024: 121.80 -7.85 35.16 37.76 -24.22 -3.86 [rand]\n", " o=28 v=-0.017957: 91.12 -6.41 27.39 -40.99 18.21 -33.12 [rand]\n", " o=29 v=-0.017956: 101.83 -12.20 -35.54 -23.16 17.17 3.59 [rand]\n", " o=30 v=-0.017508: 120.99 -17.22 -35.72 -10.62 -7.10 -10.42 [rand]\n", " o=31 v=-0.017362: 74.70 12.87 -35.46 19.17 13.96 -2.56 [rand]\n", " o=32 v=-0.017349: 120.99 -17.22 -35.72 -10.62 7.10 -10.42 [rand]\n", " o=33 v=-0.016693: 105.31 19.97 -35.01 -37.88 13.88 18.42 [rand]\n", " o=34 v=-0.016675: 102.99 15.02 30.65 10.10 -16.32 -39.31 [rand]\n", " o=35 v=-0.016669: 105.31 19.97 -35.01 -37.88 13.88 -18.42 [rand]\n", " o=36 v=-0.016632: 120.99 -17.22 -35.72 10.62 7.10 -10.42 [rand]\n", " o=37 v=-0.016450: 99.53 -27.69 29.08 6.84 -32.76 -20.90 [rand]\n", " o=38 v=-0.016261: 79.52 -30.11 24.96 -30.00 -7.50 -30.00 [grid]\n", " o=39 v=-0.016134: 99.35 34.44 35.49 14.03 -8.39 -25.20 [rand]\n", " o=40 v=-0.016094: 79.78 30.50 -38.28 -19.28 27.13 15.13 [rand]\n", " o=41 v=-0.015858: 95.39 -15.21 -23.44 -6.82 34.51 24.39 [rand]\n", " o=42 v=-0.015801: 120.99 -17.22 -35.72 10.62 -7.10 10.42 [rand]\n", " o=43 v=-0.015734: 70.55 5.32 -35.54 23.16 17.17 -3.59 [rand]\n", " o=44 v=-0.015723: 67.07 19.97 -35.01 37.88 13.88 -18.42 [rand]\n", " o=45 v=-0.015700: 92.86 23.23 24.96 30.00 -7.50 -30.00 [grid]\n", " o=46 v=-0.015623: 113.12 -31.58 -39.65 15.05 4.71 -12.78 [rand]\n", " o=47 v=-0.015567: 92.86 -10.11 -28.38 -7.50 7.50 30.00 [grid]\n", " o=48 v=-0.015330: 88.48 -10.62 -33.40 -10.97 18.37 -5.04 [rand]\n", " o=49 v=-0.015192: 92.03 -32.53 20.97 30.43 -41.57 -36.66 [rand]\n", " o=50 v=-0.015111: 103.24 -26.13 22.54 -12.15 -12.44 -39.75 [rand]\n", " o=51 v=-0.015075: 122.78 -30.74 29.53 -25.97 -37.53 -40.21 [rand]\n", " o=52 v=-0.014925: 92.86 -10.11 -28.38 -7.50 30.00 30.00 [grid]\n", " o=53 v=-0.014904: 121.80 0.97 -38.58 -37.76 24.22 -3.86 [rand]\n", " o=54 v=-0.014835: 102.99 -21.90 30.65 -10.10 -16.32 -39.31 [rand]\n", " o=55 v=-0.014711: 102.99 15.02 -34.07 -10.10 -16.32 39.31 [rand]\n", " o=56 v=-0.014651: 119.22 -8.46 -38.52 -11.98 -4.28 -19.20 [rand]\n", " o=57 v=-0.014527: 99.35 -41.33 -38.90 14.03 8.39 -25.20 [rand]\n", " o=58 v=-0.014469: 70.55 -12.20 -35.54 23.16 17.17 3.59 [rand]\n", " o=59 v=-0.014214: 121.80 -7.85 35.16 37.76 -24.22 3.86 [rand]\n", " o=60 v=-0.014171: 70.55 -12.20 -35.54 23.16 17.17 -3.59 [rand]\n", " o=61 v=-0.014132: 94.85 -27.60 34.86 27.41 -42.10 -24.35 [rand]\n", " o=62 v=-0.014108: 92.86 -10.11 -28.38 30.00 7.50 7.50 [grid]\n", " o=63 v=-0.013985: 92.61 -37.38 -38.28 19.28 27.13 -15.13 [rand]\n", " o=64 v=-0.013771: 56.91 -19.20 28.15 13.45 -19.96 14.96 [rand]\n", " o=65 v=-0.013738: 104.93 -39.84 -34.76 24.90 4.74 -17.23 [rand]\n", " o=66 v=-0.013600: 92.86 3.23 -28.38 -7.50 30.00 30.00 [grid]\n", " o=67 v=-0.013545: 102.99 15.02 -34.07 10.10 -16.32 39.31 [rand]\n", " o=68 v=-0.013506: 97.68 12.87 -35.46 -19.17 13.96 -2.56 [rand]\n", " o=69 v=-0.013420: 92.86 3.23 24.96 30.00 -30.00 -30.00 [grid]\n", " o=70 v=-0.013384: 83.90 -10.62 -33.40 -10.97 18.37 -5.04 [rand]\n", " o=71 v=-0.013341: 115.81 -38.05 -38.52 24.31 -11.89 -2.84 [rand]\n", " o=72 v=-0.013295: 59.26 -31.58 36.24 15.05 -4.71 12.78 [rand]\n", " o=73 v=-0.013221: 79.78 30.50 -38.28 19.28 27.13 15.13 [rand]\n", " o=74 v=-0.013191: 59.35 9.66 -34.29 39.07 28.37 -8.01 [rand]\n", " o=75 v=-0.013149: 118.40 -32.49 34.43 -40.41 -19.09 -40.75 [rand]\n", " o=76 v=-0.013072: 70.55 5.32 -35.54 23.16 17.17 3.59 [rand]\n", " o=77 v=-0.013043: 65.94 23.84 -36.19 37.90 5.03 3.08 [rand]\n", " o=78 v=-0.012929: 92.86 -10.11 -28.38 7.50 7.50 7.50 [grid]\n", " o=79 v=-0.012857: 60.67 -34.78 32.57 42.46 -41.07 35.63 [rand]\n", " o=80 v=-0.012789: 99.35 -41.33 35.49 14.03 -8.39 -25.20 [rand]\n", " o=81 v=-0.012665: 97.68 12.87 -35.46 -19.17 13.96 2.56 [rand]\n", " o=82 v=-0.012652: 112.86 -30.11 -28.38 30.00 7.50 7.50 [grid]\n", " o=83 v=-0.012596: 104.93 -39.84 31.34 -24.90 -4.74 -17.23 [rand]\n", " o=84 v=-0.012570: 83.90 -10.62 -33.40 10.97 18.37 -5.04 [rand]\n", " o=85 v=-0.012553: 92.86 -10.11 -28.38 -7.50 30.00 7.50 [grid]\n", " o=86 v=-0.012529: 92.86 -10.11 24.96 -7.50 -7.50 -30.00 [grid]\n", " o=87 v=-0.012519: 80.37 10.75 27.93 38.21 -15.41 -13.51 [rand]\n", " + - A little optimization:*[#16335=-0.0833147] *[#16338=-0.0996876] *[#16339=-0.122258] *[#16342=-0.125257] *[#16344=-0.126031] *[#16346=-0.127847] *[#16349=-0.129014] *[#16352=-0.129155] *[#16355=-0.129328] *[#16356=-0.129367] *[#16360=-0.12939] *[#16362=-0.129425] *[#16363=-0.129437] *[#16366=-0.129478] ........................................................................................\n", " + - costs of the above after a little optimization:\n", " *o= 0 v=-0.129478: 86.56 -2.92 0.24 -1.17 0.39 0.22 [grid] [f=50]\n", " o= 1 v=-0.025208: 91.85 3.62 28.37 -37.98 22.65 -41.84 [rand] [f=41]\n", " o= 2 v=-0.037638: 97.07 -22.70 36.86 -10.25 -41.88 -25.72 [rand] [f=62]\n", " o= 3 v=-0.026228: 94.01 -30.11 26.00 6.89 -35.26 -29.95 [grid] [f=67]\n", " o= 4 v=-0.025109: 122.87 -3.88 -38.32 -37.64 24.31 3.06 [rand] [f=61]\n", " o= 5 v=-0.023467: 97.59 -19.20 -35.11 -18.55 14.45 2.78 [rand] [f=47]\n", " o= 6 v=-0.032558: 124.34 -28.56 20.34 5.63 -41.94 -44.51 [rand] [f=52]\n", " o= 7 v=-0.024558: 103.87 -12.91 -36.21 -26.12 14.64 -5.56 [rand] [f=68]\n", " o= 8 v=-0.026595: 92.49 0.17 27.38 -37.57 16.88 -34.60 [rand] [f=47]\n", " o= 9 v=-0.025748: 122.87 -7.62 -36.96 -38.73 25.59 5.74 [rand] [f=37]\n", " o=10 v=-0.023050: 97.81 -19.65 -34.79 -19.15 13.89 2.05 [rand] [f=36]\n", " o=11 v=-0.034817: 125.56 3.51 37.77 32.42 -27.27 -8.86 [rand] [f=47]\n", " o=12 v=-0.026636: 90.62 19.43 30.46 30.75 -11.47 -27.04 [rand] [f=54]\n", " o=13 v=-0.029615: 95.65 -16.42 33.99 15.06 -38.94 -27.36 [rand] [f=44]\n", " o=14 v=-0.025724: 121.05 -17.94 -34.73 10.44 -8.00 -4.28 [rand] [f=40]\n", " o=15 v=-0.027042: 119.10 0.10 -39.89 -13.81 11.33 -14.01 [rand] [f=42]\n", " o=16 v=-0.029803: 88.38 -15.30 -33.36 -10.38 12.73 4.37 [rand] [f=58]\n", " o=17 v=-0.025471: 120.77 -7.35 -37.30 -34.55 25.97 6.34 [rand] [f=51]\n", " o=18 v=-0.021813: 96.06 -31.35 20.30 -37.16 -7.69 -44.56 [rand] [f=37]\n", " o=19 v=-0.039610: 120.38 31.62 37.96 31.21 -11.89 -1.49 [rand] [f=60]\n", " o=20 v=-0.030208: 99.98 -30.12 26.92 -4.50 -28.25 -34.17 [grid] [f=62]\n", " o=21 v=-0.033973: 115.95 30.51 37.09 27.08 -7.23 4.45 [rand] [f=45]\n", " o=22 v=-0.024448: 68.66 12.44 -38.44 19.11 14.37 2.63 [rand] [f=52]\n", " o=23 v=-0.030816: 88.36 -12.05 -34.28 -12.31 11.56 5.36 [rand] [f=57]\n", " o=24 v=-0.026831: 119.70 -7.09 -37.52 -10.99 4.50 -13.47 [rand] [f=43]\n", " o=25 v=-0.021834: 110.54 4.11 -28.89 -31.19 6.72 7.75 [grid] [f=46]\n", " o=26 v=-0.029659: 112.69 -13.96 -35.31 -28.09 23.99 4.39 [rand] [f=64]\n", " o=27 v=-0.036380: 124.25 -11.62 38.17 33.28 -31.14 -4.50 [rand] [f=57]\n", " o=28 v=-0.026330: 92.18 1.00 27.77 -39.33 18.23 -32.61 [rand] [f=51]\n", " o=29 v=-0.022613: 102.63 -11.90 -37.10 -25.08 13.86 -0.27 [rand] [f=35]\n", " o=30 v=-0.023502: 119.40 -16.34 -38.41 -9.52 -2.70 -13.24 [rand] [f=49]\n", " o=31 v=-0.024601: 69.46 14.02 -37.34 19.44 12.69 -2.24 [rand] [f=44]\n", " o=32 v=-0.025824: 119.43 -8.11 -37.98 -7.01 10.78 -13.52 [rand] [f=83]\n", " o=33 v=-0.028485: 111.32 17.78 -33.51 -44.98 10.27 21.60 [rand] [f=50]\n", " o=34 v=-0.021606: 103.05 11.34 30.91 10.44 -16.63 -39.34 [rand] [f=54]\n", " o=35 v=-0.025812: 105.92 18.80 -34.03 -38.48 13.27 -12.88 [rand] [f=49]\n", " o=36 v=-0.023639: 120.56 -21.02 -38.02 5.46 4.63 -15.69 [rand] [f=51]\n", " o=37 v=-0.022421: 96.59 -28.00 29.09 6.71 -31.63 -25.55 [rand] [f=39]\n", " o=38 v=-0.020190: 79.59 -26.31 24.88 -29.92 -8.68 -28.78 [grid] [f=49]\n", " o=39 v=-0.021749: 96.94 33.57 35.86 11.35 -6.94 -19.87 [rand] [f=66]\n", " o=40 v=-0.019895: 82.95 28.96 -37.93 -17.75 28.76 13.02 [rand] [f=37]\n", " o=41 v=-0.021356: 91.66 -14.96 -22.76 -7.10 34.58 24.82 [rand] [f=46]\n", " o=42 v=-0.027107: 124.49 -20.18 -32.05 10.69 -7.44 9.91 [rand] [f=45]\n", " o=43 v=-0.026319: 68.91 11.17 -38.05 20.29 19.40 -6.43 [rand] [f=56]\n", " o=44 v=-0.024913: 67.84 15.42 -35.49 37.39 14.37 -18.96 [rand] [f=37]\n", " o=45 v=-0.023354: 93.76 23.30 27.77 29.47 -7.75 -31.27 [grid] [f=40]\n", " o=46 v=-0.019407: 109.48 -31.82 -39.14 15.51 4.62 -13.43 [rand] [f=46]\n", " o=47 v=-0.022879: 92.79 -14.50 -30.57 -6.67 8.67 35.86 [grid] [f=59]\n", " o=48 v=-0.028698: 88.61 -13.59 -36.48 -10.26 12.62 0.84 [rand] [f=53]\n", " o=49 v=-0.019705: 92.37 -28.32 21.44 30.84 -39.72 -37.84 [rand] [f=65]\n", " o=50 v=-0.022741: 99.40 -24.95 21.80 -13.00 -13.24 -40.83 [rand] [f=46]\n", " o=51 v=-0.025023: 125.97 -26.96 37.93 -27.17 -36.78 -38.74 [rand] [f=57]\n", " o=52 v=-0.018040: 92.91 -9.23 -27.61 -8.65 30.90 29.96 [grid] [f=65]\n", " o=53 v=-0.026083: 119.13 -8.06 -39.09 -31.95 24.41 -0.92 [rand] [f=47]\n", " o=54 v=-0.021481: 97.21 -15.76 28.19 -9.68 -14.20 -39.20 [rand] [f=52]\n", " o=55 v=-0.029622: 102.22 23.54 -40.40 -8.51 -15.66 40.94 [rand] [f=57]\n", " o=56 v=-0.024318: 119.26 -12.01 -40.99 -6.33 -3.92 -15.68 [rand] [f=67]\n", " o=57 v=-0.016309: 99.90 -40.50 -41.08 13.83 7.03 -28.14 [rand] [f=41]\n", " o=58 v=-0.020067: 70.82 -7.68 -36.96 23.60 18.14 3.28 [rand] [f=53]\n", " o=59 v=-0.029083: 122.02 -8.54 38.29 35.74 -24.75 2.19 [rand] [f=40]\n", " o=60 v=-0.018760: 69.81 -16.27 -37.23 22.97 16.08 -3.59 [rand] [f=33]\n", " o=61 v=-0.027637: 95.70 -14.89 33.59 24.68 -37.62 -25.78 [rand] [f=55]\n", " o=62 v=-0.021869: 90.87 -7.14 -30.34 27.19 5.03 7.77 [grid] [f=44]\n", " o=63 v=-0.016562: 93.04 -33.28 -38.26 19.24 27.71 -15.44 [rand] [f=35]\n", " o=64 v=-0.017593: 53.52 -19.20 30.34 13.28 -18.83 16.03 [rand] [f=60]\n", " o=65 v=-0.020603: 105.13 -39.25 -35.37 22.69 13.32 -21.57 [rand] [f=50]\n", " o=66 v=-0.022279: 93.18 9.76 -30.87 -8.28 32.53 27.85 [grid] [f=76]\n", " o=67 v=-0.023893: 102.80 20.21 -36.92 8.62 -14.85 40.53 [rand] [f=50]\n", " o=68 v=-0.030230: 94.78 11.44 -41.70 -27.01 18.02 -15.08 [rand] [f=53]\n", " o=69 v=-0.025604: 92.34 2.49 30.25 29.16 -28.24 -27.67 [grid] [f=63]\n", " o=70 v=-0.028099: 84.44 -14.51 -37.03 -5.85 10.74 5.83 [rand] [f=62]\n", " o=71 v=-0.024499: 117.76 -30.97 -33.13 30.69 -12.85 -3.72 [rand] [f=61]\n", " o=72 v=-0.017104: 59.48 -35.24 36.02 15.19 -4.00 12.18 [rand] [f=44]\n", " o=73 v=-0.020121: 78.49 34.05 -38.37 19.48 26.09 14.47 [rand] [f=43]\n", " o=74 v=-0.027725: 66.37 14.95 -34.10 33.91 20.53 -10.37 [rand] [f=70]\n", " o=75 v=-0.021457: 118.15 -34.24 32.27 -35.98 -26.19 -42.12 [rand] [f=53]\n", " o=76 v=-0.033583: 84.74 5.08 -40.21 22.43 10.74 3.93 [rand] [f=82]\n", " o=77 v=-0.022471: 66.16 19.67 -38.88 38.58 4.87 -0.04 [rand] [f=62]\n", " o=78 v=-0.022165: 93.72 -7.71 -26.28 17.15 7.89 8.13 [grid] [f=39]\n", " o=79 v=-0.019392: 56.80 -35.73 32.75 42.93 -41.01 35.05 [rand] [f=40]\n", " o=80 v=-0.024286: 99.09 -41.34 36.23 14.84 -11.57 -20.31 [rand] [f=40]\n", " o=81 v=-0.027989: 100.32 13.71 -36.07 -26.64 6.16 -4.67 [rand] [f=61]\n", " o=82 v=-0.018578: 114.04 -25.07 -27.78 31.22 5.83 3.98 [grid] [f=41]\n", " o=83 v=-0.020005: 108.98 -40.26 31.30 -22.78 -4.31 -16.42 [rand] [f=52]\n", " o=84 v=-0.022922: 85.64 -10.65 -38.37 5.12 14.67 -7.14 [rand] [f=60]\n", " o=85 v=-0.022479: 89.13 -11.37 -28.03 -5.87 37.76 7.84 [grid] [f=59]\n", " o=86 v=-0.019822: 93.58 -9.73 28.66 -9.65 -11.27 -31.86 [grid] [f=57]\n", " o=87 v=-0.031659: 80.56 10.85 31.85 39.61 -23.66 -12.54 [rand] [f=68]\n", " + - saving # 0 for use with twobest\n", " + - saving #19 for use with twobest\n", " + - saving # 2 for use with twobest\n", " + - saving #27 for use with twobest\n", " + - saving #11 for use with twobest\n", " + - saving #21 for use with twobest\n", " + - saving #76 for use with twobest\n", " + - saving # 6 for use with twobest\n", " + - saving #87 for use with twobest\n", " + - saving #23 for use with twobest\n", " + - saving #68 for use with twobest\n", " + - saving #20 for use with twobest\n", " + - skip #16 for twobest: too close to set #23\n", " + - saving #26 for use with twobest\n", " + - saving #55 for use with twobest\n", " + - saving #13 for use with twobest\n", " + - saving #59 for use with twobest\n", " + - skip #48 for twobest: too close to set #16\n", " + - saving #33 for use with twobest\n", " + - saving #70 for use with twobest\n", " + - saving #81 for use with twobest\n", " + - saving #74 for use with twobest\n", " + - saving #61 for use with twobest\n", " + - saving #42 for use with twobest\n", " + - saving #15 for use with twobest\n", " + - saving #24 for use with twobest\n", " + - saving #12 for use with twobest\n", " + - saving # 8 for use with twobest\n", " + - skip #28 for twobest: too close to set # 8\n", " + - saving #43 for use with twobest\n", " + - saving # 3 for use with twobest\n", " + - saving #53 for use with twobest\n", " + - Coarse startup search net CPU time = 0.0 s\n", "++ Start refinement #1 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=3.11\n", " + - Smoothing source; radius=3.11\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 31909 total points stored in 63 'TOHD(17.3748)' bloks (0 duplicates)\n", "*[#20978=-0.169331] *[#20986=-0.170313] *[#21000=-0.170526] *[#21001=-0.172023] *[#21005=-0.172274] *[#21008=-0.173681] *[#21009=-0.1739] *[#21013=-0.174339] *[#21016=-0.175108] *[#21017=-0.176175] *[#21018=-0.176452] *[#21019=-0.176809] *[#21021=-0.177261] *[#21024=-0.17761] *[#21026=-0.178186] *[#21027=-0.178833] *[#21028=-0.179343] *[#21031=-0.179472] *[#21040=-0.180395] *[#21043=-0.180428] *[#21045=-0.180429] *[#21047=-0.180514] *[#21048=-0.180599] *[#21049=-0.180672] *[#21051=-0.180752] *[#21052=-0.180786] *[#21053=-0.180808] *[#21054=-0.18082] *[#21055=-0.180832] *[#21056=-0.180858] *[#21057=-0.180864] *[#21059=-0.180909] *[#21060=-0.180915] *[#21061=-0.180934] *[#21062=-0.181065] *[#21063=-0.181087] *[#21064=-0.181114] *[#21065=-0.181253] *[#21068=-0.181324] *[#21069=-0.181432] *[#21070=-0.18147] *[#21073=-0.181504] *[#21074=-0.18155] *[#21075=-0.181565] \n", " + - param set #1 has cost=-0.181565 [o=0 t=0]\n", " + -- Parameters = 86.2417 -3.0340 0.1839 -0.7927 0.0198 0.1572 0.9849 1.0186 0.9937 -0.0067 -0.0009 -0.0030\n", " + - param set #2 has cost=-0.029599 [o=19 t=1]\n", " + -- Parameters = 120.3747 31.4269 37.8606 31.0260 -11.8449 -1.1094 1.0067 0.9979 0.9877 -0.0009 0.0021 -0.0001\n", " + - param set #3 has cost=-0.032947 [o=2 t=2]\n", " + -- Parameters = 97.1422 -22.9068 36.7125 -10.4271 -42.0244 -25.8414 0.9953 0.9994 0.9958 -0.0016 0.0013 -0.0002\n", " + - param set #4 has cost=-0.025913 [o=27 t=3]\n", " + -- Parameters = 124.2213 -11.7386 37.9231 33.3757 -31.0928 -4.5253 1.0015 1.0012 0.9970 0.0002 0.0015 0.0004\n", " + - param set #5 has cost=-0.028112 [o=11 t=4]\n", " + -- Parameters = 122.3987 3.2658 37.8554 32.0364 -27.2812 -8.8197 0.9993 1.0000 0.9989 -0.0002 -0.0001 -0.0002\n", " + - param set #6 has cost=-0.027098 [o=21 t=5]\n", " + -- Parameters = 115.6655 30.6513 37.9152 27.7891 -10.1989 1.4674 0.9984 0.9912 0.9884 0.0004 -0.0012 0.0008\n", " + - param set #7 has cost=-0.025330 [o=76 t=6]\n", " + -- Parameters = 84.5296 4.8670 -40.1157 22.4018 10.4986 3.9660 1.0038 0.9999 1.0018 -0.0005 -0.0003 0.0016\n", " + - param set #8 has cost=-0.027671 [o=6 t=7]\n", " + -- Parameters = 124.4184 -28.3909 20.3705 5.2792 -41.8702 -44.1177 1.0047 0.9790 1.0062 -0.0035 -0.0002 -0.0054\n", " + - param set #9 has cost=-0.026880 [o=87 t=8]\n", " + -- Parameters = 80.6211 10.7956 31.8627 39.3826 -23.6462 -12.7049 0.9977 1.0051 0.9899 -0.0002 0.0006 -0.0006\n", " + - param set #10 has cost=-0.025438 [o=23 t=9]\n", " + -- Parameters = 88.5119 -12.3057 -34.5255 -12.2625 11.3388 4.8335 1.0036 0.9951 0.9911 0.0147 -0.0003 -0.0010\n", " + - param set #11 has cost=-0.025056 [o=68 t=10]\n", " + -- Parameters = 95.0321 11.2848 -41.6982 -27.1384 18.0539 -14.7625 0.9967 0.9975 1.0046 0.0010 -0.0017 -0.0002\n", " + - param set #12 has cost=-0.026301 [o=20 t=11]\n", " + -- Parameters = 99.7295 -29.7606 26.8107 -4.8322 -28.5727 -34.7626 1.0025 0.9939 1.0000 0.0001 -0.0010 0.0011\n", " + - param set #13 has cost=-0.024785 [o=26 t=12]\n", " + -- Parameters = 112.7484 -13.9672 -35.1899 -28.0512 24.1536 4.0959 0.9974 1.0021 1.0031 -0.0009 0.0004 -0.0004\n", " + - param set #14 has cost=-0.023818 [o=55 t=13]\n", " + -- Parameters = 102.3059 23.5118 -40.3609 -8.3749 -15.9182 41.1731 0.9987 1.0004 1.0059 0.0001 -0.0012 -0.0005\n", " + - param set #15 has cost=-0.025346 [o=13 t=14]\n", " + -- Parameters = 95.5049 -16.5664 34.3042 14.7561 -38.9196 -27.3528 1.0042 1.0061 0.9993 0.0005 -0.0002 -0.0014\n", " + - param set #16 has cost=-0.028890 [o=59 t=15]\n", " + -- Parameters = 121.0495 -8.3479 38.2577 35.4740 -28.4600 -2.1114 0.9475 0.9673 0.9742 0.0001 -0.0099 0.0125\n", " + - param set #17 has cost=-0.022857 [o=33 t=16]\n", " + -- Parameters = 111.2125 17.7604 -33.8452 -44.8026 10.9680 21.5318 0.9972 1.0001 1.0062 -0.0000 0.0110 -0.0001\n", " + - param set #18 has cost=-0.024121 [o=70 t=17]\n", " + -- Parameters = 84.6139 -14.8654 -35.5807 -6.2385 9.4374 4.5597 0.9971 1.0019 0.9957 -0.0008 0.0001 -0.0020\n", " + - param set #19 has cost=-0.026862 [o=81 t=18]\n", " + -- Parameters = 100.4019 15.0228 -35.6483 -31.5537 6.5158 -4.5506 0.9870 0.9952 0.9971 0.0007 0.0006 0.0008\n", " + - param set #20 has cost=-0.019718 [o=74 t=19]\n", " + -- Parameters = 66.3511 14.9204 -34.0041 33.9302 20.6377 -10.4785 0.9995 1.0003 0.9990 0.0002 -0.0001 -0.0002\n", " + - param set #21 has cost=-0.024596 [o=61 t=20]\n", " + -- Parameters = 94.9530 -15.7971 34.3648 21.1914 -38.2038 -26.5993 0.9967 1.0153 0.9925 0.0030 0.0004 -0.0029\n", " + - param set #22 has cost=-0.030211 [o=42 t=21]\n", " + -- Parameters = 125.4314 -20.5678 -30.0616 11.1232 -9.1532 7.8234 0.9842 0.9823 0.9478 -0.0144 -0.0209 0.0117\n", " + - param set #23 has cost=-0.022798 [o=15 t=22]\n", " + -- Parameters = 119.2795 0.0863 -39.9379 -13.8465 11.2937 -14.2121 0.9972 0.9982 1.0023 0.0015 -0.0005 -0.0005\n", " + - param set #24 has cost=-0.022617 [o=24 t=23]\n", " + -- Parameters = 119.5177 -7.0698 -37.4677 -10.8037 4.7487 -13.3916 1.0004 1.0044 0.9954 0.0003 -0.0039 -0.0012\n", " + - param set #25 has cost=-0.025054 [o=12 t=24]\n", " + -- Parameters = 90.2415 19.2854 31.2812 30.8214 -12.2280 -26.6292 0.9929 0.9856 0.9532 -0.0054 0.0058 -0.0182\n", " + - param set #26 has cost=-0.022589 [o=8 t=25]\n", " + -- Parameters = 92.2565 -0.3541 27.7222 -37.8739 16.7082 -34.1457 1.0015 0.9972 0.9965 0.0001 0.0001 -0.0009\n", " + - param set #27 has cost=-0.023658 [o=43 t=26]\n", " + -- Parameters = 67.8001 10.6026 -38.1869 20.2024 17.6918 -6.5006 0.9989 0.9962 0.9715 0.0005 -0.0034 0.0218\n", " + - param set #28 has cost=-0.023512 [o=3 t=27]\n", " + -- Parameters = 93.6271 -30.3348 25.2672 6.4093 -34.2989 -30.7456 1.0028 0.9979 1.0102 0.0018 0.0004 -0.0028\n", " + - param set #29 has cost=-0.022179 [o=53 t=28]\n", " + -- Parameters = 119.1053 -8.1075 -39.0073 -32.2735 24.1427 -0.5844 0.9994 1.0016 1.0011 -0.0012 0.0000 0.0001\n", "*[#23803=-0.181994] *[#23804=-0.182059] *[#23808=-0.182443] *[#23813=-0.182802] *[#23817=-0.182824] *[#23821=-0.183125] \n", " + - param set #30 has cost=-0.183125 [o=-1 t=-1]\n", " + -- Parameters = 86.2790 -2.9386 0.2322 -0.5467 -0.0139 0.1276 0.9790 1.0183 0.9889 0.0075 0.0058 -0.0075\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.0636 \n", " + --- dist(#3,#1) = 0.467 \n", " + --- dist(#4,#1) = 0.489 \n", " + --- dist(#5,#1) = 0.47 \n", " + --- dist(#6,#1) = 0.475 \n", " + --- dist(#7,#1) = 0.47 \n", " + --- dist(#8,#1) = 0.492 \n", " + --- dist(#9,#1) = 0.471 \n", " + --- dist(#10,#1) = 0.444 \n", " + --- dist(#11,#1) = 0.449 \n", " + --- dist(#12,#1) = 0.388 \n", " + --- dist(#13,#1) = 0.474 \n", " + --- dist(#14,#1) = 0.434 \n", " + --- dist(#15,#1) = 0.432 \n", " + --- dist(#16,#1) = 0.504 \n", " + --- dist(#17,#1) = 0.524 \n", " + --- dist(#18,#1) = 0.388 \n", " + --- dist(#19,#1) = 0.443 \n", " + --- dist(#20,#1) = 0.427 \n", " + --- dist(#21,#1) = 0.448 \n", " + --- dist(#22,#1) = 0.507 \n", " + --- dist(#23,#1) = 0.48 \n", " + --- dist(#24,#1) = 0.381 \n", " + --- dist(#25,#1) = 0.492 \n", " + --- dist(#26,#1) = 0.502 \n", " + --- dist(#27,#1) = 0.471 \n", " + --- dist(#28,#1) = 0.415 \n", " + --- dist(#29,#1) = 0.49 \n", " + --- dist(#30,#1) = 0.428 \n", "++ Start refinement #2 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=2.42\n", " + - Smoothing source; radius=2.42\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 31999 total points stored in 64 'TOHD(17.2644)' bloks (0 duplicates)\n", "*[#23823=-0.208583] *[#23853=-0.209083] *[#23856=-0.209692] *[#23857=-0.21004] *[#23858=-0.210473] *[#23859=-0.210652] *[#23861=-0.210912] *[#23862=-0.21108] *[#23863=-0.211096] *[#23864=-0.211318] *[#23865=-0.211465] *[#23868=-0.211558] *[#23871=-0.211598] *[#23874=-0.211605] *[#23876=-0.211804] *[#23880=-0.211892] *[#23883=-0.212487] *[#23884=-0.212638] *[#23887=-0.212807] *[#23889=-0.212858] *[#23890=-0.212946] *[#23891=-0.213045] *[#23892=-0.213054] *[#23893=-0.213085] *[#23896=-0.213618] *[#23897=-0.214048] *[#23898=-0.2143] *[#23899=-0.214697] *[#23902=-0.214782] *[#23904=-0.215131] *[#23907=-0.215508] *[#23908=-0.21602] *[#23909=-0.21655] *[#23910=-0.216938] *[#23911=-0.21729] *[#23912=-0.217316] *[#23913=-0.217499] *[#23914=-0.217762] *[#23915=-0.217858] *[#23920=-0.218401] *[#23921=-0.218462] *[#23922=-0.218657] *[#23925=-0.219463] *[#23926=-0.219544] *[#23927=-0.219959] *[#23928=-0.220151] *[#23931=-0.220227] \n", " + - param set #1 has cost=-0.220227 [o=-1 t=-1]\n", " + -- Parameters = 86.5690 -3.1646 -0.1381 -0.8542 -1.9133 -0.7763 0.9848 1.0171 0.9535 -0.0108 0.0209 -0.0382\n", " + - param set #2 has cost=-0.216445 [o=0 t=0]\n", " + -- Parameters = 86.4148 -3.1639 -0.1179 -0.8652 -0.7590 -0.0405 0.9867 1.0242 0.9680 -0.0151 0.0021 -0.0159\n", " + - param set #3 has cost=-0.027810 [o=2 t=2]\n", " + -- Parameters = 97.2032 -22.9052 36.6921 -10.4554 -42.1013 -25.7685 0.9914 0.9972 0.9931 -0.0021 0.0004 0.0019\n", " + - param set #4 has cost=-0.030534 [o=42 t=21]\n", " + -- Parameters = 124.9320 -22.0031 -26.3056 8.7231 -2.9528 10.9929 0.9078 0.9429 0.9127 -0.0312 -0.0436 -0.0116\n", " + - param set #5 has cost=-0.024661 [o=19 t=1]\n", " + -- Parameters = 120.2512 31.5807 37.8833 31.4755 -11.7813 -0.9877 1.0280 0.9922 0.9858 -0.0015 0.0013 0.0011\n", " + - param set #6 has cost=-0.022586 [o=59 t=15]\n", " + -- Parameters = 121.0138 -8.5765 38.2813 35.5698 -28.5095 -2.1222 0.9444 0.9668 0.9787 0.0009 -0.0099 0.0127\n", " + - param set #7 has cost=-0.024438 [o=11 t=4]\n", " + -- Parameters = 122.3828 3.2625 37.8905 32.0936 -27.2969 -8.9957 0.9996 1.0008 0.9996 -0.0003 -0.0004 0.0002\n", " + - param set #8 has cost=-0.022973 [o=6 t=7]\n", " + -- Parameters = 124.5990 -28.5221 20.3574 5.1992 -41.4910 -44.5459 1.0133 0.9665 0.9986 -0.0044 -0.0021 -0.0082\n", " + - param set #9 has cost=-0.023141 [o=21 t=5]\n", " + -- Parameters = 115.3082 31.2509 37.9653 28.2268 -10.2700 2.1299 0.9881 0.9725 1.0137 0.0031 -0.0002 -0.0013\n", " + - param set #10 has cost=-0.020712 [o=87 t=8]\n", " + -- Parameters = 80.6871 10.7820 31.8608 39.2432 -23.8256 -12.8107 0.9960 1.0010 0.9862 0.0001 -0.0012 -0.0004\n", " + - param set #11 has cost=-0.023867 [o=81 t=18]\n", " + -- Parameters = 100.9144 15.5630 -35.5687 -30.9887 7.2817 -4.8546 0.9920 1.0234 0.9953 -0.0013 0.0007 -0.0033\n", " + - param set #12 has cost=-0.022773 [o=20 t=11]\n", " + -- Parameters = 99.3746 -29.8610 26.9858 -5.3618 -28.5046 -34.3145 1.0066 0.9859 1.0136 -0.0014 0.0000 0.0010\n", " + - param set #13 has cost=-0.021875 [o=27 t=3]\n", " + -- Parameters = 124.5604 -15.0908 37.9811 33.1165 -31.3178 -4.2711 1.0069 1.0029 0.9948 0.0004 0.0007 0.0018\n", " + - param set #14 has cost=-0.018972 [o=23 t=9]\n", " + -- Parameters = 88.7944 -12.1116 -34.5232 -12.0411 11.5798 4.8169 1.0017 0.9955 0.9899 0.0150 0.0007 -0.0000\n", " + - param set #15 has cost=-0.022093 [o=13 t=14]\n", " + -- Parameters = 94.6722 -16.0639 34.9181 15.7936 -38.3548 -28.1825 0.9908 0.9977 0.9904 -0.0019 -0.0004 -0.0028\n", " + - param set #16 has cost=-0.019604 [o=76 t=6]\n", " + -- Parameters = 84.2874 4.5998 -40.1267 21.8844 10.7009 4.2715 1.0055 0.9996 1.0026 -0.0011 -0.0010 0.0040\n", " + - param set #17 has cost=-0.018545 [o=68 t=10]\n", " + -- Parameters = 94.9844 11.4663 -41.6971 -27.1688 18.1245 -14.7945 0.9941 1.0035 1.0045 0.0090 -0.0015 -0.0008\n", " + - param set #18 has cost=-0.022035 [o=12 t=24]\n", " + -- Parameters = 90.4553 19.1335 31.0461 30.9460 -12.3561 -27.0333 0.9931 0.9841 0.9491 -0.0063 0.0070 -0.0183\n", " + - param set #19 has cost=-0.017809 [o=26 t=12]\n", " + -- Parameters = 112.7930 -14.0675 -34.9825 -28.0190 24.1066 3.9824 0.9955 1.0005 1.0055 -0.0008 0.0082 -0.0007\n", " + - param set #20 has cost=-0.022233 [o=61 t=20]\n", " + -- Parameters = 94.9835 -15.7922 34.2528 21.3591 -38.3023 -26.6743 0.9942 1.0155 0.9949 0.0025 0.0007 -0.0032\n", " + - param set #21 has cost=-0.021028 [o=70 t=17]\n", " + -- Parameters = 86.4718 -14.4547 -34.6323 -6.2583 9.6649 3.7010 0.9942 0.9844 0.9884 0.0090 0.0005 -0.0028\n", " + - param set #22 has cost=-0.017872 [o=55 t=13]\n", " + -- Parameters = 102.4708 23.5267 -40.2705 -8.5359 -16.0124 41.0981 1.0009 0.9972 1.0084 -0.0001 -0.0017 -0.0010\n", " + - param set #23 has cost=-0.017721 [o=43 t=26]\n", " + -- Parameters = 67.4275 10.6734 -38.2748 20.0915 17.9131 -6.3259 0.9971 0.9935 0.9725 0.0008 0.0052 0.0220\n", " + - param set #24 has cost=-0.020349 [o=3 t=27]\n", " + -- Parameters = 92.5580 -30.5120 25.0446 5.9667 -33.9224 -32.3783 0.9901 0.9827 0.9962 0.0134 0.0054 -0.0044\n", " + - param set #25 has cost=-0.018272 [o=33 t=16]\n", " + -- Parameters = 110.7879 17.5217 -34.1652 -44.9186 11.3923 22.6426 0.9815 0.9941 0.9763 -0.0011 0.0224 -0.0024\n", " + - param set #26 has cost=-0.016165 [o=15 t=22]\n", " + -- Parameters = 119.3371 0.1366 -40.0015 -13.9032 11.2916 -14.2405 0.9960 0.9969 1.0033 0.0023 -0.0007 -0.0005\n", " + - param set #27 has cost=-0.017790 [o=24 t=23]\n", " + -- Parameters = 119.5484 -7.0770 -37.5706 -10.9167 4.8044 -13.1528 1.0001 1.0034 0.9886 -0.0026 0.0023 -0.0026\n", " + - param set #28 has cost=-0.021054 [o=8 t=25]\n", " + -- Parameters = 92.1249 -0.7941 28.1167 -37.9315 16.4735 -34.0354 0.9818 0.9814 0.9791 -0.0018 -0.0013 -0.0009\n", " + - param set #29 has cost=-0.015293 [o=53 t=28]\n", " + -- Parameters = 119.0922 -8.1040 -38.9836 -32.2314 24.1018 -0.5725 1.0000 1.0027 1.0031 -0.0012 0.0001 0.0002\n", " + - param set #30 has cost=-0.014662 [o=74 t=19]\n", " + -- Parameters = 66.4003 14.9545 -34.0002 33.9259 20.6687 -10.5010 0.9998 1.0006 0.9992 0.0001 -0.0000 0.0007\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.1 \n", " + --- dist(#3,#1) = 0.48 \n", " + --- dist(#4,#1) = 0.46 \n", " + --- dist(#5,#1) = 0.475 \n", " + --- dist(#6,#1) = 0.475 \n", " + --- dist(#7,#1) = 0.443 \n", " + --- dist(#8,#1) = 0.476 \n", " + --- dist(#9,#1) = 0.486 \n", " + --- dist(#10,#1) = 0.373 \n", " + --- dist(#11,#1) = 0.48 \n", " + --- dist(#12,#1) = 0.43 \n", " + --- dist(#13,#1) = 0.438 \n", " + --- dist(#14,#1) = 0.39 \n", " + --- dist(#15,#1) = 0.476 \n", " + --- dist(#16,#1) = 0.412 \n", " + --- dist(#17,#1) = 0.431 \n", " + --- dist(#18,#1) = 0.446 \n", " + --- dist(#19,#1) = 0.356 \n", " + --- dist(#20,#1) = 0.5 \n", " + --- dist(#21,#1) = 0.43 \n", " + --- dist(#22,#1) = 0.519 \n", " + --- dist(#23,#1) = 0.49 \n", " + --- dist(#24,#1) = 0.502 \n", " + --- dist(#25,#1) = 0.436 \n", " + --- dist(#26,#1) = 0.468 \n", " + --- dist(#27,#1) = 0.477 \n", " + --- dist(#28,#1) = 0.498 \n", " + --- dist(#29,#1) = 0.486 \n", " + --- dist(#30,#1) = 0.423 \n", "++ Start refinement #3 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=1.88\n", " + - Smoothing source; radius=1.88\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 32677 total points stored in 67 'TOHD(17.1973)' bloks (0 duplicates)\n", "*[#26935=-0.23117] *[#26944=-0.232084] *[#26959=-0.2323] *[#26962=-0.232318] *[#26964=-0.232417] *[#26965=-0.232543] *[#26966=-0.232579] *[#26967=-0.232897] *[#26968=-0.233239] *[#26970=-0.233374] *[#26971=-0.233673] *[#26972=-0.233862] *[#26973=-0.234107] *[#26976=-0.234183] *[#26979=-0.234351] *[#26982=-0.234738] *[#26989=-0.234754] *[#26991=-0.234778] *[#26993=-0.234835] *[#26994=-0.234875] *[#26995=-0.23489] *[#26998=-0.234922] *[#27003=-0.234952] *[#27008=-0.23499] *[#27022=-0.235079] *[#27024=-0.235114] *[#27025=-0.235125] *[#27026=-0.235141] *[#27029=-0.235189] *[#27030=-0.235209] *[#27033=-0.235232] *[#27034=-0.235249] *[#27037=-0.235325] *[#27038=-0.235358] *[#27039=-0.235442] *[#27044=-0.235475] *[#27045=-0.235495] *[#27046=-0.235521] *[#27047=-0.235525] *[#27049=-0.235599] *[#27050=-0.235614] *[#27052=-0.235647] *[#27054=-0.235672] \n", " + - param set #1 has cost=-0.235672 [o=-1 t=-1]\n", " + -- Parameters = 86.4793 -3.3380 0.0217 -0.7549 -2.1405 -0.4338 0.9891 1.0267 0.9753 -0.0112 0.0131 -0.0443\n", " + - param set #2 has cost=-0.234666 [o=0 t=0]\n", " + -- Parameters = 86.4372 -3.2322 -0.0269 -0.6424 -1.6709 -0.2772 0.9885 1.0248 0.9691 -0.0071 0.0076 -0.0358\n", " + - param set #3 has cost=-0.025822 [o=42 t=21]\n", " + -- Parameters = 124.8635 -21.9185 -26.3384 8.9122 -2.8957 11.2486 0.9066 0.9500 0.9146 -0.0262 -0.0428 -0.0111\n", " + - param set #4 has cost=-0.024015 [o=2 t=2]\n", " + -- Parameters = 96.9853 -22.6084 36.5331 -10.5646 -42.3502 -25.8919 0.9936 0.9938 0.9909 -0.0015 0.0015 0.0018\n", " + - param set #5 has cost=-0.020677 [o=19 t=1]\n", " + -- Parameters = 120.2836 31.7782 37.8573 31.4903 -11.7839 -1.0432 1.0280 0.9925 0.9857 -0.0018 0.0016 0.0008\n", " + - param set #6 has cost=-0.021109 [o=11 t=4]\n", " + -- Parameters = 122.3854 3.2395 37.8890 32.1032 -27.2846 -8.9726 0.9996 1.0025 0.9997 -0.0002 -0.0004 0.0002\n", " + - param set #7 has cost=-0.021742 [o=81 t=18]\n", " + -- Parameters = 100.8685 15.8940 -35.1960 -31.0087 7.4956 -4.8791 0.9890 1.0230 0.9984 -0.0014 0.0064 -0.0026\n", " + - param set #8 has cost=-0.019976 [o=21 t=5]\n", " + -- Parameters = 115.3360 31.3654 37.9305 28.3074 -10.2193 2.1137 0.9882 0.9720 1.0138 0.0030 0.0001 -0.0012\n", " + - param set #9 has cost=-0.019055 [o=6 t=7]\n", " + -- Parameters = 124.6007 -28.5691 20.2957 5.1816 -41.5171 -44.5870 1.0131 0.9665 0.9992 -0.0041 -0.0017 -0.0082\n", " + - param set #10 has cost=-0.019574 [o=20 t=11]\n", " + -- Parameters = 99.3866 -29.8615 26.9020 -5.3338 -28.4230 -34.3867 1.0113 0.9855 1.0194 -0.0030 -0.0004 0.0010\n", " + - param set #11 has cost=-0.019180 [o=59 t=15]\n", " + -- Parameters = 120.9740 -8.5507 38.2855 35.6054 -28.5926 -2.1032 0.9445 0.9658 0.9799 0.0065 -0.0097 0.0127\n", " + - param set #12 has cost=-0.018566 [o=61 t=20]\n", " + -- Parameters = 95.1214 -16.0331 34.2759 18.9140 -38.5791 -27.1663 0.9916 1.0140 0.9960 0.0012 0.0011 -0.0035\n", " + - param set #13 has cost=-0.018186 [o=13 t=14]\n", " + -- Parameters = 94.6948 -15.8655 35.0391 15.9754 -38.3484 -28.1206 0.9895 1.0072 0.9927 -0.0019 0.0009 -0.0027\n", " + - param set #14 has cost=-0.018618 [o=12 t=24]\n", " + -- Parameters = 90.7229 19.1250 31.4046 30.8607 -12.3845 -26.7735 0.9996 0.9886 0.9229 -0.0090 0.0068 -0.0166\n", " + - param set #15 has cost=-0.018967 [o=27 t=3]\n", " + -- Parameters = 124.5882 -14.9891 37.9295 33.0540 -31.2298 -4.2381 1.0065 1.0007 0.9931 -0.0009 0.0053 0.0016\n", " + - param set #16 has cost=-0.017468 [o=8 t=25]\n", " + -- Parameters = 92.1824 -0.8246 28.2401 -37.9242 16.3884 -33.9570 0.9830 0.9798 0.9728 -0.0014 -0.0014 -0.0006\n", " + - param set #17 has cost=-0.018075 [o=70 t=17]\n", " + -- Parameters = 86.9585 -14.1999 -34.6419 -5.8658 10.1152 3.4199 0.9923 0.9807 0.9588 0.0087 0.0037 -0.0025\n", " + - param set #18 has cost=-0.016481 [o=87 t=8]\n", " + -- Parameters = 80.8196 10.8792 31.9415 39.1021 -23.3509 -12.5253 0.9963 0.9912 0.9875 -0.0009 -0.0018 0.0008\n", " + - param set #19 has cost=-0.017711 [o=3 t=27]\n", " + -- Parameters = 92.2159 -30.5634 24.8590 5.7157 -33.5922 -32.8620 0.9876 0.9841 0.9895 0.0194 0.0052 -0.0038\n", " + - param set #20 has cost=-0.021740 [o=76 t=6]\n", " + -- Parameters = 83.8861 4.6151 -39.5617 21.7046 10.7784 4.3335 1.0048 1.0034 1.0216 -0.0014 -0.0017 0.0062\n", " + - param set #21 has cost=-0.015678 [o=23 t=9]\n", " + -- Parameters = 88.9620 -11.8477 -34.5045 -12.1120 11.6847 4.7198 0.9995 0.9920 0.9895 0.0145 0.0006 -0.0002\n", " + - param set #22 has cost=-0.016589 [o=68 t=10]\n", " + -- Parameters = 94.9995 11.4811 -41.7072 -27.1686 18.0982 -14.7609 0.9953 1.0045 1.0033 0.0090 -0.0015 -0.0005\n", " + - param set #23 has cost=-0.016828 [o=33 t=16]\n", " + -- Parameters = 110.5268 17.5289 -34.6249 -44.8163 11.5456 22.9792 0.9797 1.0014 0.9661 -0.0008 0.0213 0.0032\n", " + - param set #24 has cost=-0.016103 [o=55 t=13]\n", " + -- Parameters = 101.9900 23.5558 -40.5738 -5.7638 -15.8114 40.9105 1.0031 0.9992 1.0094 0.0007 -0.0004 -0.0003\n", " + - param set #25 has cost=-0.014262 [o=26 t=12]\n", " + -- Parameters = 112.7557 -14.0757 -34.9144 -28.0999 24.1661 4.0230 0.9951 1.0018 1.0066 0.0048 0.0082 -0.0003\n", " + - param set #26 has cost=-0.012861 [o=24 t=23]\n", " + -- Parameters = 119.4894 -7.0076 -37.7482 -11.0534 5.0314 -12.8294 0.9963 1.0036 0.9832 -0.0072 0.0027 -0.0031\n", " + - param set #27 has cost=-0.017379 [o=43 t=26]\n", " + -- Parameters = 66.9122 8.7775 -38.5261 20.0114 18.3468 -6.1556 0.9969 0.9943 0.9711 0.0009 0.0066 0.0213\n", " + - param set #28 has cost=-0.012238 [o=15 t=22]\n", " + -- Parameters = 119.3286 0.1633 -40.0271 -13.9141 11.3075 -14.2199 0.9960 0.9968 1.0031 0.0023 -0.0007 -0.0006\n", " + - param set #29 has cost=-0.013300 [o=53 t=28]\n", " + -- Parameters = 118.9961 -8.2432 -38.8829 -34.5285 24.2673 -0.6308 1.0005 1.0040 1.0051 -0.0013 0.0007 0.0002\n", " + - param set #30 has cost=-0.012264 [o=74 t=19]\n", " + -- Parameters = 66.4348 14.9373 -34.0290 33.9352 20.6722 -10.4953 0.9986 1.0022 0.9993 0.0001 0.0001 0.0009\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.0383 \n", " + --- dist(#3,#1) = 0.48 \n", " + --- dist(#4,#1) = 0.456 \n", " + --- dist(#5,#1) = 0.44 \n", " + --- dist(#6,#1) = 0.495 \n", " + --- dist(#7,#1) = 0.473 \n", " + --- dist(#8,#1) = 0.473 \n", " + --- dist(#9,#1) = 0.474 \n", " + --- dist(#10,#1) = 0.377 \n", " + --- dist(#11,#1) = 0.478 \n", " + --- dist(#12,#1) = 0.491 \n", " + --- dist(#13,#1) = 0.476 \n", " + --- dist(#14,#1) = 0.392 \n", " + --- dist(#15,#1) = 0.428 \n", " + --- dist(#16,#1) = 0.438 \n", " + --- dist(#17,#1) = 0.433 \n", " + --- dist(#18,#1) = 0.36 \n", " + --- dist(#19,#1) = 0.413 \n", " + --- dist(#20,#1) = 0.482 \n", " + --- dist(#21,#1) = 0.49 \n", " + --- dist(#22,#1) = 0.522 \n", " + --- dist(#23,#1) = 0.443 \n", " + --- dist(#24,#1) = 0.507 \n", " + --- dist(#25,#1) = 0.432 \n", " + --- dist(#26,#1) = 0.437 \n", " + --- dist(#27,#1) = 0.486 \n", " + --- dist(#28,#1) = 0.472 \n", " + --- dist(#29,#1) = 0.426 \n", " + --- dist(#30,#1) = 0.501 \n", " + - Total coarse refinement net CPU time = 0.0 s; 9153 funcs\n", "++ *** Fine pass begins ***\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=1.00\n", " + - Smoothing source; radius=1.00\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + * Exit alignment setup routine\n", "++ Picking best parameter set out of 31 cases\n", " + 32726 total points stored in 68 'TOHD(17.1233)' bloks (0 duplicates)\n", " + - cost(#1)=-0.229302 * [o=-1 t=-1]\n", " + -- Parameters = 86.4793 -3.3380 0.0217 -0.7549 -2.1405 -0.4338 0.9891 1.0267 0.9753 -0.0112 0.0131 -0.0443\n", " + - cost(#2)=-0.228654 [o=0 t=0]\n", " + -- Parameters = 86.4372 -3.2322 -0.0269 -0.6424 -1.6709 -0.2772 0.9885 1.0248 0.9691 -0.0071 0.0076 -0.0358\n", " + - cost(#3)=-0.020796 [o=42 t=21]\n", " + -- Parameters = 124.8635 -21.9185 -26.3384 8.9122 -2.8957 11.2486 0.9066 0.9500 0.9146 -0.0262 -0.0428 -0.0111\n", " + - cost(#4)=-0.021017 [o=2 t=2]\n", " + -- Parameters = 96.9853 -22.6084 36.5331 -10.5646 -42.3502 -25.8919 0.9936 0.9938 0.9909 -0.0015 0.0015 0.0018\n", " + - cost(#5)=-0.019426 [o=81 t=18]\n", " + -- Parameters = 100.8685 15.8940 -35.1960 -31.0087 7.4956 -4.8791 0.9890 1.0230 0.9984 -0.0014 0.0064 -0.0026\n", " + - cost(#6)=-0.019844 [o=76 t=6]\n", " + -- Parameters = 83.8861 4.6151 -39.5617 21.7046 10.7784 4.3335 1.0048 1.0034 1.0216 -0.0014 -0.0017 0.0062\n", " + - cost(#7)=-0.018617 [o=11 t=4]\n", " + -- Parameters = 122.3854 3.2395 37.8890 32.1032 -27.2846 -8.9726 0.9996 1.0025 0.9997 -0.0002 -0.0004 0.0002\n", " + - cost(#8)=-0.016587 [o=19 t=1]\n", " + -- Parameters = 120.2836 31.7782 37.8573 31.4903 -11.7839 -1.0432 1.0280 0.9925 0.9857 -0.0018 0.0016 0.0008\n", " + - cost(#9)=-0.017151 [o=21 t=5]\n", " + -- Parameters = 115.3360 31.3654 37.9305 28.3074 -10.2193 2.1137 0.9882 0.9720 1.0138 0.0030 0.0001 -0.0012\n", " + - cost(#10)=-0.018519 [o=20 t=11]\n", " + -- Parameters = 99.3866 -29.8615 26.9020 -5.3338 -28.4230 -34.3867 1.0113 0.9855 1.0194 -0.0030 -0.0004 0.0010\n", " + - cost(#11)=-0.016436 [o=59 t=15]\n", " + -- Parameters = 120.9740 -8.5507 38.2855 35.6054 -28.5926 -2.1032 0.9445 0.9658 0.9799 0.0065 -0.0097 0.0127\n", " + - cost(#12)=-0.016901 [o=6 t=7]\n", " + -- Parameters = 124.6007 -28.5691 20.2957 5.1816 -41.5171 -44.5870 1.0131 0.9665 0.9992 -0.0041 -0.0017 -0.0082\n", " + - cost(#13)=-0.016877 [o=27 t=3]\n", " + -- Parameters = 124.5882 -14.9891 37.9295 33.0540 -31.2298 -4.2381 1.0065 1.0007 0.9931 -0.0009 0.0053 0.0016\n", " + - cost(#14)=-0.016763 [o=12 t=24]\n", " + -- Parameters = 90.7229 19.1250 31.4046 30.8607 -12.3845 -26.7735 0.9996 0.9886 0.9229 -0.0090 0.0068 -0.0166\n", " + - cost(#15)=-0.016364 [o=61 t=20]\n", " + -- Parameters = 95.1214 -16.0331 34.2759 18.9140 -38.5791 -27.1663 0.9916 1.0140 0.9960 0.0012 0.0011 -0.0035\n", " + - cost(#16)=-0.015450 [o=13 t=14]\n", " + -- Parameters = 94.6948 -15.8655 35.0391 15.9754 -38.3484 -28.1206 0.9895 1.0072 0.9927 -0.0019 0.0009 -0.0027\n", " + - cost(#17)=-0.016063 [o=70 t=17]\n", " + -- Parameters = 86.9585 -14.1999 -34.6419 -5.8658 10.1152 3.4199 0.9923 0.9807 0.9588 0.0087 0.0037 -0.0025\n", " + - cost(#18)=-0.015527 [o=3 t=27]\n", " + -- Parameters = 92.2159 -30.5634 24.8590 5.7157 -33.5922 -32.8620 0.9876 0.9841 0.9895 0.0194 0.0052 -0.0038\n", " + - cost(#19)=-0.015525 [o=8 t=25]\n", " + -- Parameters = 92.1824 -0.8246 28.2401 -37.9242 16.3884 -33.9570 0.9830 0.9798 0.9728 -0.0014 -0.0014 -0.0006\n", " + - cost(#20)=-0.016496 [o=43 t=26]\n", " + -- Parameters = 66.9122 8.7775 -38.5261 20.0114 18.3468 -6.1556 0.9969 0.9943 0.9711 0.0009 0.0066 0.0213\n", " + - cost(#21)=-0.014669 [o=33 t=16]\n", " + -- Parameters = 110.5268 17.5289 -34.6249 -44.8163 11.5456 22.9792 0.9797 1.0014 0.9661 -0.0008 0.0213 0.0032\n", " + - cost(#22)=-0.015020 [o=68 t=10]\n", " + -- Parameters = 94.9995 11.4811 -41.7072 -27.1686 18.0982 -14.7609 0.9953 1.0045 1.0033 0.0090 -0.0015 -0.0005\n", " + - cost(#23)=-0.014942 [o=87 t=8]\n", " + -- Parameters = 80.8196 10.8792 31.9415 39.1021 -23.3509 -12.5253 0.9963 0.9912 0.9875 -0.0009 -0.0018 0.0008\n", " + - cost(#24)=-0.014574 [o=55 t=13]\n", " + -- Parameters = 101.9900 23.5558 -40.5738 -5.7638 -15.8114 40.9105 1.0031 0.9992 1.0094 0.0007 -0.0004 -0.0003\n", " + - cost(#25)=-0.014193 [o=23 t=9]\n", " + -- Parameters = 88.9620 -11.8477 -34.5045 -12.1120 11.6847 4.7198 0.9995 0.9920 0.9895 0.0145 0.0006 -0.0002\n", " + - cost(#26)=-0.012148 [o=26 t=12]\n", " + -- Parameters = 112.7557 -14.0757 -34.9144 -28.0999 24.1661 4.0230 0.9951 1.0018 1.0066 0.0048 0.0082 -0.0003\n", " + - cost(#27)=-0.012000 [o=53 t=28]\n", " + -- Parameters = 118.9961 -8.2432 -38.8829 -34.5285 24.2673 -0.6308 1.0005 1.0040 1.0051 -0.0013 0.0007 0.0002\n", " + - cost(#28)=-0.011452 [o=24 t=23]\n", " + -- Parameters = 119.4894 -7.0076 -37.7482 -11.0534 5.0314 -12.8294 0.9963 1.0036 0.9832 -0.0072 0.0027 -0.0031\n", " + - cost(#29)=-0.011364 [o=74 t=19]\n", " + -- Parameters = 66.4348 14.9373 -34.0290 33.9352 20.6722 -10.4953 0.9986 1.0022 0.9993 0.0001 0.0001 0.0009\n", " + - cost(#30)=-0.010783 [o=15 t=22]\n", " + -- Parameters = 119.3286 0.1633 -40.0271 -13.9141 11.3075 -14.2199 0.9960 0.9968 1.0031 0.0023 -0.0007 -0.0006\n", " + - cost(#31)=-0.129342 [o=-2 t=-2]\n", " + -- Parameters = 86.1901 -3.4407 -1.7088 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000\n", " + -num_rtb 99 ==> refine all 31 cases\n", " + - cost(#1)=-0.229705 * [o=-1 t=-1]\n", " + -- Parameters = 86.4786 -3.3794 0.0456 -0.7344 -2.0985 -0.4671 0.9912 1.0266 0.9763 -0.0110 0.0121 -0.0449\n", " + - cost(#2)=-0.229554 [o=0 t=0]\n", " + -- Parameters = 86.4108 -3.3549 0.0075 -0.6847 -1.9108 -0.2988 0.9897 1.0254 0.9729 -0.0093 0.0067 -0.0411\n", " + - cost(#3)=-0.020800 [o=42 t=21]\n", " + -- Parameters = 124.8687 -21.9275 -26.3385 8.9060 -2.8977 11.2572 0.9066 0.9499 0.9145 -0.0261 -0.0428 -0.0111\n", " + - cost(#4)=-0.021932 [o=2 t=2]\n", " + -- Parameters = 96.7132 -21.8547 37.0594 -11.0616 -41.9192 -26.4843 0.9931 0.9931 0.9950 -0.0013 0.0013 0.0069\n", " + - cost(#5)=-0.019536 [o=81 t=18]\n", " + -- Parameters = 100.8433 15.8919 -35.1646 -30.9880 7.4855 -4.8544 0.9870 1.0216 0.9993 -0.0015 0.0070 -0.0025\n", " + - cost(#6)=-0.021827 [o=76 t=6]\n", " + -- Parameters = 82.3364 4.8772 -39.6003 20.1755 10.4514 3.8632 1.0049 1.0059 1.0260 -0.0085 -0.0025 0.0079\n", " + - cost(#7)=-0.019391 [o=11 t=4]\n", " + -- Parameters = 122.1885 3.3850 37.7804 31.9993 -26.7764 -9.1048 1.0047 1.0043 1.0237 -0.0004 -0.0009 0.0010\n", " + - cost(#8)=-0.016887 [o=19 t=1]\n", " + -- Parameters = 120.3862 31.8744 37.9044 31.2181 -11.7938 -1.2006 1.0284 0.9884 0.9874 -0.0101 0.0025 0.0006\n", " + - cost(#9)=-0.017390 [o=21 t=5]\n", " + -- Parameters = 115.3469 31.2859 37.8570 28.2962 -10.3465 2.2030 0.9873 0.9648 1.0135 0.0016 0.0010 -0.0018\n", " + - cost(#10)=-0.018693 [o=20 t=11]\n", " + -- Parameters = 99.3262 -29.9447 26.9371 -5.3159 -28.4886 -34.0726 1.0107 0.9849 1.0213 -0.0036 -0.0003 0.0007\n", " + - cost(#11)=-0.016689 [o=59 t=15]\n", " + -- Parameters = 120.8994 -8.5654 38.2884 35.5660 -28.3844 -2.2898 0.9449 0.9652 0.9808 0.0065 -0.0097 0.0202\n", " + - cost(#12)=-0.017087 [o=6 t=7]\n", " + -- Parameters = 124.5712 -28.6409 20.3221 5.1349 -41.6487 -44.5124 1.0125 0.9652 0.9978 -0.0043 -0.0015 -0.0151\n", " + - cost(#13)=-0.018747 [o=27 t=3]\n", " + -- Parameters = 124.8220 -15.4132 35.7434 32.8513 -32.2128 -4.2913 1.0051 1.0020 0.9925 -0.0014 0.0061 0.0027\n", " + - cost(#14)=-0.016958 [o=12 t=24]\n", " + -- Parameters = 90.6424 19.0892 31.4461 30.8611 -12.4391 -26.9602 1.0001 0.9900 0.9213 -0.0096 0.0069 -0.0164\n", " + - cost(#15)=-0.016621 [o=61 t=20]\n", " + -- Parameters = 95.2265 -16.0288 34.3051 18.8769 -38.6949 -27.3742 0.9949 1.0116 0.9938 0.0095 0.0005 -0.0030\n", " + - cost(#16)=-0.015480 [o=13 t=14]\n", " + -- Parameters = 94.6942 -15.8722 35.0063 16.0018 -38.3548 -28.1013 0.9892 1.0073 0.9938 -0.0018 0.0006 -0.0023\n", " + - cost(#17)=-0.017580 [o=70 t=17]\n", " + -- Parameters = 87.0306 -14.2621 -34.6583 -9.0179 9.8610 3.8227 0.9879 0.9809 0.9564 0.0087 0.0030 -0.0024\n", " + - cost(#18)=-0.016272 [o=3 t=27]\n", " + -- Parameters = 92.1936 -30.6225 24.8890 5.7653 -33.6379 -32.8354 0.9906 0.9904 0.9919 0.0296 0.0046 -0.0038\n", " + - cost(#19)=-0.018831 [o=8 t=25]\n", " + -- Parameters = 92.0665 -2.7610 29.1632 -37.9380 15.4778 -34.5080 0.9731 0.9648 0.9439 -0.0023 -0.0035 0.0016\n", " + - cost(#20)=-0.016643 [o=43 t=26]\n", " + -- Parameters = 66.9145 8.7317 -38.5499 19.9377 18.3452 -6.1108 1.0030 0.9976 0.9713 0.0006 0.0051 0.0221\n", " + - cost(#21)=-0.015076 [o=33 t=16]\n", " + -- Parameters = 110.5064 17.5324 -34.6949 -44.8090 11.7870 22.7514 0.9787 1.0007 0.9652 -0.0008 0.0293 0.0042\n", " + - cost(#22)=-0.015064 [o=68 t=10]\n", " + -- Parameters = 94.9821 11.4850 -41.7087 -27.1684 18.0621 -14.7438 0.9953 1.0047 1.0033 0.0097 -0.0014 -0.0005\n", " + - cost(#23)=-0.015215 [o=87 t=8]\n", " + -- Parameters = 80.8903 10.8767 31.8345 38.9750 -23.2805 -12.6024 0.9964 0.9868 0.9912 -0.0075 -0.0002 0.0015\n", " + - cost(#24)=-0.014807 [o=55 t=13]\n", " + -- Parameters = 101.9003 23.5725 -40.5280 -5.6755 -15.6652 40.9313 1.0032 0.9991 1.0112 0.0085 -0.0004 -0.0001\n", " + - cost(#25)=-0.014391 [o=23 t=9]\n", " + -- Parameters = 88.9471 -11.7913 -34.3018 -12.1401 11.8714 4.7590 1.0001 0.9921 0.9903 0.0145 0.0001 -0.0000\n", " + - cost(#26)=-0.012283 [o=26 t=12]\n", " + -- Parameters = 112.7510 -14.0798 -34.9248 -28.0911 24.1450 4.0337 0.9952 1.0025 1.0059 0.0123 0.0083 -0.0004\n", " + - cost(#27)=-0.012050 [o=53 t=28]\n", " + -- Parameters = 119.0245 -8.2729 -38.8807 -34.4827 24.2436 -0.6653 1.0003 1.0042 1.0074 -0.0013 0.0015 0.0001\n", " + - cost(#28)=-0.011891 [o=24 t=23]\n", " + -- Parameters = 119.1164 -6.9467 -37.4876 -11.0812 5.1131 -12.3826 0.9973 1.0034 0.9823 -0.0065 0.0021 -0.0026\n", " + - cost(#29)=-0.011366 [o=74 t=19]\n", " + -- Parameters = 66.4278 14.9361 -34.0231 33.9244 20.6755 -10.4931 0.9986 1.0021 0.9994 0.0001 0.0002 0.0008\n", " + - cost(#30)=-0.012654 [o=15 t=22]\n", " + -- Parameters = 118.6806 -0.2779 -39.9209 -10.4236 10.9901 -14.6070 0.9859 0.9982 1.0056 0.0036 -0.0026 0.0003\n", " + - cost(#31)=-0.226142 [o=-2 t=-2]\n", " + -- Parameters = 86.2853 -3.2417 0.0041 -0.6043 -1.3783 0.2327 0.9846 1.0247 0.9738 -0.0073 -0.0072 -0.0283\n", " + - case #1 [o=-1 t=-1] is now the best\n", " + - Initial cost = -0.229705\n", " + - Initial fine Parameters = 86.4786 -3.3794 0.0456 -0.7344 -2.0985 -0.4671 0.9912 1.0266 0.9763 -0.0110 0.0121 -0.0449\n", " + - Finalish cost = -0.230087 ; 443 funcs\n", " + - ini Finalish Parameters = 86.4243 -3.3934 0.0579 -0.6907 -2.4008 -0.2686 0.9907 1.0261 0.9755 -0.0090 0.0076 -0.0512\n", " + - Final cost = -0.230087 ; 283 funcs\n", " + Final fine fit Parameters:\n", " x-shift= 86.4239 y-shift= -3.3912 z-shift= 0.0590 ... enorm= 86.4904 mm\n", " z-angle= -0.6917 x-angle= -2.3988 y-angle= -0.2681 ... total= 2.5094 deg\n", " x-scale= 0.9907 y-scale= 1.0261 z-scale= 0.9755 ... vol3D= 0.9917 = base bigger than source\n", " y/x-shear= -0.0090 z/x-shear= 0.0076 z/y-shear= -0.0512\n", " + - Fine net CPU time = 0.0 s\n", "++ Computing output image\n", "++ image warp: parameters = 86.4239 -3.3912 0.0590 -0.6917 -2.3988 -0.2681 0.9907 1.0261 0.9755 -0.0090 0.0076 -0.0512\n", "++ Unloading unneeded data\n", "++ Output dataset ./sub-08_T1w_al_junk+orig.BRIK\n", "++ Wrote -1Dmatrix_save ./sub-08_T1w_al_junk_mat.aff12.1D\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 16.6\n", "++ ###########################################################\n", "++ # PLEASE check results VISUALLY for alignment quality #\n", "++ ###########################################################\n", "#++ Creating final output: skullstripped anat data\n", "copying from dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_sub-08_T1w_ns+orig to /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/sub-08_T1w_ns+orig\n", "#Script is running (command trimmed):\n", " 3dcopy ./__tt_sub-08_T1w_ns+orig sub-08_T1w_ns\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ Creating final output: anat data aligned to epi\n", "# copy is not necessary\n", "#++ Saving history\n", "#Script is running (command trimmed):\n", " 3dNotes -h \"align_epi_anat.py -anat2epi -anat sub-08_T1w+orig \\\n", " -save_skullstrip -suffix _al_junk -epi vr_base_min_outlier+orig -epi_base \\\n", " 0 -epi_strip 3dAutomask -giant_move -volreg off -tshift off\" \\\n", " ./sub-08_T1w_al_junk+orig\n", "\n", "#++ Removing all the temporary files\n", "#Script is running:\n", " \\rm -f ./__tt_vr_base_min_outlier*\n", "#Script is running:\n", " \\rm -f ./__tt_sub-08_T1w*\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "\n", "# Finished alignment successfully\n", "\n", "@auto_tlrc -base MNI_avg152T1+tlrc -input sub-08_T1w_ns+orig -no_ss\n", "\n", "*********** Warning *************\n", "Dataset centers are 92.736319 mm\n", "apart. If registration fails, or if\n", "parts of the original anatomy gets\n", "cropped, try adding option \n", " -init_xform AUTO_CENTER \n", "to your @auto_tlrc command.\n", "\n", "*********************************\n", "\n", "Padding ...\n", "++ 3dZeropad: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ output dataset: ./__ats_tmp__ref_MNI_avg152T1_15pad+tlrc.BRIK\n", "Resampling ...\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__resamp_step+orig.BRIK\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__resamp+tlrc.BRIK\n", "Clipping -0.000100 1336.000100 ...\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./__ats_tmp___rs_sub-08_T1w_ns+tlrc.BRIK\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___rs_sub-08_T1w_ns+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp__resamp_NN+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp__resamp_edge_art+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "Registration (cubic final interpolation) ...\n", "++ 3dWarpDrive: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Initial scale factor set to 0.30/129.00=4.3e+02\n", "RMS[0] = 0.505204 0.228999 ITER = 15/50\n", "0.505204\n", "\n", "Warping has converged.\n", "\n", "mv: ‘sub-08_T1w_ns.Xaff12.1D’ and ‘sub-08_T1w_ns.Xaff12.1D’ are the same file\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dWarp: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "Applying brain mask\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__reg_braintlrcstep+orig.BRIK\n", "++ 3dWarp: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ 3drename: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ THD_rename_dataset_files: rename __ats_tmp___pad15_sub-08_T1w_ns+orig.HEAD -> __ats_tmp___pad15_sub-08_T1w_ns.skl+orig.HEAD\n", "++ THD_rename_dataset_files: rename __ats_tmp___pad15_sub-08_T1w_ns+orig.BRIK -> __ats_tmp___pad15_sub-08_T1w_ns.skl+orig.BRIK\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp___pad15_sub-08_T1w_ns+orig.BRIK\n", "Unpadding ...\n", "++ 3dZeropad: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ output dataset: ./__ats_tmp___upad15_sub-08_T1w_ns+orig.BRIK\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_sub-08_T1w_ns+orig\n", "\u001b[7m*+ WARNING:\u001b[0m Changing the space of an ORIG view dataset may cause confusion!\n", "\u001b[7m*+ WARNING:\u001b[0m NIFTI copies will be interpreted as TLRC view (not TLRC space).\n", "\u001b[7m*+ WARNING:\u001b[0m Consider changing the view of the dataset to TLRC view also\n", "++ 3drefit processed 1 datasets\n", "Changing view of transformed anatomy\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_sub-08_T1w_ns+orig.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "Setting parent with 3drefit -wset sub-08_T1w_ns+orig __ats_tmp___upad15_sub-08_T1w_ns+tlrc\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_sub-08_T1w_ns+tlrc\n", " + setting Warp parent\n", "++ 3drefit processed 1 datasets\n", "++ 3drename: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Warning: ignoring +tlrc on new_prefix.\n", "++ THD_rename_dataset_files: rename __ats_tmp___upad15_sub-08_T1w_ns+tlrc.HEAD -> sub-08_T1w_ns+tlrc.HEAD\n", "++ THD_rename_dataset_files: rename __ats_tmp___upad15_sub-08_T1w_ns+tlrc.BRIK -> sub-08_T1w_ns+tlrc.BRIK\n", "Cleanup ...\n", "cat_matvec sub-08_T1w_ns+tlrc::WARP_DATA -I\n", "if ( ! -f sub-08_T1w_ns+tlrc.HEAD ) then\n", "foreach run ( 01 02 )\n", "3dvolreg -verbose -zpad 1 -base vr_base_min_outlier+orig -1Dfile dfile.r01.1D -prefix rm.epi.volreg.r01 -cubic -1Dmatrix_save mat.r01.vr.aff12.1D pb01.sub_08.r01.tshift+orig\n", "++ 3dvolreg: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Reading in base dataset ./vr_base_min_outlier+orig.BRIK\n", "++ Reading input dataset ./pb01.sub_08.r01.tshift+orig.BRIK\n", "++ Edging: x=3 y=3 z=2\n", "++ Creating mask for -maxdisp\n", " + Automask has 40918 voxels\n", " + 5959 voxels left in -maxdisp mask after erosion\n", "++ Initializing alignment base\n", "++ Starting final pass on 146 sub-bricks: 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145..\n", "++ CPU time for realignment=0 s [=0 s/sub-brick]\n", "++ Min : roll=-0.014 pitch=-0.044 yaw=-0.059 dS=-0.092 dL=-0.041 dP=-0.083\n", "++ Mean: roll=+0.022 pitch=+0.035 yaw=+0.065 dS=+0.016 dL=+0.029 dP=+0.013\n", "++ Max : roll=+0.119 pitch=+0.184 yaw=+0.253 dS=+0.181 dL=+0.123 dP=+0.235\n", "++ Max displacements (mm) for each sub-brick:\n", " 0.15(0.00) 0.09(0.16) 0.06(0.09) 0.05(0.08) 0.07(0.08) 0.07(0.03) 0.08(0.05) 0.06(0.05) 0.15(0.13) 0.09(0.12) 0.15(0.12) 0.09(0.13) 0.11(0.10) 0.09(0.06) 0.09(0.05) 0.11(0.04) 0.04(0.10) 0.08(0.08) 0.07(0.05) 0.13(0.10) 0.06(0.11) 0.06(0.09) 0.07(0.09) 0.03(0.05) 0.09(0.07) 0.06(0.13) 0.07(0.09) 0.05(0.08) 0.00(0.05) 0.06(0.06) 0.06(0.08) 0.05(0.06) 0.10(0.07) 0.06(0.06) 0.07(0.09) 0.06(0.10) 0.08(0.08) 0.08(0.07) 0.12(0.10) 0.08(0.11) 0.09(0.08) 0.11(0.07) 0.05(0.08) 0.08(0.05) 0.03(0.08) 0.07(0.06) 0.08(0.09) 0.06(0.05) 0.10(0.07) 0.08(0.09) 0.12(0.10) 0.10(0.08) 0.06(0.07) 0.14(0.14) 0.09(0.11) 0.11(0.10) 0.14(0.06) 0.09(0.12) 0.12(0.11) 0.10(0.09) 0.10(0.06) 0.15(0.07) 0.09(0.12) 0.11(0.10) 0.09(0.15) 0.14(0.16) 0.09(0.09) 0.10(0.03) 0.11(0.07) 0.08(0.07) 0.13(0.11) 0.09(0.11) 0.13(0.11) 0.09(0.08) 0.10(0.06) 0.13(0.10) 0.10(0.09) 0.14(0.11) 0.11(0.14) 0.11(0.10) 0.09(0.07) 0.10(0.08) 0.11(0.06) 0.10(0.10) 0.16(0.16) 0.10(0.16) 0.13(0.14) 0.13(0.11) 0.17(0.07) 0.18(0.07) 0.15(0.09) 0.15(0.07) 0.12(0.10) 0.17(0.10) 0.15(0.05) 0.16(0.07) 0.14(0.06) 0.16(0.10) 0.24(0.15) 0.14(0.17) 0.21(0.14) 0.16(0.12) 0.29(0.22) 0.20(0.16) 0.23(0.11) 0.21(0.07) 0.21(0.10) 0.23(0.05) 0.19(0.12) 0.22(0.08) 0.18(0.09) 0.23(0.10) 0.19(0.11) 0.28(0.14) 0.21(0.10) 0.23(0.06) 0.23(0.07) 0.29(0.15) 0.22(0.17) 0.29(0.10) 0.30(0.04) 0.27(0.07) 0.31(0.08) 0.28(0.06) 0.34(0.11) 0.30(0.07) 0.37(0.11) 0.28(0.15) 0.36(0.14) 0.29(0.14) 0.36(0.15) 0.32(0.30) 0.41(0.27) 0.49(0.29) 0.46(0.11) 0.49(0.18) 0.56(0.18) 0.55(0.14) 0.55(0.10) 0.54(0.03) 0.52(0.12) 0.51(0.14) 0.48(0.15) 0.41(0.17) 0.41(0.22) 0.42(0.12)\n", "++ Max displacement in automask = 0.56 (mm) at sub-brick 136\n", "++ Max delta displ in automask = 0.30 (mm) at sub-brick 131\n", "++ Wrote dataset to disk in ./rm.epi.volreg.r01+orig.BRIK\n", "3dcalc -overwrite -a pb01.sub_08.r01.tshift+orig -expr 1 -prefix rm.epi.all1\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "\u001b[7m*+ WARNING:\u001b[0m input 'a' is not used in the expression\n", "++ Output dataset ./rm.epi.all1+orig.BRIK\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I mat.r01.vr.aff12.1D\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input pb01.sub_08.r01.tshift+orig -1Dmatrix_apply mat.r01.warp.aff12.1D -mast_dxyz 3 -prefix rm.epi.nomask.r01\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./pb01.sub_08.r01.tshift+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 1.177 -7.574 -29.220\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 2.0% 10.9% 50.6%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 146 sub-bricks ==========\n", "volume 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145\n", "++ Output dataset ./rm.epi.nomask.r01+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 4.4\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input rm.epi.all1+orig -1Dmatrix_apply mat.r01.warp.aff12.1D -mast_dxyz 3 -final NN -quiet -prefix rm.epi.1.r01\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 2.430 -17.988 -31.461\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 4.2% 25.9% 54.4%\n", "++ Output dataset ./rm.epi.1.r01+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 3.9\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dTstat -min -prefix rm.epi.min.r01 rm.epi.1.r01+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.epi.min.r01+tlrc.BRIK\n", "end\n", "3dvolreg -verbose -zpad 1 -base vr_base_min_outlier+orig -1Dfile dfile.r02.1D -prefix rm.epi.volreg.r02 -cubic -1Dmatrix_save mat.r02.vr.aff12.1D pb01.sub_08.r02.tshift+orig\n", "++ 3dvolreg: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Reading in base dataset ./vr_base_min_outlier+orig.BRIK\n", "++ Reading input dataset ./pb01.sub_08.r02.tshift+orig.BRIK\n", "++ Edging: x=3 y=3 z=2\n", "++ Creating mask for -maxdisp\n", " + Automask has 40888 voxels\n", " + 5952 voxels left in -maxdisp mask after erosion\n", "++ Initializing alignment base\n", "++ Starting final pass on 146 sub-bricks: 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145..\n", "++ CPU time for realignment=0 s [=0 s/sub-brick]\n", "++ Min : roll=+0.065 pitch=-0.196 yaw=-0.295 dS=-0.284 dL=+0.045 dP=-0.220\n", "++ Mean: roll=+0.160 pitch=+0.114 yaw=+0.164 dS=-0.032 dL=+0.132 dP=-0.070\n", "++ Max : roll=+0.233 pitch=+0.250 yaw=+0.335 dS=+0.142 dL=+0.306 dP=+0.067\n", "++ Max displacements (mm) for each sub-brick:\n", " 0.70(0.00) 0.61(0.16) 0.62(0.09) 0.60(0.07) 0.58(0.06) 0.63(0.08) 0.61(0.07) 0.62(0.08) 0.60(0.07) 0.55(0.07) 0.62(0.08) 0.61(0.11) 0.61(0.07) 0.59(0.05) 0.50(0.10) 0.54(0.06) 0.52(0.08) 0.57(0.09) 0.58(0.09) 0.56(0.09) 0.58(0.06) 0.56(0.07) 0.59(0.10) 0.57(0.09) 0.57(0.07) 0.59(0.05) 0.56(0.05) 0.59(0.08) 0.60(0.08) 0.58(0.07) 0.58(0.07) 0.58(0.06) 0.58(0.02) 0.59(0.05) 0.57(0.34) 0.38(0.39) 0.47(0.48) 0.90(0.47) 0.59(0.35) 0.49(0.19) 0.50(0.16) 0.46(0.12) 0.48(0.16) 0.46(0.17) 0.48(0.13) 0.47(0.10) 0.48(0.10) 0.49(0.09) 0.51(0.10) 0.53(0.06) 0.51(0.09) 0.53(0.09) 0.50(0.10) 0.50(0.09) 0.50(0.08) 0.49(0.07) 0.52(0.06) 0.46(0.10) 0.46(0.21) 0.52(0.33) 0.50(0.20) 0.54(0.12) 0.54(0.09) 0.60(0.12) 0.55(0.14) 0.59(0.12) 0.58(0.10) 0.62(0.13) 0.53(0.11) 0.49(0.14) 0.49(0.04) 0.46(0.07) 0.55(0.11) 0.48(0.14) 0.57(0.15) 0.46(0.14) 0.54(0.11) 0.44(0.13) 0.51(0.11) 0.47(0.10) 0.55(0.15) 0.59(0.11) 0.56(0.13) 0.53(0.13) 0.60(0.14) 0.58(0.10) 0.55(0.04) 0.53(0.07) 0.59(0.11) 0.49(0.15) 0.57(0.14) 0.52(0.17) 0.77(0.46) 0.58(0.27) 0.57(0.20) 0.57(0.10) 0.58(0.13) 0.56(0.14) 0.57(0.14) 0.55(0.09) 0.60(0.10) 0.55(0.09) 0.55(0.05) 0.55(0.04) 0.57(0.07) 0.61(0.06) 0.53(0.11) 0.67(0.16) 0.55(0.16) 0.59(0.11) 0.53(0.10) 0.54(0.06) 0.57(0.07) 0.51(0.12) 0.56(0.12) 0.57(0.17) 0.64(0.20) 0.58(0.21) 0.56(0.09) 0.60(0.07) 0.55(0.07) 0.61(0.08) 0.56(0.12) 0.60(0.14) 0.59(0.10) 0.61(0.07) 0.59(0.06) 0.56(0.08) 0.67(0.14) 0.61(0.12) 0.64(0.14) 0.64(0.04) 0.64(0.19) 0.57(0.25) 0.54(0.10) 0.54(0.07) 0.53(0.05) 0.57(0.11) 0.53(0.11) 0.58(0.12) 0.53(0.09) 0.55(0.06) 0.52(0.11) 0.56(0.13) 0.55(0.10) 0.53(0.06)\n", "++ Max displacement in automask = 0.90 (mm) at sub-brick 37\n", "++ Max delta displ in automask = 0.48 (mm) at sub-brick 36\n", "++ Wrote dataset to disk in ./rm.epi.volreg.r02+orig.BRIK\n", "3dcalc -overwrite -a pb01.sub_08.r02.tshift+orig -expr 1 -prefix rm.epi.all1\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "\u001b[7m*+ WARNING:\u001b[0m input 'a' is not used in the expression\n", "++ Output dataset ./rm.epi.all1+orig.BRIK\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I mat.r02.vr.aff12.1D\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input pb01.sub_08.r02.tshift+orig -1Dmatrix_apply mat.r02.warp.aff12.1D -mast_dxyz 3 -prefix rm.epi.nomask.r02\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./pb01.sub_08.r02.tshift+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 1.104 -7.508 -29.208\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 1.9% 10.8% 50.6%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 146 sub-bricks ==========\n", "volume 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145\n", "++ Output dataset ./rm.epi.nomask.r02+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 4.5\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input rm.epi.all1+orig -1Dmatrix_apply mat.r02.warp.aff12.1D -mast_dxyz 3 -final NN -quiet -prefix rm.epi.1.r02\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 2.430 -17.988 -31.461\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 4.2% 25.9% 54.4%\n", "++ Output dataset ./rm.epi.1.r02+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 4.2\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dTstat -min -prefix rm.epi.min.r02 rm.epi.1.r02+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.epi.min.r02+tlrc.BRIK\n", "end\n", "cat dfile.r01.1D dfile.r02.1D\n", "1d_tool.py -infile dfile_rall.1D -set_nruns 2 -derivative -collapse_cols euclidean_norm -write motion_sub_08_enorm.1D\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "3dMean -datum short -prefix rm.epi.mean rm.epi.min.r01+tlrc.HEAD rm.epi.min.r02+tlrc.HEAD\n", "++ 3dMean: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dcalc -a rm.epi.mean+tlrc -expr step(a-0.999) -prefix mask_epi_extents\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./mask_epi_extents+tlrc.BRIK\n", "foreach run ( 01 02 )\n", "3dcalc -a rm.epi.nomask.r01+tlrc -b mask_epi_extents+tlrc -expr a*b -prefix pb02.sub_08.r01.volreg\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb02.sub_08.r01.volreg+tlrc.BRIK\n", "end\n", "3dcalc -a rm.epi.nomask.r02+tlrc -b mask_epi_extents+tlrc -expr a*b -prefix pb02.sub_08.r02.volreg\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb02.sub_08.r02.volreg+tlrc.BRIK\n", "end\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input vr_base_min_outlier+orig -1Dmatrix_apply mat.basewarp.aff12.1D -mast_dxyz 3 -prefix final_epi_vr_base_min_outlier\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./vr_base_min_outlier+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 1.223 -7.586 -29.179\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 2.1% 10.9% 50.5%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 1 sub-bricks ==========\n", "++ Output dataset ./final_epi_vr_base_min_outlier+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 0.1\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dcopy sub-08_T1w_ns+tlrc anat_final.sub_08\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dAllineate -base final_epi_vr_base_min_outlier+tlrc -allcostX -input anat_final.sub_08+tlrc\n", "tee out.allcostX.txt\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./anat_final.sub_08+tlrc.HEAD\n", "++ Base dataset: ./final_epi_vr_base_min_outlier+tlrc.HEAD\n", "++ Loading datasets into memory\n", "++ Local correlation: blok type = 'TOHD(15.531)'\n", " + -cmass x y z shifts = -13.464 0.425 2.519\n", " + shift search range is +/- = 75.114 82.818 67.410\n", "\u001b[7m*+ WARNING:\u001b[0m No output dataset will be calculated\n", "++ OpenMP thread count = 15\n", " + initial Parameters = 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000\n", "++ allcost output: init #0\n", " ls = 0.230214\n", " sp = 0.332702\n", " mi = 3.12782\n", " crM = 0.135544\n", " nmi = 0.87499\n", " je = 3.12782\n", " hel = -0.085955\n", " crA = 0.36856\n", " crU = 0.385647\n", " lss = 0.769786\n", " lpc = 0.447039\n", " lpa = 0.552961\n", " lpc+ = 0.680087\n", " lpa+ = 0.786009\n", "++ Output dataset ./volumized+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 0.8\n", "++ ###########################################################\n", "3dAllineate -source sub-08_T1w+orig -master anat_final.sub_08+tlrc -final wsinc5 -1Dmatrix_apply warp.anat.Xat.1D -prefix anat_w_skull_warped\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ -1Dmatrix_apply: converting input 3x4 array to 1 row of 12 numbers\n", "++ Source dataset: ./sub-08_T1w+orig.HEAD\n", "++ Base dataset: (not given)\n", "++ Loading datasets into memory\n", " + -cmass x y z shifts = 0.000 0.000 0.000\n", " + shift search range is +/- = 56.175 81.855 81.855\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 1 sub-bricks ==========\n", "++ wsinc5 interpolation setup:\n", " + taper function = Min sidelobe 3 term\n", " + taper cut point = 0.000\n", " + window radius = 5 voxels\n", " + window shape = Cubical\n", " + The above can be altered via the AFNI_WSINC5_* environment variables.\n", " + (To avoid this message, 'setenv AFNI_WSINC5_SILENT YES'.)\n", " + wsinc5 CUBE(5) mask has 1000 points\n", "++ Output dataset ./anat_w_skull_warped+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 1.3\n", "++ ###########################################################\n", "foreach run ( 01 02 )\n", "3dmerge -1blur_fwhm 4.0 -doall -prefix pb03.sub_08.r01.blur pb02.sub_08.r01.volreg+tlrc\n", "++ 3dmerge: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ default -1dindex = 0\n", "++ default -1tindex = 1\n", "Program 3dmerge \n", "3dmerge: edit and combine 3D datasets, by RW Cox\n", "++ editing input dataset in memory (75.6 MB)\n", "..................................................................................................................................................\n", "-- Wrote edited dataset: ./pb03.sub_08.r01.blur+tlrc.BRIK\n", "\n", "end\n", "3dmerge -1blur_fwhm 4.0 -doall -prefix pb03.sub_08.r02.blur pb02.sub_08.r02.volreg+tlrc\n", "++ 3dmerge: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ default -1dindex = 0\n", "++ default -1tindex = 1\n", "Program 3dmerge \n", "3dmerge: edit and combine 3D datasets, by RW Cox\n", "++ editing input dataset in memory (75.6 MB)\n", "..................................................................................................................................................\n", "-- Wrote edited dataset: ./pb03.sub_08.r02.blur+tlrc.BRIK\n", "\n", "end\n", "foreach run ( 01 02 )\n", "3dAutomask -prefix rm.mask_r01 pb03.sub_08.r01.blur+tlrc\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset pb03.sub_08.r01.blur+tlrc\n", "++ Forming automask\n", " + Fixed clip level = 343.984131\n", " + Used gradual clip level = 319.658783 .. 361.950439\n", " + Number voxels above clip level = 95016\n", " + Clustering voxels ...\n", " + Largest cluster has 94183 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 94053 voxels\n", " + Filled 136 voxels in small holes; now have 94189 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 94189 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 177444 voxels\n", " + Mask now has 94189 voxels\n", "++ 94189 voxels in the mask [out of 271633: 34.68%]\n", "++ first 0 x-planes are zero [from L]\n", "++ last 2 x-planes are zero [from R]\n", "++ first 5 y-planes are zero [from P]\n", "++ last 4 y-planes are zero [from A]\n", "++ first 0 z-planes are zero [from I]\n", "++ last 9 z-planes are zero [from S]\n", "++ Output dataset ./rm.mask_r01+tlrc.BRIK\n", "++ CPU time = 0.000000 sec\n", "end\n", "3dAutomask -prefix rm.mask_r02 pb03.sub_08.r02.blur+tlrc\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset pb03.sub_08.r02.blur+tlrc\n", "++ Forming automask\n", " + Fixed clip level = 342.683807\n", " + Used gradual clip level = 318.450317 .. 360.525879\n", " + Number voxels above clip level = 95030\n", " + Clustering voxels ...\n", " + Largest cluster has 94190 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 94071 voxels\n", " + Filled 130 voxels in small holes; now have 94201 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 94201 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 177432 voxels\n", " + Mask now has 94201 voxels\n", "++ 94201 voxels in the mask [out of 271633: 34.68%]\n", "++ first 0 x-planes are zero [from L]\n", "++ last 2 x-planes are zero [from R]\n", "++ first 5 y-planes are zero [from P]\n", "++ last 4 y-planes are zero [from A]\n", "++ first 0 z-planes are zero [from I]\n", "++ last 9 z-planes are zero [from S]\n", "++ Output dataset ./rm.mask_r02+tlrc.BRIK\n", "++ CPU time = 0.000000 sec\n", "end\n", "3dmask_tool -inputs rm.mask_r01+tlrc.HEAD rm.mask_r02+tlrc.HEAD -union -prefix full_mask.sub_08\n", "++ processing 2 input dataset(s), NN=2...\n", "++ padding all datasets by 0 (for dilations)\n", "++ frac 0 over 2 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 94280 survived, 177353 were zero\n", "++ writing result full_mask.sub_08...\n", "++ Output dataset ./full_mask.sub_08+tlrc.BRIK\n", "3dresample -master full_mask.sub_08+tlrc -input sub-08_T1w_ns+tlrc -prefix rm.resam.anat\n", "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.anat+tlrc -prefix mask_anat.sub_08\n", "++ no -frac option: defaulting to -union\n", "++ processing 1 input dataset(s), NN=2...\n", "++ padding all datasets by 5 (for dilations)\n", "++ frac 0 over 1 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 81218 survived, 190415 were zero\n", "++ filled 0 holes (0 voxels)\n", "++ writing result mask_anat.sub_08...\n", "++ Output dataset ./mask_anat.sub_08+tlrc.BRIK\n", "3dmask_tool -input full_mask.sub_08+tlrc mask_anat.sub_08+tlrc -inter -prefix mask_epi_anat.sub_08\n", "++ processing 2 input dataset(s), NN=2...\n", "++ padding all datasets by 0 (for dilations)\n", "++ frac 1 over 2 volumes gives min count 2\n", "++ voxel limits: 32128 clipped, 71685 survived, 167820 were zero\n", "++ writing result mask_epi_anat.sub_08...\n", "++ Output dataset ./mask_epi_anat.sub_08+tlrc.BRIK\n", "3dABoverlap -no_automask full_mask.sub_08+tlrc mask_anat.sub_08+tlrc\n", "tee out.mask_ae_overlap.txt\n", "++ 3dABoverlap: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#A=./full_mask.sub_08+tlrc.BRIK B=./mask_anat.sub_08+tlrc.BRIK\n", "#A #B #(A uni B) #(A int B) #(A \\ B) #(B \\ A) %(A \\ B) %(B \\ A) Rx(B/A) Ry(B/A) Rz(B/A)\n", "94280 81218 103813 71685 22595 9533 23.9658 11.7375 0.6653 0.9754 1.0909\n", "3ddot -dodice full_mask.sub_08+tlrc mask_anat.sub_08+tlrc\n", "tee out.mask_ae_dice.txt\n", "0.816932\t\n", "3dresample -master full_mask.sub_08+tlrc -prefix ./rm.resam.group -input /opt/afni-latest/MNI_avg152T1+tlrc\n", "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.group+tlrc -prefix mask_group\n", "++ no -frac option: defaulting to -union\n", "++ processing 1 input dataset(s), NN=2...\n", "++ padding all datasets by 5 (for dilations)\n", "++ frac 0 over 1 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 73409 survived, 198224 were zero\n", "++ filled 0 holes (0 voxels)\n", "++ writing result mask_group...\n", "++ Output dataset ./mask_group+tlrc.BRIK\n", "3ddot -dodice mask_anat.sub_08+tlrc mask_group+tlrc\n", "tee out.mask_at_dice.txt\n", "0.888823\t\n", "foreach run ( 01 02 )\n", "3dTstat -prefix rm.mean_r01 pb03.sub_08.r01.blur+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.mean_r01+tlrc.BRIK\n", "3dcalc -a pb03.sub_08.r01.blur+tlrc -b rm.mean_r01+tlrc -c mask_epi_extents+tlrc -expr c * min(200, a/b*100)*step(a)*step(b) -prefix pb04.sub_08.r01.scale\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb04.sub_08.r01.scale+tlrc.BRIK\n", "end\n", "3dTstat -prefix rm.mean_r02 pb03.sub_08.r02.blur+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.mean_r02+tlrc.BRIK\n", "3dcalc -a pb03.sub_08.r02.blur+tlrc -b rm.mean_r02+tlrc -c mask_epi_extents+tlrc -expr c * min(200, a/b*100)*step(a)*step(b) -prefix pb04.sub_08.r02.scale\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb04.sub_08.r02.scale+tlrc.BRIK\n", "end\n", "gen_epi_review.py -script @epi_review.sub_08 -dsets pb00.sub_08.r01.tcat+orig.HEAD pb00.sub_08.r02.tcat+orig.HEAD\n", "rm -f rm.epi.1.r01+tlrc.BRIK rm.epi.1.r01+tlrc.HEAD rm.epi.1.r02+tlrc.BRIK rm.epi.1.r02+tlrc.HEAD rm.epi.all1+orig.BRIK rm.epi.all1+orig.HEAD rm.epi.mean+tlrc.BRIK rm.epi.mean+tlrc.HEAD rm.epi.min.r01+tlrc.BRIK rm.epi.min.r01+tlrc.HEAD rm.epi.min.r02+tlrc.BRIK rm.epi.min.r02+tlrc.HEAD rm.epi.nomask.r01+tlrc.BRIK rm.epi.nomask.r01+tlrc.HEAD rm.epi.nomask.r02+tlrc.BRIK rm.epi.nomask.r02+tlrc.HEAD rm.epi.volreg.r01+orig.BRIK rm.epi.volreg.r01+orig.HEAD rm.epi.volreg.r02+orig.BRIK rm.epi.volreg.r02+orig.HEAD rm.mask_r01+tlrc.BRIK rm.mask_r01+tlrc.HEAD rm.mask_r02+tlrc.BRIK rm.mask_r02+tlrc.HEAD rm.mean_r01+tlrc.BRIK rm.mean_r01+tlrc.HEAD rm.mean_r02+tlrc.BRIK rm.mean_r02+tlrc.HEAD rm.resam.anat+tlrc.BRIK rm.resam.anat+tlrc.HEAD rm.resam.group+tlrc.BRIK rm.resam.group+tlrc.HEAD\n", "if ( -e @ss_review_basic ) then\n", "cd ..\n", "echo execution finished: `date`\n", "date\n", "execution finished: Thu May 1 05:12:31 UTC 2025\n" ] } ], "source": [ "! tcsh -xef proc.sub_08 |& tee output.proc.sub_08" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "🔔 While running, pay attention to the following warnings:\n", "\n", "**3dTshift Warning**:\n", "```\n", "+ WARNING: dataset is already aligned in time!\n", "+ WARNING: ==>> output dataset is just a copy of input dataset\n", "```\n", "✅ No action needed — this simply means no time-shifting was necessary. You could re-analyze this data by omitting both the 3dTcat and 3dTshift preprocessing steps, and it would get the same result.\n", "\n", "**@auto_tlrc Warning**:\n", "```\n", "*********** Warning *************\n", "Dataset centers are 92.736319 mm\n", "apart. If registration fails, or if\n", "parts of the original anatomy gets\n", "cropped, try adding option \n", " -init_xform AUTO_CENTER \n", "to your @auto_tlrc command.\n", "\n", "*********************************\n", "```\n", "\n", "⚠️ This warning requires fixing: we need to modify the ```proc.sub_08``` script to add ```-init_xform AUTO_CENTER``` to the ```@auto_tlrc``` command to improve alignment." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# Edit proc.sub_08\n", "with open('./proc.sub_08', 'r') as file:\n", " lines = file.readlines()\n", "\n", "# Insert \"-init_xform AUTO_CENTER\" into the @auto_tlrc command\n", "for idx, line in enumerate(lines):\n", " if line.strip().startswith('@auto_tlrc'):\n", " lines[idx] = line.strip() + ' -init_xform AUTO_CENTER\\n'\n", "\n", "# Save it back\n", "with open('proc.sub_08', 'w') as file:\n", " file.writelines(lines)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "echo auto-generated by afni_proc.py, Thu May 1 05:08:45 2025\n", "auto-generated by afni_proc.py, Thu May 1 05:08:45 2025\n", "echo (version 7.16, May 19, 2021)\n", "(version 7.16, May 19, 2021)\n", "echo execution started: `date`\n", "date\n", "execution started: Thu May 1 05:12:33 UTC 2025\n", "afni -ver\n", "Precompiled binary linux_openmp_64: Jul 8 2021 (Version AFNI_21.2.00 'Nerva')\n", "afni_history -check_date 27 Jun 2019\n", "-- is current: afni_history as new as: 27 Jun 2019\n", " most recent entry is: 30 Jun 2021\n", "if ( 0 ) then\n", "if ( 0 > 0 ) then\n", "set subj = sub_08\n", "endif\n", "set output_dir = ./afni_processing/sub_08.results\n", "if ( -d ./afni_processing/sub_08.results ) then\n", "set runs = ( `count -digits 2 1 2` )\n", "count -digits 2 1 2\n", "mkdir -p ./afni_processing/sub_08.results\n", "mkdir ./afni_processing/sub_08.results/stimuli\n", "3dcopy ds000102/sub-08/anat/sub-08_T1w.nii.gz ./afni_processing/sub_08.results/sub-08_T1w\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dTcat -prefix ./afni_processing/sub_08.results/pb00.sub_08.r01.tcat ds000102/sub-08/func/sub-08_task-flanker_run-1_bold.nii.gz[0..$]\n", "++ 3dTcat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ elapsed time = 0.7 s\n", "3dTcat -prefix ./afni_processing/sub_08.results/pb00.sub_08.r02.tcat ds000102/sub-08/func/sub-08_task-flanker_run-2_bold.nii.gz[0..$]\n", "++ 3dTcat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ elapsed time = 0.7 s\n", "set tr_counts = ( 146 146 )\n", "cd ./afni_processing/sub_08.results\n", "touch out.pre_ss_warn.txt\n", "foreach run ( 01 02 )\n", "3dToutcount -automask -fraction -polort 2 -legendre pb00.sub_08.r01.tcat+orig\n", "++ 3dToutcount: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 38915 voxels passed mask/clip\n", "if ( `1deval -a outcount.r$run.1D\"{0}\" -expr \"step(a-0.4)\"` ) then\n", "1deval -a outcount.r01.1D{0} -expr step(a-0.4)\n", "end\n", "3dToutcount -automask -fraction -polort 2 -legendre pb00.sub_08.r02.tcat+orig\n", "++ 3dToutcount: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 38896 voxels passed mask/clip\n", "if ( `1deval -a outcount.r$run.1D\"{0}\" -expr \"step(a-0.4)\"` ) then\n", "1deval -a outcount.r02.1D{0} -expr step(a-0.4)\n", "end\n", "cat outcount.r01.1D outcount.r02.1D\n", "set minindex = `3dTstat -argmin -prefix - outcount_rall.1D\\'`\n", "3dTstat -argmin -prefix - outcount_rall.1D'\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "\u001b[7m*+ WARNING:\u001b[0m Input dataset is not 3D+time; assuming TR=1.0\n", "set ovals = ( `1d_tool.py -set_run_lengths $tr_counts \n", " -index_to_run_tr $minindex` )\n", "1d_tool.py -set_run_lengths 146 146 -index_to_run_tr 28\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "set minoutrun = 01\n", "set minouttr = 28\n", "echo min outlier: run 01, TR 28\n", "tee out.min_outlier.txt\n", "min outlier: run 01, TR 28\n", "foreach run ( 01 02 )\n", "3dTshift -tzero 0 -quintic -prefix pb01.sub_08.r01.tshift pb00.sub_08.r01.tcat+orig\n", "++ 3dTshift: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "\u001b[7m*+ WARNING:\u001b[0m dataset is already aligned in time!\n", "\u001b[7m*+ WARNING:\u001b[0m ==>> output dataset is just a copy of input dataset\n", "end\n", "3dTshift -tzero 0 -quintic -prefix pb01.sub_08.r02.tshift pb00.sub_08.r02.tcat+orig\n", "++ 3dTshift: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "\u001b[7m*+ WARNING:\u001b[0m dataset is already aligned in time!\n", "\u001b[7m*+ WARNING:\u001b[0m ==>> output dataset is just a copy of input dataset\n", "end\n", "3dbucket -prefix vr_base_min_outlier pb01.sub_08.r01.tshift+orig[28]\n", "++ 3dbucket: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "align_epi_anat.py -anat2epi -anat sub-08_T1w+orig -save_skullstrip -suffix _al_junk -epi vr_base_min_outlier+orig -epi_base 0 -epi_strip 3dAutomask -giant_move -volreg off -tshift off\n", "#++ align_epi_anat version: 1.62\n", "#++ turning off volume registration\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./vr_base_min_outlier+orig\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./vr_base_min_outlier+orig\n", "#Script is running (command trimmed):\n", " 3dAttribute DELTA ./sub-08_T1w+orig\n", "#++ Multi-cost is lpc\n", "#++ Removing all the temporary files\n", "#Script is running:\n", " \\rm -f ./__tt_vr_base_min_outlier*\n", "#Script is running:\n", " \\rm -f ./__tt_sub-08_T1w*\n", "#Script is running (command trimmed):\n", " 3dcopy ./sub-08_T1w+orig ./__tt_sub-08_T1w+orig\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ Removing skull from anat data\n", "#Script is running (command trimmed):\n", " 3dSkullStrip -orig_vol -input ./__tt_sub-08_T1w+orig -prefix ./__tt_sub-08_T1w_ns\n", "#Script is running (command trimmed):\n", " 3dinfo ./__tt_sub-08_T1w_ns+orig | \\grep 'Data Axes Tilt:'|\\grep 'Oblique'\n", "#++ Dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_sub-08_T1w_ns+orig is not oblique\n", "#Script is running (command trimmed):\n", " 3dinfo ./vr_base_min_outlier+orig | \\grep 'Data Axes Tilt:'|\\grep 'Oblique'\n", "#++ Dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/vr_base_min_outlier+orig is not oblique\n", "#++ using 0th sub-brick because only one found\n", "#Script is running (command trimmed):\n", " 3dbucket -prefix ./__tt_vr_base_min_outlier_ts ./vr_base_min_outlier+orig'[0]'\n", "++ 3dbucket: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ removing skull or area outside brain\n", "#Script is running (command trimmed):\n", " 3dAutomask -apply_prefix ./__tt_vr_base_min_outlier_ts_ns ./__tt_vr_base_min_outlier_ts+orig\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset ./__tt_vr_base_min_outlier_ts+orig\n", "++ Forming automask\n", " + Fixed clip level = 345.050415\n", " + Used gradual clip level = 330.013794 .. 365.519012\n", " + Number voxels above clip level = 39471\n", " + Clustering voxels ...\n", " + Largest cluster has 38949 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 38549 voxels\n", " + Filled 354 voxels in small holes; now have 38903 voxels\n", " + Filled 3 voxels in large holes; now have 38906 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 38906 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 124934 voxels\n", " + Mask now has 38906 voxels\n", "++ 38906 voxels in the mask [out of 163840: 23.75%]\n", "++ first 11 x-planes are zero [from L]\n", "++ last 11 x-planes are zero [from R]\n", "++ first 0 y-planes are zero [from P]\n", "++ last 5 y-planes are zero [from A]\n", "++ first 1 z-planes are zero [from I]\n", "++ last 3 z-planes are zero [from S]\n", "++ applying mask to original data\n", "++ Writing masked data\n", "++ Output dataset ./__tt_vr_base_min_outlier_ts_ns+orig.BRIK\n", "++ CPU time = 0.000000 sec\n", "#++ Computing weight mask\n", "#Script is running (command trimmed):\n", " 3dBrickStat -automask -percentile 90.000000 1 90.000000 ./__tt_vr_base_min_outlier_ts_ns+orig\n", "#++ Applying threshold of 819.000000 on /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_vr_base_min_outlier_ts_ns+orig\n", "#Script is running (command trimmed):\n", " 3dcalc -datum float -prefix ./__tt_vr_base_min_outlier_ts_ns_wt -a ./__tt_vr_base_min_outlier_ts_ns+orig -expr 'min(1,(a/819.000000))'\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__tt_vr_base_min_outlier_ts_ns_wt+orig.BRIK\n", "#++ Aligning anat data to epi data\n", "#Script is running (command trimmed):\n", " 3dAllineate -lpc -wtprefix ./__tt_sub-08_T1w_ns_al_junk_wtal -weight ./__tt_vr_base_min_outlier_ts_ns_wt+orig -source ./__tt_sub-08_T1w_ns+orig -prefix ./sub-08_T1w_al_junk -base ./__tt_vr_base_min_outlier_ts_ns+orig -cmass -1Dmatrix_save ./sub-08_T1w_al_junk_mat.aff12.1D -master BASE -mast_dxyz 1.000000 -weight_frac 1.0 -maxrot 6 -maxshf 10 -VERB -warp aff -source_automask+4 -twobest 11 -twopass -VERB -maxrot 45 -maxshf 40 -fineblur 1 -source_automask+2 \n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Option '-cmass' enables center-of-mass code = 7 = +xyz\n", "++ Source dataset: ./__tt_sub-08_T1w_ns+orig.HEAD\n", "++ Base dataset: ./__tt_vr_base_min_outlier_ts_ns+orig.HEAD\n", "++ Loading datasets into memory\n", "++ 1583872 voxels in -source_automask+2\n", "++ largeness ==> set -twobest 29\n", "++ Zero-pad: ybot=8 ytop=3\n", "++ Zero-pad: zbot=7 ztop=5\n", "++ 38906 voxels [15.6%] in weight mask\n", "++ Output dataset ./__tt_sub-08_T1w_ns_al_junk_wtal+orig.BRIK\n", "++ Number of points for matching = 38906\n", "++ NOTE: base and source coordinate systems have different handedness\n", " + Orientations: base=Right handed (LPI); source=Left handed (RPI)\n", " + - It is nothing to worry about: 3dAllineate aligns based on coordinates.\n", " + - But it is always important to check the alignment visually to be sure.\n", "++ Local correlation: blok type = 'TOHD(17.0941)'\n", "++ base center of mass = 31.963 35.048 27.741 (index)\n", " + source center of mass = 84.800 114.693 116.298 (index)\n", " + source-target CM = 86.190 -3.441 -1.709 (xyz)\n", " + estimated center of mass shifts = 86.190 -3.441 -1.709\n", "++ shift param auto-range: 25.5..146.9 -74.7..67.8 -67.2..63.8\n", " + Range param#4 [z-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#5 [x-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#6 [y-angle] = -6.000000 .. 6.000000 center = 0.000000\n", " + Range param#1 [x-shift] = 76.190132 .. 96.190132 center = 86.190132\n", " + Range param#2 [y-shift] = -13.440697 .. 6.559303 center = -3.440697\n", " + Range param#3 [z-shift] = -11.708786 .. 8.291214 center = -1.708786\n", " + Range param#4 [z-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#5 [x-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#6 [y-angle] = -45.000000 .. 45.000000 center = 0.000000\n", " + Range param#1 [x-shift] = 46.190132 .. 126.190132 center = 86.190132\n", " + Range param#2 [y-shift] = -43.440697 .. 36.559303 center = -3.440697\n", " + Range param#3 [z-shift] = -41.708786 .. 38.291214 center = -1.708786\n", " + 12 free parameters\n", "++ Normalized (unitless) convergence radius = 0.0000088\n", "++ Final parameter search ranges:\n", " + x-shift = 46.190 .. 126.190\n", " + y-shift = -43.441 .. 36.559\n", " + z-shift = -41.709 .. 38.291\n", " + z-angle = -45.000 .. 45.000\n", " + x-angle = -45.000 .. 45.000\n", " + y-angle = -45.000 .. 45.000\n", " + x-scale = 0.711 .. 1.406\n", " + y-scale = 0.711 .. 1.406\n", " + z-scale = 0.711 .. 1.406\n", " + y/x-shear = -0.111 .. 0.111\n", " + z/x-shear = -0.111 .. 0.111\n", " + z/y-shear = -0.111 .. 0.111\n", "++ changing output grid spacing to 1.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ======= Allineation of 1 sub-bricks using Local Pearson Correlation Signed =======\n", " + source mask has 1583872 [out of 11534336] voxels\n", " + base mask has 52253 [out of 249600] voxels\n", "++ ========== sub-brick #0 ========== [total CPU to here=0.0 s]\n", "++ *** Coarse pass begins ***\n", " + * Enter alignment setup routine\n", " + - copying base image\n", " + - copying source image\n", " + - Smoothing base; radius=4.00\n", " + - Smoothing source; radius=4.00\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - copying weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + - Search for coarse starting parameters\n", " + 32391 total points stored in 63 'TOHD(17.5558)' bloks (0 duplicates)\n", " + - number of free params = 6\n", " + - Test (64+191)*64 params [top5=*o+-.]:#o+o-.+.o--.--+oo-.++-.o-+-.+o+o---+.--.oo.+++o+$+.--.+..o.o + - best 88 costs found:\n", " o= 0 v=-0.078395: 86.19 -3.44 -1.71 0.00 0.00 0.00 [grid]\n", " o= 1 v=-0.024170: 91.62 4.15 28.38 -38.19 22.74 -41.67 [rand]\n", " o= 2 v=-0.022830: 100.19 -18.97 33.97 -14.61 -39.00 -28.71 [rand]\n", " o= 3 v=-0.022358: 92.86 -30.11 24.96 7.50 -30.00 -30.00 [grid]\n", " o= 4 v=-0.022101: 121.80 -7.85 -38.58 -37.76 24.22 3.86 [rand]\n", " o= 5 v=-0.021851: 97.68 -19.75 -35.46 -19.17 13.96 2.56 [rand]\n", " o= 6 v=-0.021730: 122.84 -20.67 20.55 5.26 -41.39 -40.03 [rand]\n", " o= 7 v=-0.021515: 101.83 -12.20 -35.54 -23.16 17.17 -3.59 [rand]\n", " o= 8 v=-0.021205: 91.12 -0.47 27.39 -40.99 18.21 -33.12 [rand]\n", " o= 9 v=-0.020806: 121.80 -7.85 -38.58 -37.76 24.22 -3.86 [rand]\n", " o=10 v=-0.020703: 97.68 -19.75 -35.46 -19.17 13.96 -2.56 [rand]\n", " o=11 v=-0.020229: 121.80 0.97 35.16 37.76 -24.22 -3.86 [rand]\n", " o=12 v=-0.020075: 90.34 20.37 30.18 31.52 -11.26 -33.63 [rand]\n", " o=13 v=-0.019908: 100.19 -18.97 33.97 14.61 -39.00 -28.71 [rand]\n", " o=14 v=-0.019694: 120.99 -17.22 -35.72 10.62 -7.10 -10.42 [rand]\n", " o=15 v=-0.019540: 119.22 1.58 -38.52 -11.98 4.28 -19.20 [rand]\n", " o=16 v=-0.019170: 88.48 -10.62 -33.40 -10.97 18.37 5.04 [rand]\n", " o=17 v=-0.018913: 121.80 0.97 -38.58 -37.76 24.22 3.86 [rand]\n", " o=18 v=-0.018894: 96.65 -30.71 19.79 -34.95 -5.03 -42.69 [rand]\n", " o=19 v=-0.018891: 115.81 31.17 35.11 24.31 -11.89 -2.84 [rand]\n", " o=20 v=-0.018703: 92.86 -30.11 24.96 -7.50 -30.00 -30.00 [grid]\n", " o=21 v=-0.018636: 115.81 31.17 35.11 24.31 -11.89 2.84 [rand]\n", " o=22 v=-0.018271: 74.70 12.87 -35.46 19.17 13.96 2.56 [rand]\n", " o=23 v=-0.018249: 83.90 -10.62 -33.40 -10.97 18.37 5.04 [rand]\n", " o=24 v=-0.018182: 119.22 -8.46 -38.52 -11.98 4.28 -19.20 [rand]\n", " o=25 v=-0.018157: 112.86 3.23 -28.38 -30.00 7.50 7.50 [grid]\n", " o=26 v=-0.018092: 113.03 -16.54 -34.29 -39.07 28.37 8.01 [rand]\n", " o=27 v=-0.018024: 121.80 -7.85 35.16 37.76 -24.22 -3.86 [rand]\n", " o=28 v=-0.017957: 91.12 -6.41 27.39 -40.99 18.21 -33.12 [rand]\n", " o=29 v=-0.017956: 101.83 -12.20 -35.54 -23.16 17.17 3.59 [rand]\n", " o=30 v=-0.017508: 120.99 -17.22 -35.72 -10.62 -7.10 -10.42 [rand]\n", " o=31 v=-0.017362: 74.70 12.87 -35.46 19.17 13.96 -2.56 [rand]\n", " o=32 v=-0.017349: 120.99 -17.22 -35.72 -10.62 7.10 -10.42 [rand]\n", " o=33 v=-0.016693: 105.31 19.97 -35.01 -37.88 13.88 18.42 [rand]\n", " o=34 v=-0.016675: 102.99 15.02 30.65 10.10 -16.32 -39.31 [rand]\n", " o=35 v=-0.016669: 105.31 19.97 -35.01 -37.88 13.88 -18.42 [rand]\n", " o=36 v=-0.016632: 120.99 -17.22 -35.72 10.62 7.10 -10.42 [rand]\n", " o=37 v=-0.016450: 99.53 -27.69 29.08 6.84 -32.76 -20.90 [rand]\n", " o=38 v=-0.016261: 79.52 -30.11 24.96 -30.00 -7.50 -30.00 [grid]\n", " o=39 v=-0.016134: 99.35 34.44 35.49 14.03 -8.39 -25.20 [rand]\n", " o=40 v=-0.016094: 79.78 30.50 -38.28 -19.28 27.13 15.13 [rand]\n", " o=41 v=-0.015858: 95.39 -15.21 -23.44 -6.82 34.51 24.39 [rand]\n", " o=42 v=-0.015801: 120.99 -17.22 -35.72 10.62 -7.10 10.42 [rand]\n", " o=43 v=-0.015734: 70.55 5.32 -35.54 23.16 17.17 -3.59 [rand]\n", " o=44 v=-0.015723: 67.07 19.97 -35.01 37.88 13.88 -18.42 [rand]\n", " o=45 v=-0.015700: 92.86 23.23 24.96 30.00 -7.50 -30.00 [grid]\n", " o=46 v=-0.015623: 113.12 -31.58 -39.65 15.05 4.71 -12.78 [rand]\n", " o=47 v=-0.015567: 92.86 -10.11 -28.38 -7.50 7.50 30.00 [grid]\n", " o=48 v=-0.015330: 88.48 -10.62 -33.40 -10.97 18.37 -5.04 [rand]\n", " o=49 v=-0.015192: 92.03 -32.53 20.97 30.43 -41.57 -36.66 [rand]\n", " o=50 v=-0.015111: 103.24 -26.13 22.54 -12.15 -12.44 -39.75 [rand]\n", " o=51 v=-0.015075: 122.78 -30.74 29.53 -25.97 -37.53 -40.21 [rand]\n", " o=52 v=-0.014925: 92.86 -10.11 -28.38 -7.50 30.00 30.00 [grid]\n", " o=53 v=-0.014904: 121.80 0.97 -38.58 -37.76 24.22 -3.86 [rand]\n", " o=54 v=-0.014835: 102.99 -21.90 30.65 -10.10 -16.32 -39.31 [rand]\n", " o=55 v=-0.014711: 102.99 15.02 -34.07 -10.10 -16.32 39.31 [rand]\n", " o=56 v=-0.014651: 119.22 -8.46 -38.52 -11.98 -4.28 -19.20 [rand]\n", " o=57 v=-0.014527: 99.35 -41.33 -38.90 14.03 8.39 -25.20 [rand]\n", " o=58 v=-0.014469: 70.55 -12.20 -35.54 23.16 17.17 3.59 [rand]\n", " o=59 v=-0.014214: 121.80 -7.85 35.16 37.76 -24.22 3.86 [rand]\n", " o=60 v=-0.014171: 70.55 -12.20 -35.54 23.16 17.17 -3.59 [rand]\n", " o=61 v=-0.014132: 94.85 -27.60 34.86 27.41 -42.10 -24.35 [rand]\n", " o=62 v=-0.014108: 92.86 -10.11 -28.38 30.00 7.50 7.50 [grid]\n", " o=63 v=-0.013985: 92.61 -37.38 -38.28 19.28 27.13 -15.13 [rand]\n", " o=64 v=-0.013771: 56.91 -19.20 28.15 13.45 -19.96 14.96 [rand]\n", " o=65 v=-0.013738: 104.93 -39.84 -34.76 24.90 4.74 -17.23 [rand]\n", " o=66 v=-0.013600: 92.86 3.23 -28.38 -7.50 30.00 30.00 [grid]\n", " o=67 v=-0.013545: 102.99 15.02 -34.07 10.10 -16.32 39.31 [rand]\n", " o=68 v=-0.013506: 97.68 12.87 -35.46 -19.17 13.96 -2.56 [rand]\n", " o=69 v=-0.013420: 92.86 3.23 24.96 30.00 -30.00 -30.00 [grid]\n", " o=70 v=-0.013384: 83.90 -10.62 -33.40 -10.97 18.37 -5.04 [rand]\n", " o=71 v=-0.013341: 115.81 -38.05 -38.52 24.31 -11.89 -2.84 [rand]\n", " o=72 v=-0.013295: 59.26 -31.58 36.24 15.05 -4.71 12.78 [rand]\n", " o=73 v=-0.013221: 79.78 30.50 -38.28 19.28 27.13 15.13 [rand]\n", " o=74 v=-0.013191: 59.35 9.66 -34.29 39.07 28.37 -8.01 [rand]\n", " o=75 v=-0.013149: 118.40 -32.49 34.43 -40.41 -19.09 -40.75 [rand]\n", " o=76 v=-0.013072: 70.55 5.32 -35.54 23.16 17.17 3.59 [rand]\n", " o=77 v=-0.013043: 65.94 23.84 -36.19 37.90 5.03 3.08 [rand]\n", " o=78 v=-0.012929: 92.86 -10.11 -28.38 7.50 7.50 7.50 [grid]\n", " o=79 v=-0.012857: 60.67 -34.78 32.57 42.46 -41.07 35.63 [rand]\n", " o=80 v=-0.012789: 99.35 -41.33 35.49 14.03 -8.39 -25.20 [rand]\n", " o=81 v=-0.012665: 97.68 12.87 -35.46 -19.17 13.96 2.56 [rand]\n", " o=82 v=-0.012652: 112.86 -30.11 -28.38 30.00 7.50 7.50 [grid]\n", " o=83 v=-0.012596: 104.93 -39.84 31.34 -24.90 -4.74 -17.23 [rand]\n", " o=84 v=-0.012570: 83.90 -10.62 -33.40 10.97 18.37 -5.04 [rand]\n", " o=85 v=-0.012553: 92.86 -10.11 -28.38 -7.50 30.00 7.50 [grid]\n", " o=86 v=-0.012529: 92.86 -10.11 24.96 -7.50 -7.50 -30.00 [grid]\n", " o=87 v=-0.012519: 80.37 10.75 27.93 38.21 -15.41 -13.51 [rand]\n", " + - A little optimization:*[#16335=-0.0833147] *[#16338=-0.0996876] *[#16339=-0.122258] *[#16342=-0.125257] *[#16344=-0.126031] *[#16346=-0.127847] *[#16349=-0.129014] *[#16352=-0.129155] *[#16355=-0.129328] *[#16356=-0.129367] *[#16360=-0.12939] *[#16362=-0.129425] *[#16363=-0.129437] *[#16366=-0.129478] ........................................................................................\n", " + - costs of the above after a little optimization:\n", " *o= 0 v=-0.129478: 86.56 -2.92 0.24 -1.17 0.39 0.22 [grid] [f=50]\n", " o= 1 v=-0.025208: 91.85 3.62 28.37 -37.98 22.65 -41.84 [rand] [f=41]\n", " o= 2 v=-0.037638: 97.07 -22.70 36.86 -10.25 -41.88 -25.72 [rand] [f=62]\n", " o= 3 v=-0.026228: 94.01 -30.11 26.00 6.89 -35.26 -29.95 [grid] [f=67]\n", " o= 4 v=-0.025109: 122.87 -3.88 -38.32 -37.64 24.31 3.06 [rand] [f=61]\n", " o= 5 v=-0.023467: 97.59 -19.20 -35.11 -18.55 14.45 2.78 [rand] [f=47]\n", " o= 6 v=-0.032558: 124.34 -28.56 20.34 5.63 -41.94 -44.51 [rand] [f=52]\n", " o= 7 v=-0.024558: 103.87 -12.91 -36.21 -26.12 14.64 -5.56 [rand] [f=68]\n", " o= 8 v=-0.026595: 92.49 0.17 27.38 -37.57 16.88 -34.60 [rand] [f=47]\n", " o= 9 v=-0.025748: 122.87 -7.62 -36.96 -38.73 25.59 5.74 [rand] [f=37]\n", " o=10 v=-0.023050: 97.81 -19.65 -34.79 -19.15 13.89 2.05 [rand] [f=36]\n", " o=11 v=-0.034817: 125.56 3.51 37.77 32.42 -27.27 -8.86 [rand] [f=47]\n", " o=12 v=-0.026636: 90.62 19.43 30.46 30.75 -11.47 -27.04 [rand] [f=54]\n", " o=13 v=-0.029615: 95.65 -16.42 33.99 15.06 -38.94 -27.36 [rand] [f=44]\n", " o=14 v=-0.025724: 121.05 -17.94 -34.73 10.44 -8.00 -4.28 [rand] [f=40]\n", " o=15 v=-0.027042: 119.10 0.10 -39.89 -13.81 11.33 -14.01 [rand] [f=42]\n", " o=16 v=-0.029803: 88.38 -15.30 -33.36 -10.38 12.73 4.37 [rand] [f=58]\n", " o=17 v=-0.025471: 120.77 -7.35 -37.30 -34.55 25.97 6.34 [rand] [f=51]\n", " o=18 v=-0.021813: 96.06 -31.35 20.30 -37.16 -7.69 -44.56 [rand] [f=37]\n", " o=19 v=-0.039610: 120.38 31.62 37.96 31.21 -11.89 -1.49 [rand] [f=60]\n", " o=20 v=-0.030208: 99.98 -30.12 26.92 -4.50 -28.25 -34.17 [grid] [f=62]\n", " o=21 v=-0.033973: 115.95 30.51 37.09 27.08 -7.23 4.45 [rand] [f=45]\n", " o=22 v=-0.024448: 68.66 12.44 -38.44 19.11 14.37 2.63 [rand] [f=52]\n", " o=23 v=-0.030816: 88.36 -12.05 -34.28 -12.31 11.56 5.36 [rand] [f=57]\n", " o=24 v=-0.026831: 119.70 -7.09 -37.52 -10.99 4.50 -13.47 [rand] [f=43]\n", " o=25 v=-0.021834: 110.54 4.11 -28.89 -31.19 6.72 7.75 [grid] [f=46]\n", " o=26 v=-0.029659: 112.69 -13.96 -35.31 -28.09 23.99 4.39 [rand] [f=64]\n", " o=27 v=-0.036380: 124.25 -11.62 38.17 33.28 -31.14 -4.50 [rand] [f=57]\n", " o=28 v=-0.026330: 92.18 1.00 27.77 -39.33 18.23 -32.61 [rand] [f=51]\n", " o=29 v=-0.022613: 102.63 -11.90 -37.10 -25.08 13.86 -0.27 [rand] [f=35]\n", " o=30 v=-0.023502: 119.40 -16.34 -38.41 -9.52 -2.70 -13.24 [rand] [f=49]\n", " o=31 v=-0.024601: 69.46 14.02 -37.34 19.44 12.69 -2.24 [rand] [f=44]\n", " o=32 v=-0.025824: 119.43 -8.11 -37.98 -7.01 10.78 -13.52 [rand] [f=83]\n", " o=33 v=-0.028485: 111.32 17.78 -33.51 -44.98 10.27 21.60 [rand] [f=50]\n", " o=34 v=-0.021606: 103.05 11.34 30.91 10.44 -16.63 -39.34 [rand] [f=54]\n", " o=35 v=-0.025812: 105.92 18.80 -34.03 -38.48 13.27 -12.88 [rand] [f=49]\n", " o=36 v=-0.023639: 120.56 -21.02 -38.02 5.46 4.63 -15.69 [rand] [f=51]\n", " o=37 v=-0.022421: 96.59 -28.00 29.09 6.71 -31.63 -25.55 [rand] [f=39]\n", " o=38 v=-0.020190: 79.59 -26.31 24.88 -29.92 -8.68 -28.78 [grid] [f=49]\n", " o=39 v=-0.021749: 96.94 33.57 35.86 11.35 -6.94 -19.87 [rand] [f=66]\n", " o=40 v=-0.019895: 82.95 28.96 -37.93 -17.75 28.76 13.02 [rand] [f=37]\n", " o=41 v=-0.021356: 91.66 -14.96 -22.76 -7.10 34.58 24.82 [rand] [f=46]\n", " o=42 v=-0.027107: 124.49 -20.18 -32.05 10.69 -7.44 9.91 [rand] [f=45]\n", " o=43 v=-0.026319: 68.91 11.17 -38.05 20.29 19.40 -6.43 [rand] [f=56]\n", " o=44 v=-0.024913: 67.84 15.42 -35.49 37.39 14.37 -18.96 [rand] [f=37]\n", " o=45 v=-0.023354: 93.76 23.30 27.77 29.47 -7.75 -31.27 [grid] [f=40]\n", " o=46 v=-0.019407: 109.48 -31.82 -39.14 15.51 4.62 -13.43 [rand] [f=46]\n", " o=47 v=-0.022879: 92.79 -14.50 -30.57 -6.67 8.67 35.86 [grid] [f=59]\n", " o=48 v=-0.028698: 88.61 -13.59 -36.48 -10.26 12.62 0.84 [rand] [f=53]\n", " o=49 v=-0.019705: 92.37 -28.32 21.44 30.84 -39.72 -37.84 [rand] [f=65]\n", " o=50 v=-0.022741: 99.40 -24.95 21.80 -13.00 -13.24 -40.83 [rand] [f=46]\n", " o=51 v=-0.025023: 125.97 -26.96 37.93 -27.17 -36.78 -38.74 [rand] [f=57]\n", " o=52 v=-0.018040: 92.91 -9.23 -27.61 -8.65 30.90 29.96 [grid] [f=65]\n", " o=53 v=-0.026083: 119.13 -8.06 -39.09 -31.95 24.41 -0.92 [rand] [f=47]\n", " o=54 v=-0.021481: 97.21 -15.76 28.19 -9.68 -14.20 -39.20 [rand] [f=52]\n", " o=55 v=-0.029622: 102.22 23.54 -40.40 -8.51 -15.66 40.94 [rand] [f=57]\n", " o=56 v=-0.024318: 119.26 -12.01 -40.99 -6.33 -3.92 -15.68 [rand] [f=67]\n", " o=57 v=-0.016309: 99.90 -40.50 -41.08 13.83 7.03 -28.14 [rand] [f=41]\n", " o=58 v=-0.020067: 70.82 -7.68 -36.96 23.60 18.14 3.28 [rand] [f=53]\n", " o=59 v=-0.029083: 122.02 -8.54 38.29 35.74 -24.75 2.19 [rand] [f=40]\n", " o=60 v=-0.018760: 69.81 -16.27 -37.23 22.97 16.08 -3.59 [rand] [f=33]\n", " o=61 v=-0.027637: 95.70 -14.89 33.59 24.68 -37.62 -25.78 [rand] [f=55]\n", " o=62 v=-0.021869: 90.87 -7.14 -30.34 27.19 5.03 7.77 [grid] [f=44]\n", " o=63 v=-0.016562: 93.04 -33.28 -38.26 19.24 27.71 -15.44 [rand] [f=35]\n", " o=64 v=-0.017593: 53.52 -19.20 30.34 13.28 -18.83 16.03 [rand] [f=60]\n", " o=65 v=-0.020603: 105.13 -39.25 -35.37 22.69 13.32 -21.57 [rand] [f=50]\n", " o=66 v=-0.022279: 93.18 9.76 -30.87 -8.28 32.53 27.85 [grid] [f=76]\n", " o=67 v=-0.023893: 102.80 20.21 -36.92 8.62 -14.85 40.53 [rand] [f=50]\n", " o=68 v=-0.030230: 94.78 11.44 -41.70 -27.01 18.02 -15.08 [rand] [f=53]\n", " o=69 v=-0.025604: 92.34 2.49 30.25 29.16 -28.24 -27.67 [grid] [f=63]\n", " o=70 v=-0.028099: 84.44 -14.51 -37.03 -5.85 10.74 5.83 [rand] [f=62]\n", " o=71 v=-0.024499: 117.76 -30.97 -33.13 30.69 -12.85 -3.72 [rand] [f=61]\n", " o=72 v=-0.017104: 59.48 -35.24 36.02 15.19 -4.00 12.18 [rand] [f=44]\n", " o=73 v=-0.020121: 78.49 34.05 -38.37 19.48 26.09 14.47 [rand] [f=43]\n", " o=74 v=-0.027725: 66.37 14.95 -34.10 33.91 20.53 -10.37 [rand] [f=70]\n", " o=75 v=-0.021457: 118.15 -34.24 32.27 -35.98 -26.19 -42.12 [rand] [f=53]\n", " o=76 v=-0.033583: 84.74 5.08 -40.21 22.43 10.74 3.93 [rand] [f=82]\n", " o=77 v=-0.022471: 66.16 19.67 -38.88 38.58 4.87 -0.04 [rand] [f=62]\n", " o=78 v=-0.022165: 93.72 -7.71 -26.28 17.15 7.89 8.13 [grid] [f=39]\n", " o=79 v=-0.019392: 56.80 -35.73 32.75 42.93 -41.01 35.05 [rand] [f=40]\n", " o=80 v=-0.024286: 99.09 -41.34 36.23 14.84 -11.57 -20.31 [rand] [f=40]\n", " o=81 v=-0.027989: 100.32 13.71 -36.07 -26.64 6.16 -4.67 [rand] [f=61]\n", " o=82 v=-0.018578: 114.04 -25.07 -27.78 31.22 5.83 3.98 [grid] [f=41]\n", " o=83 v=-0.020005: 108.98 -40.26 31.30 -22.78 -4.31 -16.42 [rand] [f=52]\n", " o=84 v=-0.022922: 85.64 -10.65 -38.37 5.12 14.67 -7.14 [rand] [f=60]\n", " o=85 v=-0.022479: 89.13 -11.37 -28.03 -5.87 37.76 7.84 [grid] [f=59]\n", " o=86 v=-0.019822: 93.58 -9.73 28.66 -9.65 -11.27 -31.86 [grid] [f=57]\n", " o=87 v=-0.031659: 80.56 10.85 31.85 39.61 -23.66 -12.54 [rand] [f=68]\n", " + - saving # 0 for use with twobest\n", " + - saving #19 for use with twobest\n", " + - saving # 2 for use with twobest\n", " + - saving #27 for use with twobest\n", " + - saving #11 for use with twobest\n", " + - saving #21 for use with twobest\n", " + - saving #76 for use with twobest\n", " + - saving # 6 for use with twobest\n", " + - saving #87 for use with twobest\n", " + - saving #23 for use with twobest\n", " + - saving #68 for use with twobest\n", " + - saving #20 for use with twobest\n", " + - skip #16 for twobest: too close to set #23\n", " + - saving #26 for use with twobest\n", " + - saving #55 for use with twobest\n", " + - saving #13 for use with twobest\n", " + - saving #59 for use with twobest\n", " + - skip #48 for twobest: too close to set #16\n", " + - saving #33 for use with twobest\n", " + - saving #70 for use with twobest\n", " + - saving #81 for use with twobest\n", " + - saving #74 for use with twobest\n", " + - saving #61 for use with twobest\n", " + - saving #42 for use with twobest\n", " + - saving #15 for use with twobest\n", " + - saving #24 for use with twobest\n", " + - saving #12 for use with twobest\n", " + - saving # 8 for use with twobest\n", " + - skip #28 for twobest: too close to set # 8\n", " + - saving #43 for use with twobest\n", " + - saving # 3 for use with twobest\n", " + - saving #53 for use with twobest\n", " + - Coarse startup search net CPU time = 0.0 s\n", "++ Start refinement #1 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=3.11\n", " + - Smoothing source; radius=3.11\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 31909 total points stored in 63 'TOHD(17.3748)' bloks (0 duplicates)\n", "*[#20978=-0.169331] *[#20986=-0.170313] *[#21000=-0.170526] *[#21001=-0.172023] *[#21005=-0.172274] *[#21008=-0.173681] *[#21009=-0.1739] *[#21013=-0.174339] *[#21016=-0.175108] *[#21017=-0.176175] *[#21018=-0.176452] *[#21019=-0.176809] *[#21021=-0.177261] *[#21024=-0.17761] *[#21026=-0.178186] *[#21027=-0.178833] *[#21028=-0.179343] *[#21031=-0.179472] *[#21040=-0.180395] *[#21043=-0.180428] *[#21045=-0.180429] *[#21047=-0.180514] *[#21048=-0.180599] *[#21049=-0.180672] *[#21051=-0.180752] *[#21052=-0.180786] *[#21053=-0.180808] *[#21054=-0.18082] *[#21055=-0.180832] *[#21056=-0.180858] *[#21057=-0.180864] *[#21059=-0.180909] *[#21060=-0.180915] *[#21061=-0.180934] *[#21062=-0.181065] *[#21063=-0.181087] *[#21064=-0.181114] *[#21065=-0.181253] *[#21068=-0.181324] *[#21069=-0.181432] *[#21070=-0.18147] *[#21073=-0.181504] *[#21074=-0.18155] *[#21075=-0.181565] \n", " + - param set #1 has cost=-0.181565 [o=0 t=0]\n", " + -- Parameters = 86.2417 -3.0340 0.1839 -0.7927 0.0198 0.1572 0.9849 1.0186 0.9937 -0.0067 -0.0009 -0.0030\n", " + - param set #2 has cost=-0.029599 [o=19 t=1]\n", " + -- Parameters = 120.3747 31.4269 37.8606 31.0260 -11.8449 -1.1094 1.0067 0.9979 0.9877 -0.0009 0.0021 -0.0001\n", " + - param set #3 has cost=-0.032947 [o=2 t=2]\n", " + -- Parameters = 97.1422 -22.9068 36.7125 -10.4271 -42.0244 -25.8414 0.9953 0.9994 0.9958 -0.0016 0.0013 -0.0002\n", " + - param set #4 has cost=-0.025913 [o=27 t=3]\n", " + -- Parameters = 124.2213 -11.7386 37.9231 33.3757 -31.0928 -4.5253 1.0015 1.0012 0.9970 0.0002 0.0015 0.0004\n", " + - param set #5 has cost=-0.028112 [o=11 t=4]\n", " + -- Parameters = 122.3987 3.2658 37.8554 32.0364 -27.2812 -8.8197 0.9993 1.0000 0.9989 -0.0002 -0.0001 -0.0002\n", " + - param set #6 has cost=-0.027098 [o=21 t=5]\n", " + -- Parameters = 115.6655 30.6513 37.9152 27.7891 -10.1989 1.4674 0.9984 0.9912 0.9884 0.0004 -0.0012 0.0008\n", " + - param set #7 has cost=-0.025330 [o=76 t=6]\n", " + -- Parameters = 84.5296 4.8670 -40.1157 22.4018 10.4986 3.9660 1.0038 0.9999 1.0018 -0.0005 -0.0003 0.0016\n", " + - param set #8 has cost=-0.027671 [o=6 t=7]\n", " + -- Parameters = 124.4184 -28.3909 20.3705 5.2792 -41.8702 -44.1177 1.0047 0.9790 1.0062 -0.0035 -0.0002 -0.0054\n", " + - param set #9 has cost=-0.026880 [o=87 t=8]\n", " + -- Parameters = 80.6211 10.7956 31.8627 39.3826 -23.6462 -12.7049 0.9977 1.0051 0.9899 -0.0002 0.0006 -0.0006\n", " + - param set #10 has cost=-0.025438 [o=23 t=9]\n", " + -- Parameters = 88.5119 -12.3057 -34.5255 -12.2625 11.3388 4.8335 1.0036 0.9951 0.9911 0.0147 -0.0003 -0.0010\n", " + - param set #11 has cost=-0.025056 [o=68 t=10]\n", " + -- Parameters = 95.0321 11.2848 -41.6982 -27.1384 18.0539 -14.7625 0.9967 0.9975 1.0046 0.0010 -0.0017 -0.0002\n", " + - param set #12 has cost=-0.026301 [o=20 t=11]\n", " + -- Parameters = 99.7295 -29.7606 26.8107 -4.8322 -28.5727 -34.7626 1.0025 0.9939 1.0000 0.0001 -0.0010 0.0011\n", " + - param set #13 has cost=-0.024785 [o=26 t=12]\n", " + -- Parameters = 112.7484 -13.9672 -35.1899 -28.0512 24.1536 4.0959 0.9974 1.0021 1.0031 -0.0009 0.0004 -0.0004\n", " + - param set #14 has cost=-0.023818 [o=55 t=13]\n", " + -- Parameters = 102.3059 23.5118 -40.3609 -8.3749 -15.9182 41.1731 0.9987 1.0004 1.0059 0.0001 -0.0012 -0.0005\n", " + - param set #15 has cost=-0.025346 [o=13 t=14]\n", " + -- Parameters = 95.5049 -16.5664 34.3042 14.7561 -38.9196 -27.3528 1.0042 1.0061 0.9993 0.0005 -0.0002 -0.0014\n", " + - param set #16 has cost=-0.028890 [o=59 t=15]\n", " + -- Parameters = 121.0495 -8.3479 38.2577 35.4740 -28.4600 -2.1114 0.9475 0.9673 0.9742 0.0001 -0.0099 0.0125\n", " + - param set #17 has cost=-0.022857 [o=33 t=16]\n", " + -- Parameters = 111.2125 17.7604 -33.8452 -44.8026 10.9680 21.5318 0.9972 1.0001 1.0062 -0.0000 0.0110 -0.0001\n", " + - param set #18 has cost=-0.024121 [o=70 t=17]\n", " + -- Parameters = 84.6139 -14.8654 -35.5807 -6.2385 9.4374 4.5597 0.9971 1.0019 0.9957 -0.0008 0.0001 -0.0020\n", " + - param set #19 has cost=-0.026862 [o=81 t=18]\n", " + -- Parameters = 100.4019 15.0228 -35.6483 -31.5537 6.5158 -4.5506 0.9870 0.9952 0.9971 0.0007 0.0006 0.0008\n", " + - param set #20 has cost=-0.019718 [o=74 t=19]\n", " + -- Parameters = 66.3511 14.9204 -34.0041 33.9302 20.6377 -10.4785 0.9995 1.0003 0.9990 0.0002 -0.0001 -0.0002\n", " + - param set #21 has cost=-0.024596 [o=61 t=20]\n", " + -- Parameters = 94.9530 -15.7971 34.3648 21.1914 -38.2038 -26.5993 0.9967 1.0153 0.9925 0.0030 0.0004 -0.0029\n", " + - param set #22 has cost=-0.030211 [o=42 t=21]\n", " + -- Parameters = 125.4314 -20.5678 -30.0616 11.1232 -9.1532 7.8234 0.9842 0.9823 0.9478 -0.0144 -0.0209 0.0117\n", " + - param set #23 has cost=-0.022798 [o=15 t=22]\n", " + -- Parameters = 119.2795 0.0863 -39.9379 -13.8465 11.2937 -14.2121 0.9972 0.9982 1.0023 0.0015 -0.0005 -0.0005\n", " + - param set #24 has cost=-0.022617 [o=24 t=23]\n", " + -- Parameters = 119.5177 -7.0698 -37.4677 -10.8037 4.7487 -13.3916 1.0004 1.0044 0.9954 0.0003 -0.0039 -0.0012\n", " + - param set #25 has cost=-0.025054 [o=12 t=24]\n", " + -- Parameters = 90.2415 19.2854 31.2812 30.8214 -12.2280 -26.6292 0.9929 0.9856 0.9532 -0.0054 0.0058 -0.0182\n", " + - param set #26 has cost=-0.022589 [o=8 t=25]\n", " + -- Parameters = 92.2565 -0.3541 27.7222 -37.8739 16.7082 -34.1457 1.0015 0.9972 0.9965 0.0001 0.0001 -0.0009\n", " + - param set #27 has cost=-0.023658 [o=43 t=26]\n", " + -- Parameters = 67.8001 10.6026 -38.1869 20.2024 17.6918 -6.5006 0.9989 0.9962 0.9715 0.0005 -0.0034 0.0218\n", " + - param set #28 has cost=-0.023512 [o=3 t=27]\n", " + -- Parameters = 93.6271 -30.3348 25.2672 6.4093 -34.2989 -30.7456 1.0028 0.9979 1.0102 0.0018 0.0004 -0.0028\n", " + - param set #29 has cost=-0.022179 [o=53 t=28]\n", " + -- Parameters = 119.1053 -8.1075 -39.0073 -32.2735 24.1427 -0.5844 0.9994 1.0016 1.0011 -0.0012 0.0000 0.0001\n", "*[#23803=-0.181994] *[#23804=-0.182059] *[#23808=-0.182443] *[#23813=-0.182802] *[#23817=-0.182824] *[#23821=-0.183125] \n", " + - param set #30 has cost=-0.183125 [o=-1 t=-1]\n", " + -- Parameters = 86.2790 -2.9386 0.2322 -0.5467 -0.0139 0.1276 0.9790 1.0183 0.9889 0.0075 0.0058 -0.0075\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.0636 \n", " + --- dist(#3,#1) = 0.467 \n", " + --- dist(#4,#1) = 0.489 \n", " + --- dist(#5,#1) = 0.47 \n", " + --- dist(#6,#1) = 0.475 \n", " + --- dist(#7,#1) = 0.47 \n", " + --- dist(#8,#1) = 0.492 \n", " + --- dist(#9,#1) = 0.471 \n", " + --- dist(#10,#1) = 0.444 \n", " + --- dist(#11,#1) = 0.449 \n", " + --- dist(#12,#1) = 0.388 \n", " + --- dist(#13,#1) = 0.474 \n", " + --- dist(#14,#1) = 0.434 \n", " + --- dist(#15,#1) = 0.432 \n", " + --- dist(#16,#1) = 0.504 \n", " + --- dist(#17,#1) = 0.524 \n", " + --- dist(#18,#1) = 0.388 \n", " + --- dist(#19,#1) = 0.443 \n", " + --- dist(#20,#1) = 0.427 \n", " + --- dist(#21,#1) = 0.448 \n", " + --- dist(#22,#1) = 0.507 \n", " + --- dist(#23,#1) = 0.48 \n", " + --- dist(#24,#1) = 0.381 \n", " + --- dist(#25,#1) = 0.492 \n", " + --- dist(#26,#1) = 0.502 \n", " + --- dist(#27,#1) = 0.471 \n", " + --- dist(#28,#1) = 0.415 \n", " + --- dist(#29,#1) = 0.49 \n", " + --- dist(#30,#1) = 0.428 \n", "++ Start refinement #2 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=2.42\n", " + - Smoothing source; radius=2.42\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 31999 total points stored in 64 'TOHD(17.2644)' bloks (0 duplicates)\n", "*[#23823=-0.208583] *[#23853=-0.209083] *[#23856=-0.209692] *[#23857=-0.21004] *[#23858=-0.210473] *[#23859=-0.210652] *[#23861=-0.210912] *[#23862=-0.21108] *[#23863=-0.211096] *[#23864=-0.211318] *[#23865=-0.211465] *[#23868=-0.211558] *[#23871=-0.211598] *[#23874=-0.211605] *[#23876=-0.211804] *[#23880=-0.211892] *[#23883=-0.212487] *[#23884=-0.212638] *[#23887=-0.212807] *[#23889=-0.212858] *[#23890=-0.212946] *[#23891=-0.213045] *[#23892=-0.213054] *[#23893=-0.213085] *[#23896=-0.213618] *[#23897=-0.214048] *[#23898=-0.2143] *[#23899=-0.214697] *[#23902=-0.214782] *[#23904=-0.215131] *[#23907=-0.215508] *[#23908=-0.21602] *[#23909=-0.21655] *[#23910=-0.216938] *[#23911=-0.21729] *[#23912=-0.217316] *[#23913=-0.217499] *[#23914=-0.217762] *[#23915=-0.217858] *[#23920=-0.218401] *[#23921=-0.218462] *[#23922=-0.218657] *[#23925=-0.219463] *[#23926=-0.219544] *[#23927=-0.219959] *[#23928=-0.220151] *[#23931=-0.220227] \n", " + - param set #1 has cost=-0.220227 [o=-1 t=-1]\n", " + -- Parameters = 86.5690 -3.1646 -0.1381 -0.8542 -1.9133 -0.7763 0.9848 1.0171 0.9535 -0.0108 0.0209 -0.0382\n", " + - param set #2 has cost=-0.216445 [o=0 t=0]\n", " + -- Parameters = 86.4148 -3.1639 -0.1179 -0.8652 -0.7590 -0.0405 0.9867 1.0242 0.9680 -0.0151 0.0021 -0.0159\n", " + - param set #3 has cost=-0.027810 [o=2 t=2]\n", " + -- Parameters = 97.2032 -22.9052 36.6921 -10.4554 -42.1013 -25.7685 0.9914 0.9972 0.9931 -0.0021 0.0004 0.0019\n", " + - param set #4 has cost=-0.030534 [o=42 t=21]\n", " + -- Parameters = 124.9320 -22.0031 -26.3056 8.7231 -2.9528 10.9929 0.9078 0.9429 0.9127 -0.0312 -0.0436 -0.0116\n", " + - param set #5 has cost=-0.024661 [o=19 t=1]\n", " + -- Parameters = 120.2512 31.5807 37.8833 31.4755 -11.7813 -0.9877 1.0280 0.9922 0.9858 -0.0015 0.0013 0.0011\n", " + - param set #6 has cost=-0.022586 [o=59 t=15]\n", " + -- Parameters = 121.0138 -8.5765 38.2813 35.5698 -28.5095 -2.1222 0.9444 0.9668 0.9787 0.0009 -0.0099 0.0127\n", " + - param set #7 has cost=-0.024438 [o=11 t=4]\n", " + -- Parameters = 122.3828 3.2625 37.8905 32.0936 -27.2969 -8.9957 0.9996 1.0008 0.9996 -0.0003 -0.0004 0.0002\n", " + - param set #8 has cost=-0.022973 [o=6 t=7]\n", " + -- Parameters = 124.5990 -28.5221 20.3574 5.1992 -41.4910 -44.5459 1.0133 0.9665 0.9986 -0.0044 -0.0021 -0.0082\n", " + - param set #9 has cost=-0.023141 [o=21 t=5]\n", " + -- Parameters = 115.3082 31.2509 37.9653 28.2268 -10.2700 2.1299 0.9881 0.9725 1.0137 0.0031 -0.0002 -0.0013\n", " + - param set #10 has cost=-0.020712 [o=87 t=8]\n", " + -- Parameters = 80.6871 10.7820 31.8608 39.2432 -23.8256 -12.8107 0.9960 1.0010 0.9862 0.0001 -0.0012 -0.0004\n", " + - param set #11 has cost=-0.023867 [o=81 t=18]\n", " + -- Parameters = 100.9144 15.5630 -35.5687 -30.9887 7.2817 -4.8546 0.9920 1.0234 0.9953 -0.0013 0.0007 -0.0033\n", " + - param set #12 has cost=-0.022773 [o=20 t=11]\n", " + -- Parameters = 99.3746 -29.8610 26.9858 -5.3618 -28.5046 -34.3145 1.0066 0.9859 1.0136 -0.0014 0.0000 0.0010\n", " + - param set #13 has cost=-0.021875 [o=27 t=3]\n", " + -- Parameters = 124.5604 -15.0908 37.9811 33.1165 -31.3178 -4.2711 1.0069 1.0029 0.9948 0.0004 0.0007 0.0018\n", " + - param set #14 has cost=-0.018972 [o=23 t=9]\n", " + -- Parameters = 88.7944 -12.1116 -34.5232 -12.0411 11.5798 4.8169 1.0017 0.9955 0.9899 0.0150 0.0007 -0.0000\n", " + - param set #15 has cost=-0.022093 [o=13 t=14]\n", " + -- Parameters = 94.6722 -16.0639 34.9181 15.7936 -38.3548 -28.1825 0.9908 0.9977 0.9904 -0.0019 -0.0004 -0.0028\n", " + - param set #16 has cost=-0.019604 [o=76 t=6]\n", " + -- Parameters = 84.2874 4.5998 -40.1267 21.8844 10.7009 4.2715 1.0055 0.9996 1.0026 -0.0011 -0.0010 0.0040\n", " + - param set #17 has cost=-0.018545 [o=68 t=10]\n", " + -- Parameters = 94.9844 11.4663 -41.6971 -27.1688 18.1245 -14.7945 0.9941 1.0035 1.0045 0.0090 -0.0015 -0.0008\n", " + - param set #18 has cost=-0.022035 [o=12 t=24]\n", " + -- Parameters = 90.4553 19.1335 31.0461 30.9460 -12.3561 -27.0333 0.9931 0.9841 0.9491 -0.0063 0.0070 -0.0183\n", " + - param set #19 has cost=-0.017809 [o=26 t=12]\n", " + -- Parameters = 112.7930 -14.0675 -34.9825 -28.0190 24.1066 3.9824 0.9955 1.0005 1.0055 -0.0008 0.0082 -0.0007\n", " + - param set #20 has cost=-0.022233 [o=61 t=20]\n", " + -- Parameters = 94.9835 -15.7922 34.2528 21.3591 -38.3023 -26.6743 0.9942 1.0155 0.9949 0.0025 0.0007 -0.0032\n", " + - param set #21 has cost=-0.021028 [o=70 t=17]\n", " + -- Parameters = 86.4718 -14.4547 -34.6323 -6.2583 9.6649 3.7010 0.9942 0.9844 0.9884 0.0090 0.0005 -0.0028\n", " + - param set #22 has cost=-0.017872 [o=55 t=13]\n", " + -- Parameters = 102.4708 23.5267 -40.2705 -8.5359 -16.0124 41.0981 1.0009 0.9972 1.0084 -0.0001 -0.0017 -0.0010\n", " + - param set #23 has cost=-0.017721 [o=43 t=26]\n", " + -- Parameters = 67.4275 10.6734 -38.2748 20.0915 17.9131 -6.3259 0.9971 0.9935 0.9725 0.0008 0.0052 0.0220\n", " + - param set #24 has cost=-0.020349 [o=3 t=27]\n", " + -- Parameters = 92.5580 -30.5120 25.0446 5.9667 -33.9224 -32.3783 0.9901 0.9827 0.9962 0.0134 0.0054 -0.0044\n", " + - param set #25 has cost=-0.018272 [o=33 t=16]\n", " + -- Parameters = 110.7879 17.5217 -34.1652 -44.9186 11.3923 22.6426 0.9815 0.9941 0.9763 -0.0011 0.0224 -0.0024\n", " + - param set #26 has cost=-0.016165 [o=15 t=22]\n", " + -- Parameters = 119.3371 0.1366 -40.0015 -13.9032 11.2916 -14.2405 0.9960 0.9969 1.0033 0.0023 -0.0007 -0.0005\n", " + - param set #27 has cost=-0.017790 [o=24 t=23]\n", " + -- Parameters = 119.5484 -7.0770 -37.5706 -10.9167 4.8044 -13.1528 1.0001 1.0034 0.9886 -0.0026 0.0023 -0.0026\n", " + - param set #28 has cost=-0.021054 [o=8 t=25]\n", " + -- Parameters = 92.1249 -0.7941 28.1167 -37.9315 16.4735 -34.0354 0.9818 0.9814 0.9791 -0.0018 -0.0013 -0.0009\n", " + - param set #29 has cost=-0.015293 [o=53 t=28]\n", " + -- Parameters = 119.0922 -8.1040 -38.9836 -32.2314 24.1018 -0.5725 1.0000 1.0027 1.0031 -0.0012 0.0001 0.0002\n", " + - param set #30 has cost=-0.014662 [o=74 t=19]\n", " + -- Parameters = 66.4003 14.9545 -34.0002 33.9259 20.6687 -10.5010 0.9998 1.0006 0.9992 0.0001 -0.0000 0.0007\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.1 \n", " + --- dist(#3,#1) = 0.48 \n", " + --- dist(#4,#1) = 0.46 \n", " + --- dist(#5,#1) = 0.475 \n", " + --- dist(#6,#1) = 0.475 \n", " + --- dist(#7,#1) = 0.443 \n", " + --- dist(#8,#1) = 0.476 \n", " + --- dist(#9,#1) = 0.486 \n", " + --- dist(#10,#1) = 0.373 \n", " + --- dist(#11,#1) = 0.48 \n", " + --- dist(#12,#1) = 0.43 \n", " + --- dist(#13,#1) = 0.438 \n", " + --- dist(#14,#1) = 0.39 \n", " + --- dist(#15,#1) = 0.476 \n", " + --- dist(#16,#1) = 0.412 \n", " + --- dist(#17,#1) = 0.431 \n", " + --- dist(#18,#1) = 0.446 \n", " + --- dist(#19,#1) = 0.356 \n", " + --- dist(#20,#1) = 0.5 \n", " + --- dist(#21,#1) = 0.43 \n", " + --- dist(#22,#1) = 0.519 \n", " + --- dist(#23,#1) = 0.49 \n", " + --- dist(#24,#1) = 0.502 \n", " + --- dist(#25,#1) = 0.436 \n", " + --- dist(#26,#1) = 0.468 \n", " + --- dist(#27,#1) = 0.477 \n", " + --- dist(#28,#1) = 0.498 \n", " + --- dist(#29,#1) = 0.486 \n", " + --- dist(#30,#1) = 0.423 \n", "++ Start refinement #3 on 30 coarse parameter sets\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=1.88\n", " + - Smoothing source; radius=1.88\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + - using 38906 points from base image [use_all=2]\n", " + * Exit alignment setup routine\n", " + 32677 total points stored in 67 'TOHD(17.1973)' bloks (0 duplicates)\n", "*[#26935=-0.23117] *[#26944=-0.232084] *[#26959=-0.2323] *[#26962=-0.232318] *[#26964=-0.232417] *[#26965=-0.232543] *[#26966=-0.232579] *[#26967=-0.232897] *[#26968=-0.233239] *[#26970=-0.233374] *[#26971=-0.233673] *[#26972=-0.233862] *[#26973=-0.234107] *[#26976=-0.234183] *[#26979=-0.234351] *[#26982=-0.234738] *[#26989=-0.234754] *[#26991=-0.234778] *[#26993=-0.234835] *[#26994=-0.234875] *[#26995=-0.23489] *[#26998=-0.234922] *[#27003=-0.234952] *[#27008=-0.23499] *[#27022=-0.235079] *[#27024=-0.235114] *[#27025=-0.235125] *[#27026=-0.235141] *[#27029=-0.235189] *[#27030=-0.235209] *[#27033=-0.235232] *[#27034=-0.235249] *[#27037=-0.235325] *[#27038=-0.235358] *[#27039=-0.235442] *[#27044=-0.235475] *[#27045=-0.235495] *[#27046=-0.235521] *[#27047=-0.235525] *[#27049=-0.235599] *[#27050=-0.235614] *[#27052=-0.235647] *[#27054=-0.235672] \n", " + - param set #1 has cost=-0.235672 [o=-1 t=-1]\n", " + -- Parameters = 86.4793 -3.3380 0.0217 -0.7549 -2.1405 -0.4338 0.9891 1.0267 0.9753 -0.0112 0.0131 -0.0443\n", " + - param set #2 has cost=-0.234666 [o=0 t=0]\n", " + -- Parameters = 86.4372 -3.2322 -0.0269 -0.6424 -1.6709 -0.2772 0.9885 1.0248 0.9691 -0.0071 0.0076 -0.0358\n", " + - param set #3 has cost=-0.025822 [o=42 t=21]\n", " + -- Parameters = 124.8635 -21.9185 -26.3384 8.9122 -2.8957 11.2486 0.9066 0.9500 0.9146 -0.0262 -0.0428 -0.0111\n", " + - param set #4 has cost=-0.024015 [o=2 t=2]\n", " + -- Parameters = 96.9853 -22.6084 36.5331 -10.5646 -42.3502 -25.8919 0.9936 0.9938 0.9909 -0.0015 0.0015 0.0018\n", " + - param set #5 has cost=-0.020677 [o=19 t=1]\n", " + -- Parameters = 120.2836 31.7782 37.8573 31.4903 -11.7839 -1.0432 1.0280 0.9925 0.9857 -0.0018 0.0016 0.0008\n", " + - param set #6 has cost=-0.021109 [o=11 t=4]\n", " + -- Parameters = 122.3854 3.2395 37.8890 32.1032 -27.2846 -8.9726 0.9996 1.0025 0.9997 -0.0002 -0.0004 0.0002\n", " + - param set #7 has cost=-0.021742 [o=81 t=18]\n", " + -- Parameters = 100.8685 15.8940 -35.1960 -31.0087 7.4956 -4.8791 0.9890 1.0230 0.9984 -0.0014 0.0064 -0.0026\n", " + - param set #8 has cost=-0.019976 [o=21 t=5]\n", " + -- Parameters = 115.3360 31.3654 37.9305 28.3074 -10.2193 2.1137 0.9882 0.9720 1.0138 0.0030 0.0001 -0.0012\n", " + - param set #9 has cost=-0.019055 [o=6 t=7]\n", " + -- Parameters = 124.6007 -28.5691 20.2957 5.1816 -41.5171 -44.5870 1.0131 0.9665 0.9992 -0.0041 -0.0017 -0.0082\n", " + - param set #10 has cost=-0.019574 [o=20 t=11]\n", " + -- Parameters = 99.3866 -29.8615 26.9020 -5.3338 -28.4230 -34.3867 1.0113 0.9855 1.0194 -0.0030 -0.0004 0.0010\n", " + - param set #11 has cost=-0.019180 [o=59 t=15]\n", " + -- Parameters = 120.9740 -8.5507 38.2855 35.6054 -28.5926 -2.1032 0.9445 0.9658 0.9799 0.0065 -0.0097 0.0127\n", " + - param set #12 has cost=-0.018566 [o=61 t=20]\n", " + -- Parameters = 95.1214 -16.0331 34.2759 18.9140 -38.5791 -27.1663 0.9916 1.0140 0.9960 0.0012 0.0011 -0.0035\n", " + - param set #13 has cost=-0.018186 [o=13 t=14]\n", " + -- Parameters = 94.6948 -15.8655 35.0391 15.9754 -38.3484 -28.1206 0.9895 1.0072 0.9927 -0.0019 0.0009 -0.0027\n", " + - param set #14 has cost=-0.018618 [o=12 t=24]\n", " + -- Parameters = 90.7229 19.1250 31.4046 30.8607 -12.3845 -26.7735 0.9996 0.9886 0.9229 -0.0090 0.0068 -0.0166\n", " + - param set #15 has cost=-0.018967 [o=27 t=3]\n", " + -- Parameters = 124.5882 -14.9891 37.9295 33.0540 -31.2298 -4.2381 1.0065 1.0007 0.9931 -0.0009 0.0053 0.0016\n", " + - param set #16 has cost=-0.017468 [o=8 t=25]\n", " + -- Parameters = 92.1824 -0.8246 28.2401 -37.9242 16.3884 -33.9570 0.9830 0.9798 0.9728 -0.0014 -0.0014 -0.0006\n", " + - param set #17 has cost=-0.018075 [o=70 t=17]\n", " + -- Parameters = 86.9585 -14.1999 -34.6419 -5.8658 10.1152 3.4199 0.9923 0.9807 0.9588 0.0087 0.0037 -0.0025\n", " + - param set #18 has cost=-0.016481 [o=87 t=8]\n", " + -- Parameters = 80.8196 10.8792 31.9415 39.1021 -23.3509 -12.5253 0.9963 0.9912 0.9875 -0.0009 -0.0018 0.0008\n", " + - param set #19 has cost=-0.017711 [o=3 t=27]\n", " + -- Parameters = 92.2159 -30.5634 24.8590 5.7157 -33.5922 -32.8620 0.9876 0.9841 0.9895 0.0194 0.0052 -0.0038\n", " + - param set #20 has cost=-0.021740 [o=76 t=6]\n", " + -- Parameters = 83.8861 4.6151 -39.5617 21.7046 10.7784 4.3335 1.0048 1.0034 1.0216 -0.0014 -0.0017 0.0062\n", " + - param set #21 has cost=-0.015678 [o=23 t=9]\n", " + -- Parameters = 88.9620 -11.8477 -34.5045 -12.1120 11.6847 4.7198 0.9995 0.9920 0.9895 0.0145 0.0006 -0.0002\n", " + - param set #22 has cost=-0.016589 [o=68 t=10]\n", " + -- Parameters = 94.9995 11.4811 -41.7072 -27.1686 18.0982 -14.7609 0.9953 1.0045 1.0033 0.0090 -0.0015 -0.0005\n", " + - param set #23 has cost=-0.016828 [o=33 t=16]\n", " + -- Parameters = 110.5268 17.5289 -34.6249 -44.8163 11.5456 22.9792 0.9797 1.0014 0.9661 -0.0008 0.0213 0.0032\n", " + - param set #24 has cost=-0.016103 [o=55 t=13]\n", " + -- Parameters = 101.9900 23.5558 -40.5738 -5.7638 -15.8114 40.9105 1.0031 0.9992 1.0094 0.0007 -0.0004 -0.0003\n", " + - param set #25 has cost=-0.014262 [o=26 t=12]\n", " + -- Parameters = 112.7557 -14.0757 -34.9144 -28.0999 24.1661 4.0230 0.9951 1.0018 1.0066 0.0048 0.0082 -0.0003\n", " + - param set #26 has cost=-0.012861 [o=24 t=23]\n", " + -- Parameters = 119.4894 -7.0076 -37.7482 -11.0534 5.0314 -12.8294 0.9963 1.0036 0.9832 -0.0072 0.0027 -0.0031\n", " + - param set #27 has cost=-0.017379 [o=43 t=26]\n", " + -- Parameters = 66.9122 8.7775 -38.5261 20.0114 18.3468 -6.1556 0.9969 0.9943 0.9711 0.0009 0.0066 0.0213\n", " + - param set #28 has cost=-0.012238 [o=15 t=22]\n", " + -- Parameters = 119.3286 0.1633 -40.0271 -13.9141 11.3075 -14.2199 0.9960 0.9968 1.0031 0.0023 -0.0007 -0.0006\n", " + - param set #29 has cost=-0.013300 [o=53 t=28]\n", " + -- Parameters = 118.9961 -8.2432 -38.8829 -34.5285 24.2673 -0.6308 1.0005 1.0040 1.0051 -0.0013 0.0007 0.0002\n", " + - param set #30 has cost=-0.012264 [o=74 t=19]\n", " + -- Parameters = 66.4348 14.9373 -34.0290 33.9352 20.6722 -10.4953 0.9986 1.0022 0.9993 0.0001 0.0001 0.0009\n", " + - sorting parameter sets by cost\n", " + - scanning for distances from #1\n", " + --- dist(#2,#1) = 0.0383 \n", " + --- dist(#3,#1) = 0.48 \n", " + --- dist(#4,#1) = 0.456 \n", " + --- dist(#5,#1) = 0.44 \n", " + --- dist(#6,#1) = 0.495 \n", " + --- dist(#7,#1) = 0.473 \n", " + --- dist(#8,#1) = 0.473 \n", " + --- dist(#9,#1) = 0.474 \n", " + --- dist(#10,#1) = 0.377 \n", " + --- dist(#11,#1) = 0.478 \n", " + --- dist(#12,#1) = 0.491 \n", " + --- dist(#13,#1) = 0.476 \n", " + --- dist(#14,#1) = 0.392 \n", " + --- dist(#15,#1) = 0.428 \n", " + --- dist(#16,#1) = 0.438 \n", " + --- dist(#17,#1) = 0.433 \n", " + --- dist(#18,#1) = 0.36 \n", " + --- dist(#19,#1) = 0.413 \n", " + --- dist(#20,#1) = 0.482 \n", " + --- dist(#21,#1) = 0.49 \n", " + --- dist(#22,#1) = 0.522 \n", " + --- dist(#23,#1) = 0.443 \n", " + --- dist(#24,#1) = 0.507 \n", " + --- dist(#25,#1) = 0.432 \n", " + --- dist(#26,#1) = 0.437 \n", " + --- dist(#27,#1) = 0.486 \n", " + --- dist(#28,#1) = 0.472 \n", " + --- dist(#29,#1) = 0.426 \n", " + --- dist(#30,#1) = 0.501 \n", " + - Total coarse refinement net CPU time = 0.0 s; 9153 funcs\n", "++ *** Fine pass begins ***\n", " + * Enter alignment setup routine\n", " + - Smoothing base; radius=1.00\n", " + - Smoothing source; radius=1.00\n", " + !source mask fill: ubot=64 usiz=159.5\n", " + - retaining old weight image\n", " + * Exit alignment setup routine\n", "++ Picking best parameter set out of 31 cases\n", " + 32726 total points stored in 68 'TOHD(17.1233)' bloks (0 duplicates)\n", " + - cost(#1)=-0.229302 * [o=-1 t=-1]\n", " + -- Parameters = 86.4793 -3.3380 0.0217 -0.7549 -2.1405 -0.4338 0.9891 1.0267 0.9753 -0.0112 0.0131 -0.0443\n", " + - cost(#2)=-0.228654 [o=0 t=0]\n", " + -- Parameters = 86.4372 -3.2322 -0.0269 -0.6424 -1.6709 -0.2772 0.9885 1.0248 0.9691 -0.0071 0.0076 -0.0358\n", " + - cost(#3)=-0.020796 [o=42 t=21]\n", " + -- Parameters = 124.8635 -21.9185 -26.3384 8.9122 -2.8957 11.2486 0.9066 0.9500 0.9146 -0.0262 -0.0428 -0.0111\n", " + - cost(#4)=-0.021017 [o=2 t=2]\n", " + -- Parameters = 96.9853 -22.6084 36.5331 -10.5646 -42.3502 -25.8919 0.9936 0.9938 0.9909 -0.0015 0.0015 0.0018\n", " + - cost(#5)=-0.019426 [o=81 t=18]\n", " + -- Parameters = 100.8685 15.8940 -35.1960 -31.0087 7.4956 -4.8791 0.9890 1.0230 0.9984 -0.0014 0.0064 -0.0026\n", " + - cost(#6)=-0.019844 [o=76 t=6]\n", " + -- Parameters = 83.8861 4.6151 -39.5617 21.7046 10.7784 4.3335 1.0048 1.0034 1.0216 -0.0014 -0.0017 0.0062\n", " + - cost(#7)=-0.018617 [o=11 t=4]\n", " + -- Parameters = 122.3854 3.2395 37.8890 32.1032 -27.2846 -8.9726 0.9996 1.0025 0.9997 -0.0002 -0.0004 0.0002\n", " + - cost(#8)=-0.016587 [o=19 t=1]\n", " + -- Parameters = 120.2836 31.7782 37.8573 31.4903 -11.7839 -1.0432 1.0280 0.9925 0.9857 -0.0018 0.0016 0.0008\n", " + - cost(#9)=-0.017151 [o=21 t=5]\n", " + -- Parameters = 115.3360 31.3654 37.9305 28.3074 -10.2193 2.1137 0.9882 0.9720 1.0138 0.0030 0.0001 -0.0012\n", " + - cost(#10)=-0.018519 [o=20 t=11]\n", " + -- Parameters = 99.3866 -29.8615 26.9020 -5.3338 -28.4230 -34.3867 1.0113 0.9855 1.0194 -0.0030 -0.0004 0.0010\n", " + - cost(#11)=-0.016436 [o=59 t=15]\n", " + -- Parameters = 120.9740 -8.5507 38.2855 35.6054 -28.5926 -2.1032 0.9445 0.9658 0.9799 0.0065 -0.0097 0.0127\n", " + - cost(#12)=-0.016901 [o=6 t=7]\n", " + -- Parameters = 124.6007 -28.5691 20.2957 5.1816 -41.5171 -44.5870 1.0131 0.9665 0.9992 -0.0041 -0.0017 -0.0082\n", " + - cost(#13)=-0.016877 [o=27 t=3]\n", " + -- Parameters = 124.5882 -14.9891 37.9295 33.0540 -31.2298 -4.2381 1.0065 1.0007 0.9931 -0.0009 0.0053 0.0016\n", " + - cost(#14)=-0.016763 [o=12 t=24]\n", " + -- Parameters = 90.7229 19.1250 31.4046 30.8607 -12.3845 -26.7735 0.9996 0.9886 0.9229 -0.0090 0.0068 -0.0166\n", " + - cost(#15)=-0.016364 [o=61 t=20]\n", " + -- Parameters = 95.1214 -16.0331 34.2759 18.9140 -38.5791 -27.1663 0.9916 1.0140 0.9960 0.0012 0.0011 -0.0035\n", " + - cost(#16)=-0.015450 [o=13 t=14]\n", " + -- Parameters = 94.6948 -15.8655 35.0391 15.9754 -38.3484 -28.1206 0.9895 1.0072 0.9927 -0.0019 0.0009 -0.0027\n", " + - cost(#17)=-0.016063 [o=70 t=17]\n", " + -- Parameters = 86.9585 -14.1999 -34.6419 -5.8658 10.1152 3.4199 0.9923 0.9807 0.9588 0.0087 0.0037 -0.0025\n", " + - cost(#18)=-0.015527 [o=3 t=27]\n", " + -- Parameters = 92.2159 -30.5634 24.8590 5.7157 -33.5922 -32.8620 0.9876 0.9841 0.9895 0.0194 0.0052 -0.0038\n", " + - cost(#19)=-0.015525 [o=8 t=25]\n", " + -- Parameters = 92.1824 -0.8246 28.2401 -37.9242 16.3884 -33.9570 0.9830 0.9798 0.9728 -0.0014 -0.0014 -0.0006\n", " + - cost(#20)=-0.016496 [o=43 t=26]\n", " + -- Parameters = 66.9122 8.7775 -38.5261 20.0114 18.3468 -6.1556 0.9969 0.9943 0.9711 0.0009 0.0066 0.0213\n", " + - cost(#21)=-0.014669 [o=33 t=16]\n", " + -- Parameters = 110.5268 17.5289 -34.6249 -44.8163 11.5456 22.9792 0.9797 1.0014 0.9661 -0.0008 0.0213 0.0032\n", " + - cost(#22)=-0.015020 [o=68 t=10]\n", " + -- Parameters = 94.9995 11.4811 -41.7072 -27.1686 18.0982 -14.7609 0.9953 1.0045 1.0033 0.0090 -0.0015 -0.0005\n", " + - cost(#23)=-0.014942 [o=87 t=8]\n", " + -- Parameters = 80.8196 10.8792 31.9415 39.1021 -23.3509 -12.5253 0.9963 0.9912 0.9875 -0.0009 -0.0018 0.0008\n", " + - cost(#24)=-0.014574 [o=55 t=13]\n", " + -- Parameters = 101.9900 23.5558 -40.5738 -5.7638 -15.8114 40.9105 1.0031 0.9992 1.0094 0.0007 -0.0004 -0.0003\n", " + - cost(#25)=-0.014193 [o=23 t=9]\n", " + -- Parameters = 88.9620 -11.8477 -34.5045 -12.1120 11.6847 4.7198 0.9995 0.9920 0.9895 0.0145 0.0006 -0.0002\n", " + - cost(#26)=-0.012148 [o=26 t=12]\n", " + -- Parameters = 112.7557 -14.0757 -34.9144 -28.0999 24.1661 4.0230 0.9951 1.0018 1.0066 0.0048 0.0082 -0.0003\n", " + - cost(#27)=-0.012000 [o=53 t=28]\n", " + -- Parameters = 118.9961 -8.2432 -38.8829 -34.5285 24.2673 -0.6308 1.0005 1.0040 1.0051 -0.0013 0.0007 0.0002\n", " + - cost(#28)=-0.011452 [o=24 t=23]\n", " + -- Parameters = 119.4894 -7.0076 -37.7482 -11.0534 5.0314 -12.8294 0.9963 1.0036 0.9832 -0.0072 0.0027 -0.0031\n", " + - cost(#29)=-0.011364 [o=74 t=19]\n", " + -- Parameters = 66.4348 14.9373 -34.0290 33.9352 20.6722 -10.4953 0.9986 1.0022 0.9993 0.0001 0.0001 0.0009\n", " + - cost(#30)=-0.010783 [o=15 t=22]\n", " + -- Parameters = 119.3286 0.1633 -40.0271 -13.9141 11.3075 -14.2199 0.9960 0.9968 1.0031 0.0023 -0.0007 -0.0006\n", " + - cost(#31)=-0.129342 [o=-2 t=-2]\n", " + -- Parameters = 86.1901 -3.4407 -1.7088 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000\n", " + -num_rtb 99 ==> refine all 31 cases\n", " + - cost(#1)=-0.229705 * [o=-1 t=-1]\n", " + -- Parameters = 86.4786 -3.3794 0.0456 -0.7344 -2.0985 -0.4671 0.9912 1.0266 0.9763 -0.0110 0.0121 -0.0449\n", " + - cost(#2)=-0.229554 [o=0 t=0]\n", " + -- Parameters = 86.4108 -3.3549 0.0075 -0.6847 -1.9108 -0.2988 0.9897 1.0254 0.9729 -0.0093 0.0067 -0.0411\n", " + - cost(#3)=-0.020800 [o=42 t=21]\n", " + -- Parameters = 124.8687 -21.9275 -26.3385 8.9060 -2.8977 11.2572 0.9066 0.9499 0.9145 -0.0261 -0.0428 -0.0111\n", " + - cost(#4)=-0.021932 [o=2 t=2]\n", " + -- Parameters = 96.7132 -21.8547 37.0594 -11.0616 -41.9192 -26.4843 0.9931 0.9931 0.9950 -0.0013 0.0013 0.0069\n", " + - cost(#5)=-0.019536 [o=81 t=18]\n", " + -- Parameters = 100.8433 15.8919 -35.1646 -30.9880 7.4855 -4.8544 0.9870 1.0216 0.9993 -0.0015 0.0070 -0.0025\n", " + - cost(#6)=-0.021827 [o=76 t=6]\n", " + -- Parameters = 82.3364 4.8772 -39.6003 20.1755 10.4514 3.8632 1.0049 1.0059 1.0260 -0.0085 -0.0025 0.0079\n", " + - cost(#7)=-0.019391 [o=11 t=4]\n", " + -- Parameters = 122.1885 3.3850 37.7804 31.9993 -26.7764 -9.1048 1.0047 1.0043 1.0237 -0.0004 -0.0009 0.0010\n", " + - cost(#8)=-0.016887 [o=19 t=1]\n", " + -- Parameters = 120.3862 31.8744 37.9044 31.2181 -11.7938 -1.2006 1.0284 0.9884 0.9874 -0.0101 0.0025 0.0006\n", " + - cost(#9)=-0.017390 [o=21 t=5]\n", " + -- Parameters = 115.3469 31.2859 37.8570 28.2962 -10.3465 2.2030 0.9873 0.9648 1.0135 0.0016 0.0010 -0.0018\n", " + - cost(#10)=-0.018693 [o=20 t=11]\n", " + -- Parameters = 99.3262 -29.9447 26.9371 -5.3159 -28.4886 -34.0726 1.0107 0.9849 1.0213 -0.0036 -0.0003 0.0007\n", " + - cost(#11)=-0.016689 [o=59 t=15]\n", " + -- Parameters = 120.8994 -8.5654 38.2884 35.5660 -28.3844 -2.2898 0.9449 0.9652 0.9808 0.0065 -0.0097 0.0202\n", " + - cost(#12)=-0.017087 [o=6 t=7]\n", " + -- Parameters = 124.5712 -28.6409 20.3221 5.1349 -41.6487 -44.5124 1.0125 0.9652 0.9978 -0.0043 -0.0015 -0.0151\n", " + - cost(#13)=-0.018747 [o=27 t=3]\n", " + -- Parameters = 124.8220 -15.4132 35.7434 32.8513 -32.2128 -4.2913 1.0051 1.0020 0.9925 -0.0014 0.0061 0.0027\n", " + - cost(#14)=-0.016958 [o=12 t=24]\n", " + -- Parameters = 90.6424 19.0892 31.4461 30.8611 -12.4391 -26.9602 1.0001 0.9900 0.9213 -0.0096 0.0069 -0.0164\n", " + - cost(#15)=-0.016621 [o=61 t=20]\n", " + -- Parameters = 95.2265 -16.0288 34.3051 18.8769 -38.6949 -27.3742 0.9949 1.0116 0.9938 0.0095 0.0005 -0.0030\n", " + - cost(#16)=-0.015480 [o=13 t=14]\n", " + -- Parameters = 94.6942 -15.8722 35.0063 16.0018 -38.3548 -28.1013 0.9892 1.0073 0.9938 -0.0018 0.0006 -0.0023\n", " + - cost(#17)=-0.017580 [o=70 t=17]\n", " + -- Parameters = 87.0306 -14.2621 -34.6583 -9.0179 9.8610 3.8227 0.9879 0.9809 0.9564 0.0087 0.0030 -0.0024\n", " + - cost(#18)=-0.016272 [o=3 t=27]\n", " + -- Parameters = 92.1936 -30.6225 24.8890 5.7653 -33.6379 -32.8354 0.9906 0.9904 0.9919 0.0296 0.0046 -0.0038\n", " + - cost(#19)=-0.018831 [o=8 t=25]\n", " + -- Parameters = 92.0665 -2.7610 29.1632 -37.9380 15.4778 -34.5080 0.9731 0.9648 0.9439 -0.0023 -0.0035 0.0016\n", " + - cost(#20)=-0.016643 [o=43 t=26]\n", " + -- Parameters = 66.9145 8.7317 -38.5499 19.9377 18.3452 -6.1108 1.0030 0.9976 0.9713 0.0006 0.0051 0.0221\n", " + - cost(#21)=-0.015076 [o=33 t=16]\n", " + -- Parameters = 110.5064 17.5324 -34.6949 -44.8090 11.7870 22.7514 0.9787 1.0007 0.9652 -0.0008 0.0293 0.0042\n", " + - cost(#22)=-0.015064 [o=68 t=10]\n", " + -- Parameters = 94.9821 11.4850 -41.7087 -27.1684 18.0621 -14.7438 0.9953 1.0047 1.0033 0.0097 -0.0014 -0.0005\n", " + - cost(#23)=-0.015215 [o=87 t=8]\n", " + -- Parameters = 80.8903 10.8767 31.8345 38.9750 -23.2805 -12.6024 0.9964 0.9868 0.9912 -0.0075 -0.0002 0.0015\n", " + - cost(#24)=-0.014807 [o=55 t=13]\n", " + -- Parameters = 101.9003 23.5725 -40.5280 -5.6755 -15.6652 40.9313 1.0032 0.9991 1.0112 0.0085 -0.0004 -0.0001\n", " + - cost(#25)=-0.014391 [o=23 t=9]\n", " + -- Parameters = 88.9471 -11.7913 -34.3018 -12.1401 11.8714 4.7590 1.0001 0.9921 0.9903 0.0145 0.0001 -0.0000\n", " + - cost(#26)=-0.012283 [o=26 t=12]\n", " + -- Parameters = 112.7510 -14.0798 -34.9248 -28.0911 24.1450 4.0337 0.9952 1.0025 1.0059 0.0123 0.0083 -0.0004\n", " + - cost(#27)=-0.012050 [o=53 t=28]\n", " + -- Parameters = 119.0245 -8.2729 -38.8807 -34.4827 24.2436 -0.6653 1.0003 1.0042 1.0074 -0.0013 0.0015 0.0001\n", " + - cost(#28)=-0.011891 [o=24 t=23]\n", " + -- Parameters = 119.1164 -6.9467 -37.4876 -11.0812 5.1131 -12.3826 0.9973 1.0034 0.9823 -0.0065 0.0021 -0.0026\n", " + - cost(#29)=-0.011366 [o=74 t=19]\n", " + -- Parameters = 66.4278 14.9361 -34.0231 33.9244 20.6755 -10.4931 0.9986 1.0021 0.9994 0.0001 0.0002 0.0008\n", " + - cost(#30)=-0.012654 [o=15 t=22]\n", " + -- Parameters = 118.6806 -0.2779 -39.9209 -10.4236 10.9901 -14.6070 0.9859 0.9982 1.0056 0.0036 -0.0026 0.0003\n", " + - cost(#31)=-0.226142 [o=-2 t=-2]\n", " + -- Parameters = 86.2853 -3.2417 0.0041 -0.6043 -1.3783 0.2327 0.9846 1.0247 0.9738 -0.0073 -0.0072 -0.0283\n", " + - case #1 [o=-1 t=-1] is now the best\n", " + - Initial cost = -0.229705\n", " + - Initial fine Parameters = 86.4786 -3.3794 0.0456 -0.7344 -2.0985 -0.4671 0.9912 1.0266 0.9763 -0.0110 0.0121 -0.0449\n", " + - Finalish cost = -0.230087 ; 443 funcs\n", " + - ini Finalish Parameters = 86.4243 -3.3934 0.0579 -0.6907 -2.4008 -0.2686 0.9907 1.0261 0.9755 -0.0090 0.0076 -0.0512\n", " + - Final cost = -0.230087 ; 283 funcs\n", " + Final fine fit Parameters:\n", " x-shift= 86.4239 y-shift= -3.3912 z-shift= 0.0590 ... enorm= 86.4904 mm\n", " z-angle= -0.6917 x-angle= -2.3988 y-angle= -0.2681 ... total= 2.5094 deg\n", " x-scale= 0.9907 y-scale= 1.0261 z-scale= 0.9755 ... vol3D= 0.9917 = base bigger than source\n", " y/x-shear= -0.0090 z/x-shear= 0.0076 z/y-shear= -0.0512\n", " + - Fine net CPU time = 0.0 s\n", "++ Computing output image\n", "++ image warp: parameters = 86.4239 -3.3912 0.0590 -0.6917 -2.3988 -0.2681 0.9907 1.0261 0.9755 -0.0090 0.0076 -0.0512\n", "++ Unloading unneeded data\n", "++ Output dataset ./sub-08_T1w_al_junk+orig.BRIK\n", "++ Wrote -1Dmatrix_save ./sub-08_T1w_al_junk_mat.aff12.1D\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 16.9\n", "++ ###########################################################\n", "++ # PLEASE check results VISUALLY for alignment quality #\n", "++ ###########################################################\n", "#++ Creating final output: skullstripped anat data\n", "copying from dataset /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/__tt_sub-08_T1w_ns+orig to /home/jovyan/Git_repositories/example-notebooks/books/functional_imaging/afni_processing/sub_08.results/sub-08_T1w_ns+orig\n", "#Script is running (command trimmed):\n", " 3dcopy ./__tt_sub-08_T1w_ns+orig sub-08_T1w_ns\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#++ Creating final output: anat data aligned to epi\n", "# copy is not necessary\n", "#++ Saving history\n", "#Script is running (command trimmed):\n", " 3dNotes -h \"align_epi_anat.py -anat2epi -anat sub-08_T1w+orig \\\n", " -save_skullstrip -suffix _al_junk -epi vr_base_min_outlier+orig -epi_base \\\n", " 0 -epi_strip 3dAutomask -giant_move -volreg off -tshift off\" \\\n", " ./sub-08_T1w_al_junk+orig\n", "\n", "#++ Removing all the temporary files\n", "#Script is running:\n", " \\rm -f ./__tt_vr_base_min_outlier*\n", "#Script is running:\n", " \\rm -f ./__tt_sub-08_T1w*\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "\n", "# Finished alignment successfully\n", "\n", "@auto_tlrc -base MNI_avg152T1+tlrc -input sub-08_T1w_ns+orig -no_ss -init_xform AUTO_CENTER\n", "\n", "Performing center alignment with @Align_Centers\n", "\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset ./sub-08_T1w_ns_shft+orig\n", " + deoblique\n", "++ 3drefit processed 1 datasets\n", "++ 3drename: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ THD_rename_dataset_files: rename sub-08_T1w_ns_shft+orig.HEAD -> __ats_tmp__sub-08_T1w_ns_shft+orig.HEAD\n", "++ THD_rename_dataset_files: rename sub-08_T1w_ns_shft+orig.BRIK -> __ats_tmp__sub-08_T1w_ns_shft+orig.BRIK\n", "** THD_rename_dataset_files: old header sub-08_T1w_ns_shft+acpc.HEAD doesn't exist!\n", "** THD_rename_dataset_files: old header sub-08_T1w_ns_shft+tlrc.HEAD doesn't exist!\n", "++ 3dWarp: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "Center distance of 0.000000 mm\n", "Padding ...\n", "++ 3dZeropad: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ output dataset: ./__ats_tmp__ref_MNI_avg152T1_15pad+tlrc.BRIK\n", "Resampling ...\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__resamp_step+orig.BRIK\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__resamp+tlrc.BRIK\n", "Clipping -0.000100 1336.000100 ...\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./__ats_tmp___rs_pre.sub-08_T1w_ns+tlrc.BRIK\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___rs_pre.sub-08_T1w_ns+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp__resamp_NN+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp__resamp_edge_art+tlrc.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "Registration (cubic final interpolation) ...\n", "++ 3dWarpDrive: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Initial scale factor set to 0.30/125.00=4.2e+02\n", "RMS[0] = 0.283712 0.155217 ITER = 8/50\n", "0.283712\n", "\n", "Warping has converged.\n", "\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dWarp: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "Applying brain mask\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp__reg_braintlrcstep+orig.BRIK\n", "++ 3dWarp: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ 3drename: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ THD_rename_dataset_files: rename __ats_tmp___pad15_pre.sub-08_T1w_ns+orig.HEAD -> __ats_tmp___pad15_pre.sub-08_T1w_ns.skl+orig.HEAD\n", "++ THD_rename_dataset_files: rename __ats_tmp___pad15_pre.sub-08_T1w_ns+orig.BRIK -> __ats_tmp___pad15_pre.sub-08_T1w_ns.skl+orig.BRIK\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ././__ats_tmp___pad15_pre.sub-08_T1w_ns+orig.BRIK\n", "Unpadding ...\n", "++ 3dZeropad: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ output dataset: ./__ats_tmp___upad15_pre.sub-08_T1w_ns+orig.BRIK\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_pre.sub-08_T1w_ns+orig\n", "\u001b[7m*+ WARNING:\u001b[0m Changing the space of an ORIG view dataset may cause confusion!\n", "\u001b[7m*+ WARNING:\u001b[0m NIFTI copies will be interpreted as TLRC view (not TLRC space).\n", "\u001b[7m*+ WARNING:\u001b[0m Consider changing the view of the dataset to TLRC view also\n", "++ 3drefit processed 1 datasets\n", "Changing view of transformed anatomy\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_pre.sub-08_T1w_ns+orig.HEAD\n", " + changing dataset view code\n", " + Changed dataset view type and filenames.\n", "++ 3drefit processed 1 datasets\n", "Setting parent with 3drefit -wset sub-08_T1w_ns+orig __ats_tmp___upad15_pre.sub-08_T1w_ns+tlrc\n", "++ 3drefit: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Processing AFNI dataset __ats_tmp___upad15_pre.sub-08_T1w_ns+tlrc\n", " + setting Warp parent\n", "++ 3drefit processed 1 datasets\n", "++ 3drename: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Warning: ignoring +tlrc on new_prefix.\n", "++ THD_rename_dataset_files: rename __ats_tmp___upad15_pre.sub-08_T1w_ns+tlrc.HEAD -> sub-08_T1w_ns+tlrc.HEAD\n", "++ THD_rename_dataset_files: rename __ats_tmp___upad15_pre.sub-08_T1w_ns+tlrc.BRIK -> sub-08_T1w_ns+tlrc.BRIK\n", "Cleanup ...\n", "cat_matvec sub-08_T1w_ns+tlrc::WARP_DATA -I\n", "if ( ! -f sub-08_T1w_ns+tlrc.HEAD ) then\n", "foreach run ( 01 02 )\n", "3dvolreg -verbose -zpad 1 -base vr_base_min_outlier+orig -1Dfile dfile.r01.1D -prefix rm.epi.volreg.r01 -cubic -1Dmatrix_save mat.r01.vr.aff12.1D pb01.sub_08.r01.tshift+orig\n", "++ 3dvolreg: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Reading in base dataset ./vr_base_min_outlier+orig.BRIK\n", "++ Reading input dataset ./pb01.sub_08.r01.tshift+orig.BRIK\n", "++ Edging: x=3 y=3 z=2\n", "++ Creating mask for -maxdisp\n", " + Automask has 40918 voxels\n", " + 5959 voxels left in -maxdisp mask after erosion\n", "++ Initializing alignment base\n", "++ Starting final pass on 146 sub-bricks: 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145..\n", "++ CPU time for realignment=0 s [=0 s/sub-brick]\n", "++ Min : roll=-0.014 pitch=-0.044 yaw=-0.059 dS=-0.092 dL=-0.041 dP=-0.083\n", "++ Mean: roll=+0.022 pitch=+0.035 yaw=+0.065 dS=+0.016 dL=+0.029 dP=+0.013\n", "++ Max : roll=+0.119 pitch=+0.184 yaw=+0.253 dS=+0.181 dL=+0.123 dP=+0.235\n", "++ Max displacements (mm) for each sub-brick:\n", " 0.15(0.00) 0.09(0.16) 0.06(0.09) 0.05(0.08) 0.07(0.08) 0.07(0.03) 0.08(0.05) 0.06(0.05) 0.15(0.13) 0.09(0.12) 0.15(0.12) 0.09(0.13) 0.11(0.10) 0.09(0.06) 0.09(0.05) 0.11(0.04) 0.04(0.10) 0.08(0.08) 0.07(0.05) 0.13(0.10) 0.06(0.11) 0.06(0.09) 0.07(0.09) 0.03(0.05) 0.09(0.07) 0.06(0.13) 0.07(0.09) 0.05(0.08) 0.00(0.05) 0.06(0.06) 0.06(0.08) 0.05(0.06) 0.10(0.07) 0.06(0.06) 0.07(0.09) 0.06(0.10) 0.08(0.08) 0.08(0.07) 0.12(0.10) 0.08(0.11) 0.09(0.08) 0.11(0.07) 0.05(0.08) 0.08(0.05) 0.03(0.08) 0.07(0.06) 0.08(0.09) 0.06(0.05) 0.10(0.07) 0.08(0.09) 0.12(0.10) 0.10(0.08) 0.06(0.07) 0.14(0.14) 0.09(0.11) 0.11(0.10) 0.14(0.06) 0.09(0.12) 0.12(0.11) 0.10(0.09) 0.10(0.06) 0.15(0.07) 0.09(0.12) 0.11(0.10) 0.09(0.15) 0.14(0.16) 0.09(0.09) 0.10(0.03) 0.11(0.07) 0.08(0.07) 0.13(0.11) 0.09(0.11) 0.13(0.11) 0.09(0.08) 0.10(0.06) 0.13(0.10) 0.10(0.09) 0.14(0.11) 0.11(0.14) 0.11(0.10) 0.09(0.07) 0.10(0.08) 0.11(0.06) 0.10(0.10) 0.16(0.16) 0.10(0.16) 0.13(0.14) 0.13(0.11) 0.17(0.07) 0.18(0.07) 0.15(0.09) 0.15(0.07) 0.12(0.10) 0.17(0.10) 0.15(0.05) 0.16(0.07) 0.14(0.06) 0.16(0.10) 0.24(0.15) 0.14(0.17) 0.21(0.14) 0.16(0.12) 0.29(0.22) 0.20(0.16) 0.23(0.11) 0.21(0.07) 0.21(0.10) 0.23(0.05) 0.19(0.12) 0.22(0.08) 0.18(0.09) 0.23(0.10) 0.19(0.11) 0.28(0.14) 0.21(0.10) 0.23(0.06) 0.23(0.07) 0.29(0.15) 0.22(0.17) 0.29(0.10) 0.30(0.04) 0.27(0.07) 0.31(0.08) 0.28(0.06) 0.34(0.11) 0.30(0.07) 0.37(0.11) 0.28(0.15) 0.36(0.14) 0.29(0.14) 0.36(0.15) 0.32(0.30) 0.41(0.27) 0.49(0.29) 0.46(0.11) 0.49(0.18) 0.56(0.18) 0.55(0.14) 0.55(0.10) 0.54(0.03) 0.52(0.12) 0.51(0.14) 0.48(0.15) 0.41(0.17) 0.41(0.22) 0.42(0.12)\n", "++ Max displacement in automask = 0.56 (mm) at sub-brick 136\n", "++ Max delta displ in automask = 0.30 (mm) at sub-brick 131\n", "++ Wrote dataset to disk in ./rm.epi.volreg.r01+orig.BRIK\n", "3dcalc -overwrite -a pb01.sub_08.r01.tshift+orig -expr 1 -prefix rm.epi.all1\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "\u001b[7m*+ WARNING:\u001b[0m input 'a' is not used in the expression\n", "++ Output dataset ./rm.epi.all1+orig.BRIK\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I mat.r01.vr.aff12.1D\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input pb01.sub_08.r01.tshift+orig -1Dmatrix_apply mat.r01.warp.aff12.1D -mast_dxyz 3 -prefix rm.epi.nomask.r01\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./pb01.sub_08.r01.tshift+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 0.027 -8.241 -29.822\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 0.0% 11.9% 51.6%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 146 sub-bricks ==========\n", "volume 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145\n", "++ Output dataset ./rm.epi.nomask.r01+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 4.4\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input rm.epi.all1+orig -1Dmatrix_apply mat.r01.warp.aff12.1D -mast_dxyz 3 -final NN -quiet -prefix rm.epi.1.r01\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 1.280 -18.654 -32.063\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 2.2% 26.9% 55.5%\n", "++ Output dataset ./rm.epi.1.r01+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 3.8\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dTstat -min -prefix rm.epi.min.r01 rm.epi.1.r01+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.epi.min.r01+tlrc.BRIK\n", "end\n", "3dvolreg -verbose -zpad 1 -base vr_base_min_outlier+orig -1Dfile dfile.r02.1D -prefix rm.epi.volreg.r02 -cubic -1Dmatrix_save mat.r02.vr.aff12.1D pb01.sub_08.r02.tshift+orig\n", "++ 3dvolreg: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: RW Cox\n", "++ Reading in base dataset ./vr_base_min_outlier+orig.BRIK\n", "++ Reading input dataset ./pb01.sub_08.r02.tshift+orig.BRIK\n", "++ Edging: x=3 y=3 z=2\n", "++ Creating mask for -maxdisp\n", " + Automask has 40888 voxels\n", " + 5952 voxels left in -maxdisp mask after erosion\n", "++ Initializing alignment base\n", "++ Starting final pass on 146 sub-bricks: 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145..\n", "++ CPU time for realignment=0 s [=0 s/sub-brick]\n", "++ Min : roll=+0.065 pitch=-0.196 yaw=-0.295 dS=-0.284 dL=+0.045 dP=-0.220\n", "++ Mean: roll=+0.160 pitch=+0.114 yaw=+0.164 dS=-0.032 dL=+0.132 dP=-0.070\n", "++ Max : roll=+0.233 pitch=+0.250 yaw=+0.335 dS=+0.142 dL=+0.306 dP=+0.067\n", "++ Max displacements (mm) for each sub-brick:\n", " 0.70(0.00) 0.61(0.16) 0.62(0.09) 0.60(0.07) 0.58(0.06) 0.63(0.08) 0.61(0.07) 0.62(0.08) 0.60(0.07) 0.55(0.07) 0.62(0.08) 0.61(0.11) 0.61(0.07) 0.59(0.05) 0.50(0.10) 0.54(0.06) 0.52(0.08) 0.57(0.09) 0.58(0.09) 0.56(0.09) 0.58(0.06) 0.56(0.07) 0.59(0.10) 0.57(0.09) 0.57(0.07) 0.59(0.05) 0.56(0.05) 0.59(0.08) 0.60(0.08) 0.58(0.07) 0.58(0.07) 0.58(0.06) 0.58(0.02) 0.59(0.05) 0.57(0.34) 0.38(0.39) 0.47(0.48) 0.90(0.47) 0.59(0.35) 0.49(0.19) 0.50(0.16) 0.46(0.12) 0.48(0.16) 0.46(0.17) 0.48(0.13) 0.47(0.10) 0.48(0.10) 0.49(0.09) 0.51(0.10) 0.53(0.06) 0.51(0.09) 0.53(0.09) 0.50(0.10) 0.50(0.09) 0.50(0.08) 0.49(0.07) 0.52(0.06) 0.46(0.10) 0.46(0.21) 0.52(0.33) 0.50(0.20) 0.54(0.12) 0.54(0.09) 0.60(0.12) 0.55(0.14) 0.59(0.12) 0.58(0.10) 0.62(0.13) 0.53(0.11) 0.49(0.14) 0.49(0.04) 0.46(0.07) 0.55(0.11) 0.48(0.14) 0.57(0.15) 0.46(0.14) 0.54(0.11) 0.44(0.13) 0.51(0.11) 0.47(0.10) 0.55(0.15) 0.59(0.11) 0.56(0.13) 0.53(0.13) 0.60(0.14) 0.58(0.10) 0.55(0.04) 0.53(0.07) 0.59(0.11) 0.49(0.15) 0.57(0.14) 0.52(0.17) 0.77(0.46) 0.58(0.27) 0.57(0.20) 0.57(0.10) 0.58(0.13) 0.56(0.14) 0.57(0.14) 0.55(0.09) 0.60(0.10) 0.55(0.09) 0.55(0.05) 0.55(0.04) 0.57(0.07) 0.61(0.06) 0.53(0.11) 0.67(0.16) 0.55(0.16) 0.59(0.11) 0.53(0.10) 0.54(0.06) 0.57(0.07) 0.51(0.12) 0.56(0.12) 0.57(0.17) 0.64(0.20) 0.58(0.21) 0.56(0.09) 0.60(0.07) 0.55(0.07) 0.61(0.08) 0.56(0.12) 0.60(0.14) 0.59(0.10) 0.61(0.07) 0.59(0.06) 0.56(0.08) 0.67(0.14) 0.61(0.12) 0.64(0.14) 0.64(0.04) 0.64(0.19) 0.57(0.25) 0.54(0.10) 0.54(0.07) 0.53(0.05) 0.57(0.11) 0.53(0.11) 0.58(0.12) 0.53(0.09) 0.55(0.06) 0.52(0.11) 0.56(0.13) 0.55(0.10) 0.53(0.06)\n", "++ Max displacement in automask = 0.90 (mm) at sub-brick 37\n", "++ Max delta displ in automask = 0.48 (mm) at sub-brick 36\n", "++ Wrote dataset to disk in ./rm.epi.volreg.r02+orig.BRIK\n", "3dcalc -overwrite -a pb01.sub_08.r02.tshift+orig -expr 1 -prefix rm.epi.all1\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "\u001b[7m*+ WARNING:\u001b[0m input 'a' is not used in the expression\n", "++ Output dataset ./rm.epi.all1+orig.BRIK\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I mat.r02.vr.aff12.1D\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input pb01.sub_08.r02.tshift+orig -1Dmatrix_apply mat.r02.warp.aff12.1D -mast_dxyz 3 -prefix rm.epi.nomask.r02\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./pb01.sub_08.r02.tshift+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = -0.046 -8.175 -29.810\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 0.1% 11.8% 51.6%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 146 sub-bricks ==========\n", "volume 0..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15..16..17..18..19..20..21..22..23..24..25..26..27..28..29..30..31..32..33..34..35..36..37..38..39..40..41..42..43..44..45..46..47..48..49..50..51..52..53..54..55..56..57..58..59..60..61..62..63..64..65..66..67..68..69..70..71..72..73..74..75..76..77..78..79..80..81..82..83..84..85..86..87..88..89..90..91..92..93..94..95..96..97..98..99..100..101..102..103..104..105..106..107..108..109..110..111..112..113..114..115..116..117..118..119..120..121..122..123..124..125..126..127..128..129..130..131..132..133..134..135..136..137..138..139..140..141..142..143..144..145\n", "++ Output dataset ./rm.epi.nomask.r02+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 4.5\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input rm.epi.all1+orig -1Dmatrix_apply mat.r02.warp.aff12.1D -mast_dxyz 3 -final NN -quiet -prefix rm.epi.1.r02\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 1.280 -18.654 -32.063\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 2.2% 26.9% 55.5%\n", "++ Output dataset ./rm.epi.1.r02+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 3.7\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dTstat -min -prefix rm.epi.min.r02 rm.epi.1.r02+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.epi.min.r02+tlrc.BRIK\n", "end\n", "cat dfile.r01.1D dfile.r02.1D\n", "1d_tool.py -infile dfile_rall.1D -set_nruns 2 -derivative -collapse_cols euclidean_norm -write motion_sub_08_enorm.1D\n", "/opt/afni-latest/afnipy/lib_afni1D.py:1302: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?\n", " print('** uncensor from vec: nt = %d, but nocen len = %d' \\\n", "3dMean -datum short -prefix rm.epi.mean rm.epi.min.r01+tlrc.HEAD rm.epi.min.r02+tlrc.HEAD\n", "++ 3dMean: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dcalc -a rm.epi.mean+tlrc -expr step(a-0.999) -prefix mask_epi_extents\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./mask_epi_extents+tlrc.BRIK\n", "foreach run ( 01 02 )\n", "3dcalc -a rm.epi.nomask.r01+tlrc -b mask_epi_extents+tlrc -expr a*b -prefix pb02.sub_08.r01.volreg\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb02.sub_08.r01.volreg+tlrc.BRIK\n", "end\n", "3dcalc -a rm.epi.nomask.r02+tlrc -b mask_epi_extents+tlrc -expr a*b -prefix pb02.sub_08.r02.volreg\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb02.sub_08.r02.volreg+tlrc.BRIK\n", "end\n", "cat_matvec -ONELINE sub-08_T1w_ns+tlrc::WARP_DATA -I sub-08_T1w_al_junk_mat.aff12.1D -I\n", "3dAllineate -base sub-08_T1w_ns+tlrc -input vr_base_min_outlier+orig -1Dmatrix_apply mat.basewarp.aff12.1D -mast_dxyz 3 -prefix final_epi_vr_base_min_outlier\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./vr_base_min_outlier+orig.HEAD\n", "++ Base dataset: ./sub-08_T1w_ns+tlrc.HEAD\n", "++ Loading datasets into memory\n", "\u001b[7m*+ WARNING:\u001b[0m center of mass shifts (-cmass) are turned off, but would be TERRIBLY large!\n", "\u001b[7m*+ WARNING:\u001b[0m - at least one is more than 50% of search range\n", " + -cmass x y z shifts = 0.073 -8.252 -29.781\n", " + shift search range is +/- = 57.780 69.336 57.780\n", " + 0.1% 11.9% 51.5%\n", "++ master dataset for output = base\n", "++ changing output grid spacing to 3.0000 mm\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 1 sub-bricks ==========\n", "++ Output dataset ./final_epi_vr_base_min_outlier+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 0.1\n", "++ ###########################################################\n", " + \n", "++ ***********************************************************\n", "\u001b[7m*+ WARNING:\u001b[0m -cmass was turned off, but might have been needed :(\n", " + Please check your results - PLEASE PLEASE PLEASE\n", "++ ***********************************************************\n", "3dcopy sub-08_T1w_ns+tlrc anat_final.sub_08\n", "++ 3dcopy: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "3dAllineate -base final_epi_vr_base_min_outlier+tlrc -allcostX -input anat_final.sub_08+tlrc\n", "tee out.allcostX.txt\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ Source dataset: ./anat_final.sub_08+tlrc.HEAD\n", "++ Base dataset: ./final_epi_vr_base_min_outlier+tlrc.HEAD\n", "++ Loading datasets into memory\n", "++ Local correlation: blok type = 'TOHD(15.531)'\n", " + -cmass x y z shifts = -0.040 1.128 0.173\n", " + shift search range is +/- = 66.447 79.929 68.373\n", "\u001b[7m*+ WARNING:\u001b[0m No output dataset will be calculated\n", "++ OpenMP thread count = 15\n", " + initial Parameters = 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000\n", "++ allcost output: init #0\n", " ls = 0.102416\n", " sp = 0.294745\n", " mi = 2.69858\n", " crM = 0.0196901\n", " nmi = 0.820873\n", " je = 2.69858\n", " hel = -0.12172\n", " crA = 0.141537\n", " crU = 0.160044\n", " lss = 0.897584\n", " lpc = 0.647903\n", " lpa = 0.352097\n", " lpc+ = 0.746398\n", " lpa+ = 0.450592\n", "++ Output dataset ./volumized+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 0.7\n", "++ ###########################################################\n", "3dAllineate -source sub-08_T1w+orig -master anat_final.sub_08+tlrc -final wsinc5 -1Dmatrix_apply warp.anat.Xat.1D -prefix anat_w_skull_warped\n", "++ 3dAllineate: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Zhark the Registrator\n", "++ -1Dmatrix_apply: converting input 3x4 array to 1 row of 12 numbers\n", "++ Source dataset: ./sub-08_T1w+orig.HEAD\n", "++ Base dataset: (not given)\n", "++ Loading datasets into memory\n", " + -cmass x y z shifts = 0.000 0.000 0.000\n", " + shift search range is +/- = 56.175 81.855 81.855\n", "++ OpenMP thread count = 15\n", "++ ========== Applying transformation to 1 sub-bricks ==========\n", "++ wsinc5 interpolation setup:\n", " + taper function = Min sidelobe 3 term\n", " + taper cut point = 0.000\n", " + window radius = 5 voxels\n", " + window shape = Cubical\n", " + The above can be altered via the AFNI_WSINC5_* environment variables.\n", " + (To avoid this message, 'setenv AFNI_WSINC5_SILENT YES'.)\n", " + wsinc5 CUBE(5) mask has 1000 points\n", "++ Output dataset ./anat_w_skull_warped+tlrc.BRIK\n", "++ 3dAllineate: total CPU time = 0.0 sec Elapsed = 0.9\n", "++ ###########################################################\n", "foreach run ( 01 02 )\n", "3dmerge -1blur_fwhm 4.0 -doall -prefix pb03.sub_08.r01.blur pb02.sub_08.r01.volreg+tlrc\n", "++ 3dmerge: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ default -1dindex = 0\n", "++ default -1tindex = 1\n", "Program 3dmerge \n", "3dmerge: edit and combine 3D datasets, by RW Cox\n", "++ editing input dataset in memory (75.6 MB)\n", "..................................................................................................................................................\n", "-- Wrote edited dataset: ./pb03.sub_08.r01.blur+tlrc.BRIK\n", "\n", "end\n", "3dmerge -1blur_fwhm 4.0 -doall -prefix pb03.sub_08.r02.blur pb02.sub_08.r02.volreg+tlrc\n", "++ 3dmerge: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ default -1dindex = 0\n", "++ default -1tindex = 1\n", "Program 3dmerge \n", "3dmerge: edit and combine 3D datasets, by RW Cox\n", "++ editing input dataset in memory (75.6 MB)\n", "..................................................................................................................................................\n", "-- Wrote edited dataset: ./pb03.sub_08.r02.blur+tlrc.BRIK\n", "\n", "end\n", "foreach run ( 01 02 )\n", "3dAutomask -prefix rm.mask_r01 pb03.sub_08.r01.blur+tlrc\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset pb03.sub_08.r01.blur+tlrc\n", "++ Forming automask\n", " + Fixed clip level = 343.540375\n", " + Used gradual clip level = 322.806030 .. 362.186707\n", " + Number voxels above clip level = 69428\n", " + Clustering voxels ...\n", " + Largest cluster has 68830 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 68733 voxels\n", " + Filled 139 voxels in small holes; now have 68872 voxels\n", " + Filled 2 voxels in large holes; now have 68874 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 68873 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 202760 voxels\n", " + Mask now has 68873 voxels\n", "++ 68873 voxels in the mask [out of 271633: 25.36%]\n", "++ first 7 x-planes are zero [from L]\n", "++ last 6 x-planes are zero [from R]\n", "++ first 5 y-planes are zero [from P]\n", "++ last 4 y-planes are zero [from A]\n", "++ first 0 z-planes are zero [from I]\n", "++ last 8 z-planes are zero [from S]\n", "++ Output dataset ./rm.mask_r01+tlrc.BRIK\n", "++ CPU time = 0.000000 sec\n", "end\n", "3dAutomask -prefix rm.mask_r02 pb03.sub_08.r02.blur+tlrc\n", "++ 3dAutomask: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: Emperor Zhark\n", "++ Loading dataset pb03.sub_08.r02.blur+tlrc\n", "++ Forming automask\n", " + Fixed clip level = 342.217621\n", " + Used gradual clip level = 321.662537 .. 360.685547\n", " + Number voxels above clip level = 69449\n", " + Clustering voxels ...\n", " + Largest cluster has 68853 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 68749 voxels\n", " + Filled 134 voxels in small holes; now have 68883 voxels\n", " + Filled 2 voxels in large holes; now have 68885 voxels\n", " + Clustering voxels ...\n", " + Largest cluster has 68885 voxels\n", " + Clustering non-brain voxels ...\n", " + Clustering voxels ...\n", " + Largest cluster has 202748 voxels\n", " + Mask now has 68885 voxels\n", "++ 68885 voxels in the mask [out of 271633: 25.36%]\n", "++ first 7 x-planes are zero [from L]\n", "++ last 6 x-planes are zero [from R]\n", "++ first 5 y-planes are zero [from P]\n", "++ last 4 y-planes are zero [from A]\n", "++ first 0 z-planes are zero [from I]\n", "++ last 8 z-planes are zero [from S]\n", "++ Output dataset ./rm.mask_r02+tlrc.BRIK\n", "++ CPU time = 0.000000 sec\n", "end\n", "3dmask_tool -inputs rm.mask_r01+tlrc.HEAD rm.mask_r02+tlrc.HEAD -union -prefix full_mask.sub_08\n", "++ processing 2 input dataset(s), NN=2...\n", "++ padding all datasets by 0 (for dilations)\n", "++ frac 0 over 2 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 68948 survived, 202685 were zero\n", "++ writing result full_mask.sub_08...\n", "++ Output dataset ./full_mask.sub_08+tlrc.BRIK\n", "3dresample -master full_mask.sub_08+tlrc -input sub-08_T1w_ns+tlrc -prefix rm.resam.anat\n", "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.anat+tlrc -prefix mask_anat.sub_08\n", "++ no -frac option: defaulting to -union\n", "++ processing 1 input dataset(s), NN=2...\n", "++ padding all datasets by 5 (for dilations)\n", "++ frac 0 over 1 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 76711 survived, 194922 were zero\n", "++ filled 0 holes (0 voxels)\n", "++ writing result mask_anat.sub_08...\n", "++ Output dataset ./mask_anat.sub_08+tlrc.BRIK\n", "3dmask_tool -input full_mask.sub_08+tlrc mask_anat.sub_08+tlrc -inter -prefix mask_epi_anat.sub_08\n", "++ processing 2 input dataset(s), NN=2...\n", "++ padding all datasets by 0 (for dilations)\n", "++ frac 1 over 2 volumes gives min count 2\n", "++ voxel limits: 10363 clipped, 67648 survived, 193622 were zero\n", "++ writing result mask_epi_anat.sub_08...\n", "++ Output dataset ./mask_epi_anat.sub_08+tlrc.BRIK\n", "3dABoverlap -no_automask full_mask.sub_08+tlrc mask_anat.sub_08+tlrc\n", "tee out.mask_ae_overlap.txt\n", "++ 3dABoverlap: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "#A=./full_mask.sub_08+tlrc.BRIK B=./mask_anat.sub_08+tlrc.BRIK\n", "#A #B #(A uni B) #(A int B) #(A \\ B) #(B \\ A) %(A \\ B) %(B \\ A) Rx(B/A) Ry(B/A) Rz(B/A)\n", "68948 76711 78011 67648 1300 9063 1.8855 11.8145 1.0652 0.9478 1.1189\n", "3ddot -dodice full_mask.sub_08+tlrc mask_anat.sub_08+tlrc\n", "tee out.mask_ae_dice.txt\n", "0.928854\t\n", "3dresample -master full_mask.sub_08+tlrc -prefix ./rm.resam.group -input /opt/afni-latest/MNI_avg152T1+tlrc\n", "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.group+tlrc -prefix mask_group\n", "++ no -frac option: defaulting to -union\n", "++ processing 1 input dataset(s), NN=2...\n", "++ padding all datasets by 5 (for dilations)\n", "++ frac 0 over 1 volumes gives min count 0\n", "++ voxel limits: 0 clipped, 73409 survived, 198224 were zero\n", "++ filled 0 holes (0 voxels)\n", "++ writing result mask_group...\n", "++ Output dataset ./mask_group+tlrc.BRIK\n", "3ddot -dodice mask_anat.sub_08+tlrc mask_group+tlrc\n", "tee out.mask_at_dice.txt\n", "0.960445\t\n", "foreach run ( 01 02 )\n", "3dTstat -prefix rm.mean_r01 pb03.sub_08.r01.blur+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.mean_r01+tlrc.BRIK\n", "3dcalc -a pb03.sub_08.r01.blur+tlrc -b rm.mean_r01+tlrc -c mask_epi_extents+tlrc -expr c * min(200, a/b*100)*step(a)*step(b) -prefix pb04.sub_08.r01.scale\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb04.sub_08.r01.scale+tlrc.BRIK\n", "end\n", "3dTstat -prefix rm.mean_r02 pb03.sub_08.r02.blur+tlrc\n", "++ 3dTstat: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: KR Hammett & RW Cox\n", "++ Output dataset ./rm.mean_r02+tlrc.BRIK\n", "3dcalc -a pb03.sub_08.r02.blur+tlrc -b rm.mean_r02+tlrc -c mask_epi_extents+tlrc -expr c * min(200, a/b*100)*step(a)*step(b) -prefix pb04.sub_08.r02.scale\n", "++ 3dcalc: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ Authored by: A cast of thousands\n", "++ Output dataset ./pb04.sub_08.r02.scale+tlrc.BRIK\n", "end\n", "gen_epi_review.py -script @epi_review.sub_08 -dsets pb00.sub_08.r01.tcat+orig.HEAD pb00.sub_08.r02.tcat+orig.HEAD\n", "rm -f rm.epi.1.r01+tlrc.BRIK rm.epi.1.r01+tlrc.HEAD rm.epi.1.r02+tlrc.BRIK rm.epi.1.r02+tlrc.HEAD rm.epi.all1+orig.BRIK rm.epi.all1+orig.HEAD rm.epi.mean+tlrc.BRIK rm.epi.mean+tlrc.HEAD rm.epi.min.r01+tlrc.BRIK rm.epi.min.r01+tlrc.HEAD rm.epi.min.r02+tlrc.BRIK rm.epi.min.r02+tlrc.HEAD rm.epi.nomask.r01+tlrc.BRIK rm.epi.nomask.r01+tlrc.HEAD rm.epi.nomask.r02+tlrc.BRIK rm.epi.nomask.r02+tlrc.HEAD rm.epi.volreg.r01+orig.BRIK rm.epi.volreg.r01+orig.HEAD rm.epi.volreg.r02+orig.BRIK rm.epi.volreg.r02+orig.HEAD rm.mask_r01+tlrc.BRIK rm.mask_r01+tlrc.HEAD rm.mask_r02+tlrc.BRIK rm.mask_r02+tlrc.HEAD rm.mean_r01+tlrc.BRIK rm.mean_r01+tlrc.HEAD rm.mean_r02+tlrc.BRIK rm.mean_r02+tlrc.HEAD rm.resam.anat+tlrc.BRIK rm.resam.anat+tlrc.HEAD rm.resam.group+tlrc.BRIK rm.resam.group+tlrc.HEAD\n", "if ( -e @ss_review_basic ) then\n", "cd ..\n", "echo execution finished: `date`\n", "date\n", "execution finished: Thu May 1 05:16:14 UTC 2025\n" ] } ], "source": [ "# Delete any previous output (if needed)\n", "! rm -r ./afni_processing/sub_08.results\n", "\n", "# Rerun the processing script\n", "! tcsh -xef proc.sub_08 |& tee output.proc.sub_08" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the preprocessing is running, here’s a brief overview of the key steps. For a more detailed explanation of each preprocessing stage, have another look at [Andy's Brain Book’s excellent tutorial](https://andysbrainbook.readthedocs.io/en/latest/AFNI/AFNI_Short_Course/AFNI_04_Preprocessing.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Slice Time Correction\n", "Even though slice timing correction is often applied to functional data, in this dataset the slices were already aligned in time. \r\n", "When running `3dTshift`, AFNI detected this and simply created a copy of the input data without modification (as indicated by the warning message).\r\n", "\r\n", "Normally, if slice timing correction were needed, it would use the first slice as the reference (specified by the `-tzero 0` option in `3dTshift`). \r\n", "You can still see the slice timing correction step in the `proc.sub_08` script, but in this case, it had no effect on the data.\r\n", "\r\n", "**Note:** Although slice-timing correction is common, there are some general objections: it involves interpolating the data (which is best avoided when possible), it may not significantly improve results when the TR is short (e.g., around 1 second), and timing differences can sometimes be modeled later using a temporal derivative during model fitting.\r\n" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "
\n",
    "# =================== tshift ===================\n",
    "    \n",
    "foreach run ( $runs )\n",
    "  3dTshift -tzero 0 -quintic -prefix pb01.$subj.r$run.tshift \\\n",
    "           pb00.$subj.r$run.tcat+orig\n",
    "end\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Registration and Normalization\n", "\n", "Registration aligns the functional and anatomical images. It usually begins by assuming the images are roughly in the same space; if not, their outlines are aligned.\n", "To fine-tune the alignment, the algorithm uses differences in contrast (mutual information), matching dark areas on one image with bright areas on the other. AFNI's preferred method is Local Pearson Correlation (LPC), which gives greater weight to brighter areas in the functional data.\n", "Once a good alignment is found, the same transformations can later be applied to warp the functional images to a standard template.\n", "\n", "In this example, AFNI’s ```align_epi_anat.py``` command is used to perform the registration. Although this tool can also handle slice-timing correction and functional volume alignment, it will be used here only for registration\n", "\n", "The key options used are:\n", "\n", "- ```-anat2epi```: Aligns the anatomical image to the functional image (not the other way around), minimizing changes to the functional data.\n", "\n", "- ```-suffix``` _al_junk: Adds a suffix to intermediate files, which will be useful for later steps.\n", "\n", "- ```-epi```, ```-epi_base```, ```-epi_strip```: Chooses the functional volume with least variability as the reference and strips non-brain tissue using 3dAutomask.\n", "\n", "- ```-giant_move```: Helps find an initial rough alignment if the images are very misaligned.\n", "\n", "- ```-volreg off```, ```-tshift off```: Indicates that alignment and slice-timing correction are not included in the current command." ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Registration with AFNI`s align_epi_anat.py\n" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "
\n",
    "=================== align ====================\n",
    "    \n",
    "align_epi_anat.py -anat2epi -anat sub-08_T1w+orig \\\r\n",
    "     -save_skullstrip -suffix _al_junk          \\\r\n",
    "     -epi vr_base_min_outlier+orig -epi_base 0  \\\r\n",
    "     -epi_strip 3dAutomask                      \\\r\n",
    "     -giant_move                                \\\r\n",
    "     -volreg off -tshift off\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Normalization with AFNI's @auto_tlrc\n", "\n", "After registration, the anatomical image is normalized to a standard template (MNI_avg152T1) using AFNI’s ```@auto_tlrc``` command. Since the anatomical image has already been skull-stripped, the ```-no_ss``` option is used. Because the centers of the anatomical and template images were far apart, the `-init_xform AUTO_CENTER` option was included. \n", "This helps by roughly aligning the centers of the two images before the fine registration step.\n", "The transformation needed to align the anatomical image to the template is stored as an affine matrix in the header of the anatomical iamge.\n", "This matrix is then extracted with the ```cat_matvec``` command and saved as ```warp.anat.Xat.1D```, so it can later be applied to the functional images as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n",
    "#warp anatomy to standard space\n",
    "@auto_tlrc -base MNI_avg152T1+tlrc -input sub-08_T1w_ns+orig -no_ss -init_xform AUTO_CENTER\n",
    "\n",
    "#store forward transformation matrix in a text file\n",
    "cat_matvec sub-08_T1w_ns+tlrc::WARP_DATA -I > warp.anat.Xat.1D\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Alignment and Motion Correction\n", "Motion correction is done with AFNI’s ```3dvolreg``` command.\n", "The functional volumes are aligned to a reference image, which is selected as the volume with the fewest outliers (identified using ```3dToutcount``` earlier).\n", "Motion parameters are saved into a text file (```-1Dfile```) and the corresponding affine transformation matrices into another file (```-1Dmatrix_save```)." ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "
\n",
    "# =================== volreg ===================\n",
    "                        ...\n",
    "#register and warp\n",
    "foreach run ( $runs ) \n",
    "    \n",
    "#register each volume to the base image\n",
    "    3dvolreg -verbose -zpad 1 -base vr_base_min_outlier+orig   \\n",
    "           -1Dfile dfile.r$run.1D -prefix rm.epi.volreg.r$run  \\n",
    "           -cubic                                              \\n",
    "           -1Dmatrix_save mat.r$run.vr.aff12.1D                \\\n",
    "            pb01.$subj.r$run.tshift+orig\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "These motion correction matrices are then concatenated with the matrices from anatomical registration and normalization." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n",
    "#catenate volreg/epi2anat/tlrc xforms\n",
    "cat_matvec -ONELINE                                        \\\n",
    "         {$subj}_T1w_ns+tlrc::WARP_DATA -I                 \\\n",
    "         {$subj}_T1w_al_junk_mat.aff12.1D -I               \\\n",
    "         mat.r$run.vr.aff12.1D > mat.r$run.warp.aff12.1D\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using ```3dAllineate``` and the ```-1Dmatrix_apply``` option, both motion correction and normalization are applied to the functional images in one step." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n",
    "#warp the all-1 dataset for extents masking\n",
    "3dAllineate -base {$subj}_T1w_ns+tlrc                     \\\n",
    "          -input rm.epi.all1+orig                         \\\n",
    "          -1Dmatrix_apply mat.r$run.warp.aff12.1D         \\\n",
    "          -mast_dxyz 3 -final NN -quiet                   \\\n",
    "          -prefix rm.epi.1.r$run\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Smoothing\n", "Smoothing is done with AFNI’s ```3dmerge``` command, which can be found under the “blur” header.\n", "\n", "The ```-1blur_fwhm``` option applies spatial smoothing with a 4mm kernel, and ```-doall``` ensures smoothing is done across all volumes. After smoothing, the images are scaled to a mean intensity of 100, allowing changes to be interpreted as percent signal change. Finally, a brain mask is applied to remove non-brain voxels, preparing the data for statistical analysis." ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "
\n",
    "# ==================== blur ====================\n",
    "#blur each volume of each run   \n",
    "foreach run ( $runs )\n",
    "  3dmerge -1blur_fwhm 4.0 -doall -prefix pb03.$subj.r$run.blur \\\n",
    "          pb02.$subj.r$run.volreg+tlrc\n",
    "end\n",
    "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "#### Masking and Scaling\n", "##### Masking\n", "\n", "fMRI datasets include not only brain voxels but also irrelevant areas like the skull, neck, and air. To focus analysis and speed up processing, a mask is applied: voxels inside the mask are kept, and those outside are discarded. AFNI’s ```3dAutomask``` creates these masks by simply specifying the input and output datasets. The additional steps combine individual fMRI masks into a union mask, compute a mask for the anatomical image, and take the intersection of both to define the final analysis region." ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "
\n", "
\n",
    "# ==================== mask ====================\n",
    "# create 'full_mask' dataset (union mask)  \n",
    "    \n",
    "foreach run ( $runs )\n",
    "    3dAutomask -prefix rm.mask_r$run pb03.$subj.r$run.blur+tlrc\n",
    "end\n",
    "\n",
    "#create union of inputs, output type is byte \n",
    "3dmask_tool -inputs rm.mask_r*+tlrc.HEAD -union -prefix full_mask.$subj\n",
    "\n",
    "# ---- create subject anatomy mask ----\n",
    "#      (resampled from tlrc anat)\n",
    "3dresample -master full_mask.$subj+tlrc -input sub-08_T1w_ns+tlrc     \\\n",
    "           -prefix rm.resam.anat\n",
    "\n",
    "# convert to binary anat mask; fill gaps and holes\n",
    "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.anat+tlrc  \\\n",
    "            -prefix mask_anat.$subj\n",
    "\n",
    "# compute tighter EPI mask by intersecting with anat mask\n",
    "3dmask_tool -input full_mask.$subj+tlrc mask_anat.$subj+tlrc          \\\n",
    "            -inter -prefix mask_epi_anat.$subj\n",
    "\n",
    "# compute overlaps between anat and EPI masks\n",
    "3dABoverlap -no_automask full_mask.$subj+tlrc mask_anat.$subj+tlrc    \\\n",
    "            |& tee out.mask_ae_overlap.txt\n",
    "\n",
    "# note Dice coefficient of masks, as well\n",
    "3ddot -dodice full_mask.$subj+tlrc mask_anat.$subj+tlrc               \\\n",
    "      |& tee out.mask_ae_dice.txt\n",
    "\n",
    "# ---- create group anatomy mask, mask_group+tlrc ----\n",
    "#      (resampled from tlrc base anat, MNI_avg152T1+tlrc)\n",
    "3dresample -master full_mask.$subj+tlrc -prefix ./rm.resam.group      \\\n",
    "           -input /opt/afni-latest/MNI_avg152T1+tlrc\n",
    "\n",
    "# convert to binary group mask; fill gaps and holes\n",
    "3dmask_tool -dilate_input 5 -5 -fill_holes -input rm.resam.group+tlrc \\\n",
    "            -prefix mask_group\n",
    "\n",
    "# note Dice coefficient of anat and template masks\n",
    "3ddot -dodice mask_anat.$subj+tlrc mask_group+tlrc                    \\\n",
    "      |& tee out.mask_at_dice.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "##### Scaling\n",
    "fMRI signal intensities are arbitrary and vary between subjects and runs. To make meaningful comparisons, AFNI scales each voxel's time series to a mean of 100, allowing for consistent signal intensity contrasts between conditions and across subjects."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "
\n", "
\n",
    "# ==================== scale ====================\n",
    "# scale each voxel time series to have a mean of 100\n",
    "# (be sure no negatives creep in)\n",
    "# (subject to a range of [0,200])  \n",
    "foreach run ( $runs )\n",
    "    3dTstat -prefix rm.mean_r$run pb03.$subj.r$run.blur+tlrc\n",
    "    3dcalc -a pb03.$subj.r$run.blur+tlrc -b rm.mean_r$run+tlrc \\\n",
    "           -c mask_epi_extents+tlrc                            \\\n",
    "           -expr 'c * min(200, a/b*100)*step(a)*step(b)'       \\\n",
    "           -prefix pb04.$subj.r$run.scale\n",
    "end "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Effect of Scaling:** Before scaling, time-series values are arbitrary and vary between subjects. After scaling, each subject's data is normalized to the same mean, enabling consistent comparisons across runs and subjects. To visualize both the original and scaled data with Matplotlib, the AFNI format needs to be converted to NIfTI format using the ```3dAFNItonNIFI``` command.\n",
    "The following plot compares the signal intensity time series from a voxel at the center of the brain, before and after scaling. The red dashed line indicates the mean signal intensity for each time series."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul  8 2021) [64-bit]\n",
      "\u001b[7m*+ WARNING:\u001b[0m varying brick factors, writing NIfTI as float\n",
      "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul  8 2021) [64-bit]\n",
      "\u001b[7m*+ WARNING:\u001b[0m varying brick factors, writing NIfTI as float\n"
     ]
    }
   ],
   "source": [
    "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/pb03.sub_08.r01.blur.nii.gz ./afni_processing/sub_08.results/pb03.sub_08.r01.blur+tlrc\n",
    "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/pb04.sub_08.r01.scale.nii.gz ./afni_processing/sub_08.results/pb04.sub_08.r01.scale+tlrc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3gU1frHv7vplRAgBEJI6L0J0iyI9CD2dkVFQbGCvXB/VuxevRZsF0GuBa8IKraogKBYEJDeewsQAqmkl53fHy8nM7vZMjM7s7vZfT/Pk2cns2XO7sycc77nbRZJkiQwDMMwDMMwDMMwDGM4Vn83gGEYhmEYhmEYhmGCFRbdDMMwDMMwDMMwDGMSLLoZhmEYhmEYhmEYxiRYdDMMwzAMwzAMwzCMSbDoZhiGYRiGYRiGYRiTYNHNMAzDMAzDMAzDMCbBopthGIZhGIZhGIZhTIJFN8MwDMMwDMMwDMOYBItuhmEYhmEYhmEYhjEJFt0MwzCMqWRmZuKmm27ydzMAAAcPHoTFYsF///tft6/75ZdfYLFY8Msvv/ikXWai9jsbgcViwd13323oZ544cQJXXnklmjVrBovFgtdff93Qz28MODuHTz31FCwWi/8axTAMw6iGRTfDMAyjiy1btuDKK69ERkYGoqOjkZaWhlGjRmHWrFn+bppfOXbsGJ566ils3LjR301xSXZ2Np566il/N0MV9913H3766SfMmDEDH3/8McaOHevvJjEMwzCMJsL93QCGYRim8fHnn39i+PDhaNu2LW699VakpqbiyJEj+Ouvv/DGG29g2rRp9a/dtWsXrNbGtcZ7/vnno6KiApGRkZrfe+zYMTz99NPIzMxE3759jW+cRjIyMlBRUYGIiIj6fdnZ2Xj77bcbhfBevnw5LrnkEjz44IP+bkpA8dhjj+HRRx/1dzMYhmEYFbDoZhiGYTTz3HPPoUmTJli7di2SkpLsnsvLy7P7PyoqyoctMwar1Yro6Gh/N8MQLBZLo/4ueXl5Da4xb6isrERkZGSjWwhyJDw8HOHhPI1jGIZpDDTuEYdhGIbxC/v27UOPHj2ciqGUlBS7/53FdG/evBnDhg1DTEwM2rRpg2effRbz5s2DxWLBwYMH7d570UUX4ffff8fAgQMRHR2N9u3b46OPPrL7vIKCAjz44IPo1asX4uPjkZiYiHHjxmHTpk26vp+zmO4LLrgAPXv2xPbt2zF8+HDExsYiLS0NL7/8st37zj77bADAzTffDIvF0iAWd/Xq1Rg7diyaNGmC2NhYDBs2DH/88Yfd8UW87t69e3HTTTchKSkJTZo0wc0334zy8nK71y5duhTnnnsukpKSEB8fjy5duuCf//xn/fOO8cA33XQT3n77bQCob5/FYoEkScjMzMQll1zS4PeorKxEkyZNcNttt6n6/ebPn48uXbogOjoa/fv3x8qVKxu85ujRo5g8eTJatmyJqKgo9OjRAx988EH98//973/r2/X222/Xt1Owf/9+XHXVVUhOTkZsbCwGDx6M77//3u4Y4jx+9tlneOyxx5CWlobY2FiUlJQAUHcuXDFr1iz06NEDsbGxaNq0KQYMGIBPP/20wXecMmUKWrdujaioKLRr1w533HEHqqurAXh33TqL6RYx9YsXL0bPnj3rf9cff/yxwft/+eUXDBgwANHR0ejQoQP+85//cJw4wzCMSfASKcMwDKOZjIwMrFq1Clu3bkXPnj01vffo0aMYPnw4LBYLZsyYgbi4OMyZM8elRXzv3r248sorMWXKFEyaNAkffPABbrrpJvTv3x89evQAQAJs8eLFuOqqq9CuXTucOHEC//nPfzBs2DBs374drVu39vo7A0BhYSHGjh2Lyy+/HFdffTUWLVqERx55BL169cK4cePQrVs3zJw5E0888QSmTp2K8847DwAwdOhQAOQqPW7cOPTv3x9PPvkkrFYr5s2bhwsvvBC//fYbBg4caHe8q6++Gu3atcMLL7yA9evXY86cOUhJScFLL70EANi2bRsuuugi9O7dGzNnzkRUVBT27t3rVjjedtttOHbsGJYuXYqPP/64fr/FYsH111+Pl19+GQUFBUhOTq5/7ttvv0VJSQmuv/56j7/Rr7/+igULFmD69OmIiorCO++8g7Fjx2LNmjX118qJEycwePDgepHYokUL/PDDD5gyZQpKSkpw77334vzzz8fHH3+MG264AaNGjcKNN95Yf4wTJ05g6NChKC8vx/Tp09GsWTN8+OGHuPjii7Fo0SJcdtlldm165plnEBkZiQcffBBVVVWIjIzUfC6UvP/++5g+fTquvPJK3HPPPaisrMTmzZuxevVqXHfddQAozGDgwIEoKirC1KlT0bVrVxw9ehSLFi1CeXk5IiMjTbluf//9d3z5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3AEgCIIgooJSdFOZMCIScMu22+39f7yjdDEn0U1YLMA33wAbNwI9e0a7NfqgRGptmM6dO+PDDz/ECy+8gGRPUFpjYyM++OADdInh4fujR496/f/VV1/h+uuvx6WXXgoAOOOMM1qsM3PmTHz99dcYOnQoAKC6uhrnnXcexo0bhzlz5mDLli2YMWMGsrKycJPSR8WH559/Hv/4xz/w3HPPYcSIEairq8O+ffu81rnrrruwZMkSzJ49GwMGDEB5eTnKeV0LgiAIotVyyimsczdsGDBqVLRbQ8QD3NLNIYHJKCgAdu1i8xTTTQAs7MA39KA1QaK7DXPaaadh9+7d+OSTT3DVVVcBAD755BN06dIFxcXFXuu63W4888wzeOONN1BaWopevXph5syZ+P3vfw8AcLlcuOmmm/DNN9+gtLQUXbp0wW233Ya77rpL2sa0adNQWVmJs846C//4xz/Q3NyMK664Ai+++CLsdrvqdhf4ZND47LPPMHbsWHTr1g0AkJCQ4LWOw+HAZ599hjvuuEMq5/b++++jubkZb731FhISEtC/f39s2rQJzz//fEDRXVFRgYcffhiff/45zj33XGn5qYrgke3bt+P111/HL7/8gt69ewNAi2NJEARBtE569wa2bmUdfioTRkQCX9FNlm4GWbqJtga5l7dxZsyYgXnz5kn/v/XWW5g+fXqL9Z5++mnMnz8fc+bMwdatW3HPPffg6quvxrfffguAifLCwkJ8/PHH2LZtGx555BE89NBD+M9//uO1neXLl2P37t1Yvnw53nnnHbz99tt4++23pc8fe+wxFBUVqW7/sWPH8OWXX+L6668PuM7ChQtRVlbm9btWr16NUaNGISEhQVo2YcIE7NixAxUVFX63s3TpUrjdbhw+fBh9+/ZFYWEhLrvsMhw8eFBa5/PPP0e3bt3wxRdfoLi4GEVFRbjhhhvI0k0QBNFG6NOnpRAiCLPwFdkkMBkkuom2BonuNs7VV1+N77//Hvv378f+/fvxww8/4Oqrr/Zap6mpCU899RTeeustTJgwAd26dcO0adNw9dVX41//+hcAwG634/HHH8fQoUNRXFyMq666CtOnT28hurOzs/HPf/4Tffr0wZQpUzB58mR8/fXX0uft2rVD9+7dVbf/nXfeQXp6Oi655JKA67z55puYMGECCgsLpWWlpaVo7+ODwv8vLS31u509e/bA7XbjqaeewosvvogFCxagvLwc48ePR3Nzs7TO/v378fHHH2P+/Pl4++238dNPP0keAQRBEARBEGoh93L/cNGdkgIkJUW3LQRhBCS69fLEE+wpwP+OHgU++sh72cqVLOJfuWzuXKCuznvZAw+wbXbvLi+7+GK2bOJE9v8TT+hqZl5eHiZPnoy3334b8+bNw+TJk9GuXTuvdXbt2oX6+nqMHz8eaWlp0t/8+fOxe/duab1XX30VQ4YMQV5eHtLS0vDGG2/gAE+36aF///6wWq3S/x06dMDx48el///4xz96ifBQvPXWW7jqqquQFOCJe+jQIfzvf/8LaglXi9vthsPhwMsvv4wJEybg9NNPx//93/9h586dWL58ubROU1MT5s+fj7PPPhtjxozBm2++ieXLl2PHjh1ht4EgCIIgiPjB19JN7uUMLrppEIJoK1BMt14efpj9Kbn8cvbnS2OjumUKgSvx1Vf62qdgxowZ+OMf/wiACWdfamtrAQBffvklOnXq5PVZYmIiAODDDz/Efffdh3/84x8YOXIk0tPT8dxzz2HNmjVe6/vGbguCADdPyamR7777Djt27MBHH30UcJ158+YhNzcXF154odfygoICHDt2zGsZ/983ZpzToUMHAEC/fv2kZXl5eWjXrp00uNChQwfYbDb06tVLWqdv374AgAMHDkhx3gRBEARBEKEgS7d/Ondm09acOIsglJDojgPOP/98NDc3QxAETJgwocXn/fr1Q2JiIg4cOIDRo0f73cYPP/yAM844A7fddpu0bLe/QQIDefPNNzFkyBAMHDjQ7+eiKGLevHm49tprW4j9kSNH4q9//SscDof02dKlS9G7d29kBxhGPvPMMwEAO3bskFzVy8vLcfLkSXTt2lVax+l0Yvfu3ZKb/G+//QYA0joEQRAEQRBqUHZJbDYgNTV6bYklzjkHmDkTUOS1JYhWDbmXxwFWqxXbt2/Htm3bvFy/Oenp6bjvvvtwzz334J133sHu3buxYcMGvPLKK3jnnXcAAD179sT69evxv//9D7/99htmzpzpVRNbLf/85z+9MoMHorq6Gh9//DFuuOGGgOt888032Lt3r991rrzySiQkJOD666/H1q1b8dFHH+Gll17CvffeK63z6aefYvjw4dL/vXr1wkUXXYS77roLq1atwi+//ILrrrsOffr0wdixYwEA48aNw2mnnYYZM2Zg48aN+Omnn3DzzTdj/PjxXtZvgiAIgiCIUCgt3Tk5lDWfY7MBs2YBAWxBBNHqINEdJ2RkZCAjIyPg53/7298wc+ZMPP300+jbty/OP/98fPnll1I5rJtvvhmXXHIJLr/8cowYMQJlZWVeVm+1nDx5UpWF/MMPP4QoivjDH/4QcJ0333wTZ5xxBvr06dPis8zMTCxZsgR79+7FkCFD8Kc//QmPPPKIV7mwqqoq7Ny50+t78+fPx4gRIzB58mSMHj0adrsdixcvlqzlFosFn3/+Odq1a4dRo0Zh8uTJ6Nu3Lz788EO1h4AgCIIgCAIAkJkpC22K5yaItosgiqIY7UZEm+rqamRmZuLkyZPIzc31+qyxsRF79+5FcXFxwGReROvE7XajuroaGRkZsFjMG3+iayi2cDgcWLRoESZNmqSpfjzRuqHzHp/QeY9PWtt5z8oCqqqAkSOBVaui3ZrWS2s774QxRPu8cx1ZVVUV1MBJlm6CIAiCIAiCiBLcwk2WboJou5DoJgiCIAiCIIgoweO6KXM5QbRdSHQTBEEQBEEQRJTgopss3QTRdiHRTRAEQRAEQRBRgottsnQTRNuFRDdBEARBEARBRIlTT/WeEgTR9iDRrRJK8k7oha4dgiAIgiAC8cgjwN69wCWXRLslBEGYBYnuEPDU8/X19VFuCdFa4dcOla8gCIIgCMIXiwUoKop2KwiCMBNbtBsQ61itVmRlZeH48eMAgJSUFAiCEOVWEUbgdrvR3NyMxsZGU+p0i6KI+vp6HD9+HFlZWbBarYbvgyAIgiAIgiCI2CaqoruoqAj79+9vsfy2227Dq6++ijFjxuDbb7/1+uzmm2/GnDlzpP8PHDiAW2+9FcuXL0daWhquu+46PP3007DZjPtpBQUFACAJb6JtIIoiGhoakJycbOpASlZWlnQNEQRBEARBEAQRX0RVdK9btw4ul0v6/5dffsH48eMxdepUadmNN96IWbNmSf+npKRI8y6XC5MnT0ZBQQFWrVqFo0eP4tprr4XdbsdTTz1lWDsFQUCHDh2Qn58Ph8Nh2HaJ6OJwOLBy5UqMGjXKNNdvu91OFm6CIAiCIAiCiGOiKrrz8vK8/v/73/+O7t27Y/To0dKylJSUgFbCJUuWYNu2bVi2bBnat2+PQYMG4W9/+xv+/Oc/47HHHkNCQoKh7bVarSSg2hBWqxVOpxNJSUkUb00QBEEQBEEQhCnETEx3c3Mz3nvvPdx7771err7vv/8+3nvvPRQUFOCCCy7AzJkzJWv36tWrMWDAALRv315af8KECbj11luxdetWDB482O++mpqa0NTUJP1fXV0NgFk+yZIdP/BzTec8vqDzHp/QeY9P6LzHJ3Te4xM67/FJtM+72v3GjOguKSlBZWUlpk2bJi278sor0bVrV3Ts2BGbN2/Gn//8Z+zYsQOffPIJAKC0tNRLcAOQ/i8tLQ24r6effhqPP/54i+XLly/3cl8n4oOlS5dGuwlEFKDzHp/QeY9P6LzHJ3Te4xM67/FJtM672gpXMSO633zzTUycOBEdO3aUlt10003S/IABA9ChQwece+652L17N7p37657Xw8++CDuvfde6f/q6mp07twZY8eORW5uru7tEq0Lh8OBpUuXYvz48eReHkfQeY9P6LzHJ3Te4xM67/EJnff4JNrnnXtMhyImRPf+/fuxbNkyyYIdiBEjRgAAdu3ahe7du6OgoABr1671WufYsWMAEDRbdGJiIhITE6X/RVEEADQ2NqKhoUHXbyBaHw6HA/X19WhoaIDT6Yx2c4gIQec9PqHzHp/QeY9P6LzHJ3Te45Non3euHbmeDERMiO558+YhPz8fkydPDrrepk2bAAAdOnQAAIwcORJPPvkkjh8/jvz8fADMtSAjIwP9+vVTvf+ysjIAQHFxsY7WEwRBEARBEARBEPFKTU0NMjMzA34uiKFkucm43W4UFxfjD3/4A/7+979Ly3fv3o0PPvgAkyZNQm5uLjZv3ox77rkHhYWFUu1ul8uFQYMGoWPHjnj22WdRWlqKa665BjfccIOmkmGVlZXIzs7GgQMHgh4som3BwwoOHjyIjIyMaDeHiBB03uMTOu/xCZ33+ITOe3xC5z0+ifZ5F0URNTU16NixIywWS8D1om7pXrZsGQ4cOIAZM2Z4LU9ISMCyZcvw4osvoq6uDp07d8all16Khx9+WFrHarXiiy++wK233oqRI0ciNTUV1113nVddbzXwA5SZmUk3aRySkZFB5z0OofMen9B5j0/ovMcndN7jEzrv8Uk0z7sao23URfd5553n1we+c+fOkkU7GF27dsWiRYvMaBpBEARBEARBEARBhEVgGzhBEARBEARBEARBEGFBohssm/mjjz7qldGc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0UcfNWT7VqvV73JREav71FNPYebMmZgxYwb+9re/IScnBxaLBXfffbeh5ZjUtCUQvB3PPfdcwJJYSoulmv0lJydj5cqVWL58Ob788kssXrwYH330Ec455xwsWbIk4PeDccUVV+Cee+7B+++/j4ceegjvvfcehg4dit69ewf93u7du3HuueeiT58+eP7559G5c2ckJCRg0aJFeOGFF3SfBz3HTWl5DsaoUaOwe/dufPbZZ1iyZAnmzp2LF154AXPmzMENN9yguo133HEH5s2bh7vvvhsjR45EZmYmBEHAFVdcoft3h3OtEQRBEJGHRDdBEAQREYYOHQoAOHr0aMB1unbtil27drVY7m+ZWhYsWICxY8fizTff9FpeWVmJdu3a6d6uHgK5YHfv3h0AkJGRgXHjxhm2P4vFgnPPPRfnnnsunn/+eTz11FP461//iuXLlwfcTzA38ZycHEyePBnvv/8+rrrqKvzwww948cUXQ7bj888/R1NTExYuXOhlpV2+fLmq3xHp48bJycnB9OnTMX36dNTW1mLUqFF47LHHcMMNN6Bbt24AgF9++SXoNhYsWIDrrrsO//jHP6RljY2NqKysNLy9nK5duwLwf9+Ecy8RBEEQ+iD3coIgCMJQli9f7tfitmjRIgAIahWdMGECVq9ejU2bNknLysvLveKItWK1Wlu05+OPP8bhw4d1b1MvvCa0r+AaMmQIunfvjtmzZ6O2trbF906cOKF5X+Xl5S2WcWtwU1OT5jZyrrnmGmzbtg33338/rFYrrrjiipBt4ZZZ5XmoqqrCvHnzQn43WJvMOG6csrIyr//T0tLQo0cP6djl5eVh1KhReOutt3DgwAGvdZW/09/198orr8DlculuWyg6duyIU045BfPnz/c6Lt9++y22bNli2n4JgiAI/5ClmyAIgjCUO+64A/X19fjd736HPn36oLm5GatWrcJHH32EoqIiTJ8+PeB3H3jgAbz33nsYP3487rjjDqlkWJcuXVBeXh4yWZc/pkyZglmzZmH69Ok444wzsGXLFrz//vuSpTKSdO/eHVlZWZgzZw7S09ORmpqKESNGoLi4GHPnzsXEiRPRv39/TJ8+HZ06dcLhw4exfPlyZGRk4PPPP9e0r1mzZmHlypWYPHkyunbtiuPHj+O1115DYWFh0PrUQ4YMAQDceeedmDBhQgthPXnyZOTm5uLjjz/GxIkTW9Re98d5552HhIQEXHDBBbj55ptRW1uLf//738jPzw/q+cCJ5HHj9OvXD2PGjMGQIUOQk5OD9evXY8GCBfjjH/8orfPyyy/jrLPOwmmnnYabbroJxcXF2LdvH7788ktp4GjKlCl49913kZmZiX79+mH16tVYtmwZcnNzdbVLLU899RQuuuginHnmmZg+fToqKirwz3/+E6eccorfAQqCIAjCPEh0EwRBEIYye/ZsfPzxx1i0aBHeeOMNNDc3o0uXLrjtttvw8MMPS1m1/dG5c2csX74cd955J5566ink5eXh9ttvR2pqKu68804kJSVpbs9DDz2Euro6fPDBB/joo49w2mmn4csvv8Rf/vKXMH6lPux2O9555x08+OCDuOWWW+B0OjFv3jwUFxdjzJgxWL16Nf72t7/hn//8J2pra1FQUIARI0bg5ptv1ryvCy+8EPv27cNbb72FkydPol27dhg9ejQef/xxZGZmBvzeJZdcgjvuuAMffvgh3nvvPYii6CW6ExIScPnll+O1115TlUANYN4NCxYswMMPP4z77rsPBQUFuPXWW5GXl4cZM2aE/H4kjxvnzjvvxMKFC7FkyRI0NTWha9eueOKJJ3D//fdL6wwcOBA//vgjZs6ciddffx2NjY3o2rUrLrvsMmmdl156CVarFe+//z4aGxtx5plnYtmyZZgwYYLutqnhggsuwP/93//hsccew1/+8hf07NkTb7/9Nt555x1s3brV1H0TBEEQ3ggiZd0gCIIgYpy7774b//rXv1BbW6srARhhLPfccw/efPNNlJaWIiUlJdrNITQwaNAg5OXlYenSpdFuCkEQRNxAMd0EQRBETNHQ0OD1f1lZGd59912cddZZJLhjgMbGRrz33nu49NJLSXDHMA6HA06n02vZihUr8PPPP2PMmDHRaRRBEEScQu7lBEEQREwxcuRIjBkzBn379sWxY8fw5ptvorq6GjNnzox20+Ka48ePY9myZViwYAHKyspw1113RbtJRBAOHz6McePG4eqrr0bHjh3x66+/Ys6cOSgoKMAtt9wS7eYRBEHEFSS6CYIgiJhi0qRJWLBgAd544w0IgoDTTjsNb775JkaNGhXtpsU127Ztw1VXXYX8/Hy8/PLLAetiE7FBdnY2hgwZgrlz5+LEiRNITU3F5MmT8fe//930JG4EQRCE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mjULoaGhSEhIwP3334/MzEzMmTMHFy5cwO7duwEAb775Jvr06YPnn38eWVlZ6NOnD95//32sX78eBw8etD1uamoqFixYgC5dumDMmDF4+OGHsWDBAgDAoUOHsHLlSrz33nu47rrr0KtXLyxZsgSnTp3C119/7bKtVqsVH374Ia688kpcd911GDt2LNatWwcAiI6ORkhICMLCwmzZfa1W67sXjoiIyEcYdBMREQWQnj172s5rtVrEx8ejR48etusSExMBAGfPngUA/PLLL1i/fr1tjnhERASysrIAiEy04uqrr3Yq7padnY1Dhw7BYrFg//790Ol0GDhwoO32+Ph4dOnSBfv373fZ1g4dOiAyMtJ2OTk52dYuIiKiQMFCakRERAFEr9c7XZYkyek6JXC2Wq0AgMuXL+PWW2/Fiy++WOexkpOTfdjS+tuqtIuIiChQMOgmIiIKYn379sVXX32FDh06QKdzvVuwdetWp8tbtmxBZmYmtFotunbtiurqamzduhWDBg0CAFy4cAEHDhxAt27dmty2kJAQWCyWJt+fiIioJeDwciIioiA2ZcoUXLx4EaNHj8b27dtx+PBhrF27FhMmTHAKePPz8zFjxgwcOHAAn3/+Od544w08+uijAIDMzEz86U9/wv33349Nmzbhl19+wT333IN27drhT3/6U5Pb1qFDB2zduhXHjh3D+fPnmQUnIqJWiUE3ERFREEtJScGPP/4Ii8WCIUOGoEePHpg2bRpiYmKg0dh3E+69916YTCYMGDAAU6ZMwaOPPorJkyfbbv/ggw/Qr18//PGPf0R2djZkWcbq1avrDCH3xGOPPQatVotu3bqhTZs2yM/Pb9b/SkREpAZJdlxkk4iIiKiWG2+8Eb1798Zrr72mdlOIiIhaHWa6iYiIiIiIiHyEQTcRERERERGRj3B4OREREREREZGPMNNNRERERERE5CMMuomIiIiIiIh8hEE3ERERERERkY8w6CYiIiIiIiLyEQbdRERERERERD7CoJuIiIiIiIjIRxh0ExEREREREfkIg24iIiIiIiIiH2HQTUREREREROQj/x9jPvXorr1j9wAAAABJRU5ErkJggg==",
      "text/plain": [
       "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "blur_nii = nib.load(\"./afni_processing/sub_08.results/pb03.sub_08.r01.blur.nii.gz\").get_fdata()\n", "scale_nii = nib.load(\"./afni_processing/sub_08.results/pb04.sub_08.r01.scale.nii.gz\").get_fdata()\n", "\n", "# Choose a voxel (e.g., center)\n", "x, y, z = blur_nii.shape[0]//2, blur_nii.shape[1]//2, blur_nii.shape[2]//2\n", "time_series1 = blur_nii[x, y, z, :]\n", "time_series2 = scale_nii[x, y, z, :]\n", "n_timepoints = time_series1.shape[0]\n", "\n", "# Calculate the means of the time series\n", "mean_time_series1 = time_series1.mean()\n", "mean_time_series2 = time_series2.mean()\n", "\n", "# Create subplots\n", "fig, axs = plt.subplots(2, 1, figsize=(10, 6), sharex=True)\n", "\n", "axs[0].plot(time_series1, color='blue')\n", "axs[0].set_title(\"Signal intensity before scaling\")\n", "axs[0].set_ylabel(\"Signal Intensity\")\n", "axs[0].axhline(mean_time_series1, color='red', linestyle='--', linewidth=0.7, label=f\"Mean: {mean_time_series1:.2f}\")\n", "axs[0].grid(True)\n", "axs[0].legend()\n", "axs[0].set_xlim(0, n_timepoints - 1)\n", "\n", "axs[1].plot(time_series2, color='orange')\n", "axs[1].set_title(\"Signal intensity after scaling\")\n", "axs[1].set_xlabel(\"Timepoint\")\n", "axs[1].set_ylabel(\"Signal Intensity\")\n", "axs[1].axhline(mean_time_series2, color='red', linestyle='--', linewidth=0.7, label=f\"Mean: {mean_time_series2:.2f}\")\n", "axs[1].grid(True)\n", "axs[1].legend()\n", "axs[0].set_xlim(0, n_timepoints - 1)\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Results: Checking Preprocessing\n", "Let's have a look at the results directory. The files containing the **pb** string are the preprocessed functional images at each preprocessing step, and the files with the **T1w** string are the preprocessed anatomical images. Auxiliary functional images are created to assist with specific preprocessing steps, and auxiliary text files contain information about transformation matrices and movement parameter:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "scroll-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "@epi_review.sub_08\t\t\t pb01.sub_08.r01.tshift+orig.HEAD\n", "anat_final.sub_08+tlrc.BRIK\t\t pb01.sub_08.r02.tshift+orig.BRIK\n", "anat_final.sub_08+tlrc.HEAD\t\t pb01.sub_08.r02.tshift+orig.HEAD\n", "anat_w_skull_warped+tlrc.BRIK\t\t pb02.sub_08.r01.volreg+tlrc.BRIK\n", "anat_w_skull_warped+tlrc.HEAD\t\t pb02.sub_08.r01.volreg+tlrc.HEAD\n", "dfile.r01.1D\t\t\t\t pb02.sub_08.r02.volreg+tlrc.BRIK\n", "dfile.r02.1D\t\t\t\t pb02.sub_08.r02.volreg+tlrc.HEAD\n", "dfile_rall.1D\t\t\t\t pb03.sub_08.r01.blur+tlrc.BRIK\n", "final_epi_vr_base_min_outlier+tlrc.BRIK pb03.sub_08.r01.blur+tlrc.HEAD\n", "final_epi_vr_base_min_outlier+tlrc.HEAD pb03.sub_08.r01.blur.nii.gz\n", "full_mask.sub_08+tlrc.BRIK\t\t pb03.sub_08.r02.blur+tlrc.BRIK\n", "full_mask.sub_08+tlrc.HEAD\t\t pb03.sub_08.r02.blur+tlrc.HEAD\n", "mask_anat.sub_08+tlrc.BRIK\t\t pb04.sub_08.r01.scale+tlrc.BRIK\n", "mask_anat.sub_08+tlrc.HEAD\t\t pb04.sub_08.r01.scale+tlrc.HEAD\n", "mask_epi_anat.sub_08+tlrc.BRIK\t\t pb04.sub_08.r01.scale.nii.gz\n", "mask_epi_anat.sub_08+tlrc.HEAD\t\t pb04.sub_08.r02.scale+tlrc.BRIK\n", "mask_epi_extents+tlrc.BRIK\t\t pb04.sub_08.r02.scale+tlrc.HEAD\n", "mask_epi_extents+tlrc.HEAD\t\t pre.sub-08_T1w_ns+orig.BRIK\n", "mask_group+tlrc.BRIK\t\t\t pre.sub-08_T1w_ns+orig.HEAD\n", "mask_group+tlrc.HEAD\t\t\t pre.sub-08_T1w_ns_WarpDrive.log\n", "mat.basewarp.aff12.1D\t\t\t stimuli\n", "mat.r01.vr.aff12.1D\t\t\t sub-08_T1w+orig.BRIK\n", "mat.r01.warp.aff12.1D\t\t\t sub-08_T1w+orig.HEAD\n", "mat.r02.vr.aff12.1D\t\t\t sub-08_T1w_al_junk+orig.BRIK\n", "mat.r02.warp.aff12.1D\t\t\t sub-08_T1w_al_junk+orig.HEAD\n", "motion_sub_08_enorm.1D\t\t\t sub-08_T1w_al_junk_mat.aff12.1D\n", "out.allcostX.txt\t\t\t sub-08_T1w_ns+orig.BRIK\n", "out.mask_ae_dice.txt\t\t\t sub-08_T1w_ns+orig.HEAD\n", "out.mask_ae_overlap.txt\t\t\t sub-08_T1w_ns+tlrc.BRIK\n", "out.mask_at_dice.txt\t\t\t sub-08_T1w_ns+tlrc.HEAD\n", "out.min_outlier.txt\t\t\t sub-08_T1w_ns.Xaff12.1D\n", "out.pre_ss_warn.txt\t\t\t sub-08_T1w_ns.Xat.1D\n", "outcount.r01.1D\t\t\t\t sub-08_T1w_ns.maskwarp.Xat.1D\n", "outcount.r02.1D\t\t\t\t sub-08_T1w_ns_shft.1D\n", "outcount_rall.1D\t\t\t volumized+tlrc.BRIK\n", "pb00.sub_08.r01.tcat+orig.BRIK\t\t volumized+tlrc.HEAD\n", "pb00.sub_08.r01.tcat+orig.HEAD\t\t vr_base_min_outlier+orig.BRIK\n", "pb00.sub_08.r02.tcat+orig.BRIK\t\t vr_base_min_outlier+orig.HEAD\n", "pb00.sub_08.r02.tcat+orig.HEAD\t\t warp.anat.Xat.1D\n", "pb01.sub_08.r01.tshift+orig.BRIK\n" ] } ], "source": [ "!ls ./afni_processing/sub_08.results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", " \n", " !\n", " Warning:\n", "
\n", "

\n", " In AFNI, a +tlrc extension (and the “Talairach View”) indicates that the image has been normalized. However, this does not necessarily mean the image is in Talairach space. The Talairach label is retained for legacy reasons, ensuring compatibility with older versions of the software. To verify which space the image has been warped to, you can use the 3dinfo command and check the “Template Space” field. The three possibilities are: “ORIG” (the image has not been warped), “TLRC” (normalized to Talairach space), and “MNI” (normalized to MNI space).\n", "

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizations\n", "To visualize the preprocessing outputs with ipyniivue, the files are first converted to NIfTI format. Once loaded, check whether the functional and anatomical images are properly aligned to MNI space. Misalignments could indicate issues with the preprocessing steps. Smoothed images will generally appear less detailed than the original images due to the blurring effect; this is expected, but they should not be excessively blurry or too sharp. The scaled functional image will have less anatomical definition, as the signal intensity has been normalized across time, making it more uniform across brain voxels. When reviewing the masks, ensure they appropriately cover the brain regions of interest and match the underlying anatomy. For example, the \"mask_group\" is typically a more liberal mask compared to the \"full_mask\"." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "\u001b[7m*+ WARNING:\u001b[0m varying brick factors, writing NIfTI as float\n", "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n", "++ 3dAFNItoNIFTI: AFNI version=AFNI_21.2.00 (Jul 8 2021) [64-bit]\n" ] } ], "source": [ "!3dAFNItoNIFTI -prefix ./afni_processing/mni152.nii.gz /cvmfs/neurodesk.ardc.edu.au/containers/afni_21.2.00_20210714/afni_21.2.00_20210714.simg/opt/afni-latest/MNI_avg152T1+tlrc\n", "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/anat_w_skull_warped.nii.gz ./afni_processing/sub_08.results/anat_w_skull_warped+tlrc\n", "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/anat_final.nii.gz ./afni_processing/sub_08.results/anat_final.sub_08+tlrc\n", "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/pb02.sub_08.r01.volreg+tlrc.nii.gz ./afni_processing/sub_08.results/pb02.sub_08.r01.volreg+tlrc\n", "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/full_mask.sub_08+tlrc.nii.gz ./afni_processing/sub_08.results/full_mask.sub_08+tlrc\n", "!3dAFNItoNIFTI -prefix ./afni_processing/sub_08.results/mask_group.nii.gz ./afni_processing/sub_08.results/mask_group+tlrc" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# Paths to files\n", "anat_skull = './afni_processing/sub_08.results/anat_w_skull_warped.nii.gz'\n", "anat_final = './afni_processing/sub_08.results/anat_final.nii.gz'\n", "volreg_func = './afni_processing/sub_08.results/pb02.sub_08.r01.volreg+tlrc.nii.gz'\n", "mni_nifti = './afni_processing/mni152.nii.gz'\n", "smoothed = './afni_processing/sub_08.results/pb03.sub_08.r01.blur.nii.gz'\n", "scaled = './afni_processing/sub_08.results/pb04.sub_08.r01.scale.nii.gz'\n", "full_mask = './afni_processing/sub_08.results/full_mask.sub_08+tlrc.nii.gz'\n", "group_mask = './afni_processing/sub_08.results/mask_group.nii.gz'" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "18aa22003af74f5888b073ea34602cc4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(Dropdown(description='Overlay:', layout=Layout(width='350px'), options=(('Anatomical aligned to…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nv = NiiVue()\n", "\n", "# Paths to all volumes\n", "volumes = [\n", " {\"path\": mni_nifti, \"colormap\": \"gray\", \"opacity\": 1.0}, # MNI background\n", " {\"path\": anat_final, \"colormap\": \"red\", \"opacity\": 1.0}, # default overlay\n", " {\"path\": volreg_func, \"colormap\": \"red\", \"opacity\": 0.0},\n", " {\"path\": smoothed, \"opacity\": 0.0},\n", " {\"path\": scaled, \"opacity\": 0.0},\n", " {\"path\": full_mask, \"opacity\": 0.0},\n", " {\"path\": group_mask, \"opacity\": 0.0},\n", "]\n", "\n", "# Load all volumes into viewer\n", "nv.load_volumes(volumes)\n", "\n", "# Dropdown options\n", "overlay_dropdown = widgets.Dropdown(\n", " options=[\n", " (\"Anatomical aligned to MNI\", 1),\n", " (\"Motion-corrected functional to MNI\", 2),\n", " (\"Smoothed functional (blur)\", 3),\n", " (\"Scaled functional (scale)\", 4),\n", " (\"Union of functional masks (full_mask)\", 5),\n", " (\"Dilated group mask (group_mask)\", 6)\n", " ],\n", " value=1,\n", " description='Overlay:',\n", " style={'description_width': 'initial'},\n", " layout=widgets.Layout(width='350px')\n", ")\n", "\n", "# Update function\n", "def update_overlay(change):\n", " selected_idx = change.new\n", "\n", " # Set all overlays to 0 opacity\n", " for idx in range(1, len(volumes)):\n", " nv.volumes[idx].opacity = 0.0\n", "\n", " # Activate the selected one\n", " nv.volumes[selected_idx].opacity = 1.0\n", "\n", " # Hide MNI background if functional data is selected\n", " nv.volumes[0].opacity = 0.0 if selected_idx in [3, 4] else 1.0\n", "\n", "# Attach the observer\n", "overlay_dropdown.observe(update_overlay, names='value')\n", "\n", "# Show viewer and dropdown\n", "display(VBox([overlay_dropdown, nv]))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.6" } }, "nbformat": 4, "nbformat_minor": 4 }