67731d2ba246fec0ba68843228e1fe7d18afd64c
hiram
  Tue Sep 1 13:35:40 2026 -0700
enable the gcOnFly track for the GenArk hubs refs #35958

diff --git src/hg/utils/automation/asmHubGc5Percent.pl src/hg/utils/automation/asmHubGc5Percent.pl
index 8a088c85ed1..451b7d35b27 100755
--- src/hg/utils/automation/asmHubGc5Percent.pl
+++ src/hg/utils/automation/asmHubGc5Percent.pl
@@ -8,48 +8,67 @@
 
 my $argc = scalar(@ARGV);
 
 if ($argc != 3) {
   printf STDERR "usage: asmHubGc5Percent.pl asmId asmId.names.tab buildDir\n";
   printf STDERR "where asmId is the assembly identifier,\n";
   printf STDERR "and   asmId.names.tab is naming file for this assembly,\n";
   printf STDERR "and   buildDir is the directory with bbi/asmId.gc5Base.bw.\n";
   exit 255;
 }
 
 my $asmId = shift;
 my $namesFile = shift;
 my $buildDir = shift;
 my $gc5Bw = "$buildDir/bbi/$asmId.gc5Base.bw";
+my $gcOnFly = 0;
+if ( ! -s $gc5Bw ) {
+  $gc5Bw = "$buildDir/bbi/$asmId.gcOnFly.bw";
+  $gcOnFly = 1;
+}
 
 if ( ! -s $gc5Bw ) {
-  printf STDERR "ERROR: can not find gc5Base.bw file:\n\t'%s'\n", $gc5Bw;
+  printf STDERR "ERROR: can not find gc5Base.bw or gcOnFly.bw file:\n\t'%s'\n", $gc5Bw;
   exit 255;
 }
 
+my @accParts = split('_', $asmId);
+my $accession = "$accParts[0]_$accParts[1]";
 my $em = "<em>";
 my $noEm = "</em>";
 my $assemblyDate = `grep -v "^#" $namesFile | cut -f9`;
 chomp $assemblyDate;
 my $ncbiAssemblyId = `grep -v "^#" $namesFile | cut -f10`;
 chomp $ncbiAssemblyId;
 my $organism = `grep -v "^#" $namesFile | cut -f5`;
 chomp $organism;
 my $averageGC = `/cluster/bin/x86_64/bigWigInfo $gc5Bw | egrep "mean:" | sed -e 's/mean: //;'`;
 chomp $averageGC;
 $averageGC = sprintf("%.2f", $averageGC);
 
+if ( $gcOnFly ) {
+  my $asmIdPath = &AsmHub::asmIdToPath($asmId);
+  my $twoBitUrl = "https://hgdownload.soe.ucsc.edu/hubs/$asmIdPath/$accession/$accession.2bit";
+  printf "<hr><h4>Data Access</h4>\n";
+  printf "<p>This track is generated <em>on-the-fly</em> by the browser as needed.\n";
+  printf "There is no existing data file for this track.  To obtain the data for this track\n";
+  printf "use the following <a href='https://hgdownload.gi.ucsc.edu/downloads.html#utilities_downloads'\n";
+  printf " target=_blank>kent command line</a> program <b>hgGcPercent</b>:</p>\n";
+
+  printf "<code>hgGcPercent -wigOut -doGaps -file=stdout -win=5 -verbose=0 test \\<br>&nbsp;&nbsp;&nbsp;%s | gzip -c > %s.varStep.gz</code>\n", $twoBitUrl, $accession;
+}
+
 print <<_EOF_
 <h2>Description</h2>
 <p>
 The GC percent track shows the percentage of G (guanine) and C (cytosine) bases
 in 5-base windows on
 the $assemblyDate $em${organism}$noEm/$asmId/$ncbiAssemblyId genome assembly.
 High GC content is typically associated with gene-rich areas.  The average
 overall GC percent for the entire assembly is % $averageGC.
 </p>
 
 <p>
 This track may be configured in a variety of ways to highlight different
 aspects of the displayed information. Click the
 &quot;Graph configuration help&quot; link for an explanation of the
 configuration options.