diff rename_tracks.py @ 1:75d9357a0a53 draft

planemo upload commit 58057cff13206fae66c938464c052f416047c1b3-dirty
author yating-l
date Mon, 25 Jun 2018 13:12:47 -0400
parents dd6d3b009659
children
line wrap: on
line diff
--- a/rename_tracks.py	Fri Jun 22 16:25:42 2018 -0400
+++ b/rename_tracks.py	Mon Jun 25 13:12:47 2018 -0400
@@ -6,6 +6,7 @@
 import sys
 import csv
 import subprocess
+import tempfile
 
 def rename_interval(inputFile, nameDict, renamedFile):
     writer = open(renamedFile, 'w')
@@ -29,6 +30,18 @@
     reheader = subprocess.Popen(array_call, stdin=header.stdout, stdout=subprocess.PIPE)
     out = open(renamedFile, 'w')
     subprocess.Popen(['samtools', 'reheader', '-', inputFile], stdin=reheader.stdout, stdout=out)
+
+def rename_bigwig(inputFile, renamedReference, nameDict, renamedFile):
+    bedGraphFile = tempfile.NamedTemporaryFile(bufsize=0)
+    chrom_sizes = tempfile.NamedTemporaryFile(bufsize=0)
+    sorted_bedGraphFile = tempfile.NamedTemporaryFile(bufsize=0)
+    renamed_sorted_bedGraphFile = tempfile.NamedTemporaryFile(bufsize=0)
+
+    subprocess.call(['bigWigToBedGraph', inputFile, bedGraphFile.name])
+    subprocess.call(['faSize', '-detailed', '-tab', renamedReference], stdout=chrom_sizes)
+    subprocess.call(['sort', '-k1,1', '-k2,2n', bedGraphFile.name], stdout=sorted_bedGraphFile)
+    rename_interval(sorted_bedGraphFile.name, nameDict, renamed_sorted_bedGraphFile.name)
+    subprocess.call(['bedGraphToBigWig', renamed_sorted_bedGraphFile.name, chrom_sizes.name, renamedFile])
    
 def getNameDict(nameMapping):
     nameDict = {}
@@ -48,6 +61,9 @@
         rename_interval(inputFile, nameDict, outputfile)
     elif inputFormat == "bam":
         rename_bam(inputFile, nameDict, outputfile)
+    elif inputFormat == "bigwig":
+        renamedReference = sys.argv[5]
+        rename_bigwig(inputFile, renamedReference, nameDict, outputfile)
 
 if __name__ == "__main__":
     main()
\ No newline at end of file