saeyslab / CytoNorm

R library to normalize cytometry data
33 stars 6 forks source link

CytoNorm by Flowjo=> No normalized files created #37

Open BaptLabRight opened 1 year ago

BaptLabRight commented 1 year ago

Hi, I am a CytoNorm user via FlowJo software.

The normalization process seems to work but when it ends, I can't find any "nomalised" fcs files. In contrast, some new R scripts such as "RScript.CytoNorm.1670259468256.R" are present in the original folder containing the fcs files I used for normalisation.

Where can I find the normalized files? How can I be sure that no error occurred during the normailsation? Thank you

zlanzar commented 1 year ago

Hello,

I'm also running into the above error. Rscript output shows:

R version 4.1.1 (2021-08-10) -- "Kick Things"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> #######################################################################
> # Copyright (c) 2021 Josh Luthy BD Life Sciences - Informatics,
> # Ashland, OR
> #
> # Plugin R Script Template Designed and Written by: Ian Taylor and Josh Luthy
> #
> # CytoNorm algorithm and associated R package developed by Sofie Van Gassen, PhD
> #
> # License
> # The software is distributed under the terms of the
> # Artistic License 2.0
> # http://www.r-project.org/Licenses/Artistic-2.0
> #
> # Disclaimer
> # This software and documentation come with no warranties of any kind.
> # This software is provided "as is" and any express or implied
> # warranties, including, but not limited to, the implied warranties of
> # merchantability and fitness for a particular purpose are disclaimed.
> # In no event shall the  copyright holder be liable for any direct,
> # indirect, incidental, special, exemplary, or consequential damages
> # (including but not limited to, procurement of substitute goods or
> # services; loss of use, data or profits; or business interruption)
> # however caused and on any theory of liability, whether in contract,
> # strict liability, or tort arising in any way out of the use of this
> # software.
> ######################################################################
> 
> options(warn = - 1)
> 
> ## INSTALL REQUIRED PACKAGES ##
> #######################
> # Install from CRAN
> 
> ## TRY TO AUTO INSTALL ##
> 
> # Install function for packages
> packages<-function(x){
+   x<-as.character(match.call()[[2]])
+   if (!require(x,character.only=TRUE)){
+     install.packages(pkgs=x,repos="http://cran.r-project.org")
+     require(x,character.only=TRUE)
+   }
+ }
> 
> # Try to write a special function for devtools installs:
> devPackages<-function(x){
+   if (!require(x,character.only=TRUE)){
+     suppressMessages(suppressWarnings(devtools::install_github(x)))
+   }else{
+     require(x,character.only=TRUE)
+   }
+ }
> 
> fCorePack<-function(x){
+   x<-as.character(match.call()[[2]])
+   if (!require(x,character.only=TRUE)){
+     BiocManager::install(x)
+     require(x,character.only=TRUE)
+   }
+ }
> 
> packages(devtools)
Loading required package: devtools
Loading required package: usethis
> packages(BiocManager)
Loading required package: BiocManager
Bioconductor version '3.13' is out-of-date; the current release version '3.16'
  is available with R version '4.2'; see https://bioconductor.org/install

Attaching package: 'BiocManager'

The following object is masked from 'package:devtools':

    install

> packages(dplyr)
Loading required package: dplyr

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

> fCorePack(FlowSOM)
Loading required package: FlowSOM
Loading required package: igraph

Attaching package: 'igraph'

The following objects are masked from 'package:dplyr':

    as_data_frame, groups, union

The following objects are masked from 'package:stats':

    decompose, spectrum

The following object is masked from 'package:base':

    union

Error: package or namespace load failed for 'FlowSOM' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so':
  dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so
  Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)
