Closed DillonHammill closed 6 years ago
It is a little hacky but works
gt <- gatingTemplate(csvfile)
> #list gating tree stored in gt
> getNodes(gt, only.names = T)
root /cd15+ /cd15+/L
"root" "cd15+" "L"
> #extract the gating method from a specific pair of parent and child node
> gm <- getGate(gt, "/cd15+", "/cd15+/L")
> class(gm)
[1] "gtMethod"
attr(,"package")
[1] "openCyto"
> #extract the 'gate' you just supplied through 'gating_args' in 'add_pop' call
> thiscall <- parameters(gm)$gate #now it is deparsed as an expression
> eval(thiscall)#convert it to the gate objects you need
A list of 1 filters applied to a flowFrame.
Thanks Mike, just what I needed!
Hi @mikejiang,
Just a follow question about passing gate objects as gating_args. In the case where you may want to gate samples separately would it be possible to use groupBy and collapseDataForGating arguments to achieve this?
See example below: If we have a flowSet containing two samples which we want to gate separately for a particular population. We get the gates and pass them to gatingTemplate gating_args as below:
gate1 <- DrawGate(fs[[1]], channels = c("FSC-A", "SSC-A")) # gate1 is a filters object
gate2 <- DrawGate(fs[[2]], channels = c("FSC-A", "SSC-A")) # gate2 is a filters object
gates <- filters(list(gate1[[1]], gate2[[1]]))
gs <- GatingSet(fs)
row <- add_pop(gs, alias = "L"
, dims = "FSC-A,SSC-A"
, parent = "cd15+"
, gating_method = "gate_manual"
, gating_args = list(gate = gates)
)
# Here is the definition of gate_manual which passes on the gates
gate_manual <- function(fr, pp_res, channels, gate){
return(gate)
}
registerPlugins(gate_manual, "gate_manual")
This will throw an error as only a single gate is expected. Does not seem as if using groupBy and CollapseDataForGating arguments can help in this case. Would I be able to this with a preprocessing function and if so what would it need to do?
filters
is the container to hold multiple gates for the same single sample.
filtersList
should be the right container for holding gates for multiple samples.
Thanks Mike, I have figured it out!
Hi @mikejiang,
The ability to save gates in the gating_args of the gatingTemplate using the add_pop API is working well as you showed in this Rpubs workflow: http://rpubs.com/wjiang2/395270
I was just wondering whether if you were given a gatingTemplate with a gate saved in this manner is there an easy way to extract/return the original gateobj as an R object?
Thanks, Dillon