GATK太慢舍沙?利用GPU加速讓WGS/WES分析按分鐘交付

目前踏志,隨著測序成本的降低丽猬,越來越多的WGS/WES項目開始普及宿饱,也更多的課題組擁有自己的服務器,但是大數(shù)據(jù)帶來的計算緩慢問題也越發(fā)凸顯脚祟。這里和大家分享基于英偉達GPU的 Clara Parabricks 谬以,但是需要注意的是非英偉達的GPU是無法使用的。

1 安裝

  1. 首先需要確保自己安裝好了英偉達的官方驅(qū)動由桌,這里不贅述安裝方法为黎,請自行安裝。如果正確安裝了只需要輸入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. 先對原始文件質(zhì)控,這里使用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為需要映射到容器的目錄,取決于自己輸入文件的路徑姓迅,只有把對應的目錄傳入容器敲霍,容器才可以讀取,根據(jù)自己文件的實際文件進行修改队贱,如這里把主機的/data映射到容器的/data,至于其他的knownSites則是傳統(tǒng)的GATK最佳實踐老套路的金標準文件潭袱,--interval-file是用于WES的外顯子捕獲區(qū)域柱嫌,如果是WGS則不需要。這里一步相當于進行了 bwa mem -> SAMtoBAM -> rmdup -> GATK BQSR 操作屯换;
    我這里使用V30顯卡進行標準的WES結果顯示耗時共12分鐘*编丘,在傳統(tǒng)的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文件路徑,根據(jù)實際填寫杨赤。

  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. 后續(xù)如果需要進行Mutect2衙解、VariantFiltration等操作建議使用傳統(tǒng)的CPU方法,這一部分目前截止至4.1.1版本焰枢,還沒能提供較好的支持蚓峦,能調(diào)用的參數(shù)較少,不大適合標準的分析流程济锄。
    如常見的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內(nèi)角虫,WES更是按照分鐘計算,這在以前是不敢相信的委造。此外戳鹅,fq2bam的工具同樣可以用在其他的組學中進行加速。
這里僅僅是介紹了該工具集的一小部分內(nèi)容昏兆,該工具較為豐富枫虏,提供以下功能,大家可以自己去嘗試:


更多工具
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爬虱,一起剝皮案震驚了整個濱河市隶债,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌跑筝,老刑警劉巖死讹,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異曲梗,居然都是意外死亡赞警,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門虏两,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愧旦,“玉大人,你說我怎么就攤上這事定罢◇猿妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耕皮。 經(jīng)常有香客問我境蜕,道長,這世上最難降的妖魔是什么凌停? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任粱年,我火速辦了婚禮,結果婚禮上罚拟,老公的妹妹穿的比我還像新娘台诗。我一直安慰自己,他們只是感情好赐俗,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布拉队。 她就那樣靜靜地躺著,像睡著了一般阻逮。 火紅的嫁衣襯著肌膚如雪粱快。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天叔扼,我揣著相機與錄音事哭,去河邊找鬼。 笑死瓜富,一個胖子當著我的面吹牛鳍咱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播与柑,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼谤辜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了价捧?” 一聲冷哼從身側響起丑念,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎结蟋,沒想到半個月后脯倚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡椎眯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年挠将,在試婚紗的時候發(fā)現(xiàn)自己被綠了胳岂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片编整。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乳丰,靈堂內(nèi)的尸體忽然破棺而出掌测,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布汞斧,位于F島的核電站夜郁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粘勒。R本人自食惡果不足惜竞端,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庙睡。 院中可真熱鬧事富,春花似錦、人聲如沸乘陪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啡邑。三九已至贱勃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谤逼,已是汗流浹背贵扰。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留森缠,地道東北人拔鹰。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像贵涵,于是被迫代替她去往敵國和親列肢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容