From 5374f1d80ed2e0fa3e2b4e21d9e3d9b0fc1d250e Mon Sep 17 00:00:00 2001 From: Ziv Yaniv Date: Thu, 5 Feb 2026 12:46:12 -0500 Subject: [PATCH 1/2] Update the R setup. Move from old style Python wrapping of code in R to new style, rPython replaced by reticulate. --- R/00_Setup.ipynb | 36 ++++- R/22_Transforms.ipynb | 14 +- R/300_Segmentation_Overview.ipynb | 65 +++++++- ...entation_Thresholding_Edge_Detection.ipynb | 53 +++++-- R/34_Segmentation_Evaluation.ipynb | 59 +++++-- R/35_Cell_Segmentation.ipynb | 69 +++++++-- R/60_Registration_Introduction.ipynb | 48 ++++-- ..._Registration_Introduction_Continued.ipynb | 94 +++++++++--- R/65_Registration_FFD.ipynb | 55 +++++-- R/66_Registration_Demons.ipynb | 40 ++++- R/70_Data_Augmentation.ipynb | 63 ++++++-- R/Image_Basics.ipynb | 79 ++++++++-- R/README.md | 3 +- R/R_style_image.ipynb | 145 ++++++++++++++---- R/downloaddata.R | 43 ++++-- 15 files changed, 686 insertions(+), 180 deletions(-) mode change 100644 => 100755 R/downloaddata.R diff --git a/R/00_Setup.ipynb b/R/00_Setup.ipynb index ba1ed783..d95836f0 100644 --- a/R/00_Setup.ipynb +++ b/R/00_Setup.ipynb @@ -32,12 +32,18 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "vscode": { + "languageId": "r" + } }, "outputs": [], "source": [ "# check that all packages are installed (see requirements.txt file)\n", - "required_packages <- c(\"SimpleITK\", \"rPython\", \"scatterplot3d\", \"tidyr\", \"ggplot2\", \"xtable\", \"purrr\")\n", + "required_packages <- c(\"SimpleITK\", \"reticulate\", \"scatterplot3d\", \"tidyr\", \"ggplot2\", \"xtable\", \"purrr\")\n", "missing_packages <- required_packages[!unlist(lapply(required_packages, require, character.only = TRUE, quietly = TRUE))]" ] }, @@ -45,7 +51,13 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "vscode": { + "languageId": "r" + } }, "outputs": [], "source": [ @@ -67,8 +79,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, - "simpleitk_error_allowed": "Exception in SITK" + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "simpleitk_error_allowed": "Exception in SITK", + "vscode": { + "languageId": "r" + } }, "outputs": [], "source": [ @@ -91,7 +109,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "vscode": { + "languageId": "r" + } }, "outputs": [], "source": [ @@ -111,9 +131,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/R/22_Transforms.ipynb b/R/22_Transforms.ipynb index cbed6270..4abe8033 100644 --- a/R/22_Transforms.ipynb +++ b/R/22_Transforms.ipynb @@ -482,7 +482,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "## Similarity to Affine [3D]\n", @@ -935,7 +938,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "## Writing and Reading\n", @@ -1030,9 +1036,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.5.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/300_Segmentation_Overview.ipynb b/R/300_Segmentation_Overview.ipynb index af479600..b0f66d03 100644 --- a/R/300_Segmentation_Overview.ipynb +++ b/R/300_Segmentation_Overview.ipynb @@ -15,7 +15,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -36,6 +39,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -62,6 +68,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -77,6 +86,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -101,6 +113,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -137,6 +152,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -165,6 +183,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -188,6 +209,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -213,6 +237,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -242,6 +269,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -265,6 +295,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -292,6 +325,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -324,7 +360,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -347,7 +386,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -365,7 +407,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -376,7 +421,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -397,6 +445,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -418,9 +469,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/33_Segmentation_Thresholding_Edge_Detection.ipynb b/R/33_Segmentation_Thresholding_Edge_Detection.ipynb index 2738c3be..7eecbb8c 100644 --- a/R/33_Segmentation_Thresholding_Edge_Detection.ipynb +++ b/R/33_Segmentation_Thresholding_Edge_Detection.ipynb @@ -22,7 +22,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -43,6 +46,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -63,6 +69,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -104,7 +113,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -180,7 +192,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -215,6 +230,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -244,7 +262,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -259,7 +280,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "Now, solve using R's linear model fitting. We also weigh the edge points based on the gradient magnitude." @@ -269,7 +293,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -289,7 +316,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "## You've made it to the end of the notebook, you deserve to know the correct answer\n", @@ -301,7 +331,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [] @@ -319,9 +352,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/R/34_Segmentation_Evaluation.ipynb b/R/34_Segmentation_Evaluation.ipynb index fb322573..35f21394 100644 --- a/R/34_Segmentation_Evaluation.ipynb +++ b/R/34_Segmentation_Evaluation.ipynb @@ -31,7 +31,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -53,7 +56,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -125,7 +131,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -155,7 +164,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "## Derive a reference\n", @@ -169,7 +181,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -188,7 +203,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -209,7 +227,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "## Evaluate segmentations using the reference\n", @@ -226,7 +247,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -273,7 +297,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -311,7 +338,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -341,7 +371,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -366,9 +399,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/35_Cell_Segmentation.ipynb b/R/35_Cell_Segmentation.ipynb index 44507917..370289e9 100644 --- a/R/35_Cell_Segmentation.ipynb +++ b/R/35_Cell_Segmentation.ipynb @@ -69,7 +69,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -107,7 +110,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -125,7 +131,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -185,7 +194,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -205,7 +217,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -230,7 +245,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -255,7 +273,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -273,7 +294,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -284,7 +308,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -302,7 +329,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -320,7 +350,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -351,7 +384,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -402,7 +438,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -426,9 +465,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/R/60_Registration_Introduction.ipynb b/R/60_Registration_Introduction.ipynb index a2b94a5a..e30e44e8 100644 --- a/R/60_Registration_Introduction.ipynb +++ b/R/60_Registration_Introduction.ipynb @@ -3,7 +3,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "

Introduction to SimpleITKv4 Registration

\n", @@ -119,7 +122,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -148,7 +154,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -240,6 +249,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -254,7 +266,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "## Initial Alignment\n", @@ -267,6 +282,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -317,7 +335,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -374,7 +395,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -394,6 +418,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -413,7 +440,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -435,9 +465,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/61_Registration_Introduction_Continued.ipynb b/R/61_Registration_Introduction_Continued.ipynb index f5b4cd2f..9244c7b7 100644 --- a/R/61_Registration_Introduction_Continued.ipynb +++ b/R/61_Registration_Introduction_Continued.ipynb @@ -21,7 +21,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -52,7 +55,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -125,7 +131,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -144,7 +153,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -188,7 +200,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -204,7 +219,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "Look at the transformation, what type is it?" @@ -214,7 +232,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -224,7 +245,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "## Final registration" @@ -233,7 +257,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "### Version 1\n", @@ -261,7 +288,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -287,7 +317,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -309,7 +342,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -346,7 +382,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -375,7 +414,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -397,7 +439,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -420,7 +465,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -449,7 +497,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -471,7 +522,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -492,9 +546,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/65_Registration_FFD.ipynb b/R/65_Registration_FFD.ipynb index 01c438da..8772636d 100644 --- a/R/65_Registration_FFD.ipynb +++ b/R/65_Registration_FFD.ipynb @@ -22,7 +22,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -47,7 +50,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -72,6 +78,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -101,7 +110,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "source": [ "### Getting to know your data\n", @@ -115,7 +127,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -150,7 +165,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -203,7 +221,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -239,7 +260,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "Another option for evaluating the registration is to use segmentation. In this case, we transfer the segmentation from one image to the other and compare the overlaps, both visually, and quantitatively.\n", @@ -251,7 +275,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -271,6 +298,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -314,7 +344,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [] @@ -333,9 +366,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.3.2" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/66_Registration_Demons.ipynb b/R/66_Registration_Demons.ipynb index 407b2452..cc03e456 100644 --- a/R/66_Registration_Demons.ipynb +++ b/R/66_Registration_Demons.ipynb @@ -22,7 +22,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -52,7 +55,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -77,6 +83,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -119,7 +128,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -165,7 +177,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -204,6 +219,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -245,7 +263,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -359,7 +380,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -405,9 +429,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/R/70_Data_Augmentation.ipynb b/R/70_Data_Augmentation.ipynb index 8f628117..f96437fa 100644 --- a/R/70_Data_Augmentation.ipynb +++ b/R/70_Data_Augmentation.ipynb @@ -50,7 +50,7 @@ "execution_count": null, "metadata": { "simpleitk_error_allowed": "Exception in SITK" - }, + }, "outputs": [], "source": [ "# The image we will resample (a grid).\n", @@ -150,7 +150,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -183,7 +186,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -287,7 +293,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -343,7 +352,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -385,7 +397,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "Before we can use the generate_images function we need to compute the transformation which will map points between the reference image and the current image as shown in the code cell below. \n", @@ -452,7 +467,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "## What about flipping\n", @@ -474,6 +492,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -532,6 +553,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -583,7 +607,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "# Augmentation using intensity modifications\n", @@ -611,7 +638,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -698,6 +728,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -727,6 +760,9 @@ "execution_count": null, "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -766,7 +802,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [] @@ -784,9 +823,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.4.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/R/Image_Basics.ipynb b/R/Image_Basics.ipynb index c3947421..b72c1464 100644 --- a/R/Image_Basics.ipynb +++ b/R/Image_Basics.ipynb @@ -28,7 +28,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -52,7 +55,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -77,7 +83,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -96,7 +105,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -115,7 +127,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -136,7 +151,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -154,7 +172,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -171,7 +192,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "R, like python and MATLAB, has a flexible notation for accessing elements of arrays. SimpleITK adopts the same notation for accessing pixels (or sub images, which will be covered in a subsequent notebook). First, lets get set up so that we can display an image in the notebook." @@ -181,7 +205,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -229,7 +256,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -240,7 +270,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -259,7 +292,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -279,7 +315,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -300,7 +339,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -311,7 +353,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [] @@ -329,9 +374,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/R/README.md b/R/README.md index fa8cd96d..45025fcb 100644 --- a/R/README.md +++ b/R/README.md @@ -5,7 +5,7 @@ 1. Install [R](https://www.r-project.org/) on your machine. 2. [Install](http://jupyter.readthedocs.org/en/latest/install.html) the Jupyter environment. 3. [Install](https://github.com/IRkernel/IRkernel) the R kernel for Jupyter. -4. Install the following R packages, at the R prompt: install.packages(c("rPython", "scatterplot3d", "tidyr", "ggplot2", "xtable", "purrr")). +4. Install the following R packages, at the R prompt: install.packages(c("reticulate", "scatterplot3d", "tidyr", "ggplot2", "xtable", "purrr")). ### Install SimpleITK @@ -14,7 +14,6 @@ A remotes based installer is [available on github](https://github.com/SimpleITK/ A manual approach to compiling and installing SimpleITK with the R wrapping turned on is described [here](https://simpleitk.readthedocs.io/en/latest/building.html). - ### Downloading Data The data is automatically downloaded to the "Data" directory when you execute the notebooks. diff --git a/R/R_style_image.ipynb b/R/R_style_image.ipynb index ffc3147a..d84026bd 100644 --- a/R/R_style_image.ipynb +++ b/R/R_style_image.ipynb @@ -15,7 +15,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -53,7 +56,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -79,7 +85,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -97,7 +106,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -108,7 +120,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -121,7 +136,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -133,7 +151,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -144,7 +165,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -162,7 +186,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -184,6 +211,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_expected": "spacing is not uniform" }, "outputs": [], @@ -204,7 +234,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -223,7 +256,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -242,7 +278,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -253,7 +292,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -264,7 +306,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -282,7 +327,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -301,7 +349,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -316,7 +367,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -327,7 +381,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -340,7 +397,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -360,6 +420,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, "simpleitk_error_expected": "Exception in SITK" }, "outputs": [], @@ -379,7 +442,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -398,7 +464,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -409,7 +478,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -420,7 +492,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -431,7 +506,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -441,7 +519,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "## It's about time\n", @@ -455,7 +536,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -489,7 +573,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -511,9 +598,9 @@ "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", - "version": "3.2.3" + "version": "4.5.1" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/R/downloaddata.R b/R/downloaddata.R old mode 100644 new mode 100755 index 74d0d764..fce71f83 --- a/R/downloaddata.R +++ b/R/downloaddata.R @@ -1,29 +1,42 @@ # -# This script utilizes the existing Python download script via the R rPython package. To install the package, from the R prompt: -# install.packages("rPython") and then select the mirror from which to download it. +# This script utilizes the existing Python download script via the R reticulate package. To install the package, from the R prompt: +# install.packages("reticulate") and then select the mirror from which to download it. # Note that all of the feedback with regard to download progress goes to the console and is not visible in the notebook as is # the case with the Python notebooks. # -if (!require(rPython)) { - stop("rPython library not installed - run install.packages('rPython')\n") +if (!require(reticulate)) { + stop("reticulate library not installed - run install.packages('reticulate')\n") } # Find the python script directory, under the Utilities directory in the repository. We are assuming here that this file # is sourced with chdir equals true [source('ddata.R', chdir=T)] python_script_dir <- normalizePath("../Utilities") -python.exec("import os") -python.exec("import sys") -python.exec(paste("sys.path.append('", python_script_dir,"')",sep="")) -python.exec("from downloaddata import fetch_data, fetch_data_all") +# Import Python's sys module and add the Utilities directory to the path +sys <- import("sys", convert = FALSE) -fetch_data<-function(cache_file_name, verify=FALSE, cache_directory_name="../Data"){ - v<- if(verify) 'True' else 'False' - python.exec( paste("filename = fetch_data(cache_file_name='",cache_file_name,"',verify=",v,", cache_directory_name='",normalizePath(cache_directory_name),"')", sep="")) - python.get("filename") +# The Python method returns None, suppress output using invisible() in R +invisible(sys$path$insert(0L, python_script_dir)) + +# Import the downloaddata module +downloaddata <- import("downloaddata") + +fetch_data <- function(cache_file_name, verify=FALSE, cache_directory_name="../Data") { + # Call Python's fetch_data function directly + # reticulate automatically converts R logical to Python bool + result <- downloaddata$fetch_data( + cache_file_name = cache_file_name, + verify = verify, + cache_directory_name = normalizePath(cache_directory_name) + ) + return(result) } -fetch_data_all<-function(output_directory, manifest_file, verify=TRUE){ - v<- if(verify) 'True' else 'False' - python.exec(paste("fetch_data_all(output_directory='",output_directory,"',manifest_file='", manifest_file,"', verify=",v,")", sep="")) +fetch_data_all <- function(output_directory, manifest_file, verify=TRUE) { + # Call Python's fetch_data_all function directly + downloaddata$fetch_data_all( + output_directory = output_directory, + manifest_file = manifest_file, + verify = verify + ) } From 234c9b7d51724b43b28c8657da0ad83f11e98e0a Mon Sep 17 00:00:00 2001 From: Ziv Yaniv Date: Mon, 9 Feb 2026 22:30:34 -0500 Subject: [PATCH 2/2] Update R to current SimpleITK API. --- R/22_Transforms.ipynb | 2 +- R/300_Segmentation_Overview.ipynb | 51 ++----------------- ..._Registration_Introduction_Continued.ipynb | 2 +- R/70_Data_Augmentation.ipynb | 6 +-- R/R_style_image.ipynb | 30 ++--------- 5 files changed, 13 insertions(+), 78 deletions(-) diff --git a/R/22_Transforms.ipynb b/R/22_Transforms.ipynb index 4abe8033..1d8c0e9a 100644 --- a/R/22_Transforms.ipynb +++ b/R/22_Transforms.ipynb @@ -986,7 +986,7 @@ "displacement$SetFixedParameters(c(field_size, field_origin, field_spacing, field_direction))\n", "displacement$SetParameters(runif(length(displacement$GetParameters())))\n", "\n", - "composite_transform <- Transform(basic_transform)\n", + "composite_transform <- CompositeTransform(basic_transform)\n", "composite_transform$AddTransform(displacement)\n", "\n", "full_file_name <- file.path(OUTPUT_DIR, \"composite.tfm\")\n", diff --git a/R/300_Segmentation_Overview.ipynb b/R/300_Segmentation_Overview.ipynb index b0f66d03..3855b012 100644 --- a/R/300_Segmentation_Overview.ipynb +++ b/R/300_Segmentation_Overview.ipynb @@ -38,10 +38,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -67,10 +63,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -85,10 +77,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -166,7 +154,7 @@ "seg <- Image(img_T1$GetSize(), \"sitkUInt8\")\n", "seg$CopyInformation(img_T1)\n", "seg$SetPixel(seed,1)\n", - "seg <- BinaryDilate(seg, 3)\n", + "seg <- BinaryDilate(seg, c(3,3,3))\n", "\n", "Show(LabelOverlay(img_T1_255, seg))" ] @@ -182,10 +170,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -208,10 +192,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -236,10 +216,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -268,10 +244,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -294,10 +266,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -324,10 +292,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], @@ -359,12 +323,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "seed <- c(132,142,96)\n", @@ -372,7 +331,7 @@ "seg <- Image(img_T1$GetSize(), \"sitkUInt8\")\n", "seg$CopyInformation(img_T1)\n", "seg$SetPixel(seed, 1)\n", - "seg <- BinaryDilate(seg, 3)" + "seg <- BinaryDilate(seg, c(3,3,3))" ] }, { @@ -444,10 +403,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "simpleitk_error_allowed": "Exception in SITK" }, "outputs": [], diff --git a/R/61_Registration_Introduction_Continued.ipynb b/R/61_Registration_Introduction_Continued.ipynb index 9244c7b7..ccf1f428 100644 --- a/R/61_Registration_Introduction_Continued.ipynb +++ b/R/61_Registration_Introduction_Continued.ipynb @@ -406,7 +406,7 @@ " Cast(moving_image, \"sitkFloat32\"))\n", "\n", "# Need to compose the transformations after registration.\n", - "final_transform_v11 <- Transform(optimized_transform)\n", + "final_transform_v11 <- CompositeTransform(optimized_transform)\n", "dev_null <- final_transform_v11$AddTransform(initial_transform)" ] }, diff --git a/R/70_Data_Augmentation.ipynb b/R/70_Data_Augmentation.ipynb index f96437fa..188624ad 100644 --- a/R/70_Data_Augmentation.ipynb +++ b/R/70_Data_Augmentation.ipynb @@ -382,7 +382,7 @@ " # Augmentation is done in the reference image space, so we first map the points from \n", " # the reference image space back onto itself T_aug (e.g. rotate the reference image)\n", " # and then we map to the original image space T0.\n", - " T_all <- Transform(T0)\n", + " T_all <- CompositeTransform(T0)\n", " T_all$AddTransform(T_aug)\n", " aug_image <- Resample(original_image, reference_image, T_all,\n", " interpolator, default_intensity_value)\n", @@ -449,7 +449,7 @@ " img_center <- img$TransformContinuousIndexToPhysicalPoint(img$GetSize()/2.0)\n", " centering_transform$SetOffset(transform$GetInverse()$TransformPoint(img_center) - \n", " reference_center)\n", - " centered_transform <- Transform(transform)\n", + " centered_transform <- CompositeTransform(transform)\n", " centered_transform$AddTransform(centering_transform)\n", "\n", " # Set the augmenting transform's center so that rotation is around the image center.\n", @@ -508,7 +508,7 @@ " centering_transform <- TranslationTransform(dimension)\n", " img_center <- img$TransformContinuousIndexToPhysicalPoint(img$GetSize()/2.0)\n", " centering_transform$SetOffset(transform$GetInverse()$TransformPoint(img_center) - reference_center)\n", - " centered_transform <- Transform(transform)\n", + " centered_transform <- CompositeTransform(transform)\n", " centered_transform$AddTransform(centering_transform)\n", " \n", " flipped_transform <- AffineTransform(dimension) \n", diff --git a/R/R_style_image.ipynb b/R/R_style_image.ipynb index d84026bd..f1344bc6 100644 --- a/R/R_style_image.ipynb +++ b/R/R_style_image.ipynb @@ -277,12 +277,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "img3d = GaborSource(\"sitkFloat32\", size=rep(64,3), sigma=rep(16, 3), mean=rep(32,3), frequency=.05)" @@ -423,7 +418,7 @@ "jupyter": { "outputs_hidden": false }, - "simpleitk_error_expected": "Exception in SITK" + "simpleitk_error_expected": "Exception thrown in SimpleITK Add" }, "outputs": [], "source": [ @@ -491,12 +486,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "m <- (img > 90) != (img > 150)" @@ -535,12 +525,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "sz <- 512\n", @@ -572,12 +557,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "system.time(((im1 * im2) / im3) > 24)\n",