写这个原因呢,最近又要对样本的HLA分子进行分型,然后看到某公司的微信公众号讲的HLA的分型软件,全文讲了那么多,要么巨难用,要么下载不到,反正不如我自己正在用的这两个。另外一方面,没必要太纠结非常高的精度,除非你用得到。4-digital resolution,我觉得已经够了。

HLA分子

先回顾下百度百科对HLA的介绍(https://baike.baidu.com/item/HLA/9504270?fr=aladdin):

HLA(human leukocyte antigen ,人类白细胞抗原)是人类的主要组织相容性复合体(MHC)的表达产物,该系统是所知人体最复杂的多态系统。

HLA是具有高度多态性的同种异体抗原,其化学本质为一类糖蛋白,由一条α重链(被糖基化的)和一条β轻链非共价结合而成。其肽链的氨基端向外(约占整个分子的3/4),羧基端穿入细胞质,中间疏水部分在胞膜中。HLA按其分布和功能分为Ⅰ类抗原和Ⅱ类抗原。

HLA-I类分子:内源性抗原的递呈分子, HLA-Ⅱ类分子:外源性抗原的递呈分子

我想介绍的是seq2hla和optitype这两个软件

软件的大致原理,都是和HLA数据库中的数据进行比对,然后分型。我拿过7个样本的RNA数据用这两个软件进行比较,如下表,虽然个别分型不一致(后两个resolution不一致),但大部分结果还是相当一致的。

SAMPLE A1 A2 B1 B2 C1 C2
1 seq2HLA A*02:01 A*24:18 B*35:102 B*35:102 C*16:02 C*04:01
OptiType A*02:01 A*24:02 B*35:14 B*35:14 C*16:02 C*04:01
2 seq2HLA A*29:01 A*02:07 B*46:01 B*15:01 C*04:01 C*01:02
OptiType A*29:01 A*02:07 B*46:01 B*15:01 C*04:01 C*01:02
3 seq2HLA A*02:07 A*11:01 B*52:01 B*15:01 C*12:02 C*03:03
OptiType A*02:07 A*11:01 B*52:01 B*15:01 C*12:02 C*03:03
4 seq2HLA A*02:07 A*11:01 B*46:01 B*40:01 C*01:02 C*07:02
OptiType A*02:07 A*11:01 B*46:01 B*40:01 C*01:02 C*07:02
5 seq2HLA A*33:03 A*11:01 B*58:01 B*15:02 C*03:02 C*08:01
OptiType A*33:03 A*11:01 B*58:01 B*15:02 C*03:02 C*08:01
6 seq2HLA A*02:07 A*29:01 B*46:01 B*07:02 C*01:02 C*15:05
OptiType A*02:07 A*29:01 B*46:01 B*07:05 C*01:02 C*15:05
7 seq2HLA A*02:03 A*11:01 B*56:01 B*56:01 C*01:02 C*01:02
OptiType A*02:03 A*11:01 B*56:01 B*56:01 C*04:01 C*01:02

seq2hla

首先介绍的是seq2hla,这个其实一个命令就可以进行HLA的分型(很实用吧),但只基于RNA Seq的数据,我见有人用WES的数据来做,但不确定靠不靠谱。

官网: https://bitbucket.org/sebastian_boegel/seq2hla/wiki/Home

利用conda安装

1
2
conda create -n seq2hla
conda install -n seq2hla -c bioconda seq2hla

运行

1
2
seq2HLA -1  readfile1  -2  readfile2  -r  runname  [-p int] [-3 int]
# 提供R1和R2,现在已经支持gzip格式,-p是线程,-3是trim read末端的碱基数(因为read末端的碱基质量不高)

seq2hla的结果

下面的结果基于RNA-seq的数据得到的,在介绍optitype的时候,我用的是WES-seq的数据,可以看到虽然软件和数据类型不同,但两个软件的结果是一致的,综合前面表格中两种软件基于同一样本RNA-seq的结果,和两种软件基于同一样本不同数据类型的结果来看,都能说明两个软件都比较靠谱。

1
2
3
4
5
6
7
8
#Locus  Allele 1        Confidence      Allele 2        Confidence
A       A*24:02 0.001426754     A*11:01 0.003463472
B       B*38:02'        0.0002728549    B*46:01 0.0002107604
C       C*01:02 0.01282529      C*07:02 0.01516768
#Locus  Allele 1        Confidence      Allele 2        Confidence
DQA     no      NA      no      NA
DQB     DQB1*05:02      NA      DQB1*05:02      NA
DRB     DRB1*11:52      0.297521        DRB1*04:05'     0.42202

optitype

另外一个软件是optitype,这个软件呢,稍微多了几步,但绝对在让人接受的范围内,而且这个软件支持DNA数据和RNA数据。

官网:https://github.com/FRED-2/OptiType

利用conda安装

这个时候真的要安利下conad,有了conda之后,各种软件包的安装和管理,变得非常轻松。拿optitype来说,我第一次安装的时候,自己下载,编译,修改部分文件,还要自己安装razers,而有了conda之后,只需一个命令

1
2
conda create -n optitype
conda install -n optitype -c bioconda optitype

optitype需要先利用razers3先过滤一下reads,把和HLA相关的序列提出来,然后在运行optitype进行分型,从而加快分析速度。

第一步,Razers3

1
razers3 -i 95 -m 1 -dr 0 --thread-count 10 -o fished_1.bam /path/to/hla_reference_dna.fasta sample_1.fastq

我是用conda装的,但在conda的env目录下没找到hla的fasta文件,不过不用着急,官网上有,可以从 https://github.com/FRED-2/OptiType/tree/master/data 下载对应的HLA的DNA或RNA的数据。

如果是paired的read,则需要分别跑一次,得到fished_1.bam和fished_2.bam文件。

另外官网提示Razers3会把所有的fastq读到内容,所以计算服务器的内存最好大点。

第二步,将bam文件转成fastq

1
2
samtools bam2fq fished_1.bam > fished_1.fastq
samtools bam2fq fished_2.bam > fished_2.fastq

第三步,运行optitype

1
OptiTypePipeline.py -i fished_1.fastq fished_2.fastq --dna -v -o /path/to/outdir -p sample.optitype.dna

–dna需要和前面Razers3用的HLA的序列类型一致,如果前面用的RNA的数据,这里也是–rna,当然用RNA还是DNA取决于测序数据。

optitype的结果 这个结果和seq2hla基于RNA-seq的数据得到的HLA亚型是一致的。

1
2
        A1      A2      B1      B2      C1      C2      Reads   Objective
0       A*11:01 A*24:02 B*38:02 B*46:01 C*01:02 C*07:02 200.0   191.00000000000003

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

#版权所有 转载请告知 版权归作者所有 如有侵权 一经发现 必将追究其法律责任

#Author: Jason

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