1 from obitools import BioSequence
2
3
6
7
9
11 assert isinstance(data, BioSequence),'You must only add bioseq to an alignement'
12 if hasattr(self, '_alignlen'):
13 assert self._alignlen==len(data),'All aligned sequences must have the same length'
14 else:
15 self._alignlen=len(data)
16 return data
17
21
26
28 if isinstance(key,int):
29 return [x[key] for x in self]
30
32 return reduce(lambda x,y: x and y,(z=='-' for z in self.getSite(key)),True)
33
35 return reduce(lambda x,y: x or y,(z=='-' for z in self.getSite(key)),False)
36
38 seqs = sequenceIterator(file)
39 alignement = Alignement()
40 for seq in seqs:
41 alignement.append(seq)
42 return alignement
43
44
45
46
47
49 lali = len(alignment[0])
50 for p in xrange(lali):
51 c = [x[p] for x in alignment]
52 yield c
53