Memahami skema varian BigQuery

Halaman ini menjelaskan struktur skema yang dihasilkan di BigQuery saat Anda menggunakan alat Transformasi Varian. Baca halaman ini jika Anda menggunakan alat Variant Transforms untuk mengubah dan memuat file VCF langsung ke BigQuery dan ingin memahami struktur tabel ekspor.

Nomenklatur

Untuk memahami format dan skema ekspor, pahami istilah berikut.

Tata nama genomik

Sampel
DNA yang dikumpulkan dan diproses berdasarkan satu ID. Sampel biasanya melibatkan satu organisme individu, tetapi juga dapat berupa sampel heterogen seperti swab pipi.
Nama referensi
Nama segmen referensi DNA. Nama referensi biasanya adalah kromosom, tetapi mungkin juga merupakan region bernama lainnya dari genom referensi.
Varian

Wilayah genom yang telah diidentifikasi sebagai berbeda dari genom referensi. Varian harus memiliki properti berikut:

  • Nama referensi
  • Posisi awal
  • Posisi akhir
  • Satu atau beberapa basis referensi
Segmen non-varian

Wilayah genom yang cocok dengan genom referensi. Segmen non-varian juga disebut "segmen referensi". Biasanya, data genom tidak menyertakan segmen non-varian dengan varian.

Untuk informasi selengkapnya tentang segmen non-varian, lihat Tentang gVCF.

Telepon

Kejadian yang diidentifikasi dari segmen varian atau non-varian untuk setiap sampel. Panggilan mewakili penentuan genotipe terkait varian tertentu. Panggilan mungkin menyertakan informasi terkait seperti kualitas dan fase.

Kolom INFO

Kolom opsional ditambahkan ke informasi varian dan panggilan. Misalnya, semua panggilan memiliki kolom genotype, tetapi tidak semua set data memiliki kolom "Kualitas Genotipe" (GQ). Kolom genotype adalah bagian tetap dari skema VariantCall, tetapi tidak memiliki kolom GQ. Anda dapat mengimpor kolom dan nilai GQ sebagai pasangan nilai kunci ke kolom VariantCall info.

Untuk mengetahui tata nama genom lainnya, lihat referensi berikut:

Istilah BigQuery

Pahami istilah BigQuery berikut:

Kolom sederhana
Elemen data sederhana dalam tabel BigQuery, seperti angka dan string.
Kolom bertingkat
Elemen data kompleks dalam tabel BigQuery. Kolom bertingkat dapat berisi beberapa kolom, baik sederhana maupun bertingkat.
Kolom berulang
Kolom dalam tabel BigQuery yang dapat memiliki beberapa nilai, seperti daftar. Kolom berulang dapat berupa kolom sederhana dan bertingkat.

Untuk mengetahui informasi selengkapnya tentang jenis data kompleks BigQuery, lihat artikel berikut:

Struktur tabel varian

Saat menjalankan alat Variant Transforms, Anda menentukan nama tabel BigQuery. Biasanya, nama tabel adalah variants.

Struktur data tabel varian

Data tingkat teratas tabel variants dapat berupa varian dan segmen non-varian. Setiap data tabel variants berisi satu atau beberapa panggilan.

Tabel berikut mengilustrasikan struktur data tabel varian. Tabel menunjukkan data varian berikut:

  • Variant1
  • Variant2

Set data BigQuery berisi sampel berikut:

  • Sample1
  • Sample2
  • Sample3

Dalam tabel berikut, Anda dapat mengamati hasil ini:

  • Variant1 telah dipanggil untuk Sample1 dan Sample2.
  • Variant2 telah dipanggil untuk Sample1 dan Sample3.
   
Variant1 Sample1

Sample2
Variant2 Sample1

Sample3
... ...

Struktur kolom tabel varian

Setiap tabel variants menyertakan kumpulan kolom tetap dan kumpulan kolom variabel. Struktur tabel terlihat seperti berikut:

     
Kolom Varian Tetap Telepon Kolom INFO Varian
... Kolom Panggilan Tetap          Kolom INFO Panggilan ...

Kolom tetap tabel varian

Kolom tingkat data (varian) tetap adalah sebagai berikut:

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

Kolom level panggilan tetap (VariantCall) adalah sebagai berikut:

  • name
  • genotype
  • phaseset

Contoh skema

Saat data 1000 Genomes dimuat ke BigQuery, data tersebut mencakup impor ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf.

