Learn R Programming

⚠️There's a newer version (0.5.5) of this package.Take me there.

fsbrain (version 0.5.2)

Managing and Visualizing Brain Surface Data

Description

Provides high-level access to neuroimaging data from standard software packages like 'FreeSurfer' on the level of subjects and groups. Load morphometry data, surfaces and brain parcellations based on atlases. Mask data using labels, load data for specific atlas regions only, and visualize data and statistical results directly in 'R'.

Copy Link

Version

Install

install.packages('fsbrain')

Monthly Downloads

1,751

Version

0.5.2

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Tim Schc3<a4>fer

Last Published

November 10th, 2021

Functions in fsbrain (0.5.2)

brain

Create fsbrain instance from 2 coloredmeshes.
annot.outline.border.vertices

Compute the border vertices for each region in an annot.
apply.label.to.morphdata

Load a label from file and apply it to morphometry data.
apply.labeldata.to.morphdata

Apply a label to morphometry data.
apply.transform

Apply matmult transformation to input.
boxcoords.from.bbox

Compute the coordinates of the 8 corners of a 3D box.
annot.outline

Compute outline vertex colors from annotation.
alphablend

Perform alpha blending for pairs of RGBA colors.
brainview.t4

Visualize a list of colored meshes from four angles.
brainview.sr

Visualize a list of colored meshes, rotating the camera around them.
clip_fun

Get data clipping function.
check.subjectslist

Check whether the subjects_list looks good, warn if not.
clip.data

Clip data at quantiles to remove outliers.
arrange.brainview.images

Combine several brainview images into a new figure.
arrange.brainview.images.grid

Combine several brainview images as a grid into a new figure.
can.plot.colorbar

Determine whether colorbar can be plotted with given metadata.
brainviews

Show one or more views of the given meshes in rgl windows.
can.plot.colorbar.from.coloredmeshes

Determine whether colorbar can be plotted with given coloredmeshes.
brainview.t9

Visualize a list of colored meshes from nine angles.
collayer.bg

Compute binarized mean curvature surface color layer.
brainview.sd

Visualize a list of colored meshes from a single defined angle.
collayer.from.annot

Compute surface color layer from annotation or atlas data.
collayer.from.annotdata

Compute surface color layer from annotation or atlas data.
collayer.from.mask.data

Compute surface color layer from morph-like data.
collayer.from.morphlike.data

Compute surface color layer from morph-like data.
cm.cbry

Get cyan blue red yellow colormap function.
coloredmesh.from.color

Create a coloredmesh from a mesh and pre-defined colors.
collayer.bg.atlas

Compute atlas or annotation surface color layer.
coloredmesh.from.label

Create a coloredmesh from a label.
cm.div

Return the standard fsbrain diverging colormap.
cm.heat

Return the standard fsbrain heat colormap.
collayers.merge

Merge two or more color layers based on their transparency values.
cm.qual

Return the standard fsbrain qualitative colormap.
coloredmeshes.combined.data.range

Retrieve combined data range from hemilist of coloredmeshes.
brainview.si

Visualize a list of colored meshes from a single viewpoint, interactively.
colors.are.grayscale

Check for the given color strings whether they represent gray scale colors.
coloredmesh.from.preloaded.data

Generate coloredmesh from loaded data.
coloredmeshes.from.color

Create coloredmeshes for both hemis using pre-defined colors.
coloredmesh.from.annot

Create a coloredmesh from an annotation of an atlas.
desaturate

Perform simple desaturation or grayscale conversion of RGBA colors.
common.makecmap.range

Get cmap and colorlayer from data and makecmap_options.
demographics.to.qdec.table.dat

Convert a dataframe containing demographics data to a qdec.table.dat file and related files.
cm.seq

Return the standard fsbrain sequential colormap.
ensure.fs.surface

Check whether parameter is an fs.surface instance.
combine.colorbar.with.brainview.image.vertical

Combine a vertical colorbar and a brainview image into a new figure.
colors.have.transparency

Check for the given color strings whether they have transparency, i.e., an alpha channel value != fully opaque.
colorlist.brain.clusters

Return diverging color list
coloredmeshes.get.md

Retrieve metadata from hemilist of coloredmeshes.
draw.colorbar

