HLA分型的相关软件,之前写过seq2HLA,以及HLA-HD。seq2HLA速度较快,HLA-HD速度较慢。而Optitype运行速度在上面两者之间。
Optitype的一个问题是只能进行HLA-A、HLA-B、HLA-C等三个class I基因。不过在一些文章中,Optitype的表现要比seq2HLA好。
Optitype的运行需要python2(我实测使用python3也能成功运行),RazerS,samtools,HDF5,CPLEX(由于CPLEX是个商用软件,建议使用GPLK代替)。
另外python packages需要numpy,pyomo,pytables,pandas,pysam,matplotlib,future等。python的package使用pip安装就可以了。
可以从docker安装
docker pull fred2/optitype
不从docker安装
wget https://gh.con.sh/https://github.com/FRED-2/OptiType/archive/refs/tags/v1.3.5.tar.gz
tar -zxvf v1.3.5.tar.gz
pip install numpy
pip install pyomo
pip install pysam
pip install matplotlib
pip install tables
pip install pandas
pip install future
依赖的软件还是比较好装的,google一下就知道了。
Optitype推荐使用razers来进行比对获得HLA相关reads,但是这一步是可选的。可以参考之前的文章进行HLA区域的提取。
rasers3 -i 95 -m 1 -dr 0 \
-o fished_1.bam \
hla_reference_dna.fasta \
sample_1.fastq
samtools fastq fished_1.bam > sample_1_fished.fastq
如果是pair end数据则对read2同样进行以上操作。
接下来要修改Optitype文件夹里的config.ini文件。复制一个example来修改即可(其实除了razers的路径和线程数,没啥好改的,glpk只能单线程运行,修改线程数没用)。Optitype会调用razers进行比对。
cp config.ini.example config.ini
软件的运行
python OptiTypePipeline.py \
-i sample_1_fished.fastq sample_2_fished.fastq \
-d -o resultsDir -p sampleID -v
其中,-d指定本次是DNA数据,而-r指定数据是RNA数据。
对软件中包含的测试数据SRR766010进行测试,最终获得分型为
A*01:01,A*01:01;B*08:01,B*57:01;C*06:02,C*07:01
运行时报index warning大概是由pysam与samtools的版本问题引起,后续看看用哪个指定版本可以解决,影响不大。