source("Scripts/R/lib/UtilityFunctions.r")
dataSetNames <- function() {
return(c("whole", "partial", "apical", "basal", "sholl", "parameterSpace"))
}
removeNeuronWithName <- function(dataFrames, neuronName) {
result = list()
for (eachPosition in seq_along(dataFrames)) {
eachName <- names(dataFrames)[eachPosition]
eachFrame <- dataFrames[[eachName]]
newFrame <- eachFrame[substr(eachFrame$cellName, 1,
nchar(neuronName)) != neuronName,]
result[[eachName]] <- newFrame
}
return(result)
}
getApicalNeuronsFromFrame <- function(dataFrame) {
return(getNeuronsFromFrameWithNamesThatEndInString(dataFrame, "-apical"))
}
getBasalNeuronsFromFrame <- function(dataFrame) {
return(getNeuronsFromFrameWithNamesThatEndInString(dataFrame, "-basal"))
}
getNeuronsFromFrameWithNamesThatEndInString <- function(
dataFrame, searchString) {
matchingRows <- sapply(dataFrame$cellName,
function(x) { endsWith(as.character(x),
searchString) })
result <- dataFrame[matchingRows,]
}
# Given a data frame with an "ageCategory" column, returns a list of two
# dataFrames, one young, one old, with the names "young" and "old" respectively.
splitYoungAndOldForOneFrame <- function(dataFrame) {
result <- list()
result$young <- dataFrame[dataFrame$ageCategory == "YOUNG",]
result$old <- dataFrame[dataFrame$ageCategory == "OLD",]
return(result)
}
splitYoungAndOld <- function(dataFrames) {
result = list()
for (eachName in dataSetNames()) {
eachFrame <- dataFrames[[eachName]]
result[[eachName]] <- eachFrame
youngName <- paste0(eachName, "Young")
oldName <- paste0(eachName, "Old")
result[[youngName]] <- eachFrame[eachFrame["ageCategory"] == "YOUNG", ]
result[[oldName]] <- eachFrame[eachFrame["ageCategory"] == "OLD", ]
}
return(result)
}