短串联重复序列 STR 分析

介绍

短串联重复序列(short tandem repeats,STR)也称微卫星DNA(microsatellite DNA), 通常是基因组中由1~6个碱基单元组成的一段DNA重复序列,由于核心单位重复数目在个体间呈高度变异性并且数量丰富,构成了STR基因座的遗传多态性。除了肿瘤线中的微卫星不稳定(MSI)分析之外,在胚系中,脆性X智力障碍综合征亨廷顿舞蹈病等也可能由STR变异导致。另外,STR还可以用于亲子鉴定。

STR变异检测

ExpansionHunter

ExpansionHunter由illumina出品,速度快。

直接安装编译好的版本就可以了

wget https://github.com/Illumina/ExpansionHunter/releases/download/v4.0.2/ExpansionHunter-v4.0.2-linux_x86_64.tar.gz
tar -zxvf ExpansionHunter-v4.0.2-linux_x86_64.tar.gz

软件使用

ExpansionHunter --reads patient.bam --reference ref.fa \
	--variant-catalog variant_catalog.json --output-prefix patient

其中variant_catalog.json文件的格式看这里。同时ExpansionHunter也提供了hg19、hg38、GRCh37、GRCh38等的VariantCatalog,可以直接使用。

输出结果有json文件vcf文件

TREDPARSE

tredparse是另外一个比较容易使用的软件,同时还有图形界面,然而非常旧,已经好几年没有更新。

使用docker安装

docker pull humanlongevity/tredparse

pull下来后1.28G,倒不是很大。使用可以加入–tred函数来提交关注的疾病缩写,把输入文件夹挂载到/data。

docker run --rm -v $PWD:/data humanlongevity/tredparse tred.py \
	--ref hg19 --workdir /data/output/ --cpus 8 \
	/data/bam/test.bam

然后可以通过导入结果json文件进行简单的report

docker run --rm -v $PWD:/data humanlongevity/tredparse tredreport.py \
	/data/output/test.json --tsv /data/output/test.tsv --cpus 8

带有作图功能可以对指定疾病作图,例如HD(这步我运行失败了)

docker run --rm -v $PWD:/data humanlongevity/tredparse tredplot.py \
	likelihood /data/output/test.json --tred HD

最后是页面上说的图形界面,需要安装meteor,比较奇怪为什么不直接封装在docker里。这里不测试了。

exSTRa

exSTRa适用于illumina双端测序数据,基于R,使用devtools安装。R包使用教程在这里

Rscript -e 'devtools::install_github("bahlolab/exSTRa")'

另外还有一个perl模块,Bio-STR-exSTRa用于分析bam文件,获得exSTRa需要的输入文件。Bio-STR-exSTRa提供了docker,那么就从docker安装,这个docker里没有封装进R的exSTRa。

docker pull ricktankard/bio-str-exstra:1.1.1

使用,repeat_expansion_discorders可在exSTRa_inst中下载。

docker run --rm -v databases:/databases -v data:/data ricktankard/bio-str-exstra:1.1.1 \
	exSTRa_score.pl /databases/hg19.fa \
	/databases/repeat_expansion_discorders.txt \
	/data/*.bam > /data/test.exSTRa_scores.txt

结果统计了各个bam文件的相关区域的repeat数,然后把这个结果文件使用exSTRa来分析。

对于exSTRa,在R中,使用的方法如下

library(data.table)
library(exSTRa)

str_score <- read_score(
	file="test.exSTRa_scores.txt",
	database=system.file("extdata", "repeat_expansion_disorders_hg19.txt", package="exSTRa"),
	groups.regex=c(control="^Control_0[24]$", case=""),
	filter.low.counts = TRUE
)

以上的group.regex参数中,需要对样本分为对照组和测试组,其中可以使用正则来匹配样本名。另外按文档中的说法,可以只要匹配对照组,然后测试组留空(’ case=”” ‘),这样无法匹配到对照组的样本会全部分到测试组。

由于我没有很多样本,所以无法进行测试。更多的作图与分析功能也参考文档。

STRetch

STRetch介绍说是可用于WGS、WES和target数据,在PMC6008857文章中,说是最难用的。看了一下STRetch的依赖项,长长的一个列表,确实非常劝退。需要的原始输入是fastq而不是bam,太过于大包大揽,这里不使用。

STRScan

STRScan号称能检出lobSTRSTR-FM漏检的基因座。这个输入要求是fastq或fasta,但是因为是单端的,因此放弃使用。不过这里能找到一些STR的坐标,有参考意义。

下载源码并安装

wget http://darwin.informatics.indiana.edu/str/STRScan/STRScan.tar.gz
tar -zxvf STRScan.tar.gz
cd STRScan
make
./STRScan
cat example/README.txt

参考

Recent advances in the detection of repeat expansions with short-read next-generation sequencing