14a7e9de4b1e9c2cc6fd6c1b4912c147afd05064
braney
  Fri Mar 5 10:56:27 2021 -0800
fix up usage message to make it clearer that bigBeds are allowed and
that the tool does a bitwise AND

diff --git src/hg/featureBits/featureBits.c src/hg/featureBits/featureBits.c
index abd1e84..a6a260a 100644
--- src/hg/featureBits/featureBits.c
+++ src/hg/featureBits/featureBits.c
@@ -64,41 +64,41 @@
 boolean countBlocks = FALSE;	/* Count blocks in bed12 rather than extent. */
 
 /* to process chroms without constantly looking up in chromInfo, create
  * this list of them from the chromInfo once.
  */
 static struct chromInfo *chromInfoList = NULL;
 static struct hash *gapHash = NULL;
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "featureBits - Correlate tables via bitmap projections. \n"
   "usage:\n"
   "   featureBits database table(s)\n"
-  "This will return the number of bits in all the tables anded together\n"
+  "This will return the number of bits in all the tables bitwise ANDed together\n"
   "Pipe warning:  output goes to stderr.\n"
   "Options:\n"
   "   -bed=output.bed   Put intersection into bed format. Can use stdout.\n"
   "   -fa=output.fa     Put sequence in intersection into .fa file\n"
   "   -faMerge          For fa output merge overlapping features.\n"
   "   -minSize=N        Minimum size to output (default 1)\n"
   "   -chrom=chrN       Restrict to one chromosome\n"
   "   -chromSize=sizefile       Read chrom sizes from file instead of database. \n"
   "                             (chromInfo three column format)\n"
-  "   -or               Or tables together instead of anding them\n"
+  "   -or               Bitwise OR tables together instead of ANDing them.\n"
   "   -not              Output negation of resulting bit set.\n"
   "   -countGaps        Count gaps in denominator\n"
   "   -countBlocks      Count blocks in bed12 files rather than entire extent.\n"
   "   -noRandom         Don't include _random (or Un) chromosomes\n"
   "   -noHap            Don't include _hap|_alt chromosomes\n"
   "   -primaryChroms    Primary assembly (chroms without '_' in name)\n"
   "   -dots=N           Output dot every N chroms (scaffolds) processed\n"
   "   -minFeatureSize=n Don't include bits of the track that are smaller than\n"
   "                     minFeatureSize, useful for differentiating between\n"
   "                     alignment gaps and introns.\n"
   "   -bin=output.bin   Put bin counts in output file\n"
   "   -binSize=N        Bin size for generating counts in bin file (default 500000)\n"
   "   -binOverlap=N     Bin overlap for generating counts in bin file (default 250000)\n"
   "   -bedRegionIn=input.bed    Read in a bed file for bin counts in specific regions \n"
   "                     and write to bedRegionsOut\n"
@@ -117,30 +117,32 @@
   "    :exon:N          Break into exons and add N to each end of each exon\n"
   "    :cds             Break into coding exons\n"
   "    :intron:N        Break into introns, remove N from each end\n"
   "    :utr5, :utr3     Break into 5' or 3' UTRs\n" 
   "    :upstream:N      Consider the region of N bases before region\n"
   "    :end:N           Consider the region of N bases after region\n"
   "    :score:N         Consider records with score >= N \n"
   "    :upstreamAll:N   Like upstream, but doesn't filter out genes that \n"
   "                     have txStart==cdsStart or txEnd==cdsEnd\n"
   "    :endAll:N        Like end, but doesn't filter out genes that \n"
   "                     have txStart==cdsStart or txEnd==cdsEnd\n"
   "The tables can be bed, psl, or chain files, or a directory full of\n"
   "such files as well as actual database tables.  To count the bits\n"
   "used in dir/chrN_something*.bed you'd do:\n"
   "   featureBits database dir/_something.bed\n"
+  "File types supported are BED, bigBed, PSL, and chain.  The suffix of the file \n"
+  "is used to determine the type and MUST be .bed, .bb, .psl, or .chain respectively.\n"
   "NB: by default, featureBits omits gap regions from its calculation of the total\n"
   "number of bases.  This requires connecting to a database server using credentials\n"
   "from a .hg.conf file (or similar).  If such a connection is not available, you will\n"
   "need to specify -countGaps (which skips the database connection) in addition to\n"
   "providing all tables as files or directories.\n"
   );
 }
 
 static struct chromInfo *fbCreateChromInfoList(char *name, char *database)
 /* Load up all chromosome infos. */
 {
 struct sqlConnection *conn = sqlConnect(database);
 struct sqlResult *sr = NULL;
 char **row;
 int loaded=0;