I have annotated variants called in my exome-sequencing data using SnpEff and have filtered the output using the following command:
cat 7_21_15-merged-varscan_no-dbsnp_somatic.vcf | java -jar SnpSift.jar filter "( ! ( EFF[*].EFFECT = 'intergenic_region' )) & ( ! ( EFF[*].EFFECT = 'conserved_intergenic_variant' )) & ( ! ( EFF[*].EFFECT = 'upstream_gene_variant' )) & ( ! ( EFF[*].EFFECT = 'downstream_gene_variant' )) & ( ! ( EFF[*].EFFECT = 'intron_variant' )) & ( GEN[*].AD > 9 ) & ( ! ( EFF[*].EFFECT = 'non_coding_exon_variant' ))" > 7_21_15-merged-varscan_no-dbsnp_somatic.v2.vcf
I understand that SnpEff includes annotations for all genes that the mutation lies in, but how do I remove the annotations for genes whose predicted effect did not pass my above filter. For example, if a particular mutation is annotated to be a missense mutation for one gene while a intron mutation for another gene, I wish to remove the annotation for the intron mutation.