allpy
diff allpy/dna.py @ 930:5f9e9c4e9ed6
Added dna.Sequence.reverse_complemented()
| author | Daniil Alexeyevsky <dendik@kodomo.fbb.msu.ru> |
|---|---|
| date | Mon, 21 Nov 2011 18:39:34 +0300 |
| parents | df571a5233fb |
| children | 4a9b4503a027 |
line diff
1.1 --- a/allpy/dna.py Mon Nov 21 18:05:14 2011 +0300 1.2 +++ b/allpy/dna.py Mon Nov 21 18:39:34 2011 +0300 1.3 @@ -15,6 +15,25 @@ 1.4 class Sequence(base.Sequence): 1.5 types = dna 1.6 1.7 + def reverse_complemented(self): 1.8 + """Return a new sequence, reverse-complement to self. 1.9 + 1.10 + Name of the sequence is name of self with apostrophe added. 1.11 + """ 1.12 + from_monomers = self.types.Sequence.from_monomers 1.13 + from_code1 = self.types.Monomer.from_code1 1.14 + complement = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C'} 1.15 + complemented_monomers = [ 1.16 + from_code1(complement.get(monomer.code1, 'N')) 1.17 + for monomer in self 1.18 + ] 1.19 + return from_monomers( 1.20 + reversed(complemented_monomers), 1.21 + self.name + "'", 1.22 + self.description, 1.23 + self.source 1.24 + ) 1.25 + 1.26 class Alignment(base.Alignment): 1.27 types = dna 1.28
