3640a4d6b3303a6bebc7c5b2fc5abcf7f4fae0b2
angie
  Wed Sep 28 11:56:00 2016 -0700
Partial support for changes in VCF4.2 and latest samtools mpileup output:
- Tolerate 'Number=R' and new INFO attributes Source and Version
- Tolerate mpileup's '<X>' alt (no alternate allele was observed)
- The 4.3 spec includes '<*>' from gVCF, also meaning no alt al obsvd.
- GT is no longer required; user's example has PL instead, so parse that
into genotypes.
- hgVai now annotates "variants" with <X> and <*> as no_sequence_alteration
- annoFormatVep now uses html encoding for html output in various places so
that "<X>" is displayed properly (custom track labels and various item
names could also have undesirable characters).  I am not encoding the
extras' descriptions because those are internal and some have <a>'s.
refs #15625

diff --git src/hg/lib/soTerm.c src/hg/lib/soTerm.c
index aed1341..beb720c 100644
--- src/hg/lib/soTerm.c
+++ src/hg/lib/soTerm.c
@@ -35,30 +35,31 @@
     { "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 },
+    { "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);
 return NULL;  // never get here