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 = "|"
- usage = "usage: python %prog genome ucscModels outfilename maxBorder [--verbose] [--spacer num]\
+ usage = "usage: python getsplicefa.py genome ucscModels outfilename maxBorder [--verbose] [--spacer num]\
+ \n\twhere ucscModels is the gene model file in same format as the UCSC Table Browser\
\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:])
genome = args[0]
datafilename = args[1]
outfilename = args[2]
- maxBorder = args[3]
+ maxBorder = int(args[3])
except IndexError:
print usage
sys.exit(1)
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
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