lohhla检测HLA区域LOH

LOH

杂合性缺失(英语:Loss of heterozygosity,缩写LoH)是指一种使某特定基因缺失的基因组变化。所有二倍体细胞(如人类体细胞)皆有两套基因组,分别来自两亲本的染色体对;每份基因组包含大约30亿个碱基。人们多数基因组上的位置都是一致的,但一小部分存在差异,这种差异通常是含有两种碱基中二选一(例如A或G),而这些位点被称为“单核苷酸多态性”,英文常简写为SNP。当来自亲本的基因组拷贝在这些多态性区域(即SNP)上有不同的碱基,则该区域具有杂合性。体细胞内的染色体大多成对,使得SNP位置有可能出现杂合现象。但是,某一亲本某区域的的拷贝有时可能丢失,以致于某一SNP位置只有一份拷贝而无法具有杂合性,此之谓“杂合性缺失”。由于某一亲本拷贝丢失的杂合性缺失也被称为半合子状态。(维基百科)

前期准备

LOHHLA是一款用于计算HLA区域的LOH的工具。

LOHHLA依赖于Bedtools、samtools、Novoalign、picard、R。

其中R包需要seqinr、biostrings、beewarm、zoo、rsamtools。工具都比较容易获取以及安装,稍微麻烦的是novoalign。需要注意的是novoalign的v4版本是需要商业许可的,因此下载v3版本即可。

我在测试时,发现软件运行总是有莫名其妙的bug,每个参数都最好使用绝对路径。后来因为跑不通因此改用slagtermaarten的改版。除以上依赖项外,还需要安装R包dplyr以及naturalsort。

另外,由于我安装的picard已经是最新的版本,因此还需要修改functions.R中的部分代码。

例如,将以下

sortBAM <- paste('java -jar ', gatkDir, '/SortSam.jar', 
	' I=', sample_dir, '/', BAMid,
	'.chr6region.patient.reference.hlas.bam',
	' O=', sample_dir, '/', BAMid,
	'.chr6region.patient.reference.hlas.csorted.bam',
	' SORT_ORDER=coordinate', sep = '')

修改为

sortBAM <- paste('java -jar ', gatkDir, '/picard.jar SortSam', 
	' I=', sample_dir, '/', BAMid,
	'.chr6region.patient.reference.hlas.bam',
	' O=', sample_dir, '/', BAMid,
	'.chr6region.patient.reference.hlas.csorted.bam',
	' SORT_ORDER=coordinate', sep = '')

所有使用picard的地方(gatkDir)均需修改。

另外LOHHLA需要使用HLA的fasta数据库来源于Board的polysolver。但是因为polysolver获取和安装比较麻烦,因此可使用这个进行替代。我们不需要整个项目,只需要数据库即可。

HLA分型

LOHHLA需要的输入文件中除bam外,还需要HLA Class I的分型结果以及肿瘤倍性与纯度信息。

其中HLA分型可使用Optitype、Polysolver、HLA-HD、HLAscan、seq2HLA等获得。从我目前的使用感受来说,数据量比较小的时候用Optitype,数据量大的时候用seq2HLA。

获取分型后,将分型处理为以下格式,hlas.txt。

hla_a_24_30
hla_a_02_03_01
hla_b_35_05_01
hla_b_27_04_01
hla_c_04_328
hla_c_12_02_02

肿瘤倍性与纯度

这是LOHHLA除bam文件外需要的输入之一。一般来说,肿瘤纯度可以直接从病理科获得。也有NGS下进行肿瘤纯度评估的方法,如PureCNThetAPyLOHABSOLUTE等。

最终处理为以下格式,solutions.txt

Ploidy	tumorPurity	tumorPloidy	
example_tumor_sorted	2	0.8	1.8	

LOHHLA运行

LOHHLA的slagtermaarten版运行命令如下,注意以下所有文件以及文件夹路径均建议使用绝对路径。

Rscript LOHHLAscript.R \
	--patientID tumorID \
	--outputDir /patt/to/outputDir \
	--normalBAMfile /patt/to/bam/normal.bam \
	--tumorBAMfile /patt/to/bam/tumor.bam \
	--BAMDir /patt/to/bam/ \
	--hlaPath /path/to/hlas.txt \
	--HLAfastaLoc /path/to/abc_complete.fasta \
	--CopyNumLoc /patt/to/solutions.txt \
	--mappingStep TRUE \
	--minCoverageFilter 10 \
	--fishingStep TRUE \
	--cleanUp TRUE \
	--gatkDir /path/to/picard \
	--novoDir /path/to/Novosoft/bin

运行完成后,结果位于DNA.HLAlossPrediction_CI.tsv文件。HLA-A、HLA-B、HLA-C会各占一行。 判断LOH的方式应为PVal_unique值小于0.01时(置信度高),HLA_type2copyNum_withBAFBin值小于-1(log2(0.5))(待确认)。

其他

除LOHHLA外,在github上还有一个HLALOH项目。看了下代码,应该是将lohhla的部分代码拆分了再使用自己的部分内容进行替代。可以测试一下。