test_that("A label can be extracted from a region of a loaded annotation", {
testthat::skip_on_cran();
testthat::skip_if(tests_running_on_cran_under_macos(), message = "Skipping on CRAN under MacOS, required test data cannot be downloaded.");
fsbrain::download_optional_data();
subjects_dir = fsbrain::get_optional_data_filepath("subjects_dir");
testthat::skip_if_not(dir.exists(subjects_dir), message="Test data missing.");
num_verts_bankssts_subject1_lh = 1722;
num_verts_subject1_lh = 149244;
num_verts_subject1_lh_nonbankssts = num_verts_subject1_lh - num_verts_bankssts_subject1_lh;
annotdata = subject.annot(subjects_dir, "subject1", "lh", "aparc");
# Test retrieving label from a valid region
label = label.from.annotdata(annotdata, "bankssts");
testthat::expect_equal(length(label), num_verts_bankssts_subject1_lh);
# Test retrieving an INVERTED label from a valid region
label = label.from.annotdata(annotdata, "bankssts", invert=TRUE);
testthat::expect_equal(length(label), num_verts_subject1_lh_nonbankssts);
# Test retrieving label from an invalid region
testthat::expect_error(label.from.annotdata(annotdata, "nosuchregioninatlas"));
# Test retrieving label from an invalid region, allowing invalid regions
label = label.from.annotdata(annotdata, "nosuchregioninatlas", error_on_invalid_region=FALSE)
testthat::expect_equal(length(label), 0); # The label should be empty
})
test_that("A label can be extracted from a region of an annotation file", {
testthat::skip_on_cran();
testthat::skip_if(tests_running_on_cran_under_macos(), message = "Skipping on CRAN under MacOS, required test data cannot be downloaded.");
fsbrain::download_optional_data();
subjects_dir = fsbrain::get_optional_data_filepath("subjects_dir");
testthat::skip_if_not(dir.exists(subjects_dir), message="Test data missing.");
num_verts_bankssts_subject1_lh = 1722;
label = subject.label.from.annot(subjects_dir, 'subject1', 'lh', 'aparc', 'bankssts');
testthat::expect_equal(length(label), num_verts_bankssts_subject1_lh);
})
test_that("Labels can be extracted from a region of an annotation file for a group of subjects", {
testthat::skip_on_cran();
testthat::skip_if(tests_running_on_cran_under_macos(), message = "Skipping on CRAN under MacOS, required test data cannot be downloaded.");
fsbrain::download_optional_data();
subjects_dir = fsbrain::get_optional_data_filepath("subjects_dir");
subjects_list = c('subject1', 'subject2');
testthat::skip_if_not(dir.exists(subjects_dir), message="Test data missing.");
num_verts_bankssts_subject1_lh = 1722;
num_verts_bankssts_subject2_lh = 1722; # subject2 is a copy of 1
labels = group.label.from.annot(subjects_dir, subjects_list, 'lh', 'aparc', 'bankssts');
testthat::expect_equal(length(labels), 2);
testthat::expect_equal(length(labels$subject1), num_verts_bankssts_subject1_lh);
testthat::expect_equal(length(labels$subject2), num_verts_bankssts_subject2_lh);
})
test_that("Labels can be merged into an annotation", {
label1 = c(46666, 46777);
label2 = c(99888, 99889);
label_vertices = list("region1"=label1, "region2"=label2);
colortable_df = data.frame("struct_index"=seq(0, 2), "struct_name"=c("unknown", "region1", "region2"), "r"=c(255L, 255L, 0L), "g"=c(255L, 0L, 255L), "b"=c(255L, 0L, 0L), "a"=c(0L, 0L, 0L));
annot = label.to.annot(label_vertices, 100000, colortable_df);
testthat::expect_equal(length(annot$vertices), 100000);
testthat::expect_equal(length(annot$label_codes), 100000);
testthat::expect_equal(length(annot$label_names), 100000);
testthat::expect_equal(length(annot$hex_colors_rgb), 100000);
testthat::expect_equal(nrow(annot$colortable_df), 3);
testthat::expect_equal(nrow(annot$colortable$table), 3);
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.