Canonical transcripts as determined by GATK
REQUIRED for all errors and issues:
a) GATK version used: v4.3.0.0
b) Exact command used:
Hey everyone,
I've been using Funcotator for variant annotation and ran into something confusing. I noticed an issue similar to this one: GATK Funcotator Transcript Selection Criteria, but didn't find a clear answer there.
So, I used Funcotator on my germline sequencing data and found some variants labeled as 'intronic', like MUTYH (ENST00000531105.5). But the canonical transcript for this one actually shows a missense mutation in a protein-coding transcript. Although the "Other Transcripts" column in Funcotator lists these variants, I'm not sure why they aren't the main ones.
I also saw an option on the Funcotator tutorial page to pick between "BEST EFFECT" or "CANONICAL" for the transcript type. But what happens if I don’t provide a list? I get that "CANONICAL" is the default, but then shouldn’t the splice variant be protein-coding and not intronic?
If anyone can clear this up for me, that'd be awesome!
Thanks!
Yonatan
-
Is it possible for you to provide us some of the problematic lines that you see in your input vcf so that we can try reproducing the issue?
-
Hi there,
I don't think there are any "problematic lines" per se. The underlying issue is I'm curious how the "canonical transcripts" are determined. Most annotators call the longest transcript the canonical one (and that is usually true 99% of the time), it just seems like some of the transcripts which were called the primary were not the longest coding and other annotators showed a different transcript in that position.
Again, I know you guys have a page that addresses this, but it doesn't make clear how the canonical variants are defined. There is also a "best effect" option but I believe that's only if I include another file which I define as canonical variants. -
Hi again.
Are you using the version 1.7 for the resource files? If that's the case can you try running your annotations with GATK 4.4.0.0 and resource file version 1.8 to see this issue still persists?
-
Thank you, could you provide me with the link to download version 1.8? 1.7 seems to be the most recent version. I was originally using 1.6, but there was an issue with some of the protein coding change predictions (already mentioned in previous posts).
-
These resources are located in our google bucket for funcotator.
https://console.cloud.google.com/storage/browser/broad-public-datasets/funcotator
If you wish to see all the consequences it is recommended that you use ALL for transcript selection criteria which will produce all consequences therefore you may check to see if the desired consequence is present or not.
-
Thank you so much, I was able to download the directory, but the running fucotator with the v1.8 path is giving me errors. Is is the version of GATK that's the issue here.
java.lang.IllegalArgumentException: Unexpected value: overlaps_pseudogene
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfFeature$FeatureTag.getEnum(GencodeGtfFeature.java:1394)
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfFeature.<init>(GencodeGtfFeature.java:197)
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfGeneFeature.<init>(GencodeGtfGeneFeature.java:19)
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfGeneFeature.create(GencodeGtfGeneFeature.java:23)
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfFeature$FeatureType$1.create(GencodeGtfFeature.java:760)
at org.broadinstitute.hellbender.utils.codecs.gtf.GencodeGtfFeature.create(GencodeGtfFeature.java:327)
at org.broadinstitute.hellbender.utils.codecs.gtf.AbstractGtfCodec.decode(AbstractGtfCodec.java:138)
at org.broadinstitute.hellbender.utils.codecs.gtf.AbstractGtfCodec.decode(AbstractGtfCodec.java:23)
at htsjdk.tribble.TribbleIndexedFeatureReader$QueryIterator.readNextRecord(TribbleIndexedFeatureReader.java:502)
at htsjdk.tribble.TribbleIndexedFeatureReader$QueryIterator.<init>(TribbleIndexedFeatureReader.java:442)
at htsjdk.tribble.TribbleIndexedFeatureReader.query(TribbleIndexedFeatureReader.java:298)
at org.broadinstitute.hellbender.engine.FeatureDataSource.refillQueryCache(FeatureDataSource.java:622)
at org.broadinstitute.hellbender.engine.FeatureDataSource.queryAndPrefetch(FeatureDataSource.java:591)
at org.broadinstitute.hellbender.engine.FeatureManager.getFeatures(FeatureManager.java:363)
at org.broadinstitute.hellbender.engine.FeatureContext.getValues(FeatureContext.java:173)
at org.broadinstitute.hellbender.tools.funcotator.DataSourceFuncotationFactory.queryFeaturesFromFeatureContext(DataSourceFuncotationFactory.java:314)
at org.broadinstitute.hellbender.tools.funcotator.DataSourceFuncotationFactory.getFeaturesFromFeatureContext(DataSourceFuncotationFactory.java:229)
at org.broadinstitute.hellbender.tools.funcotator.DataSourceFuncotationFactory.createFuncotations(DataSourceFuncotationFactory.java:207)
at org.broadinstitute.hellbender.tools.funcotator.DataSourceFuncotationFactory.createFuncotations(DataSourceFuncotationFactory.java:182)
at org.broadinstitute.hellbender.tools.funcotator.FuncotatorEngine.lambda$createFuncotationMapForVariant$0(FuncotatorEngine.java:152)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.broadinstitute.hellbender.tools.funcotator.FuncotatorEngine.createFuncotationMapForVariant(FuncotatorEngine.java:162)
at org.broadinstitute.hellbender.tools.funcotator.Funcotator.enqueueAndHandleVariant(Funcotator.java:924)
at org.broadinstitute.hellbender.tools.funcotator.Funcotator.apply(Funcotator.java:878)
at org.broadinstitute.hellbender.engine.VariantWalker.lambda$traverse$0(VariantWalker.java:104)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at org.broadinstitute.hellbender.engine.VariantWalker.traverse(VariantWalker.java:102)
at org.broadinstitute.hellbender.engine.GATKTool.doWork(GATKTool.java:1095)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:140)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:192)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:211)
at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:160)
at org.broadinstitute.hellbender.Main.mainEntry(Main.java:203)
at org.broadinstitute.hellbender.Main.main(Main.java:289)
for the record the GATK version I'm running is 4.3. -
My mistake, just noted you recommended running it on GATK 4.4
-
It was also my mistake that I recommended 1.8. That bundle is not compatible with 4.4.0.0 therefore can be used with current nightly docker builds or github master branch builds which will in turn become 4.5.0.0 soon. Can you also try the latest builds for funcotator bundle 1.8?
Please sign in to leave a comment.
8 comments