Bioconductor version 3.13 (BiocManager 1.30.16), R 4.1.1 (2021-08-10)
Installation paths not writeable, unable to update packages
  path: /Library/Frameworks/R.framework/Versions/4.1/Resources/library
  packages:
    BBmisc, BH, BiocManager, DBI, DT, DiagrammeR, FNN, Hmisc, MASS, Matrix,
    MatrixModels, ParamHelpers, R.methodsS3, R.oo, R.utils, RColorBrewer,
    RCurl, RJSONIO, RSQLite, RSpectra, Rcpp, RcppAnnoy, RcppArmadillo,
    RcppEigen, RcppHNSW, Rtsne, Seurat, SeuratObject, XML, ape, aplot, audio,
    babelgene, backports, bit, blob, boot, brew, brio, broom, bslib, callr,
    car, carData, caret, checkmate, class, cli, clipr, cluster, colorspace,
    commonmark, conquer, corrplot, cpp11, crayon, credentials, crosstalk, curl,
    data.table, dbplyr, deldir, desc, devtools, digest, dplyr, dtplyr, e1071,
    evaluate, fansi, farver, fdrtool, fitdistrplus, fontawesome, forcats,
    foreach, foreign, formatR, fs, future, future.apply, gargle, generics,
    gert, ggbeeswarm, ggforce, ggfun, ggplot2, ggpubr, ggraph, ggrepel,
    ggridges, ggsignif, gh, gitcreds, globals, glue, googlesheets4, gower,
    gplots, graphlayouts, gt, gtable, gtools, haven, highr, hms, htmlTable,
    htmltools, htmlwidgets, httpuv, httr, ica, igraph, ipred, irlba, isoband,
    iterators, jpeg, jsonlite, knitr, lattice, latticeExtra, lava, leiden, lhs,
    lifecycle, listenv, lme4, lmtest, locfit, lubridate, magrittr, maptools,
    matrixStats, memoise, mgcv, minqa, mlr, mlrMBO, modelr, msigdbr, nlme,
    nloptr, nnet, openssl, openxlsx, parallelly, patchwork, pbapply, pillar,
    pkgbuild, pkgload, plotly, plyr, png, polyclip, polynom, processx,
    progressr, proxy, ps, purrr, quantreg, randomForest, readr, readxl,
    recipes, remotes, renv, reprex, restfulr, reticulate, rio, rjson, rlang,
    rmarkdown, roxygen2, rpart, rprojroot, rstatix, rstudioapi, rversions,
    rvest, sass, scales, scattermore, scatterpie, sctransform, sessioninfo,
    shadowtext, shiny, sp, spatial, spatstat.data, spatstat.geom,
    spatstat.sparse, spatstat.utils, statmod, stringi, stringr, survival, sys,
    tensorflow, testthat, tfruns, tibble, tidygraph, tidyr, tidyselect,
    tidytree, tidyverse, timeDate, tinytex, tweenr, tzdb, usethis, uuid, uwot,
    vctrs, viridisLite, visNetwork, vroom, waldo, whisker, withr, writexl,
    xfun, xml2, yaml, yulab.utils, zip, zoo
Loading required package: FlowSOM
Error: package or namespace load failed for 'FlowSOM' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so':
  dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so
  Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)
> fCorePack(CytoML)
Loading required package: CytoML
Error: package or namespace load failed for 'CytoML' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so':
  dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so
  Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)
Bioconductor version 3.13 (BiocManager 1.30.16), R 4.1.1 (2021-08-10)
Installation paths not writeable, unable to update packages
  path: /Library/Frameworks/R.framework/Versions/4.1/Resources/library
  packages:
    BBmisc, BH, BiocManager, DBI, DT, DiagrammeR, FNN, Hmisc, MASS, Matrix,
    MatrixModels, ParamHelpers, R.methodsS3, R.oo, R.utils, RColorBrewer,
    RCurl, RJSONIO, RSQLite, RSpectra, Rcpp, RcppAnnoy, RcppArmadillo,
    RcppEigen, RcppHNSW, Rtsne, Seurat, SeuratObject, XML, ape, aplot, audio,
    babelgene, backports, bit, blob, boot, brew, brio, broom, bslib, callr,
    car, carData, caret, checkmate, class, cli, clipr, cluster, colorspace,
    commonmark, conquer, corrplot, cpp11, crayon, credentials, crosstalk, curl,
    data.table, dbplyr, deldir, desc, devtools, digest, dplyr, dtplyr, e1071,
    evaluate, fansi, farver, fdrtool, fitdistrplus, fontawesome, forcats,
    foreach, foreign, formatR, fs, future, future.apply, gargle, generics,
    gert, ggbeeswarm, ggforce, ggfun, ggplot2, ggpubr, ggraph, ggrepel,
    ggridges, ggsignif, gh, gitcreds, globals, glue, googlesheets4, gower,
    gplots, graphlayouts, gt, gtable, gtools, haven, highr, hms, htmlTable,
    htmltools, htmlwidgets, httpuv, httr, ica, igraph, ipred, irlba, isoband,
    iterators, jpeg, jsonlite, knitr, lattice, latticeExtra, lava, leiden, lhs,
    lifecycle, listenv, lme4, lmtest, locfit, lubridate, magrittr, maptools,
    matrixStats, memoise, mgcv, minqa, mlr, mlrMBO, modelr, msigdbr, nlme,
    nloptr, nnet, openssl, openxlsx, parallelly, patchwork, pbapply, pillar,
    pkgbuild, pkgload, plotly, plyr, png, polyclip, polynom, processx,
    progressr, proxy, ps, purrr, quantreg, randomForest, readr, readxl,
    recipes, remotes, renv, reprex, restfulr, reticulate, rio, rjson, rlang,
    rmarkdown, roxygen2, rpart, rprojroot, rstatix, rstudioapi, rversions,
    rvest, sass, scales, scattermore, scatterpie, sctransform, sessioninfo,
    shadowtext, shiny, sp, spatial, spatstat.data, spatstat.geom,
    spatstat.sparse, spatstat.utils, statmod, stringi, stringr, survival, sys,
    tensorflow, testthat, tfruns, tibble, tidygraph, tidyr, tidyselect,
    tidytree, tidyverse, timeDate, tinytex, tweenr, tzdb, usethis, uuid, uwot,
    vctrs, viridisLite, visNetwork, vroom, waldo, whisker, withr, writexl,
    xfun, xml2, yaml, yulab.utils, zip, zoo
