2ffab4396193a716178dbf8b75c36633607d0bcb
markd
  Sun Jun 14 14:38:26 2020 -0700
fixed typo in header

diff --git src/hg/pslStats/pslStats.c src/hg/pslStats/pslStats.c
index 3977aa9..f18218d 100644
--- src/hg/pslStats/pslStats.c
+++ src/hg/pslStats/pslStats.c
@@ -97,31 +97,31 @@
 }
 
 struct sumStats
 /* structure to hold per-query summary statistics */
 {
     char *qName;        /* query name; string is in hash table, NULL if overall */
     unsigned queryCnt;  /* total number of queries, if summary */
     unsigned minQSize;  /* min/max/total sizes of queries */
     unsigned maxQSize;
     bits64 totalQSize;
     unsigned alnCnt;   /* number of alignments */
     bits64 totalAlign; /* total bases aligned */ 
     bits64 totalMatch; /* total bases matching */ 
     bits64 totalRepMatch; /* total bases matching repeats */
     float minIdent;    /* min/max fraction identity */
-    float maxIndent;
+    float maxIdent;
     float minQCover;   /* min/max coverage of query */
     float maxQCover;
     float minTCover;   /* min/max coverage of target */
     float maxTCover;
     float minRepMatch; /* fraction that is repeat matches */
     float maxRepMatch;
 };
 
 struct sumStats *sumStatsGetForQuery(struct hash *queryStatsTbl,
                                      char *qName, unsigned qSize)
 /* lookup a stats on query by name, creating if it doesn't exist */
 {
 struct hashEl *hel = hashStore(queryStatsTbl, qName);
 struct sumStats *qs = hel->val;
 if (qs == NULL)
@@ -239,71 +239,71 @@
 else
     return (float)(((double)ss->totalRepMatch)/((double)ss->totalAlign));
 }
 
 static void sumStatsAccumulateQuery(struct sumStats *ss, struct psl *psl)
 /* accumulate stats from psl into sumStats object; must be for same query */
 {
 float ident = calcIdent(psl);
 float qCover = calcQCover(psl);
 float tCover = calcTCover(psl);
 float repMatch = calcRepMatch(psl);
 if (ss->alnCnt == 0)
     {
     ss->totalQSize = psl->qSize;
     ss->minQSize = ss->maxQSize = psl->qSize;
-    ss->minIdent = ss->maxIndent = ident;
+    ss->minIdent = ss->maxIdent = ident;
     ss->minQCover = ss->maxQCover = qCover;
     ss->minTCover = ss->maxTCover = tCover;
     ss->minRepMatch = ss->maxRepMatch = repMatch;
     }
 else
     {
     ss->minQSize = min(ss->minQSize, psl->qSize);
     ss->maxQSize = max(ss->maxQSize, psl->qSize);
     ss->minIdent = min(ss->minIdent, ident);
-    ss->maxIndent = max(ss->maxIndent, ident);
+    ss->maxIdent = max(ss->maxIdent, ident);
     ss->minQCover = min(ss->minQCover, qCover);
     ss->maxQCover = max(ss->maxQCover, qCover);
     ss->minTCover = min(ss->minTCover, tCover);
     ss->maxTCover = max(ss->maxTCover, tCover);
     ss->minRepMatch = min(ss->minRepMatch, repMatch);
     ss->maxRepMatch = max(ss->maxRepMatch, repMatch);
     }
 ss->totalAlign += calcAligned(psl);
 ss->totalMatch += calcMatch(psl);
 ss->totalRepMatch += psl->repMatch;
 ss->alnCnt++;
 }
 
 static void sumStatsSum(struct sumStats *ss, struct sumStats *ss2)
 /* sum a sumStats object into this object */
 {
 if (ss->alnCnt == 0)
     {
     ss->minQSize = ss2->maxQSize;
-    ss->minIdent = ss2->maxIndent;
+    ss->minIdent = ss2->maxIdent;
     ss->minQCover = ss2->maxQCover;
     ss->minTCover = ss2->maxTCover;
     ss->minRepMatch = ss2->maxRepMatch;
     }
 else if (ss2->alnCnt > 0)
     {
     ss->minQSize = min(ss->minQSize, ss2->minQSize);
     ss->maxQSize = max(ss->maxQSize, ss2->maxQSize);
     ss->minIdent = min(ss->minIdent, ss2->minIdent);
-    ss->maxIndent = max(ss->maxIndent, ss2->maxIndent);
+    ss->maxIdent = max(ss->maxIdent, ss2->maxIdent);
     ss->minQCover = min(ss->minQCover, ss2->minQCover);
     ss->maxQCover = max(ss->maxQCover, ss2->maxQCover);
     ss->minTCover = min(ss->minTCover, ss2->minTCover);
     ss->maxTCover = max(ss->maxTCover, ss2->maxTCover);
     ss->minRepMatch = min(ss->minRepMatch, ss2->minRepMatch);
     ss->maxRepMatch = max(ss->maxRepMatch, ss2->maxRepMatch);
     }
 ss->queryCnt += ss2->queryCnt;
 ss->totalQSize += ss2->totalQSize;
 ss->totalAlign += ss2->totalAlign;
 ss->totalMatch += ss2->totalMatch;
 ss->totalRepMatch += ss2->totalRepMatch;
 ss->alnCnt += ss2->alnCnt;
 }
 
