| Atlas Helpers {brainGraph} | R Documentation |
Atlas helper functions
Description
guess_atlas tries to determine which atlas is being used based on the
data; i.e., the number of vertices/regions.
as_atlas and create_atlas converts/coerces an object to a
a data.table, or creates one, that is compatible with
brainGraph.
Usage
guess_atlas(x)
as_atlas(object)
create_atlas(regions, coords, lobes, hemis, other = NULL)
Arguments
x, object |
An object to test or convert to an atlas data.table |
regions |
Character vector of region names |
coords |
Numeric matrix of spatial coordinates; must have 3 columns |
lobes |
Character or factor vector of lobe membership |
hemis |
Character or factor vector of hemisphere membership. There should probably not be more than 3 unique elements (for left, right, and bi-hemispheric regions) |
other |
A named list of vectors with other data. The names of the list will become column names in the return object. |
Value
guess_atlas - Character string; either the matched atlas or
NA
as_atlas and create_atlas return a data.table
that conforms to other atlases in the package, or exits with an error.
Guessing the atlas from an object
There are several valid inputs to guess_atlas:
- data.table
The atlas will be guessed based on the number of columns (subtracting by 1 if a “Study ID” column is present). This is the same behavior as for
data.frameobjects, as well.- igraph
The vertex count
- brainGraph
If there is a
atlasgraph-level attribute, it will return that. Otherwise, the vertex count.- matrix,array
The number of rows, which should equal the number of columns if the input is a connectivity matrix.
Note that this will only work properly for atlases that are currently in the package. If you are using a custom atlas and you receive errors, please open an issue on GitHub.
Coercing to an atlas
There are several things as_atlas tries to do to make it work without
error:
Coerce the object to
data.tableAdd a column of integers named
indexChange columns named
'x','y', or'z'to have.mniat the endConvert the
lobeandhemicolumns to be factors
Examples
my_atlas <- data.frame(name=paste('Region', 1:10), x.mni=rnorm(10),
y.mni=rnorm(10), z.mni=rnorm(10),
lobe=rep(c('Frontal', 'Parietal', 'Temporal', 'Occipital', 'Limbic'), 2),
hemi=c(rep('L', 5), rep('R', 5)))
my_atlas2 <- as_atlas(my_atlas)
str(my_atlas)
str(my_atlas2)
regions <- paste('Region', 1:10)
xyz <- matrix(rnorm(30), nrow=10, ncol=3)
lobe <- rep(c('Frontal', 'Parietal', 'Temporal', 'Occipital', 'Limbic'), 2)
hemi <- c(rep('L', 5), rep('R', 5))
other <- list(network=rep(c('Default mode', 'Task positive'), 5))
my_atlas <- create_atlas(regions, xyz, lobe, hemi, other)
str(my_atlas)