Skip to content

Commit 9bc6d4d

Browse files
committed
Improve validation for seurat prototypes
1 parent c46b9a3 commit 9bc6d4d

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

singlecell/resources/chunks/SeuratPrototype.R

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
CheckField <- function(seuratObj, datasetId, fieldName) {
2+
if (!fieldName %in% names(seuratObj@meta.data)) {
3+
addErrorMessage(paste0(paste0('Missing ', fieldName, ' for dataset: ', datasetId)))
4+
}
5+
6+
if (any(is.na(seuratObj@meta.data[[fieldName]]))) {
7+
addErrorMessage(paste0(paste0('NA values found for ', fieldName, ' for dataset: ', datasetId)))
8+
}
9+
}
10+
111
metricData <- data.frame(dataId = integer(), readsetId = integer(), metricname = character(), metricvalue = numeric())
212

313
for (datasetId in names(seuratObjects)) {
@@ -72,12 +82,12 @@ for (datasetId in names(seuratObjects)) {
7282
metricData <- rbind(metricData, data.frame(dataId = datasetId, readsetId = datasetIdToReadset[[datasetId]], metricname = 'MeanSaturation.RNA', metricvalue = meanSaturation.RNA))
7383
}
7484

75-
if (requireSingleR && !'SingleRConsensus' %in% names(seuratObj@meta.data)) {
76-
addErrorMessage(paste0('Missing SingleRConsensus label for dataset: ', datasetId))
85+
if (requireSingleR) {
86+
CheckField(seuratObj, datasetId, 'SingleRConsensus')
7787
}
7888

79-
if (requireScGate && !'scGateConsensus' %in% names(seuratObj@meta.data)) {
80-
addErrorMessage(paste0('Missing scGateConsensus label for dataset: ', datasetId))
89+
if (requireScGate) {
90+
CheckField(seuratObj, datasetId, 'scGateConsensus')
8191
}
8292

8393
if (length(errorMessages) > 0) {

0 commit comments

Comments
 (0)