Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/rev/fc6418e32e3c
Дата изменения: Unknown
Дата индексирования: Tue Oct 2 00:23:47 2012
Кодировка:
allpy: fc6418e32e3c

allpy

changeset 250:fc6418e32e3c

allpy: collective improvement session
author boris (kodomo) <bnagaev@gmail.com>
date Tue, 07 Dec 2010 20:22:19 +0300
parents 117b03ee9e8f
children 9369dbad919d 8a0577a0ba31
files allpy/_monomer.py allpy/alignment.py
diffstat 2 files changed, 20 insertions(+), 21 deletions(-) [+]
line diff
     1.1 --- a/allpy/_monomer.py	Sat Dec 04 00:19:17 2010 +0300
     1.2 +++ b/allpy/_monomer.py	Tue Dec 07 20:22:19 2010 +0300
     1.3 @@ -1,6 +1,6 @@
     1.4  #!/usr/bin/python
     1.5  
     1.6 -from allpy.data.AAdict import AAdict
     1.7 +from data.AAdict import AAdict
     1.8  
     1.9  index_code3 = {}
    1.10  index_code1 = {}
    1.11 @@ -14,16 +14,18 @@
    1.12      code3 -- three-letter code (in upper case)
    1.13      is_modified -- True of False
    1.14      """
    1.15 +
    1.16 +    instance_type = None # Must be redefined when subclassing
    1.17      
    1.18      def __init__(self, name, code1, code3, is_modified=False):
    1.19 -        self.name = na me.capitalize()
    1.20 +        self.name = name.capitalize()
    1.21          self.code1 = code1.upper()
    1.22          self.code3 = code3.upper()
    1.23          self.is_modified = bool(is_modified) # ugly
    1.24  
    1.25      @classmethod
    1.26      def create(cls, name, code1, code3, is_modified=False):
    1.27 -        self = cls(name, code1m code3, is_modified)
    1.28 +        self = cls(name, code1, code3, is_modified)
    1.29          index_name[self.name] = self
    1.30          index_code3[self.code3] = self
    1.31          if not is_modified:
    1.32 @@ -32,7 +34,7 @@
    1.33              index_code1[cls][code1] = self
    1.34      
    1.35      @classmethod
    1.36 -    def from_code1(code1):
    1.37 +    def from_code1(cls, code1):
    1.38          return index_code1[cls][code1.upper()]
    1.39  
    1.40      @staticmethod
    1.41 @@ -52,9 +54,7 @@
    1.42          return not (self == other)
    1.43      
    1.44      def instance(self):
    1.45 -        cls = self.__class__
    1.46 -        monomer_class = type2monomer[cls]
    1.47 -        return monomer_class(self)
    1.48 +        return self.instance_type(self)
    1.49  
    1.50  class Monomer(object):
    1.51      """ Monomer 
    1.52 @@ -72,13 +72,13 @@
    1.53  
    1.54  
    1.55  class AminoAcidType(MonomerType):
    1.56 -    pass
    1.57 +    instance_type = AminoAcid
    1.58  class DNAType(MonomerType):
    1.59 -    pass
    1.60 +    instance_type = DNA
    1.61  class RNAType(MonomerType):
    1.62 -    pass
    1.63 +    instance_type = RNA
    1.64  
    1.65 -class AminoAci(Monomer):
    1.66 +class AminoAcid(Monomer):
    1.67      pass
    1.68  class DNA(Monomer):
    1.69      pass
    1.70 @@ -86,7 +86,6 @@
    1.71      pass
    1.72  
    1.73  types = {'p': AminoAcidType, 'd': DNAType, 'r': RNAType}
    1.74 -type2monomer = {AminoAcidType: AminoAcid, DNAType: DNA, RNAType: RNA}
    1.75  
    1.76  # prepare all aminoacids
    1.77  
    1.78 @@ -96,3 +95,5 @@
    1.79      monomer_type.create(name, code1, code3, is_modified)
    1.80  del code3, data, code1, m_type, is_modified, none, name
    1.81  
    1.82 +
    1.83 +# vim: set ts=4 sts=4 sw=4 et:
     2.1 --- a/allpy/alignment.py	Sat Dec 04 00:19:17 2010 +0300
     2.2 +++ b/allpy/alignment.py	Tue Dec 07 20:22:19 2010 +0300
     2.3 @@ -1,11 +1,8 @@
     2.4  #!/usr/bin/python
     2.5  
     2.6 -"""
     2.7 -    "I will not use abbrev."
     2.8 -    "I will always finish what I st"    
     2.9 -                                            - Bart Simpson
    2.10 -
    2.11 -"""
    2.12 +#    "I will not use abbrev."
    2.13 +#    "I will always finish what I st"    
    2.14 +#                                            - Bart Simpson
    2.15  
    2.16  import sequence
    2.17  from monomer import AminoAcidType
    2.18 @@ -198,7 +195,7 @@
    2.19          os.unlink(tmp_file.name)
    2.20          
    2.21          
    2.22 -    def column(self, sequence=None, sequences=None, original=None):
    2.23 +    def columns(self, sequence=None, sequences=None, original=None):
    2.24          """ returns list of columns of alignment
    2.25          
    2.26          sequence or sequences:
    2.27 @@ -223,14 +220,15 @@
    2.28                      dict([(s, column[indexes[s]]) for s in sequences]))
    2.29      
    2.30      
    2.31 -    def secstr(self, sequence, pdb_chain, gap='-'):
    2.32 +    def secondary_structure(self, sequence, pdb_chain, gap='-'):
    2.33          """ Returns string representing secondary structure """
    2.34          return ''.join([
    2.35          (sequence.pdb_secstr[pdb_chain][m] if sequence.secstr_has(pdb_chain, m) else gap) 
    2.36          for m in self.body[sequence]])
    2.37      
    2.38 -    def save_secstr(self, out_file, sequence, pdb_chain, 
    2.39 +    def save_secondary_structure(self, out_file, sequence, pdb_chain, 
    2.40      name, description='', gap='-', long_line=70):
    2.41          """ Save secondary structure and name in fasta format """
    2.42          save_fasta(out_file, self.secstr(sequence, pdb_chain, gap), name, description, long_line)
    2.43      
    2.44 +# vim: set ts=4 sts=4 sw=4 et: