Data analysis: Samplewise Analysis#

In this vignette, we showcase samplewise analysis methods covered by FACSPy.

First, we create the dataset, covering cell lineages of peripheral blood, spleen and bone marrow.

[1]:
import warnings
warnings.filterwarnings(
    action='ignore',
    category=FutureWarning
)
[2]:
import FACSPy as fp
import os
[3]:
input_directory = "../../Tutorials/mouse_lineages"
metadata = fp.dt.Metadata(os.path.join(input_directory, "metadata.csv"))
panel = fp.dt.Panel(os.path.join(input_directory, "panel.csv"))
workspace = fp.dt.FlowJoWorkspace(os.path.join(input_directory, "lineages.wsp"))
[4]:
dataset = fp.dt.create_dataset(input_directory = input_directory,
                               metadata = metadata,
                               panel = panel,
                               workspace = workspace)
dataset
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4046, FSC-H: 39, FSC-W: 112, SSC-A: 699, SSC-H: 20, SSC-W: 39, BUV496-A: 4, BB700-A: 9
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 3756, FSC-H: 49, FSC-W: 115, SSC-A: 801, SSC-H: 25, SSC-W: 51, GFP-A: 2, APC-A: 1, APC-H7-A: 1, BV421-A: 5, BV510-A: 13, BV605-A: 6, BB700-A: 1
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4804, FSC-H: 71, FSC-W: 145, SSC-A: 1005, SSC-H: 22, SSC-W: 49, APC-H7-A: 6, BV421-A: 11, BV510-A: 2541, BV605-A: 6760, BV711-A: 745, BV786-A: 43, BUV395-A: 21, BUV496-A: 129, BUV737-A: 7194, BYG790-A: 173, BB700-A: 9
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 6715, FSC-H: 96, FSC-W: 217, SSC-A: 1324, SSC-H: 33, SSC-W: 69, GFP-A: 5, APC-A: 8, APC-H7-A: 16, BV421-A: 3040, BV510-A: 7299, BV605-A: 857, BV711-A: 52, BV786-A: 43, BUV395-A: 140, BUV496-A: 7727, BUV737-A: 198, BYG790-A: 7, BB700-A: 23
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5090, FSC-H: 85, FSC-W: 163, SSC-A: 1140, SSC-H: 25, SSC-W: 76, GFP-A: 5, APC-A: 9, APC-H7-A: 16, BV421-A: 2871, BV510-A: 6925, BV605-A: 948, BV711-A: 61, BV786-A: 33, BUV395-A: 185, BUV496-A: 7361, BUV737-A: 251, BYG790-A: 11, BB700-A: 22
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 3994, FSC-H: 57, FSC-W: 98, SSC-A: 760, SSC-H: 20, SSC-W: 39, GFP-A: 5, APC-A: 8, APC-H7-A: 17, BV421-A: 2139, BV510-A: 5646, BV605-A: 594, BV711-A: 36, BV786-A: 35, BUV395-A: 102, BUV496-A: 6027, BUV737-A: 139, BYG790-A: 8, BB700-A: 17
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4634, FSC-H: 65, FSC-W: 181, SSC-A: 944, SSC-H: 29, SSC-W: 81, GFP-A: 2, APC-A: 12, APC-H7-A: 16, BV421-A: 2583, BV510-A: 6914, BV605-A: 797, BV711-A: 45, BV786-A: 28, BUV395-A: 152, BUV496-A: 7346, BUV737-A: 200, BYG790-A: 9, BB700-A: 15
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5643, FSC-H: 62, FSC-W: 224, SSC-A: 970, SSC-H: 31, SSC-W: 83, GFP-A: 3, APC-A: 7, APC-H7-A: 11, BV421-A: 2252, BV510-A: 6162, BV605-A: 690, BV711-A: 40, BV786-A: 23, BUV395-A: 136, BUV496-A: 6566, BUV737-A: 183, BYG790-A: 8, BB700-A: 13
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 221, FSC-H: 1, FSC-W: 71, SSC-A: 216, GFP-A: 54, BV421-A: 1, BUV496-A: 4, BB700-A: 6
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 439, FSC-H: 1, FSC-W: 17, SSC-A: 145, GFP-A: 7, BV421-A: 1, BV711-A: 2, BV786-A: 4, BUV395-A: 1, BUV496-A: 1, BUV737-A: 1, BB700-A: 1
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 882, FSC-H: 7, FSC-W: 124, SSC-A: 300, SSC-H: 3, SSC-W: 97, GFP-A: 3, APC-A: 17, APC-H7-A: 41, BV421-A: 619, BV510-A: 14698, BV605-A: 152, BV711-A: 20, BV786-A: 35, BUV395-A: 34, BUV496-A: 17001, BUV737-A: 32, BYG790-A: 40, BB700-A: 15
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1065, FSC-H: 3, FSC-W: 72, SSC-A: 192, SSC-H: 4, SSC-W: 42, GFP-A: 1, APC-A: 8, APC-H7-A: 30, BV421-A: 1477, BV510-A: 14720, BV605-A: 120, BV711-A: 18, BV786-A: 93, BUV395-A: 17, BUV496-A: 16519, BUV737-A: 19, BYG790-A: 27, BB700-A: 15
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1191, FSC-H: 2, FSC-W: 87, SSC-A: 310, SSC-H: 1, SSC-W: 26, GFP-A: 1, APC-A: 5, APC-H7-A: 6, BV421-A: 416, BV510-A: 10607, BV605-A: 51, BV711-A: 6, BV786-A: 40, BUV395-A: 11, BUV496-A: 11940, BUV737-A: 5, BYG790-A: 8, BB700-A: 3
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 376, SSC-A: 127, SSC-H: 405, SSC-W: 8, GFP-A: 86, APC-A: 7, APC-H7-A: 4, BV421-A: 41, BV510-A: 1328, BV605-A: 19833, BV711-A: 136, BV786-A: 22, BUV395-A: 14, BUV496-A: 30, BUV737-A: 22479, BYG790-A: 23, BB700-A: 60
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1363, FSC-H: 6, FSC-W: 120, SSC-A: 338, SSC-H: 6, SSC-W: 77, GFP-A: 2, APC-A: 14, APC-H7-A: 52, BV421-A: 1614, BV510-A: 29531, BV605-A: 221, BV711-A: 32, BV786-A: 103, BUV395-A: 30, BUV496-A: 33042, BUV737-A: 47, BYG790-A: 36, BB700-A: 31
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1387, FSC-H: 21, FSC-W: 60, SSC-A: 117
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2266, FSC-H: 25, FSC-W: 113, SSC-A: 250, BV510-A: 42
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2817, FSC-H: 36, FSC-W: 73, SSC-A: 215, SSC-H: 1, SSC-W: 25, APC-H7-A: 9, BV421-A: 14, BV510-A: 1008, BV605-A: 8999, BV711-A: 374, BV786-A: 25, BUV395-A: 21, BUV496-A: 31, BUV737-A: 9306, BYG790-A: 52, BB700-A: 7
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1900, FSC-H: 13, FSC-W: 51, SSC-A: 105, SSC-H: 2, SSC-W: 10, GFP-A: 1, APC-A: 7, APC-H7-A: 16, BV421-A: 776, BV510-A: 8794, BV605-A: 345, BV711-A: 30, BV786-A: 17, BUV395-A: 29, BUV496-A: 9101, BUV737-A: 52, BYG790-A: 5, BB700-A: 15
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1861, FSC-H: 25, FSC-W: 51, SSC-A: 173, SSC-H: 3, SSC-W: 14, APC-H7-A: 4, BV421-A: 8, BV510-A: 1461, BV605-A: 9282, BV711-A: 532, BV786-A: 28, BUV395-A: 16, BUV496-A: 60, BUV737-A: 9735, BYG790-A: 98, BB700-A: 3
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1293, FSC-H: 11, FSC-W: 41, SSC-A: 160, SSC-H: 2, SSC-W: 18, GFP-A: 1, APC-A: 5, APC-H7-A: 9, BV421-A: 943, BV510-A: 10749, BV605-A: 319, BV711-A: 22, BV786-A: 17, BUV395-A: 42, BUV496-A: 11143, BUV737-A: 62, BYG790-A: 5, BB700-A: 13
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 667, FSC-H: 7, FSC-W: 25, SSC-A: 140, SSC-H: 2, SSC-W: 14, GFP-A: 2, APC-A: 12, APC-H7-A: 17, BV421-A: 522, BV510-A: 9083, BV605-A: 250, BV711-A: 31, BV786-A: 21, BUV395-A: 30, BUV496-A: 9386, BUV737-A: 60, BYG790-A: 7, BB700-A: 25
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 835, FSC-H: 10, FSC-W: 30, SSC-A: 132, SSC-H: 2, SSC-W: 16, APC-H7-A: 7, BV421-A: 14, BV510-A: 521, BV605-A: 9576, BV711-A: 204, BV786-A: 30, BUV395-A: 18, BUV496-A: 35, BUV737-A: 9978, BYG790-A: 57, BB700-A: 7
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4643, FSC-H: 58, FSC-W: 121, SSC-A: 970, SSC-H: 18, SSC-W: 54, GFP-A: 1, BV605-A: 3, BUV395-A: 6, BUV496-A: 2
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4288, FSC-H: 64, FSC-W: 168, SSC-A: 895, SSC-H: 13, SSC-W: 74, GFP-A: 1, BV605-A: 5, BV711-A: 15, BUV395-A: 3, BUV496-A: 1, BB700-A: 1
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4153, FSC-H: 61, FSC-W: 170, SSC-A: 887, SSC-H: 16, SSC-W: 91, APC-H7-A: 10, BV421-A: 31, BV510-A: 2178, BV605-A: 7261, BV711-A: 652, BV786-A: 42, BUV395-A: 28, BUV496-A: 112, BUV737-A: 7836, BYG790-A: 187, BB700-A: 17
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4591, FSC-H: 64, FSC-W: 121, SSC-A: 818, SSC-H: 12, SSC-W: 39, GFP-A: 1, APC-A: 12, APC-H7-A: 24, BV421-A: 1892, BV510-A: 5521, BV605-A: 541, BV711-A: 26, BV786-A: 26, BUV395-A: 85, BUV496-A: 5878, BUV737-A: 142, BYG790-A: 11, BB700-A: 22
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4034, FSC-H: 79, FSC-W: 94, SSC-A: 909, SSC-H: 11, SSC-W: 44, APC-H7-A: 18, BV421-A: 40, BV510-A: 1980, BV605-A: 6409, BV711-A: 557, BV786-A: 54, BUV395-A: 41, BUV496-A: 111, BUV737-A: 6888, BYG790-A: 211, BB700-A: 19
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5086, FSC-H: 82, FSC-W: 168, SSC-A: 1126, SSC-H: 21, SSC-W: 71, GFP-A: 2, APC-A: 28, APC-H7-A: 38, BV421-A: 2131, BV510-A: 6383, BV605-A: 666, BV711-A: 60, BV786-A: 52, BUV395-A: 133, BUV496-A: 6899, BUV737-A: 202, BYG790-A: 16, BB700-A: 32
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4435, FSC-H: 73, FSC-W: 145, SSC-A: 1068, SSC-H: 12, SSC-W: 65, GFP-A: 3, APC-A: 15, APC-H7-A: 31, BV421-A: 2079, BV510-A: 6417, BV605-A: 676, BV711-A: 56, BV786-A: 33, BUV395-A: 147, BUV496-A: 6982, BUV737-A: 222, BYG790-A: 8, BB700-A: 32
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4201, FSC-H: 59, FSC-W: 152, SSC-A: 920, SSC-H: 15, SSC-W: 67, APC-H7-A: 11, BV421-A: 28, BV510-A: 1880, BV605-A: 6092, BV711-A: 585, BV786-A: 48, BUV395-A: 31, BUV496-A: 106, BUV737-A: 6607, BYG790-A: 178, BB700-A: 10
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1538, FSC-H: 7, FSC-W: 68, SSC-A: 385, SSC-H: 9, SSC-W: 47, GFP-A: 4, APC-A: 2, APC-H7-A: 1, BV421-A: 9, BV510-A: 17, BV605-A: 7, BV711-A: 3, BUV496-A: 3, BUV737-A: 4, BYG790-A: 3, BB700-A: 1
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 856, FSC-H: 3, FSC-W: 36, SSC-A: 160, SSC-H: 3, SSC-W: 16, GFP-A: 2, BV421-A: 1, BV510-A: 5, BV605-A: 17, BUV395-A: 7
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 649, FSC-H: 3, FSC-W: 100, SSC-A: 284, SSC-H: 7, SSC-W: 65, GFP-A: 4, APC-A: 16, APC-H7-A: 55, BV421-A: 306, BV510-A: 16520, BV605-A: 36, BV711-A: 61, BV786-A: 50, BUV395-A: 24, BUV496-A: 19536, BUV737-A: 60, BYG790-A: 21, BB700-A: 54
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1070, FSC-H: 3, FSC-W: 55, SSC-A: 380, SSC-H: 3, SSC-W: 20, GFP-A: 1, APC-A: 21, APC-H7-A: 37, BV421-A: 156, BV510-A: 9506, BV605-A: 24, BV711-A: 32, BV786-A: 35, BUV395-A: 13, BUV496-A: 10985, BUV737-A: 39, BYG790-A: 23, BB700-A: 31
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1391, FSC-H: 3, FSC-W: 57, SSC-A: 420, SSC-H: 2, SSC-W: 20, GFP-A: 1, APC-A: 15, APC-H7-A: 26, BV421-A: 102, BV510-A: 5855, BV605-A: 8, BV711-A: 40, BV786-A: 37, BUV395-A: 2, BUV496-A: 6637, BUV737-A: 37, BYG790-A: 16, BB700-A: 34
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2020, FSC-H: 24, FSC-W: 104, SSC-A: 388, SSC-H: 5, SSC-W: 63, GFP-A: 2, APC-A: 23, APC-H7-A: 77, BV421-A: 745, BV510-A: 13036, BV605-A: 90, BV711-A: 57, BV786-A: 173, BUV395-A: 49, BUV496-A: 14905, BUV737-A: 75, BYG790-A: 68, BB700-A: 52
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1382, FSC-H: 10, FSC-W: 66, SSC-A: 225, SSC-H: 5, SSC-W: 40, GFP-A: 1, APC-A: 25, APC-H7-A: 36, BV421-A: 423, BV510-A: 12729, BV605-A: 71, BV711-A: 44, BV786-A: 83, BUV395-A: 8, BUV496-A: 14631, BUV737-A: 49, BYG790-A: 21, BB700-A: 39
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1258, FSC-H: 8, FSC-W: 92, SSC-A: 270, SSC-H: 10, SSC-W: 58, GFP-A: 5, APC-A: 23, APC-H7-A: 52, BV421-A: 326, BV510-A: 14123, BV605-A: 38, BV711-A: 60, BV786-A: 72, BUV395-A: 18, BUV496-A: 17148, BUV737-A: 67, BYG790-A: 25, BB700-A: 54
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1606, FSC-H: 24, FSC-W: 69, SSC-A: 196, SSC-H: 4, SSC-W: 21
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1735, FSC-H: 26, FSC-W: 78, SSC-A: 215, SSC-H: 3, SSC-W: 33
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1342, FSC-H: 22, FSC-W: 68, SSC-A: 197, SSC-H: 1, SSC-W: 34, APC-H7-A: 19, BV421-A: 47, BV510-A: 1169, BV605-A: 10762, BV711-A: 348, BV786-A: 53, BUV395-A: 50, BUV496-A: 50, BUV737-A: 11509, BYG790-A: 118, BB700-A: 19
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2060, FSC-H: 27, FSC-W: 84, SSC-A: 373, SSC-H: 5, SSC-W: 35, GFP-A: 2, APC-A: 12, APC-H7-A: 36, BV421-A: 1338, BV510-A: 10620, BV605-A: 383, BV711-A: 33, BV786-A: 37, BUV395-A: 63, BUV496-A: 11472, BUV737-A: 102, BYG790-A: 20, BB700-A: 28
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2003, FSC-H: 31, FSC-W: 97, SSC-A: 331, SSC-H: 3, SSC-W: 41, APC-H7-A: 10, BV421-A: 26, BV510-A: 1339, BV605-A: 10072, BV711-A: 401, BV786-A: 32, BUV395-A: 35, BUV496-A: 68, BUV737-A: 10821, BYG790-A: 111, BB700-A: 9
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1329, FSC-H: 20, FSC-W: 56, SSC-A: 195, SSC-H: 5, SSC-W: 17, APC-H7-A: 21, BV421-A: 44, BV510-A: 1103, BV605-A: 10915, BV711-A: 415, BV786-A: 46, BUV395-A: 42, BUV496-A: 77, BUV737-A: 11573, BYG790-A: 143, BB700-A: 23
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2190, FSC-H: 39, FSC-W: 78, SSC-A: 304, SSC-H: 3, SSC-W: 27, GFP-A: 1, APC-A: 25, APC-H7-A: 49, BV421-A: 1289, BV510-A: 10977, BV605-A: 375, BV711-A: 60, BV786-A: 54, BUV395-A: 41, BUV496-A: 11658, BUV737-A: 119, BYG790-A: 15, BB700-A: 49
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1559, FSC-H: 16, FSC-W: 60, SSC-A: 175, APC-A: 19, BV421-A: 24, BV510-A: 38, BV605-A: 1166, BV711-A: 11068, BV786-A: 338, BUV395-A: 48, BUV496-A: 37, BUV737-A: 32, BYG790-A: 11659, BB700-A: 94
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5607, FSC-H: 64, FSC-W: 311, SSC-A: 1099, SSC-H: 30, SSC-W: 139, GFP-A: 4, BV605-A: 7, BUV395-A: 19, BUV496-A: 4
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4807, FSC-H: 66, FSC-W: 220, SSC-A: 872, SSC-H: 15, SSC-W: 98, GFP-A: 1, BV605-A: 7, BUV395-A: 20, BUV496-A: 4
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 3448, FSC-H: 54, FSC-W: 127, SSC-A: 831, SSC-H: 14, SSC-W: 59, GFP-A: 1, APC-A: 24, APC-H7-A: 37, BV421-A: 1920, BV510-A: 6340, BV605-A: 557, BV711-A: 51, BV786-A: 42, BUV395-A: 131, BUV496-A: 6724, BUV737-A: 190, BYG790-A: 14, BB700-A: 28
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4579, FSC-H: 78, FSC-W: 188, SSC-A: 860, SSC-H: 13, SSC-W: 68, GFP-A: 1, APC-A: 20, APC-H7-A: 26, BV421-A: 1953, BV510-A: 6281, BV605-A: 527, BV711-A: 23, BV786-A: 27, BUV395-A: 107, BUV496-A: 6656, BUV737-A: 162, BYG790-A: 12, BB700-A: 19
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4401, FSC-H: 64, FSC-W: 169, SSC-A: 871, SSC-H: 16, SSC-W: 68, APC-H7-A: 20, BV421-A: 27, BV510-A: 2072, BV605-A: 6955, BV711-A: 493, BV786-A: 47, BUV395-A: 33, BUV496-A: 112, BUV737-A: 7429, BYG790-A: 161, BB700-A: 10
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 4958, FSC-H: 78, FSC-W: 184, SSC-A: 1258, SSC-H: 27, SSC-W: 82, APC-H7-A: 20, BV421-A: 29, BV510-A: 2327, BV605-A: 8027, BV711-A: 749, BV786-A: 50, BUV395-A: 41, BUV496-A: 123, BUV737-A: 8564, BYG790-A: 203, BB700-A: 12
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5720, FSC-H: 82, FSC-W: 300, SSC-A: 1419, SSC-H: 30, SSC-W: 127, GFP-A: 1, APC-A: 10, APC-H7-A: 20, BV421-A: 2471, BV510-A: 7677, BV605-A: 837, BV711-A: 43, BV786-A: 30, BUV395-A: 183, BUV496-A: 8155, BUV737-A: 252, BYG790-A: 3, BB700-A: 14
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 5499, FSC-H: 68, FSC-W: 216, SSC-A: 1251, SSC-H: 22, SSC-W: 89, GFP-A: 1, APC-A: 11, APC-H7-A: 20, BV421-A: 1873, BV510-A: 6009, BV605-A: 608, BV711-A: 22, BV786-A: 35, BUV395-A: 123, BUV496-A: 6303, BUV737-A: 167, BYG790-A: 7, BB700-A: 14
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 481, FSC-H: 6, FSC-W: 112, SSC-A: 347, SSC-H: 7, SSC-W: 61, BUV395-A: 2, BUV496-A: 3
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 626, FSC-H: 4, FSC-W: 32, SSC-A: 98, SSC-H: 3, SSC-W: 21
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1078, FSC-H: 8, FSC-W: 78, SSC-A: 197, SSC-H: 4, SSC-W: 38, GFP-A: 1, APC-A: 26, APC-H7-A: 41, BV421-A: 233, BV510-A: 9102, BV605-A: 57, BV711-A: 21, BV786-A: 88, BUV395-A: 20, BUV496-A: 10788, BUV737-A: 40, BYG790-A: 26, BB700-A: 30
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 520, SSC-A: 20, SSC-W: 70, APC-H7-A: 9, BV510-A: 11, BV605-A: 20, BV711-A: 184, BV786-A: 10865, BUV395-A: 13, BUV496-A: 17, BUV737-A: 20, BYG790-A: 3, BB700-A: 12414
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 845, FSC-H: 3, FSC-W: 38, SSC-A: 125, SSC-H: 4, SSC-W: 22, APC-H7-A: 5, BV421-A: 18, BV510-A: 195, BV605-A: 8748, BV711-A: 42, BV786-A: 10, BUV395-A: 40, BUV496-A: 6, BUV737-A: 10050, BYG790-A: 16, BB700-A: 3
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1938, FSC-H: 11, FSC-W: 103, SSC-A: 378, SSC-H: 7, SSC-W: 60, APC-H7-A: 18, BV421-A: 50, BV510-A: 345, BV605-A: 17794, BV711-A: 42, BV786-A: 25, BUV395-A: 97, BUV496-A: 20, BUV737-A: 21091, BYG790-A: 43, BB700-A: 22
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 557, FSC-H: 2, FSC-W: 63, SSC-A: 151, SSC-H: 8, SSC-W: 37, GFP-A: 1, APC-A: 27, APC-H7-A: 49, BV421-A: 348, BV510-A: 21624, BV605-A: 30, BV711-A: 47, BV786-A: 56, BUV395-A: 15, BUV496-A: 25098, BUV737-A: 52, BYG790-A: 18, BB700-A: 44
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 666, FSC-H: 7, FSC-W: 146, SSC-A: 603, SSC-H: 10, SSC-W: 102, GFP-A: 1, APC-A: 24, APC-H7-A: 67, BV421-A: 352, BV510-A: 19192, BV605-A: 40, BV711-A: 43, BV786-A: 46, BUV395-A: 14, BUV496-A: 21720, BUV737-A: 51, BYG790-A: 31, BB700-A: 40
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2812, FSC-H: 29, FSC-W: 158, SSC-A: 210, SSC-H: 3, SSC-W: 51, GFP-A: 1, BV605-A: 1, BUV395-A: 3, BUV496-A: 2
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2518, FSC-H: 48, FSC-W: 150, SSC-A: 372, SSC-H: 3, SSC-W: 68, BUV496-A: 1
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2154, FSC-H: 37, FSC-W: 103, SSC-A: 366, SSC-H: 2, SSC-W: 38, GFP-A: 2, APC-A: 31, APC-H7-A: 51, BV421-A: 1305, BV510-A: 13286, BV605-A: 400, BV711-A: 42, BV786-A: 44, BUV395-A: 62, BUV496-A: 14022, BUV737-A: 120, BYG790-A: 19, BB700-A: 39
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2469, FSC-H: 32, FSC-W: 113, SSC-A: 414, SSC-H: 4, SSC-W: 48, GFP-A: 2, APC-A: 13, APC-H7-A: 42, BV421-A: 924, BV510-A: 10047, BV605-A: 275, BV711-A: 25, BV786-A: 37, BUV395-A: 36, BUV496-A: 10761, BUV737-A: 79, BYG790-A: 11, BB700-A: 31
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2347, FSC-H: 46, FSC-W: 107, SSC-A: 511, SSC-H: 3, SSC-W: 36, GFP-A: 1, APC-A: 18, APC-H7-A: 37, BV421-A: 1473, BV510-A: 13100, BV605-A: 497, BV711-A: 31, BV786-A: 32, BUV395-A: 78, BUV496-A: 13933, BUV737-A: 124, BYG790-A: 16, BB700-A: 22
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2145, FSC-H: 18, FSC-W: 117, SSC-A: 242, SSC-H: 9, SSC-W: 40, GFP-A: 2, APC-A: 13, APC-H7-A: 32, BV421-A: 1388, BV510-A: 13653, BV605-A: 447, BV711-A: 20, BV786-A: 19, BUV395-A: 69, BUV496-A: 14409, BUV737-A: 115, BYG790-A: 11, BB700-A: 21
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 1565, FSC-H: 22, FSC-W: 112, SSC-A: 390, SSC-H: 3, SSC-W: 60, APC-H7-A: 20, BV421-A: 45, BV510-A: 1596, BV605-A: 15694, BV711-A: 585, BV786-A: 33, BUV395-A: 26, BUV496-A: 85, BUV737-A: 16492, BYG790-A: 152, BB700-A: 11
  warnings.warn(self.message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:40: UserWarning: Some data points exceed the PnR value. The data points are truncated. To avoid truncation, set the PnR value manually or pass `truncate_max_range = False`. The following counts were outside the channel range: FSC-A: 2037, FSC-H: 29, FSC-W: 150, SSC-A: 429, SSC-H: 9, SSC-W: 83, GFP-A: 2, APC-A: 26, APC-H7-A: 47, BV421-A: 1589, BV510-A: 14916, BV605-A: 557, BV711-A: 35, BV786-A: 33, BUV395-A: 115, BUV496-A: 15884, BUV737-A: 176, BYG790-A: 19, BB700-A: 34
  warnings.warn(self.message, UserWarning)
... gating sample 20112023_lineage_BM_Cre_neg_unstained_037.fcs
... gating sample 20112023_lineage_BM_Cre_pos_unstained_036.fcs
... gating sample 20112023_lineage_BM_M1_038.fcs
... gating sample 20112023_lineage_BM_M2_039.fcs
... gating sample 20112023_lineage_BM_M3_040.fcs
... gating sample 20112023_lineage_BM_M4_041.fcs
... gating sample 20112023_lineage_BM_M5_042.fcs
... gating sample 20112023_lineage_BM_M6_043.fcs
... gating sample 20112023_lineage_PB_Cre_neg_unstained_030.fcs
... gating sample 20112023_lineage_PB_Cre_pos_unstained_029.fcs
... gating sample 20112023_lineage_PB_M2_031.fcs
... gating sample 20112023_lineage_PB_M3_032.fcs
... gating sample 20112023_lineage_PB_M4_033.fcs
... gating sample 20112023_lineage_PB_M5_034.fcs
... gating sample 20112023_lineage_PB_M6_035.fcs
... gating sample 20112023_lineage_SPL_Cre_neg_unstained_045.fcs
... gating sample 20112023_lineage_SPL_Cre_pos_unstained_044.fcs
... gating sample 20112023_lineage_SPL_M1_046.fcs
... gating sample 20112023_lineage_SPL_M2_047.fcs
... gating sample 20112023_lineage_SPL_M3_048.fcs
... gating sample 20112023_lineage_SPL_M4_049.fcs
... gating sample 20112023_lineage_SPL_M5_050.fcs
... gating sample 20112023_lineage_SPL_M6_051.fcs
... gating sample 21112023_lineage_BM_Cre_neg_unstained_010.fcs
... gating sample 21112023_lineage_BM_Cre_pos_unstained_009.fcs
... gating sample 21112023_lineage_BM_M10_014.fcs
... gating sample 21112023_lineage_BM_M11_015.fcs
... gating sample 21112023_lineage_BM_M12_016.fcs
... gating sample 21112023_lineage_BM_M7_011.fcs
... gating sample 21112023_lineage_BM_M8_012.fcs
... gating sample 21112023_lineage_BM_M9_013.fcs
... gating sample 21112023_lineage_PB_Cre_neg_unstained_002.fcs
... gating sample 21112023_lineage_PB_Cre_pos_unstained_001.fcs
... gating sample 21112023_lineage_PB_M10_006.fcs
... gating sample 21112023_lineage_PB_M11_007.fcs
... gating sample 21112023_lineage_PB_M12_008.fcs
... gating sample 21112023_lineage_PB_M7_003.fcs
... gating sample 21112023_lineage_PB_M8_004.fcs
... gating sample 21112023_lineage_PB_M9_005.fcs
... gating sample 21112023_lineage_SPL_Cre_neg_unstained_018.fcs
... gating sample 21112023_lineage_SPL_Cre_pos_unstained_017.fcs
... gating sample 21112023_lineage_SPL_M10_022.fcs
... gating sample 21112023_lineage_SPL_M11_023.fcs
... gating sample 21112023_lineage_SPL_M12_024.fcs
... gating sample 21112023_lineage_SPL_M7_019.fcs
... gating sample 21112023_lineage_SPL_M8_020.fcs
... gating sample 21112023_lineage_SPL_M9_021.fcs
... gating sample 22112023_lineage_BM_Cre_neg_unstained_010.fcs
... gating sample 22112023_lineage_BM_Cre_pos_unstained_009.fcs
... gating sample 22112023_lineage_BM_M13_011.fcs
... gating sample 22112023_lineage_BM_M14_012.fcs
... gating sample 22112023_lineage_BM_M15_013.fcs
... gating sample 22112023_lineage_BM_M16_014.fcs
... gating sample 22112023_lineage_BM_M17_015.fcs
... gating sample 22112023_lineage_BM_M18_016.fcs
... gating sample 22112023_lineage_PB_Cre_neg_unstained_002.fcs
... gating sample 22112023_lineage_PB_Cre_pos_unstained_001.fcs
... gating sample 22112023_lineage_PB_M13_003.fcs
... gating sample 22112023_lineage_PB_M14_004.fcs
... gating sample 22112023_lineage_PB_M15_005.fcs
... gating sample 22112023_lineage_PB_M16_006.fcs
... gating sample 22112023_lineage_PB_M17_007.fcs
... gating sample 22112023_lineage_PB_M18_008.fcs
... gating sample 22112023_lineage_SPL_Cre_neg_unstained_018.fcs
... gating sample 22112023_lineage_SPL_Cre_pos_unstained_017.fcs
... gating sample 22112023_lineage_SPL_M13_019.fcs
... gating sample 22112023_lineage_SPL_M14_020.fcs
... gating sample 22112023_lineage_SPL_M15_021.fcs
... gating sample 22112023_lineage_SPL_M16_022.fcs
... gating sample 22112023_lineage_SPL_M17_023.fcs
... gating sample 22112023_lineage_SPL_M18_024.fcs
... compensating sample 20112023_lineage_BM_Cre_neg_unstained_037.fcs
... compensating sample 20112023_lineage_BM_Cre_pos_unstained_036.fcs
... compensating sample 20112023_lineage_BM_M1_038.fcs
... compensating sample 20112023_lineage_BM_M2_039.fcs
... compensating sample 20112023_lineage_BM_M3_040.fcs
... compensating sample 20112023_lineage_BM_M4_041.fcs
... compensating sample 20112023_lineage_BM_M5_042.fcs
... compensating sample 20112023_lineage_BM_M6_043.fcs
... compensating sample 20112023_lineage_PB_Cre_neg_unstained_030.fcs
... compensating sample 20112023_lineage_PB_Cre_pos_unstained_029.fcs
... compensating sample 20112023_lineage_PB_M2_031.fcs
... compensating sample 20112023_lineage_PB_M3_032.fcs
... compensating sample 20112023_lineage_PB_M4_033.fcs
... compensating sample 20112023_lineage_PB_M5_034.fcs
... compensating sample 20112023_lineage_PB_M6_035.fcs
... compensating sample 20112023_lineage_SPL_Cre_neg_unstained_045.fcs
... compensating sample 20112023_lineage_SPL_Cre_pos_unstained_044.fcs
... compensating sample 20112023_lineage_SPL_M1_046.fcs
... compensating sample 20112023_lineage_SPL_M2_047.fcs
... compensating sample 20112023_lineage_SPL_M3_048.fcs
... compensating sample 20112023_lineage_SPL_M4_049.fcs
... compensating sample 20112023_lineage_SPL_M5_050.fcs
... compensating sample 20112023_lineage_SPL_M6_051.fcs
... compensating sample 21112023_lineage_BM_Cre_neg_unstained_010.fcs
... compensating sample 21112023_lineage_BM_Cre_pos_unstained_009.fcs
... compensating sample 21112023_lineage_BM_M10_014.fcs
... compensating sample 21112023_lineage_BM_M11_015.fcs
... compensating sample 21112023_lineage_BM_M12_016.fcs
... compensating sample 21112023_lineage_BM_M7_011.fcs
... compensating sample 21112023_lineage_BM_M8_012.fcs
... compensating sample 21112023_lineage_BM_M9_013.fcs
... compensating sample 21112023_lineage_PB_Cre_neg_unstained_002.fcs
... compensating sample 21112023_lineage_PB_Cre_pos_unstained_001.fcs
... compensating sample 21112023_lineage_PB_M10_006.fcs
... compensating sample 21112023_lineage_PB_M11_007.fcs
... compensating sample 21112023_lineage_PB_M12_008.fcs
... compensating sample 21112023_lineage_PB_M7_003.fcs
... compensating sample 21112023_lineage_PB_M8_004.fcs
... compensating sample 21112023_lineage_PB_M9_005.fcs
... compensating sample 21112023_lineage_SPL_Cre_neg_unstained_018.fcs
... compensating sample 21112023_lineage_SPL_Cre_pos_unstained_017.fcs
... compensating sample 21112023_lineage_SPL_M10_022.fcs
... compensating sample 21112023_lineage_SPL_M11_023.fcs
... compensating sample 21112023_lineage_SPL_M12_024.fcs
... compensating sample 21112023_lineage_SPL_M7_019.fcs
... compensating sample 21112023_lineage_SPL_M8_020.fcs
... compensating sample 21112023_lineage_SPL_M9_021.fcs
... compensating sample 22112023_lineage_BM_Cre_neg_unstained_010.fcs
... compensating sample 22112023_lineage_BM_Cre_pos_unstained_009.fcs
... compensating sample 22112023_lineage_BM_M13_011.fcs
... compensating sample 22112023_lineage_BM_M14_012.fcs
... compensating sample 22112023_lineage_BM_M15_013.fcs
... compensating sample 22112023_lineage_BM_M16_014.fcs
... compensating sample 22112023_lineage_BM_M17_015.fcs
... compensating sample 22112023_lineage_BM_M18_016.fcs
... compensating sample 22112023_lineage_PB_Cre_neg_unstained_002.fcs
... compensating sample 22112023_lineage_PB_Cre_pos_unstained_001.fcs
... compensating sample 22112023_lineage_PB_M13_003.fcs
... compensating sample 22112023_lineage_PB_M14_004.fcs
... compensating sample 22112023_lineage_PB_M15_005.fcs
... compensating sample 22112023_lineage_PB_M16_006.fcs
... compensating sample 22112023_lineage_PB_M17_007.fcs
... compensating sample 22112023_lineage_PB_M18_008.fcs
... compensating sample 22112023_lineage_SPL_Cre_neg_unstained_018.fcs
... compensating sample 22112023_lineage_SPL_Cre_pos_unstained_017.fcs
... compensating sample 22112023_lineage_SPL_M13_019.fcs
... compensating sample 22112023_lineage_SPL_M14_020.fcs
... compensating sample 22112023_lineage_SPL_M15_021.fcs
... compensating sample 22112023_lineage_SPL_M16_022.fcs
... compensating sample 22112023_lineage_SPL_M17_023.fcs
... compensating sample 22112023_lineage_SPL_M18_024.fcs
[4]:
AnnData object with n_obs × n_vars = 28113936 × 20
    obs: 'sample_ID', 'file_name', 'organ', 'genotype', 'sex', 'experiment', 'age', 'staining'
    var: 'pns', 'png', 'pne', 'pnr', 'type', 'pnn'
    uns: 'metadata', 'panel', 'workspace', 'gating_cols', 'dataset_status_hash'
    obsm: 'gating'
    layers: 'compensated'
[5]:
cofactors = fp.dt.CofactorTable(os.path.join(input_directory, "cofactors.csv"))
fp.dt.transform(dataset, transform = "asinh", cofactor_table = cofactors, key_added = "transformed")

We first subset for the gate ‘cells’, which discards the debris but does not yet select singlets and live cells. We then discard all the unstained files and synchronize the dataset.

[6]:
fp.subset_gate(dataset, "cells")
dataset = dataset[dataset.obs["staining"] == "stained"].copy()
fp.sync.synchronize_dataset(dataset)
Found modified subsets: ['adata_obs_names', 'adata_sample_ids']
        ... synchronizing metadata object to contain sample_IDs of the dataset
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\exceptions\_exceptions.py:12: UserWarning: It was detected that the dataset was modified.Please make sure that the performed analyses are still valid. Note that if you removed whole samples, mfi/fop calculations will not be affected.
  warnings.warn(message, UserWarning)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\synchronization\_synchronize.py:106: DataModificationWarning: 'It was detected that the dataset was modified.Please make sure that the performed analyses are still valid. Note that if you removed whole samples, mfi/fop calculations will not be affected.'
  warnings.warn('', DataModificationWarning)

We set default gates and default layers in order not to repeat the keyword arguments for the respective functions. Note that you can override these parameters by explicitly passing them.

[7]:
fp.settings.default_gate = "CD45+"
fp.settings.default_layer = "transformed"

First, we calculate the gate frequencies, MFI and FOP values using their respective functions

[8]:
fp.tl.gate_frequencies(dataset)

fp.tl.mfi(dataset,
          layer = "compensated")
fp.tl.mfi(dataset,
          layer = "transformed")

fp.tl.fop(dataset,
          layer = "compensated")

Sample correlation#

Sample correlations calculate the respective correlation coefficient (pearson, spearman or kendall) from the calculated MFI values per sample.

We use a heatmap visualization where each row and column correspond to one sample. We use the parameter metadata_annotation in order to plot the respective metadata.

Note that gate and layer are set using the settings from line [7].

[9]:
fp.pl.sample_correlation(dataset,
                         metadata_annotation = ["organ", "sex"],
                         corr_method = "spearman", # or 'pearson' or 'kendall'
                         cmap = "inferno")
../_images/vignettes_dataset_samplewise_analysis_13_0.png

We can also use the FOP to calculate the correlation heatmap. In order to do that, we pass data_metric='fop'. We set the layer argument explicitly since FOPs are calculated from compensated events.

[10]:
fp.pl.sample_correlation(dataset,
                         data_metric = "fop",
                         layer = "compensated",
                         metadata_annotation = ["organ", "sex"],
                         corr_method = "spearman",
                         cmap = "inferno")
../_images/vignettes_dataset_samplewise_analysis_15_0.png

Sample distance#

Another metric for the sample grouping can be obtained from the distance calculation from sample to sample using their respective MFI/FOP values.

Similar to the sample correlation, we use the fp.pl.sample_distance() function with the same parameter combinations.

[11]:
fp.pl.sample_distance(dataset,
                      metadata_annotation = ["organ", "sex"],
                      cmap = "inferno")
../_images/vignettes_dataset_samplewise_analysis_17_0.png
[12]:
fp.pl.sample_distance(dataset,
                      data_metric = "fop",
                      layer = "compensated",
                      metadata_annotation = ["organ", "sex"],
                      cmap = "inferno")
../_images/vignettes_dataset_samplewise_analysis_18_0.png

Samplewise dimensionality reductions#

We can calculate a samplewise dimensionality reductions based on their MFI/FOP vectors. This allows us to quickly visualize sample groupings. Here, we calculate a sample-wise PCA.

[13]:
fp.tl.pca_samplewise(dataset)
[14]:
fp.pl.pca_samplewise(dataset,
                     color = "organ")
fp.pl.pca_samplewise(dataset,
                     color = "sex")
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\seaborn\relational.py:573: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  points = ax.scatter(x=x, y=y, **kws)
../_images/vignettes_dataset_samplewise_analysis_21_1.png
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\seaborn\relational.py:573: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  points = ax.scatter(x=x, y=y, **kws)
../_images/vignettes_dataset_samplewise_analysis_21_3.png

We repeat the analysis with another dimensionality reduction, MDS, with similar parameters.

[15]:
fp.tl.mds_samplewise(dataset)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\tools\_utils.py:418: DimredSettingModificationWarning: 'MDS: The settings where changed, because this avoids a future warning. The settings was normalized_stress and the new value is auto'
  warnings.warn(DimredSettingModificationWarning._construct_message(**warning_kwargs),
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\tools\_utils.py:418: DimredSettingModificationWarning: 'MDS: The settings where changed, because this avoids a future warning. The settings was normalized_stress and the new value is auto'
  warnings.warn(DimredSettingModificationWarning._construct_message(**warning_kwargs),
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\tools\_utils.py:418: DimredSettingModificationWarning: 'MDS: The settings where changed, because this avoids a future warning. The settings was normalized_stress and the new value is auto'
  warnings.warn(DimredSettingModificationWarning._construct_message(**warning_kwargs),
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\tools\_utils.py:418: DimredSettingModificationWarning: 'MDS: The settings where changed, because this avoids a future warning. The settings was normalized_stress and the new value is auto'
  warnings.warn(DimredSettingModificationWarning._construct_message(**warning_kwargs),
[16]:
fp.pl.mds_samplewise(dataset,
                     color = "organ")
fp.pl.mds_samplewise(dataset,
                     color = "sex")
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\seaborn\relational.py:573: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  points = ax.scatter(x=x, y=y, **kws)
../_images/vignettes_dataset_samplewise_analysis_24_1.png
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\seaborn\relational.py:573: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  points = ax.scatter(x=x, y=y, **kws)
../_images/vignettes_dataset_samplewise_analysis_24_3.png

Marker correlation#

In order to visualize corresponding and correlating markers, we use the marker correlation analysis. Here, a pearson/spearman/kendall correlation is calculated between the respective markers per sample.

We observe that Ly6G, Ly6C and CD11b are highly correlated. This makes intuitive sense since these are markers for myeloid cells.

[17]:
fp.pl.marker_correlation(dataset,
                         include_technical_channels = False)
../_images/vignettes_dataset_samplewise_analysis_26_0.png

Expression heatmaps#

The samplewise expression can be visualized as a heatmap.

[18]:
fp.pl.expression_heatmap(dataset,
                         metadata_annotation = ["genotype", "organ"],
                         scaling = "MinMaxScaler", #scales from 0 to 1
                         metaclusters = 2)
../_images/vignettes_dataset_samplewise_analysis_28_0.png
[19]:
fp.pl.expression_heatmap(dataset,
                         data_metric = "fop",
                         layer = "compensated",
                         metadata_annotation = ["genotype", "organ"],
                         scaling = "MinMaxScaler", #scales from 0 to 1
                         metaclusters = 2)
C:\Users\tarik\anaconda3\envs\FACSPypeline\lib\site-packages\FACSPy\plotting\_utils.py:197: MetaclusterOverwriteWarning: 'Overwriting metaclusters in dataset.'
  warnings.warn("Overwriting metaclusters in dataset.",
../_images/vignettes_dataset_samplewise_analysis_29_1.png

Fold change analysis#

This analysis calculates the asinh fold changes of the markers. This gives a quick overview of differentially expressed markers across conditions. Here, we compare the difference of MFI between blood and bone marrow. We notice an increase in Ly6G expression, which is to be expected as Neutrophils mature from bone marrow to peripheral blood.

[20]:
fp.pl.fold_change(dataset,
                  gate = "CD45+",
                  layer = "compensated",
                  groupby = "organ",
                  group1 = "BM",
                  group2 = "PB",
                  min_pval = 10e-4,
                  figsize = (2,4)
                 )
../_images/vignettes_dataset_samplewise_analysis_31_0.png
[21]:
fp.save_dataset(dataset,
                output_dir = "../../Tutorials/mouse_lineages",
                file_name = "raw_dataset_samplewise",
                overwrite = True)
File saved successfully