Loading required package: CytoML
Error: package or namespace load failed for 'CytoML' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so':
  dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so
  Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)
> # devPackages("saeyslab/FlowSOM")
> devPackages("saeyslab/CytoNorm")
Loading required package: saeyslab/CytoNorm
> library("CytoNorm")
> # fCorePack(FlowSOM)
> packages(ggplot2)
Loading required package: ggplot2
> packages(pheatmap)
Loading required package: pheatmap
> #######################
> ###############################
> ##         LOAD INPUTS       ##
> ###############################
> 
> isWindows <- FALSE
> outPath <- "/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/CytoNorm_Dataset_1674154397010/_Users_zacharylanzar_Documents_CHunter_lab_ZL_23_Treg_rebound_Kinetics_#2_Data_TcellPhenotyping_CompensationCorrected_Spleen_11323_forBatchCorrection.CytoNorm.csv"
> 
> if (isWindows){
+   outPath <- gsub("/", "\\\\", outPath)
+ }
> 
> tempDir <- paste0(outPath,"/temp")
> 
> if (isWindows){
+   tempDir <- gsub("/", "\\\\", tempDir)
+ }
> 
> inCSVPath <- "/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection"
> sampleName <- "sampleName"
> applyOn <- "NONE"
> 
> # TODO: Settings being imported from Java - switches can be repurposed for needs in CytoNorm
> timeStamp <- "1674154397010"
> 
> ## Repurposing 'FJ FLIP GRAPH' to the Hashmap of 'samples : control' status
> hashList <- list("/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D10_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D22_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D35_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D60_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_1.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_2.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_3.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_4.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_5.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/D+ ata/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_1.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_2.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_3.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_4.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_5.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spl+ een_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_005.fcs:false")
> 
> nCluster <- 5
> 
> ## Repurposing 'FJ TRIM' to ... batches
> batchList <- list("/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D10_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D22_1.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D35_1.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D60_1.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_2.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_3.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_4.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_5.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_001.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_002.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_003.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_004.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_005.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_001.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_002.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_003.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_004.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_001.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_002.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323+ /forBatchCorrection/export_Infected_Day60_Spleen_Infected_003.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_004.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_005.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_2.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_3.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_4.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_5.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_001.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_002.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_003.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_004.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_005.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_001.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_002.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_003.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_004.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_005.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_001.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_002.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_003.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyp+ ing/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_004.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_rebound_Kinetics_#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_005.fcs:04")
> parLegendPosition <- "FJ_LEGEND_POS" ## "left", "top", "right", "bottom"
> catParRaw <- "FJ_CAT_PAR"
> # createStatTable <- FJ_STATS
> 
> ## This should be the number of samples (or batches) we're trying to correct
> numSamples <- length(hashList)
> 
> ## Get the DataSet Ready for CytoNorm ##
> ########################################
> 
> outPuts <- paste0(inCSVPath, "/CytoNorm_Dataset_", timeStamp)
> 
> # Let's get the FCS file lists addressed the way CytoNorm expects to find them.
> 
> data02 <- data.frame( File = character(),
+                       Path = character(),
+                       Type = character(),
+                       Batch = character(),
+                       stringsAsFactors = F )
> 
> for (i in 1:numSamples) {
+   ithHash <- as.character(hashList[i])
+ 
+   ithBatchHash <- as.character(batchList[i])
+ 
+   # ithHash <- as.character(hashList[1])
+   # tidyselect::vars_select(ithHash, contains(":true"))
+   # ":true" %in% ithHash
+   # grepl(":true", ithHash)
+   # sub(".*/", "", sub(":true","",ithHash))
+ 
+   if (grepl(":true", ithHash)) {   # }, ignore.case = F, vars = ithHash)) {
+     # put these samples into the control group (type = 1)
+     data02[i,] <- data.frame( File = sub(".*/", "", sub(":true","",ithHash)),
+                               Path = sub(":true","",ithHash),
+                               Type = "1",
+                               Batch = sub(".*:", "", ithBatchHash),
+                               stringsAsFactors = F )
+ 
+ 
+   } else {
+     # put these samples inot the test group (type = 2)
+     data02[i,] <- data.frame( File = sub(".*/", "", sub(":false","",ithHash)),
+                               Path = sub(":false","",ithHash),
+                               Type = "2",
+                               Batch = sub(".*:", "", ithBatchHash),
+                               stringsAsFactors = F )
+   }
+ }
> 
> #   ithControl <- gsub(":*", "", ithHash)
> #   split(hashList[1], ':', drop = F)
> #   splitR <- split(hashList)
> 
> data <- data02
> 
> ########################################
> ########################################
> 
> 
> 
> ## Initial Treatment of Dataset ##
> ##################################
> 
> data$Type <- c("1" = "Train", "2" = "Validation")[data$Type]
> 
> train_data <- dplyr::filter(data, Type == "Train")
> validation_data <- dplyr::filter(data, Type == "Validation")
> 
> ff <- flowCore::read.FCS(data$Path[1])
> 
> channels <- flowCore::colnames(ff)
> transformList <- flowCore::transformList(channels,
+                                          CytoNorm::cytofTransform)
> 
> transformList.reverse <- flowCore::transformList(channels,
+                                                  CytoNorm::cytofTransform.reverse)
> 
> 
> ##  Step 02 of Initial Workflow ##
> ##################################
> 
> fsom <- CytoNorm::prepareFlowSOM(train_data$Path,
+                                  channels,
+                                  nCells = 6000,
+                                  FlowSOM.params = list(xdim = 5,
+                                                        ydim = 5,
+                                                        nClus = nCluster,
+                                                        scale = FALSE), #TODO place 'colsToUse' here for user selected params
+                                  transformList = transformList,
+                                  seed = 1)
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so':
  dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so
  Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted

