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

# HG changeset patch
# User Daniil Alexeyevsky
# Date 1292349113 -10800
# Node ID aae821828b0364432d9d876600167e793b2223af
# Parent 0e8b5ad66125c1264dae8bf4066b1675c952aee1
Moved contents of allpy._monomer to allpy.base

diff -r 0e8b5ad66125 -r aae821828b03 allpy/_monomer.py
--- a/allpy/_monomer.py Tue Dec 14 20:05:13 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-#!/usr/bin/python
-
-import data.codes as table
-
-class MonomerType(object):
- """Class of monomer types.
-
- Each MonomerType object represents a known monomer type, e.g. Valine,
- and is referenced to by each instance of monomer in a given sequence.
-
- - `name`: full name of monomer type
- - `code1`: one-letter code
- - `code3`: three-letter code
- - `is_modified`: either of True or False
-
- class atributes:
-
- - `by_code1`: a mapping from one-letter code to MonomerType object
- - `by_code3`: a mapping from three-letter code to MonomerType object
- - `by_name`: a mapping from monomer name to MonomerType object
- - `instance_type`: class of Monomer objects to use when creating new
- objects; this must be redefined in descendent classes
-
- All of the class attributes MUST be redefined when subclassing.
- """
-
- by_code1 = {}
- by_code3 = {}
- by_name = {}
- instance_type = None
-
- def __init__(self, name="", code1="", code3="", is_modified=False):
- self.name = name.capitalize()
- self.code1 = code1.upper()
- self.code3 = code3.upper()
- self.is_modified = bool(is_modified)
- if not is_modified:
- self.by_code1[self.code1] = self
- self.by_code3[code3] = self
- self.by_name[name] = self
- # We duplicate distinguished long names into MonomerType itself,
- # so that we can use MonomerType.from_code3 to create the relevant
- # type of monomer.
- MonomerType.by_code3[code3] = self
- MonomerType.by_name[name] = self
-
- @classmethod
- def _initialize(cls, type_letter, codes=table.codes):
- """Create all relevant instances of MonomerType.
-
- `type_letter` is either of:
-
- - 'p' for protein
- - 'd' for DNA
- - 'r' for RNA
-
- `codes` is a table of monomer codes
- """
- for type, code1, is_modified, code3, name in codes:
- if type == type_letter:
- cls(name, code1, code3, is_modified)
-
- @classmethod
- def from_code1(cls, code1):
- """Return monomer type by one-letter code."""
- return cls.by_code1[code1.upper()]
-
- @classmethod
- def from_code3(cls, code3):
- """Return monomer type by three-letter code."""
- return cls.by_code3[code3.upper()]
-
- @classmethod
- def from_name(cls, name):
- """Return monomer type by name."""
- return cls.by_name[name.capitalize()]
-
- def instance(self):
- """Create a new monomer of given type."""
- return self.instance_type(self)
-
- def __eq__(self, other):
- if hasattr(other, "type"):
- return self is other.type
- return self is other
-
-class Monomer(object):
- """Monomer object.
-
- attributes:
-
- - `type`: type of monomer (a MonomerType object)
-
- class attribute `monomer_type` is MonomerType or either of it's subclasses,
- it is used when creating new monomers. It MUST be redefined when subclassing Monomer.
- """
- monomer_type = MonomerType
-
- def __init__(self, type):
- self.type = type
-
- @classmethod
- def from_code1(cls, code1):
- return cls(cls.monomer_type.by_code1[code1.upper()])
-
- @classmethod
- def from_code3(cls, code3):
- return cls(cls.monomer_type.by_code3[code3.upper()])
-
- @classmethod
- def from_name(cls, name):
- return cls(cls.monomer_type.by_name[name.capitalize()])
-
- def __eq__(self, other):
- if hasattr(other, "type"):
- return self.type is other.type
- return self.type is other
-
-# vim: set ts=4 sts=4 sw=4 et:
diff -r 0e8b5ad66125 -r aae821828b03 allpy/base.py
--- a/allpy/base.py Tue Dec 14 20:05:13 2010 +0300
+++ b/allpy/base.py Tue Dec 14 20:51:53 2010 +0300
@@ -1,5 +1,119 @@
-import _monomer
from fasta import save_fasta
+import data.codes
+
+class MonomerType(object):
+ """Class of monomer types.
+
+ Each MonomerType object represents a known monomer type, e.g. Valine,
+ and is referenced to by each instance of monomer in a given sequence.
+
+ - `name`: full name of monomer type
+ - `code1`: one-letter code
+ - `code3`: three-letter code
+ - `is_modified`: either of True or False
+
+ class atributes:
+
+ - `by_code1`: a mapping from one-letter code to MonomerType object
+ - `by_code3`: a mapping from three-letter code to MonomerType object
+ - `by_name`: a mapping from monomer name to MonomerType object
+ - `instance_type`: class of Monomer objects to use when creating new
+ objects; this must be redefined in descendent classes
+
+ All of the class attributes MUST be redefined when subclassing.
+ """
+
+ by_code1 = {}
+ by_code3 = {}
+ by_name = {}
+ instance_type = None
+
+ def __init__(self, name="", code1="", code3="", is_modified=False):
+ self.name = name.capitalize()
+ self.code1 = code1.upper()
+ self.code3 = code3.upper()
+ self.is_modified = bool(is_modified)
+ if not is_modified:
+ self.by_code1[self.code1] = self
+ self.by_code3[code3] = self
+ self.by_name[name] = self
+ # We duplicate distinguished long names into MonomerType itself,
+ # so that we can use MonomerType.from_code3 to create the relevant
+ # type of monomer.
+ MonomerType.by_code3[code3] = self
+ MonomerType.by_name[name] = self
+
+ @classmethod
+ def _initialize(cls, type_letter, codes=data.codes.codes):
+ """Create all relevant instances of MonomerType.
+
+ `type_letter` is either of:
+
+ - 'p' for protein
+ - 'd' for DNA
+ - 'r' for RNA
+
+ `codes` is a table of monomer codes
+ """
+ for type, code1, is_modified, code3, name in codes:
+ if type == type_letter:
+ cls(name, code1, code3, is_modified)
+
+ @classmethod
+ def from_code1(cls, code1):
+ """Return monomer type by one-letter code."""
+ return cls.by_code1[code1.upper()]
+
+ @classmethod
+ def from_code3(cls, code3):
+ """Return monomer type by three-letter code."""
+ return cls.by_code3[code3.upper()]
+
+ @classmethod
+ def from_name(cls, name):
+ """Return monomer type by name."""
+ return cls.by_name[name.capitalize()]
+
+ def instance(self):
+ """Create a new monomer of given type."""
+ return self.instance_type(self)
+
+ def __eq__(self, other):
+ if hasattr(other, "type"):
+ return self is other.type
+ return self is other
+
+class Monomer(object):
+ """Monomer object.
+
+ attributes:
+
+ - `type`: type of monomer (a MonomerType object)
+
+ class attribute `monomer_type` is MonomerType or either of it's subclasses,
+ it is used when creating new monomers. It MUST be redefined when subclassing Monomer.
+ """
+ monomer_type = MonomerType
+
+ def __init__(self, type):
+ self.type = type
+
+ @classmethod
+ def from_code1(cls, code1):
+ return cls(cls.monomer_type.by_code1[code1.upper()])
+
+ @classmethod
+ def from_code3(cls, code3):
+ return cls(cls.monomer_type.by_code3[code3.upper()])
+
+ @classmethod
+ def from_name(cls, name):
+ return cls(cls.monomer_type.by_name[name.capitalize()])
+
+ def __eq__(self, other):
+ if hasattr(other, "type"):
+ return self.type is other.type
+ return self.type is other

class Sequence(list):
""" Sequence of Monomers
@@ -12,9 +126,6 @@
"""
pass

-MonomerType = _monomer.MonomerType
-Monomer = _monomer.Monomer
-
class Alignment(dict):
""" Alignment

@@ -230,8 +341,4 @@
""" """
pass

-
-
-
-
-
+# vim: set ts=4 sts=4 sw=4 et: