2ce0876f4171ec948fb7705a9f42047e0f059eea
hiram
  Wed Aug 16 09:24:11 2023 -0700
get the ebiGene and ensGene tests correct and protect against missing liftOver file in a blat directory refs #31844

diff --git src/hg/utils/automation/asmHubTrackDb.sh src/hg/utils/automation/asmHubTrackDb.sh
index 53c3397..da9206a 100755
--- src/hg/utils/automation/asmHubTrackDb.sh
+++ src/hg/utils/automation/asmHubTrackDb.sh
@@ -851,87 +851,92 @@
 
 ###################################################################
 # Ensembl/ebiGene for HPRC project
 if [ -d ${buildDir}/trackData/ebiGene ]; then
  export ebiGeneBb=`ls ${buildDir}/trackData/ebiGene/*.bb 2> /dev/null || true | head -1`
  if [ -s "${ebiGeneBb}" ]; then
     export ebiGeneLink=`echo $ebiGeneBb | sed -e 's#.*trackData#../trackData#;'`
     rm -f ${buildDir}/bbi/${asmId}.ebiGene.bb
     ln -s $ebiGeneLink ${buildDir}/bbi/${asmId}.ebiGene.bb
     rm -f ${buildDir}/ixIxx/${asmId}.ebiGene.ix
     rm -f ${buildDir}/ixIxx/${asmId}.ebiGene.ixx
     export ixLink=`echo $ebiGeneBb | sed -e 's#.*trackData#../trackData#; s#.bb#.ix#'`
     export ixxLink=`echo $ebiGeneBb | sed -e 's#.*trackData#../trackData#; s#.bb#.ixx#'`
     # optional ix/ixx files, this string used in the trackDb stanza below
     export searchTrix=""
-    if [ -s "${buildDir}/ixIxx/${asmId}.ebiGene.ix" ]; then
+    export ebiGeneIx=`ls ${buildDir}/trackData/ebiGene/*.ix 2> /dev/null || true | head -1`
+    if [ -s "${ebiGeneIx}" ]; then
       ln -s $ixLink ${buildDir}/ixIxx/${asmId}.ebiGene.ix
       ln -s $ixxLink ${buildDir}/ixIxx/${asmId}.ebiGene.ixx
       searchTrix="
-ixIxx/${asmId}.ebiGene.ix"
+searchTrix ixIxx/${asmId}.ebiGene.ix"
     fi
     export ebiVersion="2022_08"
 
     if [ -s ${buildDir}/trackData/ebiGene/version.txt ]; then
       ebiVersion=`cat "${buildDir}/trackData/ebiGene/version.txt"`
     fi
 
     printf "track ebiGene
 shortLabel Ensembl %s
 longLabel Ensembl genes version %s
 group genes
 visibility pack
 color 150,0,0
 itemRgb on
 type bigGenePred
 bigDataUrl bbi/%s.ebiGene.bb%s
 searchIndex name,name2
 labelFields name,name2
 defaultLabelFields name2
 labelSeperator \" \"
-html html/%s.ebiGene\n\n" "${ebiVersion}" "${ebiVersion}" "${asmId}" "${searchTrix}" "${asmId}" "${asmId}"
+html html/%s.ebiGene\n\n" "${ebiVersion}" "${ebiVersion}" "${asmId}" "${searchTrix}" "${asmId}"
 
 $scriptDir/asmHubEbiGene.pl $asmId $buildDir/html/$asmId.names.tab $buildDir/bbi/$asmId > $buildDir/html/$asmId.ebiGene.html "${ebiVersion}"
  fi
 
 fi
 
 ###################################################################
 # hubLinks is for mouseStrains specific hub only
 export hubLinks="/hive/data/genomes/asmHubs/hubLinks"
 if [ -s ${hubLinks}/${asmId}/rnaSeqData/$asmId.trackDb.txt ]; then
   printf "include rnaSeqData/%s.trackDb.txt\n\n" "${asmId}"
 fi
 ##  for mouse strain hubs only
 ## turned off 2022-11-02 until these can be correctly translated
 ## to GenArk naming schemes
 ### if [ -s "${buildDir}/$asmId.bigMaf.trackDb.txt" ]; then
 ###   printf "include %s.bigMaf.trackDb.txt\n\n" "${asmId}"
 ### fi
 
 ###################################################################
 # check for blat sameSpecies liftOver, then link to lift over chain file
 export lo=`ls -d ${buildDir}/trackData/blat.* 2> /dev/null | wc -l`
 
 if [ "${lo}" -gt 0 ]; then
   mkdir -p ${buildDir}/liftOver
   for loS in `ls -d ${buildDir}/trackData/blat.* 2> /dev/null`
   do
      blatDir=`basename "${loS}"`
-     overChain=`ls ${loS}/*.over.chain.gz | awk -F'/' "{print \\$NF}"`
+     overChain=`(ls ${loS}/*.over.chain.gz || true) | awk -F'/' "{print \\$NF}"`
+     if [ "x${overChain}y" != "xy" ]; then
        rm -f ${buildDir}/liftOver/${overChain}
+     fi
+     if [ -s "${buildDir}/trackData/${blatDir}/${overChain}" ]; then
        ln -s ../trackData/${blatDir}/${overChain} ${buildDir}/liftOver
+     fi
   done
 fi
 
 ###################################################################
 # check for lastz/chain/net available
 
 export lz=`ls -d ${buildDir}/trackData/lastz.* 2> /dev/null | wc -l`
 
 if [ "${lz}" -gt 0 ]; then
   if [ "${lz}" -eq 1 ]; then
 printf "single chainNet\n" 1>&2
     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
     $scriptDir/asmHubChainNetTrackDb.sh $asmId $buildDir