目前踏志,隨著測序成本的降低丽猬,越來越多的WGS/WES項目開始普及宿饱,也更多的課題組擁有自己的服務器,但是大數(shù)據(jù)帶來的計算緩慢問題也越發(fā)凸顯脚祟。這里和大家分享基于英偉達GPU的 Clara Parabricks 谬以,但是需要注意的是非英偉達的GPU是無法使用的。
1 安裝
- 首先需要確保自己安裝好了英偉達的官方驅(qū)動由桌,這里不贅述安裝方法为黎,請自行安裝。如果正確安裝了只需要輸入
nvidia-smi
命令即可看到類似下面的信息:
- 安裝
docker
行您,或singularity
铭乾,這里也不贅述,請自行百度娃循,推薦上我個人比較推薦singularity炕檩,無論是和snakemake的配合還是權限管理上都更方便 - 獲取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
- 安裝 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 - 準備WGS/WES分析所需的fastq捌斧,gtf和參考基因組等笛质;
2 使用
- 先對原始文件質(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
- 比對參考基因組捞蚂,并進行堿基矯正(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ù)實際填寫杨赤。
- 進行堿基矯正(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秒 - 鑒定突變位點
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秒 - 后續(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)容昏兆,該工具較為豐富枫虏,提供以下功能,大家可以自己去嘗試: