Nothing
test_that("We can load a CIFTI dscalar file as a morph data vector", {
# The files used in this test are provided under the Open Data Commons Public Domain Dedication and Licence (PDDL), see http://opendatacommons.org/licenses/pddl/1.0/ for details.
# These are the CIFTI 2 example files available on https://www.nitrc.org/projects/cifti/
testthat::skip_on_cran(); # cannot download testdata on CRAN.
skip_if(tests_running_on_cran_under_macos(), message = "Skipping on CRAN under MacOS, required test data cannot be downloaded.");
freesurferformats::download_opt_data();
cifti_dir = freesurferformats::get_opt_data_filepath("cifti");
cii_file = file.path(cifti_dir, 'Conte69.MyelinAndCorrThickness.32k_fs_LR.dscalar.nii');
skip_if_not(file.exists(cii_file), message="Test data missing.") ;
# We need to read the cifti file in the client code until the fix for bug #9 in the cifti
# package (see https://github.com/muschellij2/cifti/issues/9) is on CRAN. As of 2020-08-11 (cifti v0.4.5),
# it is only fixed in the development version on GitHub. If you install cifti from github using devtools::install_github, you
# should be fine, however we cannot expect all users to do this, so this test shows how to work around the issue with
# the CRAN version of 'cifti'.
# morph_lh = read.fs.morph.cifti(cii_file, 'lh'); # Myelin data read directly from file: this does not work atm, see above.
if (requireNamespace("cifti", quietly = TRUE)) {
library('cifti');
cii = cifti::read_cifti(cii_file); # read in client code, with cifti package loaded.
morph_lh = read.fs.morph.cifti(cii, 'lh'); # Myelin data
morph_rh = read.fs.morph.cifti(cii, 'rh');
morph2_lh = read.fs.morph.cifti(cii, 'lh', 2L); # Cortical Thickness data
morph2_rh = read.fs.morph.cifti(cii, 'rh', 2L);
morph2_both = read.fs.morph.cifti(cii, 'both', 2L);
# read by structure index
morph2_lh_again = read.fs.morph.cifti(cii, 1L, 2L);
sf_lh = freesurferformats::read.fs.surface(file.path(cifti_dir, "Conte69.L.inflated.32k_fs_LR.surf.gii"));
sf_rh = freesurferformats::read.fs.surface(file.path(cifti_dir, "Conte69.R.inflated.32k_fs_LR.surf.gii"));
expect_equal(length(morph_lh), nrow(sf_lh$vertices));
expect_equal(length(morph2_lh), nrow(sf_lh$vertices));
expect_equal(length(morph_rh), nrow(sf_rh$vertices));
expect_equal(length(morph2_rh), nrow(sf_rh$vertices));
expect_equal(length(morph2_both), (nrow(sf_lh$vertices)+nrow(sf_rh$vertices)));
# Expect error on invalid structure
expect_error(read.fs.morph.cifti(cii, 'no_such_structure', 2L)); # invalid brain structure.
}
# You could visualize the data on the surface in fsbrain like this:
# fsbrain::vis.fs.surface(list('lh'=sf_lh, 'rh'=sf_rh), per_vertex_data = list('lh'=morph2_lh, 'rh'=morph2_rh));
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.