GATK太慢?利用GPU加速让WGS/WES分析按分钟交付

目前,随着测序成本的降低,越来越多的WGS/WES项目开始普及,也更多的课题组拥有自己的服务器,但是大数据带来的计算缓慢问题也越发凸显。这里和大家分享基于英伟达GPU的 Clara Parabricks ,但是需要注意的是非英伟达的GPU是无法使用的。

1 安装

  1. 首先需要确保自己安装好了英伟达的官方驱动,这里不赘述安装方法,请自行安装。如果正确安装了只需要输入nvidia-smi命令即可看到类似下面的信息:
    nvidia-smi
  2. 安装docker,或singularity,这里也不赘述,请自行百度,推荐上我个人比较推荐singularity,无论是和snakemake的配合还是权限管理上都更方便
  3. 获取Clara Parabricks
    如果使用docker则输入:
    docker pull nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1
    如果使用singularity则输入:
    singularity pull docker://nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1
  4. 安装 nvidia-container-cli,如果是Ubuntu就
    sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit-base
    如果是Centos/Redhat就
    sudo dnf clean expire-cache && sudo dnf install -y nvidia-container-toolkit-base
  5. 准备WGS/WES分析所需的fastq,gtf和参考基因组等;

2 使用

  1. 先对原始文件质控,这里使用fastp
    fastp -i homo_1.fq.gz -I homo_2.fq.gz -o homo_trim_1.fq.gz -O homo_trim_2.fq.gz -l 50 -q 20 -u 50 --detect_adapter_for_pe -w 4
  2. 比对参考基因组,并进行碱基矫正(GPU方法)
    docker run --rm --user $(id -u ${USER}):$(id -g ${USER}) -v /data:/data --gpus all nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1 pbrun fq2bam --in-fq homo_trim_1.fq.gz homo_trim_2.fq.gz '@RG\tID:homo\tLB:lib1\tPL:bar\tSM:homo\tPU:homo' --ref Homo_sapiens.fa --knownSites 1000G_phase1.snps.high_confidence.hg19.vcf --knownSites Mills_and_1000G_gold_standard.indels.hg19.vcf --knownSites dbsnp_138.hg19.vcf --out-bam homo.rmdup.bam --out-recal-file homo.baserecal.grp --tmp-dir /data/homo_tmp --interval-file panel-v1-targets-hg19.bed
    这里需要注意一下,-v为需要映射到容器的目录,取决于自己输入文件的路径,只有把对应的目录传入容器,容器才可以读取,根据自己文件的实际文件进行修改,如这里把主机的/data映射到容器的/data,至于其他的knownSites则是传统的GATK最佳实践老套路的金标准文件,--interval-file是用于WES的外显子捕获区域,如果是WGS则不需要。这里一步相当于进行了 bwa mem -> SAMtoBAM -> rmdup -> GATK BQSR 操作;
    我这里使用V30显卡进行标准的WES结果显示耗时共12分钟*,在传统的CPU方法中难以想象!!

注意如果使用singularity则将docker run --rm --user $(id -u ${USER}):$(id -g ${USER}) -v /data:/data --gpus all nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1替换为singularity run --nv --nvccli --bind /data:/data clara-parabricks_4.1.1-1.sif,其他和上面的等价的,-v对应--bind,--nv --nvccli是开启GPU支持,sif就是通过pull生成的sif文件路径,根据实际填写。

  1. 进行碱基矫正(GPU方法)
    docker run --rm --user $(id -u ${USER}):$(id -g ${USER}) -v /data:/data --gpus all nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1 pbrun applybqsr --ref Homo_sapiens.fa --in-bam homo.rmdup.bam --in-recal-file homo.baserecal.grp --out-bam homo.bqsr.bam --tmp-dir /data/homo_tmp
    这里的--in-bam是上一步得到的bam,--in-recal-file 是上一步得到的grp文件用于碱基矫正,--ref则是参考的基因组文件,这里是hg19。
    我这里实测耗时1分30秒
  2. 鉴定突变位点
    docker run --rm --user $(id -u ${{USER}}):$(id -g ${{USER}}) -v /data:/data --gpus all nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1 pbrun haplotypecaller --ref Homo_sapiens.fa --in-bam homo.bqsr.bam --out-variants homo.vcf --tmp-dir /data/homo_tmp
    我这里实测这一步耗时大约1分30秒
  3. 后续如果需要进行Mutect2、VariantFiltration等操作建议使用传统的CPU方法,这一部分目前截止至4.1.1版本,还没能提供较好的支持,能调用的参数较少,不大适合标准的分析流程。
    如常见的Mutect2对应的方法为:
docker run --rm --gpus all -v /data:/data 
    nvcr.io/nvidia/clara/clara-parabricks:4.1.1-1 \
    pbrun mutectcaller \
    --ref /workdir/${REFERENCE_FILE} \
    --tumor-name tumor \
    --in-tumor-bam /workdir/${INPUT_TUMOR_BAM} \
    --in-normal-bam /workdir/${INPUT_NORMAL_BAM} \
    --normal-name normal \
    --out-vcf /outputdir/${OUTPUT_VCF}

本方法全程完成了较为耗时的比对、去重、碱基矫正,突变鉴定,并利用GPU加速到了一个难以置信的地步,以笔者的v30显卡为例子,达到了30X的人WGS耗时2h内,WES更是按照分钟计算,这在以前是不敢相信的。此外,fq2bam的工具同样可以用在其他的组学中进行加速。
这里仅仅是介绍了该工具集的一小部分内容,该工具较为丰富,提供以下功能,大家可以自己去尝试:


更多工具
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容