Variant classification

From Genome Analysis Wiki
Jump to: navigation, search

Introduction

The Variant Call Format (VCF) is a flexible file format specification that allows us to represent many different variant types ranging from SNPs, indels to copy number variations. However, variant representation in VCF is non-unique for variants that have explicitly expressed reference and alternate sequences.

On this wiki page, we describe a a variant classification system for VCF entries that is invariant to normalization except for the case of MNPs.

Definitions

The definition of a variant is based on the definition of each allele with respect to the reference sequence. We consider 5 major types loosely decribed as follows.

1. SNP
The reference and alternate sequences are of length 1 and the base nucleotide is different from one another.
2. MNP
The reference and alternate sequences are of the same length and have to be greater than 1 and all nucleotides in the sequences differ from one another.
OR
All reference and alternate sequences have the same length (this is applicable to all alleles).
3. INDEL
The reference and alternate sequences are not of the same length.
4. CLUMPED
A clumping of nearby SNPs, MNPs or Indels.
5. SV
The alternate sequence is represented by an angled bracket tag.

Classification Procedure

  1. Trim each allele with respect to the reference sequence individually
  2. Inspect length, defined as length of alternate allele minus length of reference allele.
    1. if length = 0
      1. if length(ref) = 1 and nucleotides differ, classify as SNP (count ts and tv too)
      2. if length(ref) > 1
        1. if all nucleotides differ, classify as MNP (count ts and tv too)
        2. if not all nucleotides differ, classify as CLUMPED (count ts and tv too)
    2. if length \ne 0, classify as INDEL
      1. if shorter allele is of length 1
        1. if shorter allele does not match either of the end nucleotides of the longer allele, add SNP classification
      2. if shorter allele length > 1
        1. compare the shorter allele sequence with the subsequence in the 5' end of the longer allele (count ts and tv too)
          1. if all nucleotides differ, add MNP classification
          2. if not all nucleotides differ, add CLUMPED classification
  3. Variant classification is the union of the classifications of each allele present in the variant.
  4. If all alleles are the same length, add MNP classification.

Examples

We present the following examples to explain the classification described.

Legend for examples

   <variant classification>
REF <reference sequence> ALT <alternative sequence 1> #<allele classification>, <contribution to transition, transversion, insertion or deletion count> ALT <alternative sequence 2> #<allele classification>, <contribution to transition, transversion, insertion or deletion count>

Simple Biallelic Examples

   SNP
REF A ALT G #SNP, 1 ts
   MNP
REF AT ALT GC #MNP, 2 ts
   INDEL
REF AT ALT A #INDEL, 1 del
   INDEL
REF AT ALT T #INDEL, 1 del #Note that although the padding base differs - A vs T, this is actually a simple indel because it is simply a deletion of a A base. #If you right align this instead of left aligning, then the padding will be T on both the reference and alternative alleles. #Simple Indel classification should be invariant whether it is left or right aligned.
   SV
REF A ALT <DEL> #SV

Complex Biallelic Examples

   SNP|INDEL
REF AT ALT G #SNP, INDEL, 1 ts #Note that it is ambiguous as to which pairing should be a SNP, as such, the transition or transversion contribution is actually #not defined. In this case, assuming it is a A/G SNP, we get a transition, but we may also consider this as a T/G SNP which #is a transversion. In such ambiguous cases, we simply consider the aligned bases after left alignment to get the transition #and transversion contribution. But please be very clear that this is an ambiguous case. It is better to consider this simply #as a complex variant.
   MNP|INDEL
REF ATT ALT GG #MNP, INDEL, 1 ts, 1 tv, 1 del
   MNP|CLUMPED
REF ATTTT ALT GTTTC #MNP, CLUMPED, 2 ts #since all the alleles are of the same length, classified as MNP too.
   INDEL|CLUMPED
REF ATTTTTTTT ALT GTTTC #INDEL, CLUMPED, 2 ts, 1 del

Simple Multiallelic Examples

   SNP
