a8b15f82bbcff0d7953bae0da7df49363939f85a
lrnassar
  Wed Aug 5 16:59:54 2026 -0700
Add tests for every maf sequence-name form, and describe the splitting in the usage messages. refs #37928

The existing testDot and testPipe inputs are identical copies of each other and both use
pipe-form query names, so the dot path was never exercised in either tool. That is how
the break in ae63ce5 shipped even though a test suite existed, and why the suite could
not have caught the mafToBigMafSummary divergence either.

New inputs in both tests directories cover an ordinary db.chrom, a species name with a
dotted chrom, both GenArk accession forms, a GenArk accession with no chrom after the
version, a pipe with a dotted chrom, a name with no separator, a reference assembly
whose own name contains a dot, and a name where the reference db is a strict prefix of
another assembly. Every rule in the splitter is now load-bearing: breaking any one of
them fails a target.

Also adds mafToBigMafSummary to TEST_DIRS in hg/utils, since nothing above the directory
was running its suite, and adds a short note to both usage messages describing how a
sequence name is split into assembly and sequence.

diff --git src/hg/makeDb/hgLoadMaf/hgLoadMafSummary.c src/hg/makeDb/hgLoadMaf/hgLoadMafSummary.c
index 5630e7398a3..8ad8b4b1420 100644
--- src/hg/makeDb/hgLoadMaf/hgLoadMafSummary.c
+++ src/hg/makeDb/hgLoadMaf/hgLoadMafSummary.c
@@ -28,30 +28,34 @@
 boolean test = FALSE;
 int mergeGap = 500;
 int minSize = 10000;
 int maxSize = 50000;
 int minSeqSize = 1000000;
 char *database = NULL;
 long summaryCount = 0;
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
 "hgLoadMafSummary - Load a summary table of pairs in a maf into a database\n"
   "usage:\n"
   "   hgLoadMafSummary database table file.maf\n"
+  "Sequence names are split into assembly and sequence at a pipe if one is present,\n"
+  "otherwise right after the reference assembly you supply if the name starts with it,\n"
+  "otherwise at the first dot, except for GCA_/GCF_ accessions where the assembly\n"
+  "keeps its version (GCF_000001405.40.NC_000001.11 -> GCF_000001405.40).\n"
   "options:\n"
     "   -mergeGap=N   max size of gap to merge regions (default %d)\n"
     "   -minSize=N         merge blocks smaller than N (default %d)\n"
     "   -maxSize=N         break up blocks larger than N (default %d)\n"
     "   -minSeqSize=N skip alignments when reference sequence is less than N\n"
     "                 (default %d -- match with hgTracks min window size for\n"
     "                 using summary table)\n"
     "   -test         suppress loading the database. Just create .tab file(s)\n"
     "                     in current dir.\n",
 mergeGap, minSize, maxSize, minSeqSize
   );
 }
 
 double scorePairwise(struct mafAli *maf)
 /* generate score from 0.0 to 1.0 for an alignment pair */