The flowjo plug in is able to get as far as the beginning of step 2, but early on it looks to me as though FlowSOM and CytoML are not loading properly? any help would be greatly appreciated.

Thank you!

SofieVG commented 1 year ago

The error messages seem indeed to indicate a problem with CytoML. Can you try opening R and testing whether library("CytoML") works? If it gives an error about the library not being installed, you should be able to install it with the following commands if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("CytoML")

On Thu, 19 Jan 2023 at 20:38, zlanzar @.***> wrote:

Hello,

I'm also running into the above error. Rscript output shows:

R version 4.1.1 (2021-08-10) -- "Kick Things" Copyright (C) 2021 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.

#######################################################################

Copyright (c) 2021 Josh Luthy BD Life Sciences - Informatics,

Ashland, OR

#

Plugin R Script Template Designed and Written by: Ian Taylor and Josh Luthy

#

CytoNorm algorithm and associated R package developed by Sofie Van Gassen, PhD

#

License

The software is distributed under the terms of the

Artistic License 2.0

http://www.r-project.org/Licenses/Artistic-2.0

#

Disclaimer

This software and documentation come with no warranties of any kind.

This software is provided "as is" and any express or implied

warranties, including, but not limited to, the implied warranties of

merchantability and fitness for a particular purpose are disclaimed.

In no event shall the copyright holder be liable for any direct,

indirect, incidental, special, exemplary, or consequential damages

(including but not limited to, procurement of substitute goods or

services; loss of use, data or profits; or business interruption)

however caused and on any theory of liability, whether in contract,

strict liability, or tort arising in any way out of the use of this

software.

######################################################################

options(warn = - 1)

INSTALL REQUIRED PACKAGES

#######################

Install from CRAN

TRY TO AUTO INSTALL

Install function for packages

packages<-function(x){

  • x<-as.character(match.call()[[2]])
  • if (!require(x,character.only=TRUE)){
  • install.packages(pkgs=x,repos="http://cran.r-project.org")
  • require(x,character.only=TRUE)
  • }
  • }

Try to write a special function for devtools installs:

devPackages<-function(x){

  • if (!require(x,character.only=TRUE)){
  • suppressMessages(suppressWarnings(devtools::install_github(x)))
  • }else{
  • require(x,character.only=TRUE)
  • }
  • }

fCorePack<-function(x){

  • x<-as.character(match.call()[[2]])
  • if (!require(x,character.only=TRUE)){
  • BiocManager::install(x)
  • require(x,character.only=TRUE)
  • }
  • }

packages(devtools) Loading required package: devtools Loading required package: usethis packages(BiocManager) Loading required package: BiocManager Bioconductor version '3.13' is out-of-date; the current release version '3.16' is available with R version '4.2'; see https://bioconductor.org/install

Attaching package: 'BiocManager'

The following object is masked from 'package:devtools':

install

packages(dplyr) Loading required package: dplyr

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

filter, lag

The following objects are masked from 'package:base':

intersect, setdiff, setequal, union

fCorePack(FlowSOM) Loading required package: FlowSOM Loading required package: igraph

Attaching package: 'igraph'

The following objects are masked from 'package:dplyr':

as_data_frame, groups, union

The following objects are masked from 'package:stats':

decompose, spectrum

The following object is masked from 'package:base':

union

