24c443b10b97e5b1e81df9ee5cb393131e7b873a
hiram
  Wed May 5 11:40:43 2021 -0700
better handling of assembly hub chain net tracks refs #26988

diff --git src/hg/utils/automation/asmHubTrackDb.sh src/hg/utils/automation/asmHubTrackDb.sh
index 7e81501..a770611 100755
--- src/hg/utils/automation/asmHubTrackDb.sh
+++ src/hg/utils/automation/asmHubTrackDb.sh
@@ -1,30 +1,35 @@
 #!/bin/bash
 
-set -beEux -o pipefail
+set -beEu -o pipefail
 
 if [ $# -ne 2 ]; then
   printf "usage: trackDb.sh <asmId> <pathTo/assembly hub build directory> > trackDb.txt\n" 1>&2
   printf "expecting to find *.ucsc.2bit and bbi/ files at given path\n" 1>&2
   printf "the ncbi|ucsc selects the naming scheme\n" 1>&2
   exit 255
 fi
 
 export asmId=$1
 export buildDir=$2
 export hubLinks="/hive/data/genomes/asmHubs/hubLinks"
 export accessionId=`echo "$asmId" | awk -F"_" '{printf "%s_%s", $1, $2}'`
+export gcX=`echo $asmId | cut -c1-3`
+export d0=`echo $asmId | cut -c5-7`
+export d1=`echo $asmId | cut -c8-10`
+export d2=`echo $asmId | cut -c11-13`
+export hubPath="$gcX/$d0/$d1/$d2/$asmId"
 
 export scriptDir="$HOME/kent/src/hg/utils/automation"
 
 mkdir -p $buildDir/bbi
 mkdir -p $buildDir/ixIxx
 
 # may or may not have a searchTrix for assembly, assume none
 export searchTrix=""
 # check to see if there is a searchTrix assembly index
 if [ -s ${buildDir}/trackData/assemblyGap/${asmId}.assembly.ix ]; then
   rm -f $buildDir/ixIxx/${asmId}.assembly.ix*
   ln -s ../trackData/assemblyGap/${asmId}.assembly.ix $buildDir/ixIxx
   ln -s ../trackData/assemblyGap/${asmId}.assembly.ixx $buildDir/ixIxx
   searchTrix="
 searchTrix ixIxx/${asmId}.assembly.ix"
@@ -698,16 +703,30 @@
 else
   printf "# no ensGene found\n" 1>&2
 fi
 
 if [ -s ${hubLinks}/${asmId}/rnaSeqData/$asmId.trackDb.txt ]; then
   printf "include rnaSeqData/%s.trackDb.txt\n\n" "${asmId}"
 fi
 
 if [ -s "${buildDir}/$asmId.userTrackDb.txt" ]; then
   printf "include %s.userTrackDb.txt\n\n" "${accessionId}"
 fi
 
 ###################################################################
 # check for lastz/chain/net available
 
-# export lz=`ls -d ${buildDir}/trackData/lastz.* 2> /dev/null | wc -l`
+export lz=`ls -d ${buildDir}/trackData/lastz.* 2> /dev/null | wc -l`
+
+if [ "${lz}" -gt 0 ]; then
+  if [ "${lz}" -eq 1 ]; then
+    export lastzDir=`ls -d ${buildDir}/trackData/lastz.*`
+    export oOrganism=`basename "${lastzDir}" | sed -e 's/lastz.//;'`
+    # single chainNet here, no need for a composite track, does the symLinks too
+    ~/kent/src/hg/utils/automation/asmHubChainNetTrackDb.sh $asmId $buildDir
+    $scriptDir/asmHubChainNet.pl $asmId $buildDir/html/$asmId.names.tab $oOrganism $hubPath > $buildDir/html/$asmId.chainNet.html
+  else
+    # multiple chainNets here, create composite track, does the symLinks too
+    ~/kent/src/hg/utils/automation/asmHubChainNetTrackDb.pl $buildDir
+  fi
+fi
+