4b6cb56f6b3515084b0e04b184e2e27d99114cba
hiram
  Fri Jun 12 10:35:43 2020 -0700
beginning panPan3 build refs #25720

diff --git src/hg/makeDb/doc/panPan3/initialBuild.txt src/hg/makeDb/doc/panPan3/initialBuild.txt
new file mode 100644
index 0000000..1feb8de
--- /dev/null
+++ src/hg/makeDb/doc/panPan3/initialBuild.txt
@@ -0,0 +1,1054 @@
+# for emacs: -*- mode: sh; -*-
+
+# This file describes browser build for the panPan3
+
+#  Can use existing photograph (otherwise find one before starting here)
+
+#########################################################################
+#  Initial steps, reuse existing photograph (DONE - 2020-06-12 - Hiram)
+# Might be a different individual, requests made
+
+# To start this initialBuild.txt document, from a previous assembly document:
+
+mkdir ~/kent/src/hg/makeDb/doc/panPan3
+cd ~/kent/src/hg/makeDb/doc/panPan3
+
+sed -e 's/gorGor6/panPan3/g; s/GorGor6/PanPan3/g; s/DONE/TBD/g;' \
+  ../gorGor6/initialBuild.txt > initialBuild.txt
+
+mkdir -p /hive/data/genomes/panPan3/refseq
+cd /hive/data/genomes/panPan3
+
+#  Can use existing photograph
+cp -p ../panPan2/photoReference.txt ./
+cat photoReference.txt
+photoCreditURL  http://a-z-animals.com/animals/bonobo/pictures/2955/
+photoCreditName Photo courtesy of Kabir Bakie
+
+## download from NCBI
+cd /hive/data/genomes/panPan3/refseq
+
+time rsync -L -a -P --stats \
+rsync://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/013/052/645/GCF_013052645.1_Mhudiblu_PPA_v0/ ./
+
+# sent 3,203 bytes  received 6,058,365,683 bytes  56,886,092.83 bytes/sec
+# total size is 6,056,874,807  speedup is 1.00
+
+# real    1m45.870s
+
+# this information is from the top of 
+#    panPan3/refseq/*_assembly_report.txt
+#    (aka: panPan3/refseq/GCF_013052645.1_Mhudiblu_PPA_v0_assembly_report.txt )
+
+# Assembly name:  Mhudiblu_PPA_v0
+# Organism name:  Pan paniscus (pygmy chimpanzee)
+# Isolate:  Mhudiblu (Carbone #601152)
+# Sex:  female
+# Taxid:          9597
+# BioSample:      SAMN11123633
+# BioProject:     PRJNA526933
+# Submitter:      University of Washington
+# Date:           2020-05-15
+# Assembly type:  haploid
+# Release type:   major
+# Assembly level: Chromosome
+# Genome representation: full
+# WGS project:    SSBP01
+# Assembly method: FALCON v. (git hash: 91e700c4) Nov 2015
+# Expected final version: no
+# Genome coverage: 85.0x
+# Sequencing technology: PacBio RSII; Illumina
+# GenBank assembly accession: GCA_013052645.1
+# RefSeq assembly accession: GCF_013052645.1
+# RefSeq assembly and GenBank assemblies identical: no
+#
+## Assembly-Units:
+## GenBank Unit Accession       RefSeq Unit Accession   Assembly-Unit name
+## GCA_013052655.1      GCF_013052655.1 Primary Assembly
+##      GCF_000029195.1 non-nuclear
+
+# check assembly size for later reference:
+
+faSize G*0_genomic.fna.gz
+
+# 3051901337 bases (36551040 N's 3015350297 real 1802830734 upper
+#	1212519563 lower) in 4293 sequences in 1 files
+# Total size: mean 710901.8 sd 9447605.7 min 209 (NW_023258064.1)
+#	max 224621958 (NC_048239.1) median 32647
+# %39.73 masked total, %40.21 masked real
+
+#############################################################################
+# establish config.ra file (DONE - Hiram - 2020-06-12)
+    cd /hive/data/genomes/panPan3
+    ~/kent/src/hg/utils/automation/prepConfig.pl panPan3 mammal bonobo \
+       refseq/*_assembly_report.txt > panPan3.config.ra
+
+    # verify it is sane:
+    diff panPan3.config.ra ../panPan2/panPan2.config.ra
+
+    # fixup commonName, from:
+commonName Pygmy chimpanzee
+to
+commonName Bonobo 
+
+genomeCladePriority 35
+to
+genomeCladePriority 15
+
+orderKey 17442
+to
+orderKey 2623
+
+    # verify it really does look sane
+    cat panPan3.config.ra
+# config parameters for makeGenomeDb.pl:
+db panPan3
+clade mammal
+genomeCladePriority 15
+scientificName Pan paniscus
+commonName Bonobo
+assemblyDate May 2020
+assemblyLabel University of Washington
+assemblyShortLabel Mhudiblu_PPA_v0
+orderKey 2623
+# mitochondrial sequence included in refseq release
+# mitoAcc NC_001644.1
+mitoAcc none
+fastaFiles /hive/data/genomes/panPan3/ucsc/*.fa.gz
+agpFiles /hive/data/genomes/panPan3/ucsc/*.agp
+# qualFiles none
+dbDbSpeciesDir bonobo
+photoCreditURL  http://a-z-animals.com/animals/bonobo/pictures/2955/
+photoCreditName Photo courtesy of Kabir Bakie
+ncbiGenomeId 10729
+ncbiAssemblyId 7133581
+ncbiAssemblyName Mhudiblu_PPA_v0
+ncbiBioProject 526933
+ncbiBioSample SAMN11123633
+genBankAccessionID GCF_013052645.1
+taxId 9597
+
+#############################################################################
+# setup UCSC named files (DONE - 2020-06-12 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/ucsc
+    cd /hive/data/genomes/panPan3/ucsc
+
+    # check for duplicate sequences:
+    time faToTwoBit -noMask ../refseq/G*0_genomic.fna.gz refseq.2bit
+    #  real    0m44.404s
+
+
+    twoBitDup refseq.2bit
+    # no output is a good result, otherwise, would have to eliminate duplicates
+    # the scripts creating the fasta here will be using this refseq.2bit file
+    # remove it later
+
+    time ~/kent/src/hg/utils/automation/ucscCompositeAgp.pl \
+      ../refseq/G*0_genomic.fna.gz \
+	../refseq/*_assembly_structure/Primary_Assembly
+NC_048239.1 chr1
+NC_048240.1 chr2A
+NC_048241.1 chr2B
+NC_048242.1 chr3
+NC_048243.1 chr4
+NC_048244.1 chr5
+NC_048245.1 chr6
+NC_048246.1 chr7
+NC_048247.1 chr8
+NC_048248.1 chr9
+NC_048249.1 chr10
+NC_048250.1 chr11
+NC_048251.1 chr12
+NC_048252.1 chr13
+NC_048253.1 chr14
+NC_048254.1 chr15
+NC_048255.1 chr16
+NC_048256.1 chr17
+NC_048257.1 chr18
+NC_048258.1 chr19
+NC_048259.1 chr20
+NC_048260.1 chr21
+NC_048261.1 chr22
+NC_048262.1 chrX
+
+# real    11m31.473s
+
+    time ~/kent/src/hg/utils/automation/unplacedWithChroms.pl \
+       ../refseq/*_assembly_structure/Primary_Assembly
+    # processed 4268 sequences into chrUn.fa.gz
+    # real    0m50.843s
+
+    # there are *no* unlocalized sequences
+    time ~/kent/src/hg/utils/automation/unlocalizedWithChroms.pl \
+       ../refseq/*_assembly_structure/Primary_Assembly
+
+    # bash syntax here
+    mitoAcc=`grep "^# mitoAcc" ../panPan3.config.ra | awk '{print $NF}'`
+    printf "# mitoAcc %s\n" "$mitoAcc"
+# mitoAcc NC_001644.1
+
+    zcat \
+  ../refseq/*_assembly_structure/non-nuclear/assem*/AGP/chrMT.comp.agp.gz \
+     | grep -v "^#" | sed -e "s/^$mitoAcc/chrM/;" > chrM.agp
+
+    cat chrM.agp
+# chrM    1       16563   1       O       NC_001644.1     1       16563   +
+
+    printf ">chrM\n" > chrM.fa
+    twoBitToFa -noMask refseq.2bit:$mitoAcc stdout | grep -v "^>" >> chrM.fa
+    gzip chrM.fa
+
+    faSize chrM.fa.gz
+# 16563 bases (0 N's 16563 real 16563 upper 0 lower) in 1 sequences in 1 files
+
+    # verify fasta and AGPs agree
+    time faToTwoBit *.fa.gz test.2bit
+    # real    0m55.327s
+
+    cat *.agp | checkAgpAndFa stdin test.2bit 2>&1 | tail -4
+    # All AGP and FASTA entries agree - both files are valid
+
+    # and no sequence lost from orginal:
+    twoBitToFa test.2bit stdout | faSize stdin
+# 3051901337 bases (36551040 N's 3015350297 real 3015350297 upper
+#	0 lower) in 4293 sequences in 1 files
+
+    # same numbers as above (except for upper/lower masking)
+# 3051901337 bases (36551040 N's 3015350297 real 1802830734 upper
+#	1212519563 lower) in 4293 sequences in 1 files
+
+    # no longer need these temporary 2bit files
+    rm test.2bit refseq.2bit
+
+#############################################################################
+#  Initial database build (DONE - 2020-06-12 - Hiram)
+
+    # verify sequence and AGP are OK:
+    cd /hive/data/genomes/panPan3
+    time (makeGenomeDb.pl -workhorse=hgwdev -dbHost=hgwdev -fileServer=hgwdev \
+         -stop=agp panPan3.config.ra) > agp.log 2>&1
+    # real    2m32.140s
+
+    # then finish it off:
+    time (makeGenomeDb.pl -workhorse=hgwdev -dbHost=hgwdev \
+       -fileServer=hgwdev -continue=db panPan3.config.ra) > db.log 2>&1
+XXX - running - Fri Jun 12 10:29:45 PDT 2020
+    # real    17m28.042s
+
+    # check in the trackDb files created in TemporaryTrackDbCheckout/
+    #    and add panPan3 to trackDb/makefile
+
+    # temporary symlink until masked sequence is available
+    cd /hive/data/genomes/panPan3
+    ln -s `pwd`/panPan3.unmasked.2bit /gbdb/panPan3/panPan3.2bit
+
+#############################################################################
+# check gap table vs NCBI gap file (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/gap
+    cd /hive/data/genomes/panPan3/bed/gap
+
+    zgrep -v "^#" ../../refseq/G*_gaps.txt.gz \
+	| awk '{printf "%s\t%d\t%d\t%s_%s\n", $1,$2-1,$3,$5,$6}' \
+	| sort -k1,1 -k2,2n > refseq.gap.bed
+
+    # type survey:
+    cut -f4 *.bed | sort | uniq -c
+    #	220 between_scaffolds_na
+    #	639 within_scaffold_map
+
+    # how much defined by NCBI:
+    awk '{print $3-$2}' *.bed | ave stdin | grep -w total
+    # total 45844299.000000
+
+    # how much in the gap table:
+    hgsql -e 'select * from gap;' panPan3 | awk '{print $4-$3}' \
+	| ave stdin | grep -w total
+    # total 45844299.000000
+
+    # equal amounts, no need to adjust the gap table
+
+##############################################################################
+# cpgIslands on UNMASKED sequence (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/cpgIslandsUnmasked
+    cd /hive/data/genomes/panPan3/bed/cpgIslandsUnmasked
+
+    time (doCpgIslands.pl -dbHost=hgwdev -bigClusterHub=ku -buildDir=`pwd` \
+       -tableName=cpgIslandExtUnmasked \
+          -maskedSeq=/hive/data/genomes/panPan3/panPan3.unmasked.2bit \
+             -workhorse=hgwdev -smallClusterHub=ku panPan3) > do.log 2>&1
+    # real    4m13.285s
+
+    cat fb.panPan3.cpgIslandExtUnmasked.txt
+    # 28001209 bases of 2999027915 (0.934%) in intersection
+
+#############################################################################
+# cytoBandIdeo - (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/cytoBand
+    cd /hive/data/genomes/panPan3/bed/cytoBand
+    makeCytoBandIdeo.csh panPan3
+
+#############################################################################
+# run up idKeys files for chromAlias/ncbiRefSeq (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/idKeys
+    cd /hive/data/genomes/panPan3/bed/idKeys
+
+    time (doIdKeys.pl \
+        -twoBit=/hive/data/genomes/panPan3/panPan3.unmasked.2bit \
+        -buildDir=`pwd` panPan3) > do.log 2>&1 &
+    # real    2m48.092s
+
+    cat panPan3.keySignature.txt
+    #  10c42ee6ea4a90775c5da9d8b83854aa
+
+#############################################################################
+# gapOverlap (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/gapOverlap
+    cd /hive/data/genomes/panPan3/bed/gapOverlap
+    time (doGapOverlap.pl \
+        -twoBit=/hive/data/genomes/panPan3/panPan3.unmasked.2bit panPan3 ) \
+        > do.log 2>&1 &
+    # real    1m50.075s
+
+    # there is only one:
+    wc -l bed.tab
+    # 1 bed.tab
+    cut -f2- bed.tab
+chrX    66519024        66677016        chrX:66519025-66677016  1000    +      66519024 66677016        0       2       1000,1000       0,156992
+
+    cat fb.panPan3.gapOverlap.txt
+    # 2000 bases of 3044872214 (0.000%) in intersection
+
+#############################################################################
+# tandemDups (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/tandemDups
+    cd /hive/data/genomes/panPan3/bed/tandemDups
+    time (~/kent/src/hg/utils/automation/doTandemDup.pl \
+  -twoBit=/hive/data/genomes/panPan3/panPan3.unmasked.2bit panPan3) \
+        > do.log 2>&1 &
+    # real    188m34.598s
+
+    cat fb.panPan3.tandemDups.txt
+    # 155315479 bases of 3044872214 (5.101%) in intersection
+
+    bigBedInfo panPan3.tandemDups.bb | sed -e 's/^/#  /;'
+#  version: 4
+#  fieldCount: 13
+#  hasHeaderExtension: yes
+#  isCompressed: yes
+#  isSwapped: 0
+#  extraIndexCount: 0
+#  itemCount: 2,822,307
+#  primaryDataSize: 72,710,994
+#  primaryIndexSize: 292,560
+#  zoomLevels: 9
+#  chromCount: 5335
+#  basesCovered: 1,635,503,835
+#  meanDepth (of bases covered): 14.396921
+#  minDepth: 1.000000
+#  maxDepth: 381.000000
+#  std of depth: 29.341113
+
+#########################################################################
+# ucscToINSDC and ucscToRefSeq table/track (TBD - 2019-11-19 - Hiram)
+    # construct idKeys for the refseq sequence
+    mkdir /hive/data/genomes/panPan3/refseq/idKeys
+    cd /hive/data/genomes/panPan3/refseq/idKeys
+    faToTwoBit ../GCF_*0_genomic.fna.gz panPan3.refSeq.2bit
+
+    time (doIdKeys.pl -buildDir=`pwd` \
+        -twoBit=`pwd`/panPan3.refSeq.2bit refseqPanPan3)  > do.log 2>&1 &
+    # real    2m50.723s
+
+    cat refseqPanPan3.keySignature.txt
+    #  10c42ee6ea4a90775c5da9d8b83854aa
+
+    # and the genbank sequence needs keys too:
+    mkdir /hive/data/genomes/panPan3/refseq/idKeysGenbank
+    cd /hive/data/genomes/panPan3/refseq/idKeysGenbank
+    faToTwoBit /hive/data/outside/ncbi/genomes/genbank/vertebrate_mammalian/Gorilla_gorilla/all_assembly_versions/GCA_008122165.1_Kamilah_GGO_v0/GCA_008122165.1_Kamilah_GGO_v0_genomic.fna.gz panPan3.genbank.2bit
+
+    time (doIdKeys.pl -buildDir=`pwd` \
+        -twoBit=`pwd`/panPan3.genbank.2bit genbankPanPan3)  > do.log 2>&1 &
+    # real    3m11.098s
+
+    cat genbankPanPan3.keySignature.txt
+    #  84734b343949ddf1e28b453d25d3ddf7
+
+    mkdir /hive/data/genomes/panPan3/bed/chromAlias
+    cd /hive/data/genomes/panPan3/bed/chromAlias
+
+    join -t$'\t' ../idKeys/panPan3.idKeys.txt \
+        ../../refseq/idKeysGenbank/genbankPanPan3.idKeys.txt | cut -f2- \
+          | sort -k1,1 | join -t$'\t' <(sort -k1,1 ../../chrom.sizes) - \
+            | awk '{printf "%s\t0\t%d\t%s\n", $1, $2, $3}' \
+               | sort -k1,1 -k2,2n > ucscToINSDC.bed
+
+    join -t$'\t' ../idKeys/panPan3.idKeys.txt \
+        ../../refseq/idKeys/refseqPanPan3.idKeys.txt | cut -f2- \
+          | sort -k1,1 | join -t$'\t' <(sort -k1,1 ../../chrom.sizes) - \
+            | awk '{printf "%s\t0\t%d\t%s\n", $1, $2, $3}' \
+               | sort -k1,1 -k2,2n > ucscToRefSeq.bed
+
+    # should be same line counts throughout:
+    wc -l * ../../chrom.sizes
+    #	5485 ucscToINSDC.bed
+    #	5486 ucscToRefSeq.bed
+    #	5486 ../../chrom.sizes
+
+    # need to find the accession for the INSDC equivalent to chrM:
+    egrep chrM *
+# ucscToRefSeq.bed:chrM   0       16412   NC_011120.1
+
+    # lookup that accession at NCBI Entrez: X93347.1
+    # and add to ucscToINSDC.bed:
+    printf "chrM\t0\t16564\tAY612638.1\n" >> ucscToINSDC.bed
+    # verify:
+    grep chrM *
+ucscToINSDC.bed:chrM    0       16412   X93347.1
+ucscToRefSeq.bed:chrM   0       16412   NC_011120.1
+
+    export chrSize=`cut -f1 ucscToINSDC.bed | awk '{print length($0)}' | sort -n | tail -1`
+    echo $chrSize
+    # 26
+    # use the $chrSize in this sed
+    sed -e "s/21/$chrSize/" $HOME/kent/src/hg/lib/ucscToINSDC.sql \
+         | hgLoadSqlTab panPan3 ucscToINSDC stdin ucscToINSDC.bed
+     # should be the same for ucscToRefSeq:
+    export chrSize=`cut -f1 ucscToRefSeq.bed | awk '{print length($0)}' | sort -n | tail -1`
+    echo $chrSize
+    # 26
+    sed -e "s/21/$chrSize/" $HOME/kent/src/hg/lib/ucscToINSDC.sql \
+       | sed -e 's/INSDC/RefSeq/g;' \
+         | hgLoadSqlTab panPan3 ucscToRefSeq stdin ucscToRefSeq.bed
+
+    # should be quiet for all OK
+    checkTableCoords panPan3
+
+    # should cover %100 entirely:
+    featureBits -countGaps panPan3 ucscToINSDC
+    # 3044872214 bases of 3044872214 (100.000%) in intersection
+    featureBits -countGaps panPan3 ucscToRefSeq
+    # 3044872214 bases of 3044872214 (100.000%) in intersection
+
+#########################################################################
+# add chromAlias table (TBD - 2019-11-19 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/bed/chromAlias
+    cd /hive/data/genomes/panPan3/bed/chromAlias
+
+    hgsql -N -e 'select chrom,name from ucscToRefSeq;' panPan3 \
+        | sort -k1,1 > ucsc.refseq.tab
+    hgsql -N -e 'select chrom,name from ucscToINSDC;' panPan3 \
+        | sort -k1,1 > ucsc.genbank.tab
+
+    wc -l *.tab
+    #	5486 ucsc.genbank.tab
+    #	5486 ucsc.refseq.tab
+
+
+    ~/kent/src/hg/utils/automation/chromAlias.pl ucsc.*.tab \
+        > panPan3.chromAlias.tab
+
+for t in refseq genbank
+do
+  c0=`cat ucsc.$t.tab | wc -l`
+  c1=`grep $t panPan3.chromAlias.tab | wc -l`
+  ok="OK"
+  if [ "$c0" -ne "$c1" ]; then
+     ok="ERROR"
+  fi
+  printf "# checking $t: $c0 =? $c1 $ok\n"
+done
+# checking refseq: 5486 =? 5486 OK
+# checking genbank: 5486 =? 5486 OK
+
+    # verify chrM is here properly:
+    grep chrM panPan3.chromAlias.tab 
+# NC_011120.1     chrM    refseq
+# X93347.1        chrM    genbank
+
+    hgLoadSqlTab panPan3 chromAlias ~/kent/src/hg/lib/chromAlias.sql \
+        panPan3.chromAlias.tab
+
+#########################################################################
+# fixup search rule for assembly track/gold table (TBD - 2019-11-19 - Hiram)
+    cd ~/kent/src/hg/makeDb/trackDb/gorilla/panPan3
+    # preview prefixes and suffixes:
+    hgsql -N -e "select frag from gold;" panPan3 \
+      | sed -e 's/[0-9][0-9]*//;' | sort | uniq -c 
+      1 NC_.1
+   6344 SRLZ.1
+
+    # implies a rule: '[NS][CR][L0-9_][Z0-9][0-9]+(\.[0-9]+)?'
+
+    # verify this rule will find them all and eliminate them all:
+    hgsql -N -e "select frag from gold;" panPan3 | wc -l
+    # 6345
+
+    hgsql -N -e "select frag from gold;" panPan3 \
+       | egrep -e '[NS][CR][L0-9_][Z0-9][0-9]+(\.[0-9]+)?' | wc -l
+    # 6345
+
+    hgsql -N -e "select frag from gold;" panPan3 \
+       | egrep -v -e '[NS][CR][L0-9_][Z0-9][0-9]+(\.[0-9]+)?' | wc -l
+    # 0
+
+    # hence, add to trackDb/rhesus/panPan3/trackDb.ra
+searchTable gold
+shortCircuit 1
+termRegex [NS][CR][L0-9_][Z0-9][0-9]+(\.[0-9]+)?
+query select chrom,chromStart,chromEnd,frag from %s where frag like '%s%%'
+searchPriority 8
+
+    # verify searches work in the position box
+
+##########################################################################
+# running repeat masker (TBD - 2019-11-19 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/repeatMasker
+    cd /hive/data/genomes/panPan3/bed/repeatMasker
+    time  (doRepeatMasker.pl -buildDir=`pwd` \
+        -bigClusterHub=ku -dbHost=hgwdev -workhorse=hgwdev \
+        -smallClusterHub=ku panPan3) > do.log 2>&1
+    # real    415m10.888s
+
+    cat faSize.rmsk.txt
+# 3044872214 bases (45844299 N's 2999027915 real 1492721019 upper
+#	1506306896 lower) in 5486 sequences in 1 files
+# Total size: mean 555025.9 sd 8254410.8 min 202 (chrUn_NW_022154607v1)
+#	max 219763114 (chr1) median 29244
+# %49.47 masked total, %50.23 masked real
+
+    egrep -i "versi|relea" do.log
+# RepeatMasker version development-$Id: RepeatMasker,v 1.332 2017/04/17 19:01:11 rhubley Exp $
+# grep version of RepeatMasker$ /hive/data/staging/data/RepeatMasker/RepeatMasker
+# February 01 2017 (open-4-0-8) 1.332 version of RepeatMasker
+# grep RELEASE /hive/data/staging/data/RepeatMasker/Libraries/RepeatMaskerLib.embl
+# CC    Dfam_Consensus RELEASE 20181026;                            *
+# CC    RepBase RELEASE 20181026;                                   *
+
+    time featureBits -countGaps panPan3 rmsk
+    # 1506305481 bases of 3044872214 (49.470%) in intersection
+    # real    0m41.857s
+
+    # why is it different than the faSize above ?
+    # because rmsk masks out some N's as well as bases, the faSize count above
+    #   separates out the N's from the bases, it doesn't show lower case N's
+
+    # faster way to get the same result on high contig count assemblies:
+    time hgsql -N -e 'select genoName,genoStart,genoEnd from rmsk;' panPan3 \
+        | bedSingleCover.pl stdin | ave -col=4 stdin | grep "^total"
+    # total 1506305481.000000
+    # real    0m22.271s
+
+##########################################################################
+# running simple repeat (TBD - 2019-11-19 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/bed/simpleRepeat
+    cd /hive/data/genomes/panPan3/bed/simpleRepeat
+    time (doSimpleRepeat.pl -buildDir=`pwd` -bigClusterHub=ku \
+        -dbHost=hgwdev -workhorse=hgwdev -smallClusterHub=ku \
+        -trf409=6 panPan3) > do.log 2>&1
+    # real    243m33.198s
+
+    cat fb.simpleRepeat
+    # 260449789 bases of 2999027915 (8.684%) in intersection
+
+    cd /hive/data/genomes/panPan3
+    # using the Window Masker result:
+    cd /hive/data/genomes/panPan3
+#    twoBitMask bed/windowMasker/panPan3.cleanWMSdust.2bit \
+#       -add bed/simpleRepeat/trfMask.bed  panPan3.2bit
+    #   you can safely ignore the warning about fields >= 13
+
+    # add to rmsk after it is done:
+    twoBitMask panPan3.rmsk.2bit \
+        -add bed/simpleRepeat/trfMask.bed panPan3.2bit
+    #   you can safely ignore the warning about fields >= 13
+    twoBitToFa panPan3.2bit stdout | faSize stdin > faSize.panPan3.2bit.txt
+    cat faSize.panPan3.2bit.txt
+# 3044872214 bases (45844299 N's 2999027915 real 1490817836 upper
+#	1508210079 lower) in 5486 sequences in 1 files
+# Total size: mean 555025.9 sd 8254410.8 min 202 (chrUn_NW_022154607v1)
+#	max 219763114 (chr1) median 29244
+# %49.53 masked total, %50.29 masked real
+
+    rm /gbdb/panPan3/panPan3.2bit
+    ln -s `pwd`/panPan3.2bit /gbdb/panPan3/panPan3.2bit
+
+#########################################################################
+# CREATE MICROSAT TRACK (TBD - 2019-11-20 - Hiram)
+    ssh hgwdev
+    mkdir /cluster/data/panPan3/bed/microsat
+    cd /cluster/data/panPan3/bed/microsat
+
+    awk '($5==2 || $5==3) && $6 >= 15 && $8 == 100 && $9 == 0 {printf("%s\t%s\t%s\t%dx%s\n", $1, $2, $3, $6, $16);}' \
+       ../simpleRepeat/simpleRepeat.bed > microsat.bed
+
+    hgLoadBed panPan3 microsat microsat.bed
+    # Read 27700 elements of size 4 from microsat.bed
+
+##########################################################################
+## WINDOWMASKER (TBD - 2019-11-19 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/bed/windowMasker
+    cd /hive/data/genomes/panPan3/bed/windowMasker
+    time (doWindowMasker.pl -buildDir=`pwd` -workhorse=hgwdev \
+        -dbHost=hgwdev panPan3) > do.log 2>&1
+    # real    115m21.931s
+
+    # Masking statistics
+    cat faSize.panPan3.cleanWMSdust.txt
+# 3044872214 bases (45844299 N's 2999027915 real 1771826758 upper
+#	1227201157 lower) in 5486 sequences in 1 files
+# Total size: mean 555025.9 sd 8254410.8 min 202 (chrUn_NW_022154607v1)
+#	max 219763114 (chr1) median 29244
+# %40.30 masked total, %40.92 masked real
+
+    cat fb.panPan3.rmsk.windowmaskerSdust.txt
+    # 879562979 bases of 3044872214 (28.887%) in intersection
+
+##########################################################################
+# cpgIslands - (TBD - 2019-11-20 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/cpgIslands
+    cd /hive/data/genomes/panPan3/bed/cpgIslands
+    time (doCpgIslands.pl -dbHost=hgwdev -bigClusterHub=ku \
+      -workhorse=hgwdev -smallClusterHub=ku panPan3) > do.log 2>&1
+    # real    4m0.657s
+
+    cat fb.panPan3.cpgIslandExt.txt
+    # 20339043 bases of 2999027915 (0.678%) in intersection
+
+##############################################################################
+# genscan - (TBD - 2019-11-20 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/genscan
+    cd /hive/data/genomes/panPan3/bed/genscan
+    time (doGenscan.pl -buildDir=`pwd` -workhorse=hgwdev -dbHost=hgwdev \
+      -bigClusterHub=ku panPan3) > do.log 2>&1
+    # real    100m37.264s
+
+    cat fb.panPan3.genscan.txt
+    # 51534246 bases of 2999027915 (1.718%) in intersection
+
+    cat fb.panPan3.genscanSubopt.txt
+    # 53019930 bases of 2999027915 (1.768%) in intersection
+
+#########################################################################
+# Create kluster run files (TBD - 2019-11-20 - Hiram)
+
+    # numerator is panPan3 gapless bases "real" as reported by:
+    featureBits -noRandom -noHap panPan3 gap
+    # 41796384 bases of 2715375767 (1.539%) in intersection
+    #                      ^^^
+
+    # denominator is hg19 gapless bases as reported by:
+    #   featureBits -noRandom -noHap hg19 gap
+    #     234344806 bases of 2861349177 (8.190%) in intersection
+    # 1024 is threshold used for human -repMatch:
+    calc \( 2715375767 / 2861349177 \) \* 1024
+    #  ( 2715375767 / 2861349177 ) * 1024 = 971.760038
+
+    # ==> use -repMatch=950 according to size scaled down from 1024 for human.
+    #   and rounded down to nearest 50
+    cd /hive/data/genomes/panPan3
+    time blat panPan3.2bit \
+         /dev/null /dev/null -tileSize=11 -makeOoc=jkStuff/panPan3.11.ooc \
+        -repMatch=950
+    #   Wrote 39217 overused 11-mers to jkStuff/panPan3.11.ooc
+
+    # gorGor5 at repMatch=1100:
+    #   Wrote 31384 overused 11-mers to jkStuff/gorGor5.11.ooc
+    # gorGor4 at repMatch=1000:
+    # Wrote 32028 overused 11-mers to jkStuff/gorGor4.11.ooc
+
+    #   check non-bridged gaps to see what the typical size is:
+    hgsql -N \
+        -e 'select * from gap where bridge="no" order by size;' panPan3 \
+        | sort -k7,7nr | ave -col=7 stdin
+    # min 100.000000
+    # max 100.000000
+    # they are all 100 sized, 220 gaps
+
+    # minimum gap size is 100 and produces a reasonable number of lifts
+    gapToLift -verbose=2 -minGap=100 panPan3 jkStuff/panPan3.nonBridged.lft \
+        -bedFile=jkStuff/panPan3.nonBridged.bed
+    wc -l jkStuff/panPan3.nonBri*
+    #	5706 jkStuff/panPan3.nonBridged.bed
+    #	5706 jkStuff/panPan3.nonBridged.lft
+
+########################################################################
+# lastz/chain/net swap human/hg38 (TBD - 2019-11-20 - Hiram)
+
+    # original alignment
+    cd /hive/data/genomes/hg38/bed/lastzPanPan3.2019-11-20
+
+    cat fb.hg38.chainPanPan3Link.txt
+    # 2908900659 bases of 3095998939 (93.957%) in intersection
+    cat fb.hg38.chainSynPanPan3Link.txt
+    # 2885980361 bases of 3095998939 (93.216%) in intersection
+    cat fb.hg38.chainRBest.PanPan3.txt
+    # 2693876207 bases of 3095998939 (87.012%) in intersection
+
+    # and for the swap:
+    mkdir /hive/data/genomes/panPan3/bed/blastz.hg38.swap
+    cd /hive/data/genomes/panPan3/bed/blastz.hg38.swap
+
+    time (doBlastzChainNet.pl -verbose=2 \
+      /hive/data/genomes/hg38/bed/lastzPanPan3.2019-11-20/DEF \
+        -swap -chainMinScore=3000 -chainLinearGap=medium \
+          -workhorse=hgwdev -smallClusterHub=hgwdev -bigClusterHub=ku \
+            -syntenicNet) > swap.log 2>&1
+    #  real    63m46.473s
+
+    cat fb.panPan3.chainHg38Link.txt
+    # 2738870921 bases of 2999027915 (91.325%) in intersection
+    cat fb.panPan3.chainSynHg38Link.txt
+    # 2728591501 bases of 2999027915 (90.983%) in intersection
+
+    time (doRecipBest.pl -load -workhorse=hgwdev -buildDir=`pwd` panPan3 hg38) \
+       > rbest.log 2>&1
+    # real    62m14.470s
+
+    cat fb.panPan3.chainRBest.Hg38.txt
+    # 2697792568 bases of 2999027915 (89.956%) in intersection
+
+###########################################################################
+# lastz/chain/net swap mouse/mm10 (TBD - 2019-11-21 - Hiram)
+
+    # original alignment
+    cd /hive/data/genomes/mm10/bed/lastzPanPan3.2019-11-20
+    cat fb.mm10.chainPanPan3Link.txt
+    #	929953885 bases of 2652783500 (35.056%) in intersection
+    cat fb.mm10.chainSynPanPan3Link.txt
+    #   882047357 bases of 2652783500 (33.250%) in intersection
+    cat fb.mm10.chainRBest.PanPan3.txt
+    # 885135149 bases of 2652783500 (33.366%) in intersection
+
+    mkdir /hive/data/genomes/panPan3/bed/blastz.mm10.swap
+    cd /hive/data/genomes/panPan3/bed/blastz.mm10.swap
+    time (doBlastzChainNet.pl -verbose=2 \
+	/hive/data/genomes/mm10/bed/lastzPanPan3.2019-11-20/DEF \
+	-swap -syntenicNet \
+	-workhorse=hgwdev -smallClusterHub=hgwdev -bigClusterHub=ku \
+	-chainMinScore=3000 -chainLinearGap=medium) > swap.log 2>&1
+    #	real    72m34.088s
+
+    cat fb.panPan3.chainMm10Link.txt
+    #	1017872526 bases of 2999027915 (33.940%) in intersection
+    cat fb.panPan3.chainSynMm10Link.txt
+    #    880983055 bases of 2999027915 (29.376%) in intersection
+
+    time (doRecipBest.pl -load -workhorse=hgwdev panPan3 mm10 \
+      -buildDir=`pwd` -workhorse=hgwdev) > rbest.log 2>&1 &
+    # real    237m38.959s
+
+    cat fb.panPan3.chainRBest.Mm10.txt
+    # 883663662 bases of 2999027915 (29.465%) in intersection
+
+##############################################################################
+# GENBANK AUTO UPDATE (TBD - 2019-11-20 - Hiram)
+    ssh hgwdev
+    cd $HOME/kent/src/hg/makeDb/genbank
+    git pull
+    # /cluster/data/genbank/data/organism.lst shows:
+    # organism       mrnaCnt estCnt  refSeqCnt
+    # Gorilla 1       0       0
+    # Gorilla gorilla 617     30      95
+    # Gorilla gorilla gorilla 4       0       0
+
+    # that single 'Gorilla' name is a new one, adding that to
+    # the list of Gorilla names in src/lib/gbGenome.c
+
+    # edit etc/genbank.conf to add panPan3 just before galGal5
+
+# Gorilla - refseq assembly: GCF_008122165.1
+panPan3.serverGenome = /hive/data/genomes/panPan3/panPan3.2bit
+panPan3.ooc = /hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc
+panPan3.lift = /hive/data/genomes/panPan3/jkStuff/panPan3.nonBridged.lft
+panPan3.perChromTables = no
+panPan3.refseq.mrna.native.pslCDnaFilter  = ${ordered.refseq.mrna.native.pslCDnaFilter}
+panPan3.refseq.mrna.xeno.pslCDnaFilter    = ${ordered.refseq.mrna.xeno.pslCDnaFilter}
+panPan3.genbank.mrna.native.pslCDnaFilter = ${ordered.genbank.mrna.native.pslCDnaFilter}
+panPan3.genbank.mrna.xeno.pslCDnaFilter   = ${ordered.genbank.mrna.xeno.pslCDnaFilter}
+panPan3.genbank.est.native.pslCDnaFilter  = ${ordered.genbank.est.native.pslCDnaFilter}
+panPan3.genbank.est.xeno.pslCDnaFilter    = ${ordered.genbank.est.xeno.pslCDnaFilter}
+panPan3.downloadDir = panPan3
+# default yes refseq.mrna.native refseq.mrna.xeno genbank.mrna.native
+# default yes genbank.est.native
+# default no genbank.mrna.xeno genbank.est.xeno
+
+    # verify the files specified exist before checking in the file:
+  grep ^panPan3 etc/genbank.conf | grep hive | awk '{print $NF}' | xargs ls -og
+# -rw-rw-r-- 1 792944027 Nov 20 10:59 /hive/data/genomes/panPan3/panPan3.2bit
+# -rw-rw-r-- 1    156876 Nov 20 11:06 /hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc
+# -rw-rw-r-- 1    333597 Nov 20 11:08 /hive/data/genomes/panPan3/jkStuff/panPan3.nonBridged.lft
+
+    git commit -m "Added panPan3 gorilla; refs #24524" etc/genbank.conf src/lib/gbGenome.c
+    git push
+
+    # update the binaries due to the update in lib/src/gbGenome.c
+    make install-server
+
+    # update /cluster/data/genbank/:
+    make etc-update
+
+    # enable daily alignment and update of hgwdev
+    cd ~/kent/src/hg/makeDb/genbank
+    git pull
+    # add panPan3 to:
+    #   etc/hgwdev.dbs etc/align.dbs
+    git commit -m "Added panPan3 - gorilla refs #24524" etc/hgwdev.dbs etc/align.dbs
+    git push
+    make etc-update
+
+    # wait a few days for genbank magic to take place, the tracks will
+    # appear
+
+#############################################################################
+# augustus gene track (TBD - 2019-11-20 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/bed/augustus
+    cd /hive/data/genomes/panPan3/bed/augustus
+    time (doAugustus.pl -buildDir=`pwd` -bigClusterHub=ku \
+        -species=human -dbHost=hgwdev \
+           -workhorse=hgwdev panPan3) > do.log 2>&1
+    # real    139m55.244s
+
+    cat fb.panPan3.augustusGene.txt
+    # 55005426 bases of 2999027915 (1.834%) in intersection
+
+#########################################################################
+# ncbiRefSeq (TBD - 2019-11-20 - Hiram)
+
+    mkdir /hive/data/genomes/panPan3/bed/ncbiRefSeq
+    cd /hive/data/genomes/panPan3/bed/ncbiRefSeq
+    # running step wise just to be careful
+    time (~/kent/src/hg/utils/automation/doNcbiRefSeq.pl -buildDir=`pwd` \
+      -bigClusterHub=ku -dbHost=hgwdev \
+      -stop=download -fileServer=hgwdev -smallClusterHub=ku -workhorse=hgwdev \
+      refseq vertebrate_mammalian Gorilla_gorilla \
+      GCF_008122165.1_Kamilah_GGO_v0 panPan3) > download.log 2>&1
+    # real    1m37.523s
+
+    time (~/kent/src/hg/utils/automation/doNcbiRefSeq.pl -buildDir=`pwd` \
+      -continue=process -bigClusterHub=ku -dbHost=hgwdev \
+      -stop=process -fileServer=hgwdev -smallClusterHub=ku -workhorse=hgwdev \
+      refseq vertebrate_mammalian Gorilla_gorilla \
+      GCF_008122165.1_Kamilah_GGO_v0 panPan3) > process.log 2>&1
+    # real    2m9.450s
+
+    time (~/kent/src/hg/utils/automation/doNcbiRefSeq.pl -buildDir=`pwd` \
+      -continue=load -bigClusterHub=ku -dbHost=hgwdev \
+      -stop=load -fileServer=hgwdev -smallClusterHub=ku -workhorse=hgwdev \
+      refseq vertebrate_mammalian Gorilla_gorilla \
+      GCF_008122165.1_Kamilah_GGO_v0 panPan3) > load.log 2>&1
+    # real    0m21.982s
+
+    cat fb.ncbiRefSeq.panPan3.txt
+    #  74279781 bases of 2999027915 (2.477%) in intersection
+
+    # add: include ../../refSeqComposite.ra alpha
+    # to the gorilla/panPan3/trackDb.ra to turn on the track in the browser
+
+    featureBits -enrichment panPan3 refGene ncbiRefSeq 
+ # refGene 0.006%, ncbiRefSeq 2.477%, both 0.006%, cover 99.87%, enrich 40.32x
+
+    featureBits -enrichment panPan3 ncbiRefSeq refGene
+ # ncbiRefSeq 2.477%, refGene 0.006%, both 0.006%, cover 0.25%, enrich 40.32x
+
+    featureBits -enrichment panPan3 ncbiRefSeqCurated refGene
+ # ncbiRefSeqCurated 0.007%, refGene 0.006%, both 0.006%, cover 94.29%, enrich 14956.14x
+
+    featureBits -enrichment panPan3 refGene ncbiRefSeqCurated
+ # refGene 0.006%, ncbiRefSeqCurated 0.007%, both 0.006%, cover 99.87%, enrich 14956.14x
+
+#########################################################################
+# LIFTOVER TO gorGor5 (TBD - 2019-11-20 - Hiram)
+    ssh hgwdev
+    mkdir /hive/data/genomes/panPan3/bed/blat.gorGor5.2019-11-20
+    cd /hive/data/genomes/panPan3/bed/blat.gorGor5.2019-11-20
+    doSameSpeciesLiftOver.pl -verbose=2 \
+        -debug -bigClusterHub=ku -dbHost=hgwdev -workhorse=hgwdev \
+        -ooc=/hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc \
+         panPan3 gorGor5
+    time (doSameSpeciesLiftOver.pl -verbose=2 \
+        -bigClusterHub=ku -dbHost=hgwdev -workhorse=hgwdev \
+        -ooc=/hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc \
+         panPan3 gorGor5) > doLiftOverToGorGor5.log 2>&1
+    # real    936m35.524s
+
+    # see if the liftOver menus function in the browser from panPan3 to gorGor5
+
+#########################################################################
+# LIFTOVER TO gorGor4 (TBD - 2019-11-20 - Hiram)
+    ssh hgwdev
+    mkdir /hive/data/genomes/panPan3/bed/blat.gorGor4.2019-11-20
+    cd /hive/data/genomes/panPan3/bed/blat.gorGor4.2019-11-20
+    doSameSpeciesLiftOver.pl -verbose=2 \
+        -debug -bigClusterHub=ku -dbHost=hgwdev -workhorse=hgwdev \
+        -ooc=/hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc \
+         panPan3 gorGor4
+    time (doSameSpeciesLiftOver.pl -verbose=2 \
+        -bigClusterHub=ku -dbHost=hgwdev -workhorse=hgwdev \
+        -ooc=/hive/data/genomes/panPan3/jkStuff/panPan3.11.ooc \
+         panPan3 gorGor4) > doLiftOverToGorGor4.log 2>&1
+    # real    654m46.645s
+
+    # see if the liftOver menus function in the browser from panPan3 to gorGor4
+
+#########################################################################
+#  BLATSERVERS ENTRY (TBD - 2019-11-20 - Hiram)
+#	After getting a blat server assigned by the Blat Server Gods,
+    ssh hgwdev
+
+    hgsql -e 'INSERT INTO blatServers (db, host, port, isTrans, canPcr) \
+	VALUES ("panPan3", "blat1c", "17914", "1", "0"); \
+	INSERT INTO blatServers (db, host, port, isTrans, canPcr) \
+	VALUES ("panPan3", "blat1c", "17915", "0", "1");' \
+	    hgcentraltest
+    #	test it with some sequence
+
+############################################################################
+## reset default position similar to gorGor5 found via blat of NR_046473.1 mRNA
+##  (TBD - 2019-11-20 - Hiram)
+
+    # as found from the galGal5 to panPan3 liftOver
+    ssh hgwdev
+    hgsql -e 'update dbDb set defaultPos="chr14:81559118-81601404"
+	where name="panPan3";' hgcentraltest
+
+##############################################################################
+# crispr whole genome (TBD - 2019-11-20 - Hiram)
+    mkdir /hive/data/genomes/panPan3/bed/crisprAll
+    cd /hive/data/genomes/panPan3/bed/crisprAll
+
+    # the large shoulder argument will cause the entire genome to be scanned
+    # this takes a while for a new genome to get the bwa indexing done
+    time (~/kent/src/hg/utils/automation/doCrispr.pl -verbose=2 -stop=ranges \
+    panPan3 ncbiRefSeq -shoulder=250000000 -tableName=crisprAll -fileServer=hgwdev \
+    -buildDir=`pwd` -smallClusterHub=hgwdev -bigClusterHub=ku \
+      -workhorse=hgwdev) > ranges.log 2>&1
+    # real    72m58.740s
+
+    time (~/kent/src/hg/utils/automation/doCrispr.pl -verbose=2 \
+       -continue=guides -stop=specScores panPan3 ncbiRefSeq \
+	-shoulder=250000000 -tableName=crisprAll -fileServer=hgwdev \
+    -buildDir=`pwd` -smallClusterHub=hgwdev -bigClusterHub=ku \
+      -workhorse=hgwdev) > specScores.log 2>&1
+    # real    8m40.172s
+
+    cat guides/run.time | sed -e 's/^/# /;'
+# Completed: 100 of 100 jobs
+# CPU time in finished jobs:      12309s     205.15m     3.42h    0.14d  0.000 y
+# IO & Wait Time:                   290s       4.83m     0.08h    0.00d  0.000 y
+# Average job time:                 126s       2.10m     0.03h    0.00d
+# Longest finished job:             380s       6.33m     0.11h    0.00d
+# Submission to last job:           386s       6.43m     0.11h    0.00d
+
+    cat specScores/run.time | sed -e 's/^/# /;'
+# Completed: 3041114 of 3041114 jobs
+# CPU time in finished jobs:  282305886s 4705098.10m 78418.30h 3267.43d  8.952 y
+# IO & Wait Time:              84009113s 1400151.88m 23335.86h  972.33d  2.664 y
+# Average job time:                 120s       2.01m     0.03h    0.00d
+# Longest finished job:             498s       8.30m     0.14h    0.01d
+# Submission to last job:        381920s    6365.33m   106.09h    4.42d
+
+Submission to last job:        274925s    4582.08m    76.37h    3.18d
+
+# Number of specScores: 227564780
+
+# real    7482m37.507s
+# user    0m2.047s
+# sys     0m2.110s
+
+    ### remember to get back to hgwdev to run this
+    time (~/kent/src/hg/utils/automation/doCrispr.pl -verbose=2 \
+       -continue=effScores -stop=load panPan3 ncbiRefSeq \
+    -shoulder=250000000 -tableName=crisprAll -fileServer=hgwdev \
+    -buildDir=`pwd` -smallClusterHub=hgwdev -bigClusterHub=ku \
+      -workhorse=hgwdev) > load.log 2>&1
+    # real    1081m16.460s
+
+    cat effScores/run.time | sed -e 's/^/# /;'
+# Completed: 27933 of 27933 jobs
+# CPU time in finished jobs:   13825593s  230426.55m  3840.44h  160.02d  0.438 y
+# IO & Wait Time:                172582s    2876.37m    47.94h    2.00d  0.005 y
+# Average job time:                 501s       8.35m     0.14h    0.01d
+# Longest finished job:           20199s     336.65m     5.61h    0.23d
+# Submission to last job:         22274s     371.23m     6.19h    0.26d
+
+    cat offTargets/run.time | sed -e 's/^/# /;'
+# Completed: 152056 of 152056 jobs
+# CPU time in finished jobs:    2009038s   33483.97m   558.07h   23.25d  0.064 y
+# IO & Wait Time:               2321685s   38694.75m   644.91h   26.87d  0.074 y
+# Average job time:                  28s       0.47m     0.01h    0.00d
+# Longest finished job:              53s       0.88m     0.01h    0.00d
+# Submission to last job:          4266s      71.10m     1.19h    0.05d
+
+#########################################################################
+# all.joiner update, downloads and in pushQ - (WORKING - 2019-11-20 - Hiram)
+    cd $HOME/kent/src/hg/makeDb/schema
+    # verify all the business is done for release
+    ~/kent/src/hg/utils/automation/verifyBrowser.pl panPan3
+
+    # fixup all.joiner until this is a clean output
+    joinerCheck -database=panPan3 -tableCoverage all.joiner
+    joinerCheck -database=panPan3 -times all.joiner
+    joinerCheck -database=panPan3 -keys all.joiner
+
+    # when clean, check in:
+    git commit -m 'adding rules for panPan3 refs #24524' all.joiner
+    git push
+    # run up a 'make alpha' in hg/hgTables to get this all.joiner file
+    # into the hgwdev/genome-test system
+
+    cd /hive/data/genomes/panPan3
+    time (~/kent/src/hg/utils/automation/makeDownloads.pl panPan3) > downloads.log 2>&1
+    #  real    17m56.213s
+
+XXX - ready to continue - Tue Mar 31 14:27:51 PDT 2020
+    #   now ready for pushQ entry
+    mkdir /hive/data/genomes/panPan3/pushQ
+    cd /hive/data/genomes/panPan3/pushQ
+ time ($HOME/kent/src/hg/utils/automation/makePushQSql.pl -redmineList panPan3) > panPan3.pushQ.sql 2> stderr.out
+    # real    15m52.548s
+
+    # remove the tandemDups and gapOverlap from the file list:
+    sed -i -e "/tandemDups/d" redmine.panPan3.table.list
+    sed -i -e "/Tandem Dups/d" redmine.panPan3.releaseLog.txt
+    sed -i -e "/gapOverlap/d" redmine.panPan3.table.list
+    sed -i -e "/Gap Overlaps/d" redmine.panPan3.releaseLog.txt
+
+    #   check for errors in stderr.out, some are OK, e.g.:
+    # WARNING: hgwdev does not have /gbdb/panPan3/wib/gc5Base.wib
+    # WARNING: hgwdev does not have /gbdb/panPan3/wib/quality.wib
+    # WARNING: hgwdev does not have /gbdb/panPan3/bbi/quality.bw
+    # WARNING: panPan3 does not have seq
+    # WARNING: panPan3 does not have extFile
+
+
+    # verify the file list does correctly match to files
+    cat redmine.panPan3.file.list | while read L
+do
+  eval ls $L > /dev/null
+done
+    # should be silent, missing files will show as errors
+
+    # verify database tables, how many to expect:
+    wc -l redmine.panPan3.table.list
+    # 63 redmine.panPan3.table.list
+
+    # how many actual:
+    awk -F'.' '{printf "hgsql -N %s -e '"'"'show table status like \"%s\";'"'"'\n", $1, $2}' redmine.panPan3.table.list | sh | wc -l
+    # 63
+
+    # would be a smaller number actual if some were missing
+
+    # add the path names to the listing files in the redmine issue
+    # in the three appropriate entry boxes:
+
+#	/hive/data/genomes/panPan3/pushQ/redmine.panPan3.file.list
+#	/hive/data/genomes/panPan3/pushQ/redmine.panPan3.releaseLog.txt
+#	/hive/data/genomes/panPan3/pushQ/redmine.panPan3.table.list
+
+#########################################################################