Draw coloredbar into background of current plot.
cube3D.tris

Return triangles for a 3D cube or cuboid.
constant.pervertexdata

Get vertex data for a single fs.surface or a hemilist of surfaces.
download_optional_data

Download optional data for this package if required.
collayer.bg.sulc

Compute binarized sulcal depth surface color layer.
collayer.bg.meancurv

Compute binarized mean curvature surface color layer.
eeg_coords

Internal function to get some demo EEG electrode coordinates. Will be removed from public API. Do not use this.
fs.home

Return FreeSurfer path.
download_optional_paper_data

Download extra data to reproduce the figures from the fsbrain paper.
extend_neighbors

Recursive computation of neighborhoods, see surf.sphere.dist
extract.volume.3D

Try to extract a 3D volume from the input argument.
combine.colorbar.with.brainview.animation

Combine a colorbar and a brain animation in gif format into a new animation.
fs.surface.as.adjacencylist

Turn surface mesh into a igraph and return its adjacency list representation.
demo

Show demo visualization to test whether fsbrain is setup correctly.
combine.colorbar.with.brainview.image

Combine a colorbar and a brainview image into a new figure.
coloredmesh.plot.colorbar.separate

Draw colorbar for coloredmeshes in separate 2D plot.
deg2rad

Convert degree to radians
find.subjectsdir.of

Find the subject directory containing the fsaverage subject (or others) on disk.
demographics.to.fsgd.file

Write FreeSurfer Group Descriptor (FSGD) file from demographics dataframe.
flc

Given a list of path coordinates, create matrix containing only the first and last point of each path.
fs.coloredmesh

fs.coloredmesh constructor
fs.surface.vertex.neighbors

Compute vertex neighborhoods or the full adjacency list for a mesh using the Rvcg or igraph library.
geod.vert.neighborhood

Compute all vertices within given geodesic distance on the mesh.
force.to.range

Change data to ensure requested data_range.
geod.patches.pervertexdata.singlehemi

Generate per-vertex distance data from geodesic patches around several vertices for a single hemi.
delete_all_optional_data

Delete all data in the package cache.
coloredmesh.from.mask

Create a coloredmesh from a mask.
ensure.tmesh3d

Ensure the mesh is a tmesh3d instance. Will convert fs.surfaces to one automatically.
get.rglstyle

Get the default visualization style parameters as a named list.
download_fsaverage

Download the FreeSurfer v6 fsaverage subject.
download_fsaverage3

Download the FreeSurfer v6 low-resolution fsaverage3 subject.
geod.patches.color.overlay.singlehemi

Generate color overlay from geodesic patches around several vertices for a single hemi.
face.edges

Enumerate all edges of the given faces or mesh.
find.freesurferhome

Find the FREESURFER_HOME directory on disk.
get.rglstyle.default

Get the default visualization style parameters as a named list.
geod.patches.pervertexdata

Generate per-vertex distance data from geodesic patches around several vertices.
coloredmesh.from.morph.native

Create a coloredmesh from native space morphometry data.
fsaverage.path

Return path to fsaverage dir.
geodesic.ballstats

Compute geodesic ball area and perimeter at location defined by geodists for all radii.
get.rglstyle.semitransparent

Get the semi-transparent visualization style parameters as a named list.
geodesic.average.distance

Compute the average (pseudo-) geodesic distance on the mesh from each vertex to all other vertices.
get.slice.indices

Compute slice indices from slice definition.
fs.value.list.from.agg.res

Create a named value list from a dataframe.
fslong.subjects.finished

Find completely run FreeSurfer long subjects in a recon-all long output folder.
gen.test.volume

Generate test 3D volume of integers. The volume has an outer background area (intensity value 'bg') and an inner foreground areas (intensity value 200L).
coloredmesh.from.morphdata

Create a coloredmesh from arbitrary data.
coloredmesh.from.morph.standard

Create a coloredmesh from standard space morphometry data.
cubes3D.tris

Vectorized version of cube3D.tris
fsbrain.renderable

Check whether object can be rendered by fsbrain
fsbrain.set.default.figsize

Set default figure size for fsbrain visualization functions.
group.concat.measures.native

Concatenate native space data for a group of subjects.
get.rglstyle.shiny

