@@ -352,7 +352,7 @@ filter_fcd <- function(fcdataset, cell_ids) {
352352
353353 new_fcd <- list ()
354354
355- for (level_1 in names(fcdataset )) {
355+ for (level_1 in names(fcdataset )[names( fcdataset ) != " extras " ] ) {
356356
357357 int_cont <- fcdataset [[level_1 ]]
358358
@@ -367,6 +367,12 @@ filter_fcd <- function(fcdataset, cell_ids) {
367367
368368 }
369369
370+ if (length(names(fcdataset )[names(fcdataset ) == " extras" ]) == 1 ) {
371+
372+ new_fcd [[" extras" ]] <- fcdataset [[" extras" ]]
373+
374+ }
375+
370376 return (new_fcd )
371377
372378}
@@ -1738,12 +1744,23 @@ predict_labels <- function(fcd,
17381744# ' @param pop XX
17391745# ' @param gate_list XX
17401746# ' @param inverse.transform XX
1747+ # ' @import flowWorkspace
1748+ # ' @import Biobase
1749+ # ' @import CytoML
17411750# ' @return read_flowjo_workspace
17421751# '
17431752# ' @export
1744- prep_data_fjw <- function (data_gs , pop = " root" , gate_list = nodelist , inverse.transform = FALSE ) {
1753+ prep_fjw <- function (data_gs ,
1754+ pop = " root" ,
1755+ gate_list = nodelist ,
1756+ inverse.transform = FALSE ,
1757+ transformation = ' a' ,
1758+ remove_param ,
1759+ merge_anno = FALSE ,
1760+ anno_table ,
1761+ separator_anno ) {
17451762
1746- fs <- flowWorkspace :: gs_pop_get_data(obj = data_gs , y = " root" , inverse.transform = inverse.transform ) % > % flowWorkspace :: cytoset_to_flowSet()
1763+ fs <- flowWorkspace :: gs_pop_get_data(obj = data_gs , y = " root" , inverse.transform = inverse.transform )
17471764
17481765 filenames <- rownames(fs @ phenoData )
17491766
@@ -1780,15 +1797,55 @@ prep_data_fjw <- function(data_gs, pop = "root", gate_list = nodelist, inverse.t
17801797
17811798 FFdata <- as.data.frame(FFdata )
17821799
1783- FFdata $ InFile <- factor (FFdata $ InFile , labels = filenames ) # To check what happens with 10+ samples but should be fine
1800+ if (inverse.transform == TRUE ) {
1801+
1802+ # # Data Transformation
1803+ keeptable <- data.frame (Param = fs [[1 ]]@ parameters $ desc )
1804+ keeptable $ Trans <- transformation
1805+ keeptable <- keeptable [! keeptable $ Param %in% remove_param , ]
17841806
1785- rownames( FFdata ) <- paste( FFdata $ InFile , rownames( FFdata ), sep = " _ " )
1807+ data1 <- FFdata [,which(colnames( FFdata ) %in% keeptable [, 1 ])]
17861808
1787- # Separate expression table from the metadata
1809+ nfTransOut <- nfTransform(keeptable , data1 , data1 )
1810+
1811+ data1 <- nfTransOut $ dataA1
1812+
1813+ # # Clean the dataframe
1814+ df <- cbind(data1 , FFdata [, ! colnames(FFdata ) %in% fs [[1 ]]@ parameters $ desc ])
1815+ df <- as.data.frame(df )
1816+ colnames(df )[colnames(df ) == " InFile" ] <- " expfcs_filename"
1817+ df $ expfcs_filename <- as.factor(df $ expfcs_filename )
1818+ df $ expfcs_filename <- factor (df $ expfcs_filename , labels = filenames )
1819+
1820+ } else {
1821+
1822+ df <- FFdata
1823+ colnames(df )[colnames(df ) == " InFile" ] <- " expfcs_filename"
1824+ df $ expfcs_filename <- as.factor(df $ expfcs_filename )
1825+ df $ expfcs_filename <- factor (df $ expfcs_filename , labels = filenames )
1826+
1827+ }
1828+
1829+ if (merge_anno == TRUE ) {c
1830+
1831+ # # Now add the annotation (as csv file)
1832+ anno <- read.delim(anno_table , sep = separator_anno )
1833+
1834+ df <- merge(df , anno , by.x = " expfcs_filename" , by.y = filename_col )
1835+
1836+ }
1837+
1838+ # # Give the unique rownames
1839+ rownames(df ) <- paste(df $ expfcs_filename , rownames(df ), sep = " _" )
1840+
1841+ # # Prepare the final object
17881842 fcd <- list ()
1789- #
1790- fcd [[" expr" ]][[" orig" ]] <- FFdata [,1 : length(OrigNames )]
1791- fcd [[" anno" ]][[" cell_anno" ]] <- FFdata [, - (1 : length(OrigNames ))]
1843+
1844+ fcd [[" expr" ]][[" orig" ]] <- df [ ,colnames(df ) %in% fs [[1 ]]@ parameters $ desc ]
1845+ fcd [[" anno" ]][[" cell_anno" ]] <- df [ ,! colnames(df ) %in% fs [[1 ]]@ parameters $ desc ]
1846+
1847+ class(fcd ) <- " flow_cytometry_dataframe"
17921848
17931849 return (fcd )
1850+
17941851}
0 commit comments