Error: package or namespace load failed for 'FlowSOM' in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so': dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file) Bioconductor version 3.13 (BiocManager 1.30.16), R 4.1.1 (2021-08-10) Installation paths not writeable, unable to update packages path: /Library/Frameworks/R.framework/Versions/4.1/Resources/library packages: BBmisc, BH, BiocManager, DBI, DT, DiagrammeR, FNN, Hmisc, MASS, Matrix, MatrixModels, ParamHelpers, R.methodsS3, R.oo, R.utils, RColorBrewer, RCurl, RJSONIO, RSQLite, RSpectra, Rcpp, RcppAnnoy, RcppArmadillo, RcppEigen, RcppHNSW, Rtsne, Seurat, SeuratObject, XML, ape, aplot, audio, babelgene, backports, bit, blob, boot, brew, brio, broom, bslib, callr, car, carData, caret, checkmate, class, cli, clipr, cluster, colorspace, commonmark, conquer, corrplot, cpp11, crayon, credentials, crosstalk, curl, data.table, dbplyr, deldir, desc, devtools, digest, dplyr, dtplyr, e1071, evaluate, fansi, farver, fdrtool, fitdistrplus, fontawesome, forcats, foreach, foreign, formatR, fs, future, future.apply, gargle, generics, gert, ggbeeswarm, ggforce, ggfun, ggplot2, ggpubr, ggraph, ggrepel, ggridges, ggsignif, gh, gitcreds, globals, glue, googlesheets4, gower, gplots, graphlayouts, gt, gtable, gtools, haven, highr, hms, htmlTable, htmltools, htmlwidgets, httpuv, httr, ica, igraph, ipred, irlba, isoband, iterators, jpeg, jsonlite, knitr, lattice, latticeExtra, lava, leiden, lhs, lifecycle, listenv, lme4, lmtest, locfit, lubridate, magrittr, maptools, matrixStats, memoise, mgcv, minqa, mlr, mlrMBO, modelr, msigdbr, nlme, nloptr, nnet, openssl, openxlsx, parallelly, patchwork, pbapply, pillar, pkgbuild, pkgload, plotly, plyr, png, polyclip, polynom, processx, progressr, proxy, ps, purrr, quantreg, randomForest, readr, readxl, recipes, remotes, renv, reprex, restfulr, reticulate, rio, rjson, rlang, rmarkdown, roxygen2, rpart, rprojroot, rstatix, rstudioapi, rversions, rvest, sass, scales, scattermore, scatterpie, sctransform, sessioninfo, shadowtext, shiny, sp, spatial, spatstat.data, spatstat.geom, spatstat.sparse, spatstat.utils, statmod, stringi, stringr, survival, sys, tensorflow, testthat, tfruns, tibble, tidygraph, tidyr, tidyselect, tidytree, tidyverse, timeDate, tinytex, tweenr, tzdb, usethis, uuid, uwot, vctrs, viridisLite, visNetwork, vroom, waldo, whisker, withr, writexl, xfun, xml2, yaml, yulab.utils, zip, zoo Loading required package: FlowSOM Error: package or namespace load failed for 'FlowSOM' in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so': dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)

fCorePack(CytoML) Loading required package: CytoML Error: package or namespace load failed for 'CytoML' in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so': dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file) Bioconductor version 3.13 (BiocManager 1.30.16), R 4.1.1 (2021-08-10) Installation paths not writeable, unable to update packages path: /Library/Frameworks/R.framework/Versions/4.1/Resources/library packages: BBmisc, BH, BiocManager, DBI, DT, DiagrammeR, FNN, Hmisc, MASS, Matrix, MatrixModels, ParamHelpers, R.methodsS3, R.oo, R.utils, RColorBrewer, RCurl, RJSONIO, RSQLite, RSpectra, Rcpp, RcppAnnoy, RcppArmadillo, RcppEigen, RcppHNSW, Rtsne, Seurat, SeuratObject, XML, ape, aplot, audio, babelgene, backports, bit, blob, boot, brew, brio, broom, bslib, callr, car, carData, caret, checkmate, class, cli, clipr, cluster, colorspace, commonmark, conquer, corrplot, cpp11, crayon, credentials, crosstalk, curl, data.table, dbplyr, deldir, desc, devtools, digest, dplyr, dtplyr, e1071, evaluate, fansi, farver, fdrtool, fitdistrplus, fontawesome, forcats, foreach, foreign, formatR, fs, future, future.apply, gargle, generics, gert, ggbeeswarm, ggforce, ggfun, ggplot2, ggpubr, ggraph, ggrepel, ggridges, ggsignif, gh, gitcreds, globals, glue, googlesheets4, gower, gplots, graphlayouts, gt, gtable, gtools, haven, highr, hms, htmlTable, htmltools, htmlwidgets, httpuv, httr, ica, igraph, ipred, irlba, isoband, iterators, jpeg, jsonlite, knitr, lattice, latticeExtra, lava, leiden, lhs, lifecycle, listenv, lme4, lmtest, locfit, lubridate, magrittr, maptools, matrixStats, memoise, mgcv, minqa, mlr, mlrMBO, modelr, msigdbr, nlme, nloptr, nnet, openssl, openxlsx, parallelly, patchwork, pbapply, pillar, pkgbuild, pkgload, plotly, plyr, png, polyclip, polynom, processx, progressr, proxy, ps, purrr, quantreg, randomForest, readr, readxl, recipes, remotes, renv, reprex, restfulr, reticulate, rio, rjson, rlang, rmarkdown, roxygen2, rpart, rprojroot, rstatix, rstudioapi, rversions, rvest, sass, scales, scattermore, scatterpie, sctransform, sessioninfo, shadowtext, shiny, sp, spatial, spatstat.data, spatstat.geom, spatstat.sparse, spatstat.utils, statmod, stringi, stringr, survival, sys, tensorflow, testthat, tfruns, tibble, tidygraph, tidyr, tidyselect, tidytree, tidyverse, timeDate, tinytex, tweenr, tzdb, usethis, uuid, uwot, vctrs, viridisLite, visNetwork, vroom, waldo, whisker, withr, writexl, xfun, xml2, yaml, yulab.utils, zip, zoo Loading required package: CytoML Error: package or namespace load failed for 'CytoML' in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so': dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file)

