2 usage: python regiontobed label regionfile outbedfile [--color r,g,b] [--score field] [--narrowPeak] [--broadPeak] [--itemRgb] [--nolabel]
3 where color is in comma-delimited RGB without space
4 and field is a column with a score (first column is 0, second is 1,...)
5 t-narrowPeak assumes that findall.py was run with -listPeak
6 t-broadPeak assumes that findall.py was *NOT* run with -listPeak
15 import sys, math, optparse
17 print "%prog: version 3.1"
30 parser = optparse.OptionParser(usage=usage)
31 parser.add_option("--color", dest="color")
32 parser.add_option("--score", type="int", dest="scoreField")
33 parser.add_option("--narrowPeak", action="store_true", dest="doNarrow")
34 parser.add_option("--broadPeak", action="store_true", dest="doBroad")
35 parser.add_option("--itemRgb", action="store_true", dest="itemRGB")
36 parser.add_option("--nolabel", action="store_true", dest="noLabel")
37 parser.set_defaults(color="0,0,0", scoreField=None, doNarrow=False,
38 doBroad=False, itemRGB=False, noLabel=False)
39 (options, args) = parser.parse_args(argv[1:])
49 regiontobed(factorlabel, regionfile, outfile, options.color,
50 options.scoreField, options.doNarrow, options.doBroad,
51 options.itemRGB, options.noLabel)
54 def regiontobed(factorlabel, regionFileName, outFileName, color="0,0,0",
55 scoreField=None, doNarrow=False, doBroad=False, itemRGB=False,
58 regionfile = open(regionFileName)
59 outfile = open(outFileName, "w")
62 print "assigning each item its color"
66 outfile.write('track name=%s visibility=4 itemRgb="on"\n' % factorlabel)
68 outfile.write("track name=%s visibility=4 color=%s\n" % (factorlabel, color))
70 for line in regionfile:
74 fields = line.strip().split()
76 signalVal = float(fields[4])
77 pval = float(fields[-1])
81 pValue = -1. * math.log(pval, 10)
83 peakPos = int(fields[9]) - int(fields[2])
84 outfile.write("%s\t%s\t%s\t%s\t%d\t.\t%.4f\t%.4f\t-1\t%d" % (fields[1], fields[2], fields[3], fields[0], 0, signalVal, pValue, peakPos))
86 signalVal = float(fields[4])
87 pval = float(fields[-1])
91 pValue = -1. * math.log(pval, 10)
93 outfile.write("%s\t%s\t%s\t%s\t%d\t.\t%.4f\t%.4f\t-1" % (fields[1], fields[2], fields[3], fields[0], 0, signalVal, pValue))
94 elif scoreField is not None:
95 score = int(float(fields[scoreField]))
99 outfile.write("%s\t%s\t%s\t%s\t%s" % (fields[1], fields[2], fields[3], fields[0], score))
101 outfile.write("\t+\t-\t-\t%s" % color)
103 outfile.write("%s\t%s\t%s\t%s" % (fields[1], fields[2], fields[3], fields[0]))
105 outfile.write("\t1000\t+\t-\t-\t%s" % color)
112 if __name__ == "__main__":