57a2bac4726971e593dc92902803e55667782882
hiram
  Mon May 22 13:34:49 2023 -0700
adding Ensembl relations in chromAlias and new extended ensGene track to host Rapid Release ensGene refs #31332

diff --git src/hg/utils/automation/asmHubTrackDb.sh src/hg/utils/automation/asmHubTrackDb.sh
index e2361f2..53c3397 100755
--- src/hg/utils/automation/asmHubTrackDb.sh
+++ src/hg/utils/automation/asmHubTrackDb.sh
@@ -780,101 +780,127 @@
 type bigGenePred
 bigDataUrl bbi/%s.xenoRefGene.bb
 url https://www.ncbi.nlm.nih.gov/nuccore/\$\$
 urlLabel NCBI Nucleotide database:
 labelFields name,geneName,geneName2
 defaultLabelFields geneName
 searchIndex name
 searchTrix ixIxx/%s.xenoRefGene.ix
 html html/%s.xenoRefGene\n\n" "${asmId}" "${asmId}" "${asmId}"
 $scriptDir/asmHubXenoRefGene.pl $asmId $buildDir/html/$asmId.names.tab $buildDir/trackData > $buildDir/html/$asmId.xenoRefGene.html
 fi
 
 ###################################################################
 # Ensembl genes
 if [ -s ${buildDir}/trackData/ensGene/bbi/${asmId}.ensGene.bb ]; then
-ls -og ${buildDir}/trackData/ensGene/bbi/${asmId}.ensGene.bb 1>&2
-printf "# link: ../trackData/ensGene/bbi/${asmId}.ensGene.bb ${buildDir}/bbi/${asmId}.ensGene.bb\n" 1>&2
 rm -f ${buildDir}/bbi/${asmId}.ensGene.bb
 ln -s ../trackData/ensGene/bbi/${asmId}.ensGene.bb ${buildDir}/bbi/${asmId}.ensGene.bb
 rm -f ${buildDir}/ixIxx/${asmId}.ensGene.ix
 rm -f ${buildDir}/ixIxx/${asmId}.ensGene.ixx
+rm -f ${buildDir}/genes/${asmId}.ensGene.*.gtf.gz
+export gtfGz=`ls ${buildDir}/trackData/ensGene/${asmId}.ensGene.*.gtf.gz`
+if [ -s ${gtfGz} ]; then
+    mkdir -p ${buildDir}/genes
+    bName=`basename "${gtfGz}"`
+   ln -s ../trackData/ensGene/${bName} ${buildDir}/genes/${bName}
+fi
+
+### if we had more than one index, but no, we are using ixIxx files
+# export indexList=`bigBedInfo -extraIndex ${buildDir}/bbi/${asmId}.ensGene.bb | grep -w field | grep -w with | awk '{print $1}' | xargs echo | tr ' ' ','`
 
-ln -s ../trackData/ensGene/process/${asmId}.ensGene.ix $buildDir/ixIxx/${asmId}.ensGene.ix
-ln -s ../trackData/ensGene/process/${asmId}.ensGene.ixx $buildDir/ixIxx/${asmId}.ensGene.ixx
+export indexList="name"
+
+# optional ix/ixx files, this string used in the trackDb stanza below
+export searchTrix=""
+if [ -s "${buildDir}/trackData/ensGene/${asmId}.ensGene.ix" ]; then
+  ln -s ../trackData/ensGene/${asmId}.ensGene.ix $buildDir/ixIxx/${asmId}.ensGene.ix
+  ln -s ../trackData/ensGene/${asmId}.ensGene.ixx $buildDir/ixIxx/${asmId}.ensGene.ixx
+      searchTrix="
+searchTrix ixIxx/${asmId}.ensGene.ix"
+    fi
 
 export ensVersion="v86"
 
 if [ -s ${buildDir}/trackData/ensGene/version.txt ]; then
   ensVersion=`cat "${buildDir}/trackData/ensGene/version.txt"`
 fi
 
+
 printf "track ensGene
 shortLabel Ensembl genes
 longLabel Ensembl genes %s
 group genes
 priority 40
 visibility pack
 color 150,0,0
-type bigBed 12 .
-bigDataUrl bbi/%s.ensGene.bb
-searchIndex name
-searchTrix ixIxx/%s.ensGene.ix
-html html/%s.ensGene\n\n" "${ensVersion}" "${asmId}" "${asmId}" "${asmId}"
+itemRgb on
+type bigGenePred
+bigDataUrl bbi/%s.ensGene.bb%s
+searchIndex %s
+labelFields name,name2
+defaultLabelFields name2
+baseColorUseCds given
+baseColorDefault genomicCodons
+labelSeperator \" \"
+html html/%s.ensGene\n\n" "${ensVersion}" "${asmId}" "${searchTrix}" "${indexList}" "${asmId}"
 
 $scriptDir/asmHubEnsGene.pl $asmId $buildDir/html/$asmId.names.tab $buildDir/bbi/$asmId > $buildDir/html/$asmId.ensGene.html "${ensVersion}"
 
 else
   printf "# no ensGene found\n" 1>&2
 fi
 
 ###################################################################
 # 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#;'`
-    printf "# link: $ebiGeneLink ${buildDir}/bbi/${asmId}.ebiGene.bb\n" 1>&2
     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
       ln -s $ixLink ${buildDir}/ixIxx/${asmId}.ebiGene.ix
       ln -s $ixxLink ${buildDir}/ixIxx/${asmId}.ebiGene.ixx
+      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
-searchTrix ixIxx/%s.ebiGene.ix
+bigDataUrl bbi/%s.ebiGene.bb%s
 searchIndex name,name2
 labelFields name,name2
 defaultLabelFields name2
 labelSeperator \" \"
-html html/%s.ebiGene\n\n" "${ebiVersion}" "${ebiVersion}" "${asmId}" "${asmId}" "${asmId}"
+html html/%s.ebiGene\n\n" "${ebiVersion}" "${ebiVersion}" "${asmId}" "${searchTrix}" "${asmId}" "${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