Get a shiny visualization style.
group.concat.measures.standard

Concatenate standard space data for a group of subjects.
group.morph.native

Retrieve native space morphometry data for a group of subjects.
highlight.vertices.on.subject

Highlight vertices given by index on a subject's meshes by coloring faces.
get.atlas.region.names

Determine atlas region names from a subject.
geodesic.path

Compute geodesic path from a source vertex to one or more target vertices.
fslong.subjects.detect

Get subject names from sub directories of FreeSurfer long directory.
get.view.angle.names

Get list of valid view angle names.
group.morph.standard

Retrieve standard space morphometry data for a group of subjects.
highlight.vertices.on.subject.spheres

Highlight vertices given by index on a subject's meshes by coloring faces.
getIn

Retrieve values from nested named lists
geod.patches.color.overlay

Generate color overlay from geodesic patches around several vertices.
images.same.height

Extent all images to the height of the image with maximal height.
get.rglstyle.edges

Get the mesh edges visualization style parameters as a named list.
fup

Transform first character of a string to uppercase.
group.morph.standard.sf

Read combined data for a group from a single file.
hemilist.from.prefixed.list

Create a hemilist from a named list with keys prefixed with 'lh_' and 'rh_'.
group.multimorph.agg.native

Aggregate native space morphometry data for multiple measures over hemispheres for a group of subjects.
get.rglstyle.glass2

Get the glass2 visualization style parameters as a named list.
get.rglstyle.parameters

Produce the named list of style parameters from style definition.
get.rglstyle.glass

Get the glass visualization style parameters as a named list.
hemilist.get.combined.data

Get combined data of hemi list
limit_fun_na

Get data limiting function to NA.
deepcopylist.long

Write deepcopy list for longitudinal subjects.
get_optional_data_filepath

Access a single file from the package cache by its file name.
group.morph.agg.standard

Aggregate standard space (fsaverage) morphometry data over one hemisphere for a group of subjects.
groupmorph.split.hemilist

Split a per-vertex group data matrix for both hemispheres into a hemilist at given index.
images.dimmax

Compute max width and height of magick images.
highlight.points.spheres

Draw small 3D spheres at given points.
group.morph.agg.standard.vertex

Aggregate standard space morphometry data over subjects.
label.border

Compute border of a label.
is.hemilist

Check whether x is a hemilist
hemlist.ensure.contains

title Ensure an key for a hemilist exists.
handle.rglactions.highlight.points

Highlight requested points (if any), but apply given view rotation before doing so.
images.rescale.to.max.canvas

Rescale all images canvas to match the largest one.
get.subject.class

Construct FSGD Class name from group and non-continuous covariate columns.
label.colFn

A simple colormap function for binary colors.
limit_fun_na_inside

Get data limiting function, setting values inside range to NA.
export

Export high-quality brainview image with a colorbar.
group.label.from.annot

Extract a region from an atlas annotation as a label for a group of subjects.
images.same.width

Extent all images to the width of the image with maximal width.
numverts.rh

Determine vertex count of right hemi from hemilist of surfaces or the count itself.
rotation.matrix.for.axis.rot

Get rotation matrix for a 3D rotation around an axis.
path.colors.from.orientation

Compute path color from its orientation.
group.agg.atlas.native

Aggregate native space morphometry data over brain atlas regions and subjects for a group of subjects.
per.hemi.vertex.indices

Transform surfaces indices which go over two surfaces to per-hemi indices.
mkco.div

Return recommended 'makecmap_options' for diverging data.
mkco.cluster

Return recommended 'makecmap_options' for diverging cluster data.
export.coloredmesh.ply

Export a coloredmeshes with vertexcolors in PLY format.
path.slopes

Compute slopes of paths relative to axes.
qc.from.segstats.tables

Perform data quality check based on a segstats table.
qc.from.segstats.table

Perform data quality check based on a segstats table.
plot.fsbrain.colorbar

Draw a simple colorbar from colors.
scale.to.range.zero.one

Scale given values to range 0..1.
pp.named.list

Pretty-print a named list or vector.
group.agg.atlas.standard

Aggregate standard space morphometry data over brain atlas regions and subjects for a group of subjects.
recycle

Recycle parameters or whatever.
group.morph.agg.native

