瞭解 BigQuery 變異基因段結構定義

本頁面說明使用 Variant Transforms 工具時,在 BigQuery 中產生的結構定義。如果您想瞭解匯出表格的結構,並使用 Variant Transforms 工具將 VCF 檔案轉換並直接載入至 BigQuery,請參閱本頁面。

命名法

為了瞭解匯出格式和結構定義,請先熟悉以下術語。

Genomics 命名法

樣本
使用單一 ID 收集和處理的 DNA。樣本通常包含單一有機體,但也可以是異質樣本,例如臉頰拭子。
參照名稱
DNA 參照片段的名稱。參照名稱通常是一條染色體,但也可以是參照基因體的其他已命名區域。
變化版本

已識別為與參照基因體不同的基因體區域。變化版本必須具備下列屬性:

  • 參照名稱
  • 起始位置
  • 結束位置
  • 一或多個參照鹼基
非變異基因段

與參照基因體相符的基因體區域,非變異基因段也稱為「參照區隔」。通常,基因體資料不會納入具有變異基因的非變異基因段。

如要進一步瞭解非變異基因段,請參閱「關於 gVCF」。

撥打電話

經過研判發現個別樣本的變異基因段或非變異基因段。呼叫代表根據特定變異基因段確立的基因型。呼叫可能包含品質和階段等相關資訊。

INFO 欄位

在變異基因段和呼叫資訊中加入的選填欄位。舉例來說,所有呼叫都有 genotype 欄位,但並非所有資料集都有「基因型品質」(GQ) 欄位。genotype 欄位是 VariantCall 結構定義的固定部分,但沒有 GQ 欄位。您可以將 GQ 欄位和值做為鍵/值組合匯入 VariantCall info 欄位。

如需更多基因體命名法,請參閱以下說明:

BigQuery 用語

請熟悉下列 BigQuery 術語:

簡易欄位
BigQuery 資料表中的簡易資料元素,例如數字和字串。
巢狀欄位
BigQuery 資料表中的複雜資料元素。巢狀欄位可以包含多個欄位,包括簡易欄位和巢狀欄位。
重複欄位
可以擁有多個值的 BigQuery 資料表欄位,例如清單。重複欄位可為簡易,也可以是巢狀。

如要進一步瞭解 BigQuery 的複雜資料類型,請參閱以下文章:

Variants 資料表結構

執行 Variant Transforms 工具時,您會指定 BigQuery 表格名稱。資料表的名稱通常為 variants

Variants 資料表記錄結構

variants 資料表的頂層記錄可以是變異基因段或非變異基因段。每個 variants 資料表記錄都包含一或多個呼叫。

下表說明變異基因段表記錄結構。表格顯示以下變異基因段記錄:

  • Variant1
  • Variant2

BigQuery 資料集包含下列範例:

  • Sample1
  • Sample2
  • Sample3

下表列出這些結果:

  • 系統已為 Sample1Sample2 呼叫 Variant1
  • 系統已為 Sample1Sample3 呼叫 Variant2
   
Variant1 Sample1

Sample2
Variant2 Sample1

Sample3
... ...

Variants 資料表欄位結構

每個 variants 表格都包含一組固定欄位和一組可變欄位。資料表的結構如下所示:

     
固定變異基因段欄位 辨識項目 變異基因段 INFO 欄位
... 固定辨識欄位        辨識 INFO 欄位 ...

變異基因段資料表固定欄位

固定記錄層級 (變異基因段) 欄位如下:

  • reference_name
  • start_position
  • end_position
  • reference_bases
  • alternate_bases
  • names
  • quality
  • filter

固定的辨識層級 (VariantCall) 欄位如下:

  • name
  • genotype
  • phaseset

結構定義範例

1, 000 種基因體資料載入 BigQuery 中時,也包括匯入 ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf

VCF 檔案包含各種變異基因段層級和辨識層級的 INFO 欄位,如以下 INFOFORMAT 標頭指令所述:

