d8df38ba4671d2f98771343bb695cbf49e38bde8
lrnassar
  Mon May 9 16:35:30 2022 -0700
Adding MTR track refs #29152

diff --git src/hg/makeDb/scripts/mtr/buildMTRwigTracks.py src/hg/makeDb/scripts/mtr/buildMTRwigTracks.py
new file mode 100644
index 0000000..ba5f894
--- /dev/null
+++ src/hg/makeDb/scripts/mtr/buildMTRwigTracks.py
@@ -0,0 +1,68 @@
+from collections import OrderedDict
+
+mtrFile = open("/hive/data/outside/mtr/mtrflatfile_2.0.txt",'r')
+aWig = open("/hive/data/outside/mtr/a.wig",'w')
+cWig = open("/hive/data/outside/mtr/c.wig",'w')
+gWig = open("/hive/data/outside/mtr/g.wig",'w')
+tWig = open("/hive/data/outside/mtr/t.wig",'w')
+
+def writeOutToWig(positionDic,fileNames):
+    for key in positionDic.keys():
+        try: prevPos
+        except:
+            prevPos = False
+        currentPos = key
+        for base, fileName in zip(['A','C','T','G'], fileNames):
+            if prevPos == False or int(currentPos)-1 != int(prevPos):
+                fileName.write("fixedStep chrom=%s start=%s step=1 span=1\n" % (positionDic[key]['chr'],currentPos))
+                if positionDic[key][base] == [] or max(positionDic[key][base]) == '':
+                    fileName.write('0\n')
+                else:
+                    fileName.write(str(max(positionDic[key][base]))+"\n")
+            else:
+                if positionDic[key][base] == [] or max(positionDic[key][base]) == '':
+                    fileName.write('0\n')
+                else:
+                    fileName.write(str(max(positionDic[key][base]))+"\n")                    
+        prevPos = currentPos
+
+for line in mtrFile:
+    if line.startswith("Chromosome_name"):
+        print("Skipped")
+    else:
+        try: prevChrom
+        except:
+            prevChrom = False
+        lineSplit = line.split("\t")
+        chrom = "chr"+lineSplit[0]
+        pos = lineSplit[1]
+        alt = lineSplit[3]
+        mtr = lineSplit[0]
+    
+        if not prevChrom:
+            positionDic = OrderedDict()
+        
+        elif chrom != prevChrom:
+            print("Writing chrom: "+prevChrom)
+            writeOutToWig(positionDic,[aWig,cWig,tWig,gWig])
+            positionDic = OrderedDict()
+    
+        if pos not in positionDic.keys():
+            positionDic[pos] = {}
+            positionDic[pos]['C'] = []
+            positionDic[pos]['A'] = []
+            positionDic[pos]['G'] = []
+            positionDic[pos]['T'] = []
+            positionDic[pos]['chr'] = chrom
+        
+        positionDic[pos][alt].append(lineSplit[10])
+        prevChrom = chrom
+
+print("Writing chrom: "+prevChrom)
+writeOutToWig(positionDic,[aWig,cWig,tWig,gWig])
+                
+mtrFile.close()
+aWig.close()
+cWig.close()
+tWig.close()
+gWig.close()