380a1b308bd3bb4f4e52d89ef9e1ccb962892bab angie Tue Oct 3 14:10:37 2017 -0700 Major changes to annoGratorGpVar, annoFormatVep and gpFx.c with the addition of functional effect prediction to variantProjector using PSL+CDS from annoStreamDbPslPlus, which enables accurate predictions even when the genome and transcript have indel differences. struct gpFx includes new members exonCount, txRef and txAlt so that gpFx and variantProjector can compute those and send them forward to annoFormatVep, instead of annoFormatVep computing them assuming that genome and transcript match perfectly. annoGratorGpVar passes forward the new gpFx members in output columns and, when input is PSL+CDS instead of genePred, uses variantProjector instead of gpFx to do functional predictions. diff --git src/hg/lib/soTerm.c src/hg/lib/soTerm.c index beb720c..a37b578 100644 --- src/hg/lib/soTerm.c +++ src/hg/lib/soTerm.c @@ -4,61 +4,62 @@ * See README in this or parent directory for licensing information. */ #include "common.h" #include "soTerm.h" struct soStringToId // Map SO term string name to int ID { char *term; // string name for term, e.g. "stop_lost" enum soTerm id; // integer ID for term, e.g. 1578 for "SO:0001578" }; static struct soStringToId soStringToId[] = { { "regulatory_region_variant", regulatory_region_variant }, { "stop_retained_variant", stop_retained_variant }, - { "exon_loss", exon_loss }, + { "exon_loss_variant", exon_loss_variant }, { "splice_acceptor_variant", splice_acceptor_variant }, { "splice_donor_variant", splice_donor_variant }, { "complex_transcript_variant", complex_transcript_variant }, { "stop_lost", stop_lost }, { "coding_sequence_variant", coding_sequence_variant }, { "initiator_codon_variant", initiator_codon_variant }, { "missense_variant", missense_variant }, { "stop_gained", stop_gained }, { "frameshift_variant", frameshift_variant }, { "nc_transcript_variant", nc_transcript_variant }, { "mature_miRNA_variant", mature_miRNA_variant }, { "NMD_transcript_variant", NMD_transcript_variant }, { "UTR_variant", UTR_variant }, { "5_prime_UTR_variant", _5_prime_UTR_variant }, { "3_prime_UTR_variant", _3_prime_UTR_variant }, { "incomplete_terminal_codon_variant", incomplete_terminal_codon_variant }, { "intron_variant", intron_variant }, { "intergenic_variant", intergenic_variant }, { "splice_site_variant", splice_site_variant }, { "splice_region_variant", splice_region_variant }, { "upstream_gene_variant", upstream_gene_variant }, { "downstream_gene_variant", downstream_gene_variant }, { "TF_binding_site_variant", TF_binding_site_variant }, { "non_coding_transcript_exon_variant", non_coding_transcript_exon_variant }, { "protein_altering_variant", protein_altering_variant }, { "synonymous_variant", synonymous_variant }, { "inframe_indel", inframe_indel }, { "inframe_insertion", inframe_insertion }, { "inframe_deletion", inframe_deletion }, { "feature_variant", feature_variant }, + { "transcript_ablation", transcript_ablation }, { "no_sequence_alteration", no_sequence_alteration }, { NULL, 0 } }; char *soTermToString(enum soTerm termNumber) /* Translate termNumber to its string equivalent; errAbort if not found. * Do not modify or free result. */ { int i; for (i = 0; soStringToId[i].term != NULL; i++) { if (termNumber == soStringToId[i].id) return soStringToId[i].term; } errAbort("soTermToString: don't recognize term %u", termNumber);