devPackages("saeyslab/FlowSOM")

devPackages("saeyslab/CytoNorm") Loading required package: saeyslab/CytoNorm library("CytoNorm")

fCorePack(FlowSOM)

packages(ggplot2) Loading required package: ggplot2 packages(pheatmap) Loading required package: pheatmap ####################### ###############################

LOAD INPUTS

###############################

isWindows <- FALSE outPath <- "/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/CytoNorm_Dataset_1674154397010/_Users_zacharylanzar_Documents_CHunter_lab_ZL_23_Treg_reboundKinetics#2_Data_TcellPhenotyping_CompensationCorrected_Spleen_11323_forBatchCorrection.CytoNorm.csv"

if (isWindows){

  • outPath <- gsub("/", "\\", outPath)
  • }

tempDir <- paste0(outPath,"/temp")

if (isWindows){

  • tempDir <- gsub("/", "\\", tempDir)
  • }

inCSVPath <- "/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection" sampleName <- "sampleName" applyOn <- "NONE"

TODO: Settings being imported from Java - switches can be repurposed for needs in CytoNorm

timeStamp <- "1674154397010"

Repurposing 'FJ FLIP GRAPH' to the Hashmap of 'samples : control' status

hashList <- list("/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D10_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D22_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D35_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D60_1.fcs:true","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_1.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_2.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_3.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_4.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_5.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/D+ ata/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_1.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_2.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_3.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_4.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_5.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_005.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_001.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_002.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spl+ een_Naive_003.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_004.fcs:false","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_005.fcs:false")

nCluster <- 5

Repurposing 'FJ TRIM' to ... batches

batchList <- list("/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D10_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D22_1.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D35_1.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/concatSCC_D60_1.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_2.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_3.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_4.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day10_Spleen_d10_Infected_5.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_001.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_002.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_003.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_004.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day22_Spleen_d22_Infected_005.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_001.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_002.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_003.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day35_Spleen_Infected_004.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_001.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_002.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323+ /forBatchCorrection/export_Infected_Day60_Spleen_Infected_003.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_004.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Infected_Day60_Spleen_Infected_005.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_1.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_2.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_3.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_4.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day10_Spleen_d10_PBS_5.fcs:01","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_001.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_002.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_003.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_004.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day22_Spleen_d22_Naive_005.fcs:02","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_001.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_002.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_003.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_004.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day35_Spleen_Naive_005.fcs:03","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_001.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_002.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_003.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyp+ ing/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_004.fcs:04","/Users/zacharylanzar/Documents/CHunter_lab/ZL_23_Treg_reboundKinetics#2/Data/TcellPhenotyping/CompensationCorrected_Spleen_11323/forBatchCorrection/export_Naive_Day60_Spleen_Naive_005.fcs:04") parLegendPosition <- "FJ_LEGEND_POS" ## "left", "top", "right", "bottom" catParRaw <- "FJ_CAT_PAR"

createStatTable <- FJ_STATS

This should be the number of samples (or batches) we're trying to correct

numSamples <- length(hashList)

Get the DataSet Ready for CytoNorm

########################################

outPuts <- paste0(inCSVPath, "/CytoNormDataset", timeStamp)

Let's get the FCS file lists addressed the way CytoNorm expects to find them.

data02 <- data.frame( File = character(),

  • Path = character(),
  • Type = character(),
  • Batch = character(),
  • stringsAsFactors = F )

