plotBasicNetwork.Rd
takes an object output from renderSurfaceFunction and a list of centroids and plots the centroid network over the rendering object
plotBasicNetwork(
centroids,
brain,
weights = NA,
edgecolors = -1,
backgroundColor = "white",
nodecolors = "blue",
nodetype = "s",
edgeContrast = c(0, 1),
quantileTransformWeights = FALSE,
lwd = 2,
minRadius = 0,
maxRadius = 3,
radius = NA,
showOnlyConnectedNodes = TRUE
)
input matrix of size N 3D points ( in rows ) by 3 ( in columns ), for N nodes.
input rendering object which is output of renderSurfaceFunction. or a function derived from renderSurfaceFunction.
edge weights, a symmetric matrix of size N. Weights should be non-negative.
a color(map) for edges. If a color map function, weights will be transformed
to the range [0,1], which is compatible with functions returned by colorRamp
.
background color.
a color or color vector for nodes.
sphere or other node type supported by RGL.
a vector of length 2, specifying the contrast range for edge colors.
Weights are normalized to the range [0,1].
The normalized weights can be rescaled with this parameter, eg c(0.05,0.95)
would stretch the contrast over the middle 90% of normalized weight values.
quantile transform the weights.
line width for drawing edges.
minimum node radius. Ignored if the radius is specified explicitly with radius
.
maximum node radius. The node radius between minRadius
and maxRadius
is
determined from the sum of the edge weights connecting the node. Ignored if the radius is specified
explicitly with radius
.
a constant radius or vector of length nrow(centroids). If not specified, node radius is determined by the sum of edge weights connected to the node.
boolean, if TRUE
, only nodes with non-zero edge weights are plotted.
None
If edgecolors
is not specified, a heat-like color palette is used. Weights
can be quantile transformed or clipped at a given quantile in order to improve
contrast.
If weights are not specified, only the nodes are plotted.
if (FALSE) { # \dontrun{
# more complete example
mnit <- getANTsRData("mni")
mnit <- antsImageRead(mnit)
mnia <- getANTsRData("mnia")
mnia <- antsImageRead(mnia)
mnit <- thresholdImage(mnit, 1, max(mnit))
mnit <- iMath(mnit, "FillHoles")
mnit <- thresholdImage(mnit, 1, 2)
cnt <- getCentroids(mnia, clustparam = 0)
aalcnt <- cnt[1:90, 1:3]
brain <- renderSurfaceFunction(
surfimg = list(mnit),
alphasurf = 0.1, smoothsval = 1.5
)
testweights <- matrix(rep(0, 90 * 90), nrow = 90)
testweights[31, 37] <- 1 # ant cingulate to hipp
testweights[31, 36] <- 2 # ant cingulate to post cingulate
testweights[11, 65] <- 3 # broca to angular
plotBasicNetwork(centroids = aalcnt, brain, weights = testweights, edgecolors = "red")
id <- rgl::par3d("userMatrix")
rid <- rotate3d(id, -pi / 2, 1, 0, 0)
rid2 <- rotate3d(id, pi / 2, 0, 0, 1)
rid3 <- rotate3d(id, -pi / 2, 0, 0, 1)
rgl::par3d(userMatrix = id)
dd <- make3ViewPNG(rid, id, rid2, paste("network1", sep = ""))
rgl::par3d(userMatrix = id)
# another example
mni <- getANTsRData("mni")
mni <- antsImageRead(mni)
mnit <- thresholdImage(mni, 1, max(mni))
mnit <- iMath(mnit, "FillHoles")
mniseg <- kmeansSegmentation(mni, 3)$segmentation
wmbkgd <- thresholdImage(mniseg, 3, 3) %>%
iMath("GetLargestComponent") %>%
iMath("FillHoles")
wmbkgd <- smoothImage(iMath(wmbkgd, "MD", 1), 2.0)
brain <- renderSurfaceFunction(
surfimg = list(wmbkgd),
alphasurf = 0.8, smoothsval = 1.0
)
data(powers_areal_mni_itk)
coords <- powers_areal_mni_itk[, 1:3]
id <- rgl::par3d("userMatrix")
rid <- rotate3d(id, -pi / 2, 1, 0, 0)
rid2 <- rotate3d(id, pi / 2, 0, 0, 1)
rid3 <- rotate3d(id, -pi / 2, 0, 0, 1)
rgl::par3d(userMatrix = id)
handMat2 <- t(matrix(c(
-0.9998656511, 0.01626961, 0.00198165,
0, -0.0163816363, -0.99584705, -0.08955579, 0, 0.0005163439,
-0.08957647, 0.99597979, 0, 0.0000000000, 0.00000000,
0.00000000, 1
), ncol = 4))
loccolor <- as.character(powers_areal_mni_itk$Color)
loccolor[loccolor == "Peach"] <- "sienna1"
loccolor[loccolor == "Cyan"] <- "cyan"
loccolor[loccolor == "Orange"] <- "orange"
loccolor[loccolor == "Purple"] <- "darkorchid1"
loccolor[loccolor == "Pink"] <- "deeppink"
loccolor[loccolor == "Red"] <- "red"
loccolor[loccolor == "Gray"] <- "gray74"
loccolor[loccolor == "Teal"] <- "turquoise4"
loccolor[loccolor == "Blue"] <- "blue"
loccolor[loccolor == "Yellow"] <- "yellow"
loccolor[loccolor == "Black"] <- "black"
loccolor[loccolor == "Brown"] <- "brown"
loccolor[loccolor == "Pale blue"] <- "steelblue1"
loccolor[loccolor == "Green"] <- "green"
tt <- plotBasicNetwork(
centroids = coords, brain,
nodecolors = loccolor, radius = 3
)
dd <- make3ViewPNG(handMat2, id, rid2, tempfile(fileext = ".png"))
rgl::par3d(userMatrix = id)
} # }