annotate commons/pyRepetUnit/profilesDB/Profiles.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 import re
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 #------------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 class Profiles:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 Hmm profile Class
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8 Attributes are name, desc, length, accNumber, GA_cut_off and retrieve
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 #--------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 def __init__( self, name="", desc="", length=0, accNumber = "", GA_cut_off = 0, retrieve = False ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 self.name = name
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 self.desc = desc
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 self.length = length
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 self.accNumber = accNumber
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 self.GA_cut_off = GA_cut_off
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 self.retrieve = retrieve
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 self.tab_profile = []
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 #--------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 def _noProfileInFile(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 self.name = None
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 self.desc = None
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 self.length = None
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 self.accNumber = None
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 self.GA_cut_off = None
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 #--------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 def _initialisation(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 self.name = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 self.desc = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 self.length = 0
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 self.accNumber = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 GA_cut_off = 0
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 self.tab_profile = []
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 #--------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 def read( self, hmmFile ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 Read a profile and characterize the object profile
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 attributes name, length, desc, accNumber and GA_cut_off are specified
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 line = hmmFile.readline()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49 if line == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 self._noProfileInFile()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 return
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 self._initialisation()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 if self.retrieve:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 self.tab_profile.append(line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 while not re.match("\/\/.*", line):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 line = hmmFile.readline()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 if self.retrieve:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 self.tab_profile.append(line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 name = re.match("NAME\s*(.*)", line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 if name:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 self.name = name.group(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 desc = re.match("DESC\s*(.*)", line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 if desc:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 self.desc = desc.group(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 length = re.match("LENG\s*(.*)", line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 if length:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 self.length = int(length.group(1))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68 accNumber = re.match("ACC\s*(.*)", line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 if accNumber:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70 self.accNumber = accNumber.group(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 GA_cut_off = re.match("GA\s*\d*\.\d*\s*(.*);", line)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 if GA_cut_off:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 self.GA_cut_off = float(GA_cut_off.group(1))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74 else :
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75 if (self.GA_cut_off == 0):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 self.GA_cut_off = "NA"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 if self.retrieve:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78 return self.tab_profile
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 return 1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82 #--------------------------------------------------------------------------
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 def readAndRetrieve( self, hmmFile ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 Read a profile and characterize the object profile
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 attributes name, length, desc, accNumber and GA_cut_off are specified
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 And a list of each line of profile is returned
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89 '''
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 self.retrieve = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91 return self.read(hmmFile)