for (i in 1:numSamples) {

  • ithHash <- as.character(hashList[i])
  • ithBatchHash <- as.character(batchList[i])
  • ithHash <- as.character(hashList[1])

  • tidyselect::vars_select(ithHash, contains(":true"))

  • ":true" %in% ithHash

  • grepl(":true", ithHash)

  • sub(".*/", "", sub(":true","",ithHash))

  • if (grepl(":true", ithHash)) { # }, ignore.case = F, vars = ithHash)) {
  • put these samples into the control group (type = 1)

  • data02[i,] <- data.frame( File = sub(".*/", "", sub(":true","",ithHash)),
  • Path = sub(":true","",ithHash),
  • Type = "1",
  • Batch = sub(".*:", "", ithBatchHash),
  • stringsAsFactors = F )
  • } else {
  • put these samples inot the test group (type = 2)

  • data02[i,] <- data.frame( File = sub(".*/", "", sub(":false","",ithHash)),
  • Path = sub(":false","",ithHash),
  • Type = "2",
  • Batch = sub(".*:", "", ithBatchHash),
  • stringsAsFactors = F )
  • }
  • }

ithControl <- gsub(":*", "", ithHash)

split(hashList[1], ':', drop = F)

splitR <- split(hashList)

data <- data02

######################################## ########################################

Initial Treatment of Dataset

##################################

data$Type <- c("1" = "Train", "2" = "Validation")[data$Type]

train_data <- dplyr::filter(data, Type == "Train") validation_data <- dplyr::filter(data, Type == "Validation")

ff <- flowCore::read.FCS(data$Path[1])

channels <- flowCore::colnames(ff) transformList <- flowCore::transformList(channels,

  • CytoNorm::cytofTransform)

transformList.reverse <- flowCore::transformList(channels,

  • CytoNorm::cytofTransform.reverse)

Step 02 of Initial Workflow

##################################

fsom <- CytoNorm::prepareFlowSOM(train_data$Path,

  • channels,
  • nCells = 6000,
  • FlowSOM.params = list(xdim = 5,
  • ydim = 5,
  • nClus = nCluster,
  • scale = FALSE), #TODO place 'colsToUse' here for user selected params
  • transformList = transformList,
  • seed = 1) Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so': dlopen(/Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so, 0x0006): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib Referenced from: /Users/zacharylanzar/Library/R/x86_64/4.1/library/CytoML/libs/CytoML.so Reason: tried: '/usr/local/opt/libxml2/lib/libxml2.2.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libxml2.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/lib/server/libxml2.2.dylib' (no such file) Calls: ... asNamespace -> loadNamespace -> library.dynam -> dyn.load Execution halted

The flowjo plug in is able to get as far as the beginning of step 2, but early on it looks to me as though FlowSOM and CytoML are not loading properly? any help would be greatly appreciated.

Thank you!

— Reply to this email directly, view it on GitHub https://github.com/saeyslab/CytoNorm/issues/37#issuecomment-1397504577, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOS7257ZYGIO46DXCE5WODWTGJ4RANCNFSM6AAAAAASVQOXTQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

BaptLabRight commented 1 year ago

Hi Sofie, Thank you for your reply. In my hands, library("CytoML") works perfectly.

I had to correct the R script produced by Flowjo by myself to make it able to produce normalized fcs files: In fact in Step 02 "Initial WorkFlow", I needed to had "emptyValue=F"

See code below

Step 02 of Initial Workflow

################################## fsom <- CytoNorm::prepareFlowSOM(train_data$Path,emptyValue=F, channels, nCells = 6000, FlowSOM.params = list(xdim = 5, ydim = 5, nClus = nCluster, scale = FALSE), #TODO place 'colsToUse' here for user selected params transformList = transformList, seed = 1)

cVals = sort(c(5,nCluster,10,15)) png("NUL") pdf("NUL")

cvs <- testCV(fsom, cluster_values = cVals, plot=FALSE)

p <- PlotOverviewCV(fsom, cvs)

ggsave(paste0(outPuts,"/CVcompare.png"), p)

dev.off()

eval(parse(text=paste0("cvs","$","pctgs","$","",nCluster,"")))

In addition, I needed to add emptyValue=F in Step 03. See code below

model <- CytoNorm.train(files = train_data$Path,emptyValue=F, labels = train_data$Batch, channels = channels, transformList = transformList, outputDir = tempDir,

plot = FJ_SOMMARY_PLOTS, TODO: implement this option as checkbox (summary plots).

                      FlowSOM.params = list(nCells = 10000,
                                            xdim = 10,
                                            ydim = 10,
                                            nClus = nCluster,
                                            scale = FALSE), #TODO use colsToUse to train on selected params
                      normMethod.train = QuantileNorm.train,
                      normParams = list(nQ = 101,
                                        goal = "mean"),
                      seed = 1,
                      verbose = TRUE)

Same thing for Step 04

