Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Python/GetReadSizes.py @ 46:169d364ddd91
Uploaded
| author | m-zytnicki |
|---|---|
| date | Mon, 30 Sep 2013 03:19:26 -0400 |
| parents | 2c0c0a89fad7 |
| children |
comparison
equal
deleted
inserted
replaced
| 45:e454402ba9d9 | 46:169d364ddd91 |
|---|---|
| 50 self.log = LoggerFactory.createLogger("%s.%s" % (LOG_DEPTH, self.__class__.__name__), self.verbosity) | 50 self.log = LoggerFactory.createLogger("%s.%s" % (LOG_DEPTH, self.__class__.__name__), self.verbosity) |
| 51 self.parsers = {} | 51 self.parsers = {} |
| 52 self.sizes = {} | 52 self.sizes = {} |
| 53 self.factors = {} | 53 self.factors = {} |
| 54 self.regions = None | 54 self.regions = None |
| 55 self.percentage = False | |
| 55 self.tmpDatName = None | 56 self.tmpDatName = None |
| 56 self.tmpRName = None | 57 self.tmpRName = None |
| 57 self.width = 800 | 58 self.width = 800 |
| 58 self.height = 300 | 59 self.height = 300 |
| 59 self.arial = False | 60 self.arial = False |
| 64 def setInputFiles(self, fileNames, format): | 65 def setInputFiles(self, fileNames, format): |
| 65 chooser = ParserChooser(self.verbosity) | 66 chooser = ParserChooser(self.verbosity) |
| 66 chooser.findFormat(format) | 67 chooser.findFormat(format) |
| 67 for cpt, fileName in enumerate(fileNames): | 68 for cpt, fileName in enumerate(fileNames): |
| 68 self.parsers[self.names[cpt]] = chooser.getParser(fileName) | 69 self.parsers[self.names[cpt]] = chooser.getParser(fileName) |
| 70 if not self.factors: | |
| 71 self.factors = dict([name, 1.0] for name in self.names) | |
| 69 | 72 |
| 70 def setOutputFileName(self, fileName): | 73 def setOutputFileName(self, fileName): |
| 71 self.outputFileName = fileName | 74 self.outputFileName = fileName |
| 72 | 75 |
| 73 def setLabs(self, xLab, yLab): | 76 def setLabs(self, xLab, yLab): |
| 80 | 83 |
| 81 def setColors(self, colors): | 84 def setColors(self, colors): |
| 82 self.colors = colors | 85 self.colors = colors |
| 83 | 86 |
| 84 def setFactors(self, factors): | 87 def setFactors(self, factors): |
| 85 self.factors = dict(zip(self.names, factors)) | 88 if factors: |
| 89 self.factors = dict(zip(self.names, factors)) | |
| 86 | 90 |
| 87 def setRegionsFile(self, fileName): | 91 def setRegionsFile(self, fileName): |
| 88 if fileName != None: | 92 if fileName != None: |
| 89 self._loadRegions(fileName) | 93 self._loadRegions(fileName) |
| 94 | |
| 95 def setPercentage(self, percentage): | |
| 96 self.percentage = percentage | |
| 97 self.xLab = "% reads" | |
| 90 | 98 |
| 91 def setImageSize(self, width, height): | 99 def setImageSize(self, width, height): |
| 92 if width != None: | 100 if width != None: |
| 93 self.width = width | 101 self.width = width |
| 94 if height != None: | 102 if height != None: |
| 163 self.maxSize = max([max(self.sizes[region][name].keys()) for name in self.names for region in region]) | 171 self.maxSize = max([max(self.sizes[region][name].keys()) for name in self.names for region in region]) |
| 164 | 172 |
| 165 def _checkQuorum(self, region): | 173 def _checkQuorum(self, region): |
| 166 return (max([sum(self.sizes[region][name].values()) for name in self.sizes[region]]) > 0) | 174 return (max([sum(self.sizes[region][name].values()) for name in self.sizes[region]]) > 0) |
| 167 | 175 |
| 176 def _computePercentage(self): | |
| 177 for region in self.sizes: | |
| 178 for name in self.sizes[region]: | |
| 179 if self.sizes[region][name]: | |
| 180 sumData = float(sum(self.sizes[region][name].values())) | |
| 181 for size in self.sizes[region][name]: | |
| 182 self.sizes[region][name][size] = self.sizes[region][name][size] / sumData * 100 | |
| 183 | |
| 168 def _writeData(self, region): | 184 def _writeData(self, region): |
| 169 self.tmpDatName = "tmpFile%d.dat" % (self.number) | 185 self.tmpDatName = "tmpFile%d.dat" % (self.number) |
| 170 handle = open(self.tmpDatName, "w") | 186 handle = open(self.tmpDatName, "w") |
| 171 handle.write("Size\tCount\tSample\n") | 187 handle.write("Size\tCount\tSample\n") |
| 172 for name in self.sizes[region]: | 188 for name in self.sizes[region]: |
| 221 LoggerFactory.setLevel(self.log, self.verbosity) | 237 LoggerFactory.setLevel(self.log, self.verbosity) |
| 222 self._checkOptions() | 238 self._checkOptions() |
| 223 self.log.info("START Get Read Sizes") | 239 self.log.info("START Get Read Sizes") |
| 224 for name in self.names: | 240 for name in self.names: |
| 225 self._parse(name) | 241 self._parse(name) |
| 242 if self.percentage: | |
| 243 self._computePercentage() | |
| 226 self._plot() | 244 self._plot() |
| 227 self._cleanFiles() | 245 self._cleanFiles() |
| 228 self.log.info("END Get Read Sizes") | 246 self.log.info("END Get Read Sizes") |
| 229 | 247 |
| 230 | 248 |
| 241 parser.add_option("-l", "--xLabel", dest="xLab", action="store", default="Size", type="string", help="x-axis label name [format: string] [default: Size]") | 259 parser.add_option("-l", "--xLabel", dest="xLab", action="store", default="Size", type="string", help="x-axis label name [format: string] [default: Size]") |
| 242 parser.add_option("-L", "--yLabel", dest="yLab", action="store", default="# reads", type="string", help="y-axis label name [format: string] [default: Reads]") | 260 parser.add_option("-L", "--yLabel", dest="yLab", action="store", default="# reads", type="string", help="y-axis label name [format: string] [default: Reads]") |
| 243 parser.add_option("-c", "--colors", dest="colors", action="store", default=None, type="string", help="colors of the bars, separated by commas [format: string]") | 261 parser.add_option("-c", "--colors", dest="colors", action="store", default=None, type="string", help="colors of the bars, separated by commas [format: string]") |
| 244 parser.add_option("-a", "--factors", dest="factors", action="store", default=None, type="string", help="normalization factors, separated by commas [format: string]") | 262 parser.add_option("-a", "--factors", dest="factors", action="store", default=None, type="string", help="normalization factors, separated by commas [format: string]") |
| 245 parser.add_option("-r", "--regions", dest="regionsFileName", action="store", default=None, type="string", help="regions to plot [format: transcript file in GFF format]") | 263 parser.add_option("-r", "--regions", dest="regionsFileName", action="store", default=None, type="string", help="regions to plot [format: transcript file in GFF format]") |
| 264 parser.add_option("-p", "--percent", dest="percentage", action="store_true", default=False, help="compute percentage instead [format: boolean] [default: false]") | |
| 246 parser.add_option("-z", "--width", dest="width", action="store", default=800, type="int", help="width of the image [format: int] [default: 800]") | 265 parser.add_option("-z", "--width", dest="width", action="store", default=800, type="int", help="width of the image [format: int] [default: 800]") |
| 247 parser.add_option("-Z", "--height", dest="height", action="store", default=300, type="int", help="height of the image [format: int] [default: 300]") | 266 parser.add_option("-Z", "--height", dest="height", action="store", default=300, type="int", help="height of the image [format: int] [default: 300]") |
| 248 parser.add_option("-A", "--arial", dest="arial", action="store_true", default=False, help="use Arial font [format: boolean] [default: false]") | 267 parser.add_option("-A", "--arial", dest="arial", action="store_true", default=False, help="use Arial font [format: boolean] [default: false]") |
| 249 parser.add_option("-v", "--verbosity", dest="verbosity", action="store", default=1, type="int", help="trace level [format: int]") | 268 parser.add_option("-v", "--verbosity", dest="verbosity", action="store", default=1, type="int", help="trace level [format: int]") |
| 250 options = parser.parse_args()[0] | 269 options = parser.parse_args()[0] |
| 251 iGetReadSizes = GetReadSizes(options.verbosity) | 270 iGetReadSizes = GetReadSizes(options.verbosity) |
| 252 iGetReadSizes.setNames(options.names.split(",")) | 271 iGetReadSizes.setNames(options.names.split(",")) |
| 253 iGetReadSizes.setInputFiles(options.inputFileNames.split(","), options.format) | 272 iGetReadSizes.setInputFiles(options.inputFileNames.split(","), options.format) |
| 254 iGetReadSizes.setOutputFileName(options.outputFileName) | 273 iGetReadSizes.setOutputFileName(options.outputFileName) |
| 255 iGetReadSizes.setLabs(options.xLab, options.yLab) | |
| 256 iGetReadSizes.setSizes(options.minSize, options.maxSize) | 274 iGetReadSizes.setSizes(options.minSize, options.maxSize) |
| 257 iGetReadSizes.setColors(None if options.colors == None else options.colors.split(",")) | 275 iGetReadSizes.setColors(None if options.colors == None else options.colors.split(",")) |
| 258 iGetReadSizes.setFactors(None if options.factors == None else map(float, options.factors.split(","))) | 276 iGetReadSizes.setFactors(None if options.factors == None else map(float, options.factors.split(","))) |
| 259 iGetReadSizes.setRegionsFile(options.regionsFileName) | 277 iGetReadSizes.setRegionsFile(options.regionsFileName) |
| 278 iGetReadSizes.setPercentage(options.percentage) | |
| 260 iGetReadSizes.setImageSize(options.width, options.height) | 279 iGetReadSizes.setImageSize(options.width, options.height) |
| 280 iGetReadSizes.setLabs(options.xLab, options.yLab) | |
| 261 iGetReadSizes.setArial(options.arial) | 281 iGetReadSizes.setArial(options.arial) |
| 262 iGetReadSizes.run() | 282 iGetReadSizes.run() |
