关于Flowkit python包的部分使用指导和官方文件翻译(待更新)

本文章主要是在实验Flowjo后觉得可以批量化处理fcs文件,故在搜索github文件中找到该python包并进行简单学习和使用:

GitHub - whitews/FlowKit: A Python toolkit for flow cytometry analysis supporting GatingML and FlowJo workspaces

Flowkit文件包相关链接

安装需要要求:

python版本至少大于3.8

  • flowio >= 1.3.0
  • flowutils >= 1.1.0
  • anytree >= 2.9
  • bokeh >= 3.1
  • contourpy >= 1.1.0
  • lxml >= 4.9
  • networkx >= 3.1
  • numpy >= 1.22, <2
  • pandas >= 2.0
  • psutils >= 5.8
  • scipy >= 1.8

代码示例

识别文件及内容

import flowkit as fk
import bokeh
from bokeh.plotting import show


sample = fk.Sample(fcs_path)
df_events = sample.as_dataframe(source='raw')
print(sample)
print(df_events.head())

结果显示

Sample(v3.1, Specimen_001_H9_H09_093.fcs, 16 channels, 10000 events)
pnn         FSC-A        FSC-H         FSC-W  ...       PE-H        PE-W      Time
pns                                           ...                                 
0    10373.473633  9393.637695  98685.539062  ...  53.390919   83.006859  0.000121
1     9572.993164  8753.242188  98193.484375  ...  52.647331  196.963196  0.000381
2    10218.270508  9248.255859  97139.242188  ...  71.161530  440.051788  0.000989
3     4514.647949  4506.229492  72589.648438  ...  35.043289  143.153198  0.001174
4     4611.023926  4548.003418  74355.070312  ...  36.149872  237.711670  0.001450

sample展示文件名称、通道有多少,具有多少个event

而接下来展示的是文件中每个event的通道。

如果想要获得某一通道的各个event的数值,可以如下操作:

sample.get_events(source='raw')
channel_idx = sample.get_channel_index('FSC-H')
sample_channel = sample.get_channel_events(channel_idx, source='raw')
print(sample_channel)

结果输出如下:

[ 9393.63769531  8753.2421875   9248.25585938 ...  9208.12695312
  9048.46972656 10001.78515625]

以上展示的是获得FSC-H通道每个event的具体数值。

另,如果想要获得具体文件中有哪些通道名称,可使用如下命令:

print(sample.channels)

结果如下:

   channel_number             pnn pns   png         pne       pnr
0                1           FSC-A      1.00  (0.0, 0.0)  262144.0
1                2           FSC-H      1.00  (0.0, 0.0)  262144.0
2                3           FSC-W      1.00  (0.0, 0.0)  262144.0
3                4           SSC-A      1.00  (0.0, 0.0)  262144.0
4                5           SSC-H      1.00  (0.0, 0.0)  262144.0
5                6           SSC-W      1.00  (0.0, 0.0)  262144.0
6                7          FITC-A      1.00  (0.0, 0.0)  262144.0
7                8          FITC-H      1.00  (0.0, 0.0)  262144.0
8                9          FITC-W      1.00  (0.0, 0.0)  262144.0
9               10  PE-Texas Red-A      1.00  (0.0, 0.0)  262144.0
10              11  PE-Texas Red-H      1.00  (0.0, 0.0)  262144.0
11              12  PE-Texas Red-W      1.00  (0.0, 0.0)  262144.0
12              13            PE-A      1.00  (0.0, 0.0)  262144.0
13              14            PE-H      1.00  (0.0, 0.0)  262144.0
14              15            PE-W      1.00  (0.0, 0.0)  262144.0
15              16            Time      0.01  (0.0, 0.0)  262144.0

展示直方图等绘图:

p = sample.plot_histogram('FITC-A', source='raw')
show(p)

结果显示:

#show contour plot(具有坐标范围的等高线图)
x_min = y_min = 50
x_max = y_max = 100000

p = sample.plot_contour(
    2, 7, source='raw', x_min=x_min, x_max=x_max, y_min=y_min, y_max=y_max
)
show(p)
#全部event的等高线图
p = sample.plot_contour(2, 7, source='raw', plot_events=True)
show(p)

#在等高线本身加上event的散点图
p = sample.plot_contour(2, 7, source='raw', plot_events=True)
show(p)

 以上为等高线图作图及比较

坐标轴及其他数值转换方法

如果想要将图片尺度转为对数坐标轴,操作如下:

logicle_xform = fk.transforms.LogicleTransform(
    'logicle',
    param_t=262144,
    param_w=0.5,
    param_m=4.5,
    param_a=0
)
sample.apply_transform(logicle_xform)


p = sample.plot_histogram(6, source='xform')
show(p)

此外,还有其他转换操作方法,具体不在此处展示,原github文库中有具体展示:

门的选区和使用

此处的门指的是fcs中选择的特定选取内的event,如下图所示:

框中选取作为亚种群,可进行各种操作,由于本人实验中不怎么需要对样品分类分析等,故框选全部或者对全部event进行数据统计具有同样效果:

(待更新)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值