{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "py2jemris_demo.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true,
"authorship_tag": "ABX9TyNiTDzq3M+MDicy0GDiNO3F",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "f1OHVVKCZATg"
},
"source": [
"# py2jemris demo \n",
"This notebook demonstrates usage of py2jemris functions. In the end, we test-simulate a Pulseq file using JEMRIS on the command line.\n",
"Run the cells in order to ensure that subsequent tests work. \n",
"Look to the left for Table of Contents to access each part of the demo.\n",
"Email questions to gt2407@columbia.edu. Thanks for trying this out!"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5MUISdrvZJj-"
},
"source": [
"## Install JEMRIS for simulation\n",
"\n",
"1. Download JEMRIS 2.8.3 from the official website"
]
},
{
"cell_type": "code",
"metadata": {
"id": "VWx-T1uVZBwx",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 213
},
"outputId": "2c33c4fa-e85a-4986-cdca-a12d930028f9"
},
"source": [
"!wget http://www.jemris.org/get/jemris-2.8.3-Linux.deb --no-check-certificate"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"--2020-08-27 17:27:05-- http://www.jemris.org/get/jemris-2.8.3-Linux.deb\n",
"Resolving www.jemris.org (www.jemris.org)... 193.175.154.2\n",
"Connecting to www.jemris.org (www.jemris.org)|193.175.154.2|:80... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 8655898 (8.3M) [application/x-debian-package]\n",
"Saving to: ‘jemris-2.8.3-Linux.deb’\n",
"\n",
"jemris-2.8.3-Linux. 100%[===================>] 8.25M 1.98MB/s in 4.4s \n",
"\n",
"2020-08-27 17:27:10 (1.89 MB/s) - ‘jemris-2.8.3-Linux.deb’ saved [8655898/8655898]\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cZgjy_LA-UOS"
},
"source": [
"Then we install JEMRIS dependencies. "
]
},
{
"cell_type": "code",
"metadata": {
"id": "M9g02RK6QL-W",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "cf909aba-645e-4572-ba89-773c13ef75a8"
},
"source": [
"# Install requirements for jemris \n",
"!sudo apt-get update -y\n",
"!sudo apt-get install -y libcln6 \n",
"!sudo apt-get install -y libginac6\n",
"!sudo apt-get install -y ginac-tools \n",
"!sudo apt-get install -y libsundials-nvecserial2\n",
"!sudo apt-get install -y libsundials-cvode2"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"\r0% [Working]\r \rGet:1 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease [3,626 B]\n",
"\r0% [Waiting for headers] [Waiting for headers] [1 InRelease 0 B/3,626 B 0%] [Wa\r0% [Waiting for headers] [Waiting for headers] [Waiting for headers] [Waiting f\r \rIgn:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease\n",
"\r0% [Waiting for headers] [Waiting for headers] [Waiting for headers] [Waiting f\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [Waiting for headers] [Wait\r \rGet:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rHit:4 http://archive.ubuntu.com/ubuntu bionic InRelease\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rGet:5 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease [21.3 kB]\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rIgn:6 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 InRelease\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rGet:7 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Release [697 B]\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rHit:8 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 Release\n",
"\r0% [1 InRelease gpgv 3,626 B] [Waiting for headers] [3 InRelease 14.2 kB/88.7 k\r \rGet:9 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Release.gpg [836 B]\n",
"Get:10 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]\n",
"Get:11 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages [95.3 kB]\n",
"Get:12 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic InRelease [15.4 kB]\n",
"Get:13 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]\n",
"Ign:15 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Packages\n",
"Get:15 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Packages [255 kB]\n",
"Get:16 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 Packages [45.7 kB]\n",
"Get:17 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [1,045 kB]\n",
"Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [1,341 kB]\n",
"Get:19 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic/main Sources [1,857 kB]\n",
"Get:20 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [890 kB]\n",
"Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1,418 kB]\n",
"Get:22 http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic/main amd64 Packages [896 kB]\n",
"Fetched 8,138 kB in 3s (2,707 kB/s)\n",
"Reading package lists... Done\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-440\n",
"Use 'sudo apt autoremove' to remove it.\n",
"Suggested packages:\n",
" pi\n",
"The following NEW packages will be installed:\n",
" libcln6\n",
"0 upgraded, 1 newly installed, 0 to remove and 62 not upgraded.\n",
"Need to get 460 kB of archives.\n",
"After this operation, 1,501 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 libcln6 amd64 1.3.4-2 [460 kB]\n",
"Fetched 460 kB in 1s (736 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package libcln6.\n",
"(Reading database ... 144556 files and directories currently installed.)\n",
"Preparing to unpack .../libcln6_1.3.4-2_amd64.deb ...\n",
"Unpacking libcln6 (1.3.4-2) ...\n",
"Setting up libcln6 (1.3.4-2) ...\n",
"Processing triggers for libc-bin (2.27-3ubuntu1) ...\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-440\n",
"Use 'sudo apt autoremove' to remove it.\n",
"Suggested packages:\n",
" ginac-tools\n",
"The following NEW packages will be installed:\n",
" libginac6\n",
"0 upgraded, 1 newly installed, 0 to remove and 62 not upgraded.\n",
"Need to get 797 kB of archives.\n",
"After this operation, 2,721 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 libginac6 amd64 1.7.4-1 [797 kB]\n",
"Fetched 797 kB in 1s (1,129 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package libginac6.\n",
"(Reading database ... 144565 files and directories currently installed.)\n",
"Preparing to unpack .../libginac6_1.7.4-1_amd64.deb ...\n",
"Unpacking libginac6 (1.7.4-1) ...\n",
"Setting up libginac6 (1.7.4-1) ...\n",
"Processing triggers for libc-bin (2.27-3ubuntu1) ...\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-440\n",
"Use 'sudo apt autoremove' to remove it.\n",
"The following additional packages will be installed:\n",
" doc-base libuuid-perl libyaml-tiny-perl\n",
"Suggested packages:\n",
" dhelp | dwww | doc-central | yelp | khelpcenter rarian-compat\n",
"The following NEW packages will be installed:\n",
" doc-base ginac-tools libuuid-perl libyaml-tiny-perl\n",
"0 upgraded, 4 newly installed, 0 to remove and 62 not upgraded.\n",
"Need to get 186 kB of archives.\n",
"After this operation, 882 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libuuid-perl amd64 0.27-1build1 [15.7 kB]\n",
"Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 libyaml-tiny-perl all 1.70-1 [25.1 kB]\n",
"Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 doc-base all 0.10.8 [80.3 kB]\n",
"Get:4 http://archive.ubuntu.com/ubuntu bionic/universe amd64 ginac-tools amd64 1.7.4-1 [64.8 kB]\n",
"Fetched 186 kB in 1s (314 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 4.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package libuuid-perl.\n",
"(Reading database ... 144573 files and directories currently installed.)\n",
"Preparing to unpack .../libuuid-perl_0.27-1build1_amd64.deb ...\n",
"Unpacking libuuid-perl (0.27-1build1) ...\n",
"Selecting previously unselected package libyaml-tiny-perl.\n",
"Preparing to unpack .../libyaml-tiny-perl_1.70-1_all.deb ...\n",
"Unpacking libyaml-tiny-perl (1.70-1) ...\n",
"Selecting previously unselected package doc-base.\n",
"Preparing to unpack .../doc-base_0.10.8_all.deb ...\n",
"Unpacking doc-base (0.10.8) ...\n",
"Selecting previously unselected package ginac-tools.\n",
"Preparing to unpack .../ginac-tools_1.7.4-1_amd64.deb ...\n",
"Unpacking ginac-tools (1.7.4-1) ...\n",
"Setting up ginac-tools (1.7.4-1) ...\n",
"Setting up libyaml-tiny-perl (1.70-1) ...\n",
"Setting up libuuid-perl (0.27-1build1) ...\n",
"Setting up doc-base (0.10.8) ...\n",
"Registering 18 doc-base files...\n",
"Error in `/usr/share/doc-base/users-and-groups', line 13: all `Format' sections are invalid.\n",
"Note: `install-docs --verbose --check file_name' may give more details about the above error.\n",
"Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-440\n",
"Use 'sudo apt autoremove' to remove it.\n",
"The following NEW packages will be installed:\n",
" libsundials-nvecserial2\n",
"0 upgraded, 1 newly installed, 0 to remove and 62 not upgraded.\n",
"Need to get 11.5 kB of archives.\n",
"After this operation, 49.2 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 libsundials-nvecserial2 amd64 2.7.0+dfsg-2build1 [11.5 kB]\n",
"Fetched 11.5 kB in 0s (63.7 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package libsundials-nvecserial2:amd64.\n",
"(Reading database ... 144649 files and directories currently installed.)\n",
"Preparing to unpack .../libsundials-nvecserial2_2.7.0+dfsg-2build1_amd64.deb ...\n",
"Unpacking libsundials-nvecserial2:amd64 (2.7.0+dfsg-2build1) ...\n",
"Setting up libsundials-nvecserial2:amd64 (2.7.0+dfsg-2build1) ...\n",
"Processing triggers for libc-bin (2.27-3ubuntu1) ...\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n",
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-440\n",
"Use 'sudo apt autoremove' to remove it.\n",
"The following additional packages will be installed:\n",
" libamd2 libbtf1 libcolamd2 libklu1 libsuitesparseconfig5\n",
"The following NEW packages will be installed:\n",
" libamd2 libbtf1 libcolamd2 libklu1 libsuitesparseconfig5 libsundials-cvode2\n",
"0 upgraded, 6 newly installed, 0 to remove and 62 not upgraded.\n",
"Need to get 182 kB of archives.\n",
"After this operation, 595 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libsuitesparseconfig5 amd64 1:5.1.2-2 [9,044 B]\n",
"Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 libamd2 amd64 1:5.1.2-2 [19.5 kB]\n",
"Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libbtf1 amd64 1:5.1.2-2 [10.6 kB]\n",
"Get:4 http://archive.ubuntu.com/ubuntu bionic/main amd64 libcolamd2 amd64 1:5.1.2-2 [16.2 kB]\n",
"Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 libklu1 amd64 1:5.1.2-2 [69.3 kB]\n",
"Get:6 http://archive.ubuntu.com/ubuntu bionic/universe amd64 libsundials-cvode2 amd64 2.7.0+dfsg-2build1 [57.3 kB]\n",
"Fetched 182 kB in 1s (344 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 6.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package libsuitesparseconfig5:amd64.\n",
"(Reading database ... 144656 files and directories currently installed.)\n",
"Preparing to unpack .../0-libsuitesparseconfig5_1%3a5.1.2-2_amd64.deb ...\n",
"Unpacking libsuitesparseconfig5:amd64 (1:5.1.2-2) ...\n",
"Selecting previously unselected package libamd2:amd64.\n",
"Preparing to unpack .../1-libamd2_1%3a5.1.2-2_amd64.deb ...\n",
"Unpacking libamd2:amd64 (1:5.1.2-2) ...\n",
"Selecting previously unselected package libbtf1:amd64.\n",
"Preparing to unpack .../2-libbtf1_1%3a5.1.2-2_amd64.deb ...\n",
"Unpacking libbtf1:amd64 (1:5.1.2-2) ...\n",
"Selecting previously unselected package libcolamd2:amd64.\n",
"Preparing to unpack .../3-libcolamd2_1%3a5.1.2-2_amd64.deb ...\n",
"Unpacking libcolamd2:amd64 (1:5.1.2-2) ...\n",
"Selecting previously unselected package libklu1:amd64.\n",
"Preparing to unpack .../4-libklu1_1%3a5.1.2-2_amd64.deb ...\n",
"Unpacking libklu1:amd64 (1:5.1.2-2) ...\n",
"Selecting previously unselected package libsundials-cvode2:amd64.\n",
"Preparing to unpack .../5-libsundials-cvode2_2.7.0+dfsg-2build1_amd64.deb ...\n",
"Unpacking libsundials-cvode2:amd64 (2.7.0+dfsg-2build1) ...\n",
"Setting up libbtf1:amd64 (1:5.1.2-2) ...\n",
"Setting up libsuitesparseconfig5:amd64 (1:5.1.2-2) ...\n",
"Setting up libcolamd2:amd64 (1:5.1.2-2) ...\n",
"Setting up libamd2:amd64 (1:5.1.2-2) ...\n",
"Setting up libklu1:amd64 (1:5.1.2-2) ...\n",
"Setting up libsundials-cvode2:amd64 (2.7.0+dfsg-2build1) ...\n",
"Processing triggers for libc-bin (2.27-3ubuntu1) ...\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cu9jR78B-3GI"
},
"source": [
"Link library names (?) so JEMRIS can find one specific CVODE package "
]
},
{
"cell_type": "code",
"metadata": {
"id": "6RsOnFBuQ1HG",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "2c387422-2665-40b1-fe85-1fd0da266d89"
},
"source": [
" !sudo /sbin/ldconfig -v"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/sbin/ldconfig.real: Path `/usr/local/lib' given more than once\n",
"/sbin/ldconfig.real: Can't stat /usr/local/nvidia/lib: No such file or directory\n",
"/sbin/ldconfig.real: Can't stat /usr/local/nvidia/lib64: No such file or directory\n",
"/sbin/ldconfig.real: Can't stat /usr/local/lib/x86_64-linux-gnu: No such file or directory\n",
"/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once\n",
"/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once\n",
"/usr/local/cuda-10.1/extras/CUPTI/lib64:\n",
"\tlibcupti.so.10.1 -> libcupti.so.10.1.208\n",
"\tlibnvperf_host.so -> libnvperf_host.so\n",
"\tlibnvperf_target.so -> libnvperf_target.so\n",
"/usr/local/lib:\n",
"\tlibmkl_avx.so -> libmkl_avx.so\n",
"\tlibmkl_blacs_openmpi_ilp64.so -> libmkl_blacs_openmpi_ilp64.so\n",
"\tlibmkl_vml_mc2.so -> libmkl_vml_mc2.so\n",
"\tlibmkl_avx512_mic.so -> libmkl_avx512_mic.so\n",
"\tlibmkl_mc3.so -> libmkl_mc3.so\n",
"\tlibmkl_blacs_intelmpi_lp64.so -> libmkl_blacs_intelmpi_lp64.so\n",
"\tlibmkl_vml_avx512.so -> libmkl_vml_avx512.so\n",
"\tlibmkl_core.so -> libmkl_core.so\n",
"\tlibmkl_intel_ilp64.so -> libmkl_intel_ilp64.so\n",
"\tlibmkl_gf_lp64.so -> libmkl_gf_lp64.so\n",
"\tlibiomp5.so -> libiomp5.so\n",
"\tlibmkl_def.so -> libmkl_def.so\n",
"\tlibiomp5_db.so -> libiomp5_db.so\n",
"\tlibmkl_mc.so -> libmkl_mc.so\n",
"\tlibmkl_blacs_sgimpt_ilp64.so -> libmkl_blacs_sgimpt_ilp64.so\n",
"\tlibmkl_tbb_thread.so -> libmkl_tbb_thread.so\n",
"\tlibmkl_pgi_thread.so -> libmkl_pgi_thread.so\n",
"\tlibmkl_vml_def.so -> libmkl_vml_def.so\n",
"\tlibmkl_vml_cmpt.so -> libmkl_vml_cmpt.so\n",
"\tlibmkl_scalapack_lp64.so -> libmkl_scalapack_lp64.so\n",
"\tlibmkl_gnu_thread.so -> libmkl_gnu_thread.so\n",
"\tlibmkl_blacs_sgimpt_lp64.so -> libmkl_blacs_sgimpt_lp64.so\n",
"\tlibmkl_avx2.so -> libmkl_avx2.so\n",
"\tlibmkl_vml_avx2.so -> libmkl_vml_avx2.so\n",
"\tlibmkl_avx512.so -> libmkl_avx512.so\n",
"\tlibiompstubs5.so -> libiompstubs5.so\n",
"\tlibmkl_intel_thread.so -> libmkl_intel_thread.so\n",
"\tlibmkl_scalapack_ilp64.so -> libmkl_scalapack_ilp64.so\n",
"\tlibmkl_vml_mc.so -> libmkl_vml_mc.so\n",
"\tlibmkl_intel_lp64.so -> libmkl_intel_lp64.so\n",
"\tlibmkl_blacs_openmpi_lp64.so -> libmkl_blacs_openmpi_lp64.so\n",
"\tlibmkl_blacs_intelmpi_ilp64.so -> libmkl_blacs_intelmpi_ilp64.so\n",
"\tlibmkl_vml_mc3.so -> libmkl_vml_mc3.so\n",
"\tlibmkl_vml_avx512_mic.so -> libmkl_vml_avx512_mic.so\n",
"\tlibmkl_rt.so -> libmkl_rt.so\n",
"\tlibmkl_sequential.so -> libmkl_sequential.so\n",
"\tlibmkl_cdft_core.so -> libmkl_cdft_core.so\n",
"\tlibmkl_vml_avx.so -> libmkl_vml_avx.so\n",
"\tlibmkl_gf_ilp64.so -> libmkl_gf_ilp64.so\n",
"/usr/local/lib/python3.6/dist-packages/ideep4py/lib:\n",
"\tlibiomp5.so -> libiomp5.so\n",
"\tlibmklml_intel.so -> libmklml_intel.so\n",
"/sbin/ldconfig.real: /usr/local/lib/python3.6/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n",
"\n",
"\tlibmkldnn.so.0 -> libmkldnn.so.0.14.0\n",
"/usr/local/cuda-10.0/targets/x86_64-linux/lib:\n",
"\tlibnppicc.so.10.0 -> libnppicc.so.10.0.130\n",
"\tlibnvgraph.so.10.0 -> libnvgraph.so.10.0.130\n",
"\tlibnppist.so.10.0 -> libnppist.so.10.0.130\n",
"\tlibcudart.so.10.0 -> libcudart.so.10.0.130\n",
"\tlibcufftw.so.10.0 -> libcufftw.so.10.0.145\n",
"\tlibnppial.so.10.0 -> libnppial.so.10.0.130\n",
"\tlibnppidei.so.10.0 -> libnppidei.so.10.0.130\n",
"\tlibcuinj64.so.10.0 -> libcuinj64.so.10.0.130\n",
"\tlibcusolver.so.10.0 -> libcusolver.so.10.0.130\n",
"\tlibcusparse.so.10.0 -> libcusparse.so.10.0.130\n",
"\tlibnppisu.so.10.0 -> libnppisu.so.10.0.130\n",
"\tlibaccinj64.so.10.0 -> libaccinj64.so.10.0.130\n",
"\tlibcufft.so.10.0 -> libcufft.so.10.0.145\n",
"\tlibnvrtc.so.10.0 -> libnvrtc.so.10.0.130\n",
"\tlibnppc.so.10.0 -> libnppc.so.10.0.130\n",
"\tlibnvjpeg.so.10.0 -> libnvjpeg.so.10.0.318\n",
"\tlibcurand.so.10.0 -> libcurand.so.10.0.130\n",
"\tlibnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0\n",
"\tlibnppicom.so.10.0 -> libnppicom.so.10.0.130\n",
"\tlibnpps.so.10.0 -> libnpps.so.10.0.130\n",
"\tlibnppig.so.10.0 -> libnppig.so.10.0.130\n",
"\tlibnppim.so.10.0 -> libnppim.so.10.0.130\n",
"\tlibnvrtc-builtins.so.10.0 -> libnvrtc-builtins.so.10.0.130\n",
"\tlibcublas.so.10.0 -> libcublas.so.10.0.130\n",
"\tlibnvblas.so.10.0 -> libnvblas.so.10.0.130\n",
"\tlibnppitc.so.10.0 -> libnppitc.so.10.0.130\n",
"\tlibnppif.so.10.0 -> libnppif.so.10.0.130\n",
"\tlibOpenCL.so.1 -> libOpenCL.so.1.1\n",
"/usr/local/cuda-10.1/targets/x86_64-linux/lib:\n",
"\tlibcusparse.so.10 -> libcusparse.so.10.3.0.243\n",
"\tlibnppial.so.10 -> libnppial.so.10.2.0.243\n",
"\tlibnppisu.so.10 -> libnppisu.so.10.2.0.243\n",
"\tlibnvrtc-builtins.so.10.1 -> libnvrtc-builtins.so.10.1.243\n",
"\tlibcusolver.so.10 -> libcusolver.so.10.2.0.243\n",
"\tlibnppicom.so.10 -> libnppicom.so.10.2.0.243\n",
"\tlibnvgraph.so.10 -> libnvgraph.so.10.1.243\n",
"\tlibnvrtc.so.10.1 -> libnvrtc.so.10.1.243\n",
"\tlibnpps.so.10 -> libnpps.so.10.2.0.243\n",
"\tlibnppig.so.10 -> libnppig.so.10.2.0.243\n",
"\tlibnppist.so.10 -> libnppist.so.10.2.0.243\n",
"\tlibnppc.so.10 -> libnppc.so.10.2.0.243\n",
"\tlibnppif.so.10 -> libnppif.so.10.2.0.243\n",
"\tlibnvjpeg.so.10 -> libnvjpeg.so.10.3.0.243\n",
"\tlibnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0\n",
"\tlibnppicc.so.10 -> libnppicc.so.10.2.0.243\n",
"\tlibcurand.so.10 -> libcurand.so.10.1.1.243\n",
"\tlibcusolverMg.so.10 -> libcusolverMg.so.10.2.0.243\n",
"\tlibcufft.so.10 -> libcufft.so.10.1.1.243\n",
"\tlibnppitc.so.10 -> libnppitc.so.10.2.0.243\n",
"\tlibcufftw.so.10 -> libcufftw.so.10.1.1.243\n",
"\tlibnppim.so.10 -> libnppim.so.10.2.0.243\n",
"\tlibnppidei.so.10 -> libnppidei.so.10.2.0.243\n",
"\tlibcuinj64.so.10.1 -> libcuinj64.so.10.1.243\n",
"\tlibaccinj64.so.10.1 -> libaccinj64.so.10.1.243\n",
"\tlibOpenCL.so.1 -> libOpenCL.so.1.1\n",
"\tlibcudart.so.10.1 -> libcudart.so.10.1.243\n",
"/lib/x86_64-linux-gnu:\n",
"\tlibreadline.so.7 -> libreadline.so.7.0\n",
"\tlibhistory.so.7 -> libhistory.so.7.0\n",
"\tlibdbus-1.so.3 -> libdbus-1.so.3.19.4\n",
"\tlibslang.so.2 -> libslang.so.2.3.1\n",
"\tlibfuse.so.2 -> libfuse.so.2.9.7\n",
"\tlibdevmapper.so.1.02.1 -> libdevmapper.so.1.02.1\n",
"\tlibnl-3.so.200 -> libnl-3.so.200.24.0\n",
"\tlibkmod.so.2 -> libkmod.so.2.3.2\n",
"\tlibkeyutils.so.1 -> libkeyutils.so.1.5\n",
"\tlibjson-c.so.3 -> libjson-c.so.3.0.1\n",
"\tlibusb-1.0.so.0 -> libusb-1.0.so.0.1.0\n",
"\tlibcryptsetup.so.12 -> libcryptsetup.so.12.2.0\n",
"\tlibaio.so.1 -> libaio.so.1.0.1\n",
"\tlibulockmgr.so.1 -> libulockmgr.so.1.0.1\n",
"\tlibidn.so.11 -> libidn.so.11.6.16\n",
"\tlibexpat.so.1 -> libexpat.so.1.6.7\n",
"\tliblzo2.so.2 -> liblzo2.so.2.0.0\n",
"\tlibbsd.so.0 -> libbsd.so.0.8.7\n",
"\tlibapparmor.so.1 -> libapparmor.so.1.4.2\n",
"\tlibcap.so.2 -> libcap.so.2.25\n",
"\tlibwrap.so.0 -> libwrap.so.0.7.6\n",
"\tlibnss_nisplus.so.2 -> libnss_nisplus-2.27.so\n",
"\tlibblkid.so.1 -> libblkid.so.1.1.0\n",
"\tlibcrypt.so.1 -> libcrypt-2.27.so\n",
"\tlibext2fs.so.2 -> libext2fs.so.2.4\n",
"\tlibudev.so.1 -> libudev.so.1.6.9\n",
"\tlibbz2.so.1.0 -> libbz2.so.1.0.4\n",
"\tlibdl.so.2 -> libdl-2.27.so\n",
"/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.27.so is the dynamic linker, ignoring\n",
"\n",
"\tld-linux-x86-64.so.2 -> ld-2.27.so\n",
"\tlibcidn.so.1 -> libcidn-2.27.so\n",
"\tlibmount.so.1 -> libmount.so.1.1.0\n",
"\tlibsepol.so.1 -> libsepol.so.1\n",
"\tlibpthread.so.0 -> libpthread-2.27.so\n",
"\tlibseccomp.so.2 -> libseccomp.so.2.4.1\n",
"\tlibnss_hesiod.so.2 -> libnss_hesiod-2.27.so\n",
"\tlibpcprofile.so -> libpcprofile.so\n",
"\tlibutil.so.1 -> libutil-2.27.so\n",
"\tlibsystemd.so.0 -> libsystemd.so.0.21.0\n",
"\tlibsmartcols.so.1 -> libsmartcols.so.1.1.0\n",
"\tlibz.so.1 -> libz.so.1.2.11\n",
"\tlibnss_compat.so.2 -> libnss_compat-2.27.so\n",
"\tlibnss_nis.so.2 -> libnss_nis-2.27.so\n",
"\tlibanl.so.1 -> libanl-2.27.so\n",
"\tlibcom_err.so.2 -> libcom_err.so.2.1\n",
"\tlibcap-ng.so.0 -> libcap-ng.so.0.0.0\n",
"\tlibaudit.so.1 -> libaudit.so.1.0.0\n",
"\tlibprocps.so.6 -> libprocps.so.6.0.0\n",
"\tlibncurses.so.5 -> libncurses.so.5.9\n",
"\tlibc.so.6 -> libc-2.27.so\n",
"\tlibnsl.so.1 -> libnsl-2.27.so\n",
"\tlibnss_dns.so.2 -> libnss_dns-2.27.so\n",
"\tlibmvec.so.1 -> libmvec-2.27.so\n",
"\tlibncursesw.so.5 -> libncursesw.so.5.9\n",
"\tlibfdisk.so.1 -> libfdisk.so.1.1.0\n",
"\tlibpcre.so.3 -> libpcre.so.3.13.3\n",
"\tlibrt.so.1 -> librt-2.27.so\n",
"\tlibmemusage.so -> libmemusage.so\n",
"\tlibnss_files.so.2 -> libnss_files-2.27.so\n",
"\tliblzma.so.5 -> liblzma.so.5.2.2\n",
"\tlibss.so.2 -> libss.so.2.0\n",
"\tlibselinux.so.1 -> libselinux.so.1\n",
"\tlibuuid.so.1 -> libuuid.so.1.3.0\n",
"\tlibpamc.so.0 -> libpamc.so.0.82.1\n",
"\tlibgcrypt.so.20 -> libgcrypt.so.20.2.1\n",
"\tlibpam.so.0 -> libpam.so.0.83.1\n",
"\tlibattr.so.1 -> libattr.so.1.1.0\n",
"\tlibpam_misc.so.0 -> libpam_misc.so.0.82.0\n",
"\tlibm.so.6 -> libm-2.27.so\n",
"\tlibe2p.so.2 -> libe2p.so.2.3\n",
"\tlibBrokenLocale.so.1 -> libBrokenLocale-2.27.so\n",
"\tlibSegFault.so -> libSegFault.so\n",
"\tlibacl.so.1 -> libacl.so.1.1.0\n",
"\tlibgpg-error.so.0 -> libgpg-error.so.0.22.0\n",
"\tlibgcc_s.so.1 -> libgcc_s.so.1\n",
"\tlibthread_db.so.1 -> libthread_db-1.0.so\n",
"\tlibresolv.so.2 -> libresolv-2.27.so\n",
"\tlibtinfo.so.5 -> libtinfo.so.5.9\n",
"/usr/lib/x86_64-linux-gnu:\n",
"\tlibsqlite3.so.0 -> libsqlite3.so.0.8.6\n",
"\tlibgssapi.so.3 -> libgssapi.so.3.0.0\n",
"\tlibhx509.so.5 -> libhx509.so.5.0.0\n",
"\tlibhcrypto.so.4 -> libhcrypto.so.4.1.0\n",
"\tlibksba.so.8 -> libksba.so.8.11.6\n",
"\tlibkrb5.so.26 -> libkrb5.so.26.0.0\n",
"\tlibldap_r-2.4.so.2 -> libldap_r-2.4.so.2.10.8\n",
"\tlibnpth.so.0 -> libnpth.so.0.1.1\n",
"\tlibheimbase.so.1 -> libheimbase.so.1.0.0\n",
"\tlibsasl2.so.2 -> libsasl2.so.2.0.25\n",
"\tlibheimntlm.so.0 -> libheimntlm.so.0.1.0\n",
"\tlibasn1.so.8 -> libasn1.so.8.0.0\n",
"\tlibassuan.so.0 -> libassuan.so.0.8.1\n",
"\tliblber-2.4.so.2 -> liblber-2.4.so.2.10.8\n",
"\tlibroken.so.18 -> libroken.so.18.1.0\n",
"\tlibwind.so.0 -> libwind.so.0.0.0\n",
"\tlibcublasLt.so.10 -> libcublasLt.so.10.2.1.243\n",
"\tlibnccl.so.2 -> libnccl.so.2.4.8\n",
"\tlibnvblas.so.10 -> libnvblas.so.10.2.1.243\n",
"\tlibcublas.so.10 -> libcublas.so.10.2.1.243\n",
"\tlibmpfr.so.6 -> libmpfr.so.6.0.1\n",
"\tlibopcodes-2.30-system.so -> libopcodes-2.30-system.so\n",
"\tlibisl.so.19 -> libisl.so.19.0.0\n",
"\tlibperl.so.5.26 -> libperl.so.5.26.1\n",
"\tlibgdbm.so.5 -> libgdbm.so.5.0.0\n",
"\tlibbfd-2.30-system.so -> libbfd-2.30-system.so\n",
"\tlibmpc.so.3 -> libmpc.so.3.1.0\n",
"\tlibgdbm_compat.so.4 -> libgdbm_compat.so.4.0.0\n",
"\tlibcudnn.so.7 -> libcudnn.so.7.6.5\n",
"\tlibboost_container.so.1.65.1 -> libboost_container.so.1.65.1\n",
"\tlibboost_chrono.so.1.65.1 -> libboost_chrono.so.1.65.1\n",
"\tlibargon2.so.0 -> libargon2.so.0\n",
"\tlibnss3.so -> libnss3.so\n",
"\tlibvtkCommonExecutionModelPython27D-6.3.so.6.3 -> libvtkCommonExecutionModelPython27D-6.3.so.6.3.0\n",
"\tlibcups.so.2 -> libcups.so.2\n",
"\tlibcdio_paranoia.so.2 -> libcdio_paranoia.so.2.0.0\n",
"\tlibvtkIOSQLPython27D-6.3.so.6.3 -> libvtkIOSQLPython27D-6.3.so.6.3.0\n",
"\tlibtbbmalloc.so.2 -> libtbbmalloc.so.2\n",
"\tlibvtkIOMINCPython27D-6.3.so.6.3 -> libvtkIOMINCPython27D-6.3.so.6.3.0\n",
"\tlibboost_filesystem.so.1.65.1 -> libboost_filesystem.so.1.65.1\n",
"\tlibboost_log_setup.so.1.65.1 -> libboost_log_setup.so.1.65.1\n",
"\tlibopencv_ximgproc.so.3.2 -> libopencv_ximgproc.so.3.2.0\n",
"\tlibvtkImagingMathTCL-6.3.so.6.3 -> libvtkImagingMathTCL-6.3.so.6.3.0\n",
"\tlibclang-6.0.so.1 -> libclang-6.0.so.1\n",
"\tlibboost_log.so.1.65.1 -> libboost_log.so.1.65.1\n",
"\tlibvtkInfovisLayoutPython27D-6.3.so.6.3 -> libvtkInfovisLayoutPython27D-6.3.so.6.3.0\n",
"\tlibssl3.so -> libssl3.so\n",
"\tlibnvidia-glvkspirv.so.450.57 -> libnvidia-glvkspirv.so.450.57\n",
"\tlibnvidia-tls.so.450.57 -> libnvidia-tls.so.450.57\n",
"\tlibvtkImagingGeneralPython27D-6.3.so.6.3 -> libvtkImagingGeneralPython27D-6.3.so.6.3.0\n",
"\tlibboost_stacktrace_noop.so.1.65.1 -> libboost_stacktrace_noop.so.1.65.1\n",
"\tlibgdk_pixbuf_xlib-2.0.so.0 -> libgdk_pixbuf_xlib-2.0.so.0.3611.0\n",
"\tlibexif.so.12 -> libexif.so.12.3.3\n",
"\tlibvtkCommonTransforms-6.3.so.6.3 -> libvtkCommonTransforms-6.3.so.6.3.0\n",
"\tlibLLVM-10.so.1 -> libLLVM-10.so.1\n",
"\tlibjansson.so.4 -> libjansson.so.4.11.0\n",
"\tlibvtkRenderingLICPython27D-6.3.so.6.3 -> libvtkRenderingLICPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOMPIImage-6.3.so.6.3 -> libvtkIOMPIImage-6.3.so.6.3.0\n",
"\tlibvtkFiltersHybridPython27D-6.3.so.6.3 -> libvtkFiltersHybridPython27D-6.3.so.6.3.0\n",
"\tlibboost_timer.so.1.65.1 -> libboost_timer.so.1.65.1\n",
"\tlibvtkFiltersGeometry-6.3.so.6.3 -> libvtkFiltersGeometry-6.3.so.6.3.0\n",
"\tlibboost_date_time.so.1.65.1 -> libboost_date_time.so.1.65.1\n",
"\tlibboost_math_c99.so.1.65.1 -> libboost_math_c99.so.1.65.1\n",
"\tlibboost_prg_exec_monitor.so.1.65.1 -> libboost_prg_exec_monitor.so.1.65.1\n",
"\tlibrtmp.so.1 -> librtmp.so.1\n",
"\tlibnvidia-cbl.so.450.57 -> libnvidia-cbl.so.450.57\n",
"\tlibboost_serialization.so.1.65.1 -> libboost_serialization.so.1.65.1\n",
"\tlibopencv_features2d.so.3.2 -> libopencv_features2d.so.3.2.0\n",
"\tlibpathplan.so.4 -> libpathplan.so.4.0.0\n",
"\tlibpcre2-8.so.0 -> libpcre2-8.so.0.7.0\n",
"\tlibvtkFiltersGeneralPython27D-6.3.so.6.3 -> libvtkFiltersGeneralPython27D-6.3.so.6.3.0\n",
"\tlibXt.so.6 -> libXt.so.6.0.0\n",
"\tlibopencv_text.so.3.2 -> libopencv_text.so.3.2.0\n",
"\tlibboost_program_options.so.1.65.1 -> libboost_program_options.so.1.65.1\n",
"\tlibwayland-egl.so.1 -> libwayland-egl.so.1.0.0\n",
"\tlibnvcuvid.so.1 -> libnvcuvid.so.450.57\n",
"\tlibavcodec.so.57 -> libavcodec.so.57.107.100\n",
"\tliblept.so.5 -> liblept.so.5.0.2\n",
"\tlibvtkFiltersExtractionTCL-6.3.so.6.3 -> libvtkFiltersExtractionTCL-6.3.so.6.3.0\n",
"\tlibhdf5_cpp.so.100 -> libhdf5_cpp.so.100.0.0\n",
"\tlibhdf5_serial.so.100 -> libhdf5_serial.so.100.0.1\n",
"\tlibtiff.so.5 -> libtiff.so.5.3.0\n",
"\tlibboost_locale.so.1.65.1 -> libboost_locale.so.1.65.1\n",
"\tlibopencv_dpm.so.3.2 -> libopencv_dpm.so.3.2.0\n",
"\tlibvtkImagingGeneral-6.3.so.6.3 -> libvtkImagingGeneral-6.3.so.6.3.0\n",
"\tlibLLVM-6.0.so.1 -> libLLVM-6.0.so.1\n",
"\tlibsoxr.so.0 -> libsoxr.so.0.1.1\n",
"\tlibopenmpt.so.0 -> libopenmpt.so.0.1.1\n",
"\tlibboost_math_tr1l.so.1.65.1 -> libboost_math_tr1l.so.1.65.1\n",
"\tlibvtkRenderingContextOpenGL-6.3.so.6.3 -> libvtkRenderingContextOpenGL-6.3.so.6.3.0\n",
"\tlibmpxwrappers.so.2 -> libmpxwrappers.so.2.0.1\n",
"\tlibvtkRenderingMatplotlibPython27D-6.3.so.6.3 -> libvtkRenderingMatplotlibPython27D-6.3.so.6.3.0\n",
"\tlibtbbmalloc_proxy.so.2 -> libtbbmalloc_proxy.so.2\n",
"\tlibvtkInfovisBoostGraphAlgorithmsPython27D-6.3.so.6.3 -> libvtkInfovisBoostGraphAlgorithmsPython27D-6.3.so.6.3.0\n",
"\tlibjack.so.0 -> libjack.so.0.0.28\n",
"\tlibvtkIOSQLTCL-6.3.so.6.3 -> libvtkIOSQLTCL-6.3.so.6.3.0\n",
"\tlibvtkIOParallelExodusPython27D-6.3.so.6.3 -> libvtkIOParallelExodusPython27D-6.3.so.6.3.0\n",
"\tlibvtkInfovisLayout-6.3.so.6.3 -> libvtkInfovisLayout-6.3.so.6.3.0\n",
"\tlibvtkImagingMath-6.3.so.6.3 -> libvtkImagingMath-6.3.so.6.3.0\n",
"\tlibnvidia-encode.so.1 -> libnvidia-encode.so.450.57\n",
"\tlibboost_context.so.1.65.1 -> libboost_context.so.1.65.1\n",
"\tlibgbm.so.1 -> libgbm.so.1.0.0\n",
"\tlibvtkFiltersAMRTCL-6.3.so.6.3 -> libvtkFiltersAMRTCL-6.3.so.6.3.0\n",
"\tlibIexMath-2_2.so.12 -> libIexMath.so\n",
"\tlibcolord.so.2 -> libcolord.so.2.0.5\n",
"\tlibvtkFiltersModeling-6.3.so.6.3 -> libvtkFiltersModeling-6.3.so.6.3.0\n",
"\tlibvpx.so.5 -> libvpx.so.5.0.0\n",
"\tlibepsilon.so.1 -> libepsilon.so.1.0.0\n",
"\tlibvtkImagingHybridPython27D-6.3.so.6.3 -> libvtkImagingHybridPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOVideo-6.3.so.6.3 -> libvtkIOVideo-6.3.so.6.3.0\n",
"\tlibGLESv1_CM_nvidia.so.1 -> libGLESv1_CM_nvidia.so.450.57\n",
"\tlibgssapi_krb5.so.2 -> libgssapi_krb5.so.2.2\n",
"\tlibvtkIOXdmfIITCL-6.3.so.6.3 -> libvtkIOXdmfIITCL-6.3.so.6.3.0\n",
"\tlibapt-inst.so.2.0 -> libapt-inst.so.2.0.0\n",
"\tlibboost_python-py27.so.1.65.1 -> libboost_python.so\n",
"\tlibicu-le-hb.so.0 -> libicu-le-hb.so.0.0.0\n",
"\tlibvtkFiltersParallelFlowPaths-6.3.so.6.3 -> libvtkFiltersParallelFlowPaths-6.3.so.6.3.0\n",
"\tlibvtkGeovisCoreTCL-6.3.so.6.3 -> libvtkGeovisCoreTCL-6.3.so.6.3.0\n",
"\tlibglut.so.3 -> libglut.so.3.9.0\n",
"\tlibboost_numpy-py27.so.1.65.1 -> libboost_numpy.so\n",
"\tlibvtkFiltersProgrammableTCL-6.3.so.6.3 -> libvtkFiltersProgrammableTCL-6.3.so.6.3.0\n",
"\tlibaec.so.0 -> libaec.so.0.0.3\n",
"\tlibhdf5_openmpi.so.100 -> libhdf5_openmpi.so.100.0.1\n",
"\tlibvtkRenderingImagePython27D-6.3.so.6.3 -> libvtkRenderingImagePython27D-6.3.so.6.3.0\n",
"\tlibpango-1.0.so.0 -> libpango-1.0.so.0.4000.14\n",
"\tlibXdmcp.so.6 -> libXdmcp.so.6.0.0\n",
"\tlibopencv_ccalib.so.3.2 -> libopencv_ccalib.so.3.2.0\n",
"\tlibvtkGeovisCore-6.3.so.6.3 -> libvtkGeovisCore-6.3.so.6.3.0\n",
"\tlibboost_signals.so.1.65.1 -> libboost_signals.so.1.65.1\n",
"\tlibXmuu.so.1 -> libXmuu.so.1.0.0\n",
"\tlibdrm.so.2 -> libdrm.so.2.4.0\n",
"\tlibvtkImagingStencilPython27D-6.3.so.6.3 -> libvtkImagingStencilPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOImage-6.3.so.6.3 -> libvtkIOImage-6.3.so.6.3.0\n",
"\tlibvtkIOInfovisTCL-6.3.so.6.3 -> libvtkIOInfovisTCL-6.3.so.6.3.0\n",
"\tlibGLU.so.1 -> libGLU.so.1.3.1\n",
"\tlibxcb-randr.so.0 -> libxcb-randr.so.0.1.0\n",
"\tlibopencv_objdetect.so.3.2 -> libopencv_objdetect.so.3.2.0\n",
"\tlibvtkImagingSources-6.3.so.6.3 -> libvtkImagingSources-6.3.so.6.3.0\n",
"\tlibunwind.so.8 -> libunwind.so.8.0.1\n",
"\tlibwebpmux.so.3 -> libwebpmux.so.3.0.1\n",
"\tlibflite_cmu_grapheme_lex.so.1 -> libflite_cmu_grapheme_lex.so.2.1\n",
"\tlibvtkIONetCDF-6.3.so.6.3 -> libvtkIONetCDF-6.3.so.6.3.0\n",
"\tlibva-drm.so.2 -> libva-drm.so.2.100.0\n",
"\tlibhdf5_openmpi_fortran.so.100 -> libhdf5_openmpi_fortran.so.100.0.1\n",
"\tlibjbig.so.0 -> libjbig.so.0\n",
"\tlibbs2b.so.0 -> libbs2b.so.0.0.0\n",
"\tlibvtkIOAMRTCL-6.3.so.6.3 -> libvtkIOAMRTCL-6.3.so.6.3.0\n",
"\tlibwacom.so.2 -> libwacom.so.2.6.1\n",
"\tlibvtkRenderingContext2D-6.3.so.6.3 -> libvtkRenderingContext2D-6.3.so.6.3.0\n",
"\tlibopen-rte.so.20 -> libopen-rte.so.20.10.1\n",
"\tlibvtkIOMPIParallelTCL-6.3.so.6.3 -> libvtkIOMPIParallelTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersParallelStatisticsPython27D-6.3.so.6.3 -> libvtkFiltersParallelStatisticsPython27D-6.3.so.6.3.0\n",
"\tlibopencv_surface_matching.so.3.2 -> libopencv_surface_matching.so.3.2.0\n",
"\tlibvtkRenderingVolumeTCL-6.3.so.6.3 -> libvtkRenderingVolumeTCL-6.3.so.6.3.0\n",
"\tlibopencv_photo.so.3.2 -> libopencv_photo.so.3.2.0\n",
"\tlibfftw3_omp.so.3 -> libfftw3_omp.so.3.5.7\n",
"\tlibvtkIOGeometryTCL-6.3.so.6.3 -> libvtkIOGeometryTCL-6.3.so.6.3.0\n",
"\tlibwayland-client.so.0 -> libwayland-client.so.0.3.0\n",
"\tlibvtkIOMoviePython27D-6.3.so.6.3 -> libvtkIOMoviePython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingParallel-6.3.so.6.3 -> libvtkRenderingParallel-6.3.so.6.3.0\n",
"\tlibvtkRenderingContextIIDTCL-6.3.so.6.3 -> libvtkRenderingContextIIDTCL-6.3.so.6.3.0\n",
"\tlibvtkIOVideoTCL-6.3.so.6.3 -> libvtkIOVideoTCL-6.3.so.6.3.0\n",
"\tlibXrandr.so.2 -> libXrandr.so.2.2.0\n",
"\tlibvtkFiltersHybridTCL-6.3.so.6.3 -> libvtkFiltersHybridTCL-6.3.so.6.3.0\n",
"\tlibxkbcommon-x11.so.0 -> libxkbcommon-x11.so.0.0.0\n",
"\tlibavfilter.so.6 -> libavfilter.so.6.107.100\n",
"\tlibFLAC.so.8 -> libFLAC.so.8.3.0\n",
"\tlibvtkRenderingLabel-6.3.so.6.3 -> libvtkRenderingLabel-6.3.so.6.3.0\n",
"\tlibvtkIOGeoJSONTCL-6.3.so.6.3 -> libvtkIOGeoJSONTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersHyperTreePython27D-6.3.so.6.3 -> libvtkFiltersHyperTreePython27D-6.3.so.6.3.0\n",
"\tlibtcmalloc_minimal_debug.so.4 -> libtcmalloc_minimal_debug.so.4.3.0\n",
"\tlibvdpau.so.1 -> libvdpau.so.1.0.0\n",
"\tlibedit.so.2 -> libedit.so.2.0.56\n",
"\tlibvtkFiltersGeneralTCL-6.3.so.6.3 -> libvtkFiltersGeneralTCL-6.3.so.6.3.0\n",
"\tlibsocket++.so.1 -> libsocket++.so.1.0.2\n",
"\tlibnuma.so.1 -> libnuma.so.1.0.0\n",
"\tlibvtkRenderingParallelLICPython27D-6.3.so.6.3 -> libvtkRenderingParallelLICPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingCoreTCL-6.3.so.6.3 -> libvtkRenderingCoreTCL-6.3.so.6.3.0\n",
"\tlibvtkCommonColorPython27D-6.3.so.6.3 -> libvtkCommonColorPython27D-6.3.so.6.3.0\n",
"\tlibfyut.so.0 -> libfyut.so.0.0.0\n",
"\tlibvtkImagingSourcesPython27D-6.3.so.6.3 -> libvtkImagingSourcesPython27D-6.3.so.6.3.0\n",
"\tlibopencv_structured_light.so.3.2 -> libopencv_structured_light.so.3.2.0\n",
"\tlibvtkFiltersModelingPython27D-6.3.so.6.3 -> libvtkFiltersModelingPython27D-6.3.so.6.3.0\n",
"\tlibcrystalhd.so.3 -> libcrystalhd.so.3.6\n",
"\tlibvtkFiltersParallel-6.3.so.6.3 -> libvtkFiltersParallel-6.3.so.6.3.0\n",
"\tlibnvidia-ngx.so.1 -> libnvidia-ngx.so.450.57\n",
"\tlibvtkFiltersParallelGeometryPython27D-6.3.so.6.3 -> libvtkFiltersParallelGeometryPython27D-6.3.so.6.3.0\n",
"\tlibgdcmjpeg12.so.2.8 -> libgdcmjpeg12.so.2.8.4\n",
"\tlibvtkRenderingAnnotationPython27D-6.3.so.6.3 -> libvtkRenderingAnnotationPython27D-6.3.so.6.3.0\n",
"\tlibgdk-3.so.0 -> libgdk-3.so.0.2200.30\n",
"\tlibvtkInfovisCore-6.3.so.6.3 -> libvtkInfovisCore-6.3.so.6.3.0\n",
"\tlibgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.32\n",
"\tlibvtkDomainsChemistryTCL-6.3.so.6.3 -> libvtkDomainsChemistryTCL-6.3.so.6.3.0\n",
"\tlibdrm_intel.so.1 -> libdrm_intel.so.1.0.0\n",
"\tlibvtkRenderingCore-6.3.so.6.3 -> libvtkRenderingCore-6.3.so.6.3.0\n",
"\tlibvtkDomainsChemistry-6.3.so.6.3 -> libvtkDomainsChemistry-6.3.so.6.3.0\n",
"\tlibmtdev.so.1 -> libmtdev.so.1.0.0\n",
"\tlibmpi_java.so.20 -> libmpi_java.so.20.10.0\n",
"\tlibGLX.so.0 -> libGLX.so.0.0.0\n",
"\tlibxcb-xfixes.so.0 -> libxcb-xfixes.so.0.0.0\n",
"\tlibboost_random.so.1.65.1 -> libboost_random.so.1.65.1\n",
"\tlibgdcmDSED.so.2.8 -> libgdcmDSED.so.2.8.4\n",
"\tlibasyncns.so.0 -> libasyncns.so.0.3.1\n",
"\tlibvtkRenderingLODPython27D-6.3.so.6.3 -> libvtkRenderingLODPython27D-6.3.so.6.3.0\n",
"\tlibvtkParallelMPIPython27D-6.3.so.6.3 -> libvtkParallelMPIPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOLSDynaPython27D-6.3.so.6.3 -> libvtkIOLSDynaPython27D-6.3.so.6.3.0\n",
"\tlibspeex.so.1 -> libspeex.so.1.5.0\n",
"\tlibx265.so.146 -> libx265.so.146\n",
"\tlibflite_cmulex.so.1 -> libflite_cmulex.so.2.1\n",
"\tlibvtkTestingRendering-6.3.so.6.3 -> libvtkTestingRendering-6.3.so.6.3.0\n",
"\tlibqhull.so.7 -> libqhull.so.7.2.0\n",
"\tlibproxy.so.1 -> libproxy.so.1.0.0\n",
"\tlibvtkPythonInterpreterTCL-6.3.so.6.3 -> libvtkPythonInterpreterTCL-6.3.so.6.3.0\n",
"\tlibdap.so.25 -> libdap.so.25.0.1\n",
"\tlibobjc_gc.so.4 -> libobjc_gc.so.4.0.0\n",
"\tlibpython2.7.so.1.0 -> libpython2.7.so.1.0\n",
"\tlibvtkIOVPIC-6.3.so.6.3 -> libvtkIOVPIC-6.3.so.6.3.0\n",
"\tlibxcb-sync.so.1 -> libxcb-sync.so.1.0.0\n",
"\tlibchromaprint.so.1 -> libchromaprint.so.1.4.3\n",
"\tlibopencv_xobjdetect.so.3.2 -> libopencv_xobjdetect.so.3.2.0\n",
"\tlibopencv_line_descriptor.so.3.2 -> libopencv_line_descriptor.so.3.2.0\n",
"\tlibmpi_mpifh.so.20 -> libmpi_mpifh.so.20.11.0\n",
"\tlibxcb-render.so.0 -> libxcb-render.so.0.0.0\n",
"\tlibvtkInteractionWidgets-6.3.so.6.3 -> libvtkInteractionWidgets-6.3.so.6.3.0\n",
"\tlibvtkIOImportTCL-6.3.so.6.3 -> libvtkIOImportTCL-6.3.so.6.3.0\n",
"\tlibharfbuzz-gobject.so.0 -> libharfbuzz-gobject.so.0.10702.0\n",
"\tlibvtkFiltersImagingTCL-6.3.so.6.3 -> libvtkFiltersImagingTCL-6.3.so.6.3.0\n",
"\tlibvtkIOCorePython27D-6.3.so.6.3 -> libvtkIOCorePython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingLICTCL-6.3.so.6.3 -> libvtkRenderingLICTCL-6.3.so.6.3.0\n",
"\tlibrom1394.so.0 -> librom1394.so.0.3.0\n",
"\tlibboost_math_c99f.so.1.65.1 -> libboost_math_c99f.so.1.65.1\n",
"\tlibvtkImagingMorphologicalPython27D-6.3.so.6.3 -> libvtkImagingMorphologicalPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingParallelLICTCL-6.3.so.6.3 -> libvtkRenderingParallelLICTCL-6.3.so.6.3.0\n",
"\tlibgl2ps.so.1.4 -> libgl2ps.so.1.4.0\n",
"\tlibvtkFiltersFlowPaths-6.3.so.6.3 -> libvtkFiltersFlowPaths-6.3.so.6.3.0\n",
"\tlibcroco-0.6.so.3 -> libcroco-0.6.so.3.0.1\n",
"\tlibunwind-ptrace.so.0 -> libunwind-ptrace.so.0.0.0\n",
"\tlibvtkFiltersAMRPython27D-6.3.so.6.3 -> libvtkFiltersAMRPython27D-6.3.so.6.3.0\n",
"\tlibturbojpeg.so.0 -> libturbojpeg.so.0.1.0\n",
"\tlibvtkInfovisCorePython27D-6.3.so.6.3 -> libvtkInfovisCorePython27D-6.3.so.6.3.0\n",
"\tlibgeos_c.so.1 -> libgeos_c.so.1.10.2\n",
"\tlibiculx.so.60 -> libiculx.so.60.2\n",
"\tlibicutest.so.60 -> libicutest.so.60.2\n",
"\tlibvtkGeovisCorePython27D-6.3.so.6.3 -> libvtkGeovisCorePython27D-6.3.so.6.3.0\n",
"\tlibopencv_imgproc.so.3.2 -> libopencv_imgproc.so.3.2.0\n",
"\tlibtbb.so.2 -> libtbb.so.2\n",
"\tlibfreexl.so.1 -> libfreexl.so.1.1.0\n",
"\tlibvtkFiltersParallelTCL-6.3.so.6.3 -> libvtkFiltersParallelTCL-6.3.so.6.3.0\n",
"\tlibnvidia-ifr.so.1 -> libnvidia-ifr.so.450.57\n",
"\tlibkrb5.so.3 -> libkrb5.so.3.3\n",
"\tlibwayland-server.so.0 -> libwayland-server.so.0.1.0\n",
"\tlibGL.so.1 -> libGL.so.1.0.0\n",
"\tlibopenblas.so.0 -> libopenblasp-r0.2.20.so\n",
"\tlibHalf.so.12 -> libHalf.so.12.0.0\n",
"\tlibQt5DBus.so.5 -> libQt5DBus.so.5.9.5\n",
"\tlibvtkIOAMR-6.3.so.6.3 -> libvtkIOAMR-6.3.so.6.3.0\n",
"\tlibvtkRenderingVolumeOpenGLPython27D-6.3.so.6.3 -> libvtkRenderingVolumeOpenGLPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOVideoPython27D-6.3.so.6.3 -> libvtkIOVideoPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOAMRPython27D-6.3.so.6.3 -> libvtkIOAMRPython27D-6.3.so.6.3.0\n",
"\tlibXcursor.so.1 -> libXcursor.so.1.0.2\n",
"\tlibnvidia-ml.so.1 -> libnvidia-ml.so.450.57\n",
"\tlibtcmalloc.so.4 -> libtcmalloc.so.4.3.0\n",
"\tlibvtkIOExport-6.3.so.6.3 -> libvtkIOExport-6.3.so.6.3.0\n",
"\tlibopencv_core.so.3.2 -> libopencv_core.so.3.2.0\n",
"\tlibvtkFiltersGeometryPython27D-6.3.so.6.3 -> libvtkFiltersGeometryPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersProgrammable-6.3.so.6.3 -> libvtkFiltersProgrammable-6.3.so.6.3.0\n",
"\tlibvtkIOParallelTCL-6.3.so.6.3 -> libvtkIOParallelTCL-6.3.so.6.3.0\n",
"\tlibvtkIOMPIParallel-6.3.so.6.3 -> libvtkIOMPIParallel-6.3.so.6.3.0\n",
"\tlibgdcmMEXD.so.2.8 -> libgdcmMEXD.so.2.8.4\n",
"\tlibmlx5.so.1 -> libmlx5.so.1.4.17.1\n",
"\tlibvtkInteractionImageTCL-6.3.so.6.3 -> libvtkInteractionImageTCL-6.3.so.6.3.0\n",
"\tlibvtkCommonSystem-6.3.so.6.3 -> libvtkCommonSystem-6.3.so.6.3.0\n",
"\tlibpng16.so.16 -> libpng16.so.16.34.0\n",
"\tlibnspr4.so -> libnspr4.so\n",
"\tlibboost_coroutine.so.1.65.1 -> libboost_coroutine.so.1.65.1\n",
"\tlibvtkIOXMLTCL-6.3.so.6.3 -> libvtkIOXMLTCL-6.3.so.6.3.0\n",
"\tlibmca_common_verbs.so.20 -> libmca_common_verbs.so.20.10.0\n",
"\tlibnssutil3.so -> libnssutil3.so\n",
"\tlibvtkIOGDALPython27D-6.3.so.6.3 -> libvtkIOGDALPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingLabelTCL-6.3.so.6.3 -> libvtkRenderingLabelTCL-6.3.so.6.3.0\n",
"\tlibvtkIONetCDFTCL-6.3.so.6.3 -> libvtkIONetCDFTCL-6.3.so.6.3.0\n",
"\tlibgdcmDICT.so.2.8 -> libgdcmDICT.so.2.8.4\n",
"\tlibvtkFiltersProgrammablePython27D-6.3.so.6.3 -> libvtkFiltersProgrammablePython27D-6.3.so.6.3.0\n",
"\tlibXmu.so.6 -> libXmu.so.6.2.0\n",
"\tlibcc1.so.0 -> libcc1.so.0.0.0\n",
"\tlibdapclient.so.6 -> libdapclient.so.6.1.7\n",
"\tlibvtkFiltersGeometryTCL-6.3.so.6.3 -> libvtkFiltersGeometryTCL-6.3.so.6.3.0\n",
"\tlibvtkViewsCore-6.3.so.6.3 -> libvtkViewsCore-6.3.so.6.3.0\n",
"\tlibvtkInteractionWidgetsTCL-6.3.so.6.3 -> libvtkInteractionWidgetsTCL-6.3.so.6.3.0\n",
"\tlibrbd.so.1 -> librbd.so.1.12.0\n",
"\tlibvtkCommonMathTCL-6.3.so.6.3 -> libvtkCommonMathTCL-6.3.so.6.3.0\n",
"\tlibEGL_mesa.so.0 -> libEGL_mesa.so.0.0.0\n",
"\tlibvtkFiltersHyperTreeTCL-6.3.so.6.3 -> libvtkFiltersHyperTreeTCL-6.3.so.6.3.0\n",
"\tlibvtkRenderingOpenGLPython27D-6.3.so.6.3 -> libvtkRenderingOpenGLPython27D-6.3.so.6.3.0\n",
"\tlibvtkftgl-6.3.so.6.3 -> libvtkftgl-6.3.so.6.3.0\n",
"\tlibvtkIOParallelLSDynaPython27D-6.3.so.6.3 -> libvtkIOParallelLSDynaPython27D-6.3.so.6.3.0\n",
"\tlibGLX_nvidia.so.0 -> libGLX_nvidia.so.450.57\n",
"\tlibvtkTestingIOSQL-6.3.so.6.3 -> libvtkTestingIOSQL-6.3.so.6.3.0\n",
"\tlibxcb-image.so.0 -> libxcb-image.so.0.0.0\n",
"\tlibvtkFiltersFlowPathsPython27D-6.3.so.6.3 -> libvtkFiltersFlowPathsPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOODBCTCL-6.3.so.6.3 -> libvtkIOODBCTCL-6.3.so.6.3.0\n",
"\tlibXtst.so.6 -> libXtst.so.6.1.0\n",
"\tlibvtkIOParallelXMLTCL-6.3.so.6.3 -> libvtkIOParallelXMLTCL-6.3.so.6.3.0\n",
"\tlibdc1394.so.22 -> libdc1394.so.22.2.1\n",
"\tlibvtkFiltersStatisticsPython27D-6.3.so.6.3 -> libvtkFiltersStatisticsPython27D-6.3.so.6.3.0\n",
"\tlibmp3lame.so.0 -> libmp3lame.so.0.0.0\n",
"\tlibboost_math_tr1.so.1.65.1 -> libboost_math_tr1.so.1.65.1\n",
"\tlibvtkFiltersReebGraph-6.3.so.6.3 -> libvtkFiltersReebGraph-6.3.so.6.3.0\n",
"\tlibflite_cmu_indic_lex.so.1 -> libflite_cmu_indic_lex.so.2.1\n",
"\tlibboost_iostreams.so.1.65.1 -> libboost_iostreams.so.1.65.1\n",
"\tlibglib-2.0.so.0 -> libglib-2.0.so.0.5600.4\n",
"\tlibvtkFiltersGenericPython27D-6.3.so.6.3 -> libvtkFiltersGenericPython27D-6.3.so.6.3.0\n",
"\tlibboost_system.so.1.65.1 -> libboost_system.so.1.65.1\n",
"\tlibvtkRenderingGL2PS-6.3.so.6.3 -> libvtkRenderingGL2PS-6.3.so.6.3.0\n",
"\tlibXcomposite.so.1 -> libXcomposite.so.1.0.0\n",
"\tlibGLdispatch.so.0 -> libGLdispatch.so.0.0.0\n",
"\tlibboost_mpi_python-py27.so.1.65.1 -> libboost_mpi_python.so\n",
"\tlibvtkCommonExecutionModelTCL-6.3.so.6.3 -> libvtkCommonExecutionModelTCL-6.3.so.6.3.0\n",
"\tlibvtkalglib-6.3.so.6.3 -> libvtkalglib-6.3.so.6.3.0\n",
"\tlibvtkCommonMisc-6.3.so.6.3 -> libvtkCommonMisc-6.3.so.6.3.0\n",
"\tlibXxf86vm.so.1 -> libXxf86vm.so.1.0.0\n",
"\tlibprotoc.so.10 -> libprotoc.so.10.0.0\n",
"\tlibsnappy.so.1 -> libsnappy.so.1.1.7\n",
"\tlibEGL.so.1 -> libEGL.so.1.0.0\n",
"\tlibvtkFiltersParallelStatisticsTCL-6.3.so.6.3 -> libvtkFiltersParallelStatisticsTCL-6.3.so.6.3.0\n",
"\tlibnvidia-allocator.so.1 -> libnvidia-allocator.so.450.57\n",
"\tlibvtkIOPLYPython27D-6.3.so.6.3 -> libvtkIOPLYPython27D-6.3.so.6.3.0\n",
"\tlibsamplerate.so.0 -> libsamplerate.so.0.1.8\n",
"\tlibopencv_superres.so.3.2 -> libopencv_superres.so.3.2.0\n",
"\tlibvtkRenderingFreeType-6.3.so.6.3 -> libvtkRenderingFreeType-6.3.so.6.3.0\n",
"\tlibtsan.so.0 -> libtsan.so.0.0.0\n",
"\tlibvtkIOImagePython27D-6.3.so.6.3 -> libvtkIOImagePython27D-6.3.so.6.3.0\n",
"\tlibvtkInfovisCoreTCL-6.3.so.6.3 -> libvtkInfovisCoreTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersSelectionTCL-6.3.so.6.3 -> libvtkFiltersSelectionTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersParallelStatistics-6.3.so.6.3 -> libvtkFiltersParallelStatistics-6.3.so.6.3.0\n",
"\tlibhdf5_openmpi_hl.so.100 -> libhdf5_openmpi_hl.so.100.0.0\n",
"\tlibvtkIOExportTCL-6.3.so.6.3 -> libvtkIOExportTCL-6.3.so.6.3.0\n",
"\tlibboost_type_erasure.so.1.65.1 -> libboost_type_erasure.so.1.65.1\n",
"\tlibatlas.so.3 -> libatlas.so.3.10.3\n",
"\tlibvtkViewsGeovisTCL-6.3.so.6.3 -> libvtkViewsGeovisTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersSources-6.3.so.6.3 -> libvtkFiltersSources-6.3.so.6.3.0\n",
"\tlibvtkFiltersCorePython27D-6.3.so.6.3 -> libvtkFiltersCorePython27D-6.3.so.6.3.0\n",
"\tlibsz.so.2 -> libsz.so.2.0.1\n",
"\tlibXss.so.1 -> libXss.so.1.0.0\n",
"\tlibvtkFiltersCoreTCL-6.3.so.6.3 -> libvtkFiltersCoreTCL-6.3.so.6.3.0\n",
"\tlibltdl.so.7 -> libltdl.so.7.3.1\n",
"\tlibflite_usenglish.so.1 -> libflite_usenglish.so.2.1\n",
"\tlibharfbuzz-icu.so.0 -> libharfbuzz-icu.so.0.10702.0\n",
"\tlibvtkCommonMiscPython27D-6.3.so.6.3 -> libvtkCommonMiscPython27D-6.3.so.6.3.0\n",
"\tlibvtkCommonMiscTCL-6.3.so.6.3 -> libvtkCommonMiscTCL-6.3.so.6.3.0\n",
"\tlibvtkIOMovieTCL-6.3.so.6.3 -> libvtkIOMovieTCL-6.3.so.6.3.0\n",
"\tliblsan.so.0 -> liblsan.so.0.0.0\n",
"\tlibnl-route-3.so.200 -> libnl-route-3.so.200.24.0\n",
"\tlibvtkverdict-6.3.so.6.3 -> libvtkverdict-6.3.so.6.3.0\n",
"\tlibgeos-3.6.2.so -> libgeos-3.6.2.so\n",
"\tlibplds4.so -> libplds4.so\n",
"\tlibdrm_radeon.so.1 -> libdrm_radeon.so.1.0.1\n",
"\tlibvtkCommonComputationalGeometryPython27D-6.3.so.6.3 -> libvtkCommonComputationalGeometryPython27D-6.3.so.6.3.0\n",
"\tlibvtkViewsContextIIDTCL-6.3.so.6.3 -> libvtkViewsContextIIDTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersCore-6.3.so.6.3 -> libvtkFiltersCore-6.3.so.6.3.0\n",
"\tlibvtkCommonComputationalGeometry-6.3.so.6.3 -> libvtkCommonComputationalGeometry-6.3.so.6.3.0\n",
"\tlibavformat.so.57 -> libavformat.so.57.83.100\n",
"\tlibunwind-coredump.so.0 -> libunwind-coredump.so.0.0.0\n",
"\tlibvtkIOEnSightPython27D-6.3.so.6.3 -> libvtkIOEnSightPython27D-6.3.so.6.3.0\n",
"\tlibtiffxx.so.5 -> libtiffxx.so.5.3.0\n",
"\tlibflite.so.1 -> libflite.so.2.1\n",
"\tlibvtkFiltersTexture-6.3.so.6.3 -> libvtkFiltersTexture-6.3.so.6.3.0\n",
"\tlibvtkIOVPICPython27D-6.3.so.6.3 -> libvtkIOVPICPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersImagingPython27D-6.3.so.6.3 -> libvtkFiltersImagingPython27D-6.3.so.6.3.0\n",
"\tlibvtkImagingColorPython27D-6.3.so.6.3 -> libvtkImagingColorPython27D-6.3.so.6.3.0\n",
"\tlibsmime3.so -> libsmime3.so\n",
"\tlibtheoraenc.so.1 -> libtheoraenc.so.1.1.2\n",
"\tlibvtkRenderingVolumeAMRPython27D-6.3.so.6.3 -> libvtkRenderingVolumeAMRPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersSelection-6.3.so.6.3 -> libvtkFiltersSelection-6.3.so.6.3.0\n",
"\tlibQt5EglFSDeviceIntegration.so.5 -> libQt5EglFSDeviceIntegration.so.5.9.5\n",
"\tlibavc1394.so.0 -> libavc1394.so.0.3.0\n",
"\tlibcolordprivate.so.2 -> libcolordprivate.so.2.0.5\n",
"\tlibopencv_plot.so.3.2 -> libopencv_plot.so.3.2.0\n",
"\tlibvtkCommonColorTCL-6.3.so.6.3 -> libvtkCommonColorTCL-6.3.so.6.3.0\n",
"\tlibvtkRenderingParallelLIC-6.3.so.6.3 -> libvtkRenderingParallelLIC-6.3.so.6.3.0\n",
"\tlibgme.so.0 -> libgme.so.0.6.2\n",
"\tlibOpenGL.so.0 -> libOpenGL.so.0.0.0\n",
"\tlibvtkFiltersParallelImagingPython27D-6.3.so.6.3 -> libvtkFiltersParallelImagingPython27D-6.3.so.6.3.0\n",
"\tlibgvpr.so.2 -> libgvpr.so.2.0.0\n",
"\tlibSM.so.6 -> libSM.so.6.0.1\n",
"\tlibvtkFiltersParallelFlowPathsTCL-6.3.so.6.3 -> libvtkFiltersParallelFlowPathsTCL-6.3.so.6.3.0\n",
"\tlibnvidia-ptxjitcompiler.so.1 -> libnvidia-ptxjitcompiler.so.450.57\n",
"\tlibgif.so.7 -> libgif.so.7.0.0\n",
"\tlibopencv_freetype.so.3.2 -> libopencv_freetype.so.3.2.0\n",
"\tlibvtkImagingCoreTCL-6.3.so.6.3 -> libvtkImagingCoreTCL-6.3.so.6.3.0\n",
"\tlibtwolame.so.0 -> libtwolame.so.0.0.0\n",
"\tlibflite_cmu_us_kal.so.1 -> libflite_cmu_us_kal.so.2.1\n",
"\tlibvtkCommonColor-6.3.so.6.3 -> libvtkCommonColor-6.3.so.6.3.0\n",
"\tlibasan.so.4 -> libasan.so.4.0.0\n",
"\tlibboost_mpi.so.1.65.1 -> libboost_mpi.so.1.65.1\n",
"\tlibrhash.so.0 -> librhash.so.0\n",
"\tlibhdf5_openmpihl_fortran.so.100 -> libhdf5_openmpihl_fortran.so.100.0.0\n",
"\tlibvtkInteractionImagePython27D-6.3.so.6.3 -> libvtkInteractionImagePython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingImageTCL-6.3.so.6.3 -> libvtkRenderingImageTCL-6.3.so.6.3.0\n",
"\tlibvorbisenc.so.2 -> libvorbisenc.so.2.0.11\n",
"\tlibfreetype.so.6 -> libfreetype.so.6.15.0\n",
"\tlibpoppler.so.73 -> libpoppler.so.73.0.0\n",
"\tlibvtkFiltersParallelPython27D-6.3.so.6.3 -> libvtkFiltersParallelPython27D-6.3.so.6.3.0\n",
"\tlibflite_cmu_us_slt.so.1 -> libflite_cmu_us_slt.so.2.1\n",
"\tlibvtkIOExportPython27D-6.3.so.6.3 -> libvtkIOExportPython27D-6.3.so.6.3.0\n",
"\tlibboost_fiber.so.1.65.1 -> libboost_fiber.so.1.65.1\n",
"\tlibboost_regex.so.1.65.1 -> libboost_regex.so.1.65.1\n",
"\tlibvtkFiltersImaging-6.3.so.6.3 -> libvtkFiltersImaging-6.3.so.6.3.0\n",
"\tlibvtkFiltersSMPTCL-6.3.so.6.3 -> libvtkFiltersSMPTCL-6.3.so.6.3.0\n",
"\tlibvtkImagingColorTCL-6.3.so.6.3 -> libvtkImagingColorTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersParallelMPI-6.3.so.6.3 -> libvtkFiltersParallelMPI-6.3.so.6.3.0\n",
"\tlibplc4.so -> libplc4.so\n",
"\tlibvtkIOFFMPEGTCL-6.3.so.6.3 -> libvtkIOFFMPEGTCL-6.3.so.6.3.0\n",
"\tlibtcmalloc_minimal.so.4 -> libtcmalloc_minimal.so.4.3.0\n",
"\tlibvtkRenderingContextOpenGLTCL-6.3.so.6.3 -> libvtkRenderingContextOpenGLTCL-6.3.so.6.3.0\n",
"\tlibvtkViewsContext2DPython27D-6.3.so.6.3 -> libvtkViewsContext2DPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingCorePython27D-6.3.so.6.3 -> libvtkRenderingCorePython27D-6.3.so.6.3.0\n",
"\tlibvtkIOParallelNetCDFPython27D-6.3.so.6.3 -> libvtkIOParallelNetCDFPython27D-6.3.so.6.3.0\n",
"\tlibboost_graph_parallel.so.1.65.1 -> libboost_graph_parallel.so.1.65.1\n",
"\tlibcaca.so.0 -> libcaca.so.0.99.19\n",
"\tlibnetcdf_c++.so.4 -> libnetcdf_c++.so.4.2.0\n",
"\tlibvtkRenderingExternalPython27D-6.3.so.6.3 -> libvtkRenderingExternalPython27D-6.3.so.6.3.0\n",
"\tlibvtkCommonTransformsTCL-6.3.so.6.3 -> libvtkCommonTransformsTCL-6.3.so.6.3.0\n",
"\tlibnghttp2.so.14 -> libnghttp2.so.14.15.2\n",
"\tlibvtkChartsCore-6.3.so.6.3 -> libvtkChartsCore-6.3.so.6.3.0\n",
"\tlibXaw.so.7 -> libXaw7.so.7.0.0\n",
"\tlibvtkIOGDAL-6.3.so.6.3 -> libvtkIOGDAL-6.3.so.6.3.0\n",
"\tlibvtkImagingStatisticsPython27D-6.3.so.6.3 -> libvtkImagingStatisticsPython27D-6.3.so.6.3.0\n",
"\tlibnvidia-rtcore.so.450.57 -> libnvidia-rtcore.so.450.57\n",
"\tlibpsl.so.5 -> libpsl.so.5.2.0\n",
"\tlibvtkIOParallelLSDyna-6.3.so.6.3 -> libvtkIOParallelLSDyna-6.3.so.6.3.0\n",
"\tlibpolkit-agent-1.so.0 -> libpolkit-agent-1.so.0.0.0\n",
"\tlibfabric.so.1 -> libfabric.so.1.9.3\n",
"\tlibxcb-xinerama.so.0 -> libxcb-xinerama.so.0.0.0\n",
"\tlibvtkIOODBC-6.3.so.6.3 -> libvtkIOODBC-6.3.so.6.3.0\n",
"\tlibflite_cmu_indic_lang.so.1 -> libflite_cmu_indic_lang.so.2.1\n",
"\tlibvtkInfovisBoostGraphAlgorithmsTCL-6.3.so.6.3 -> libvtkInfovisBoostGraphAlgorithmsTCL-6.3.so.6.3.0\n",
"\tlibkmldom.so.1 -> libkmldom.so.1.3.0\n",
"\tlibnvidia-glcore.so.450.57 -> libnvidia-glcore.so.450.57\n",
"\tliburiparser.so.1 -> liburiparser.so.1.0.20\n",
"\tlibvtkFiltersPython-6.3.so.6.3 -> libvtkFiltersPython-6.3.so.6.3.0\n",
"\tlibvtkRenderingLODTCL-6.3.so.6.3 -> libvtkRenderingLODTCL-6.3.so.6.3.0\n",
"\tlibQt5Core.so.5 -> libQt5Core.so.5.9.5\n",
"\tlibIlmImfUtil-2_2.so.22 -> libIlmImfUtil.so\n",
"\tlibpolkit-backend-1.so.0 -> libpolkit-backend-1.so.0.0.0\n",
"\tlibboost_stacktrace_addr2line.so.1.65.1 -> libboost_stacktrace_addr2line.so.1.65.1\n",
"\tlibhdf5_hl_cpp.so.100 -> libhdf5_hl_cpp.so.100.0.0\n",
"\tlibcdt.so.5 -> libcdt.so.5.0.0\n",
"\tlibvtkRenderingImage-6.3.so.6.3 -> libvtkRenderingImage-6.3.so.6.3.0\n",
"\tlibflite_cmu_us_awb.so.1 -> libflite_cmu_us_awb.so.2.1\n",
"\tlibvtkRenderingContext2DPython27D-6.3.so.6.3 -> libvtkRenderingContext2DPython27D-6.3.so.6.3.0\n",
"\tlibssh-gcrypt_threads.so.4 -> libssh-gcrypt_threads.so.4.5.0\n",
"\tlibproj.so.12 -> libproj.so.12.0.0\n",
"\tlibvtkIOParallelExodus-6.3.so.6.3 -> libvtkIOParallelExodus-6.3.so.6.3.0\n",
"\tlibgvc.so.6 -> libgvc.so.6.0.0\n",
"\tlibvtkFiltersParallelFlowPathsPython27D-6.3.so.6.3 -> libvtkFiltersParallelFlowPathsPython27D-6.3.so.6.3.0\n",
"\tlibvtkCommonDataModelTCL-6.3.so.6.3 -> libvtkCommonDataModelTCL-6.3.so.6.3.0\n",
"\tlibpcre32.so.3 -> libpcre32.so.3.13.3\n",
"\tlibboost_wave.so.1.65.1 -> libboost_wave.so.1.65.1\n",
"\tlibatomic.so.1 -> libatomic.so.1.2.0\n",
"\tlibvtkIOParallelLSDynaTCL-6.3.so.6.3 -> libvtkIOParallelLSDynaTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersGenericTCL-6.3.so.6.3 -> libvtkFiltersGenericTCL-6.3.so.6.3.0\n",
"\tlibvtkIOLegacy-6.3.so.6.3 -> libvtkIOLegacy-6.3.so.6.3.0\n",
"\tlibvtkIOExodusPython27D-6.3.so.6.3 -> libvtkIOExodusPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOMPIImageTCL-6.3.so.6.3 -> libvtkIOMPIImageTCL-6.3.so.6.3.0\n",
"\tlibvtkIOSQL-6.3.so.6.3 -> libvtkIOSQL-6.3.so.6.3.0\n",
"\tlibpolkit-gobject-1.so.0 -> libpolkit-gobject-1.so.0.0.0\n",
"\tlibnvidia-cfg.so.1 -> libnvidia-cfg.so.450.57\n",
"\tlibvtkIOXMLPython27D-6.3.so.6.3 -> libvtkIOXMLPython27D-6.3.so.6.3.0\n",
"\tlibgts-0.7.so.5 -> libgts-0.7.so.5.0.1\n",
"\tlibsodium.so.23 -> libsodium.so.23.1.0\n",
"\tlibodbc.so.2 -> libodbc.so.2.0.0\n",
"\tlibasound.so.2 -> libasound.so.2.0.0\n",
"\tlibjpeg.so.8 -> libjpeg.so.8.1.2\n",
"\tlibXv.so.1 -> libXv.so.1.0.0\n",
"\tlibwayland-cursor.so.0 -> libwayland-cursor.so.0.0.0\n",
"\tlibvtkIOGeoJSONPython27D-6.3.so.6.3 -> libvtkIOGeoJSONPython27D-6.3.so.6.3.0\n",
"\tlibCharLS.so.1 -> libCharLS.so.1.0\n",
"\tlibvtkViewsGeovisPython27D-6.3.so.6.3 -> libvtkViewsGeovisPython27D-6.3.so.6.3.0\n",
"\tlibgmodule-2.0.so.0 -> libgmodule-2.0.so.0.5600.4\n",
"\tlibevdev.so.2 -> libevdev.so.2.1.20\n",
"\tlibQt5EglFsKmsSupport.so.5 -> libQt5EglFsKmsSupport.so.5.9.5\n",
"\tlibvtkCommonMath-6.3.so.6.3 -> libvtkCommonMath-6.3.so.6.3.0\n",
"\tlibglapi.so.0 -> libglapi.so.0.0.0\n",
"\tlibvtkImagingColor-6.3.so.6.3 -> libvtkImagingColor-6.3.so.6.3.0\n",
"\tlibvtkCommonDataModelPython27D-6.3.so.6.3 -> libvtkCommonDataModelPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersReebGraphTCL-6.3.so.6.3 -> libvtkFiltersReebGraphTCL-6.3.so.6.3.0\n",
"\tlibpcre2-16.so.0 -> libpcre2-16.so.0.7.0\n",
"\tlibvorbis.so.0 -> libvorbis.so.0.4.8\n",
"\tlibvtkImagingStatisticsTCL-6.3.so.6.3 -> libvtkImagingStatisticsTCL-6.3.so.6.3.0\n",
"\tlibX11-xcb.so.1 -> libX11-xcb.so.1.0.0\n",
"\tlibxcb-present.so.0 -> libxcb-present.so.0.0.0\n",
"\tlibgio-2.0.so.0 -> libgio-2.0.so.0.5600.4\n",
"\tlibvtkIOParallel-6.3.so.6.3 -> libvtkIOParallel-6.3.so.6.3.0\n",
"\tliblab_gamut.so.1 -> liblab_gamut.so.1.0.0\n",
"\tlibnvidia-fbc.so.1 -> libnvidia-fbc.so.450.57\n",
"\tlibvtkImagingSourcesTCL-6.3.so.6.3 -> libvtkImagingSourcesTCL-6.3.so.6.3.0\n",
"\tlibgdcmjpeg16.so.2.8 -> libgdcmjpeg16.so.2.8.4\n",
"\tlibGLESv2.so.2 -> libGLESv2.so.2.0.0\n",
"\tlibvtkIOMPIImagePython27D-6.3.so.6.3 -> libvtkIOMPIImagePython27D-6.3.so.6.3.0\n",
"\tlibvtkViewsGeovis-6.3.so.6.3 -> libvtkViewsGeovis-6.3.so.6.3.0\n",
"\tlibgc.so.1 -> libgc.so.1.0.3\n",
"\tlibXft.so.2 -> libXft.so.2.3.2\n",
"\tlibboost_wserialization.so.1.65.1 -> libboost_wserialization.so.1.65.1\n",
"\tlibvtkIOEnSightTCL-6.3.so.6.3 -> libvtkIOEnSightTCL-6.3.so.6.3.0\n",
"\tlibf77blas.so.3 -> libf77blas.so.3.10.3\n",
"\tlibelf.so.1 -> libelf-0.170.so\n",
"\tlibvtkIOPLYTCL-6.3.so.6.3 -> libvtkIOPLYTCL-6.3.so.6.3.0\n",
"\tlibsndfile.so.1 -> libsndfile.so.1.0.28\n",
"\tlibsuperlu.so.5 -> libsuperlu.so.5.2.1\n",
"\tlibvtkFiltersAMR-6.3.so.6.3 -> libvtkFiltersAMR-6.3.so.6.3.0\n",
"\tlibatk-1.0.so.0 -> libatk-1.0.so.0.22810.1\n",
"\tlibxkbcommon.so.0 -> libxkbcommon.so.0.0.0\n",
"\tlibvtkFiltersGeneric-6.3.so.6.3 -> libvtkFiltersGeneric-6.3.so.6.3.0\n",
"\tlibicuio.so.60 -> libicuio.so.60.2\n",
"\tlibgdcmMSFF.so.2.8 -> libgdcmMSFF.so.2.8.4\n",
"\tlibvtkImagingHybridTCL-6.3.so.6.3 -> libvtkImagingHybridTCL-6.3.so.6.3.0\n",
"\tlibcgraph.so.6 -> libcgraph.so.6.0.0\n",
"\tlibxml2.so.2 -> libxml2.so.2.9.4\n",
"\tlibatk-bridge-2.0.so.0 -> libatk-bridge-2.0.so.0.0.0\n",
"\tlibfontenc.so.1 -> libfontenc.so.1.0.0\n",
"\tlibboost_graph.so.1.65.1 -> libboost_graph.so.1.65.1\n",
"\tlibvtkRenderingAnnotation-6.3.so.6.3 -> libvtkRenderingAnnotation-6.3.so.6.3.0\n",
"\tlibva-x11.so.2 -> libva-x11.so.2.100.0\n",
"\tlibvtkRenderingGL2PSPython27D-6.3.so.6.3 -> libvtkRenderingGL2PSPython27D-6.3.so.6.3.0\n",
"\tlibXi.so.6 -> libXi.so.6.1.0\n",
"\tlibkmlbase.so.1 -> libkmlbase.so.1.3.0\n",
"\tlibpangocairo-1.0.so.0 -> libpangocairo-1.0.so.0.4000.14\n",
"\tlibxcb-glx.so.0 -> libxcb-glx.so.0.0.0\n",
"\tlibvtkIOMINC-6.3.so.6.3 -> libvtkIOMINC-6.3.so.6.3.0\n",
"\tlibjackserver.so.0 -> libjackserver.so.0.0.28\n",
"\tlibvtkImagingFourierTCL-6.3.so.6.3 -> libvtkImagingFourierTCL-6.3.so.6.3.0\n",
"\tlibgdk_pixbuf-2.0.so.0 -> libgdk_pixbuf-2.0.so.0.3611.0\n",
"\tlibopencv_rgbd.so.3.2 -> libopencv_rgbd.so.3.2.0\n",
"\tlibquadmath.so.0 -> libquadmath.so.0.0.0\n",
"\tlibopus.so.0 -> libopus.so.0.5.2\n",
"\tlibpq.so.5 -> libpq.so.5.10\n",
"\tlibvtkViewsCorePython27D-6.3.so.6.3 -> libvtkViewsCorePython27D-6.3.so.6.3.0\n",
"\tlibopencv_face.so.3.2 -> libopencv_face.so.3.2.0\n",
"\tlibvtkIOEnSight-6.3.so.6.3 -> libvtkIOEnSight-6.3.so.6.3.0\n",
"\tlibImath-2_2.so.12 -> libImath.so\n",
"\tlibopencv_video.so.3.2 -> libopencv_video.so.3.2.0\n",
"\tlibvtkIOGDALTCL-6.3.so.6.3 -> libvtkIOGDALTCL-6.3.so.6.3.0\n",
"\tlibvtkRenderingFreeTypePython27D-6.3.so.6.3 -> libvtkRenderingFreeTypePython27D-6.3.so.6.3.0\n",
"\tlibvtkIOMINCTCL-6.3.so.6.3 -> libvtkIOMINCTCL-6.3.so.6.3.0\n",
"\tlibvtkVPIC-6.3.so.6.3 -> libvtkVPIC-6.3.so.6.3.0\n",
"\tlibfygm.so.0 -> libfygm.so.0.0.0\n",
"\tlibmpi_usempi_ignore_tkr.so.20 -> libmpi_usempi_ignore_tkr.so.20.10.0\n",
"\tlibk5crypto.so.3 -> libk5crypto.so.3.1\n",
"\tlibvtkIOXdmf2-6.3.so.6.3 -> libvtkIOXdmf2-6.3.so.6.3.0\n",
"\tlibvtkPythonInterpreterPython27D-6.3.so.6.3 -> libvtkPythonInterpreterPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOMovie-6.3.so.6.3 -> libvtkIOMovie-6.3.so.6.3.0\n",
"\tlibxcb-icccm.so.4 -> libxcb-icccm.so.4.0.0\n",
"\tlibvtkImagingStencil-6.3.so.6.3 -> libvtkImagingStencil-6.3.so.6.3.0\n",
"\tlibtk8.6.so -> libtk8.6.so.0\n",
"\tlibvtkInfovisLayoutTCL-6.3.so.6.3 -> libvtkInfovisLayoutTCL-6.3.so.6.3.0\n",
"\tlibvtkIOParallelPython27D-6.3.so.6.3 -> libvtkIOParallelPython27D-6.3.so.6.3.0\n",
"\tlibopencv_reg.so.3.2 -> libopencv_reg.so.3.2.0\n",
"\tlibhdf5_serialhl_fortran.so.100 -> libhdf5_serialhl_fortran.so.100.0.0\n",
"\tlibtheora.so.0 -> libtheora.so.0.3.10\n",
"\tlibvtkInteractionWidgetsPython27D-6.3.so.6.3 -> libvtkInteractionWidgetsPython27D-6.3.so.6.3.0\n",
"\tlibvtkCommonCoreTCL-6.3.so.6.3 -> libvtkCommonCoreTCL-6.3.so.6.3.0\n",
"\tlibXfixes.so.3 -> libXfixes.so.3.1.0\n",
"\tlibvtkViewsInfovisTCL-6.3.so.6.3 -> libvtkViewsInfovisTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersVerdictPython27D-6.3.so.6.3 -> libvtkFiltersVerdictPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOImageTCL-6.3.so.6.3 -> libvtkIOImageTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersExtractionPython27D-6.3.so.6.3 -> libvtkFiltersExtractionPython27D-6.3.so.6.3.0\n",
"\tlibdconf.so.1 -> libdconf.so.1.0.0\n",
"\tlibvtkCommonSystemTCL-6.3.so.6.3 -> libvtkCommonSystemTCL-6.3.so.6.3.0\n",
"\tlibvtkIOFFMPEGPython27D-6.3.so.6.3 -> libvtkIOFFMPEGPython27D-6.3.so.6.3.0\n",
"\tlibvtkWrappingJava-6.3.so.6.3 -> libvtkWrappingJava-6.3.so.6.3.0\n",
"\tlibvtkRenderingAnnotationTCL-6.3.so.6.3 -> libvtkRenderingAnnotationTCL-6.3.so.6.3.0\n",
"\tlibmlx4.so.1 -> libmlx4.so.1.0.17.1\n",
"\tlibnvidia-opticalflow.so.1 -> libnvidia-opticalflow.so.450.57\n",
"\tlibbluray.so.2 -> libbluray.so.2.0.2\n",
"\tlibvtkViewsInfovis-6.3.so.6.3 -> libvtkViewsInfovis-6.3.so.6.3.0\n",
"\tlibvtkFiltersSelectionPython27D-6.3.so.6.3 -> libvtkFiltersSelectionPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingVolumeOpenGLTCL-6.3.so.6.3 -> libvtkRenderingVolumeOpenGLTCL-6.3.so.6.3.0\n",
"\tlibvtkIOParallelNetCDF-6.3.so.6.3 -> libvtkIOParallelNetCDF-6.3.so.6.3.0\n",
"\tlibXinerama.so.1 -> libXinerama.so.1.0.0\n",
"\tlibssl.so.1.1 -> libssl.so.1.1\n",
"\tlibXNVCtrl.so.0 -> libXNVCtrl.so.0.0.0\n",
"\tlibvtkFiltersParallelGeometryTCL-6.3.so.6.3 -> libvtkFiltersParallelGeometryTCL-6.3.so.6.3.0\n",
"\tlibvtkImagingCore-6.3.so.6.3 -> libvtkImagingCore-6.3.so.6.3.0\n",
"\tlibX11.so.6 -> libX11.so.6.3.0\n",
"\tlibvtkLocalExampleTCL-6.3.so.6.3 -> libvtkLocalExampleTCL-6.3.so.6.3.0\n",
"\tlibgccpp.so.1 -> libgccpp.so.1.0.3\n",
"\tlibopen-pal.so.20 -> libopen-pal.so.20.10.1\n",
"\tlibvtkIONetCDFPython27D-6.3.so.6.3 -> libvtkIONetCDFPython27D-6.3.so.6.3.0\n",
"\tlibnvidia-compiler.so.450.57 -> libnvidia-compiler.so.450.57\n",
"\tlibXext.so.6 -> libXext.so.6.4.0\n",
"\tlibcdio.so.17 -> libcdio.so.17.0.0\n",
"\tlibvtkFiltersReebGraphPython27D-6.3.so.6.3 -> libvtkFiltersReebGraphPython27D-6.3.so.6.3.0\n",
"\tlibshine.so.3 -> libshine.so.3.0.1\n",
"\tlibvtkIOLegacyTCL-6.3.so.6.3 -> libvtkIOLegacyTCL-6.3.so.6.3.0\n",
"\tlibopencv_phase_unwrapping.so.3.2 -> libopencv_phase_unwrapping.so.3.2.0\n",
"\tlibIlmImf-2_2.so.22 -> libIlmImf.so\n",
"\tlibboost_unit_test_framework.so.1.65.1 -> libboost_unit_test_framework.so.1.65.1\n",
"\tlibinfinipath.so.4 -> libinfinipath.so.4.0\n",
"\tlibvtkFiltersHyperTree-6.3.so.6.3 -> libvtkFiltersHyperTree-6.3.so.6.3.0\n",
"\tlibnvidia-glsi.so.450.57 -> libnvidia-glsi.so.450.57\n",
"\tlibwebp.so.6 -> libwebp.so.6.0.2\n",
"\tlibQt5PrintSupport.so.5 -> libQt5PrintSupport.so.5.9.5\n",
"\tlibpcrecpp.so.0 -> libpcrecpp.so.0.0.1\n",
"\tlibXrender.so.1 -> libXrender.so.1.3.0\n",
"\tlibvtkInteractionStyleTCL-6.3.so.6.3 -> libvtkInteractionStyleTCL-6.3.so.6.3.0\n",
"\tlibcairo.so.2 -> libcairo.so.2.11510.0\n",
"\tlibQt5Sql.so.5 -> libQt5Sql.so.5.9.5\n",
"\tlibvtkTestingGenericBridge-6.3.so.6.3 -> libvtkTestingGenericBridge-6.3.so.6.3.0\n",
"\tlibvtkFiltersSMP-6.3.so.6.3 -> libvtkFiltersSMP-6.3.so.6.3.0\n",
"\tlibavahi-common.so.3 -> libavahi-common.so.3.5.3\n",
"\tlibopencv_stitching.so.3.2 -> libopencv_stitching.so.3.2.0\n",
"\tlibvtkImagingCorePython27D-6.3.so.6.3 -> libvtkImagingCorePython27D-6.3.so.6.3.0\n",
"\tlibrados.so.2 -> librados.so.2.0.0\n",
"\tlibvtkRenderingMatplotlibTCL-6.3.so.6.3 -> libvtkRenderingMatplotlibTCL-6.3.so.6.3.0\n",
"\tlibsoup-2.4.so.1 -> libsoup-2.4.so.1.8.0\n",
"\tlibopencv_datasets.so.3.2 -> libopencv_datasets.so.3.2.0\n",
"\tlibICE.so.6 -> libICE.so.6.3.0\n",
"\tlibvtkCommonExecutionModel-6.3.so.6.3 -> libvtkCommonExecutionModel-6.3.so.6.3.0\n",
"\tlibepoxy.so.0 -> libepoxy.so.0.0.0\n",
"\tlibvtkDICOMParser-6.3.so.6.3 -> libvtkDICOMParser-6.3.so.6.3.0\n",
"\tlibvtkTestingRenderingPython27D-6.3.so.6.3 -> libvtkTestingRenderingPython27D-6.3.so.6.3.0\n",
"\tlibopencv_fuzzy.so.3.2 -> libopencv_fuzzy.so.3.2.0\n",
"\tlibpangoft2-1.0.so.0 -> libpangoft2-1.0.so.0.4000.14\n",
"\tlibibverbs.so.1 -> libibverbs.so.1.1.17.1\n",
"\tlibodbccr.so.2 -> libodbccr.so.2.0.0\n",
"\tlibvtksys-6.3.so.6.3 -> libvtksys-6.3.so.6.3.0\n",
"\tlibvtkParallelMPI4PyPython27D-6.3.so.6.3 -> libvtkParallelMPI4PyPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOParallelXML-6.3.so.6.3 -> libvtkIOParallelXML-6.3.so.6.3.0\n",
"\tlibxcb-shape.so.0 -> libxcb-shape.so.0.0.0\n",
"\tlibxshmfence.so.1 -> libxshmfence.so.1.0.0\n",
"\tlibnorm.so.1 -> libnorm.so.1.0.0\n",
"\tlibarchive.so.13 -> libarchive.so.13.2.2\n",
"\tlibvtkCommonComputationalGeometryTCL-6.3.so.6.3 -> libvtkCommonComputationalGeometryTCL-6.3.so.6.3.0\n",
"\tlibxcb-shm.so.0 -> libxcb-shm.so.0.0.0\n",
"\tlibpulse-simple.so.0 -> libpulse-simple.so.0.1.1\n",
"\tliblapack_atlas.so.3 -> liblapack_atlas.so.3.10.3\n",
"\tlibvtkIOGeometryPython27D-6.3.so.6.3 -> libvtkIOGeometryPython27D-6.3.so.6.3.0\n",
"\tlibicudata.so.60 -> libicudata.so.60.2\n",
"\tlibgdk-x11-2.0.so.0 -> libgdk-x11-2.0.so.0.2400.32\n",
"\tlibgobject-2.0.so.0 -> libgobject-2.0.so.0.5600.4\n",
"\tlibvtkRenderingParallelPython27D-6.3.so.6.3 -> libvtkRenderingParallelPython27D-6.3.so.6.3.0\n",
"\tlibboost_thread.so.1.65.1 -> libboost_thread.so.1.65.1\n",
"\tlibvtkIOCore-6.3.so.6.3 -> libvtkIOCore-6.3.so.6.3.0\n",
"\tlibopencv_stereo.so.3.2 -> libopencv_stereo.so.3.2.0\n",
"\tlibvtkRenderingExternalTCL-6.3.so.6.3 -> libvtkRenderingExternalTCL-6.3.so.6.3.0\n",
"\tlibvtkIOPostgreSQLPython27D-6.3.so.6.3 -> libvtkIOPostgreSQLPython27D-6.3.so.6.3.0\n",
"\tlibvtkImagingStatistics-6.3.so.6.3 -> libvtkImagingStatistics-6.3.so.6.3.0\n",
"\tlibx264.so.152 -> libx264.so.152\n",
"\tlibboost_stacktrace_backtrace.so.1.65.1 -> libboost_stacktrace_backtrace.so.1.65.1\n",
"\tlibSDL2-2.0.so.0 -> libSDL2-2.0.so.0.8.0\n",
"\tlibQt5Concurrent.so.5 -> libQt5Concurrent.so.5.9.5\n",
"\tlibvtkRenderingGLtoPSTCL-6.3.so.6.3 -> libvtkRenderingGLtoPSTCL-6.3.so.6.3.0\n",
"\tlibopencv_videoio.so.3.2 -> libopencv_videoio.so.3.2.0\n",
"\tlibvtkCommonSystemPython27D-6.3.so.6.3 -> libvtkCommonSystemPython27D-6.3.so.6.3.0\n",
"\tlibEGL_nvidia.so.0 -> libEGL_nvidia.so.450.57\n",
"\tlibvtkRenderingFreeTypeFontConfig-6.3.so.6.3 -> libvtkRenderingFreeTypeFontConfig-6.3.so.6.3.0\n",
"\tlibvtkViewsInfovisPython27D-6.3.so.6.3 -> libvtkViewsInfovisPython27D-6.3.so.6.3.0\n",
"\tlibvtkCommonTransformsPython27D-6.3.so.6.3 -> libvtkCommonTransformsPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOXMLParser-6.3.so.6.3 -> libvtkIOXMLParser-6.3.so.6.3.0\n",
"\tlibcuda.so.1 -> libcuda.so.450.57\n",
"\tlibvtkFiltersParallelImaging-6.3.so.6.3 -> libvtkFiltersParallelImaging-6.3.so.6.3.0\n",
"\tlibip4tc.so.0 -> libip4tc.so.0.1.0\n",
"\tlibvtkRenderingLabelPython27D-6.3.so.6.3 -> libvtkRenderingLabelPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersModelingTCL-6.3.so.6.3 -> libvtkFiltersModelingTCL-6.3.so.6.3.0\n",
"\tlibgfortran.so.4 -> libgfortran.so.4.0.0\n",
"\tlibvtkIOLSDyna-6.3.so.6.3 -> libvtkIOLSDyna-6.3.so.6.3.0\n",
"\tlibvtkDomainsChemistryPython27D-6.3.so.6.3 -> libvtkDomainsChemistryPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOInfovisPython27D-6.3.so.6.3 -> libvtkIOInfovisPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingMatplotlib-6.3.so.6.3 -> libvtkRenderingMatplotlib-6.3.so.6.3.0\n",
"\tlibminizip.so.1 -> libminizip.so.1.0.0\n",
"\tlibgdcmCommon.so.2.8 -> libgdcmCommon.so.2.8.4\n",
"\tlibvtkIOPostgreSQL-6.3.so.6.3 -> libvtkIOPostgreSQL-6.3.so.6.3.0\n",
"\tlibopencv_shape.so.3.2 -> libopencv_shape.so.3.2.0\n",
"\tlibvtkImagingHybrid-6.3.so.6.3 -> libvtkImagingHybrid-6.3.so.6.3.0\n",
"\tlibvtkParallelMPI-6.3.so.6.3 -> libvtkParallelMPI-6.3.so.6.3.0\n",
"\tlibhdf5_serial_hl.so.100 -> libhdf5_serial_hl.so.100.0.0\n",
"\tlibvtkIOVPICTCL-6.3.so.6.3 -> libvtkIOVPICTCL-6.3.so.6.3.0\n",
"\tlibiec61883.so.0 -> libiec61883.so.0.1.1\n",
"\tlibgomp.so.1 -> libgomp.so.1.0.0\n",
"\tlibvtkViewsContext2D-6.3.so.6.3 -> libvtkViewsContext2D-6.3.so.6.3.0\n",
"\tlibXdamage.so.1 -> libXdamage.so.1.1.0\n",
"\tlibvtkRenderingVolumePython27D-6.3.so.6.3 -> libvtkRenderingVolumePython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingLOD-6.3.so.6.3 -> libvtkRenderingLOD-6.3.so.6.3.0\n",
"\tlibgdcmjpeg8.so.2.8 -> libgdcmjpeg8.so.2.8.4\n",
"\tlibhwloc.so.5 -> libhwloc.so.5.7.6\n",
"\tlibkrb5support.so.0 -> libkrb5support.so.0.1\n",
"\tlibfribidi.so.0 -> libfribidi.so.0.3.6\n",
"\tlibvtkIOPostgreSQLTCL-6.3.so.6.3 -> libvtkIOPostgreSQLTCL-6.3.so.6.3.0\n",
"\tlibxcb-dri3.so.0 -> libxcb-dri3.so.0.0.0\n",
"\tlibvtkFiltersTexturePython27D-6.3.so.6.3 -> libvtkFiltersTexturePython27D-6.3.so.6.3.0\n",
"\tlibQt5Network.so.5 -> libQt5Network.so.5.9.5\n",
"\tlibvtkFiltersSMPPython27D-6.3.so.6.3 -> libvtkFiltersSMPPython27D-6.3.so.6.3.0\n",
"\tlibvtkFiltersFlowPathsTCL-6.3.so.6.3 -> libvtkFiltersFlowPathsTCL-6.3.so.6.3.0\n",
"\tlibvtkIOMySQL-6.3.so.6.3 -> libvtkIOMySQL-6.3.so.6.3.0\n",
"\tlibrest-0.7.so.0 -> librest-0.7.so.0.0.0\n",
"\tlibopencv_flann.so.3.2 -> libopencv_flann.so.3.2.0\n",
"\tlibvtkIOGeometry-6.3.so.6.3 -> libvtkIOGeometry-6.3.so.6.3.0\n",
"\tlibxcb-xkb.so.1 -> libxcb-xkb.so.1.0.0\n",
"\tlibvtkImagingMorphological-6.3.so.6.3 -> libvtkImagingMorphological-6.3.so.6.3.0\n",
"\tlibpostproc.so.54 -> libpostproc.so.54.7.100\n",
"\tlibraw1394.so.11 -> libraw1394.so.11.1.0\n",
"\tlibvtkCommonCorePython27D-6.3.so.6.3 -> libvtkCommonCorePython27D-6.3.so.6.3.0\n",
"\tlibvtkPythonInterpreter-6.3.so.6.3 -> libvtkPythonInterpreter-6.3.so.6.3.0\n",
"\tlibpaper.so.1 -> libpaper.so.1.1.2\n",
"\tlibvtkIOXMLParserTCL-6.3.so.6.3 -> libvtkIOXMLParserTCL-6.3.so.6.3.0\n",
"\tlibvtkIOMPIParallelPython27D-6.3.so.6.3 -> libvtkIOMPIParallelPython27D-6.3.so.6.3.0\n",
"\tlibssl.so.1.0.0 -> libssl.so.1.0.0\n",
"\tlibpcre2-posix.so.2 -> libpcre2-posix.so.2.0.0\n",
"\tlibvtkFiltersSourcesTCL-6.3.so.6.3 -> libvtkFiltersSourcesTCL-6.3.so.6.3.0\n",
"\tlibvtkTestingRenderingTCL-6.3.so.6.3 -> libvtkTestingRenderingTCL-6.3.so.6.3.0\n",
"\tlibicutu.so.60 -> libicutu.so.60.2\n",
"\tlibspatialite.so.7 -> libspatialite.so.7.1.0\n",
"\tlibgraphite2.so.3 -> libgraphite2.so.3.0.1\n",
"\tlibprotobuf.so.10 -> libprotobuf.so.10.0.0\n",
"\tlibsensors.so.4 -> libsensors.so.4.4.0\n",
"\tlibsoup-gnome-2.4.so.1 -> libsoup-gnome-2.4.so.1.8.0\n",
"\tlibGLESv2_nvidia.so.2 -> libGLESv2_nvidia.so.450.57\n",
"\tlibitm.so.1 -> libitm.so.1.0.0\n",
"\tlibQt5Test.so.5 -> libQt5Test.so.5.9.5\n",
"\tlibmpx.so.2 -> libmpx.so.2.0.1\n",
"\tlibvtkFiltersParallelMPITCL-6.3.so.6.3 -> libvtkFiltersParallelMPITCL-6.3.so.6.3.0\n",
"\tlibgphoto2.so.6 -> libgphoto2.so.6.0.0\n",
"\tlibpcsclite.so.1 -> libpcsclite.so.1.0.0\n",
"\tlibvtkParallelCore-6.3.so.6.3 -> libvtkParallelCore-6.3.so.6.3.0\n",
"\tlibIex-2_2.so.12 -> libIex.so\n",
"\tlibavdevice.so.57 -> libavdevice.so.57.10.100\n",
"\tlibvtkRenderingTkTCL-6.3.so.6.3 -> libvtkRenderingTkTCL-6.3.so.6.3.0\n",
"\tlibflite_cmu_time_awb.so.1 -> libflite_cmu_time_awb.so.2.1\n",
"\tlibgsm.so.1 -> libgsm.so.1.0.12\n",
"\tlibvtkRenderingOpenGL-6.3.so.6.3 -> libvtkRenderingOpenGL-6.3.so.6.3.0\n",
"\tlibinput.so.10 -> libinput.so.10.13.0\n",
"\tlibXau.so.6 -> libXau.so.6.0.0\n",
"\tlibxcb-render-util.so.0 -> libxcb-render-util.so.0.0.0\n",
"\tlibvtkIOXML-6.3.so.6.3 -> libvtkIOXML-6.3.so.6.3.0\n",
"\tlibBlocksRuntime.so.0 -> libBlocksRuntime.so.0.0.0\n",
"\tlibxcb-dri2.so.0 -> libxcb-dri2.so.0.0.0\n",
"\tlibvtkFiltersParallelMPIPython27D-6.3.so.6.3 -> libvtkFiltersParallelMPIPython27D-6.3.so.6.3.0\n",
"\tlibxcb-util.so.1 -> libxcb-util.so.1.0.0\n",
"\tlibopencv_imgcodecs.so.3.2 -> libopencv_imgcodecs.so.3.2.0\n",
"\tlibxerces-c-3.2.so -> libxerces-c-3.2.so\n",
"\tlibvtkParallelCorePython27D-6.3.so.6.3 -> libvtkParallelCorePython27D-6.3.so.6.3.0\n",
"\tlibvtkIOParallelExodusTCL-6.3.so.6.3 -> libvtkIOParallelExodusTCL-6.3.so.6.3.0\n",
"\tlibhdf5_serial_fortran.so.100 -> libhdf5_serial_fortran.so.100.0.1\n",
"\tlibvtkIOExodusTCL-6.3.so.6.3 -> libvtkIOExodusTCL-6.3.so.6.3.0\n",
"\tlibavutil.so.55 -> libavutil.so.55.78.100\n",
"\tlibmpg123.so.0 -> libmpg123.so.0.44.8\n",
"\tlibnvoptix.so.1 -> libnvoptix.so.450.57\n",
"\tlibavahi-client.so.3 -> libavahi-client.so.3.2.9\n",
"\tlibtesseract.so.4 -> libtesseract.so.4.0.0\n",
"\tlibvtkWrappingPython27Core-6.3.so.6.3 -> libvtkWrappingPython27Core-6.3.so.6.3.0\n",
"\tlibpipeline.so.1 -> libpipeline.so.1.5.0\n",
"\tlibpixman-1.so.0 -> libpixman-1.so.0.34.0\n",
"\tlibwavpack.so.1 -> libwavpack.so.1.2.0\n",
"\tlibvtkCommonMathPython27D-6.3.so.6.3 -> libvtkCommonMathPython27D-6.3.so.6.3.0\n",
"\tlibxvidcore.so.4 -> libxvidcore.so.4.3\n",
"\tlibswscale.so.4 -> libswscale.so.4.8.100\n",
"\tlibpulse.so.0 -> libpulse.so.0.20.2\n",
"\tlibpython3.6m.so.1.0 -> libpython3.6m.so.1.0\n",
"\tlibtcmalloc_and_profiler.so.4 -> libtcmalloc_and_profiler.so.4.3.0\n",
"\tlibsndio.so.6.1 -> libsndio.so.6.1\n",
"\tlibvtkIOODBCPython27D-6.3.so.6.3 -> libvtkIOODBCPython27D-6.3.so.6.3.0\n",
"\tlibopencv_calib3d.so.3.2 -> libopencv_calib3d.so.3.2.0\n",
"\tlibvtkRenderingFreeTypeTCL-6.3.so.6.3 -> libvtkRenderingFreeTypeTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersTextureTCL-6.3.so.6.3 -> libvtkFiltersTextureTCL-6.3.so.6.3.0\n",
"\tlibopencv_bioinspired.so.3.2 -> libopencv_bioinspired.so.3.2.0\n",
"\tlibprofiler.so.0 -> libprofiler.so.0.4.8\n",
"\tlibxcb-keysyms.so.1 -> libxcb-keysyms.so.1.0.0\n",
"\tlibvtkImagingStencilTCL-6.3.so.6.3 -> libvtkImagingStencilTCL-6.3.so.6.3.0\n",
"\tlibcaca++.so.0 -> libcaca++.so.0.99.19\n",
"\tlibass.so.9 -> libass.so.9.0.2\n",
"\tlibboost_atomic.so.1.65.1 -> libboost_atomic.so.1.65.1\n",
"\tlibmpi.so.20 -> libmpi.so.20.10.1\n",
"\tlibboost_math_c99l.so.1.65.1 -> libboost_math_c99l.so.1.65.1\n",
"\tlibcilkrts.so.5 -> libcilkrts.so.5.0.0\n",
"\tlibvtkParallelCoreTCL-6.3.so.6.3 -> libvtkParallelCoreTCL-6.3.so.6.3.0\n",
"\tlibxkbfile.so.1 -> libxkbfile.so.1.0.2\n",
"\tlibgphoto2_port.so.12 -> libgphoto2_port.so.12.0.0\n",
"\tlibvtkImagingGeneralTCL-6.3.so.6.3 -> libvtkImagingGeneralTCL-6.3.so.6.3.0\n",
"\tlibkmlengine.so.1 -> libkmlengine.so.1.3.0\n",
"\tlibvtkIOFFMPEG-6.3.so.6.3 -> libvtkIOFFMPEG-6.3.so.6.3.0\n",
"\tlibvtkFiltersHybrid-6.3.so.6.3 -> libvtkFiltersHybrid-6.3.so.6.3.0\n",
"\tlibvtkCommonDataModel-6.3.so.6.3 -> libvtkCommonDataModel-6.3.so.6.3.0\n",
"\tlibmysofa.so.0 -> libmysofa.so.0.5.1\n",
"\tlibdrm_nouveau.so.2 -> libdrm_nouveau.so.2.0.0\n",
"\tlibvtkCommonCore-6.3.so.6.3 -> libvtkCommonCore-6.3.so.6.3.0\n",
"\tlibvtkFiltersGeneral-6.3.so.6.3 -> libvtkFiltersGeneral-6.3.so.6.3.0\n",
"\tlibvtkIOParallelNetCDFTCL-6.3.so.6.3 -> libvtkIOParallelNetCDFTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersParallelImagingTCL-6.3.so.6.3 -> libvtkFiltersParallelImagingTCL-6.3.so.6.3.0\n",
"\tlibvtkIOInfovis-6.3.so.6.3 -> libvtkIOInfovis-6.3.so.6.3.0\n",
"\tlibdrm_amdgpu.so.1 -> libdrm_amdgpu.so.1.0.0\n",
"\tlibopencv_ml.so.3.2 -> libopencv_ml.so.3.2.0\n",
"\tlibopencv_xphoto.so.3.2 -> libopencv_xphoto.so.3.2.0\n",
"\tlibvtkRenderingContextOpenGLPython27D-6.3.so.6.3 -> libvtkRenderingContextOpenGLPython27D-6.3.so.6.3.0\n",
"\tlibcblas.so.3 -> libcblas.so.3.10.3\n",
"\tlibQt5Gui.so.5 -> libQt5Gui.so.5.9.5\n",
"\tlibvtkParallelMPITCL-6.3.so.6.3 -> libvtkParallelMPITCL-6.3.so.6.3.0\n",
"\tlibodbcinst.so.2 -> libodbcinst.so.2.0.0\n",
"\tlibopencv_viz.so.3.2 -> libopencv_viz.so.3.2.0\n",
"\tlibQt5Xml.so.5 -> libQt5Xml.so.5.9.5\n",
"\tlibQt5Widgets.so.5 -> libQt5Widgets.so.5.9.5\n",
"\tlibgd.so.3 -> libgd.so.3.0.5\n",
"\tlibvtkLocalExample-6.3.so.6.3 -> libvtkLocalExample-6.3.so.6.3.0\n",
"\tlibdatrie.so.1 -> libdatrie.so.1.3.3\n",
"\tlibssh-gcrypt.so.4 -> libssh-gcrypt.so.4.5.0\n",
"\tlibxslt.so.1 -> libxslt.so.1.1.29\n",
"\tlibpciaccess.so.0 -> libpciaccess.so.0.11.1\n",
"\tlibvtkIOXMLParserPython27D-6.3.so.6.3 -> libvtkIOXMLParserPython27D-6.3.so.6.3.0\n",
"\tlibvtkInteractionStylePython27D-6.3.so.6.3 -> libvtkInteractionStylePython27D-6.3.so.6.3.0\n",
"\tlibva.so.2 -> libva.so.2.100.0\n",
"\tlibharfbuzz.so.0 -> libharfbuzz.so.0.10702.0\n",
"\tlibvtkRenderingExternal-6.3.so.6.3 -> libvtkRenderingExternal-6.3.so.6.3.0\n",
"\tlibIlmThread-2_2.so.12 -> libIlmThread.so\n",
"\tlibrsvg-2.so.2 -> librsvg-2.so.2.40.20\n",
"\tlibpopt.so.0 -> libpopt.so.0.0.0\n",
"\tlibvtkImagingFourier-6.3.so.6.3 -> libvtkImagingFourier-6.3.so.6.3.0\n",
"\tlibQt5XcbQpa.so.5 -> libQt5XcbQpa.so.5.9.5\n",
"\tlibopenjp2.so.7 -> libopenjp2.so.2.3.0\n",
"\tlibpgm-5.2.so.0 -> libpgm-5.2.so.0.0.122\n",
"\tlibvtkInfovisBoostGraphAlgorithms-6.3.so.6.3 -> libvtkInfovisBoostGraphAlgorithms-6.3.so.6.3.0\n",
"\tlibvtkViewsCoreTCL-6.3.so.6.3 -> libvtkViewsCoreTCL-6.3.so.6.3.0\n",
"\tlibfyba.so.0 -> libfyba.so.0.0.0\n",
"\tlibXpm.so.4 -> libXpm.so.4.11.0\n",
"\tlibcrypto.so.1.1 -> libcrypto.so.1.1\n",
"\tlibjsoncpp.so.1 -> libjsoncpp.so.1.7.4\n",
"\tlibmca_common_sm.so.20 -> libmca_common_sm.so.20.10.1\n",
"\tlibflite_cmu_us_rms.so.1 -> libflite_cmu_us_rms.so.2.1\n",
"\tlibpcre2-32.so.0 -> libpcre2-32.so.0.7.0\n",
"\tlibmysqlclient.so.20 -> libmysqlclient.so.20.3.18\n",
"\tlibvtkIOCoreTCL-6.3.so.6.3 -> libvtkIOCoreTCL-6.3.so.6.3.0\n",
"\tlibboost_mpi_python3-py36.so.1.65.1 -> libboost_mpi_python3.so\n",
"\tlibopencv_saliency.so.3.2 -> libopencv_saliency.so.3.2.0\n",
"\tlibmpi_cxx.so.20 -> libmpi_cxx.so.20.10.0\n",
"\tlibvtkIOGeoJSON-6.3.so.6.3 -> libvtkIOGeoJSON-6.3.so.6.3.0\n",
"\tlibvtkIOLegacyPython27D-6.3.so.6.3 -> libvtkIOLegacyPython27D-6.3.so.6.3.0\n",
"\tlibnetcdf.so.13 -> libnetcdf.so.13\n",
"\tlibcrypto.so.1.0.0 -> libcrypto.so.1.0.0\n",
"\tlibzvbi.so.0 -> libzvbi.so.0.13.2\n",
"\tliblcms2.so.2 -> liblcms2.so.2.0.8\n",
"\tlibflite_cmu_grapheme_lang.so.1 -> libflite_cmu_grapheme_lang.so.2.1\n",
"\tlibvtkInteractionStyle-6.3.so.6.3 -> libvtkInteractionStyle-6.3.so.6.3.0\n",
"\tlibcurl.so.4 -> libcurl.so.4.5.0\n",
"\tlibOpenCL.so.1 -> libOpenCL.so.1.0.0\n",
"\tlibvtkRenderingVolume-6.3.so.6.3 -> libvtkRenderingVolume-6.3.so.6.3.0\n",
"\tlibvtkImagingMathPython27D-6.3.so.6.3 -> libvtkImagingMathPython27D-6.3.so.6.3.0\n",
"\tlibubsan.so.0 -> libubsan.so.0.0.0\n",
"\tlibzvbi-chains.so.0 -> libzvbi-chains.so.0.0.0\n",
"\tlibrdmacm.so.1 -> librdmacm.so.1.1.17.1\n",
"\tlibGLESv1_CM.so.1 -> libGLESv1_CM.so.1.0.0\n",
"\tlibvtkChartsCoreTCL-6.3.so.6.3 -> libvtkChartsCoreTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersVerdict-6.3.so.6.3 -> libvtkFiltersVerdict-6.3.so.6.3.0\n",
"\tlibfontconfig.so.1 -> libfontconfig.so.1.10.1\n",
"\tlibatspi.so.0 -> libatspi.so.0.0.1\n",
"\tlibgirepository-1.0.so.1 -> libgirepository-1.0.so.1.0.0\n",
"\tlibnvidia-opencl.so.1 -> libnvidia-opencl.so.450.57\n",
"\tlibcairo-gobject.so.2 -> libcairo-gobject.so.2.11510.0\n",
"\tlibvtkRenderingLIC-6.3.so.6.3 -> libvtkRenderingLIC-6.3.so.6.3.0\n",
"\tlibvtkFiltersStatisticsTCL-6.3.so.6.3 -> libvtkFiltersStatisticsTCL-6.3.so.6.3.0\n",
"\tlibGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0\n",
"\tlibvtkIOExodus-6.3.so.6.3 -> libvtkIOExodus-6.3.so.6.3.0\n",
"\tlibtcl8.6.so -> libtcl8.6.so.0\n",
"\tlibvtkRenderingOpenGLTCL-6.3.so.6.3 -> libvtkRenderingOpenGLTCL-6.3.so.6.3.0\n",
"\tlibuv.so.1 -> libuv.so.1.0.0\n",
"\tlibvtkIOMySQLTCL-6.3.so.6.3 -> libvtkIOMySQLTCL-6.3.so.6.3.0\n",
"\tlibflite_cmu_us_kal16.so.1 -> libflite_cmu_us_kal16.so.2.1\n",
"\tlibvtkIOPLY-6.3.so.6.3 -> libvtkIOPLY-6.3.so.6.3.0\n",
"\tlibboost_stacktrace_basic.so.1.65.1 -> libboost_stacktrace_basic.so.1.65.1\n",
"\tlibvtkRenderingVolumeAMR-6.3.so.6.3 -> libvtkRenderingVolumeAMR-6.3.so.6.3.0\n",
"\tlibcdio_cdda.so.2 -> libcdio_cdda.so.2.0.0\n",
"\tlibmca_common_libfabric.so.20 -> libmca_common_libfabric.so.20.10.0\n",
"\tlibvtkmetaio-6.3.so.6.3 -> libvtkmetaio-6.3.so.6.3.0\n",
"\tlibarpack.so.2 -> libarpack.so.2.0.0\n",
"\tlibtcmalloc_debug.so.4 -> libtcmalloc_debug.so.4.3.0\n",
"\tlibopencv_aruco.so.3.2 -> libopencv_aruco.so.3.2.0\n",
"\tlibrubberband.so.2 -> librubberband.so.2.1.0\n",
"\tlibopencv_videostab.so.3.2 -> libopencv_videostab.so.3.2.0\n",
"\tlibvtkIOXdmf2Python27D-6.3.so.6.3 -> libvtkIOXdmf2Python27D-6.3.so.6.3.0\n",
"\tlibcurl-gnutls.so.4 -> libcurl-gnutls.so.4.5.0\n",
"\tlibavresample.so.3 -> libavresample.so.3.7.0\n",
"\tlibgudev-1.0.so.0 -> libgudev-1.0.so.0.2.0\n",
"\tlibvtkInteractionImage-6.3.so.6.3 -> libvtkInteractionImage-6.3.so.6.3.0\n",
"\tlibboost_numpy3-py36.so.1.65.1 -> libboost_numpy3.so\n",
"\tlibtheoradec.so.1 -> libtheoradec.so.1.1.4\n",
"\tlibvtkxdmf2-6.3.so.6.3 -> libvtkxdmf2-6.3.so.6.3.0\n",
"\tlibdouble-conversion.so.1 -> libdouble-conversion.so.1.0\n",
"\tlibvtkRenderingVolumeAMRTCL-6.3.so.6.3 -> libvtkRenderingVolumeAMRTCL-6.3.so.6.3.0\n",
"\tlibvtkRenderingParallelTCL-6.3.so.6.3 -> libvtkRenderingParallelTCL-6.3.so.6.3.0\n",
"\tlibvtkFiltersVerdictTCL-6.3.so.6.3 -> libvtkFiltersVerdictTCL-6.3.so.6.3.0\n",
"\tlibzmq.so.5 -> libzmq.so.5.1.5\n",
"\tlibvtkexoIIc-6.3.so.6.3 -> libvtkexoIIc-6.3.so.6.3.0\n",
"\tlibvtkIOImportPython27D-6.3.so.6.3 -> libvtkIOImportPython27D-6.3.so.6.3.0\n",
"\tlibfftw3_threads.so.3 -> libfftw3_threads.so.3.5.7\n",
"\tlibexslt.so.0 -> libexslt.so.0.8.17\n",
"\tlibvtkFiltersParallelGeometry-6.3.so.6.3 -> libvtkFiltersParallelGeometry-6.3.so.6.3.0\n",
"\tlibpcre16.so.3 -> libpcre16.so.3.13.3\n",
"\tlibswresample.so.2 -> libswresample.so.2.9.100\n",
"\tlibboost_python3-py36.so.1.65.1 -> libboost_python3.so\n",
"\tlibopenal.so.1 -> libopenal.so.1.18.2\n",
"\tlibthai.so.0 -> libthai.so.0.3.0\n",
"\tlibmpdec.so.2 -> libmpdec.so.2.4.2\n",
"\tlibvtkFiltersStatistics-6.3.so.6.3 -> libvtkFiltersStatistics-6.3.so.6.3.0\n",
"\tlibXfont2.so.2 -> libXfont2.so.2.0.0\n",
"\tlibexpatw.so.1 -> libexpatw.so.1.6.7\n",
"\tlibopencv_bgsegm.so.3.2 -> libopencv_bgsegm.so.3.2.0\n",
"\tlibvtkFiltersSourcesPython27D-6.3.so.6.3 -> libvtkFiltersSourcesPython27D-6.3.so.6.3.0\n",
"\tlibvtkRenderingVolumeOpenGL-6.3.so.6.3 -> libvtkRenderingVolumeOpenGL-6.3.so.6.3.0\n",
"\tlibvtkChartsCorePython27D-6.3.so.6.3 -> libvtkChartsCorePython27D-6.3.so.6.3.0\n",
"\tlibopencv_hdf.so.3.2 -> libopencv_hdf.so.3.2.0\n",
"\tlibogg.so.0 -> libogg.so.0.8.2\n",
"\tlibobjc.so.4 -> libobjc.so.4.0.0\n",
"\tlibvtkIOLSDynaTCL-6.3.so.6.3 -> libvtkIOLSDynaTCL-6.3.so.6.3.0\n",
"\tlibvtkImagingMorphologicalTCL-6.3.so.6.3 -> libvtkImagingMorphologicalTCL-6.3.so.6.3.0\n",
"\tlibvtkIOParallelXMLPython27D-6.3.so.6.3 -> libvtkIOParallelXMLPython27D-6.3.so.6.3.0\n",
"\tlibicuuc.so.60 -> libicuuc.so.60.2\n",
"\tlibboost_math_tr1f.so.1.65.1 -> libboost_math_tr1f.so.1.65.1\n",
"\tlibgthread-2.0.so.0 -> libgthread-2.0.so.0.5600.4\n",
"\tlibmpi_usempif08.so.20 -> libmpi_usempif08.so.20.10.0\n",
"\tlibvtkFiltersPythonPython27D-6.3.so.6.3 -> libvtkFiltersPythonPython27D-6.3.so.6.3.0\n",
"\tlibgtk-3.so.0 -> libgtk-3.so.0.2200.30\n",
"\tlibjson-glib-1.0.so.0 -> libjson-glib-1.0.so.0.400.2\n",
"\tlibfftw3.so.3 -> libfftw3.so.3.5.7\n",
"\tlibunwind-x86_64.so.8 -> libunwind-x86_64.so.8.0.1\n",
"\tlibxcb.so.1 -> libxcb.so.1.1.0\n",
"\tlibwebpdemux.so.2 -> libwebpdemux.so.2.0.3\n",
"\tlibopencv_optflow.so.3.2 -> libopencv_optflow.so.3.2.0\n",
"\tlibgdcmIOD.so.2.8 -> libgdcmIOD.so.2.8.4\n",
"\tlibvtkFiltersExtraction-6.3.so.6.3 -> libvtkFiltersExtraction-6.3.so.6.3.0\n",
"\tlibvtkIOMySQLPython27D-6.3.so.6.3 -> libvtkIOMySQLPython27D-6.3.so.6.3.0\n",
"\tlibopencv_highgui.so.3.2 -> libopencv_highgui.so.3.2.0\n",
"\tlibgeotiff.so.2 -> libgeotiff.so.2.1.2\n",
"\tlibnvidia-eglcore.so.450.57 -> libnvidia-eglcore.so.450.57\n",
"\tlibicui18n.so.60 -> libicui18n.so.60.2\n",
"\tlibvtkParallelMPI4Py-6.3.so.6.3 -> libvtkParallelMPI4Py-6.3.so.6.3.0\n",
"\tlibompitrace.so.20 -> libompitrace.so.20.10.0\n",
"\tlibvorbisfile.so.3 -> libvorbisfile.so.3.3.7\n",
"\tlibvtkImagingFourierPython27D-6.3.so.6.3 -> libvtkImagingFourierPython27D-6.3.so.6.3.0\n",
"\tlibvtkIOImport-6.3.so.6.3 -> libvtkIOImport-6.3.so.6.3.0\n",
"\tliblua5.1.so.0 -> liblua5.1.so.0.0.0\n",
"\tlibyaml-0.so.2 -> libyaml-0.so.2.0.5\n",
"\tlibluajit-5.1.so.2 -> libluajit-5.1.so.2.1.0\n",
"\tliblua5.1-c++.so.0 -> liblua5.1-c++.so.0.0.0\n",
"\tlibsundials_nvecserial.so.2 -> libsundials_nvecserial.so.2.7.0\n",
"\tlibbtf.so.1 -> libbtf.so.1.2.6\n",
"\tlibcolamd.so.2 -> libcolamd.so.2.9.6\n",
"\tlibsuitesparseconfig.so.5 -> libsuitesparseconfig.so.5.1.2\n",
"\tlibsundials_fnvecserial.so.2 -> libsundials_fnvecserial.so.2.7.0\n",
"\tlibklu.so.1 -> libklu.so.1.3.8\n",
"\tlibsundials_cvode.so.2 -> libsundials_cvode.so.2.9.0\n",
"\tlibamd.so.2 -> libamd.so.2.4.6\n",
"\tlibdb-5.3.so -> libdb-5.3.so\n",
"\tlibzstd.so.1 -> libzstd.so.1.3.3\n",
"\tlibtasn1.so.6 -> libtasn1.so.6.5.5\n",
"\tlibp11-kit.so.0 -> libp11-kit.so.0.3.0\n",
"\tlibnettle.so.6 -> libnettle.so.6.4\n",
"\tlibmenuw.so.5 -> libmenuw.so.5.9\n",
"\tlibform.so.5 -> libform.so.5.9\n",
"\tlibgnutls.so.30 -> libgnutls.so.30.14.10\n",
"\tlibhogweed.so.4 -> libhogweed.so.4.4\n",
"\tlibunistring.so.2 -> libunistring.so.2.1.0\n",
"\tlibdebconfclient.so.0 -> libdebconfclient.so.0.0.0\n",
"\tlibgmp.so.10 -> libgmp.so.10.3.2\n",
"\tlibstdc++.so.6 -> libstdc++.so.6.0.25\n",
"\tlibpanelw.so.5 -> libpanelw.so.5.9\n",
"\tliblz4.so.1 -> liblz4.so.1.7.1\n",
"\tlibapt-private.so.0.0 -> libapt-private.so.0.0.0\n",
"\tlibsemanage.so.1 -> libsemanage.so.1\n",
"\tlibapt-pkg.so.5.0 -> libapt-pkg.so.5.0.2\n",
"\tlibpanel.so.5 -> libpanel.so.5.9\n",
"\tlibtic.so.5 -> libtic.so.5.9\n",
"\tlibidn2.so.0 -> libidn2.so.0.3.3\n",
"\tlibformw.so.5 -> libformw.so.5.9\n",
"\tlibmenu.so.5 -> libmenu.so.5.9\n",
"\tlibffi.so.6 -> libffi.so.6.0.4\n",
"\tlibpcreposix.so.3 -> libpcreposix.so.3.13.3\n",
"/lib32:\n",
"\tlibnss_nisplus.so.2 -> libnss_nisplus-2.27.so\n",
"\tlibcrypt.so.1 -> libcrypt-2.27.so\n",
"\tlibdl.so.2 -> libdl-2.27.so\n",
"/sbin/ldconfig.real: /lib32/ld-2.27.so is the dynamic linker, ignoring\n",
"\n",
"\tld-linux.so.2 -> ld-2.27.so\n",
"\tlibcidn.so.1 -> libcidn-2.27.so\n",
"\tlibpthread.so.0 -> libpthread-2.27.so\n",
"\tlibnss_hesiod.so.2 -> libnss_hesiod-2.27.so\n",
"\tlibpcprofile.so -> libpcprofile.so\n",
"\tlibutil.so.1 -> libutil-2.27.so\n",
"\tlibnss_compat.so.2 -> libnss_compat-2.27.so\n",
"\tlibnss_nis.so.2 -> libnss_nis-2.27.so\n",
"\tlibanl.so.1 -> libanl-2.27.so\n",
"\tlibc.so.6 -> libc-2.27.so\n",
"\tlibnsl.so.1 -> libnsl-2.27.so\n",
"\tlibnss_dns.so.2 -> libnss_dns-2.27.so\n",
"\tlibrt.so.1 -> librt-2.27.so\n",
"\tlibmemusage.so -> libmemusage.so\n",
"\tlibnss_files.so.2 -> libnss_files-2.27.so\n",
"\tlibm.so.6 -> libm-2.27.so\n",
"\tlibBrokenLocale.so.1 -> libBrokenLocale-2.27.so\n",
"\tlibSegFault.so -> libSegFault.so\n",
"\tlibthread_db.so.1 -> libthread_db-1.0.so\n",
"\tlibresolv.so.2 -> libresolv-2.27.so\n",
"/usr/lib32:\n",
"\tlibstdc++.so.6 -> libstdc++.so.6.0.25\n",
"\tlibgcc_s.so.1 -> libgcc_s.so.1\n",
"/lib:\n",
"/usr/lib:\n",
"\tlibBLTlite.2.5.so.8.6 -> libBLTlite.2.5.so.8.6\n",
"\tlibnvidia-gtk3.so.450.51.06 -> libnvidia-gtk3.so.450.51.06\n",
"\tlibBLT.2.5.so.8.6 -> libBLT.2.5.so.8.6\n",
"\tlibarmadillo.so.8 -> libarmadillo.so.8.400.0\n",
"\tlibdfalt.so.0 -> libdfalt.so.0.0.0\n",
"\tlibann.so.0 -> libann.so.0.0.0\n",
"\tlibgdal.so.20 -> libgdal.so.20.3.2\n",
"\tlibogdi.so.3.2 -> libogdi.so.3.2\n",
"\tlibvpf.so.3.2 -> libvpf.so.3.2\n",
"\tlibmfhdfalt.so.0 -> libmfhdfalt.so.0.0.0\n",
"\tlibnvidia-gtk2.so.450.51.06 -> libnvidia-gtk2.so.450.51.06\n",
"\tlibcln.so.6 -> libcln.so.6.0.4\n",
"\tlibginac.so.6 -> libginac.so.6.2.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GzInNwTb-dvn"
},
"source": [
"2. Install JEMRIS onto the virtual machine. After this step, JEMRIS can be called from the command line with various options: \n",
"* Generate sequence plots from JEMRIS .xml format\n",
"* Generate pulseq file from JEMRIS .xml format\n",
"* Perform simulation using information and references stored in \"simu.xml\"\n",
"* etc... (see http://www.jemris.org/ug_command_line.html) \n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "mSFAMSR6Qq_p",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 106
},
"outputId": "1bacad83-910c-41fb-deee-749471ced7df"
},
"source": [
"# Install JEMRIS \n",
"!sudo dpkg -i jemris-2.8.3-Linux.deb"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Selecting previously unselected package jemris.\n",
"(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 144693 files and directories currently installed.)\n",
"Preparing to unpack jemris-2.8.3-Linux.deb ...\n",
"Unpacking jemris (2.8.3) ...\n",
"Setting up jemris (2.8.3) ...\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_vB73SRPABXu"
},
"source": [
"Call JEMRIS command to check that it works:"
]
},
{
"cell_type": "code",
"metadata": {
"id": "I3b5cYSmZYV9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 355
},
"outputId": "059e32a4-6dbe-4db3-eb46-c112b542bc8e"
},
"source": [
"# The following should run and explain how to use the JEMRIS command \n",
"!jemris "
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"jemris 2.8.3 (3ce3164b704394c4c1a8a3746b3ddc1296727458)\n",
"\n",
"\n",
" Usage:\n",
"\n",
" 1. jemris \n",
" The file could be either a a) Simulation, b) Sequence, or c) Coilarray file, \n",
" so that a) the simultion is performed, b) a sequence diagram is written, \n",
" or c) the sensitivity maps are dumped, respectively.\n",
"\n",
" 2. jemris modlist \n",
" Writes the file mod.xml containing a list of all available modules.\n",
"\n",
" Parameters:\n",
" -o : Output directory\n",
" -f : Output filename (without extension)\n",
" -x: Output sequence file for execution\n",
" -d =: Define custom sequence variable\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "h4poETMMZEHl"
},
"source": [
"## Install py2jemris"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "trKD-7zaAzrr"
},
"source": [
"Install virtual scanner - the simulation portion contains py2jemris code. "
]
},
{
"cell_type": "code",
"metadata": {
"id": "BZI55OO4Aj8Y",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "b8a258db-0ccb-4775-cc41-2622e961b5d0"
},
"source": [
"# Install latest dev build of virtualscanner to grab the py2jemris functionalities \n",
"!pip install git+https://github.com/imr-framework/virtual-scanner.git@dev"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting git+https://github.com/imr-framework/virtual-scanner.git@dev\n",
" Cloning https://github.com/imr-framework/virtual-scanner.git (to revision dev) to /tmp/pip-req-build-rumicjzi\n",
" Running command git clone -q https://github.com/imr-framework/virtual-scanner.git /tmp/pip-req-build-rumicjzi\n",
" Running command git checkout -b dev --track origin/dev\n",
" Switched to a new branch 'dev'\n",
" Branch 'dev' set up to track remote branch 'dev' from 'origin'.\n",
"Collecting absl-py==0.7.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/da/3f/9b0355080b81b15ba6a9ffcf1f5ea39e307a2778b2f2dc8694724e8abd5b/absl-py-0.7.1.tar.gz (99kB)\n",
"\u001b[K |████████████████████████████████| 102kB 2.2MB/s \n",
"\u001b[?25hCollecting astor==0.7.1\n",
" Downloading https://files.pythonhosted.org/packages/35/6b/11530768cac581a12952a2aad00e1526b89d242d0b9f59534ef6e6a1752f/astor-0.7.1-py2.py3-none-any.whl\n",
"Collecting Click==7.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)\n",
"\u001b[K |████████████████████████████████| 81kB 5.5MB/s \n",
"\u001b[?25hRequirement already satisfied: cycler==0.10.0 in /usr/local/lib/python3.6/dist-packages (from virtual-scanner==1.0.26) (0.10.0)\n",
"Collecting Flask==1.0.2\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)\n",
"\u001b[K |████████████████████████████████| 92kB 5.5MB/s \n",
"\u001b[?25hCollecting gast==0.2.2\n",
" Downloading https://files.pythonhosted.org/packages/4e/35/11749bf99b2d4e3cceb4d55ca22590b0d7c2c62b9de38ac4a4a7f4687421/gast-0.2.2.tar.gz\n",
"Collecting grpcio==1.20.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/39/a8/8eeb117c46a53768008a7e3892746aa0ea8ea0b669a2a06712eec11ecc33/grpcio-1.20.0-cp36-cp36m-manylinux1_x86_64.whl (2.1MB)\n",
"\u001b[K |████████████████████████████████| 2.2MB 8.7MB/s \n",
"\u001b[?25hCollecting h5py==2.9.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/30/99/d7d4fbf2d02bb30fb76179911a250074b55b852d34e98dd452a9f394ac06/h5py-2.9.0-cp36-cp36m-manylinux1_x86_64.whl (2.8MB)\n",
"\u001b[K |████████████████████████████████| 2.8MB 27.3MB/s \n",
"\u001b[?25hRequirement already satisfied: itsdangerous==1.1.0 in /usr/local/lib/python3.6/dist-packages (from virtual-scanner==1.0.26) (1.1.0)\n",
"Collecting Jinja2==2.10.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)\n",
"\u001b[K |████████████████████████████████| 133kB 37.3MB/s \n",
"\u001b[?25hCollecting Keras==2.2.4\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/5e/10/aa32dad071ce52b5502266b5c659451cfd6ffcbf14e6c8c4f16c0ff5aaab/Keras-2.2.4-py2.py3-none-any.whl (312kB)\n",
"\u001b[K |████████████████████████████████| 317kB 46.6MB/s \n",
"\u001b[?25hCollecting Keras-Applications==1.0.7\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/90/85/64c82949765cfb246bbdaf5aca2d55f400f792655927a017710a78445def/Keras_Applications-1.0.7-py2.py3-none-any.whl (51kB)\n",
"\u001b[K |████████████████████████████████| 61kB 7.0MB/s \n",
"\u001b[?25hCollecting Keras-Preprocessing==1.0.9\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/c0/bf/0315ef6a9fd3fc2346e85b0ff1f5f83ca17073f2c31ac719ab2e4da0d4a3/Keras_Preprocessing-1.0.9-py2.py3-none-any.whl (59kB)\n",
"\u001b[K |████████████████████████████████| 61kB 7.0MB/s \n",
"\u001b[?25hCollecting kiwisolver==1.0.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/69/a7/88719d132b18300b4369fbffa741841cfd36d1e637e1990f27929945b538/kiwisolver-1.0.1-cp36-cp36m-manylinux1_x86_64.whl (949kB)\n",
"\u001b[K |████████████████████████████████| 952kB 41.9MB/s \n",
"\u001b[?25hCollecting Markdown==3.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/f5/e4/d8c18f2555add57ff21bf25af36d827145896a07607486cc79a2aea641af/Markdown-3.1-py2.py3-none-any.whl (87kB)\n",
"\u001b[K |████████████████████████████████| 92kB 10.2MB/s \n",
"\u001b[?25hRequirement already satisfied: MarkupSafe==1.1.1 in /usr/local/lib/python3.6/dist-packages (from virtual-scanner==1.0.26) (1.1.1)\n",
"Collecting matplotlib==3.0.3\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/e9/69/f5e05f578585ed9935247be3788b374f90701296a70c8871bcd6d21edb00/matplotlib-3.0.3-cp36-cp36m-manylinux1_x86_64.whl (13.0MB)\n",
"\u001b[K |████████████████████████████████| 13.0MB 321kB/s \n",
"\u001b[?25hCollecting mock==2.0.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/e6/35/f187bdf23be87092bd0f1200d43d23076cee4d0dec109f195173fd3ebc79/mock-2.0.0-py2.py3-none-any.whl (56kB)\n",
"\u001b[K |████████████████████████████████| 61kB 6.8MB/s \n",
"\u001b[?25hCollecting nibabel==2.4.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/93/ed/35768f663a361030233a2357de0a482ea46e246af4fc9817dcd5273ee3a7/nibabel-2.4.0-py3-none-any.whl (3.3MB)\n",
"\u001b[K |████████████████████████████████| 3.3MB 36.7MB/s \n",
"\u001b[?25hCollecting numpy==1.16.2\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/35/d5/4f8410ac303e690144f0a0603c4b8fd3b986feb2749c435f7cdbb288f17e/numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl (17.3MB)\n",
"\u001b[K |████████████████████████████████| 17.3MB 238kB/s \n",
"\u001b[?25hCollecting opencv-python==4.0.0.21\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/37/49/874d119948a5a084a7ebe98308214098ef3471d76ab74200f9800efeef15/opencv_python-4.0.0.21-cp36-cp36m-manylinux1_x86_64.whl (25.4MB)\n",
"\u001b[K |████████████████████████████████| 25.4MB 21.1MB/s \n",
"\u001b[?25hCollecting pbr==5.1.3\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/14/09/12fe9a14237a6b7e0ba3a8d6fcf254bf4b10ec56a0185f73d651145e9222/pbr-5.1.3-py2.py3-none-any.whl (107kB)\n",
"\u001b[K |████████████████████████████████| 112kB 46.2MB/s \n",
"\u001b[?25hCollecting Pillow==6.0.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/d2/c2/f84b1e57416755e967236468dcfb0fad7fd911f707185efc4ba8834a1a94/Pillow-6.0.0-cp36-cp36m-manylinux1_x86_64.whl (2.0MB)\n",
"\u001b[K |████████████████████████████████| 2.0MB 44.1MB/s \n",
"\u001b[?25hCollecting protobuf==3.7.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/5a/aa/a858df367b464f5e9452e1c538aa47754d467023850c00b000287750fa77/protobuf-3.7.1-cp36-cp36m-manylinux1_x86_64.whl (1.2MB)\n",
"\u001b[K |████████████████████████████████| 1.2MB 39.8MB/s \n",
"\u001b[?25hCollecting pydicom==1.2.2\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/43/88/d3c419ab2e753e7651510882a53219373e78fb55294cb247dffd3934ea55/pydicom-1.2.2-py2.py3-none-any.whl (7.0MB)\n",
"\u001b[K |████████████████████████████████| 7.0MB 37.2MB/s \n",
"\u001b[?25hCollecting pyparsing==2.3.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/de/0a/001be530836743d8be6c2d85069f46fecf84ac6c18c7f5fb8125ee11d854/pyparsing-2.3.1-py2.py3-none-any.whl (61kB)\n",
"\u001b[K |████████████████████████████████| 71kB 8.5MB/s \n",
"\u001b[?25hCollecting pypulseq==1.2.0.post1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/78/2a/3cddbd9e9345134d858dfb561248cc00b9d9a5fca3b1fee0a617f24f61c3/pypulseq-1.2.0.post1-py3-none-any.whl (55kB)\n",
"\u001b[K |████████████████████████████████| 61kB 7.1MB/s \n",
"\u001b[?25hCollecting python-dateutil==2.8.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)\n",
"\u001b[K |████████████████████████████████| 235kB 39.0MB/s \n",
"\u001b[?25hCollecting PyYAML==5.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/9f/2c/9417b5c774792634834e730932745bc09a7d36754ca00acf1ccd1ac2594d/PyYAML-5.1.tar.gz (274kB)\n",
"\u001b[K |████████████████████████████████| 276kB 45.5MB/s \n",
"\u001b[?25hCollecting scipy==1.2.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/7f/5f/c48860704092933bf1c4c1574a8de1ffd16bf4fde8bab190d747598844b2/scipy-1.2.1-cp36-cp36m-manylinux1_x86_64.whl (24.8MB)\n",
"\u001b[K |████████████████████████████████| 24.8MB 129kB/s \n",
"\u001b[?25hCollecting six==1.12.0\n",
" Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl\n",
"Collecting tensorboard==1.13.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/0f/39/bdd75b08a6fba41f098b6cb091b9e8c7a80e1b4d679a581a0ccd17b10373/tensorboard-1.13.1-py3-none-any.whl (3.2MB)\n",
"\u001b[K |████████████████████████████████| 3.2MB 45.0MB/s \n",
"\u001b[?25hCollecting tensorflow==1.13.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/77/63/a9fa76de8dffe7455304c4ed635be4aa9c0bacef6e0633d87d5f54530c5c/tensorflow-1.13.1-cp36-cp36m-manylinux1_x86_64.whl (92.5MB)\n",
"\u001b[K |████████████████████████████████| 92.5MB 55kB/s \n",
"\u001b[?25hCollecting tensorflow-estimator==1.13.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/bb/48/13f49fc3fa0fdf916aa1419013bb8f2ad09674c275b4046d5ee669a46873/tensorflow_estimator-1.13.0-py2.py3-none-any.whl (367kB)\n",
"\u001b[K |████████████████████████████████| 368kB 37.1MB/s \n",
"\u001b[?25hRequirement already satisfied: termcolor==1.1.0 in /usr/local/lib/python3.6/dist-packages (from virtual-scanner==1.0.26) (1.1.0)\n",
"Collecting Werkzeug==0.15.2\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/18/79/84f02539cc181cdbf5ff5a41b9f52cae870b6f632767e43ba6ac70132e92/Werkzeug-0.15.2-py2.py3-none-any.whl (328kB)\n",
"\u001b[K |████████████████████████████████| 337kB 38.5MB/s \n",
"\u001b[?25hCollecting scikit-image==0.15.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/d4/ab/674e168bf7d0bc597218b3bec858d02c23fbac9ec1fec9cad878c6cee95f/scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl (26.3MB)\n",
"\u001b[K |████████████████████████████████| 26.3MB 52.8MB/s \n",
"\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from kiwisolver==1.0.1->virtual-scanner==1.0.26) (49.6.0)\n",
"Requirement already satisfied: wheel>=0.26; python_version >= \"3\" in /usr/local/lib/python3.6/dist-packages (from tensorboard==1.13.1->virtual-scanner==1.0.26) (0.35.1)\n",
"Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image==0.15.0->virtual-scanner==1.0.26) (2.5)\n",
"Requirement already satisfied: PyWavelets>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image==0.15.0->virtual-scanner==1.0.26) (1.1.1)\n",
"Requirement already satisfied: imageio>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from scikit-image==0.15.0->virtual-scanner==1.0.26) (2.4.1)\n",
"Requirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.6/dist-packages (from networkx>=2.0->scikit-image==0.15.0->virtual-scanner==1.0.26) (4.4.2)\n",
"Building wheels for collected packages: virtual-scanner, absl-py, gast, PyYAML\n",
" Building wheel for virtual-scanner (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for virtual-scanner: filename=virtual_scanner-1.0.26-cp36-none-any.whl size=17243744 sha256=1f0e4ffebe2edde2a83ff6f8b4060fe58d4a6335cbd4aad63cddd028d84707af\n",
" Stored in directory: /tmp/pip-ephem-wheel-cache-d3_up173/wheels/fe/da/be/530de1c0e943f2c3b941b1b0567c1942792906d5d1cc0fa8c2\n",
" Building wheel for absl-py (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for absl-py: filename=absl_py-0.7.1-cp36-none-any.whl size=117848 sha256=f53097b04b2aa0cf62652f663d5402045fc8e596e6b368719d4307133487cf24\n",
" Stored in directory: /root/.cache/pip/wheels/ee/98/38/46cbcc5a93cfea5492d19c38562691ddb23b940176c14f7b48\n",
" Building wheel for gast (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for gast: filename=gast-0.2.2-cp36-none-any.whl size=7542 sha256=9e8ef9a612c453debd328c43b46b68c4b7b252d0705d222cdbb9f68fea3ec59b\n",
" Stored in directory: /root/.cache/pip/wheels/5c/2e/7e/a1d4d4fcebe6c381f378ce7743a3ced3699feb89bcfbdadadd\n",
" Building wheel for PyYAML (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for PyYAML: filename=PyYAML-5.1-cp36-cp36m-linux_x86_64.whl size=44075 sha256=c45218d8f8bb22916fe4d72bf940e7d505cb33ca7e917afc35eb9ec61d328f51\n",
" Stored in directory: /root/.cache/pip/wheels/ad/56/bc/1522f864feb2a358ea6f1a92b4798d69ac783a28e80567a18b\n",
"Successfully built virtual-scanner absl-py gast PyYAML\n",
"\u001b[31mERROR: umap-learn 0.4.6 has requirement numpy>=1.17, but you'll have numpy 1.16.2 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: umap-learn 0.4.6 has requirement scipy>=1.3.1, but you'll have scipy 1.2.1 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: tensorflow-probability 0.11.0 has requirement gast>=0.3.2, but you'll have gast 0.2.2 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: tensorflow-hub 0.9.0 has requirement protobuf>=3.8.0, but you'll have protobuf 3.7.1 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: plotnine 0.6.0 has requirement matplotlib>=3.1.1, but you'll have matplotlib 3.0.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: mizani 0.6.0 has requirement matplotlib>=3.1.1, but you'll have matplotlib 3.0.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: google-colab 1.0.0 has requirement six~=1.15.0, but you'll have six 1.12.0 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: datascience 0.10.6 has requirement folium==0.2.1, but you'll have folium 0.8.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: albumentations 0.1.12 has requirement imgaug<0.2.7,>=0.2.5, but you'll have imgaug 0.2.9 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: pypulseq 1.2.0.post1 has requirement numpy>=1.16.3, but you'll have numpy 1.16.2 which is incompatible.\u001b[0m\n",
"Installing collected packages: six, absl-py, astor, Click, Werkzeug, Jinja2, Flask, gast, grpcio, numpy, h5py, Keras-Preprocessing, scipy, Keras-Applications, PyYAML, Keras, kiwisolver, Markdown, pyparsing, python-dateutil, matplotlib, pbr, mock, nibabel, opencv-python, Pillow, protobuf, pydicom, pypulseq, tensorboard, tensorflow-estimator, tensorflow, scikit-image, virtual-scanner\n",
" Found existing installation: six 1.15.0\n",
" Uninstalling six-1.15.0:\n",
" Successfully uninstalled six-1.15.0\n",
" Found existing installation: absl-py 0.8.1\n",
" Uninstalling absl-py-0.8.1:\n",
" Successfully uninstalled absl-py-0.8.1\n",
" Found existing installation: astor 0.8.1\n",
" Uninstalling astor-0.8.1:\n",
" Successfully uninstalled astor-0.8.1\n",
" Found existing installation: click 7.1.2\n",
" Uninstalling click-7.1.2:\n",
" Successfully uninstalled click-7.1.2\n",
" Found existing installation: Werkzeug 1.0.1\n",
" Uninstalling Werkzeug-1.0.1:\n",
" Successfully uninstalled Werkzeug-1.0.1\n",
" Found existing installation: Jinja2 2.11.2\n",
" Uninstalling Jinja2-2.11.2:\n",
" Successfully uninstalled Jinja2-2.11.2\n",
" Found existing installation: Flask 1.1.2\n",
" Uninstalling Flask-1.1.2:\n",
" Successfully uninstalled Flask-1.1.2\n",
" Found existing installation: gast 0.3.3\n",
" Uninstalling gast-0.3.3:\n",
" Successfully uninstalled gast-0.3.3\n",
" Found existing installation: grpcio 1.31.0\n",
" Uninstalling grpcio-1.31.0:\n",
" Successfully uninstalled grpcio-1.31.0\n",
" Found existing installation: numpy 1.18.5\n",
" Uninstalling numpy-1.18.5:\n",
" Successfully uninstalled numpy-1.18.5\n",
" Found existing installation: h5py 2.10.0\n",
" Uninstalling h5py-2.10.0:\n",
" Successfully uninstalled h5py-2.10.0\n",
" Found existing installation: Keras-Preprocessing 1.1.2\n",
" Uninstalling Keras-Preprocessing-1.1.2:\n",
" Successfully uninstalled Keras-Preprocessing-1.1.2\n",
" Found existing installation: scipy 1.4.1\n",
" Uninstalling scipy-1.4.1:\n",
" Successfully uninstalled scipy-1.4.1\n",
" Found existing installation: PyYAML 3.13\n",
" Uninstalling PyYAML-3.13:\n",
" Successfully uninstalled PyYAML-3.13\n",
" Found existing installation: Keras 2.4.3\n",
" Uninstalling Keras-2.4.3:\n",
" Successfully uninstalled Keras-2.4.3\n",
" Found existing installation: kiwisolver 1.2.0\n",
" Uninstalling kiwisolver-1.2.0:\n",
" Successfully uninstalled kiwisolver-1.2.0\n",
" Found existing installation: Markdown 3.2.2\n",
" Uninstalling Markdown-3.2.2:\n",
" Successfully uninstalled Markdown-3.2.2\n",
" Found existing installation: pyparsing 2.4.7\n",
" Uninstalling pyparsing-2.4.7:\n",
" Successfully uninstalled pyparsing-2.4.7\n",
" Found existing installation: python-dateutil 2.8.1\n",
" Uninstalling python-dateutil-2.8.1:\n",
" Successfully uninstalled python-dateutil-2.8.1\n",
" Found existing installation: matplotlib 3.2.2\n",
" Uninstalling matplotlib-3.2.2:\n",
" Successfully uninstalled matplotlib-3.2.2\n",
" Found existing installation: nibabel 3.0.2\n",
" Uninstalling nibabel-3.0.2:\n",
" Successfully uninstalled nibabel-3.0.2\n",
" Found existing installation: opencv-python 4.1.2.30\n",
" Uninstalling opencv-python-4.1.2.30:\n",
" Successfully uninstalled opencv-python-4.1.2.30\n",
" Found existing installation: Pillow 7.0.0\n",
" Uninstalling Pillow-7.0.0:\n",
" Successfully uninstalled Pillow-7.0.0\n",
" Found existing installation: protobuf 3.12.4\n",
" Uninstalling protobuf-3.12.4:\n",
" Successfully uninstalled protobuf-3.12.4\n",
" Found existing installation: tensorboard 2.3.0\n",
" Uninstalling tensorboard-2.3.0:\n",
" Successfully uninstalled tensorboard-2.3.0\n",
" Found existing installation: tensorflow-estimator 2.3.0\n",
" Uninstalling tensorflow-estimator-2.3.0:\n",
" Successfully uninstalled tensorflow-estimator-2.3.0\n",
" Found existing installation: tensorflow 2.3.0\n",
" Uninstalling tensorflow-2.3.0:\n",
" Successfully uninstalled tensorflow-2.3.0\n",
" Found existing installation: scikit-image 0.16.2\n",
" Uninstalling scikit-image-0.16.2:\n",
" Successfully uninstalled scikit-image-0.16.2\n",
"Successfully installed Click-7.0 Flask-1.0.2 Jinja2-2.10.1 Keras-2.2.4 Keras-Applications-1.0.7 Keras-Preprocessing-1.0.9 Markdown-3.1 Pillow-6.0.0 PyYAML-5.1 Werkzeug-0.15.2 absl-py-0.7.1 astor-0.7.1 gast-0.2.2 grpcio-1.20.0 h5py-2.9.0 kiwisolver-1.0.1 matplotlib-3.0.3 mock-2.0.0 nibabel-2.4.0 numpy-1.16.2 opencv-python-4.0.0.21 pbr-5.1.3 protobuf-3.7.1 pydicom-1.2.2 pyparsing-2.3.1 pypulseq-1.2.0.post1 python-dateutil-2.8.0 scikit-image-0.15.0 scipy-1.2.1 six-1.12.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 virtual-scanner-1.0.26\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.colab-display-data+json": {
"pip_warning": {
"packages": [
"PIL",
"dateutil",
"google",
"kiwisolver",
"matplotlib",
"mpl_toolkits",
"numpy",
"pyparsing",
"six"
]
}
}
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "51im7HLxA57P"
},
"source": [
"Re-install pypulseq (even though it was installed with virtual scanner) to get to the dev branch so that importing works later. "
]
},
{
"cell_type": "code",
"metadata": {
"id": "_JxDlX3EZDAK",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 925
},
"outputId": "33552a1c-e822-4956-d220-1d14a07211d6"
},
"source": [
"# Reinstall pypulseq to dev in order to fix import problem \n",
"!pip install git+https://github.com/imr-framework/pypulseq.git@dev"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting git+https://github.com/imr-framework/pypulseq.git@dev\n",
" Cloning https://github.com/imr-framework/pypulseq.git (to revision dev) to /tmp/pip-req-build-lbrd28wd\n",
" Running command git clone -q https://github.com/imr-framework/pypulseq.git /tmp/pip-req-build-lbrd28wd\n",
" Running command git checkout -b dev --track origin/dev\n",
" Switched to a new branch 'dev'\n",
" Branch 'dev' set up to track remote branch 'dev' from 'origin'.\n",
"Requirement already satisfied: matplotlib>=3.0.3 in /usr/local/lib/python3.6/dist-packages (from pypulseq==1.2.0.post3) (3.0.3)\n",
"Collecting numpy>=1.16.3\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/b1/9a/7d474ba0860a41f771c9523d8c4ea56b084840b5ca4092d96bdee8a3b684/numpy-1.19.1-cp36-cp36m-manylinux2010_x86_64.whl (14.5MB)\n",
"\u001b[K |████████████████████████████████| 14.5MB 316kB/s \n",
"\u001b[?25hCollecting scipy>=1.4.1\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/2b/a8/f4c66eb529bb252d50e83dbf2909c6502e2f857550f22571ed8556f62d95/scipy-1.5.2-cp36-cp36m-manylinux1_x86_64.whl (25.9MB)\n",
"\u001b[K |████████████████████████████████| 25.9MB 1.4MB/s \n",
"\u001b[?25hRequirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=3.0.3->pypulseq==1.2.0.post3) (0.10.0)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=3.0.3->pypulseq==1.2.0.post3) (1.0.1)\n",
"Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=3.0.3->pypulseq==1.2.0.post3) (2.8.0)\n",
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=3.0.3->pypulseq==1.2.0.post3) (2.3.1)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from cycler>=0.10->matplotlib>=3.0.3->pypulseq==1.2.0.post3) (1.12.0)\n",
"Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from kiwisolver>=1.0.1->matplotlib>=3.0.3->pypulseq==1.2.0.post3) (49.6.0)\n",
"Building wheels for collected packages: pypulseq\n",
" Building wheel for pypulseq (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for pypulseq: filename=pypulseq-1.2.0.post3-cp36-none-any.whl size=73258 sha256=06f95944627de2f875a836a6e996503a1bff21be626f89701feb5320049d588f\n",
" Stored in directory: /tmp/pip-ephem-wheel-cache-jk476hde/wheels/18/dd/da/be52d6c4f99b9ccc0d8320b3862f73b03cf4e9a51c1299b008\n",
"Successfully built pypulseq\n",
"\u001b[31mERROR: virtual-scanner 1.0.26 has requirement numpy==1.16.2, but you'll have numpy 1.19.1 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: virtual-scanner 1.0.26 has requirement pypulseq==1.2.0.post1, but you'll have pypulseq 1.2.0.post3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: virtual-scanner 1.0.26 has requirement scipy==1.2.1, but you'll have scipy 1.5.2 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: tensorflow-probability 0.11.0 has requirement gast>=0.3.2, but you'll have gast 0.2.2 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: tensorflow-hub 0.9.0 has requirement protobuf>=3.8.0, but you'll have protobuf 3.7.1 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: plotnine 0.6.0 has requirement matplotlib>=3.1.1, but you'll have matplotlib 3.0.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: mizani 0.6.0 has requirement matplotlib>=3.1.1, but you'll have matplotlib 3.0.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: google-colab 1.0.0 has requirement six~=1.15.0, but you'll have six 1.12.0 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: datascience 0.10.6 has requirement folium==0.2.1, but you'll have folium 0.8.3 which is incompatible.\u001b[0m\n",
"\u001b[31mERROR: albumentations 0.1.12 has requirement imgaug<0.2.7,>=0.2.5, but you'll have imgaug 0.2.9 which is incompatible.\u001b[0m\n",
"Installing collected packages: numpy, scipy, pypulseq\n",
" Found existing installation: numpy 1.16.2\n",
" Uninstalling numpy-1.16.2:\n",
" Successfully uninstalled numpy-1.16.2\n",
" Found existing installation: scipy 1.2.1\n",
" Uninstalling scipy-1.2.1:\n",
" Successfully uninstalled scipy-1.2.1\n",
" Found existing installation: pypulseq 1.2.0.post1\n",
" Uninstalling pypulseq-1.2.0.post1:\n",
" Successfully uninstalled pypulseq-1.2.0.post1\n",
"Successfully installed numpy-1.19.1 pypulseq-1.2.0.post3 scipy-1.5.2\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.colab-display-data+json": {
"pip_warning": {
"packages": [
"numpy"
]
}
}
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Vg65dHO5BHtO"
},
"source": [
"## Import necessary code for this demo "
]
},
{
"cell_type": "code",
"metadata": {
"id": "1Egi0RiPWceG"
},
"source": [
"# Import modules \n",
"\n",
"from pypulseq.Sequence.sequence import Sequence\n",
"from virtualscanner.server.simulation.py2jemris.coil2xml import coil2xml\n",
"from virtualscanner.server.simulation.py2jemris.seq2xml import seq2xml\n",
"from virtualscanner.server.simulation.py2jemris.sim_jemris import sim_jemris\n",
"from virtualscanner.server.simulation.py2jemris.pulseq_jemris_simulator import simulate_pulseq_jemris, create_and_save_phantom\n",
"from virtualscanner.server.simulation.py2jemris.recon_jemris import recon_jemris\n",
"from virtualscanner.server.simulation.py2jemris.sim2xml import sim2xml \n",
"import virtualscanner.server.simulation.bloch.phantom as pht\n",
"from virtualscanner.server.simulation.bloch.pulseq_library import make_pulseq_irse, make_pulseq_se_oblique\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from scipy.io import loadmat, savemat\n",
"from virtualscanner.utils.constants import SERVER_SIM_BLOCH_PY2JEMRIS_PATH\n",
"import os\n",
"import h5py\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "PNFBaXHLWnDv"
},
"source": [
"## Set output paths "
]
},
{
"cell_type": "code",
"metadata": {
"id": "wL9BngTQWlf9"
},
"source": [
"utest_path = 'sim/utest_outputs'\n",
"sim_path = 'sim'"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "QO1kiOfUbBl4",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 53
},
"outputId": "b4af6b48-2da3-428f-e315-ff9a46c44bd4"
},
"source": [
"# Make directory for storing outputs \n",
"%cd /content \n",
"!mkdir sim/utest_outputs -p \n",
"!mkdir sim/custom -p \n",
"!pwd"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"/content\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5vaB22C8WqJh"
},
"source": [
"## Demo 1: Test coil2xml and visualize "
]
},
{
"cell_type": "code",
"metadata": {
"id": "OxF1fLjSW7Jh",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 326
},
"outputId": "43638500-421c-47e2-9043-fe85bf374cbe"
},
"source": [
"# Always go back to content folder first \n",
"%cd /content\n",
"\n",
"!pwd\n",
" # Example on using coil2xml\n",
"# Generate coil using B1 maps and plot\n",
"# 4 channels with different B1 maps\n",
"\n",
"b1 = np.ones((32,32))\n",
"XY = np.meshgrid(np.linspace(0,1,32), np.linspace(0,1,32))\n",
"X = XY[0]\n",
"Y = XY[1]\n",
"\n",
"# Define coil sensitivity maps (complex arrays, in general)\n",
"b1_ch1 = np.sqrt(X**2 + Y**2)\n",
"b1_ch2 = np.rot90(b1_ch1)\n",
"b1_ch3 = np.rot90(b1_ch2)\n",
"b1_ch4 = np.rot90(b1_ch3)\n",
"\n",
"coil2xml(b1maps=[b1_ch1, b1_ch2, b1_ch3, b1_ch4], fov=200, name='test_coil', out_folder=utest_path)\n",
"\n",
"# Generate sensmaps.h5 using JEMRIS command\n",
"\n",
"%cd sim/utest_outputs\n",
"out = os.system('jemris test_coil.xml') # Run jemris to create h5 sensitivity maps \n",
"print(out)\n",
"\n",
"# Load sensmaps.h5 and plot coil\n",
"a = h5py.File('sensmaps.h5', 'r')\n",
"maps_magnitude = a['maps/magnitude']\n",
"maps_phase = a['maps/phase']\n",
"plt.figure(1)\n",
"plt.title('Coil sensitivity maps')\n",
"for u in range(4):\n",
" plt.subplot(2,4,u+1)\n",
" plt.gray()\n",
" plt.imshow(maps_magnitude[f'0{u}'])\n",
" plt.title(f'Magnitude Ch #{u+1}')\n",
" plt.subplot(2,4,u+5)\n",
" plt.gray()\n",
" plt.imshow(maps_phase[f'0{u}'])\n",
" plt.title(f'Phase Ch #{u+1}')\n",
"plt.show()\n",
"\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"/content\n",
"/content/sim/utest_outputs\n",
"0\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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2LaM29R6NR78THhyeROTFYqeexNfvVnLH59b/rw00/e//3289rWvBYCbhh27J510UrGes/ZXU7623v44q+ad11I/0XW2nqOCWht8vZcCsmOLy6+66ips2LABDz744FCyffSjH12swfaUqIhg586drq4oZc/nHuw4s8ZWf8NilbDutdw6I16dNwYs/3weRSDazrTRK54SkX3QKP/3l1I+3BbfJiJb2/qtAG7v1aGTIulS1lFOXduLlLq3tfx2btz2MG1pXS16AZrFs/POOw9nnnkmnvKUp6iYhpKt/ZwAK6pavR2sXgqAyzyaaMDbfiJwnUfrlfH9efRAI9/Xve51OO200wDg7rZ6KPlaHr06VgKD3E+XbLznxXV2q0UStTKvXVb+1lB87Wtfw+bNm/kbX0PJtub0DTIn+8zxvhmFrrYivaXXeHqryxmNtkmhz1tAAuBdAK4ppbyFqi4BcA6AN7b7i3u0Fb4Gas/tA1B4A0DLvXo2FtF/A3sP0L7qyTS1/xOwhmtpafWPxHj/mte8Bscffzxe+MIX8n0OLFv26qw8WUbsufC53Wub3Ib17PnXlt6z4mvsIh3TRN49X+OF18ovKzQOyUUEb37zm3Hsscfimc98Jt75zncOLV+Vh/WgB1HMHr3nhXfl7i2dXQSufRV00B+JecZC+/rGN76BfffdF1u2bMF3vvOdkWRrc+aeDK2+sDTKF+B/z1/b0M3+ibudB3zMfFqZ2rHPdTweLS99HIpJo08K6KcAPB/AlSJyRVv2KjQP+CIR+RUANwJ4dp8OrTWLjIBV+lrWZZmjFJBHb5W1vS6i76LzrL9ntL785S/j4osvxkknnYQzzzxTb/fgYWXrhZAsb85VWkVp5c8KlSeXzY3ayRV5k5ZWlb1V3lpf87Brk4cn5FVXXYVLL70Uxx13HM4991wAOFlETh9Wvh5vtWMrA+8+WB41D962Wauz57W2PQOi48IaAub1vvvuwx133IH9998fV155JR588EGMIlvPiaiV8bj09IHnONjrWU48Pr25EaUYeb4wT3qtbbu2BqCIjN0k0OctoM8CiLj52UE6Y+85gs01e4OgbwgXRQNRush68lF0EH0awjNAtbDvCU94Aq677roVcjnuuOPuKaXcMahsS1n5MTge4FZugL9QKtLkWJWXrvw99+V58nayWJ48780qMBsVcF2kYPX4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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "35fWjPhDIniV"
},
"source": [
"## Demo 2: Seq2xml \n",
"In this section, a pulseq sequence is generate from the Virtual Scanner sequence library and converted to a set of files that together make up a JEMRIS sequence:\n",
"- An (.xml) file that records the sequence structure and most high-level data\n",
"- An arbitrary number of (.h5) files that store (1) all unique RF pulses; (2) any unique non-trapezoid gradients"
]
},
{
"cell_type": "code",
"metadata": {
"id": "68yWH1rXXRZx",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 106
},
"outputId": "139ee462-b17b-423a-c7be-b6aac6b4911b"
},
"source": [
"%cd /content \n",
"# Seq2xml test \n",
"# Make a sequence\n",
"seq = make_pulseq_irse(fov=0.256, n=16, thk=0.01, fa=15, tr=150, te=30, ti=10,\n",
" enc='xyz', slice_locs=None, write=False)\n",
"\n",
"# Convert to .xml format\n",
"seq2xml(seq, seq_name='irse16_pulseq', out_folder=utest_path)\n",
"\n",
"# Use JEMRIS to generate sequence diagrams from .xml sequence\n",
"os.chdir(utest_path)\n",
"print(os.system('dir'))\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"dur rf 0.00213 dur gss: 0.00214\n",
"IRSE sequence constructed\n",
"{}\n",
"0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "dFRhs6E0cyD7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "a22aee9e-e8fb-436a-c5d9-83d4b4388234"
},
"source": [
"!jemris -x -d id=1 -f irse16_pulseq irse16_pulseq.xml\n",
"#out = os.system(f'jemris -x -d id=1 -f irse16_pulseq irse16_pulseq.xml')\n",
"#print(out)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"jemris 2.8.3 (3ce3164b704394c4c1a8a3746b3ddc1296727458)\n",
"\n",
"dump of sequence tree\n",
" TYPE CLASS NAME duration ADCs TPOIs | module specific\n",
" ----------------------------------------------------------------- | ---------------\n",
"sequence-root------> CONCAT CONCATSEQUENCEConcatSequence2560000.160 256 98208 | Repetitions = 1\n",
" |_ child 1 ----> ATOM ATOMICSEQUENCE C1 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R1 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G1 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 2 ----> ATOM ATOMICSEQUENCE C2 0.000 0 0 | \n",
" |_ child 3 ----> ATOM DELAYATOMICSEQUENCE D1 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D1 9997.870 0 2 | Axis = none \n",
" |_ child 4 ----> ATOM ATOMICSEQUENCE C3 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R2 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G2 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 5 ----> ATOM ATOMICSEQUENCE C4 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G3 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G4 2.000 0 4 | Axis = GY , Area = -0.19635 , FlatTop: (Area,time)= (-0.195363,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G5 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 6 ----> ATOM ATOMICSEQUENCE C5 0.000 0 0 | \n",
" |_ child 7 ----> ATOM DELAYATOMICSEQUENCE D2 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D2 14995.860 0 2 | Axis = none \n",
" |_ child 8 ----> ATOM ATOMICSEQUENCE C6 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R3 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G6 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 9 ----> ATOM ATOMICSEQUENCE C7 0.000 0 0 | \n",
" |_ child 10 ----> ATOM DELAYATOMICSEQUENCE D3 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D3 14995.720 0 2 | Axis = none \n",
" |_ child 11 ----> ATOM ATOMICSEQUENCE C8 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G7 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S1 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 12 ----> ATOM ATOMICSEQUENCE C9 0.000 0 0 | \n",
" |_ child 13 ----> ATOM DELAYATOMICSEQUENCE D4119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D4119995.720 0 2 | Axis = none \n",
" |_ child 14 ----> ATOM ATOMICSEQUENCE C10 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R4 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G8 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 15 ----> ATOM ATOMICSEQUENCE C11 0.000 0 0 | \n",
" |_ child 16 ----> ATOM DELAYATOMICSEQUENCE D5 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D5 9997.870 0 2 | Axis = none \n",
" |_ child 17 ----> ATOM ATOMICSEQUENCE C12 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R5 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G9 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 18 ----> ATOM ATOMICSEQUENCE C13 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G10 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G11 2.000 0 4 | Axis = GY , Area = -0.171806 , FlatTop: (Area,time)= (-0.170943,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G12 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 19 ----> ATOM ATOMICSEQUENCE C14 0.000 0 0 | \n",
" |_ child 20 ----> ATOM DELAYATOMICSEQUENCE D6 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D6 14995.860 0 2 | Axis = none \n",
" |_ child 21 ----> ATOM ATOMICSEQUENCE C15 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R6 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G13 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 22 ----> ATOM ATOMICSEQUENCE C16 0.000 0 0 | \n",
" |_ child 23 ----> ATOM DELAYATOMICSEQUENCE D7 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D7 14995.720 0 2 | Axis = none \n",
" |_ child 24 ----> ATOM ATOMICSEQUENCE C17 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G14 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S2 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 25 ----> ATOM ATOMICSEQUENCE C18 0.000 0 0 | \n",
" |_ child 26 ----> ATOM DELAYATOMICSEQUENCE D8119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D8119995.720 0 2 | Axis = none \n",
" |_ child 27 ----> ATOM ATOMICSEQUENCE C19 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R7 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G15 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 28 ----> ATOM ATOMICSEQUENCE C20 0.000 0 0 | \n",
" |_ child 29 ----> ATOM DELAYATOMICSEQUENCE D9 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D9 9997.870 0 2 | Axis = none \n",
" |_ child 30 ----> ATOM ATOMICSEQUENCE C21 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R8 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G16 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 31 ----> ATOM ATOMICSEQUENCE C22 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G17 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G18 2.000 0 4 | Axis = GY , Area = -0.147262 , FlatTop: (Area,time)= (-0.146522,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G19 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 32 ----> ATOM ATOMICSEQUENCE C23 0.000 0 0 | \n",
" |_ child 33 ----> ATOM DELAYATOMICSEQUENCE D10 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D10 14995.860 0 2 | Axis = none \n",
" |_ child 34 ----> ATOM ATOMICSEQUENCE C24 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R9 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G20 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 35 ----> ATOM ATOMICSEQUENCE C25 0.000 0 0 | \n",
" |_ child 36 ----> ATOM DELAYATOMICSEQUENCE D11 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D11 14995.720 0 2 | Axis = none \n",
" |_ child 37 ----> ATOM ATOMICSEQUENCE C26 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G21 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S3 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 38 ----> ATOM ATOMICSEQUENCE C27 0.000 0 0 | \n",
" |_ child 39 ----> ATOM DELAYATOMICSEQUENCE D12119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D12119995.720 0 2 | Axis = none \n",
" |_ child 40 ----> ATOM ATOMICSEQUENCE C28 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R10 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G22 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 41 ----> ATOM ATOMICSEQUENCE C29 0.000 0 0 | \n",
" |_ child 42 ----> ATOM DELAYATOMICSEQUENCE D13 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D13 9997.870 0 2 | Axis = none \n",
" |_ child 43 ----> ATOM ATOMICSEQUENCE C30 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R11 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G23 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 44 ----> ATOM ATOMICSEQUENCE C31 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G24 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G25 2.000 0 4 | Axis = GY , Area = -0.122718 , FlatTop: (Area,time)= (-0.122102,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G26 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 45 ----> ATOM ATOMICSEQUENCE C32 0.000 0 0 | \n",
" |_ child 46 ----> ATOM DELAYATOMICSEQUENCE D14 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D14 14995.860 0 2 | Axis = none \n",
" |_ child 47 ----> ATOM ATOMICSEQUENCE C33 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R12 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G27 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 48 ----> ATOM ATOMICSEQUENCE C34 0.000 0 0 | \n",
" |_ child 49 ----> ATOM DELAYATOMICSEQUENCE D15 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D15 14995.720 0 2 | Axis = none \n",
" |_ child 50 ----> ATOM ATOMICSEQUENCE C35 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G28 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S4 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 51 ----> ATOM ATOMICSEQUENCE C36 0.000 0 0 | \n",
" |_ child 52 ----> ATOM DELAYATOMICSEQUENCE D16119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D16119995.720 0 2 | Axis = none \n",
" |_ child 53 ----> ATOM ATOMICSEQUENCE C37 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R13 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G29 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 54 ----> ATOM ATOMICSEQUENCE C38 0.000 0 0 | \n",
" |_ child 55 ----> ATOM DELAYATOMICSEQUENCE D17 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D17 9997.870 0 2 | Axis = none \n",
" |_ child 56 ----> ATOM ATOMICSEQUENCE C39 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R14 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G30 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 57 ----> ATOM ATOMICSEQUENCE C40 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G31 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G32 2.000 0 4 | Axis = GY , Area = -0.0981748 , FlatTop: (Area,time)= (-0.0976814,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G33 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 58 ----> ATOM ATOMICSEQUENCE C41 0.000 0 0 | \n",
" |_ child 59 ----> ATOM DELAYATOMICSEQUENCE D18 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D18 14995.860 0 2 | Axis = none \n",
" |_ child 60 ----> ATOM ATOMICSEQUENCE C42 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R15 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G34 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 61 ----> ATOM ATOMICSEQUENCE C43 0.000 0 0 | \n",
" |_ child 62 ----> ATOM DELAYATOMICSEQUENCE D19 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D19 14995.720 0 2 | Axis = none \n",
" |_ child 63 ----> ATOM ATOMICSEQUENCE C44 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G35 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S5 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 64 ----> ATOM ATOMICSEQUENCE C45 0.000 0 0 | \n",
" |_ child 65 ----> ATOM DELAYATOMICSEQUENCE D20119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D20119995.720 0 2 | Axis = none \n",
" |_ child 66 ----> ATOM ATOMICSEQUENCE C46 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R16 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G36 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 67 ----> ATOM ATOMICSEQUENCE C47 0.000 0 0 | \n",
" |_ child 68 ----> ATOM DELAYATOMICSEQUENCE D21 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D21 9997.870 0 2 | Axis = none \n",
" |_ child 69 ----> ATOM ATOMICSEQUENCE C48 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R17 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G37 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 70 ----> ATOM ATOMICSEQUENCE C49 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G38 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G39 2.000 0 4 | Axis = GY , Area = -0.0736311 , FlatTop: (Area,time)= (-0.0732611,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G40 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 71 ----> ATOM ATOMICSEQUENCE C50 0.000 0 0 | \n",
" |_ child 72 ----> ATOM DELAYATOMICSEQUENCE D22 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D22 14995.860 0 2 | Axis = none \n",
" |_ child 73 ----> ATOM ATOMICSEQUENCE C51 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R18 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G41 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 74 ----> ATOM ATOMICSEQUENCE C52 0.000 0 0 | \n",
" |_ child 75 ----> ATOM DELAYATOMICSEQUENCE D23 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D23 14995.720 0 2 | Axis = none \n",
" |_ child 76 ----> ATOM ATOMICSEQUENCE C53 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G42 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S6 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 77 ----> ATOM ATOMICSEQUENCE C54 0.000 0 0 | \n",
" |_ child 78 ----> ATOM DELAYATOMICSEQUENCE D24119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D24119995.720 0 2 | Axis = none \n",
" |_ child 79 ----> ATOM ATOMICSEQUENCE C55 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R19 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G43 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 80 ----> ATOM ATOMICSEQUENCE C56 0.000 0 0 | \n",
" |_ child 81 ----> ATOM DELAYATOMICSEQUENCE D25 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D25 9997.870 0 2 | Axis = none \n",
" |_ child 82 ----> ATOM ATOMICSEQUENCE C57 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R20 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G44 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 83 ----> ATOM ATOMICSEQUENCE C58 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G45 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G46 2.000 0 4 | Axis = GY , Area = -0.0490874 , FlatTop: (Area,time)= (-0.0488407,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G47 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 84 ----> ATOM ATOMICSEQUENCE C59 0.000 0 0 | \n",
" |_ child 85 ----> ATOM DELAYATOMICSEQUENCE D26 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D26 14995.860 0 2 | Axis = none \n",
" |_ child 86 ----> ATOM ATOMICSEQUENCE C60 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R21 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G48 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 87 ----> ATOM ATOMICSEQUENCE C61 0.000 0 0 | \n",
" |_ child 88 ----> ATOM DELAYATOMICSEQUENCE D27 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D27 14995.720 0 2 | Axis = none \n",
" |_ child 89 ----> ATOM ATOMICSEQUENCE C62 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G49 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S7 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 90 ----> ATOM ATOMICSEQUENCE C63 0.000 0 0 | \n",
" |_ child 91 ----> ATOM DELAYATOMICSEQUENCE D28119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D28119995.720 0 2 | Axis = none \n",
" |_ child 92 ----> ATOM ATOMICSEQUENCE C64 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R22 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G50 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 93 ----> ATOM ATOMICSEQUENCE C65 0.000 0 0 | \n",
" |_ child 94 ----> ATOM DELAYATOMICSEQUENCE D29 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D29 9997.870 0 2 | Axis = none \n",
" |_ child 95 ----> ATOM ATOMICSEQUENCE C66 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R23 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G51 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 96 ----> ATOM ATOMICSEQUENCE C67 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G52 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G53 2.000 0 4 | Axis = GY , Area = -0.0245437 , FlatTop: (Area,time)= (-0.0244204,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G54 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 97 ----> ATOM ATOMICSEQUENCE C68 0.000 0 0 | \n",
" |_ child 98 ----> ATOM DELAYATOMICSEQUENCE D30 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D30 14995.860 0 2 | Axis = none \n",
" |_ child 99 ----> ATOM ATOMICSEQUENCE C69 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R24 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G55 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 100 ----> ATOM ATOMICSEQUENCE C70 0.000 0 0 | \n",
" |_ child 101 ----> ATOM DELAYATOMICSEQUENCE D31 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D31 14995.720 0 2 | Axis = none \n",
" |_ child 102 ----> ATOM ATOMICSEQUENCE C71 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G56 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S8 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 103 ----> ATOM ATOMICSEQUENCE C72 0.000 0 0 | \n",
" |_ child 104 ----> ATOM DELAYATOMICSEQUENCE D32119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D32119995.720 0 2 | Axis = none \n",
" |_ child 105 ----> ATOM ATOMICSEQUENCE C73 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R25 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G57 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 106 ----> ATOM ATOMICSEQUENCE C74 0.000 0 0 | \n",
" |_ child 107 ----> ATOM DELAYATOMICSEQUENCE D33 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D33 9997.870 0 2 | Axis = none \n",
" |_ child 108 ----> ATOM ATOMICSEQUENCE C75 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R26 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G58 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 109 ----> ATOM ATOMICSEQUENCE C76 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G59 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G60 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 110 ----> ATOM ATOMICSEQUENCE C77 0.000 0 0 | \n",
" |_ child 111 ----> ATOM DELAYATOMICSEQUENCE D34 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D34 14995.860 0 2 | Axis = none \n",
" |_ child 112 ----> ATOM ATOMICSEQUENCE C78 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R27 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G61 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 113 ----> ATOM ATOMICSEQUENCE C79 0.000 0 0 | \n",
" |_ child 114 ----> ATOM DELAYATOMICSEQUENCE D35 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D35 14995.720 0 2 | Axis = none \n",
" |_ child 115 ----> ATOM ATOMICSEQUENCE C80 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G62 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S9 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 116 ----> ATOM ATOMICSEQUENCE C81 0.000 0 0 | \n",
" |_ child 117 ----> ATOM DELAYATOMICSEQUENCE D36119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D36119995.720 0 2 | Axis = none \n",
" |_ child 118 ----> ATOM ATOMICSEQUENCE C82 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R28 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G63 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 119 ----> ATOM ATOMICSEQUENCE C83 0.000 0 0 | \n",
" |_ child 120 ----> ATOM DELAYATOMICSEQUENCE D37 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D37 9997.870 0 2 | Axis = none \n",
" |_ child 121 ----> ATOM ATOMICSEQUENCE C84 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R29 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G64 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 122 ----> ATOM ATOMICSEQUENCE C85 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G65 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G66 2.000 0 4 | Axis = GY , Area = 0.0245437 , FlatTop: (Area,time)= (0.0244204,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G67 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 123 ----> ATOM ATOMICSEQUENCE C86 0.000 0 0 | \n",
" |_ child 124 ----> ATOM DELAYATOMICSEQUENCE D38 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D38 14995.860 0 2 | Axis = none \n",
" |_ child 125 ----> ATOM ATOMICSEQUENCE C87 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R30 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G68 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 126 ----> ATOM ATOMICSEQUENCE C88 0.000 0 0 | \n",
" |_ child 127 ----> ATOM DELAYATOMICSEQUENCE D39 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D39 14995.720 0 2 | Axis = none \n",
" |_ child 128 ----> ATOM ATOMICSEQUENCE C89 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G69 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S10 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 129 ----> ATOM ATOMICSEQUENCE C90 0.000 0 0 | \n",
" |_ child 130 ----> ATOM DELAYATOMICSEQUENCE D40119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D40119995.720 0 2 | Axis = none \n",
" |_ child 131 ----> ATOM ATOMICSEQUENCE C91 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R31 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G70 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 132 ----> ATOM ATOMICSEQUENCE C92 0.000 0 0 | \n",
" |_ child 133 ----> ATOM DELAYATOMICSEQUENCE D41 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D41 9997.870 0 2 | Axis = none \n",
" |_ child 134 ----> ATOM ATOMICSEQUENCE C93 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R32 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G71 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 135 ----> ATOM ATOMICSEQUENCE C94 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G72 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G73 2.000 0 4 | Axis = GY , Area = 0.0490874 , FlatTop: (Area,time)= (0.0488407,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G74 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 136 ----> ATOM ATOMICSEQUENCE C95 0.000 0 0 | \n",
" |_ child 137 ----> ATOM DELAYATOMICSEQUENCE D42 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D42 14995.860 0 2 | Axis = none \n",
" |_ child 138 ----> ATOM ATOMICSEQUENCE C96 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R33 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G75 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 139 ----> ATOM ATOMICSEQUENCE C97 0.000 0 0 | \n",
" |_ child 140 ----> ATOM DELAYATOMICSEQUENCE D43 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D43 14995.720 0 2 | Axis = none \n",
" |_ child 141 ----> ATOM ATOMICSEQUENCE C98 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G76 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S11 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 142 ----> ATOM ATOMICSEQUENCE C99 0.000 0 0 | \n",
" |_ child 143 ----> ATOM DELAYATOMICSEQUENCE D44119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D44119995.720 0 2 | Axis = none \n",
" |_ child 144 ----> ATOM ATOMICSEQUENCE C100 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R34 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G77 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 145 ----> ATOM ATOMICSEQUENCE C101 0.000 0 0 | \n",
" |_ child 146 ----> ATOM DELAYATOMICSEQUENCE D45 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D45 9997.870 0 2 | Axis = none \n",
" |_ child 147 ----> ATOM ATOMICSEQUENCE C102 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R35 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G78 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 148 ----> ATOM ATOMICSEQUENCE C103 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G79 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G80 2.000 0 4 | Axis = GY , Area = 0.0736311 , FlatTop: (Area,time)= (0.0732611,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G81 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 149 ----> ATOM ATOMICSEQUENCE C104 0.000 0 0 | \n",
" |_ child 150 ----> ATOM DELAYATOMICSEQUENCE D46 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D46 14995.860 0 2 | Axis = none \n",
" |_ child 151 ----> ATOM ATOMICSEQUENCE C105 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R36 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G82 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 152 ----> ATOM ATOMICSEQUENCE C106 0.000 0 0 | \n",
" |_ child 153 ----> ATOM DELAYATOMICSEQUENCE D47 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D47 14995.720 0 2 | Axis = none \n",
" |_ child 154 ----> ATOM ATOMICSEQUENCE C107 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G83 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S12 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 155 ----> ATOM ATOMICSEQUENCE C108 0.000 0 0 | \n",
" |_ child 156 ----> ATOM DELAYATOMICSEQUENCE D48119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D48119995.720 0 2 | Axis = none \n",
" |_ child 157 ----> ATOM ATOMICSEQUENCE C109 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R37 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G84 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 158 ----> ATOM ATOMICSEQUENCE C110 0.000 0 0 | \n",
" |_ child 159 ----> ATOM DELAYATOMICSEQUENCE D49 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D49 9997.870 0 2 | Axis = none \n",
" |_ child 160 ----> ATOM ATOMICSEQUENCE C111 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R38 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G85 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 161 ----> ATOM ATOMICSEQUENCE C112 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G86 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G87 2.000 0 4 | Axis = GY , Area = 0.0981748 , FlatTop: (Area,time)= (0.0976814,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G88 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 162 ----> ATOM ATOMICSEQUENCE C113 0.000 0 0 | \n",
" |_ child 163 ----> ATOM DELAYATOMICSEQUENCE D50 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D50 14995.860 0 2 | Axis = none \n",
" |_ child 164 ----> ATOM ATOMICSEQUENCE C114 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R39 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G89 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 165 ----> ATOM ATOMICSEQUENCE C115 0.000 0 0 | \n",
" |_ child 166 ----> ATOM DELAYATOMICSEQUENCE D51 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D51 14995.720 0 2 | Axis = none \n",
" |_ child 167 ----> ATOM ATOMICSEQUENCE C116 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G90 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S13 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 168 ----> ATOM ATOMICSEQUENCE C117 0.000 0 0 | \n",
" |_ child 169 ----> ATOM DELAYATOMICSEQUENCE D52119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D52119995.720 0 2 | Axis = none \n",
" |_ child 170 ----> ATOM ATOMICSEQUENCE C118 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R40 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G91 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 171 ----> ATOM ATOMICSEQUENCE C119 0.000 0 0 | \n",
" |_ child 172 ----> ATOM DELAYATOMICSEQUENCE D53 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D53 9997.870 0 2 | Axis = none \n",
" |_ child 173 ----> ATOM ATOMICSEQUENCE C120 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R41 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G92 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 174 ----> ATOM ATOMICSEQUENCE C121 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G93 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G94 2.000 0 4 | Axis = GY , Area = 0.122718 , FlatTop: (Area,time)= (0.122102,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G95 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 175 ----> ATOM ATOMICSEQUENCE C122 0.000 0 0 | \n",
" |_ child 176 ----> ATOM DELAYATOMICSEQUENCE D54 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D54 14995.860 0 2 | Axis = none \n",
" |_ child 177 ----> ATOM ATOMICSEQUENCE C123 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R42 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G96 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 178 ----> ATOM ATOMICSEQUENCE C124 0.000 0 0 | \n",
" |_ child 179 ----> ATOM DELAYATOMICSEQUENCE D55 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D55 14995.720 0 2 | Axis = none \n",
" |_ child 180 ----> ATOM ATOMICSEQUENCE C125 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G97 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S14 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 181 ----> ATOM ATOMICSEQUENCE C126 0.000 0 0 | \n",
" |_ child 182 ----> ATOM DELAYATOMICSEQUENCE D56119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D56119995.720 0 2 | Axis = none \n",
" |_ child 183 ----> ATOM ATOMICSEQUENCE C127 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R43 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G98 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 184 ----> ATOM ATOMICSEQUENCE C128 0.000 0 0 | \n",
" |_ child 185 ----> ATOM DELAYATOMICSEQUENCE D57 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D57 9997.870 0 2 | Axis = none \n",
" |_ child 186 ----> ATOM ATOMICSEQUENCE C129 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R44 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G99 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 187 ----> ATOM ATOMICSEQUENCE C130 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G100 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G101 2.000 0 4 | Axis = GY , Area = 0.147262 , FlatTop: (Area,time)= (0.146522,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G102 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 188 ----> ATOM ATOMICSEQUENCE C131 0.000 0 0 | \n",
" |_ child 189 ----> ATOM DELAYATOMICSEQUENCE D58 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D58 14995.860 0 2 | Axis = none \n",
" |_ child 190 ----> ATOM ATOMICSEQUENCE C132 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R45 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G103 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 191 ----> ATOM ATOMICSEQUENCE C133 0.000 0 0 | \n",
" |_ child 192 ----> ATOM DELAYATOMICSEQUENCE D59 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D59 14995.720 0 2 | Axis = none \n",
" |_ child 193 ----> ATOM ATOMICSEQUENCE C134 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G104 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S15 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 194 ----> ATOM ATOMICSEQUENCE C135 0.000 0 0 | \n",
" |_ child 195 ----> ATOM DELAYATOMICSEQUENCE D60119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D60119995.720 0 2 | Axis = none \n",
" |_ child 196 ----> ATOM ATOMICSEQUENCE C136 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R46 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G105 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 197 ----> ATOM ATOMICSEQUENCE C137 0.000 0 0 | \n",
" |_ child 198 ----> ATOM DELAYATOMICSEQUENCE D61 9997.870 0 2 | DelayType = B2E , Delay = 9997.87\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D61 9997.870 0 2 | Axis = none \n",
" |_ child 199 ----> ATOM ATOMICSEQUENCE C138 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R47 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_2.h5,0.288128,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G106 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 200 ----> ATOM ATOMICSEQUENCE C139 2.000 0 6 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G107 2.000 0 4 | Axis = GX , Area = 0.196656 , FlatTop: (Area,time)= (0.195668,1.98)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G108 2.000 0 4 | Axis = GY , Area = 0.171806 , FlatTop: (Area,time)= (0.170943,1.98)\n",
" |_ child 3 --> PULSE TRAPGRADPULSE G109 2.000 0 4 | Axis = GZ , Area = -1.28177 , FlatTop: (Area,time)= (-1.26882,1.96)\n",
" |_ child 201 ----> ATOM ATOMICSEQUENCE C140 0.000 0 0 | \n",
" |_ child 202 ----> ATOM DELAYATOMICSEQUENCE D62 14995.860 0 2 | DelayType = B2E , Delay = 14995.9\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D62 14995.860 0 2 | Axis = none \n",
" |_ child 203 ----> ATOM ATOMICSEQUENCE C141 2.140 0 2034 | \n",
" |_ child 1 --> PULSE EXTERNALRFPULSE R48 2.029 0 2032 | Axis = RF , InitDelay = 0.1 , (Flipangle,Phase,Bandwidth,Channel,Symmetry) = (0,0,1e+16,0,0.5) , (Filename,Energy,TPOIs) = (rf_1.h5,3.45753,2032)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE G110 2.080 0 4 | Axis = GZ , InitDelay = 0.06 , Area = 2.56354 , FlatTop: (Area,time)= (2.51327,2)\n",
" |_ child 204 ----> ATOM ATOMICSEQUENCE C142 0.000 0 0 | \n",
" |_ child 205 ----> ATOM DELAYATOMICSEQUENCE D63 14995.720 0 2 | DelayType = B2E , Delay = 14995.7\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D63 14995.720 0 2 | Axis = none \n",
" |_ child 206 ----> ATOM ATOMICSEQUENCE C143 6.420 16 22 | \n",
" |_ child 1 --> PULSE TRAPGRADPULSE G111 6.420 0 4 | Axis = GX , Area = 0.393313 , FlatTop: (Area,time)= (0.392699,6.4)\n",
" |_ child 2 --> PULSE TRAPGRADPULSE S16 6.400 16 20 | Axis = GX , InitDelay = 0.02 , Area = 0 , FlatTop: (Area,time)= (0,6.4)\n",
" |_ child 207 ----> ATOM ATOMICSEQUENCE C144 0.000 0 0 | \n",
" |_ child 208 ----> ATOM DELAYATOMICSEQUENCE D64119995.720 0 2 | DelayType = B2E , Delay = 119996\n",
" |_ child 1 --> PULSE EMPTYPULSE eP_D64119995.720 0 2 | Axis = none \n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "e8awrRCaIiNo"
},
"source": [
"Plot the resulting waveforms, as interpreted and generated by JEMRIS: "
]
},
{
"cell_type": "code",
"metadata": {
"id": "MDqodOQbIOIh",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"outputId": "e6227943-ea8d-4618-df32-6e1fc847580f"
},
"source": [
"# Read sequence diagram and plot\n",
"data = h5py.File('irse16_pulseq.h5','r')\n",
"diag = data['seqdiag']\n",
"\n",
"t = diag['T']\n",
"gx = diag['GX']\n",
"gy = diag['GY']\n",
"gz = diag['GZ']\n",
"rxp = diag['RXP']\n",
"txm = diag['TXM']\n",
"txp = diag['TXP']\n",
"\n",
"ylist = [txm, txp, gx, gy, gz, rxp]\n",
"title_list = ['RF Tx magnitude', 'RF Tx phase', 'Gx', 'Gy', 'Gz', 'RF Rx phase']\n",
"styles = ['r-', 'g-', 'k-', 'k-', 'k-', 'bx']\n",
"plt.figure(1)\n",
"for v in range(6):\n",
" plt.subplot(6,1,v+1)\n",
" plt.plot(t, ylist[v], styles[v])\n",
" plt.title(title_list[v])\n",
" plt.xlabel('Time')\n",
"\n",
"plt.show()\n",
"\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aCJeu74Ie7xx"
},
"source": [
"## Demo 3: create_and_save_phantom \n",
"Make standard phantom from Virtual Scanner and convert it into JEMRIS-compatible (.h5) file format\n",
"\n",
"Note: this must be run before the sim_jemris demo can run "
]
},
{
"cell_type": "code",
"metadata": {
"id": "tSSHSQ13XU6K",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 88
},
"outputId": "4debeba6-7e55-4407-efdf-af2f562ae50a"
},
"source": [
"%cd /content \n",
"# Creates a virtual scanner phantom and save it as an .h5 file (per JEMRIS standard)\n",
"phantom_info = {'fov': 0.256, 'N': 32, 'type': 'cylindrical', 'dim': 2, 'dir': 'z'}\n",
"create_and_save_phantom(phantom_info, out_folder=utest_path)\n",
"print(\"The phantom is saved as cylindrical.h5\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"Making cylindrical phantom\n",
"\n",
"The phantom is saved as cylindrical.h5\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oFQTbA8fJt-U"
},
"source": [
"## Demo 4: sim_jemris\n",
"\n",
"1. Take a list of existing sim file names and generate simu.xml \n",
"2. Runs JEMRIS on the command line using these files\n",
"3. Reads the JEMRIS output and return them as a dictionary of data (in numpy array)\n",
"\n",
"Make sure you run the phantom creation code above first. \n",
" "
]
},
{
"cell_type": "code",
"metadata": {
"id": "3buUr0Raijx3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 464
},
"outputId": "59675e65-8c94-48a8-c4ac-a7d2c99b4486"
},
"source": [
"# Download gre32.xml from Github for sim purposes \n",
"%cd /content/sim/utest_outputs \n",
"!wget https://raw.githubusercontent.com/imr-framework/virtual-scanner/dev/virtualscanner/server/simulation/py2jemris/sim/utest_outputs/gre32.xml\n",
"!wget https://raw.githubusercontent.com/imr-framework/virtual-scanner/dev/virtualscanner/server/simulation/py2jemris/sim/uniform.xml\n",
"%cd ../.."
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content/sim/utest_outputs\n",
"--2020-08-27 18:02:37-- https://raw.githubusercontent.com/imr-framework/virtual-scanner/dev/virtualscanner/server/simulation/py2jemris/sim/utest_outputs/gre32.xml\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 1500 (1.5K) [text/plain]\n",
"Saving to: ‘gre32.xml’\n",
"\n",
"gre32.xml 100%[===================>] 1.46K --.-KB/s in 0s \n",
"\n",
"2020-08-27 18:02:38 (13.3 MB/s) - ‘gre32.xml’ saved [1500/1500]\n",
"\n",
"--2020-08-27 18:02:38-- https://raw.githubusercontent.com/imr-framework/virtual-scanner/dev/virtualscanner/server/simulation/py2jemris/sim/uniform.xml\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 79 [text/plain]\n",
"Saving to: ‘uniform.xml’\n",
"\n",
"uniform.xml 100%[===================>] 79 --.-KB/s in 0s \n",
"\n",
"2020-08-27 18:02:38 (2.94 MB/s) - ‘uniform.xml’ saved [79/79]\n",
"\n",
"/content\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "R9J67xCcht3k",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 177
},
"outputId": "521c8492-1253-45d2-ea1b-fbf46268dac0"
},
"source": [
"%cd /content\n",
"\n",
"#******************** grab gre32.xml *****************************#\n",
"list_sim_orig = {'seq_xml': 'gre32.xml', 'pht_h5': 'cylindrical.h5', 'tx_xml':'uniform.xml',\n",
" 'rx_xml': 'uniform.xml'}\n",
"out = sim_jemris(list_sim_orig, working_folder = utest_path)\n",
"\n",
"%cd /content/sim/utest_outputs \n",
"savemat('data32_orig.mat',out)\n",
"print('Data is saved in py2jemris/sim/utest_outputs/data32_orig.mat')\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"Simulating using JEMRIS ...\n",
"0\n",
"0\n",
"sim/utest_outputs/signals.h5\n",
"/content/sim/utest_outputs/signals.h5\n",
"True\n",
"/content/sim/utest_outputs\n",
"Data is saved in py2jemris/sim/utest_outputs/data32_orig.mat\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Q3hYZ0QpG-c9",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "e54cde32-e91b-4c1e-ad6e-8219e82577d5"
},
"source": [
"# Run this cell after JEMRIS finishes to save data \n",
"%cd /content/\n",
"savemat('data32_orig.mat',out)\n",
"%cd /content \n",
"print('Data is saved in py2jemris/sim/utest_outputs/data32_orig.mat')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n",
"/content\n",
"Data is saved in py2jemris/sim/utest_outputs/data32_orig.mat\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mZnTYGkWL6eq",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
},
"outputId": "4dcc0607-6be3-4f9a-f0bb-7b38186669d8"
},
"source": [
" # Optional code to download data \n",
" %cd /content \n",
" from google.colab import files\n",
" files.download('sim/utest_outputs/data32_orig.mat') # Download locally"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"application/javascript": [
"download(\"download_6c71fc35-2c5b-4b02-85e1-d81f2ec21c2c\", \"data32_orig.mat\", 49472)"
],
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yDwQPa7PLkK5"
},
"source": [
"## **Final demo: Simulation pipeline for checking custom seq files**\n",
"Option 1: Upload your own seq file to be simulated (this is to be tested)!\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Z-5vrFmjKCVS",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 427
},
"outputId": "0ce89f01-6a1f-46ea-9dff-8d88f62ee29c"
},
"source": [
"# Option 1: Upload your seq file\n",
"from google.colab import files\n",
"%cd /content/sim/custom\n",
"uploaded = files.upload()\n",
"\n",
"for fn in uploaded.keys():\n",
" print('User uploaded file \"{name}\" with length {length} bytes'.format(\n",
" name=fn, length=len(uploaded[fn])))\n",
"\n",
"seqfile = uploaded.keys()[0] # Use the 1st file uploaded\n",
"# Alternatively, upload on the Files panel & change the filename (it needs to be inside /content/sim/custom) above "
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/content/sim/custom\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "error",
"ename": "MessageError",
"evalue": "ignored",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mMessageError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mgoogle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolab\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mfiles\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cd /content/sim/custom'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0muploaded\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfiles\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfn\u001b[0m \u001b[0;32min\u001b[0m \u001b[0muploaded\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/google/colab/files.py\u001b[0m in \u001b[0;36mupload\u001b[0;34m()\u001b[0m\n\u001b[1;32m 62\u001b[0m result = _output.eval_js(\n\u001b[1;32m 63\u001b[0m 'google.colab._files._uploadFiles(\"{input_id}\", \"{output_id}\")'.format(\n\u001b[0;32m---> 64\u001b[0;31m input_id=input_id, output_id=output_id))\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0mfiles\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_collections\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefaultdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_six\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbinary_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;31m# Mapping from original filename to filename as saved locally.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/google/colab/output/_js.py\u001b[0m in \u001b[0;36meval_js\u001b[0;34m(script, ignore_result)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mignore_result\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 39\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_message\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reply_from_input\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/google/colab/_message.py\u001b[0m in \u001b[0;36mread_reply_from_input\u001b[0;34m(message_id, timeout_sec)\u001b[0m\n\u001b[1;32m 104\u001b[0m reply.get('colab_msg_id') == message_id):\n\u001b[1;32m 105\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'error'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mreply\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 106\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mMessageError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreply\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'error'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 107\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mreply\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'data'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mMessageError\u001b[0m: TypeError: Cannot read property '_uploadFiles' of undefined"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JGYN7Dmk-sei"
},
"source": [
"Option 2: Construct a default sequence here instead"
]
},
{
"cell_type": "code",
"metadata": {
"id": "8bg7X-M4Q53d"
},
"source": [
"\n",
"# We use one from Virtual Scanner \n",
"%cd /content/sim/custom \n",
"make_pulseq_se_oblique(fov=0.256,n=5, thk=0.005, tr=0.2, te=0.05, fa=90,\n",
" enc='xyz', slice_locs=[0], write=True)\n",
"seqfile = 'se_fov256mm_Nf15_Np15_TE50ms_TR200ms_FA90deg.seq'"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "3c2fSFNY-2_H"
},
"source": [
"Next, we grab uniform.xml, the default/ideal RF coil configuration file used in JEMRIS."
]
},
{
"cell_type": "code",
"metadata": {
"id": "F8yneD4IRcUo"
},
"source": [
"# Download uniform.xml from Github for sim purposes \n",
"%cd /content/sim/custom \n",
"!wget https://raw.githubusercontent.com/imr-framework/virtual-scanner/dev/virtualscanner/server/simulation/py2jemris/sim/uniform.xml\n",
"%cd ../.."
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "shiud7Ed_Avn"
},
"source": [
"Let's run the `simulate_pulseq_jemris()` function, designed for quick testing of custom pulseq files. "
]
},
{
"cell_type": "code",
"metadata": {
"id": "HzSqDI9VZDEp"
},
"source": [
"# Go back\n",
"%cd /content\n",
"\n",
"# Define phantom \n",
"# Using N=15; change this to have higher-resolution phantoms when needed \n",
"phantom_info = {'fov': 0.256, 'N': 5, 'type': 'cylindrical', 'dim': 2, 'dir': 'z'}\n",
"sim_name = 'custom'\n",
"\n",
"out = simulate_pulseq_jemris(seq_path='sim/custom/' + seqfile, phantom_info=phantom_info, sim_name=sim_name,\n",
" coil_fov=0.256, env_option='colab')\n",
"print(out)\n",
"print(\"Simulated!\")"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "MYuZSlkX_LyU"
},
"source": [
"Then, load the signal, perform basic Cartesian reconstruction, and display: "
]
},
{
"cell_type": "code",
"metadata": {
"id": "g_SUHN5Cx-R-"
},
"source": [
"%cd /content \n",
"kk, im, images = recon_jemris(file='sim/' + sim_name + '/signals.h5', dims=[15, 15])\n",
"\n",
"savemat('sim/' + sim_name + '/pulseq_sim_output.mat', {'images': images, 'kspace': kk, 'imspace': im})\n",
"print('Simulation result is in sim/custom/pulseq_sim_output.mat')\n",
"\n",
"# Plot results\n",
"plt.figure(1)\n",
"plt.gray()\n",
"plt.imshow(np.squeeze(images))\n",
"plt.show()\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "zT9XgPrn_Tt4"
},
"source": [
"Run the following cell to download the data as a MATLAB .mat file. "
]
},
{
"cell_type": "code",
"metadata": {
"id": "weQ2Sh1Re182"
},
"source": [
" # Optional code to download data \n",
" %cd /content \n",
" from google.colab import files\n",
" files.download('sim/custom/pulseq_sim_output.mat') # Download locally"
],
"execution_count": null,
"outputs": []
}
]
}