美文网首页
PDX模型简介

PDX模型简介

作者: 名本无名 | 来源:发表于2021-03-24 15:47 被阅读0次

前言

人源性组织异种移植(patient-derivedxenografts , PDX)模型是一种将肿瘤患者的肿瘤组织移植至重症免疫缺陷型小鼠(NSG)体内,并使肿瘤组织在小鼠体内生长形成第一代移植瘤(图 1)。

图1 PDX模型概述

待其生长到一定大小时,取出该移植瘤组织并在无菌操作条件下移植到新一批小鼠体内,形成第二代移植瘤。如此重复操作形成移植瘤第三代、第四代等。

此种模型尽可能保留了亲代肿瘤的生长微环境,利于更好的表现亲代肿瘤性状,并且维持了肿瘤的异质性。

但同时也存在两个主要的问题,一是,从该模型中提取出的 DNA 片段不仅包含人类的基因,也存在一定比例的小鼠片段。另外一个问题就是该模型缺少配对的正常样本。

今天主要是想解决第一个问题:如何从 PDX 模型中去除小鼠的 reads

工具评估

目前,已有很多文章利用各种不同的工具来去除 PDX 模型中的小鼠 reads。其中,用的比较多的工具有(表 1):

表1 消除小鼠reads的六种工具

2020Yvonne A Evrard 等人通过模拟 WESRNA-Seq 数据集来比较其中五个工具消除小鼠 reads 的功效。

其模拟方式为,在人类样本的测序 reads 数据中,掺入不同比例的小鼠基因组 reads

结果显示,所有工具在 WESRNA-Seq 测试数据中准确率均高达 99%(图 2)。

图2 五种工具性能评估

