AI Maker 案例教學 - Parabricks 範本應用
0. 前言
人類基因體大概有 30 億個鹼基對,2萬多個基因,能影響人們一生的健康。而我們每個人有 99% 的 DNA 是相同的,剩下的 1% 才是構成我們每一個人獨一無二的原因,也因這樣的差異,影響人們所患疾病的嚴重程度與治療上的差異。透過基因分析工具,可以幫助我們更好地理解生命的本質和疾病的機制。藉由分析 DNA 序列,我們可以從中找出有害的基因變異,確定個體的潛在風險因素,並找出可行性對策。以下是一些例子:
- 疾病診斷和預防
基因分析可以幫助我們確定患有某些疾病的風險,例如乳腺癌、肺癌、心臟病或遺傳疾病等。透過早期診斷,我們可以採取預防措施,避免疾病發生,或在發現疾病時及早治療。底下有一些案例可供參考:
- 美國好萊塢電影明星安潔莉娜·裘莉(Angelina Jolie),其家族攜帶了會造成乳癌的基因,於是她進一步採取了預防措施。
- 遺傳性血友病的患者由於基因缺陷,其染色體無法參與第八或第九凝血因子的製造,造成血液中缺乏某種凝血因子而不容易凝固。這些患者可以接受基因治療,進而恢復血液凝血功能。
- 誠品創辦人吳清友患有馬凡氏症(Marfan syndrome),因主動脈剝離而猝逝。該疾病的發生率約為萬分之一,目前已有一些藥物可減緩其發生。
- 患有先天性心律不整的人(發生率大約為每2,500個人中就有1人)可能在運動中猝逝。這些人若能提前得知,就可以透過簡單的藥物預防或是避免劇烈、極限運動來防範猝死的發生。
- 精準化醫療
基因分析亦可以幫助我們制定個體化治療計畫,根據每個人的基因體資訊和藥物代謝率等因素進行精準化治療。這種治療可以減少不必要的藥物使用和副作用,提高治療效果。底下有一些案例可參考:
- 抗生素的敏感性,如胺基醣苷類抗生素(Aminoglycoside) 可能會引起耳毒性風險增加,其病因可能是該患者的粒線體基因有變異,該藥物進而干擾到人體內粒線體蛋白質的合成而增加耳毒性風險。患者若能事先知道自身有耳毒性風險,可提供醫療人員作為藥物選擇的參考,減少不必要的副作用。
- 藥物過敏,如史帝芬-強生症候群(Stevens-Johnson Syndrome, SJS),該症狀在台灣的統計,每年每百萬人口中的發生率大約是6件。其發生原因通常與病人用藥有關,該藥物或是其代謝物刺激T細胞引發嚴重自體免疫反應,造成皮膚潰爛,屬於藥物引起的不良反應。為了避免某些藥物造成此疾病,可透過查驗
HLA-B*58:01
基因型,協助醫生評估是否需要使用替代藥物,以避免病患發生藥物不良反應。 - 藥物代謝,如 Cytochrome P450 是肝臟內用來代謝 clopidogrel、proton pump inhibitors 等藥物的一群酵素,該藥物的服用者通常為有心肌梗塞、心室顫動或接受冠狀動脈支架置入手術後的患者。這些患者若帶有
CYP2C19*2
與CYP2C19*3
基因型,對 clopidogrel 藥物的代謝率較差,用藥後的效果多不如預期;而帶有CYP2C19*17
基因型,對 clopidogrel 藥物的代謝率較佳,但可能帶來血流不止的危險性。因此,在亞洲國家,檢測 CYP2C19 基因型對臨床用藥的選擇有相當大的參考依據。 - 現在許多癌症都能夠根據其基因變異情況進行個體化治療。例如,有些癌症患者的腫瘤會具有某些基因的突變,而導致患者對某些藥物產生抗藥性。基因分析可以幫助醫生選擇更加有效的治療方式,提高治療成功率。
總體來說,基因分析對於疾病的診斷、預防、治療和研究都有著重要的作用。隨著科技的發展,基因分析將會成為醫學領域的重要組成部分,並且為我們提供更加精確、個體化的醫療服務。底下我們將介紹 Nvidia Clara Parabricks 這套基因分析工具的範本操作。
1. 簡介
Nvidia Clara Parabricks (底下稱 Parabricks) 是一套能支援基因體二級分析的軟體工具,能對次世代定序(NGS)所產生的 DNA 和 RNA 數據進行分析,執行完整的 GATK 最佳實務。該工具支援 GPU 加速,可大幅加速執行時間,並降低運算成本,為定序中心、臨床團隊、基因體研究者提供快速、準確的基因體分析結果。
本教學範本提供 生殖細胞系突變分析流程(germline pipeline) 和 體細胞突變分析流程(Somatic pipeline) 兩項任務操作,從 FASTQ 檔案到 BAM 檔、VCF檔(Variant Call Format,儲存基因體變異資訊)。最後 VCF 檔會再經由 vcfanno 工具,並使用 Clinvar DB 來源進行註釋,產生註釋過的 VCF-annotated 檔(*-annotated.vcf
),以及有害或有藥物反應的 VCF-annotated-filter 檔(*-annotated-filter.vcf
)和對應的報表(*-annotated-filter.tsv
, *-annotated-filter.html
)
本教學範本在後面小節所提及的相關指令,皆是在 Linux 環境下執行的指令。
2. 硬體需求
本教學範本需要使用 GPU 進行加速運算。針對全基因體定序(Whole Genome Sequencing, WGS)資料,建議選用至少 4 張 GPU 並搭配至少 196 GB 以上的系統記憶體。
Parabricks 的官方文件說明
3. 準備參考序列
不論要執行 生殖細胞系突變分析流程(germline pipeline) 或是 體細胞突變分析流程(Somatic pipeline),都需要參考序列 (reference sequences, RefSeq)。下面小節將介紹如何下載指定版本的參考序列,以及如何為參考序列建立相關的索引檔。
本教學範本所提供的 VCF 註釋加值功能,其參考序列裡面的序列名稱需符合特定格式(如chr1
~ chr22
, chrX
, chrY
, chrM
等等),這樣才能和 Clinvar DB 來源進行比對 。
3.1 下載含有索引的參考序列
NVIDIA 有提供 GRCh38 版本的參考序列,及其相關索引檔。下載路徑如下: https://s3.amazonaws.com/parabricks.sample/parabricks_sample.tar.gz
下載後再解壓縮,將有如下的檔案清單:
parabricks_sample/
parabricks_sample/Data/
parabricks_sample/Data/sample_2.fq.gz
parabricks_sample/Data/sample_1.fq.gz
parabricks_sample/Ref/
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.pac
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.ann
parabricks_sample/Ref/Homo_sapiens_assembly38.known_indels.vcf.gz.tbi
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.amb
parabricks_sample/Ref/Homo_sapiens_assembly38.dict
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.fai
parabricks_sample/Ref/Homo_sapiens_assembly38.known_indels.vcf.gz
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.bwt
parabricks_sample/Ref/Homo_sapiens_assembly38.fasta.sa
parabricks_sample.tar.gz
檔案大小為 9.3GB。解壓縮後,各資料夾下的檔案大小:
資料夾 檔案大小 parabricks_sample/Data 5.1G parabricks_sample/Ref 8.4G parabricks_sample 14G
亦可透過底下的下載與解壓縮指令來取得parabricks_sample.tar.gz
:
# Download Parabricks sample
$ wget -O parabricks_sample.tar.gz \
"https://s3.amazonaws.com/parabricks.sample/parabricks_sample.tar.gz"
# unzip
$ tar -xvf parabricks_sample.tar.gz
3.2 下載不含索引的參考序列,並建立索引
此節將介紹如何從 UCSC 官方網站下載人類基因體參考序列。操作步驟如下:
選擇參考序列版本:
Dec. 2013 (GRCh38/hg38)
選擇修訂版本:GRCh38 Patch 13
下載 hg38.p13.fa.gz (檔案大小:957MB)
# Download hg38.p13 reference
$ wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/p13/hg38.p13.fa.gz解壓縮 hg38.p13.fa.gz
# Unzip hg38.p13 reference
$ gunzip hg38.p13.fa.gz為參考序列 FASTA 檔(
.fasta
,.fa
,.fna
)建立索引檔 建立完整的索引檔,包含下面三個步驟:6.1 建立 Ferragina-Manzini index (FM-index) 檔供 BWA 工具使用
FM-index 是為了能夠在基因體序列中快速搜尋字串而建立的索引檔
# Install required tools
$ sudo apt-get install bwa
# Create the BWA indices (.amb/.ann/.bwt/.pac/.sa)
$ bwa index hg38.p13.fa- 為參考序列建立 BWA 索引,約需 60 分鐘左右。
- 為參考序列建立 BWA 索引,約需 60 分鐘左右。
6.2 建立
.fai
檔,允許工具隨機存取參考序列的索引檔# Install required tools
$ sudo apt-get install -y samtools
# Create an FAI index (.fai)
$ samtools faidx hg38.p13.fa6.3 建立
.dict
檔,允許工具隨機存取參考序列的字典檔# Install required tools
$ sudo apt-get install -y default-jre unzip
$ wget https://github.com/broadinstitute/gatk/releases/download/4.3.0.0/gatk-4.3.0.0.zip
$ unzip gatk-4.3.0.0.zip
# Create a dictionary index (.dict)
$ ./gatk-4.3.0.0/gatk CreateSequenceDictionary -R hg38.p13.fa
3.3 上傳參考序列到儲存服務
底下為操作範例,會建立一個儲存體名稱genome-ref
,再建立一個子資料夾hg38.p13
,並上傳參考序列相關檔案(.fa
, BWA indices, .faidx
, .dict
)。
- 點選 OneAI 的儲存服務。
- 再點擊「+建立」。
- 輸入儲存體名稱
genome-ref
後按下「確定」。
- 為了方便管理不同的參考序列,可再建立子資料夾,如
hg38.p13
。
- 進到子資料夾
hg38.p13
,將參考序列相關的檔案上傳。
若有更多的儲存服務操作需求,可參考儲存服務使用說明。
4. 遺傳變異分析
遺傳變異分析是指生殖細胞系突變分析流程(germline pipeline)。給定一個單端定序或是一份雙端定序的 FASTQ 檔案,透過執行 germline 分析流程來產生 BAM 檔(.bam
) 和 VCF 檔(.vcf
)(Variant Call Format,儲存基因體變異資訊)。
此分析流程後續會額外執行 VCF 註釋加值功能,會輸出底下檔案:
- VCF-annotated 檔(
*-annotated.vcf
) - 有害或有藥物反應的 VCF-annotated-filter 檔(
*-annotated-filter.vcf
) - 報表(
*-annotated-filter.tsv
,*-annotated-filter.html
)
4.1 準備檢體
下載檢體
底下提供一個極小的雙端定序測試檢體,供測試使用。(資料來源:ESR-NZ / human_genomics_pipeline)# Download NA24631_1.fastq.gz and NA24631_2.fastq.gz
$ wget https://github.com/ESR-NZ/human_genomics_pipeline/blob/master/test/single/fastq/NA24631_1.fastq.gz?raw=true -O NA24631_1.fastq.gz
$ wget https://github.com/ESR-NZ/human_genomics_pipeline/blob/master/test/single/fastq/NA24631_2.fastq.gz?raw=true -O NA24631_2.fastq.gz上傳檢體
如同 3.3 上傳參考序列到儲存服務 節所述。在這裡要建立一個儲存體名稱為genome-samples
,及子資料夾NA24631
,並上傳 NA24631 雙端定序測試檢體,如下所示:
4.2 建立 germline 任務
從 OneAI 服務列表選擇「AI Maker(搶鮮版)」,再點擊「訓練任務」,進入訓練任務管理頁面後,切換至「一般訓練任務」頁籤,接著點擊「+建立」,新增一個訓練任務用於執行 germline 分析流程。
建立訓練任務可分成五個步驟,詳細的建立說明請參考 AI Maker 使用手冊。
4.2.1 基本資訊
第一步是基本資訊的設定,依序輸入名稱、描述、選擇方法,並選擇 parabricks
範本,此範本會自動帶出公用映像檔 Parabricks-4.0.0
以及後續步驟的各項參數設定。
AI Maker 提供的範本功能,定義了各階段任務所使用的預設參數與設定。透過範本功能,可以快速套用各項任務所需使用的參數或設定,為訓練任務提供了便利性。
4.2.2 硬體設定
本次分析任務需使用 GPU 運算資源,請依目前資料大小,從列表中挑選出合適的硬體資源。如資料為 WGS (Whole Genome Sequencing, 全基因體定序)資料,則建議使用 4 張 GPU 以上的硬體資源;若資料為極小測試樣本,則可挑選 1 張 GPU 的最少成本硬體資源。
4.2.3 儲存設定
此步驟需掛載前面上傳的參考序列來源,及所需分析的檢體來源。
4.2.4 變數設定
接下來進行環境變數的設定,環境變數主要用於設定當前分析任務的參數設定,各參數說明如下。
參數名稱 | 預設值 | 介紹 |
---|---|---|
task | germline | 用於分析檢體的任務類型,有 germline , deepvariant_germline , somatic 三種可以選用。 |
reference_build | 38 | 在參考序列來源中,快速指定所需的參考序列,也就是程式會搜尋檔名含有關鍵字38 的 FASTA 檔(.fasta , .fna , .fa ) |
paired_end | true | 檢測檢體是否為雙端定序。若為true ,表示所有的檢體都必須是 paired-end;若為false ,表示所有的檢體都必須是 single-end。 |
fastq_# | - | 從檢體來源中,指定特定的檢體名稱,例如:fastq_1=NA24631,會從檢體來源自動尋找NA24631_1.fastq.gz 和NA24631_1.fastq.gz ,其中# 為數字,可以是1,2,3,...,或是任意數值。 |
bam_file_discarded | false | 執行二級分析所產生的中間檔 BAM 檔,是否要捨棄掉。false 表示保留 BAM 檔;true 表示捨棄 BAM 檔 |
* 一般情況下,使用分析任務需注意的參數有
task
及 reference_build
,更多的參數細節,詳述如下:task
- 若選擇
germline
,變異偵測演算法將採用 haplotypecaller; - 若選擇
deepvariant_germline
,變異偵測演算法將採用 deepvariant
- 若選擇
reference_build
- 參考序列是指 FASTA 檔(
.fasta
,.fna
,.fa
),但不帶有.gz
結尾。 - 當參考序列來源含有數個不同 patch 版本的參考序列時,可以透過此變數限縮為特定參考序列,如下範例:
38
可以找到:- GRCh38, GRCh38.patch13, GRCh38.patch14 等參考序列
- hg38, hg38.p13, hg38.p14 等參考序列
38.patch14
可以找到 GRCh38.patch14 參考序列38.p14
可以找到 hg38.p14 參考序列hg38
可以找到 hg38, hg38.p13, hg38.p14 參考序列hg38.p14.fa
可以找到指定的參考序列
- 若同時找到多個符合關鍵字的參考序列,將依字幕順序排列,取最後一個。亦即,
hg38.p14
優先權會高於hg38.p13
。
- 參考序列是指 FASTA 檔(
fastq_#
#
為任意數值,無需按照順序,可同時設定多組 FASTQ 檔作為要分析的清單。- 範例1:
fastq_1
=NA12891
fastq_2
=NA12892
fastq_3
=NA12878
- 範例2:
fastq_91
=NA12891
fastq_92
=NA12892
fastq_78
=NA12878
- 範例3:
fastq_12891
=NA12891
fastq_12892
=NA12892
fastq_12878
=NA12878
- 範例1:
fastq_#
指定的值不區分大小寫,但必須是某個/數個檢體名稱的前綴(prefix),這樣才能找到該檢體名稱。- 範例1:指定
fastq_3
=12878
- 無法找到
NA12878_1.fastq.gz
和NA12878_2.fastq.gz
- 無法找到
- 範例2:指定
fastq_3
=NA12878
,可以找到:NA12878_1.fastq.gz
和NA12878_2.fastq.gz
- 範例3:指定
fastq_1
=na128
,可以找到:NA12891_1.fastq.gz
和NA12891_2.fastq.gz
NA12892_1.fastq.gz
和NA12892_2.fastq.gz
NA12878_1.fastq.gz
和NA12878_2.fastq.gz
- 範例1:指定
4.2.5 檢閱 + 建立
最後,確認所設定的資訊無誤後,就可按下「建立」。
4.3 啟動分析任務
完成分析任務的設定後,回到訓練任務管理頁面,可以看到剛剛建立的任務。
點擊該任務,可檢視分析任務的詳細設定。若此時任務的狀態顯示為 Ready ,即可點擊 啟動 圖示,執行分析任務。
啟動後,系統會把參考序列與所要分析的檢體的整個儲存體上傳到遠端訓練環境,此時狀態為 Uploading。不同的資料量大小,等候 Uploading 完成的時間也隨之不同;資料量越大,上傳的時間也將越長。
當狀態再為 Ready 時,即可再點擊上方的「運行列表」頁籤,可以在列表中查看該任務的執行狀況與排程。
若任務在進行中,可以點擊任務右側選單中的 查看日誌、查看詳細狀態,查看目前任務執行的詳細資訊。若任務執行完畢,亦可以點擊 查看 ARTIFACTS 查看分析結果(見下一節說明)。
4.4 查看分析結果
當執行完分析結果,可點選查看 ARTIFACTS。
一路點到目錄最內層,可以看到 BAM 檔、VCF 檔和註釋過的 VCF 檔。
其報告可透過底下兩種方法下載。
- 勾選目標檔案,再點擊下載按鈕
- 點選目標檔案右側的選單,再點擊下載
對下載下來的 html 檔,點擊兩下打開網頁。
此份報告所包含的欄位有:
欄位名稱 | 欄位說明 |
---|---|
CHROM | 染色體名稱 |
POS | 變異所在位置 |
REF | 參考序列中的鹼基資訊 |
ALT | 檢體中的鹼基資訊 |
Genotype | 基因型 |
clinvar_GENEINFO | 基因名稱 |
clinvar_CLNHGVS | HGVS 表達式 |
clinvar_CLNSIG | 臨床意義 |
clinvar_CLNVC | 變異類型 |
clinvar_RS | dbSNP 登錄號 |
檢體所輸出的檔案結構,將採用與檢體位置所在的檔案結構來建構。 例如,檢體位置為
└── sample
└── NA24631
├── NA24631_1.fastq.gz
└── NA24631_2.fastq.gz
檢體所輸出的檔案結構為
- 輸出前:
└── artifacts
└── outputPath
└── (建構起始點) - 輸出後
└── artifacts
└── outputPath
└── sample
└── NA24631
├── NA24631-annotated-filtered.html
├── NA24631-annotated-filtered.tsv
├── NA24631-annotated-filtered.vcf
├── NA24631-annotated.vcf
├── NA24631.vcf
├── NA24631.bam
├── NA24631.bam.bai
└── NA24631_chrs.txt
5. 體細胞變異分析
體細胞變異是受孕後所發生的 DNA 改變,而不是從父母那邊遺傳下來的生殖變異。體細胞變異分析流程(somatic pipeline)是對腫瘤或癌細胞中的 DNA 尋找基因變異,若給定腫瘤或癌細胞中的 FASTQ 檔案和正常細胞中的 FASTQ 檔案,則進行 tumor/normal 分析;若只給定腫瘤或癌細胞中的 FASTQ 檔案,則進行 tumor-only 分析。執行完分析流程後會產生 BAM 檔(.bam
) 和 VCF 檔(.vcf
)(Variant Call Format,儲存基因體變異資訊)。
此分析流程後續會額外執行 VCF 註釋加值功能,會輸出底下檔案:
- VCF-annotated 檔(
*-annotated.vcf
) - 有害或有藥物反應的 VCF-annotated-filter 檔(
*-annotated-filter.vcf
) - 報表(
*-annotated-filter.tsv
,*-annotated-filter.html
)
5.1 準備檢體
下載檢體
底下提供 HCC1395 細胞系的檢體,SRR7890827 為正常檢體,而SRR7890824 則為其腫瘤檢體。每個檢體均在 Illumina HiSeq X 上進行雙端全基因體定序。
## Download publicly available SRA files using wget. Both files are
# about 65 GB in size.
# Normal sample
$ wget https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR7890827/SRR7890827 --output-document=SRR7890827.sra
# Tumor sample
$ wget https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR7890824/SRR7890824 --output-document=SRR7890824.sra
## Convert SRA to FASTQ files
$ fastq-dump --split-files ./SRR7890827.sra --gzip
$ fastq-dump --split-files ./SRR7890824.sra --gzip- SRA 檔案在轉成 FASTQ 檔案後,即可捨棄。
上傳檢體
如同 3.3 上傳參考序列到儲存服務 節所述。在這裡要建立一個儲存體名稱為genome-wgs-hcc1395
,並上傳 SRR7890827 和 SRR7890824 雙端定序測試檢體。
5.2 建立 somatic 任務
此節如同 4.2 建立 germline 任務 節所述,而 somatic 任務所需的設定如下:
儲存設定
掛載名稱 掛載路徑 儲存體來源 sample_folder
/sample
genome-wgs-hcc1395
變數設定
參數名稱 設定值 task
somatic
reference_build
38
tumor_sample
/sample/SRR7890824_1.fastq.gz /sample/SRR7890824_2.fastq.gz
normal_sample
/sample/SRR7890827_1.fastq.gz /sample/SRR7890827_2.fastq.gz
task
與tumor_sample
為必要資訊。- 檢體設定
- 檢體來源必須為絕對路徑。
- 檢體若為雙端定序檔案,兩個 FASTQ 檔中間用空白隔開。
- 檢體若為單端定序檔案,則填入單一 FASTQ 檔。
- 分析模式
- 若有提供
normal_sample
資訊,則進行 tumor/normal 分析。 - 若沒有提供
normal_sample
資訊,則進行 tumor-only 分析。
- 若有提供
5.3 啟動分析任務
請參考 4.3 啟動分析任務 節所述進行操作。
5.4 查看執行結果
當執行完分析結果,可點選查看 ARTIFACTS。
一路點到目錄最內層,可以看到 BAM 檔、VCF 檔和註釋過的 VCF 檔。
下載 SRR7890824-annotated-filtered.html
並查看註釋結果: