Skip to content

Commit

Permalink
Merge pull request #103 from nolanlab/naDscrpt
Browse files Browse the repository at this point in the history
Attempting to explicitly handle NA's in FCS parameter descriptions.
  • Loading branch information
rbruggner committed Oct 17, 2016
2 parents 05b0b62 + 13cdc27 commit a0ab57a
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 12 deletions.
15 changes: 12 additions & 3 deletions R/citrus.launchUI.R
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,18 @@ citrus.getFileParameters = function(fileName,dataDir,...){
cat(paste0("Reading parameters in ",fileName,"\n"));
fcsFile = citrus.readFCS(file.path(dataDir,fileName),which.lines=1)
parameterNames = flowCore::colnames(fcsFile)
pnames = as.vector(pData(flowCore::parameters(fcsFile))$desc)
pnames[sapply(pnames,nchar)<3] = parameterNames[sapply(pnames,nchar)<3]
names(parameterNames)=pnames

# This really should be done as part of citrus.readFCS
# Same in citrus.readFCSSet
parameterDescriptions = as.vector(pData(flowCore::parameters(fcsFile))$desc)
invalidDescriptions = unname(which(sapply(parameterDescriptions,nchar)<3 | is.na(parameterDescriptions)))
parameterDescriptions[invalidDescriptions] = parameterNames[invalidDescriptions]
names(parameterNames)=parameterDescriptions

#pnames = as.vector(pData(flowCore::parameters(fcsFile))$desc)
#pnames[sapply(pnames,nchar)<3] = parameterNames[sapply(pnames,nchar)<3]
#names(parameterNames)=pnames

return(parameterNames)
}

Expand Down
25 changes: 20 additions & 5 deletions R/citrus.plot.R
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,29 @@
}

.getDisplayNames=function(citrus.combinedFCSSet,clusteringColumns){
colLabels = citrus.combinedFCSSet$fileChannelNames[[1]][[1]]
reagentNames = citrus.combinedFCSSet$fileReagentNames[[1]][[1]]
displayNames = colLabels
displayNames[nchar(reagentNames)>2] = reagentNames[nchar(reagentNames)>2]

# Get channel names
#colLabels = citrus.combinedFCSSet$fileChannelNames[[1]][[1]]

# Get reagent names
#reagentNames = citrus.combinedFCSSet$fileReagentNames[[1]][[1]]

# Set display names to channel names
#displayNames = colLabels

# update display names to equal reagent names where reagent names > 2
#displayNames[nchar(reagentNames)>2] = reagentNames[nchar(reagentNames)>2]

displayNames = citrus.combinedFCSSet$fileReagentNames[[1]][[1]]

if (all(is.numeric(clusteringColumns))){
# If clustering columns is numeric, pass back the indices
return(displayNames[clusteringColumns])
} else {
names(displayNames) = colLabels
# Otherwise, set the names of display names to be the channel names
#names(displayNames) = colLabels
names(displayNames) = citrus.combinedFCSSet$fileChannelNames[[1]][[1]]
# and return the display names from the corresponding clustering columns
return(as.vector(displayNames[clusteringColumns]))
}

Expand Down
15 changes: 11 additions & 4 deletions R/citrus.util.R
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,24 @@ citrus.readFCSSet = function(dataDirectory,fileList,fileSampleSize=1000,transfor

fcsData=exprs(fcsFile)

# Note - this should be done as part of citrus.readFCS. See citrus.getFileParameters too.
parameterDescriptions = as.vector(pData(flowCore::parameters(fcsFile))$desc)
parameterNames = flowCore::colnames(fcsFile)
invalidDescriptions = unname(which(sapply(parameterDescriptions,nchar)<3 | is.na(parameterDescriptions)))
parameterDescriptions[invalidDescriptions] = parameterNames[invalidDescriptions]

if (useChannelDescriptions){
channelDescriptions = as.vector(pData(parameters(fcsFile))$desc)
colnames(fcsData)[nchar(channelDescriptions)>2] = channelDescriptions[nchar(channelDescriptions)>2]
#channelDescriptions = as.vector(pData(parameters(fcsFile))$desc)
#colnames(fcsData)[nchar(channelDescriptions)>2] = channelDescriptions[nchar(channelDescriptions)>2]
colnames(fcsData)=parameterDescriptions
}

if (!is.null(readParameters)){
fcsData = fcsData[,readParameters]
}

fileChannelNames[[conditions[i]]][[fileName]]=as.vector(pData(parameters(fcsFile))$name)
fileReagentNames[[conditions[i]]][[fileName]]=as.vector(pData(parameters(fcsFile))$desc)
fileChannelNames[[conditions[i]]][[fileName]]=parameterNames
fileReagentNames[[conditions[i]]][[fileName]]=parameterDescriptions
fcsData = cbind(fcsData,fileEventNumber=1:nrow(fcsData),fileId=fileCounter);
fileCounter=fileCounter+1;

Expand Down

0 comments on commit a0ab57a

Please sign in to comment.