allpy
changeset 347:b6c1eaad5ac6
base: introduced Sequence.from_monomers instead of Sequence() (rels #12)
author | Daniil Alexeyevsky <me.dendik@gmail.com> |
---|---|
date | Thu, 20 Jan 2011 22:06:57 +0300 |
parents | 7880ea44e56b |
children | b5b7fcc6c9cb |
files | allpy/base.py |
diffstat | 1 files changed, 15 insertions(+), 14 deletions(-) [+] |
line diff
1.1 --- a/allpy/base.py Thu Jan 20 22:01:41 2011 +0300 1.2 +++ b/allpy/base.py Thu Jan 20 22:06:57 2011 +0300 1.3 @@ -104,16 +104,24 @@ 1.4 description = '' 1.5 source = '' 1.6 1.7 - def __init__(self, sequence=[], name=None, description=None, source=None): 1.8 - list.__init__(self, sequence) 1.9 - if hasattr(sequence, 'name'): 1.10 - vars(self).update(vars(sequence)) 1.11 + @classmethod 1.12 + def from_monomers(cls, monomers=[], name=None, description=None, source=None): 1.13 + """Create sequence from a list of monomer objecst.""" 1.14 + result = cls() 1.15 if name: 1.16 - self.name = name 1.17 + result.name = name 1.18 if description: 1.19 - self.description = description 1.20 + result.description = description 1.21 if source: 1.22 - self.source = source 1.23 + result.source = source 1.24 + return result 1.25 + 1.26 + @classmethod 1.27 + def from_string(cls, string, name='', description='', source=''): 1.28 + """Create sequences from string of one-letter codes.""" 1.29 + monomer = cls.monomer_type.from_code1 1.30 + monomers = [monomer(letter) for letter in string] 1.31 + return cls.from_monomers(monomers, name, description, source) 1.32 1.33 def __repr__(self): 1.34 return '<Sequence %s>' % str(self) 1.35 @@ -127,13 +135,6 @@ 1.36 return id(self) 1.37 1.38 @classmethod 1.39 - def from_string(cls, string, name='', description='', source=''): 1.40 - """Create sequences from string of one-letter codes.""" 1.41 - monomer = cls.monomer_type.from_code1 1.42 - monomers = [monomer(letter) for letter in string] 1.43 - return cls(monomers, name, description, source) 1.44 - 1.45 - @classmethod 1.46 def from_fasta(cls, file): 1.47 """Read sequence from FASTA file. 1.48