1a0b94702e72f4f1a0e64d7ade491dc05278a194
lrnassar
  Thu Sep 14 12:24:53 2023 -0700
Adding new MANE otto job, refs #32237

diff --git src/hg/utils/otto/mane/doMane.py src/hg/utils/otto/mane/doMane.py
new file mode 100644
index 0000000..bf346cb
--- /dev/null
+++ src/hg/utils/otto/mane/doMane.py
@@ -0,0 +1,44 @@
+#Ottomized by Lou 9/14/23
+
+import subprocess, os
+
+def bash(cmd):
+    """Run the cmd in bash subprocess"""
+    try:
+        rawBashOutput = subprocess.run(cmd, check=True, shell=True,\
+                                       stdout=subprocess.PIPE, universal_newlines=True, stderr=subprocess.STDOUT)
+        bashStdoutt = rawBashOutput.stdout
+    except subprocess.CalledProcessError as e:
+        raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
+    return(bashStdoutt)
+
+def doMane():
+    latestRelease = bash('curl -s https://ftp.ncbi.nlm.nih.gov/refseq/MANE/trackhub/data/ | grep "release_" | tail -1')
+    dirName = latestRelease.split(">")[1].split("<")[0]
+    version = dirName.split("_")[1].split("/")[0]
+    latestReleaseUrl = "https://ftp.ncbi.nlm.nih.gov/refseq/MANE/trackhub/data/"+dirName+"MANE.GRCh38.v"+version+".ensembl.bb"
+    workindDir = "/hive/data/outside/otto/mane/mane."+version
+    filePathBB = workindDir+"/our.bb"
+    filePathBed = workindDir+"/our.bed"
+    if not os.path.isfile(filePathBB):
+        print("New MANE update: "+latestReleaseUrl)
+        bash("mkdir -p "+workindDir)
+        bash("bigBedToBed "+latestReleaseUrl+" "+filePathBed)
+        bash("bedToBigBed -extraIndex=name "+filePathBed+" /cluster/data/hg38/chrom.sizes "+filePathBB+" -type=bed12+13 -as=$HOME/kent/src/hg/lib/mane.as -tab")
+        bash("mkdir -p /gbdb/hg38/mane")
+        print("Previous version itemCount:")
+        print(bash("bigBedInfo /gbdb/hg38/mane/mane.bb | grep -i itemCount"))
+        bash("rm -f /gbdb/hg38/mane/mane.bb")
+        bash("ln -s "+filePathBB+" /gbdb/hg38/mane/mane.bb")
+        print("New version itemCount:")
+        print(bash("bigBedInfo /gbdb/hg38/mane/mane.bb | grep -i itemCount"))
+        bash("tawk '{print $13, $18, $19, $21, $22, $23, $24}' "+filePathBed+" > "+workindDir+"/our.ixInput")
+        bash("ixIxx "+workindDir+"/our.ixInput "+workindDir+"/mane.ix "+workindDir+"/mane.ixx")
+        bash("rm -f /gbdb/hg38/mane/mane.ix /gbdb/hg38/mane/mane.ixx")
+        bash("ln -s "+workindDir+"/mane.ix /gbdb/hg38/mane")
+        bash("ln -s "+workindDir+"/mane.ixx /gbdb/hg38/mane")
+        bash("wget https://ftp.ncbi.nlm.nih.gov/refseq/MANE/MANE_human/release_"+version+"/README_versions.txt -O "+workindDir+"/README_versions.txt")
+        bash("rm -f /gbdb/hg38/mane/README_versions.txt")
+        bash("ln -s "+workindDir+"/README_versions.txt /gbdb/hg38/mane")
+        
+doMane()