Entering edit mode
Three ways of doing this:
1. add a boolean gate to the existing GatingSet
#say you want a combination of cytokine gates: '4+/IFNg', '4+/TNFa', '4+/IL2'
#simply construct a booleanFilter object
boolgate <- booleanFilter(`4+/IFNg & 4+/TNFa & 4+/IL2`)
# or
char2booleanFilter("4+/IFNg & 4+/TNFa & 4+/IL2") # takes a character as input which is more programmatic
#then add to GatingSet, if name is not supplied, then the entire expression string is used to name the new gate
add(gs, boolgate, parent="4+", name = "myBool")
#compute the gate
recompute(gs, "myBool")
#get the count
getTotal(gs, "myBool")
#delete the gate if it is no longer needed
Rm("myBool", gs)
2. or there is one wrapper function does all the above steps in one call
#calculate boolean indices ind.list <- getIndices(gs,quote(`4+/IFNg & 4+/TNFa & 4+/IL2`)) #count the events count <- lapply(ind.list, function(ind)length(which(ind)))
3. if you don't like the idea of adding new gates, you can grab the event indices from each gate and do the boolean operations on them
#get indices for each gate ind1.list <- getIndice((gs, 'cd4/IFNg') ind2.list <- getIndice((gs, 'cd4/TNFa') ind3.list <- getIndice((gs, 'cd4/IL2') #combine these indices ind.list <- mapply(ind1.list, ind2.list, ind3.list, FUN = function(ind1, ind2,ind3)ind1&ind2&ind3) #count events count <- lapply(ind.list, function(ind)length(which(ind)))
On 05/29/2015 02:29 AM, John Aponte wrote:
Dear Mike,
We would need to calculate the number of events for boolean combination of gates. I wonder if you could guide me on how this numbers can be obtained?
Best regards
JJ
--
John J. Aponte