1 """
2
3
4 """
5
6 from obitools.fasta import fastaIterator
7 from obitools.cns import cnsTag
8 from obitools.location import Location
9
11
12 - def __init__(self,id,seq,definition=None,**info):
23
25 '''
26 Sequence definition getter
27
28 @return: the sequence definition
29 @rtype: str
30
31 '''
32 return self._definition
33
35 self._definition = value
36
39
42
44 if isinstance(key,Location):
45 return key.extractSequence(self)
46 elif isinstance(key, str):
47 return self._info[key]
48 elif isinstance(key, int):
49 return list.__getitem__(self,key)
50 elif isinstance(key, slice):
51 subseq=list.__getitem__(self,key)
52 info = dict(self._info)
53 if key.start is not None:
54 start = key.start +1
55 else:
56 start = 1
57 if key.stop is not None:
58 stop = key.stop+1
59 else:
60 stop = len(self)
61 if key.step is not None:
62 step = key.step
63 else:
64 step = 1
65
66 info['cut']='[%d,%d,%s]' % (start,stop,step)
67 return QualitySequence(self.id, subseq, self.definition,**info)
68
69 raise TypeError,'key must be an integer, a str or a slice'
70
73
75 if isinstance(key, str):
76 del self._info[key]
77 else:
78 raise TypeError,key
79
82
84 return key in self._info
85
88
97
98
99 definition = property(getDefinition, setDefinition, None, "Sequence Definition")
100
101 id = property(getId, setId, None, 'Sequence identifier')
102
103
105 text = ' '.join([x.strip() for x in seqarray])
106 return [int(x) for x in text.split()]
107
111