getScore
get-scores.Rmd
Overview
This vignette describes the usage of the getScore
parameter in the pandemonium
app.
This is an input for a function that calculates scores and bins which will be plotted in the input panel and can be used as colouring in dimension reduction and tour views.
The pandemonium
package provides two functions for
scores or one can be created and passed. The two functions provided
are:
-
chi2score
This will calculate chi-squared values from theexp
reference point in space1. The scores returned are chi-squared values, the bins are sigma bins from the reference point and the interesting points are ‘bf’ the best fit and ‘sm’ the closet point to the origin. -
outsidescore
this function takes a set of scores for each point and a name for the score from data outside the app. it is passed when loading the app. the scores returned are the scores passed to it, the bins are quartile bins of that score and no interesting points are returned.
Writing a getScore function
Input
The app will pass the following objects to getScore that may be used in calculations:
Input | Description |
---|---|
space1 |
Data frame of space 1 values |
cov |
Covariance matrix of space 1 |
covinv |
Inverse covariance matrix of space 1 |
exp |
reference point in space 1 |
space2 |
Data frame of space 2 values |
space2.cov |
Covariance matrix of space 2 |
space2.exp |
reference point in space 2 |
k |
number of clusters being made can be used to set number of bins |
Output
The function should return a named list with some of the following entries to be used byt the app.
Output | Description |
---|---|
score |
This should be a vector of length = rows of space 1, the values should be numeric |
scoreName |
A name for the title of the score plot |
bins |
This should be a factor with length = rows of space 1 |
binName |
A name for the title of the bin plot |
interest |
A vector of names of interesting points to display in hover of
htmlwidgets plots |
is.interest |
A logical vector of interesting points to display in
ggplot plots |
Example
a simple template for what a getScore
function should
look like is as follows:
myScore <- function(space1=rv$space1, cov=rv$cov1, covinv=rv$covInv1,
exp=rv$exp, space2=rv$space2, space2.cov=rv$cov2,
space2.exp=rv$space2.exp, k=rv$kC){
## Calculations
n <- nrow(space1)
scores <- #function to calculate scores
bins <- #function to calculate scores
## Return
ret <- list()
ret$score <- scores
ret$scoreName <- "scores"
ret$bins <- bins
ret$binName <- "bins"
ret$interest <- rep("",n)
ret$is.interest <- which(ret$interest!="")
ret
}
pandemonium(df, getScore = myScore)
For the function to take values from outside the app it is best to
write it as a closure and pass these values when calling the app as has
been done for outsidescore
outsidescore <- function(scores,scoreName = NULL){
function(space1, ...){
ret <- list()
n<- nrow(space1)
ret$score <- scores
ret$bins <- cut(scores, stats::quantile(scores,c(0,0.25,0.75,1))-c(1,0,0,0), labels=c("lower","inner","upper"))
ret$interest <- rep("",n)
ret$is.interest <- which(ret$interest!="")
ret$scoreName <- as.character(scoreName)
ret$binName <- "quartile"
ret
}
}
pandemonium(df = Bikes$space1, space2 = Bikes$space2,
getScore = outsidescore(Bikes$other$res,"Residual"))