Strelka2 call Somatic 流程--肿瘤基因组测序数据分析专栏
简介
由 illumina 公司开发,用于突变检测,可以检测 somatic 和 germline ,通常来说,该软件对于小片段的 indel 检测效果比 Mutect2 更好,现在很多文章会使用 Mutect2 + Strelka2 取交集来检测 Somatic Mutation 的方法。这里简单介绍该软件的安装和使用方法。文章发表在 https://www.nature.com/articles/s41592-018-0051-x
下载和安装
安装教程在:
https://github.com/Illumina/strelka/blob/v2.9.x/docs/userGuide/installation.md 一个大前提是,该程序依赖于 python2 环境,所以请在python2 下运行。另外需要注意的是,不同的Linux操作系统,安装方法不同。对于 Ubuntu 系统,安装方法如下:
cd ~/biosoft
wget -c https://github.com/Illumina/strelka/releases/download/v2.9.10/strelka-2.9.10.release_src.tar.bz2
tar -jxf strelka-2.9.10.release_src.tar.bz2
mkdir build strelka2
cd build
# 注意修改安装路径
../strelka-2.9.10.release_src/configure --jobs=4 --prefix=${HOME}/biosoft/strelka2
make -j4 install
检查安装是否成功,如果可以运行成功,则证明安装没问题:
bash ${HOME}/biosoft/strelka2/bin/runStrelkaSomaticWorkflowDemo.bash
对于 CentOS 系统,可以直接下载二进制版本,解压之后便可直接使用:
# download strelka binary
wget https://github.com/Illumina/strelka/releases/download/v2.9.10/strelka-2.9.10.centos6_x86_64.tar.bz2
# decompress
tar -xvjf strelka-2.9.10.centos6_x86_64.tar.bz2
# run demo to check successful installation
bash strelka-2.9.10.centos6_x86_64/bin/runStrelkaSomaticWorkflowDemo.bash
bash strelka-2.9.10.centos6_x86_64/bin/runStrelkaGermlineWorkflowDemo.bash
实际运行
前面只是运行了测试代码,检测软件是否安装成功,下面就是进行实际使用了。参考: https://github.com/Illumina/strelka/blob/v2.9.x/docs/userGuide/quickStart.md strelka 在使用的时候分为两步,第一步构建 config ,第二步运行流程: 对于 germline 位点,示例用法是:
# configuration
${STRELKA_INSTALL_PATH}/bin/configureStrelkaGermlineWorkflow.py
--bam sample1.bam
--bam sample2.bam
--referenceFasta hg38.fa
--runDir demo_germline
# execution on a single local machine with 20 parallel jobs
demo_germline/runWorkflow.py -m local -j 20
对于 somatic 位点,示例用法是:
# configuration
${STRELKA_INSTALL_PATH}/bin/configureStrelkaSomaticWorkflow.py
--normalBam normal.bam
--tumorBam tumor.bam
--referenceFasta hg38.fa
--runDir demo_somatic
# execution on a single local machine with 20 parallel jobs
demo_somatic/runWorkflow.py -m local -j 20
在构建 config 这一步时,需要注意一点,对于肿瘤外显子或者靶向测序,都需要一个 bed 文件,因为只关心落在外显子或者 bed 区域的突变,可以用 --callRegions bed
指定,然后再搭配 --exome
或者 --targeted
参数。需要注意的是,bed 文件是有要求的,要有对应的索引文件 tbi,这就要求要用 tabix 对 bgzip 压缩过后的 bed 文件进行构建 tbi 索引:
bgzip Agilent_v6_hg38.bed
tabix -b bed Agilent_v6_hg38.bed.gz
除此之外,为了更加灵敏地检测 indel 位点,软件还建议先运行 Manta ,并将 Manta 的运行结果传递给 --indelCandidates
参数。关于 manta 的安装和使用,和 Strelka2 相似,这里不做冗余介绍。
其中 -m
指定运行的模式,有 local 和 sge 两个,一般选择 local 指在单个节点上多个核心运行,sge 指在集群上多节点并行, -j
指调用多少个 cpu 核心,默认是调用所有的。运行过程中会弹出很多日志信息,可以用 1 和 2 捕获并重定向。
实际使用的脚本是(其中变量要进行自定义或者传参):
STRELKA_INSTALL_PATH=${HOME}/biosoft/strelka2
database=${HOME}/database
GENOME=${database}/GATK/resources/bundle/hg38/Homo_sapiens_assembly38.fasta
bed=Agilent_v6_hg38.bed.gz
# configuration
mkdir 6.strelka/${tumor}
${STRELKA_INSTALL_PATH}/bin/configureStrelkaSomaticWorkflow.py
--indelCandidates 6.manta/${tumor}/results/variants/candidateSmallIndels.vcf.gz
--tumorBam 5.gatk/${tumor}_bqsr.bam
--normalBam 5.gatk/${normal}_bqsr.bam
--referenceFasta ${GENOME}
--callRegions ${bed}
--exome
--runDir 6.strelka/${tumor}
1>6.strelka/${tumor}/${tumor}_strelka.log 2>&1
# execution on a single local machine with 20 parallel jobs
python2 6.strelka/${tumor}/runWorkflow.py -m local -j 4 1>6.strelka/${tumor}/${tumor}_strelka.log 2>&1
结果
结果会有很多输出,主要是两个压缩后的 vcf 文件,分别为 snv 和 indel 的结果:
$ ls 6.strelka/${tumor}/*/*
6.strelka/${tumor}/results/stats:
runStats.tsv runStats.xml
6.strelka/${tumor}/results/variants:
somatic.indels.vcf.gz somatic.indels.vcf.gz.tbi somatic.snvs.vcf.gz somatic.snvs.vcf.gz.tbi
6.strelka/${tumor}/workspace/pyflow.data:
logs state
当然,如果想对 mutect2 和 strelka2 的结果取交集的话,也是可以的,用下面的代码就行:
# 合并 mutect2 和 strelka2 的结果,保留两者的共同突变位点,保留 mutect2 vcf 文件的header和其他信息
mkdir 6.somatic
zcat 6.strelka/${tumor}/results/variants/*gz | grep '^chr' | grep 'PASS' |sort -V >6.strelka/${tumor}/results/variants/${tumor}_filter.vcf
cat 6.mutect/${tumor}_filter.vcf | grep '^#' >6.somatic/${tumor}_filter.vcf
awk 'NR==FNR {A[$1" "$2]; next}(($1" "$2) in A)' 6.strelka/${tumor}/results/variants/${tumor}_filter.vcf 6.mutect/${tumor}_filter.vcf >>6.somatic/${tumor}_filter.vcf
参考:https://github.com/Illumina/strelka
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十