Aggregate native space morphometry data over one hemisphere for a group of subjects.
group.multimorph.agg.standard

Aggregate standard space (fsaverage) morphometry data for multiple measures over hemispheres for a group of subjects.
group.annot

Load annotations for a group of subjects.
regions.to.ignore

Give suggestions for regions to ignore for an atlas.
geodesic.dists.to.vertex

Simple internal wrapper around Rvcg::vcgDijkstra with function check.
fs.surface.to.igraph

Create igraph undirected graph from a brain surface mesh.
fs.surface.to.tmesh3d

Get an rgl tmesh3d instance from a brain surface mesh.
geodesic.circles

Compute geodesic circles and ball stats for given vertices.
scale01

Scale given values to range 0..1.
shape.descriptor.names

Get all shape descriptor names.
spread.values.over.hemi

Spread the values in the region_value_list and return them for one hemisphere.
subject.mask

Compute a mask for a subject.
spread.values.over.annot

Spread a single value for a region to all region vertices.
subject.lobes

Load labels representing brain lobes.
sort.coloredmeshes.by.hemi

Sort coloredmeshes into 2 lists by their 'hemi' property.
mkco.heat

Return recommended 'makecmap_options' for sequential data with heatmap style.
mkco.seq

Return recommended 'makecmap_options' for sequential data.
label.colFn.inv

A simple colormap function for binary colors.
sph2fs

Transform spherical coordinates to FreeSurfer surface space to plot things around a brain.
subject.volume

Read a brain volume.
track.length

Compute the total length of a path given by the coordinates of its points.
vdata.split.by.hemi

Split morph data vector at hemisphere boundary.
subject.morph.native

Retrieve native space morphometry data for a single subject.
submesh.vertex

Create a submesh including only the given vertices.
pervertexdata.smoothnn.compute.fwhm

Compute expected FWHM from given number of neighborhood smoothing iterations.
group.label

Retrieve label data for a group of subjects.
hemilist

Create a hemilist from lh and rh data.
group.data.to.array

Convert group 2D data (1 vector per subject) to 4D array format.
subject.morph.standard

Retrieve standard space morphometry data for a single subject.
group.surface

Retrieve surface mesh data for a group of subjects.
hemi.lobe.labels

Compute lobe labels for a single hemi from aparc atlas.
hasIn

Check for values in nested named lists
hemilist.unwrap

Unwrap hemi data from a named hemi list.
hemilist.wrap

Wrap data into a named hemi list.
highlight.vertices.spheres

Draw small 3D spheres at given brain mesh vertices. Supports full brain (2 meshes) as well.
vis.data.on.group.native

Visualize native space data on a group of subjects.
hemilist.derive.hemi

Derive 'hemi' string from the data in a hemilist
images.annotate

Annotate image with text.
hull.retain.along.axis

Copy the first *n* foreground voxel values.
image.remap.color

Remap a color in an image, typically used to set the background color to transparent.
label.from.annotdata

Extract a region from an annotation as a label.
list_optional_data

Get file names available in package cache.
label.to.annot

Merge several labels into an annotation
surf.metric.properties

Compute metric surface properties.
vis.coloredmeshes

Visualize a list of colored meshes in a single scene.
vis.coloredmeshes.rotating

Visualize a list of colored meshes in a single scene and rotate them, movie-style.
is.Triangles3D

Check whether object is a Triangles3D instance
surf.radius.fsaverage

Get pre-computed radius for fsaverage white surface.
vis.data.on.group.standard

Visualize standard space data for a group on template.
vis.mask.on.subject

Visualize a vertex mask on the surface of a subject.
vis.labeldata.on.subject

Visualize a label on the surface of a subject.
vol.intensity.to.color

Convert integer intensity image to RGB color string form.
perform.na.mapping

Perform NA mapping for transparency
labeldata.from.mask

Create labeldata from a mask.
limit_fun

Get data limiting function.
pervertexdata.smoothnn

Perform iterative nearest-neighbor smoothing of per-vertex data.
perform.rglactions

Perform rglactions, like taking screenshots.
magick.grid

Arrange a multi-frame ImageMagick image into a grid.
pervertexdata.smoothgaussian

Perform Gaussian smoothing
is.fs.coloredmesh