REF A ALT G #SNP, 1 ts ALT C #SNP, 1 tv
   MNP
REF AG ALT GC #MNP, 1 ts, 1 tv ALT CT #MNP, 2 tv
   INDEL
REF ATTT ALT ATT #INDEL, 1 del ALT ATTTT #INDEL, 1 ins

Complex Multiallelic Examples

   SNP|MNP
REF AT ALT GT #SNP, 1 ts ALT AC #SNP, 1 ts #since all the alleles are of the sample length, classified as MNP too.
   SNP|MNP|CLUMPED
REF ATTTG ALT GTTTC #CLUMPED, 1 ts, 1 tv ALT ATTTC #SNP, 1 tv, note that we get the SNP after truncating the bases ATTT to reveal a G/C transversion SNP #since all the alleles are of the sample length, classified as MNP too.
   SNP|MNP|INDEL
REF GT ALT CT #SNP, 1 tv ALT AG #MNP, 2 tv ALT GTT #INDEL, 1 ins
   SNP|MNP|INDEL|CLUMPED
REF GTTT ALT CG #MNP, INDEL, 2 tv, 1 del ALT AG #MNP, INDEL, 1 ts, 1 tv ALT GTGTG #SNP, INDEL, CLUMPED, 1 tv, 1 ins

Structured Variants Examples

   SV
REF G ALT <INS:ME:LINE1> #SV SV
REF G ALT <CN4> #SV ALT <CN12> #SV

Interesting Variant Types

   Adjacent Tandem Repeats from lobSTR's tandem repeat finder panel. 
   20	9538655		ATTTATTTATTTATTTATTTATTTATTTATTTATTTATTCATTCATTCATTCATTCATTCATTC 	<STR>
   This can be induced as
   
   one record considering only the ATTT repeats
   20	9538655	ATTTATTTATTT  ATTT 
   one record with CATT repeats
   20	9538695	CATTCATT  CATT 
   one record with a mix of both repeat types
   20	9538695	TATTCATTCATT  CATT 

Representation of close by variants

    1:124001690
    TTTCTTT--CAAAAAAAGATAAAAAGGTATTTCATGG
    TTTCTTTAAAAAAAAAAGATAAAAAGGAATTTCATGG
    a single complex variant
    CHROM POS         REF   ALT
    1     124001690   C     AAA
    an Indel and SNP adjacent to one another
    CHROM POS         REF   ALT
    1     124001689   T     TAA
    1     124001690   C     A

Representing it as a single complex variant enforces that both "indel" and "SNP" are always together. Representing it as 2 separate variants allows both alleles to segregate independently.

Output

This is the annotated output of peek in the vt suite.

stats:no. of samples                     :          0 #number of genotype fields in VCF file, this is a site list so it is 0
      no. of chromosomes                 :         25 #no. of chromosomes observed in this file.
