Release version for Erange 4.0a
[erange.git] / featureIntersects.py
index cd357cc072c5cc7aa4460371439ef59c428873f5..c24b79edb312fae6c0b19f0d7e3d3ffb45d12984 100755 (executable)
@@ -38,7 +38,7 @@ def main(argv=None):
 
 def makeParser(usage=""):
     parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--cistype", action="store_false", dest="cistype")
+    parser.add_option("--cistype", dest="cistype")
     parser.add_option("--radius", type="int", dest="radius")
 
     configParser = getConfigParser()
@@ -52,10 +52,19 @@ def makeParser(usage=""):
 
 
 def featureIntersects(tabFileName, cistype="TFBSCONSSITES", radius=100):
-    tabfile = open(tabFileName)
-    previous = ""
+    
+    posList = getPositionList(tabFileName)
+    feats = featuresIntersecting("human", posList, radius, cistype)
+    featkeys = feats.keys()
+    featkeys.sort()
+    for (chrom, pos) in featkeys:
+        print "chr%s:%d-%d\t%s" % (chrom, pos, pos + 20, str(feats[(chrom, pos)]))
+
 
+def getPositionList(tabFileName):
+    previous = ""
     posList = []
+    tabfile = open(tabFileName)
     for line in tabfile:
         fields = line.split("\t")
         current = fields[0]
@@ -66,11 +75,7 @@ def featureIntersects(tabFileName, cistype="TFBSCONSSITES", radius=100):
         chrom = fields[1][3:]
         posList.append((chrom, (int(fields[2]) + int(fields[3]))/2))
 
-    feats = featuresIntersecting("human", posList, radius, cistype)
-    featkeys = feats.keys()
-    featkeys.sort()
-    for (chrom, pos) in featkeys:
-        print "chr%s:%d-%d\t%s" % (chrom, pos, pos + 20, str(feats[(chrom, pos)]))
+    return posList
 
 
 if __name__ == "__main__":