Check whether object is an fs.coloredmesh (S3)
pervertexdata.smoothnn.compute.numiter

Compute number of neighborhood smoothing iterations to reach requested fwhm.
vol.mask.from.segmentation

Extract subset from a volume by value.
rad2deg

Convert raduians to degree
mask.from.labeldata.for.hemi

Create a binary mask from labels.
is.fsbrain

Check whether object is an fsbrain (S3)
mesh.vertex.neighbors

Compute neighborhood of a vertex
is.fs.coloredvoxels

Check whether object is an fs.coloredvoxels instance (S3)
normalize

Normalize data.
vis.data.on.subject

Visualize arbitrary data on the surface of any subject.
qc.from.regionwise.df

Perform data quality check based on a dataframe containing aggregated region-wise data.
qc.for.group

Perform data quality check based on computed region stats.
ras2vox_tkr

The FreeSurfer default ras2vox_tkr matrix.
mesh.vertex.included.faces

Return all faces which are made up completely of the listed vertices.
report.on.demographics

Print a demographics report
numverts.lh

Determine vertex count of left hemi from hemilist of surfaces or the count itself.
rgl.coord.lines

Plot x, y and z axes in R,G,B.
principal.curvatures

Computes principal curvatures according to 2 definitions from raw k1 and k2 values.
rglactions

Create rglactions list, suitable to be passed as parameter to vis functions.
shift.hemis.apart

Shift hemispheres apart.
subject.annot.border

Compute annot border vertices.
vis.dti.trk

Visualize DTI tracks from Diffusion Toolkit/TrackVis TRK format file.
subject.atlas.agg

Aggregate morphometry data over brain atlas regions for a subject.
shape.descriptors

Computes geometric curvature-based descriptors.
rglactions.has.key

Check for a key in names of rglactions.
rglactions.transform

Apply data transformation rglactions.
vis.subject.annot

Visualize an annotation for a subject.
merge.hemi.annots

Merge the annotations from two hemispheres into one annot.
subject.filepath.morph.standard

Construct filepath of standard space morphometry data file.
surf.avg.vertexradius

Compute average distance from the origin to each vertex.
vis.color.on.subject

Visualize pre-defined vertex colors on a subject.
subject.filepath.morph.native

Construct filepath of native space morphometry data file.
rglo

Get rgloptions and consider global options.
print.fs.coloredvoxels

Print description of fs.coloredvoxels (S3).
surfs.props

Compute simple version of center and radius of 2 meshes.
symmrange

Given data, compute symmetric range around zero.
surf.center.fsaverage

Get pre-computed center for fsaverage white surface.
print.fsbrain

Print description of an fsbrain (S3).
vis.subject.label

Visualize a binary label for a subject.
qdec.table.skeleton

Generate skeleton dataframe for FreeSurfer QDEC long file from subjects list.
read.colorcsv

Read colors from CSV file.
qdec.table.filter

Filter QDEC long table for subjects.
vis.subject.pre

Visualize pre-loaded data.
subject.label

Retrieve label data for a single subject.
vis.colortable.legend

Create a separate legend plot for a colortable or an annotation.
surf.sphere.spatialfilter

Apply spatial filter to surface data.
surface.curvatures

Compute the k1 and k2 principal curvatures of a mesh.
subject.label.from.annot

Extract a region from an atlas annotation as a label for a subject.
vis.symmetric.data.on.subject

Visualize clusters or activation data on the surface of any subject.
vol.planes

Translate names and indices of planes.
vis.coloredmesh

Draw a coloredmesh using a style.
print.fs.coloredmesh

Print description of a brain coloredmesh (S3).
vol.slice

Extract a slice of a 3D image stack.
qc.vis.failcount.by.region

Visualize the number of outlier subjects per region in your dataset.
read.md.subjects.from.fsgd

Read subjects list from an FSGD file.
subject.annot

Load an annotation for a subject.
read.md.subjects

Read subjects file
spread.values.over.subject

Spread the values in the region_value_list and return them for one hemisphere.
qc.fslong.checkidenticaldata

Check whether subjects for FS longitudinal pipeline contain data that is identical between time points.
vis.data.on.fsaverage

