5956c40955854fd83b75627124f6420518a78960
angie
  Wed Feb 24 20:51:42 2021 -0800
Add more columns from summary table to TSV summary file.  Move PSL indel-tallying code upstream & store results for summaries.

diff --git src/hg/hgPhyloPlace/phyloPlace.h src/hg/hgPhyloPlace/phyloPlace.h
index 79957c3..74969b3 100644
--- src/hg/hgPhyloPlace/phyloPlace.h
+++ src/hg/hgPhyloPlace/phyloPlace.h
@@ -24,39 +24,43 @@
 
 struct treeChoices
 /* Phylogenetic tree versions for the user to choose from. */
 {
     char **protobufFiles;      // Mutation annotated tree files in protobuf format for UShER
     char **metadataFiles;      // Sample metadata a la GISAID's nextmeta download option
     char **sources;            // GISAID or public
     char **descriptions;       // Menu labels to describe the options to the user
     int count;                 // Number of choices (and size of each array)
 };
 
 struct seqInfo
 /* User sequences, alignments and statistics */
 {
     struct seqInfo *next;
-    struct dnaSeq *seq;
-    struct psl *psl;
-    struct singleNucChange *sncList;
-    struct singleNucChange *maskedSncList;
-    struct slRef *maskedReasonsList;
-    uint nCountStart;
-    uint nCountMiddle;
-    uint nCountEnd;
-    uint ambigCount;
+    struct dnaSeq *seq;                     // Uploaded sequence
+    struct psl *psl;                        // Alignment to reference (if FASTA uploaded)
+    struct singleNucChange *sncList;        // SNVs in seq
+    struct singleNucChange *maskedSncList;  // SNVs that were masked (not used for placement)
+    struct slRef *maskedReasonsList;        // Reason (from Problematic Sites) for masking each SNV
+    uint nCountStart;                       // #Ns at beginning of seq
+    uint nCountMiddle;                      // #Ns not at beginning or end of seq
+    uint nCountEnd;                         // #Ns at end of seq
+    uint ambigCount;                        // # ambiguous IUPAC bases
+    char *insRanges;                        // ranges and sequences inserted into reference
+    char *delRanges;                        // ranges and sequences deleted from reference
+    uint insBases;                          // total #bases inserted into reference
+    uint delBases;                          // total #bases deleted from reference
 };
 
 struct variantPathNode
 /* A list of these gives a path from phylo tree root to some node (usually user seq leaf). */
     {
     struct variantPathNode *next;
     char *nodeName;                   // Either a numeric internal node ID or the user seq name
     struct singleNucChange *sncList;  // One or more single nucleotide changes associated with node
     };
 
 struct bestNodeInfo
     {
     struct bestNodeInfo *next;
     char *name;                           // Node name
     struct variantPathNode *variantPath;  // Mutations assigned to nodes along path from root->node