Skip to content

Commit

Permalink
Separate NKG2 data into discrete assay
Browse files Browse the repository at this point in the history
  • Loading branch information
bbimber committed Feb 9, 2025
1 parent 77a5ddc commit c0dbac0
Showing 1 changed file with 28 additions and 8 deletions.
36 changes: 28 additions & 8 deletions R/NimbleAPI.R
Original file line number Diff line number Diff line change
Expand Up @@ -414,15 +414,11 @@ PerformDefaultNimbleAppend <- function(seuratObj, isotypeFilterThreshold = 0.1,
assayForLibrarySize = assayForLibrarySize,
normalizeData = TRUE,
maxLibrarySizeRatio = maxLibrarySizeRatio,
replaceExistingAssayData = TRUE,
featureRenameList = list(
'NKG2A-KLRC1' = 'NKG2A',
'NKG2C-KLRC2' = 'NKG2C/E',
'NKG2E-KLRC3' = 'NKG2C/E',
'NKG2C-KLRC2,NKG2E-KLRC3' = 'NKG2C/E'
)
replaceExistingAssayData = TRUE
)
seuratObj$NKG_Status <- .IterativeFeatureFiltering(seuratObj, features = c("NKG2A", "NKG2C/E", "NKG2D"), threshold = 0, maxAllowedClasses = 1, assayName = 'Nimble')

seuratObj <- .GroupNkgData(seuratObj)
seuratObj$NKG_Status <- .IterativeFeatureFiltering(seuratObj, features = c("NKG2A", "NKG2C/E", "NKG2D"), threshold = 0, maxAllowedClasses = 1, assayName = 'NKG')
print(sort(table(seuratObj$NKG_Status)))
print(DimPlot(seuratObj, group.by = 'NKG_Status'))

Expand Down Expand Up @@ -489,6 +485,30 @@ PerformDefaultNimbleAppend <- function(seuratObj, isotypeFilterThreshold = 0.1,
return(seuratObj)
}

.GroupNkgData <- function(seuratObj, targetAssay = 'NKG', sourceAssay = 'Nimble', assayForLibrarySize = 'RNA') {
groupedData <- .RegroupCountMatrix(Seurat::GetAssayData(seuratObj, assay = sourceAssay, layer = 'counts'), featureTransform = function(x){
return(dplyr::case_when(
x == 'NKG2A-KLRC1' ~ 'NKG2A',
x == 'NKG2C-KLRC2' ~ 'NKG2C/E',
x == 'NKG2E-KLRC3' ~ 'NKG2C/E',
x == 'NKG2C-KLRC2,NKG2E-KLRC3' ~ 'NKG2C/E',
.default = x
))
})

groupedData <- groupedData[c('NKG2A', 'NKG2C/E'),]
dat <- Matrix::t(Seurat::as.sparse(suppressWarnings(Seurat::FetchData(seuratObj, vars = 'NKG2D'))))
groupedData <- rbind(groupedData, dat)
seuratObj[[targetAssay]] <- Seurat::CreateAssayObject(counts = groupedData)
seuratObj <- CellMembrane::LogNormalizeUsingAlternateAssay(seuratObj, assay = targetAssay, assayForLibrarySize = assayForLibrarySize, maxLibrarySizeRatio = NULL)

for (feat in rownames(seuratObj@assays[[targetAssay]])){
print(FeaturePlot(seuratObj, features = paste0(seuratObj@assays[[targetAssay]]@key, feat)))
}

return(seuratObj)
}

.GroupMhcData <- function(seuratObj, targetAssay, sourceAssay = 'MHC', prefix = 'Mamu-', assayForLibrarySize = 'RNA') {
seuratObj <- .AssignLocusToMhcFeatures(seuratObj, sourceAssayName = sourceAssay)

Expand Down

0 comments on commit c0dbac0

Please sign in to comment.