Visualize arbitrary data on the fsaverage template subject, if available.
vis.export.from.coloredmeshes

Export high-quality brainview image with a colorbar.
read.md.demographics

Read demographics file
subject.descriptor.geodesic.average.distance

Compute mean geodesic distance descriptor for a subject.
vis.fs.surface

Visualize fs.surface mesh
rglot

Get rgloptions for testing.
rglvoxels

Draw 3D boxes at locations using rgl.
vis.paths.along.verts

Visualize several paths in different colors.
vol.overlay.colors.from.colortable

Compute voxel colors based on colortable.
vis.region.values.on.subject

Visualize arbitrary data, one value per atlas region, on the surface of any subject (including template subjects).
vis.subject.morph.native

Visualize native space morphometry data for a subject.
vol.boundary.box.apply

Apply a boundary box to a volume, returning the inner volume part
vis.subject.morph.standard

Visualize native space morphometry data for a subject or a group.
vol.boundary.mask

Compute foreground pixels over the whole 3D imagestack.
subject.filepath.any

Construct filepath of any freesurfer file.
vol.plane.axes

Get indices of the axes defining the given plane.
write.region.values

Write one value per atlas region for a subject.
subject.surface

Load a surface for a subject.
subject.num.verts

Get subjects vertex count.
test.numerical.meandiff

Perform tests for group differences on paired or unpaired data for two groups.
vol.vox.from.crs

Compute R voxel index for FreeSurfer CRS voxel index.
write.region.aggregated

Write data aggregated over regions to morphometry file for group.
write.group.morph.standard.singlehemi

Write single hemi per-vertex data for a group of subjects to given file names.
vertex.coords

Return coordinates for vertices, supporting entire brain via hemilist.
test.numerical.meandiff.paired

Perform tests for group differences on paired data (repeated measurements) for two conditions or time points.
write.region.values.fsaverage

Write one value per atlas region for a template subject.
wrapped.image.append

Wrapper around magick::image_append that allows specifying the background color when working with images of different width/height.
volvis.contour

Visualize contour of a volume.
write.group.morph.standard

Write standard space group data to a standard FreeSurfer directory stucture.
vol.merge

Merge background volume and overlay to new colors.
vol.overlay.colors.from.activation

Generate colors for a 3D volume, based on the activation data and a colormap.
vertex.hemis

Return the proper hemi string ('lh' or 'rh') for each vertex.
vis.group.morph.native

Plot native space morphometry data for a group of subjects.
vis.group.morph.standard

Plot standard space morphometry data for a group of subjects.
write.group.morph.standard.sf

Reshape and write combined per-vertex data for a group to a single MGH file.
write.group.morph.standard.mf

Write per-vertex standard space data for a group of subjects to given file names.
shift.hemis.rglactions

Shift hemis apart if indicated in rglactions
vis.path.along.verts

Draw a 3D line from vertex to vertex
vis.paths

Visualize many paths.
vislayout.from.coloredmeshes

Visualize coloredmeshes from several angles and combine the images into a new figure.
vol.boundary.box

Compute 3D bounding box of a volume.
volvis.voxels

Voxel-based visualization of volume mask at surface RAS positions.
volvis.lightbox

Draw a lightbox view from volume slices.
volvis.lb

Show continuous 3D voxel/volume data as a lightbox, optionally with a background brain volume and colormap.
vox2ras_tkr

The FreeSurfer default vox2ras_tkr matrix.
surf.sphere.dist

Compute vertex neighborhoods on a sphere based on the given max distance along the sphere.
sjd.demo

Download optional demo data if needed and return its path.
test.numerical.meandiff.unpaired

Perform tests for group differences on unpaired data for two groups.
surf.sphere.gaussianweights

Compute Gaussian weights
vis.group.coloredmeshes

Plot coloredmeshes for a group of subjects.
tmesh3d.to.fs.surface

Get an fs.surface brain mesh from an rgl tmesh3d instance.
vis.renderable

Visualize a renderable object
vis.group.annot

Plot atlas annotations for a group of subjects.
vol.hull

Retain only the outer hull voxels of the foreground.
vol.imagestack

Turn volume into an ImageMagick image stack.
vis.rotated.coloredmeshes

Rotate and visualize coloredmeshes, applying a style.