Mercurial > repos > yufei-luo > s_mart
comparison commons/core/parsing/BlatFileParser.py @ 38:2c0c0a89fad7
Uploaded
author | m-zytnicki |
---|---|
date | Thu, 02 May 2013 09:56:47 -0400 |
parents | 769e306b7933 |
children |
comparison
equal
deleted
inserted
replaced
37:d22fadc825e3 | 38:2c0c0a89fad7 |
---|---|
1 from commons.core.parsing.BlatParser import BlatParser | |
2 import os | |
3 | |
4 class BlatFileParser(object): | |
5 | |
6 def __init__(self, blatFileName = None): | |
7 self._blatFileName = blatFileName | |
8 self._lBlatHits = [] | |
9 self._dBlatHitsByQueries = {} | |
10 self._dQueries = {} | |
11 | |
12 def getDictOfQueries(self): | |
13 return self._dQueries | |
14 | |
15 def getResultLinesOfOneQuery(self, queryName): | |
16 return self._dBlatHitsByQueries[queryName] | |
17 | |
18 def getDictOfBlatHitsByQueries(self): | |
19 return self._dBlatHitsByQueries | |
20 | |
21 def getListsOfHits(self): | |
22 return self._lBlatHits | |
23 | |
24 def parseBlatFile(self): | |
25 blatFile = open(self._blatFileName, 'r') | |
26 line = blatFile.readline() | |
27 n = 1 | |
28 while line != "": | |
29 if self._isInteger(line.split("\t")[0]): | |
30 iBlatParser = BlatParser() | |
31 iBlatParser.setAttributesFromString(line, n) | |
32 queryHeader = iBlatParser.getQName() | |
33 self._dQueries[queryHeader] = 1 | |
34 self._lBlatHits.append(iBlatParser) | |
35 line = blatFile.readline() | |
36 n += 1 | |
37 return self._lBlatHits | |
38 | |
39 def parseBlatFileByQueries(self): | |
40 blatFile = open(self._blatFileName, 'r') | |
41 line = blatFile.readline() | |
42 n = 1 | |
43 while line != "": | |
44 if self._isInteger(line.split("\t")[0]): | |
45 iBlatParser = BlatParser() | |
46 iBlatParser.setAttributesFromString(line, n) | |
47 queryHeader = iBlatParser.getQName() | |
48 self._dQueries[queryHeader] = 1 | |
49 if self._dBlatHitsByQueries.has_key(queryHeader): | |
50 self._dBlatHitsByQueries[queryHeader].append(iBlatParser) | |
51 else: | |
52 self._dBlatHitsByQueries[queryHeader] = [iBlatParser] | |
53 line = blatFile.readline() | |
54 n += 1 | |
55 blatFile.close() | |
56 return self._dBlatHitsByQueries | |
57 | |
58 def _isInteger(self, string): | |
59 try: | |
60 int(string) | |
61 return True | |
62 except ValueError: | |
63 return False |