created by samwell
on 2019-02-12
After training on a massive amount of data, the neural network models at the heart of CNNvariant have learned enough to be released from beta.
This suite of tools for single-sample variant filtration uses machine learning to differentiate between good variants and artifacts of the sequencing process, a fairly new approach that is especially effective at correctly calling indels. To enable the models to accurately filter and score variants from VCF files, we trained on validated VCFs (from truth models including SynDip, Genomes in a bottle, and Platinum Genomes) with unvalidated VCFs aligned to different reference builds (HG19, HG38), sequenced on different machines, using different protocols. The result is a single-sample tool that complements, rather than replaces, VQSR (our "traditional" cohort based variant filtering algorithm).
What’s in the CNN toolbox? Pre-trained and train-your-own CNNScoreVariant is a pre-trained Convolutional Neural Network ready to score variants. After scoring, you can filter your VCF by applying a sensitivity threshold with the tool FilterVariantTranches. Or you can train your own models with the tools CNNVariantWriteTensors and CNNVariantTrain, as long as you have validated VCFs to use as training data.
While the current release is only recommended for single sample variant filtration, in the future we hope to explore ways a similar model could be applied to joint-called VCFs.
Under the hood For details on how our deep learning tool works and how it stacks up to other variant filtering tools (both Deep Learning and traditional), as well as a bit of history on Deep Learning in genomics, see our other blog post.
Updated on 2019-03-01
From Weichi on 2019-02-18
It’s great to hear that! Thanks!
Just remind you there is an error on [CNNScoreVariants documentation ](https://software.broadinstitute.org/gatk/documentation/tooldocs/current/org_broadinstitute_hellbender_tools_walkers_vqsr_CNNScoreVariants.php “CNNScoreVariants documentation “).
The value in -tensor-type should be read_tensor not read-tensor.
Because I got the below error:
>! A USER ERROR has occurred: Argument tensor-type has a bad value: read-tensor. ‘read-tensor’ is not a valid value for TensorType. Possible values: {
>! reference ( 1 Hot encoding of a reference sequence. )
>! read_tensor (Read tensor are 3D tensors spanning aligned reads, sites and channels. The maximum number of reads is a hyper-parameter typically set to 128. There are 15 channels in the read tensor. They correspond to the reference sequence data (4), read sequence data (4), insertions and deletions (2) read flags (4) and mapping quality (1).)
>! }
Regards
Weichi