BigQuery로 변이 분석

이 페이지는 BigQuery를 사용하여 변이를 분석하는 방법을 설명합니다. 아래 예시는 각 샘플의 염색체별로 SNP에 있는 전이전환 비율을 계산하는 방법을 보여줍니다.

Illumina Platinum Genomes 데이터세트의 변이 분석

다음 예시는 Cloud Life Sciences에서 BigQuery로 내보낸 Illumina Platinum Genomes 프로젝트의 데이터를 사용합니다. 데이터가 포함된 BigQuery의 테이블 이름은 platinum_genomes_deepvariant_variants_20180823입니다.

이 테이블의 변이를 분석하려면 다음 작업을 수행합니다.

  1. BigQuery UI로 이동합니다.

    BigQuery UI로 이동

  2. 쿼리 작성을 클릭합니다.

  3. 다음 쿼리를 복사하여 새 쿼리 텍스트 영역에 붙여넣습니다.

     #standardSQL
     --
     -- Compute the transition/transversion ratio per sample and reference name.
     --
     WITH filtered_snp_calls AS (
       SELECT
         reference_name,
         c.name,
         CONCAT(reference_bases, '->', alternate_bases[ORDINAL(1)].alt) AS mutation
       FROM
         `bigquery-public-data.human_genome_variants.platinum_genomes_deepvariant_variants_20180823` AS v, UNNEST(v.call) AS c
       WHERE
         # Only include biallelic SNPs.
         reference_bases IN ('A','C','G','T')
         AND alternate_bases[ORDINAL(1)].alt IN ('A','C','G','T')
         AND (ARRAY_LENGTH(alternate_bases) = 1
           OR (ARRAY_LENGTH(alternate_bases) = 2 AND alternate_bases[ORDINAL(2)].alt = '<*>'))
         # Skip homozygous reference calls and no-calls.
         AND EXISTS (SELECT g FROM UNNEST(c.genotype) AS g WHERE g > 0)
         AND NOT EXISTS (SELECT g FROM UNNEST(c.genotype) AS g WHERE g < 0)
         # Include only high quality calls.
         AND NOT EXISTS (SELECT ft FROM UNNEST(c.filter) ft WHERE ft NOT IN ('PASS', '.'))
     ),
    
     mutation_type_counts AS (
       SELECT
         reference_name,
         name,
         SUM(CAST(mutation IN ('A->G', 'G->A', 'C->T', 'T->C') AS INT64)) AS transitions,
         SUM(CAST(mutation IN ('A->C', 'C->A', 'G->T', 'T->G',
                               'A->T', 'T->A', 'C->G', 'G->C') AS INT64)) AS transversions
       FROM filtered_snp_calls
       GROUP BY
         reference_name,
         name
     )
    
     SELECT
       reference_name,
       name,
       transitions,
       transversions,
       transitions/transversions AS titv
     FROM mutation_type_counts
     WHERE
       transversions > 0
     ORDER BY
       titv DESC,
       name
    
  4. 쿼리 실행을 클릭합니다. 쿼리를 실행하면 다음이 반환됩니다.

    reference_name 이름 전이 전환 titv
    1 chr22 NA12892 35299 15017 2.3506026503296265
    2 chr22 NA12889 34091 14624 2.331167943107221
    3 chr17 NA12892 67297 28885 2.3298251687727194
    4 chr22 NA12878 33627 14439 2.3289008934136715
    5 chr22 NA12877 34751 14956 2.3235490772933938
    6 chr22 NA12891 33534 14434 2.323264514341139
    7 chr17 NA12877 70600 30404 2.3220628864623074
    8 chr17 NA12878 66010 28475 2.3181738366988585
    9 chr17 NA12890 67242 29057 2.314141170802216
    10 chr17 NA12889 69767 30189 2.311007320547219
    ... ... ... ... ... ...

titv 열은 전이와 변환 비율을 보여줍니다.

다음 단계