========== Micro variants ==========
no. of SNP  : 54247827 #total number of SNPs 2 alleles  : 53487808 (1.99) [35616038/17871770] #ts/tv ratio and the respective counts 3 alleles  : 389190 (0.60) [291224/487156] 4 alleles  : 370828 (0.50) [370828/741656] >=5 alleles  : 1 (0.33) [1/3]
no. of MNP  : 122125 2 alleles  : 121849 (1.56) [152383/97816] 3 alleles  : 273 (0.89) [537/601] 4 alleles  : 3 (1.00) [9/9]
no. of Indel  : 6600770 #also referred to as simple Indels 2 alleles  : 6285861 (0.88) [2937096/3348765] #ins/del ratio and the respective counts 3 alleles  : 280892 (8.72) [503977/57807] 4 alleles  : 28245 (131.19) [84094/641] >=5 alleles  : 5772 (3847.00) [23082/6]
no. of SNP/MNP  : 1161 3 alleles  : 1143 (1.57) [1565/994] 4 alleles  : 15 (1.36) [34/25] >=5 alleles  : 3 (0.67) [8/12]
no. of SNP/Indel  : 115153 2 alleles  : 42717 (0.65) [16778/25939] (0.57) [15441/27276] #ts/tv and ins/del ratios 3 alleles  : 66401 (0.72) [29681/41397] (0.33) [31458/96168] 4 alleles  : 4631 (0.55) [2420/4386] (0.25) [2602/10306] >=5 alleles  : 1404 (0.62) [1197/1926] (0.10) [513/4989]
no. of MNP/Indel  : 15619 2 alleles  : 12820 (0.51) [12099/23648] (0.77) [5594/7226] 3 alleles  : 2455 (0.40) [1796/4469] (0.45) [1144/2546] 4 alleles  : 292 (0.24) [215/891] (1.42) [415/292] >=5 alleles  : 52 (0.43) [96/225] (2.47) [126/51]
no. of SNP/MNP/Indel  : 273 3 alleles  : 167 (0.63) [201/321] (0.38) [70/184] 4 alleles  : 85 (0.35) [71/203] (0.28) [31/111] >=5 alleles  : 21 (0.35) [24/68] (0.68) [25/37]
no. of MNP/Clumped  : 61175 2 alleles  : 60617 (1.68) [84410/50220] 3 alleles  : 549 (1.23) [1777/1449] 4 alleles  : 8 (1.43) [53/37] >=5 alleles  : 1 (1.00) [5/5]
no. of SNP/MNP/Clumped  : 290 3 alleles  : 282 (1.35) [665/494] 4 alleles  : 8 (0.57) [13/23]
no. of Indel/Clumped  : 27638 2 alleles  : 25971 (0.65) [31435/48526] (0.79) [11444/14527] 3 alleles  : 1585 (0.74) [3568/4793] (0.87) [1383/1582] 4 alleles  : 70 (0.55) [96/175] (1.61) [124/77] >=5 alleles  : 12 (0.59) [37/63] (4.71) [33/7]
no. of SNP/Indel/Clumped  : 456 3 alleles  : 257 (0.84) [332/394] (0.33) [111/340] 4 alleles  : 174 (0.38) [105/279] (0.58) [186/321] >=5 alleles  : 25 (0.19) [12/63] (0.94) [44/47]
no. of MNP/Indel/Clumped  : 153 3 alleles  : 138 (0.50) [233/466] (0.84) [102/122] 4 alleles  : 12 (0.35) [14/40] (1.42) [17/12] >=5 alleles  : 3 (0.64) [7/11] (0.67) [4/6]
no. of SNP/MNP/Indel/Clumped  : 6 4 alleles  : 1 (3.00) [3/1] (0.00) [0/3] >=5 alleles  : 5 (0.62) [8/13] (2.00) [12/6]
no. of Reference  : 0
====== Other useful categories =====
no. of Block Substitutions  : 184751 #equivalent to categories with allele lengths that are the same. 2 alleles  : 182466 (1.60) [236793/148036] 3 alleles  : 2247 (1.28) [4544/3538] 4 alleles  : 34 (1.16) [109/94] >=5 alleles  : 4 (0.76) [13/17]
no. of Complex Substitutions  : 159298 #equivalent to categories not including SNPs, Block Substitutions and Simple Indels 2 alleles  : 81508 (0.61) [60312/98113] (0.66) [32479/49029] 3 alleles  : 71003 (0.69) [35811/51840] (0.34) [34268/100942] 4 alleles  : 5265 (0.49) [2924/5975] (0.30) [3375/11122] >=5 alleles  : 1522 (0.58) [1381/2369] (0.15) [757/5143]
======= Structural variants ========
no. of structural variants  : 41217 2 alleles  : 38079 deletion  : 13135 insertion  : 16451 mobile element  : 16253 ALU  : 12513 LINE1  : 2911 SVA  : 829 numt  : 198 duplication  : 664 inversion  : 100 copy number variation  : 7729 >=3 alleles  : 3138 copy number variation  : 3138
========= General summary ==========
no. of observed variants  : 79449759 no. of unclassified variants  : 0

Implementation

This is implemented in vt.

Maintained by

This page is maintained by Adrian.