CytoNorm.normalize(model = model, files = validation_data$Path, labels = validation_data$Batch, emptyValue=F,

                transformList = transformList,
                transformList.reverse = transformList.reverse,
                normMethod.normalize = QuantileNorm.normalize,
                outputDir = OutPutDir,
                prefix = "Norm_",
                clean = TRUE,
                verbose = TRUE)

With these additions, the script produces normalized fcs files.

Could you confirm these corrections?

Thank you

SofieVG commented 1 year ago

This emptyValue parameter is one that is passed along to read.FCS from the flowcore package, and one that might not be necessary for all fcs files, which might be the reason the flowjo plugin did not use it by default. It seems a reasonable adaptation to me.

On Fri, 20 Jan 2023 at 11:42, BaptLabRight @.***> wrote:

Hi Sofie, Thank you for your reply. In my hands, library("CytoML") works perfectly.

I had to correct the R script produced by Flowjo by myself to make it able to produce normalized fcs files: In fact in Step 02 "Initial WorkFlow", I needed to had "emptyValue=F"

See code below Step 02 of Initial Workflow

################################## fsom <- CytoNorm::prepareFlowSOM(train_data$Path,emptyValue=F, channels, nCells = 6000, FlowSOM.params = list(xdim = 5, ydim = 5, nClus = nCluster, scale = FALSE), #TODO place 'colsToUse' here for user selected params transformList = transformList, seed = 1)

cVals = sort(c(5,nCluster,10,15)) png("NUL") pdf("NUL")

cvs <- testCV(fsom, cluster_values = cVals, plot=FALSE)

p <- PlotOverviewCV(fsom, cvs)

ggsave(paste0(outPuts,"/CVcompare.png"), p)

dev.off()

eval(parse(text=paste0("cvs","$","pctgs","$","",nCluster,"")))

In addition, I needed to add emptyValue=F in Step 03. See code below

model <- CytoNorm.train(files = train_data$Path,emptyValue=F, labels = train_data$Batch, channels = channels, transformList = transformList, outputDir = tempDir,

plot = FJ_SOMMARY_PLOTS, TODO: implement this option as checkbox

(summary plots). FlowSOM.params = list(nCells = 10000, xdim = 10, ydim = 10, nClus = nCluster, scale = FALSE), #TODO use colsToUse to train on selected params normMethod.train = QuantileNorm.train, normParams = list(nQ = 101, goal = "mean"), seed = 1, verbose = TRUE)

Same thing for Step 04

CytoNorm.normalize(model = model, files = validation_data$Path, labels = validation_data$Batch, emptyValue=F,

            transformList = transformList,
            transformList.reverse = transformList.reverse,
            normMethod.normalize = QuantileNorm.normalize,
            outputDir = OutPutDir,
            prefix = "Norm_",
            clean = TRUE,
            verbose = TRUE)

With these additions, the script produces normalized fcs files.

Could you confirm these corrections?

Thank you

— Reply to this email directly, view it on GitHub https://github.com/saeyslab/CytoNorm/issues/37#issuecomment-1398206027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOS724KOLKFELWF4BKB7VLWTJTZTANCNFSM6AAAAAASVQOXTQ . You are receiving this because you commented.Message ID: @.***>

zlanzar commented 1 year ago

Hi Sophie,

I removed my previous installation of CytoML and re-installed using the commands you listed above:

if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("CytoML")

Version 2.4.0 of CytoML is installed and is loadable with library("CytoML") in R, but the R.output script is still throwing the same error.

SofieVG commented 1 year ago

And is the path to your R installation in the FlowJo preferences certainly pointing to the R you are testing the library in? I've had it happen that this was still a previous installation.

On Mon, 23 Jan 2023, 17:40 zlanzar, @.***> wrote:

Hi Sophie,

I removed my previous installation of CytoML and re-installed using the commands you listed above:

if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("CytoML")

Version 2.4.0 of CytoML is installed and is loadable with library("CytoML") in R, but the R.output script is still throwing the same error.

— Reply to this email directly, view it on GitHub https://github.com/saeyslab/CytoNorm/issues/37#issuecomment-1400649458, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOS725SI7TPKOW7XHVKOSLWT2YBVANCNFSM6AAAAAASVQOXTQ . You are receiving this because you commented.Message ID: @.***>

zlanzar commented 1 year ago
> library(CytoML)
> R.home()
[1] "/Library/Frameworks/R.framework/Resources"
Screen Shot 2023-01-23 at 12 43 22 PM

When using that path to R it throws the unable to find CytoML error.

I used the .libPaths() to find where my R library is

> .libPaths()
[1] "/Users/zacharylanzar/Library/R/x86_64/4.1/library"             
[2] "/Library/Frameworks/R.framework/Versions/4.1/Resources/library"

Pathing to either above allows the program to run. No errors are thrown but there is no R.output nor files generated.