diff --git a/.travis.yml b/.travis.yml index 444004f3..bbf0974b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,6 @@ dist: xenial os: - linux - osx - - windows # as xenial services: @@ -59,7 +58,6 @@ before_install: then start_xvfb ; fi - - v8_install ; - export rver=`r_version`; - export gh_user=`get_gh_user` ; echo $gh_user ; - cat DESCRIPTION diff --git a/DESCRIPTION b/DESCRIPTION index 640897ab..5cd940fc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: ANTsRCore Type: Package Title: Core Software Infrastructure for 'ANTsR' -Version: 0.7.1 -Date: 2019-09-19 +Version: 0.7.1.9000 +Date: 2019-10-30 Authors@R: c( person(given = "Brian B.", family = "Avants", role = "cre", email = "stnava@gmail.com"), diff --git a/R/imagesToMatrix.R b/R/imagesToMatrix.R index 5ecb2920..faa5595c 100644 --- a/R/imagesToMatrix.R +++ b/R/imagesToMatrix.R @@ -40,5 +40,5 @@ imagesToMatrix <- function(imageList, mask) { print("Must pass a list of filenames") return(NA) } - return(.Call("imagesToMatrix", imageList, mask, n)) + return(.Call("imagesToMatrix", imageList, mask, n, PACKAGE = "ANTsRCore")) } diff --git a/R/mergeChannels.R b/R/mergeChannels.R index 93c06fc0..a550f1f7 100644 --- a/R/mergeChannels.R +++ b/R/mergeChannels.R @@ -33,6 +33,6 @@ mergeChannels <- function(imageList) { } } - img = .Call("mergeChannels", imageList, package="ANTsR") + img = .Call("mergeChannels", imageList, package="ANTsRCore") return(img) } diff --git a/R/n4BiasFieldCorrection.R b/R/n4BiasFieldCorrection.R index a8861c66..bbe446e2 100644 --- a/R/n4BiasFieldCorrection.R +++ b/R/n4BiasFieldCorrection.R @@ -91,5 +91,6 @@ n4BiasFieldCorrection <- function( img, return(outimg) } .helpn4BiasFieldCorrection <- function(...) { - .Call("N4BiasFieldCorrection", .int_antsProcessArguments(c(...))) + .Call("N4BiasFieldCorrection", .int_antsProcessArguments(c(...)), + PACKAGE = "ANTsRCore") } diff --git a/R/splitChannels.R b/R/splitChannels.R index 76abcfdc..ddab0e56 100644 --- a/R/splitChannels.R +++ b/R/splitChannels.R @@ -32,6 +32,6 @@ splitChannels <- function(image) { stop( "input must have more than 1 components") } - img = .Call("splitChannels", image, package="ANTsR") + img = .Call("splitChannels", image, package="ANTsRCore") return(img) } diff --git a/configure.win b/configure.win index e31e1f8b..516c09de 100755 --- a/configure.win +++ b/configure.win @@ -1,5 +1,15 @@ #!/bin/bash -antsrtag=`git log --pretty=format:'%H' -n 1` +git_exe=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "x=Sys.which('git'); cat(x)"` +if [ -z "${git_exe}" ]; then + ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e 'if (!requireNamespace("git2r")) install.packages("git2r")' + str="repo = git2r::init();" + str="${str} if (length(git2r::commits(repo)) > 0) {" + str="${str} x=git2r::sha(git2r::last_commit(repo)) } else {x = ''};" + str="${str} cat(x)" + antsrtag=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "${str}"` +else + antsrtag=`git log --pretty=format:'%H' -n 1` +fi CXX_STD=CXX11 CC=`${R_HOME}/bin${R_ARCH_BIN}/R.exe CMD config CC` CXX=`${R_HOME}/bin${R_ARCH_BIN}/R.exe CMD config CXX` @@ -29,6 +39,7 @@ PWD=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e 'cat(normalizePath(".", winslash= # platform-specific Makevars echo "PWD=${PWD}" > Makevars.win myantslib=${PWD}/antb/lib/ +antsexdir=${PWD}/antb/ANTS-build/Examples/ echo "myantssource=\${PWD}/ants" >> Makevars.win echo "ITK=\"${ITKRCMAKE}\"" >> Makevars.win @@ -44,7 +55,7 @@ echo "SHLIB_CXXLD=${CMAKE_EXE_LINKER_FLAGS}" # echo "myantslib=\"\${PWD}/antb/lib/\"" >> Makevars.win echo "myantslib=\${PWD}/antb/lib/">> Makevars.win - +echo "antsexdir=\${PWD}/antb/ANTS-build/Examples/">> Makevars.win # echo "libants=\`find \"\${myantslib}\" -name \"lib*.a\"\`" >> Makevars.win # echo "libitk=\`find \"${ITKRLIB}\" -name \"lib*.a\"\`" >> Makevars.win @@ -67,19 +78,17 @@ echo "Running ${libitk}" # echo "Running libants" # libants="-L${myantslib} ${libants}" # echo "Running ${libants}" -libants="-L${myantslib} -lantsUtilities -ll_antsAffineInitializer -ll_antsApplyTransforms " +libants="-L${myantslib} -L${antsexdir} -lantsUtilities -ll_antsAffineInitializer -ll_antsApplyTransforms " libants="${libants} -ll_antsApplyTransformsToPoints -ll_antsJointFusion -ll_antsMotionCorr " libants="${libants} -ll_antsMotionCorrStats -ll_antsRegistration -ll_Atropos -ll_DenoiseImage " libants="${libants} -ll_KellyKapowski -ll_LabelClustersUniquely -ll_LabelGeometryMeasures " libants="${libants} -ll_N3BiasFieldCorrection -ll_N4BiasFieldCorrection -ll_ResampleImage " libants="${libants} -ll_sccan -ll_SurfaceBasedSmoothing -ll_ThresholdImage " -echo "PKG_LIBS=${PKG_LIBS} ${libitk} ${libants} ${libitk} ${libants} ${libitk} ${libants} ${libitk} \ - ${libants} ${libitk} ${libants} ${libitk} ${libants} ${libitk} \ - ${libants}" >> Makevars.win -# echo "PKG_LIBS=${PKG_LIBS} -L${ITKRLIB} \${libants} \${libitk} \${libants} \${libitk} \ -# \${libants} \${libitk} \${libants} \${libitk} \${libants} \${libitk} \ -# \${libitk} \${libants}" >> Makevars.win +# echo "PKG_LIBS=${PKG_LIBS} ${libitk} ${libants} ${libitk} ${libants} ${libitk} ${libants} ${libitk} \ +# ${libants} ${libitk} ${libants} ${libitk} ${libants} ${libitk} \ +# ${libants}" >> Makevars.win +echo "PKG_LIBS=${PKG_LIBS} ${libitk} ${libants} ${libitk} ${libants} " >> Makevars.win echo ".PHONY: all libs" >> Makevars.win @@ -87,7 +96,10 @@ echo "all: \$(SHLIB)" >> Makevars.win echo "\$(SHLIB): libs" >> Makevars.win # MAKER=c:/Rtools/mingw_64/bin${R_ARCH_BIN}/mingw32-make.exe -MAKER=mingw32-make +# MAKER=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "x=normalizePath(Sys.which('make'), winslash = '/'); cat(x)"` +MAKER=mingw32-make.exe +echo "MAKE IS" +echo "${MAKER}" echo "libs: ; mkdir -p libs; cd antb && ls && ${MAKER} -j 4 && cd ANTS-build && ls && ${MAKER} all install && rm -rf ${R_PACKAGE_DIR}/libs/bin && cd ../../" >> Makevars.win echo "cleaner: ; cd ../libs/bin && rm -f antsRegistration antsApplyTransforms antsMotionCorr \ @@ -101,8 +113,16 @@ ThresholdImage LabelClustersUniquely SurfaceBasedSmoothing" >> Makevars # antsgit=https://github.com/ANTsX/ANTs.git # antstag=c60752a7a6eca0371b0f5ff5ffa13385a5f5ea4f # n4 bug antsgit=https://github.com/muschellij2/ANTs.git -antstag=c39585e656f7162cf74fd2d9b0438963671e03d2 -git clone $antsgit ants +antstag=7ca882f532ae7fdf9b9a5ccb94810a39a98c9ef2 +if [ -z "${git_exe}" ]; then + ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e 'if (!requireNamespace("git2r")) install.packages("git2r")' + str="repo = git2r::clone(\"" + str="${str}${antsgit}" + str="${str}\", local_path = \"./ants\")" + ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "${str}" +else + git clone $antsgit ants +fi mkdir -p ../data echo "Dependency;GitTag" > ../data/antsVersions.csv @@ -111,6 +131,23 @@ echo "ANTsRCore;${antsrtag}" >> ../data/antsVersions.csv echo "ANTsURL;${antsgit}" >> ../data/antsVersions.csv echo "ITK;${ITKTAG}" >> ../data/antsVersions.csv cd ants + +if [ -z "${git_exe}" ]; then + ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e 'if (!requireNamespace("git2r")) install.packages("git2r")' + str="repo = git2r::init()" + if [ -n "${antstag}" ]; then + str="${str}; git2r::checkout(repo, branch = \"" + str="${str}${antstag}" + str="${str}\");" + fi + ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "${str}" +else + git checkout master; + git pull; + git checkout $antstag ; +fi + +# windows workaround for warning if [[ -a "./CMake/ITKSetStandardCompilerFlags.cmake" ]]; then echo "working on ITKSetStandardCompilerFlags.cmake" @@ -120,9 +157,7 @@ then str=${str}'writeLines(x, fname)}' ${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "${str}" fi -git checkout master; -git pull; -git checkout $antstag + cd ../ mkdir -p antb cp ../inst/include/antscore.h ./ants/Examples/include/ants.h @@ -170,6 +205,7 @@ ${cmaker} \ -DCMAKE_NEED_RESPONSE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \ -DCOPY_SCRIPT_FILES_TO_BIN_DIR=OFF \ + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE="../ants/lib/" \ -DCMAKE_INSTALL_PREFIX:PATH="${R_PACKAGE_DIR}/libs/" \ -DCMAKE_BUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \ -DVNL_CONFIG_ENABLE_SSE2_ROUNDING:BOOL=ON \ diff --git a/data/antsVersions.csv b/data/antsVersions.csv index 3d460dad..bdd8daf9 100644 --- a/data/antsVersions.csv +++ b/data/antsVersions.csv @@ -1,3 +1,5 @@ Dependency;GitTag -ANTs;554b696927351c0de998fa6cde346c16630212fb -ANTsRCore;44880fce95158ba5cc77e2b6b0df0cfc9b1d6d33 +ANTs;1c421a5853f343a020aaae861a751545112e0807 +ANTsRCore;0d3c153eb80e56a04332cd2d28ed9e3389d388f1 +ANTsURL;https://github.com/ANTsX/ANTs.git +ITK; diff --git a/man/plot.antsImage.Rd b/man/plot.antsImage.Rd index c01ec21b..c7d266b6 100644 --- a/man/plot.antsImage.Rd +++ b/man/plot.antsImage.Rd @@ -6,13 +6,12 @@ \usage{ \method{plot}{antsImage}(x, y = NULL, color.img = "white", color.overlay = c("jet", "red", "blue", "green", "yellow", "viridis", - "magma", "plasma", "inferno"), axis = 2, slices, - colorbar = is.null(y), title.colorbar, title.img, title.line = NA, - color.colorbar, window.img, window.overlay, quality = 2, - outname = NA, alpha = 1, direction = 1, begin = 0, end = 1, - newwindow = FALSE, nslices = 10, domainImageMap = NULL, - ncolumns = 4, useAbsoluteScale = FALSE, doCropping = TRUE, text, - ...) + "magma", "plasma", "inferno"), axis = 2, slices, colorbar = FALSE, + title.colorbar, title.img, title.line = NA, color.colorbar, window.img, + window.overlay, quality = 2, outname = NA, alpha = 1, + direction = 1, begin = 0, end = 1, newwindow = FALSE, + nslices = 10, domainImageMap = NULL, ncolumns = 4, + useAbsoluteScale = FALSE, doCropping = TRUE, text, ...) } \arguments{ \item{x}{the reference image on which to overlay.} diff --git a/tests/testthat/test-antsImage.R b/tests/testthat/test-antsImage.R index dbe7298a..2fd2c4b7 100644 --- a/tests/testthat/test-antsImage.R +++ b/tests/testthat/test-antsImage.R @@ -271,7 +271,7 @@ test_that("antsImage %% antsImage, preserves header", { test_that("antsImage %% antsImage", { expect_true(is.antsImage(img1 %% img2)) - expect_true(sum(img1 %% img2) == sum(valuesm %% values2)) + expect_equal(sum(img1 %% img2), sum(valuesm %% values2)) }) test_that("antsImage %% antsImage, preserves header", { expect_true(antsImagePhysicalSpaceConsistency(data.type = TRUE, img, img %% img)) @@ -279,7 +279,7 @@ test_that("antsImage %% antsImage, preserves header", { test_that("antsImage %/% scalar", { expect_true(is.antsImage(img1 %/% 2)) - expect_true(sum(img1 %/% 2) == sum(valuesm %/% 2)) + expect_equal(sum(img1 %/% 2), sum(valuesm %/% 2)) }) test_that("antsImage %/% scalar, preserves header", { expect_true(antsImagePhysicalSpaceConsistency(data.type = TRUE, img, img %/% 2)) @@ -295,7 +295,7 @@ test_that("antsImage %% antsImage, preserves header", { test_that("antsImage %/% antsImage", { expect_true(is.antsImage(img1 %% img2)) - expect_true(sum(img1 %/% img2) == sum(valuesm %/% values2)) + expect_equal(sum(img1 %/% img2), sum(valuesm %/% values2)) }) test_that("antsImage %/% antsImage, preserves header", { expect_true(antsImagePhysicalSpaceConsistency(data.type = TRUE, img1, img1 %/% img2))