erange version 4.0a dev release
[erange.git] / getsplicefa.py
index db8e2048aae93b16551fd9c62c2ff0e6fd55b433..cbca805a2426ace12e5121668cffecf2c646d3d5 100755 (executable)
@@ -6,15 +6,16 @@ try:
     psyco.full()
 except:
     print "psyco not running"
-from cistematic.core import complement
+
 from cistematic.genomes import Genome
+from commoncode import getConfigParser, getConfigIntOption
 
 
 def main(argv=None):
     if not argv:
         argv = sys.argv
 
-    verstring = "%prog: version 1.0"
+    verstring = "getsplicefa: version 1.1"
     print verstring
     delimiter = "|"
 
@@ -22,11 +23,7 @@ def main(argv=None):
             \n\twhere spacer is by default 2, and maxBorder should be readlen - (2 * spacer)\
             \n\tdelimiter is set to %s - edit the code to change it, if necessary\n" % delimiter
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--verbose", action="store_true", dest="doVerbose",
-                      help="show verbose messages [default: False]")
-    parser.add_option("--spacer", type="int", dest="spacer",
-                      help="number of spacer NTs to use [default: 2")
+    parser = makeParser(usage)
     parser.set_defaults(doVerbose=False, spacer=2)
     (options, args) = parser.parse_args(argv[1:])
 
@@ -42,6 +39,23 @@ def main(argv=None):
     getSpliceFasta(genome, datafilename, outfilename, maxBorder, options.doVerbose, options.spacer, delimiter)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--verbose", action="store_true", dest="doVerbose",
+                      help="show verbose messages [default: False]")
+    parser.add_option("--spacer", type="int", dest="spacer",
+                      help="number of spacer NTs to use [default: 2")
+
+    configParser = getConfigParser()
+    section = "getsplicefa"
+    doVerbose = getConfigIntOption(configParser, section, "doVerbose", False)
+    spacer = getConfigIntOption(configParser, section, "spacer", 2)
+
+    parser.set_defaults(doVerbose=doVerbose, spacer=spacer)
+
+    return parser
+
+
 def getSpliceFasta(genome, datafilename, outfilename, maxBorder, doVerbose=False, spacer=2, delimiter="|"):
     spacerseq = "N" * spacer
 
@@ -87,7 +101,7 @@ def getSpliceFasta(genome, datafilename, outfilename, maxBorder, doVerbose=False
         exonStopDict[name] = exonStops
         exonLengths = []
         for index in range(spliceCount + 1):
-            exonLengths.append(exonStops[index] - exonStarts[index])
+            exonLengths.append(exonStops[index] - exonStarts[index] + 1)
 
         exonLengthDict[name] = exonLengths