File VCF menyertakan berbagai kolom INFO tingkat varian dan tingkat panggilan, seperti yang dijelaskan dalam perintah header INFO dan FORMAT berikut:

##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]]

Saat file dimuat ke BigQuery, hal berikut terjadi:

  • Kolom yang ditandai sebagai INFO, seperti AC dan AF, ditambahkan sebagai kolom INFO ke resource varian.
  • Kolom yang ditandai sebagai FORMAT, seperti kolom GP dan GQ, ditambahkan sebagai kolom INFO ke resource VariantCall.
  • Kolom FORMAT GT tidak ditambahkan sebagai kolom INFO. Nilai dikonversi ke kolom genotype.

Melihat skema di BigQuery akan menampilkan kolom tetap berikut:

Nama kolom Jenis Mode Deskripsi
reference_name STRING NULLABLE Nama referensi.
start_position INTEGER NULLABLE Posisi awal (berbasis 0). Sesuai dengan basa pertama dari string basa referensi.
end_position INTEGER NULLABLE Posisi akhir (berbasis 0). Sesuai dengan basa pertama setelah basa terakhir dalam alel referensi.
reference_bases STRING NULLABLE Basis referensi.
alternate_bases RECORD BERULANG Satu data untuk setiap basis alternatif (jika ada). Lihat Informasi kumpulan data alternate_bases tambahan.
alternate_bases.alt STRING NULLABLE Dasar alternatif.
nama STRING BERULANG Nama varian (misalnya, ID RefSNP).
kualitas FLOAT NULLABLE Skor kualitas dengan skala Phred (-10log10 prob(call is wrong)). Nilai yang lebih tinggi menyiratkan kualitas yang lebih baik.
filter STRING BERULANG Daftar filter yang gagal (jika ada) atau "LULUS" yang menunjukkan bahwa varian telah lulus semua filter.
call RECORD BERULANG Satu kumpulan data untuk setiap panggilan.

Melihat skema akan menampilkan kolom variabel berikut (kolom INFO):

Nama kolom Jenis Mode Deskripsi
call.name STRING NULLABLE Nama panggilan.
call.genotype INTEGER BERULANG Genotipe panggilan. "-1" digunakan jika genotipe tidak dipanggil.
call.phaseset STRING NULLABLE Phaseset panggilan (jika ada). "*" digunakan jika genotipe dikelompokkan menurut fase, tetapi tidak ada kumpulan fase ("PS" dalam FORMAT) yang ditentukan.

Informasi data alternate_bases tambahan

Kumpulan data alternate_bases berisi kolom INFO dengan Number=A. Kumpulan data menyederhanakan kueri dengan menghilangkan kebutuhan untuk memetakan setiap kolom dengan kumpulan data alternatif yang sesuai.

Untuk menggunakan versi skema BigQuery sebelumnya, dengan kolom Number=A yang tidak bergantung pada basis alternatif, selesaikan langkah-langkah berikut:

  1. Jalankan alat Variant Transforms, dan teruskan tanda --split_alternate_allele_info_fields.
  2. Tetapkan nilai flag --split_alternate_allele_info_fields ke False.

Memisahkan data secara otomatis

Dalam kasus berikut, alat Transformasi Varian akan otomatis membagi data menjadi beberapa baris dengan setiap baris berukuran kurang dari 100 MB:

  • Kumpulan data memiliki banyak panggilan.
  • Panggilan dalam jumlah besar menghasilkan baris BigQuery yang lebih besar dari 100 MB.

Pemisahan kumpulan data otomatis diperlukan karena batas BigQuery 100 MB per baris.

Nilai null

Jika kolom berulang float atau bilangan bulat berisi nilai null, alat Variant Transforms tidak dapat membuat skema BigQuery. BigQuery tidak mengizinkan nilai null di kolom berulang. Seluruh data dapat berupa null, tetapi nilai dalam data harus non-null.

Contoh:

  1. Misalkan kolom INFO file VCF memiliki nilai 1,.,2. Alat Variant Transforms tidak dapat memuat 1,null,2 ke BigQuery.
  2. Penggantian numerik harus digunakan untuk nilai null. Secara default, nilai penggantiannya adalah -2^31, atau -2147483648.

Untuk menetapkan nilai numerik kustom, teruskan tanda --null_numeric_value_replacement dengan nilai saat menjalankan alat Transformasi Varian.

Atau, Anda dapat mengonversi nilai null menjadi string dan menggunakan . sebagai nilai. Saat melakukannya, header harus ditentukan sebagai String.