Compare commits

...

4 Commits

+12 -8
View File
@@ -1,4 +1,4 @@
gs_export_pop<-function(gs, pop, trim.channels=T){ gs_export_pop<-function(gs, pop, trim.channels=T, inverse.transform=F){
pop.dt<-c() pop.dt<-c()
# Initializes the progress bar # Initializes the progress bar
pb <- txtProgressBar(min = 0, # Minimum value of the progress bar pb <- txtProgressBar(min = 0, # Minimum value of the progress bar
@@ -10,7 +10,7 @@ gs_export_pop<-function(gs, pop, trim.channels=T){
for (i in 1:length(gs)){ for (i in 1:length(gs)){
samp<-sampleNames(gs)[i] samp<-sampleNames(gs)[i]
data<-as.data.frame(flowCore::exprs(gh_pop_get_data(gs[[samp]], pop))) %>% add_column("Sample"=samp) data<-as.data.frame(flowCore::exprs(gh_pop_get_data(gs[[samp]], pop, inverse.transform=inverse.transform))) %>% add_column("Sample"=samp)
if (length(pop.dt) > 0){ if (length(pop.dt) > 0){
pop.dt<-rbind(pop.dt, data) pop.dt<-rbind(pop.dt, data)
}else{ }else{
@@ -235,13 +235,14 @@ LMD2FCS<-function(files, output.dir=NULL){
gates_save<-function(gs, file="gates.rds", save=T, include=NULL){ gates_save<-function(gs, file="gates.rds", save=T, include=NULL){
gates.list<-list() gates.list<-list()
pop_paths<-gs_get_pop_paths(gs)[gs_get_pop_paths(gs) != "root"] pop_paths_full<-gs_get_pop_paths(gs)[gs_get_pop_paths(gs) != "root"]
if(!is.null(include)){pop_paths<-pop_paths[pop_paths %in% include]} if(!is.null(include)){pop_paths_full<-pop_paths_full[pop_paths_full %in% include]}
pop_paths<-lapply(pop_paths, function(x) rev(rev(strsplit(x, "/")[[1]])[1:2])) pop_paths<-lapply(pop_paths_full, function(x) rev(rev(strsplit(x, "/")[[1]])[1:2]))
for (gate in pop_paths){ for (gate.in in 1:length(pop_paths)){
gate<-pop_paths[[gate.in]]
parent<-if (gate[1] == ""){"root"}else{gate[1]} parent<-if (gate[1] == ""){"root"}else{gate[1]}
gated_pop<-gate[2] gated_pop<-gate[2]
gates.list[[paste0(parent,"/",gated_pop)]]<-gs_pop_get_gate(gs, gated_pop) gates.list[[paste0(parent,"/",gated_pop)]]<-gs_pop_get_gate(gs, pop_paths_full[gate.in])
} }
if(save){saveRDS(gates.list, file)} if(save){saveRDS(gates.list, file)}
return(gates.list) return(gates.list)
@@ -285,7 +286,9 @@ gs_gate_interactive_regate2<-function(gs, filterId, sample=1, subset="root", ...
dims<-list(names(gs_pop_get_gate(gs, filterId)[[1]]@parameters)[1], dims<-list(names(gs_pop_get_gate(gs, filterId)[[1]]@parameters)[1],
names(gs_pop_get_gate(gs, filterId)[[1]]@parameters)[2]) names(gs_pop_get_gate(gs, filterId)[[1]]@parameters)[2])
childrens<-gs_pop_get_children_recursive(gs, filterId) childrens<-gs_pop_get_children_recursive(gs, filterId)
if (length(childrens)>0){
childrens_gate<-gates_save(gs, save=F, include=childrens) childrens_gate<-gates_save(gs, save=F, include=childrens)
}
gs_pop_add(gs, gs_pop_get_gate(gs, filterId), parent=subset, name="duplicated") gs_pop_add(gs, gs_pop_get_gate(gs, filterId), parent=subset, name="duplicated")
@@ -296,6 +299,7 @@ gs_gate_interactive_regate2<-function(gs, filterId, sample=1, subset="root", ...
dims = dims, regate=T, overlayGates = "duplicated") dims = dims, regate=T, overlayGates = "duplicated")
gs_pop_remove(gs, "duplicated") gs_pop_remove(gs, "duplicated")
if (length(childrens)>0){
gates_apply(gs, childrens_gate) gates_apply(gs, childrens_gate)
} }
}