CYPDB6 Caller

The CYP2B6 Caller is capable of genotyping the CYP2B6 gene from whole-genome sequencing (WGS) data. Due to high sequence similarity with its pseudogene paralog CYP2B7 and a wide variety of common structural variants (SVs), a specialized caller is necessary to resolve variants and identify likely star allele haplotypes.

The CYP2B6 Caller performs the following steps:

  1. Determines total CYP2B6 and CYP2B7 copy number from read depth.

  2. Determines CYP2B6-derived copy number at CYP2B6/CYP2B7 differentiating sites.

  3. Detects SV breakpoints by calculating the changes in CYP2B6-derived copy number along the CYP2B6 gene.

  4. Calls small variants in CYP2B6 copies.

  5. Identifies star alleles from the detected SV breakpoints and small variants.

  6. Identifies the most likely genotype for the called star alleles.

Total CYP2B6 and CYP2B7 Copy Number

The first step of CYP2B6 calling is to determine the combined copy number of CYP2B6 and CYP2B7. Reads aligned to regions in either CYP2B6 or CYP2B7 are counted. The counts in each region are corrected for GC-bias, and then normalized to a diploid baseline. The GC-bias correction and normalization factors are determined from read counts in 3000 preselected 2 kb regions across the genome. These 3000 normalization regions were randomly selected from the portion of the reference genome having stable coverage across population samples. The combined CYP2B6 and CYP2B7 copy number is then calculated from the average sequencing depth across the CYP2B6 and CYP2B7 regions.

Differentiating Sites

The CYP2B6-derived copy number is calculated at 99 predefined differentiating sites across the CYP2B6 gene. The differentiating sites are selected at positions with sequence differences in CYP2B6 and CYP2B7 where calling the CYP2B6-derived copy number shows an accuracy of greater than 98% based on sequencing data from the 1000 Genomes Project.

For each differentiating site, CYP2B6-specific and CYP2B7-specific alleles are counted in reads mapping to either CYP2B6 or the homologous region in CYP2B7. The CYP2B6-derived copy number is then calculated from the two gene-specific allele counts using the total CYP2B6 and CYP2B7 copy number calculated from the previous step.

Structural Variant Calling

The CYP2B6-derived copy number along the CYP2B6 gene is used to identify known population structural variants (SVs), including whole gene deletions and duplications as well as certain gene conversions and gene fusions. The following fusion variants are detected:

Fusion BreakpointHybrid Gene StructureStar-Allele Designation

intron 4-exon 5

2B7-2B6

*29

intron 4-exon 5

2B6-2B7

*30

Small Variant Calling

35 small variants that define various star alleles are detected from the read alignments. All of these variants are in unique (nonhomologous) regions of CYP2B6 with high mapping quality. Only reads mapping to CYP2B6 are used for calling variants in nonhomologous regions.

For each variant, reads containing either the variant allele or the nonvariant alleles are counted. A binomial model that incorporates the sequencing errors is then used to determine the most likely variant copy number (0 for nonvariant).

Samples with poor sequencing quality or greater than five copies of CYP2B6 will have allele counts with higher variance. This elevated variance increases the chance that the most likely variant copy number is wrong. To handle these cases, the small variant caller also indicates alternate, less likely variant copy numbers.

Recombinant Variant Calling

The recombinant (gene conversion) variant 18053A>G is detected by phasing the variant site with five flanking differentiating sites. When the haplotypes formed from phasing these sites supports the gene conversion in CYP2B6, a read depth analysis at the gene conversion breakpoints (transitions from either CYP2B6->CYP2B7 or CYP2B7->CYP2B6) is performed. When the posterior probability that there is at least one gene conversion variant is above 0.7 then DRAGEN uses the variant for star allele identification.

Star Allele Identification

The called SVs and small variant genotypes are matched against the definitions of 39 different star alleles. This might result in different sets of star alleles matching the called variant genotypes, such as with *1, *6 and *4, *49 where both sets of star alleles contain the same two small variants. When the small variant caller emits alternate, less likely variant copy numbers in addition to the most likely variant copy numbers this might result in different sets of star alleles being identified, since these alternate sets of variant copy numbers are also matched to the star allele definitions. The number of matched star alleles must match the number of CYP2B6-derived gene copies determined from previous steps. If no variant genotypes can be matched to a set of star alleles, the CYP2B6 Caller returns a no call during the genotyping step with filter value No_call.

Genotyping

Given a possible set of star alleles, the genotyping step attempts to identify the two likely haplotypes that contain all star alleles in the set. The likelihood of any given genotype is determined from a table of population frequencies determined from the 1000 Genomes Project and the genotype with the highest population frequency is selected. When two or more possible genotypes are identified with similar population frequencies, then all genotypes are emitted. This results in a call with filter value More_than_one_possible_genotype.

CYP2B6 Output File

The caller prints out its calls in the targeted caller output file, <output-file-prefix>.targeted.json that also contains calls from other targets (see Targeted JSON File).

An example of the CYP2B6 caller content in the output is as follows:

{
    "cyp2b6": {
        "genotype": "*17/*2",
        "genotypeFilter": "PASS",
        "phenotypeDatabaseAnnotation": "Normal Metabolizer"
    }
}

For CYP2B6 caller, the fields are defined as follows.

Fields in JSONExplanationType and Possible Values

genotype

star allele genotype identified for sample

string

genotypeFilter

The filter status for the genotype call

string (The value can include: PASS, No_call, or More_than_one_possible_genotype)

phenotypeDatabaseAnnotation

The metabolism status corresponding to the genotype, mapped from phenotypeDatabaseSources

string

Last updated