##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GP,Number=G,Type=Float,Description="Genotype likelihoods">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=FT,Number=1,Type=String,Description="Per-sample genotype filter">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
 [[trimmed]]
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral allele">
##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
##INFO=<ID=AF,Number=A,Type=Float,Description="Estimated allele frequency in the range (0,1]">
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of samples with data">
 [[trimmed]]

將檔案載入 BigQuery 時,發生了以下情況:

  • 標記為 INFO 的欄位 (例如 ACAF) 會新增至「Variant」資源做為 INFO 欄位。
  • 標示為 FORMAT 的欄位 (例如 GPGQ 欄位) 會新增為 INFO 欄位,並加入 VariantCall 資源。
  • 系統不會將「FORMAT」欄位 GT 新增為「INFO」欄位,系統將該值轉換為 genotype 欄位。

在 BigQuery 中查看結構定義時,系統會顯示下列固定欄位:

欄位名稱 類型 模式 說明
reference_name STRING NULLABLE 參照名稱
start_position INTEGER NULLABLE 起始位置 (從 0 開始)。對應至參照鹼基字串的第一個鹼基。
end_position INTEGER NULLABLE 結束位置 (從 0 開始)。對應至參照等位基因中最後一個鹼基之後的第一個鹼基。
reference_bases STRING NULLABLE 參照鹼基
alternate_bases RECORD REPEATED 每個替代鹼基 (如果有的話) 一筆記錄。請參閱「其他 alternate_bases 記錄資訊」。
alternate_bases.alt STRING NULLABLE 替代鹼基。
names STRING REPEATED 變異基因段名稱 (例如 RefSNP ID)。
quality FLOAT NULLABLE Phred 量表的品質分數 (-10log10 prob(辨識錯誤))。數值越高代表品質越好。
filter STRING REPEATED 失敗篩選清單 (如果有),或「PASS」表示變異基因段已符合所有篩選條件。
call RECORD REPEATED 每個辨識項目一筆記錄。

查看結構定義時,系統會顯示下列變數欄位 (INFO 欄位):

欄位名稱 類型 模式 說明
call.name STRING NULLABLE 辨識項目名稱。
call.genotype INTEGER REPEATED 辨識項目的基因型。如果沒有辨識基因型,就會使用「-1」。
call.phaseset STRING NULLABLE 通話的階段組合 (如果有)。如果基因型已有階段,但沒有指定階段組合 (在 FORMAT 中為「PS」),就會使用「*」。

其他 alternate_bases 記錄資訊

alternate_bases 記錄包含任何含有 Number=AINFO 欄位。這麼做就不必將每個欄位對應至其相應的備用記錄,進而簡化查詢作業。

如要使用舊版的 BigQuery 結構定義 (其中的 Number=A 欄位與替代鹼基無關),請完成下列步驟:

  1. 執行 Variant Transforms 工具,並傳遞 --split_alternate_allele_info_fields 標記。
  2. --split_alternate_allele_info_fields 標記的值設為 False

自動分割記錄

在下列情況下,Variant Transforms 工具會自動將記錄分割成多個資料列,每個資料列的大小不超過 100 MB:

  • 記錄包含大量呼叫。
  • 大量呼叫導致 BigQuery 資料列大小超過 100 MB。

由於 BigQuery 每個資料列的大小上限為 100 MB,因此必須自動分割記錄。

空值

如果浮點或整數重複欄位包含空值,Variant Transforms 工具就無法建立 BigQuery 結構定義。BigQuery 不允許在重複欄位中使用空值。整筆記錄可以是空值,但記錄中的值必須為非空值。

例如:

  1. 假設 VCF 檔案的 INFO 欄位有值 1,.,2,Variant Transforms 工具無法將 1,null,2 載入至 BigQuery。
  2. 您必須改用其他數字來替代空值。根據預設,替換值為 -2^31-2147483648

如要設定自訂數值,請在執行 Variant Transforms 工具時傳送一個含有值的 --null_numeric_value_replacement 旗標。

或者,您也可以將空值轉換成字串,然後使用 . 做為值。如要採用這個做法,則必須將標頭指定為 String