其中 XenofilterR 的召回率最低(在 WESRNA-seq 中,召回率分别为 96.60%89.63%

BBSplit 的整体性能最好,即在没有任何召回损失的情况下具有最高的精度(在 WESRNA-seq 数据中的准确率分别为为 99.87%99.64%)。

另外我们利用作者提供的数据展示了在不同 SE(单端) 阈值下各个工具的真阳率和假阳率(图 3)。

图3 不同SE阈值下各个工具的真阳率和假阳率

从左图中我们可以看出 BamcmpXenome 两个工具在不同的 SEPE(双端) 阈值下的真阳性率都达到 99% 以上。

但是,从右图中可以看出 Bamcmp 在不同的 SE/PE 阈值下的假阳性不稳定,有时候甚至高达 0.2%,而 Xenome 相对来说比较稳定,在不同情况下均低于 0.05%

综合以上结果,我们认为 Xenome 是相对比较好的一个用来去除小鼠 reads 的工具。

Xenome 简介

XenomeThomas Conway1 等人在 2012 年提出来的,该工具从开发到现在每年都有被引用(图 4),其中包含很多高分的文章(表 2)。

图4 表2 引用 Xenome 工具的高分文章

Xenome 使用宿主参考序列和移植物种参考序列,在比对时的所有可能的 k-mers 是否具有以下特征来表征它们所属的类别:

  • 只匹配移植物(graft),即非 host
  • 只匹配宿主(host),即非 graft
  • 匹配两个物种
  • 都不匹配
  • 部分 k-mers 在宿主与移植之间存在单碱基替换的差异

给定一条 read 或 配对 readsxenome 将计算其 k-mers 属于上述类别中的哪一个,并将其分类为:grafthostboth, neitherambiguous 其中之一(图5)。

图5 k-mers 可能属于的不同类别

Xenome 的使用

Xenome 有两个不同的功能块,使用两个单独的命令来调用:indexclassify

1. index

参数列表

index
  -D [ --debug ] arg       启用特定的调试输出
  -h [ --help ]            显示帮助信息
  -l [ --log-file ] arg    指定输出信息文件
  -T [ --num-threads ] arg 设置最大线程
  --tmp-dir arg            中间文件输出目录 (默认为 /tmp)
  -v [ --verbose ]         显示程序运行进度
  -V [ --version ]         显示软件版本
  -M [ --max-memory ] arg  设置最大内存(GB)
  -P [ --prefix ] arg      设置索引前缀,可以带路径但是文件夹必须存在
  -G [ --graft ] arg       移植物参考基因组 FASTA 文件
  -H [ --host ] arg        宿主参考基因组 FASTA 文件
  -K [ --kmer-size ] arg   kmer 长度(默认为 25)

在对 reads 进行分类之前,必须根据移植物和宿主参考序列构建索引。参考基因组序列必须为 FASTA 格式及其压缩格式(gzip)。

xenome index -M 24 -T 8 -P idx -H mouse.fa -G human.fa

我们构建的索引文件为

$ ls
idx-both.header              idx-both.lhs-bits          idx-graft.kmers.low-bits.lwr  idx-host.kmers.low-bits.lwr
idx-both.kmers-d0            idx-both.rhs-bits          idx-graft.kmers.low-bits.upr  idx-host.kmers.low-bits.upr
idx-both.kmers-d1            idx-graft.header           idx-host.header
idx-both.kmers.header        idx-graft.kmers-d0         idx-host.kmers-d0             
idx-both.kmers.high-bits     idx-graft.kmers-d1         idx-host.kmers-d1             
idx-both.kmers.low-bits.lwr  idx-graft.kmers.header     idx-host.kmers.header
idx-both.kmers.low-bits.upr  idx-graft.kmers.high-bits  idx-host.kmers.high-bits

可以看到,索引都是以我们指定的 idx 作为前缀

有了索引之后,我们就可以来对 reads 进行分类了。

2. classify

参数列表

classify
  -D [ --debug ] arg       启用特定的调试输出
  -h [ --help ]            显示帮助信息
  -l [ --log-file ] arg    指定输出信息文件
  -T [ --num-threads ] arg 设置最大线程
  --tmp-dir arg            中间文件输出目录 (默认为 /tmp)
  -v [ --verbose ]         显示程序运行进度
  -V [ --version ]         显示软件版本
  -M [ --max-memory ] arg  设置最大内存(GB)
  -P [ --prefix ] arg      设置索引前缀,可以带路径但是文件夹必须存在
  -I [ --fasta-in ] arg    输入 FASTA 文件
  -i [ --fastq-in ] arg    输入 FASTQ 文件
  --line-in arg            输入文件的每一行是一个序列
  --dont-write-reads       不产生 reads 输出文件
  --graft-name arg         graft reads 的名称
  --host-name arg          host reads 的名称
  --output-filename-prefix 输出文件前缀
  --pairs                  双端测序文件
  --preserve-read-order    在输入文件中保持 reads 的顺序

我们可以输入一个待分类的样本,可以是 FASTAFASTQ 格式或对应的压缩格式(gzip),还支持每行代表一个序列的文本文件

xenome classify -P idx -i in.fastq

运行完此步骤之后,会为每种 reads 生成一个单独的文件,输出文件可能会有这些:

ambiguous.fastq 
both.fastq 
graft.fastq 
host.fastq 
neither.fastq

输出的 reads 文件的格式是与输入文件的格式一致的。

也可以同时指定多个输入文件,但是所有相同格式的输入都将被写入同一个输出文件。例如

xenome classify -P idx -i inA.fastq -i inB.fastq -I inC.fasta

将会产生以下文件:

ambiguous.fasta
ambiguous.fastq
both.fasta 
both.fastq 
graft.fasta 
graft.fastq 
host.fasta 
host.fastq 
neither.fasta 
neither.fastq

每个 FASTQ 文件都包含来自 inA.fastqinB.fastq 两个的 reads 的混合结果。FASTA 文件包含来自 inC.fasta 的读取。

如果不想混合来自不同文件的输入 reads 的结果,只能分开运行了。可以通过设置不同的输出文件前缀来区分来自不同的样本的 reads。例如

xenome classify -P idx -i inA.fastq --output-filename-prefix A 
xenome classify -P idx -i inB.fastq --output-filename-prefix B

运行上面的命令将产生如下结果:

A_ambiguous.fastq 
A_both.fastq 
A_graft.fastq 
A_host.fastq 
A_neither.fastq 

B_ambiguous.fastq 
B_both.fastq 
B_graft.fastq 
B_host.fastq 
B_neither.fastq

Xenome 还可以处理双端测序的输入文件,例如

xenome classify -P idx --pairs -i in_1.fastq -i in_2.fastq

这将会为每个种类的 reads 输出结果文件名添加配对的 _1_2 后缀来区分

ambiguous_1.fastq 
ambiguous_2.fastq 

both_1.fastq 
both_2.fastq 

graft_1.fastq 
graft_2.fastq 

host_1.fastq 
host_2.fastq 

neither_1.fastq 
neither_2.fastq

如果需要,可以指定其他名称来替换 hostgraft。例如

xenome classify -P idx -i in.fastq --graft-name human --host-name mouse

将会产生下面的结果

ambiguous.fastq
both.fastq
human.fastq
mouse.fastq
neither.fastq

classify 命令在分类完 reads 之后,还会将每种类型的 reads 的统计信息打印到屏幕上。

Statistics
B       G       H       M       count   percent        class
0       0       0       0       59      0.00561983     "neither"
0       0       0       1       0       0              "both"
0       0       1       0       1977    0.188312       "definitely mouse"
0       0       1       1       565     0.0538171      "probably mouse"
0       1       0       0       362260  34.5058        "definitely human"
0       1       0       1       279050  26.5799        "probably human"
0       1       1       0       385     0.0366718      "ambiguous"
0       1       1       1       856     0.0815352      "ambiguous"
1       0       0       0       138     0.0131447      "both"
1       0       0       1       6       0.000571509    "probably both"
1       0       1       0       256     0.0243844      "definitely mouse"
1       0       1       1       3812    0.363098       "probably mouse"
1       1       0       0       34360   3.27284        "definitely human"
1       1       0       1       359172  34.2116        "probably human"
1       1       1       0       241     0.0229556      "ambiguous"
1       1       1       1       6716    0.639709       "ambiguous"

Summary
count   percent     class
1034842 98.5702     human
6610    0.629612    mouse
144     0.0137162   both
59      0.00561983  neither
8198    0.780871    ambiguous

Statistics 部分的信息中,B(both)G(graft)H(host)M(marginal) 下面的 16 行表示这些分类的组合(4×4),1 表示属于该类,0 表示不属于。

count 表示每种子分类的 reads 数目,以及后面的 percent 表示 reads 数目占比。最后的 class 表示这一子类所属的最后的分类。

而在 Summary 部分的信息中,将上面的数据进行了汇总。最后被输出的分类中,各分类的 reads 数目及其占比

相关文章

  • PDX模型简介

    前言 人源性组织异种移植(patient-derivedxenografts , PDX)[PMID(312623...

  • PDX模型

    1. PDX简介 PDX模型,全称为人源肿瘤异种移植(Patient-derived tumor xenograf...

  • PDX小鼠模型为肝癌患者试药

    肝炎、肝硬化、肝癌三部曲 肝炎(Hepatitis)通常是指由多种致病因素使肝细胞受到破坏,肝脏的功能受到损害引起...

  • 选择模型(资源合集)

    此处应有[Probit 模型简介]Logit 模型简介边际效应结果输出

  • 2018-06-27

    强!PDX公链背后的公司居然是中国支付清算协会的成员! PDX公链不愧是国内区块链项目的一匹黑马,是近期所有项目的...

  • 催收评分卡模型开发

    催收评分卡模型简介 随机森林模型在还款率预测模型中的应用

  • Bancor模型简介

    1. bancor已经有实际应用,在EOS的一个RAM市场,bancor算法提供了一个充足流动性,bancor的入...

  • Django模型简介

    模型是一个定义数据源的数据,它包含要存储数据的一些属性和行为。通常,每一个模型对应数据库中的一个数据表。 每一个模...

  • Keras模型简介

    首先说下目的,我是想用tensorflow训练一个神经网络模型并预测分类结果,这里在基本模型上增加了其他增...

  • SCQA模型简介

    SCQA模型--是《金字塔原理》中提出的一个“结构化表达”工具。 S(Situation)情景——由大家都熟悉的情...

网友评论

      本文标题:PDX模型简介

      本文链接:https://www.haomeiwen.com/subject/xedhhltx.html