@@ -342,41 +342,41 @@
     fprintf(fh, alnStatsFmt, psl->qName, psl->qSize, psl->tName, psl->tStart, psl->tEnd,
             calcIdent(psl), calcQCover(psl), calcRepMatch(psl), calcTCover(psl));
     if (querySizesTbl != NULL)
         querySizeCntGet(querySizesTbl, psl->qName, psl->qSize)->alnCnt++;
     pslFree(&psl);
     }
 lineFileClose(&pslLf);
 
 if (querySizesTbl != NULL)
     alignStatsOutputUnaligned(fh, querySizesTbl);
 
 carefulClose(&fh);
 }
 
 /* header for query statistics */
-static char *queryStatsHdr = "#qName\t" "qSize\t" "alnCnt\t" "minIdent\t" "maxIndent\t" "meanIdent\t"
+static char *queryStatsHdr = "#qName\t" "qSize\t" "alnCnt\t" "minIdent\t" "maxIdent\t" "meanIdent\t"
 "minQCover\t" "maxQCover\t" "meanQCover\t" "minRepMatch\t" "maxRepMatch\t" "meanRepMatch\t"
 "minTCover\t" "maxTCover\n";
 
 static void queryStatsOutput(FILE *fh, struct sumStats *qs)
 /* output statistic on a query */
 {
 fprintf(fh, "%s\t%d\t%d\t" "%0.4f\t%0.4f\t%0.4f\t"
         "%0.4f\t%0.4f\t%0.4f\t"  "%0.4f\t%0.4f\t%0.4f\t" "%0.4f\t%0.4f\n",
         qs->qName, qs->minQSize, qs->alnCnt,
-        qs->minIdent, qs->maxIndent, calcMeanIdent(qs),
+        qs->minIdent, qs->maxIdent, calcMeanIdent(qs),
         qs->minQCover, qs->maxQCover, calcMeanQCover(qs),
         qs->minRepMatch, qs->maxRepMatch, calcMeanRepMatch(qs),
         qs->minTCover, qs->maxTCover);
 }
 
 static void outputQueryStats(struct hash *queryStatsTbl, char *statsFile)
 /* output statistics on queries */
 {
 struct hashCookie cookie = hashFirst(queryStatsTbl);
 FILE *fh = mustOpen(statsFile, "w");
 struct hashEl *hel;
 
 fputs(queryStatsHdr, fh);
 while ((hel = hashNext(&cookie)) != NULL)
     queryStatsOutput(fh, hel->val);
@@ -401,45 +401,45 @@
     pslFree(&psl);
     }
 lineFileClose(&pslLf);
 return queryStatsTbl;
 }
 
 static void pslQueryStats(char *pslFile, char *statsFile, char *querySizeFile)
 /* collect and output per-query stats */
 {
 struct hash *queryStatsTbl = collectQueryStats(pslFile, querySizeFile);
 outputQueryStats(queryStatsTbl, statsFile);
 }
 
 /* header for overall statistics */
 static char *overallStatsHdr = "#queryCnt\t" "minQSize\t" "maxQSize\t" "meanQSize\t"
-"alnCnt\t" "minIdent\t" "maxIndent\t" "meanIdent\t"
+"alnCnt\t" "minIdent\t" "maxIdent\t" "meanIdent\t"
 "minQCover\t" "maxQCover\t" "meanQCover\t" "minRepMatch\t" "maxRepMatch\t" "meanRepMatch\t"
 "minTCover\t" "maxTCover\t" "aligned\t" "aligned1\t" "alignedN\t" "totalAlignedSize\n";
 
 static void outputOverallStats(char *statsFile, struct sumStats *os, int aligned1, int alignedN)
 /* output overall statistic */
 {
 FILE *fh = mustOpen(statsFile, "w");
 fputs(overallStatsHdr, fh);
 fprintf(fh, "%d\t%d\t%d\t%d\t%d\t" "%0.4f\t%0.4f\t%0.4f\t"
         "%0.4f\t%0.4f\t%0.4f\t"  "%0.4f\t%0.4f\t%0.4f\t" "%0.4f\t%0.4f\t"
         "%d\t%d\t%d\t%lld\n",
         os->queryCnt, os->minQSize, os->maxQSize, calcMeanQSize(os),
         os->alnCnt,
-        os->minIdent, os->maxIndent, calcMeanIdent(os),
+        os->minIdent, os->maxIdent, calcMeanIdent(os),
         os->minQCover, os->maxQCover, calcMeanQCover(os),
         os->minRepMatch, os->maxRepMatch, calcMeanRepMatch(os),
         os->minTCover, os->maxTCover, aligned1+alignedN, aligned1, alignedN,
         os->totalAlign);
 carefulClose(&fh);
 }
 
 static struct sumStats sumOverAllStats(struct hash *queryStatsTbl, int *aligned1, int *alignedN)
 /* sum statistics over all queries */
 {
 struct sumStats os;
 ZeroVar(&os);
 struct hashEl *hel;
 struct hashCookie cookie = hashFirst(queryStatsTbl);
 while ((hel = hashNext(&cookie)) != NULL)