diff --git a/Announcements.qmd b/Announcements.qmd
index 6d93de9f..0a285719 100644
--- a/Announcements.qmd
+++ b/Announcements.qmd
@@ -34,4 +34,6 @@ For previous course announcements emails, see the links below.
- April 12, 2026 [Cytometry in R - Week # 09 - It's Raining Functions!](https://github.com/UMGCCCFCSR/CytometryInR/discussions/162)
+- April 21, 2026 [No Class This Week](https://github.com/UMGCCCFCSR/CytometryInR/discussions/174)
+

\ No newline at end of file
diff --git a/README.md b/README.md
index 48d8243f..a146c8ff 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ Cytometry in R is a free virtual mini-course being organized by the [Flow Cytome
We are excited that so many individuals worldwide have chosen to take part, and we look forward to helping you get started on your own learning journeys.
-{width=100%}
+{width="100%"}
Click here to go to our [Course Website](https://umgcccfcsr.github.io/CytometryInR)
diff --git a/Schedule.qmd b/Schedule.qmd
index 3dbc24c7..2101dc16 100644
--- a/Schedule.qmd
+++ b/Schedule.qmd
@@ -117,7 +117,7 @@ No class week of March 30, 2026. If you are attending the [ABRF conference](http
{width=75%}
-[**Week 9: April 13, 2026**]{.underline} In the course of this ninth session, we tackle one of the harder but most useful concepts to learn for a beginner, namely [functions](https://r4ds.had.co.nz/functions.html). We explore what they are, how their individual arguments work, how they differ from for-loops, and how to create our own to do useful work, reduce the number times code gets copied and pasted. Additionally, some functional programming best practices will be introduced, as well as provide introduction to how to use the walk and map functions from the [purrr](https://purrr.tidyverse.org/) package.
+[**Week 9: April 13, 2026**]{.underline} In the course of this [ninth](/course/09_Functions/index.qmd) session, we tackle one of the harder but most useful concepts to learn for a beginner, namely [functions](https://r4ds.had.co.nz/functions.html). We explore what they are, how their individual arguments work, how they differ from for-loops, and how to create our own to do useful work, reduce the number times code gets copied and pasted. Additionally, some functional programming best practices will be introduced, as well as provide introduction to how to use the walk and map functions from the [purrr](https://purrr.tidyverse.org/) package.
@@ -126,7 +126,7 @@ No class week of March 30, 2026. If you are attending the [ABRF conference](http
{width=50%}
-[**Week 10: April 20, 2026**]{.underline} Within this session, we will expand on our growing understanding of GatingSets, functions and fcs file internals to write a script to downsample your fcs files to a desired number (or percentage) of cells for a given cell population. We will additionally learn how to concatenate these downsampled files together, and save them to a new .fcs file in ways that the metadata can be read by commercial software without the scaling being widely thrown off.
+[**Week 10: April 20, 2026**]{.underline} Within this [tenth](/course/10_Downsampling/index.qmd) session, we will expand on our growing understanding of GatingSets, functions and fcs file internals to write a function to downsample your fcs files to a desired number (or percentage) of cells for a given cell population. We will additionally learn how to concatenate these downsampled files together, and save them to a new .fcs file in ways that the metadata can be read by commercial software without the scaling being widely thrown off.
diff --git a/_quarto.yml b/_quarto.yml
index 39fb50a3..e7cad01a 100644
--- a/_quarto.yml
+++ b/_quarto.yml
@@ -20,6 +20,7 @@ project:
- 07_*
- 08_*
- 09_*
+ - 10_*
website:
google-analytics: "G-LZ35J3XE4D"
announcement:
@@ -96,7 +97,9 @@ website:
- text: "09 - It's Raining Functions!"
href: course/09_Functions/index.qmd
- section: "Cytometry Core"
- href: Schedule.qmd
+ contents:
+ - text: "10 - Downsampling and Concatenation"
+ href: course/10_Downsampling/index.qmd
- section: "Beyond the Sandbox"
href: Schedule.qmd
- section: "The World is your Oyster"
diff --git a/course/09_Functions/homeworks/lkisselbach-afk1/TakeHomeProblems_Wk09_LK.qmd b/course/09_Functions/homeworks/lkisselbach-afk1/TakeHomeProblems_Wk09_LK.qmd
new file mode 100644
index 00000000..7f6a02fb
--- /dev/null
+++ b/course/09_Functions/homeworks/lkisselbach-afk1/TakeHomeProblems_Wk09_LK.qmd
@@ -0,0 +1,31 @@
+---
+title: "Take Home Problems Week 09 - LK"
+format: pdf
+---
+# Problem 1
+
+Modify one of the simpler functions (SecondFunction or similar), provide your own argument names, and modify the message(), paste0 or print() functions to print a text style output. Generate a small vector of values, and iterate through your vector using one of the approaches we used.
+
+# Answer 1
+
+
+
+
+
+# Problem 2
+
+Using the initial framework for the CellConcentration function, retrieve several other keywords that are of interest, and incorporate them into the returned data.frame row.
+
+# Answer 2
+
+I calculated the total acquisition time in minutes, although I used Claude AI to help work through some of this code.
+
+
+
+# Problem 3
+
+For CellConcentration, we retrieved both start and end time. Look up information on lubridate package, convert these times to a time-style format, and from acquired volume derive uL/min at which each .fcs file was acquired. Did this vary at all across days?
+
+The acquisition time was very consistent across all days.
+
+
\ No newline at end of file
diff --git a/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot01.png b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot01.png
new file mode 100644
index 00000000..41fb7e88
Binary files /dev/null and b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot01.png differ
diff --git a/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot02.png b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot02.png
new file mode 100644
index 00000000..57f12cd8
Binary files /dev/null and b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot02.png differ
diff --git a/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot03.png b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot03.png
new file mode 100644
index 00000000..68973a23
Binary files /dev/null and b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot03.png differ
diff --git a/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot04.png b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot04.png
new file mode 100644
index 00000000..a3185003
Binary files /dev/null and b/course/09_Functions/homeworks/lkisselbach-afk1/images/Screenshot04.png differ
diff --git a/course/10_Downsampling/R/Concatenate.R b/course/10_Downsampling/R/Concatenate.R
new file mode 100644
index 00000000..50875c01
--- /dev/null
+++ b/course/10_Downsampling/R/Concatenate.R
@@ -0,0 +1,206 @@
+#' Concatenate Internal
+#'
+#' @param x TBD
+#' @param y TBD
+#' @param metadata TBD
+#'
+#' @importFrom dplyr filter bind_cols
+#'
+KeywordAppend <- function(x, y, metadata) {
+ df <- y
+ rownames(metadata) <- NULL
+ AddThisRow <- metadata |> filter(name %in% x)
+ ExpandedData <- bind_cols(df, AddThisRow)
+ return(ExpandedData)
+}
+
+#' Concatenate Internal
+#'
+#' @param DictionaryList TBD
+#' @param data TBD
+#'
+#' @importFrom dplyr left_join select rename
+#' @importFrom tidyselect all_of
+#' @importFrom rlang sym
+#'
+KeywordTranslate <- function(DictionaryList, data) {
+
+ for (Entry in DictionaryList) {
+ ColumnName <- names(Entry)[1]
+ KeyName <- names(Entry)[2]
+
+ data <- data |> dplyr::left_join(Entry, by = ColumnName) |>
+ dplyr::select(-tidyselect::all_of(ColumnName)) |> dplyr::rename(!!ColumnName := !!rlang::sym(KeyName))
+ }
+
+ return(data)
+}
+
+#' Concatenate Internal
+#'
+#' @param x TBD
+#' @param data TBD
+#'
+#' @importFrom dplyr select pull
+#' @importFrom tidyselect all_of
+#' @importFrom tibble tibble
+#'
+#'
+ColumnToKeyword <- function(x, data){
+ IndividualColumn <- data |> dplyr::select(tidyselect::all_of(x))
+
+ if(!is.numeric(IndividualColumn)){ # Is not numeric
+ Values <- IndividualColumn |> dplyr::pull(x) |> unique()
+
+ Dictionary <- tibble::tibble(Values = Values, Values_Key = seq(1000, by = 1000, length.out = length(Values)))
+ colnames(Dictionary) <- gsub("Values", x, colnames(Dictionary))
+ return(Dictionary)
+ } else { # Is numeric already
+ Values <- IndividualColumn |> dplyr::pull(x) |> unique()
+ Dictionary <- tibble::tibble(Values = Values, Values_Key = Values)
+ colnames(Dictionary) <- gsub("Values", x, colnames(Dictionary))
+ return(Dictionary)
+ }
+}
+
+#' Concatenate Internal
+#'
+#' @param flowFrame TBD
+#' @param NewColumns TBD
+#'
+#' @importFrom flowCore pData parameters
+#'
+ParameterUpdate <- function(flowFrame, NewColumns){
+ NewColumnLength <- ncol(NewColumns)
+ NewColumnNames <- colnames(NewColumns)
+ OldParameters <- pData(parameters(flowFrame))
+ NewParameter <- max(as.integer(gsub("\\$P", "", rownames(OldParameters)))) + 1
+ NewParameter <- seq(NewParameter, length.out = NewColumnLength)
+ NewParameter <- paste0("$P", NewParameter)
+
+ UpdatedParameters <- do.call(rbind, lapply(NewColumnNames, function(i){
+ vec <- NewColumns[,i]
+ rg <- range(vec)
+ data.frame(name = i, desc = NA, range = diff(rg) + 1, minRange = rg[1], maxRange = rg[2])
+ }))
+ rownames(UpdatedParameters) <- NewParameter
+ return(UpdatedParameters)
+}
+
+#' Concatenates together .fcs files present in the GatingSet on the
+#' basis of a given gate
+#'
+#' @param gs A GatingSet object
+#' @param subset The gate from which to retrieve cell counts from
+#' @param inverse.transform Whether to revert values back to their
+#' original untransformed values before export as an .fcs file, default
+#' is set to TRUE
+#' @param DownsampleCount The desired number of cells to downsample from
+#' each gated population. If value is less than 1, subsets out the
+#' equivalent proportion from that specimen
+#' @param addon An additional character value to add before .fcs in the GUID
+#' keyword to tell the downsampled file apart from the original.
+#' @param StorageLocation A file.path to the folder you want to store the new downsampled
+#' fcs file to. Default NULL results in .fcs file being stored in current working directory
+#' @param returnType Whether to return as a "fcs" file (default), or "flowFrame" or "data.frame"
+#' @param desiredCols A vector containing the names of the columns from the pData metadata
+#' that need to be added as keywords to the concatenated .fcs file.
+#' @param specimenIndex Which specimen in the GatingSet to use as the metadata
+#' framework for the new fcs file. Default is set to 1.
+#' @param filename Desired name for the concatenated file, default is MyConcatenatedFCS
+#'
+#' @importFrom flowCore pData parameters keyword exprs write.FCS
+#' @importFrom flowWorkspace gs_pop_get_data
+#' @importFrom dplyr select bind_rows
+#' @importFrom tidyselect all_of
+#' @importFrom purrr map map2 flatten
+#'
+Concatenate <- function(gs, subset, inverse.transform=TRUE, DownsampleCount,
+ addon, StorageLocation=NULL, returnType="flowFrame", desiredCols,
+ specimenIndex=1, filename="MyConcatenatedFCS"){
+
+ Metadata <- flowCore::pData(gs)
+ DesiredMetadata <- Metadata |> dplyr::select(tidyselect::all_of(desiredCols))
+
+ dataFrameList <- purrr::map(.x=gs, subset=subset, .f=Downsampling,
+ DownsampleCount=DownsampleCount, addon=addon, returnType="data.frame",
+ inverse.transform=inverse.transform, StorageLocation=StorageLocation)
+
+ TheFileNames <- DesiredMetadata |> dplyr::pull(name)
+
+ ExpandedDataframes <- purrr::map2(.x=TheFileNames, .y=dataFrameList,
+ .f=KeywordAppend, metadata=DesiredMetadata)
+
+ CombinedData <- dplyr::bind_rows(ExpandedDataframes)
+
+ NewData <- CombinedData |> dplyr::select(tidyselect::all_of(desiredCols))
+ OldData <- CombinedData |> dplyr::select(!tidyselect::all_of(desiredCols))
+
+ Dictionaries <- purrr::map(.x=desiredCols, .f=ColumnToKeyword, data=NewData)
+
+ EventsInTheGate <- flowWorkspace::gs_pop_get_data(gs[[specimenIndex]], subset,
+ inverse.transform=inverse.transform)
+ flowFrame <- EventsInTheGate[[1, returnType = "flowFrame"]]
+ OriginalParameters <- flowCore::parameters(flowFrame)
+ OriginalDescription <- flowCore::keyword(flowFrame)
+
+ NewKeywords <- purrr::flatten(Dictionaries)
+ NewDescriptions <- c(OriginalDescription, NewKeywords)
+
+ TranslatedNewData <- KeywordTranslate(data=NewData, DictionaryList=Dictionaries)
+
+ NewDataMatrix <- as.matrix(TranslatedNewData)
+ OldDataMatrix <- as.matrix(OldData)
+
+ new_fcs <- new("flowFrame", exprs=OldDataMatrix, parameters=OriginalParameters,
+ description=NewDescriptions)
+
+ NewParameters <- ParameterUpdate(flowFrame=new_fcs, NewColumns=NewDataMatrix)
+
+ pd <- pData(parameters(new_fcs))
+ pd <- rbind(pd, NewParameters)
+ new_fcs@exprs <- cbind(exprs(new_fcs), NewDataMatrix)
+ pData(parameters(new_fcs)) <- pd
+ new_pid <- rownames(pd)
+ new_kw <- new_fcs@description
+
+ for (i in new_pid){
+ new_kw[paste0(i,"B")] <- new_kw["$P1B"] #Unclear Purpose
+ new_kw[paste0(i,"E")] <- "0,0"
+ new_kw[paste0(i,"N")] <- pd[[i,1]]
+ #new_kw[paste0(i,"V")] <- new_kw["$P1V"] # Extra Unclear Purpose
+ new_kw[paste0(i,"R")] <- pd[[i,5]]
+ new_kw[paste0(i,"DISPLAY")] <- "LIN"
+ new_kw[paste0(i,"TYPE")] <- "Identity"
+ new_kw[paste0("flowCore_", i,"Rmax")] <- pd[[i,5]]
+ new_kw[paste0("flowCore_", i,"Rmin")] <- pd[[i,4]]
+ }
+
+ UpdatedParameters <- parameters(new_fcs)
+ UpdatedExprs <- exprs(new_fcs)
+
+ UpdatedFCS <- new("flowFrame", exprs=UpdatedExprs, parameters=UpdatedParameters, description=new_kw)
+
+ AssembledName <- paste0(filename, ".fcs")
+ UpdatedFCS@description$GUID <- AssembledName
+ UpdatedFCS@description$`$FIL` <- AssembledName
+ #UpdatedFCS@description$CREATOR <- "CytometryInR_2026"
+ #UpdatedFCS@description$GROUPNAME <- filename
+ #UpdatedFCS@description$TUBENAME <- filename
+ #UpdatedFCS@description$USERSETTINGNAME <- filename
+ #Date <- Sys.time()
+ #Date <- as.Date(Date)
+ #UpdatedFCS@description$`$DATE` <- Date
+
+ if (is.null(StorageLocation)){StorageLocation <- getwd()}
+
+ StoreFCSFileHere <- file.path(StorageLocation, AssembledName)
+
+ if (returnType == "fcs"){
+ flowCore::write.FCS(UpdatedFCS, filename = StoreFCSFileHere, delimiter="#") # Write out .fcs file
+ } else if (returnType == "data.frame"){
+ return(Downsampled_DataFrame) #Return data.frame without metadata
+ } else {
+ return(UpdatedFCS) #All other criterias return a flowFrame with metadata
+ }
+}
\ No newline at end of file
diff --git a/course/10_Downsampling/R/Downsampling.R b/course/10_Downsampling/R/Downsampling.R
new file mode 100644
index 00000000..747cd306
--- /dev/null
+++ b/course/10_Downsampling/R/Downsampling.R
@@ -0,0 +1,66 @@
+#' This function downsamples from a designated gate to our desired number
+#' of cells, returning as a new .fcs file
+#'
+#' @param x A GatingSet object, typically iterated in.
+#' @param subset The gate from which to retrieve cell counts from
+#' @param inverse.transform Whether to revert values back to their
+#' original untransformed values before export as an .fcs file, default
+#' is set to TRUE
+#' @param DownsampleCount The desired number of cells to downsample from
+#' each gated population. If value is less than 1, subsets out the
+#' equivalent proportion from that specimen
+#' @param addon An additional character value to add before .fcs in the GUID
+#' keyword to tell the downsampled file apart from the original.
+#' @param StorageLocation A file.path to the folder you want to store the new downsampled
+#' fcs file to. Default NULL results in .fcs file being stored in current working directory
+#' @param returnType Whether to return as a "fcs" file (default), or "flowFrame" or "data.frame"
+#'
+#' @importFrom flowWorkspace gs_pop_get_data
+#' @importFrom flowCore parameters keyword write.FCS
+#' @importFrom Biobase exprs
+#' @importFrom dplyr slice_sample
+#'
+#'
+Downsampling <- function(x, subset, inverse.transform=TRUE, DownsampleCount,
+ addon, StorageLocation=NULL, returnType="fcs"){
+ EventsInTheGate <- flowWorkspace::gs_pop_get_data(x, subset,
+ inverse.transform=inverse.transform)
+ MeasurementData <- Biobase::exprs(EventsInTheGate[[1]])
+ MeasurementDataFramed <- as.data.frame(MeasurementData, check.names = FALSE)
+
+ if (DownsampleCount < 1) {
+ Count <- nrow(EventsInTheGate) # Original Count
+ Count <- as.numeric(Count) #Sanity Check on Value Type
+ Count <- Count*DownsampleCount # Target Cells
+ Count <- round(Count, 0)
+ DownsampleCount <- Count # Over-writting DownsampleCount used for downsampling
+ }
+
+ Downsampled_DataFrame <- dplyr::slice_sample(MeasurementDataFramed, n = DownsampleCount, replace = FALSE)
+
+ DownsampledMatrix <- as.matrix(Downsampled_DataFrame)
+
+ flowFrame <- EventsInTheGate[[1, returnType = "flowFrame"]]
+ OriginalParameters <- flowCore::parameters(flowFrame)
+ OriginalDescription <- flowCore::keyword(flowFrame)
+
+ OriginalName <- OriginalDescription$`GUID`
+ UpdatedName <- paste0("_", addon, ".fcs")
+ UpdatedGUID <- sub(".fcs", UpdatedName, OriginalName) #Swtiching out .fcs for Updated Name via the sub function
+ OriginalDescription$`GUID` <- UpdatedGUID
+
+ NewFCS <- new("flowFrame", exprs=DownsampledMatrix, parameters=OriginalParameters, description=OriginalDescription)
+
+ if (is.null(StorageLocation)){StorageLocation <- getwd()}
+
+ StoreFCSFileHere <- file.path(StorageLocation, UpdatedGUID)
+
+ if (returnType == "fcs"){
+ flowCore::write.FCS(NewFCS, filename = StoreFCSFileHere, delimiter="#") # Write out .fcs file
+ } else if (returnType == "data.frame"){
+ return(Downsampled_DataFrame) #Return data.frame without metadata
+ } else {
+ return(NewFCS) #All other criterias return a flowFrame with metadata
+ }
+
+}
\ No newline at end of file
diff --git a/course/10_Downsampling/concatenate.qmd b/course/10_Downsampling/concatenate.qmd
new file mode 100644
index 00000000..d11f5603
--- /dev/null
+++ b/course/10_Downsampling/concatenate.qmd
@@ -0,0 +1,22 @@
+---
+title: "Walk-through: Concatenate"
+author: "David Rach"
+date: 04-28-2026
+format: html
+toc: true
+toc-depth: 5
+---
+
+
+
+::: {style="text-align: right;"}
+[](https://www.gnu.org/licenses/agpl-3.0.en.html) [](http://creativecommons.org/licenses/by-sa/4.0/)
+:::
+
+For the YouTube livestream schedule, see [here](https://www.youtube.com/@cytometryinr)
+
+For screen-shot slides, click [here](/course/10_Downsampling/slides.qmd)
+
+
+
+---
\ No newline at end of file
diff --git a/course/10_Downsampling/data/2025_07_26_AB_02-INF052-00_Ctrl_Unmixed__Tcells.fcs b/course/10_Downsampling/data/2025_07_26_AB_02-INF052-00_Ctrl_Unmixed__Tcells.fcs
new file mode 100644
index 00000000..1b456bbe
--- /dev/null
+++ b/course/10_Downsampling/data/2025_07_26_AB_02-INF052-00_Ctrl_Unmixed__Tcells.fcs
@@ -0,0 +1,5321 @@
+FCS3.0 58 18508 18509 1738508 0 0#$BEGINANALYSIS#0#$BEGINDATA#18509#$BEGINSTEXT#0#$BTIM#22:23:51.45#$BYTEORD#4,3,2,1#$CYT#Aurora#$CYTOLIB_VERSION#2.22.0#$CYTSN#U1368#$DATATYPE#F#$DATE#26-Jul-2025#$ENDANALYSIS#0#$ENDDATA#1738508#$ENDSTEXT#0#$ETIM#22:25:21.04#$FIL#2025_07_26_AB_02-INF052-00_Ctrl_Unmixed.fcs#$INST#Cytekbio#$MODE#L#$NEXTDATA#0#$OP#David Rach#$P10B#32#$P10E#0,0#$P10N#SSC-B-A#$P10R#4194304#$P10TYPE#Side_Scatter#$P10V#266#$P11B#32#$P11E#0,0#$P11N#BUV395-A#$P11R#4194304#$P11S#CD62L#$P11TYPE#Unmixed_Fluorescence#$P11V#0#$P12B#32#$P12E#0,0#$P12N#BUV563-A#$P12R#4194304#$P12S#CD69#$P12TYPE#Unmixed_Fluorescence#$P12V#0#$P13B#32#$P13E#0,0#$P13N#BUV615-A#$P13R#4194304#$P13S#CCR4#$P13TYPE#Unmixed_Fluorescence#$P13V#0#$P14B#32#$P14E#0,0#$P14N#BUV661-A#$P14R#4194304#$P14S#Vd2#$P14TYPE#Unmixed_Fluorescence#$P14V#0#$P15B#32#$P15E#0,0#$P15N#BUV737-A#$P15R#4194304#$P15S#CD38#$P15TYPE#Unmixed_Fluorescence#$P15V#0#$P16B#32#$P16E#0,0#$P16N#BUV805-A#$P16R#4194304#$P16S#CD4#$P16TYPE#Unmixed_Fluorescence#$P16V#0#$P17B#32#$P17E#0,0#$P17N#Pacific Blue-A#$P17R#4194304#$P17S#Dump#$P17TYPE#Unmixed_Fluorescence#$P17V#0#$P18B#32#$P18E#0,0#$P18N#BV480-A#$P18R#4194304#$P18S#CD161#$P18TYPE#Unmixed_Fluorescence#$P18V#0#$P19B#32#$P19E#0,0#$P19N#BV570-A#$P19R#4194304#$P19S#CD16#$P19TYPE#Unmixed_Fluorescence#$P19V#0#$P1B#32#$P1E#0,0#$P1N#Time#$P1R#896745#$P1TYPE#Time#$P20B#32#$P20E#0,0#$P20N#BV605-A#$P20R#4194304#$P20S#CD45RA#$P20TYPE#Unmixed_Fluorescence#$P20V#0#$P21B#32#$P21E#0,0#$P21N#BV650-A#$P21R#4194304#$P21S#CD8#$P21TYPE#Unmixed_Fluorescence#$P21V#0#$P22B#32#$P22E#0,0#$P22N#BV711-A#$P22R#4194304#$P22S#Va7.2#$P22TYPE#Unmixed_Fluorescence#$P22V#0#$P23B#32#$P23E#0,0#$P23N#BV750-A#$P23R#4194304#$P23S#IFNg#$P23TYPE#Unmixed_Fluorescence#$P23V#0#$P24B#32#$P24E#0,0#$P24N#BV786-A#$P24R#4194304#$P24S#CCR6#$P24TYPE#Unmixed_Fluorescence#$P24V#0#$P25B#32#$P25E#0,0#$P25N#Alexa Fluor 488-A#$P25R#4194304#$P25S#FoxP3#$P25TYPE#Unmixed_Fluorescence#$P25V#0#$P26B#32#$P26E#0,0#$P26N#Spark Blue 550-A#$P26R#4194304#$P26S#CD3#$P26TYPE#Unmixed_Fluorescence#$P26V#0#$P27B#32#$P27E#0,0#$P27N#Spark Blue 574-A#$P27R#4194304#$P27S#CD45#$P27TYPE#Unmixed_Fluorescence#$P27V#0#$P28B#32#$P28E#0,0#$P28N#RB613-A#$P28R#4194304#$P28S#PD1#$P28TYPE#Unmixed_Fluorescence#$P28V#0#$P29B#32#$P29E#0,0#$P29N#RB705-A#$P29R#4194304#$P29S#CD26#$P29TYPE#Unmixed_Fluorescence#$P29V#0#$P2B#32#$P2E#0,0#$P2N#SSC-W#$P2R#4194304#$P2TYPE#Side_Scatter#$P2V#350#$P30B#32#$P30E#0,0#$P30N#RB780-A#$P30R#4194304#$P30S#CXCR5#$P30TYPE#Unmixed_Fluorescence#$P30V#0#$P31B#32#$P31E#0,0#$P31N#PE-A#$P31R#4194304#$P31S#ICOS#$P31TYPE#Unmixed_Fluorescence#$P31V#0#$P32B#32#$P32E#0,0#$P32N#PE-Dazzle594-A#$P32R#4194304#$P32S#TNFa#$P32TYPE#Unmixed_Fluorescence#$P32V#0#$P33B#32#$P33E#0,0#$P33N#PE-Cy5-A#$P33R#4194304#$P33S#CXCR3#$P33TYPE#Unmixed_Fluorescence#$P33V#0#$P34B#32#$P34E#0,0#$P34N#PE-Fire 700-A#$P34R#4194304#$P34S#CD127#$P34TYPE#Unmixed_Fluorescence#$P34V#0#$P35B#32#$P35E#0,0#$P35N#PE-Fire 744-A#$P35R#4194304#$P35S#CD25#$P35TYPE#Unmixed_Fluorescence#$P35V#0#$P36B#32#$P36E#0,0#$P36N#PE-Vio770-A#$P36R#4194304#$P36S#HLA-DR#$P36TYPE#Unmixed_Fluorescence#$P36V#0#$P37B#32#$P37E#0,0#$P37N#APC-A#$P37R#4194304#$P37S#CD39#$P37TYPE#Unmixed_Fluorescence#$P37V#0#$P38B#32#$P38E#0,0#$P38N#Alexa Fluor 647-A#$P38R#4194304#$P38S#IL-2#$P38TYPE#Unmixed_Fluorescence#$P38V#0#$P39B#32#$P39E#0,0#$P39N#APC-R700-A#$P39R#4194304#$P39S#CD107a#$P39TYPE#Unmixed_Fluorescence#$P39V#0#$P3B#32#$P3E#0,0#$P3N#SSC-H#$P3R#4194304#$P3TYPE#Side_Scatter#$P3V#350#$P40B#32#$P40E#0,0#$P40N#Zombie NIR-A#$P40R#4194304#$P40S#Viability#$P40TYPE#Unmixed_Fluorescence#$P40V#0#$P41B#32#$P41E#0,0#$P41N#APC-Fire 750-A#$P41R#4194304#$P41S#CD27#$P41TYPE#Unmixed_Fluorescence#$P41V#0#$P42B#32#$P42E#0,0#$P42N#APC-Fire 810-A#$P42R#4194304#$P42S#CCR7#$P42TYPE#Unmixed_Fluorescence#$P42V#0#$P43B#32#$P43E#0,0#$P43N#AF-A#$P43R#4194304#$P43TYPE#Unmixed_Fluorescence#$P43V#0#$P4B#32#$P4E#0,0#$P4N#SSC-A#$P4R#4194304#$P4TYPE#Side_Scatter#$P4V#350#$P5B#32#$P5E#0,0#$P5N#FSC-W#$P5R#4194304#$P5TYPE#Forward_Scatter#$P5V#64#$P6B#32#$P6E#0,0#$P6N#FSC-H#$P6R#4194304#$P6TYPE#Forward_Scatter#$P6V#64#$P7B#32#$P7E#0,0#$P7N#FSC-A#$P7R#4194304#$P7TYPE#Forward_Scatter#$P7V#64#$P8B#32#$P8E#0,0#$P8N#SSC-B-W#$P8R#4194304#$P8TYPE#Side_Scatter#$P8V#266#$P9B#32#$P9E#0,0#$P9N#SSC-B-H#$P9R#4194304#$P9TYPE#Side_Scatter#$P9V#266#$PAR#43#$PROJ#2025_07_26_AB_02#$SPILLOVER#33,BUV395-A,BUV563-A,BUV615-A,BUV661-A,BUV737-A,BUV805-A,Pacific Blue-A,BV480-A,BV570-A,BV605-A,BV650-A,BV711-A,BV750-A,BV786-A,Alexa Fluor 488-A,Spark Blue 550-A,Spark Blue 574-A,RB613-A,RB705-A,RB780-A,PE-A,PE-Dazzle594-A,PE-Cy5-A,PE-Fire 700-A,PE-Fire 744-A,PE-Vio770-A,APC-A,Alexa Fluor 647-A,APC-R700-A,Zombie NIR-A,APC-Fire 750-A,APC-Fire 810-A,AF-A,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000001,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000#$TIMESTEP#0.0001#$TOT#10000#$VOL#103.16#APPLY COMPENSATION#FALSE#CHARSET#utf-8#CREATOR#SpectroFlo 3.3.0#FCSversion#3#FILENAME#/home/david/Documents/CytometryInR_Sid/course/10_Downsampling/data/2025_07_26_AB_02-INF052-00_Ctrl_Unmixed.fcs#flowCore_$P10Rmax#4194303#flowCore_$P10Rmin#0#flowCore_$P11Rmax#4194288.75#flowCore_$P11Rmin#-111.000038146973#flowCore_$P12Rmax#4194288.75#flowCore_$P12Rmin#-111.000038146973#flowCore_$P13Rmax#4194288.75#flowCore_$P13Rmin#-111.000038146973#flowCore_$P14Rmax#4194288.75#flowCore_$P14Rmin#-111.000038146973#flowCore_$P15Rmax#4194288.75#flowCore_$P15Rmin#-111.000038146973#flowCore_$P16Rmax#4194288.75#flowCore_$P16Rmin#-111.000038146973#flowCore_$P17Rmax#4194288.75#flowCore_$P17Rmin#-111.000038146973#flowCore_$P18Rmax#4194288.75#flowCore_$P18Rmin#-111.000038146973#flowCore_$P19Rmax#4194288.75#flowCore_$P19Rmin#-111.000038146973#flowCore_$P1Rmax#896744#flowCore_$P1Rmin#0#flowCore_$P20Rmax#4194288.75#flowCore_$P20Rmin#-111.000038146973#flowCore_$P21Rmax#4194288.75#flowCore_$P21Rmin#-111.000038146973#flowCore_$P22Rmax#4194288.75#flowCore_$P22Rmin#-111.000038146973#flowCore_$P23Rmax#4194288.75#flowCore_$P23Rmin#-111.000038146973#flowCore_$P24Rmax#4194288.75#flowCore_$P24Rmin#-111.000038146973#flowCore_$P25Rmax#4194288.75#flowCore_$P25Rmin#-111.000038146973#flowCore_$P26Rmax#4194288.75#flowCore_$P26Rmin#-111.000038146973#flowCore_$P27Rmax#4194288.75#flowCore_$P27Rmin#-111.000038146973#flowCore_$P28Rmax#4194288.75#flowCore_$P28Rmin#-111.000038146973#flowCore_$P29Rmax#4194288.75#flowCore_$P29Rmin#-111.000038146973#flowCore_$P2Rmax#4194303#flowCore_$P2Rmin#0#flowCore_$P30Rmax#4194288.75#flowCore_$P30Rmin#-111.000038146973#flowCore_$P31Rmax#4194288.75#flowCore_$P31Rmin#-111.000038146973#flowCore_$P32Rmax#4194288.75#flowCore_$P32Rmin#-111.000038146973#flowCore_$P33Rmax#4194288.75#flowCore_$P33Rmin#-111.000038146973#flowCore_$P34Rmax#4194288.75#flowCore_$P34Rmin#-111.000038146973#flowCore_$P35Rmax#4194288.75#flowCore_$P35Rmin#-111.000038146973#flowCore_$P36Rmax#4194288.75#flowCore_$P36Rmin#-111.000038146973#flowCore_$P37Rmax#4194288.75#flowCore_$P37Rmin#-111.000038146973#flowCore_$P38Rmax#4194288.75#flowCore_$P38Rmin#-111.000038146973#flowCore_$P39Rmax#4194288.75#flowCore_$P39Rmin#-111.000038146973#flowCore_$P3Rmax#4194303#flowCore_$P3Rmin#0#flowCore_$P40Rmax#4194288.75#flowCore_$P40Rmin#-111.000038146973#flowCore_$P41Rmax#4194288.75#flowCore_$P41Rmin#-111.000038146973#flowCore_$P42Rmax#4194288.75#flowCore_$P42Rmin#-111.000038146973#flowCore_$P43Rmax#4194288.75#flowCore_$P43Rmin#-111.000038146973#flowCore_$P4Rmax#4194303#flowCore_$P4Rmin#0#flowCore_$P5Rmax#4194303#flowCore_$P5Rmin#0#flowCore_$P6Rmax#4194303#flowCore_$P6Rmin#0#flowCore_$P7Rmax#4194303#flowCore_$P7Rmin#0#flowCore_$P8Rmax#4194303#flowCore_$P8Rmin#0#flowCore_$P9Rmax#4194303#flowCore_$P9Rmin#0#FSC ASF#1.18#GROUPNAME#INF052#GUID#2025_07_26_AB_02-INF052-00_Ctrl_Unmixed__Tcells.fcs#LASER1ASF#1.12#LASER1DELAY#-39.65#LASER1NAME#YellowGreen#LASER2ASF#1.09#LASER2DELAY#-19.825#LASER2NAME#Violet#LASER3ASF#1.15#LASER3DELAY#0#LASER3NAME#Blue#LASER4ASF#1.04#LASER4DELAY#20.3#LASER4NAME#Red#LASER5ASF#1.09#LASER5DELAY#39.8#LASER5NAME#UV#ORIGINALGUID#cc646652-3cd6-4baa-8a79-7192109bf13b#P10DISPLAY#LIN#P11DISPLAY#LOG#P12DISPLAY#LOG#P13DISPLAY#LOG#P14DISPLAY#LOG#P15DISPLAY#LOG#P16DISPLAY#LOG#P17DISPLAY#LOG#P18DISPLAY#LOG#P19DISPLAY#LOG#P1DISPLAY#LOG#P20DISPLAY#LOG#P21DISPLAY#LOG#P22DISPLAY#LOG#P23DISPLAY#LOG#P24DISPLAY#LOG#P25DISPLAY#LOG#P26DISPLAY#LOG#P27DISPLAY#LOG#P28DISPLAY#LOG#P29DISPLAY#LOG#P2DISPLAY#LIN#P30DISPLAY#LOG#P31DISPLAY#LOG#P32DISPLAY#LOG#P33DISPLAY#LOG#P34DISPLAY#LOG#P35DISPLAY#LOG#P36DISPLAY#LOG#P37DISPLAY#LOG#P38DISPLAY#LOG#P39DISPLAY#LOG#P3DISPLAY#LIN#P40DISPLAY#LOG#P41DISPLAY#LOG#P42DISPLAY#LOG#P43DISPLAY#LOG#P4DISPLAY#LIN#P5DISPLAY#LIN#P6DISPLAY#LIN#P7DISPLAY#LIN#P8DISPLAY#LIN#P9DISPLAY#LIN#THRESHOLD#(FSC,600000)#transformation#custom#TUBENAME#00_Ctrl#USERSETTINGNAME#DR_2025_AB_Nuclear#WINDOW EXTENSION#3#GwICwHɟ II6
|IYI!OI;PH5@HD'Eÿ#CF?BҥCIďGG|}BDʈDLF}F;#{C5FCbECD6$FdC~ÒCYCqcCnD[FgrFflE/jHcI0,H I]I.#'IIHI-IxHH\E7EC`}|FLFCbC9mD+GGk0BDY`NÅDrD
+FFV~1BGUC]