ó
ó-Ec           @   sY   d  d l  m Z d Z d d
 d     YZ d e f d     YZ d e f d     YZ d	 S(   i˙˙˙˙(   t   IntTypes<   Class that maps (chain_id, residue_id) to a residue propertyt   AbstractPropertyMapc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   property_dictt   property_keyst   property_list(   t   selfR   R   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   __init__   s    		c         C   s   | S(   N(    (   R   t	   entity_id(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   _translate_id   s    c         C   s   |  j  |  } |  j | S(   s  
        Return property for a residue.

        @param chain_id: chain id
        @type chain_id: char 

        @param res_id: residue id
        @type res_id: int or (char, int, char) 

        @return: some residue property 
        @rtype: anything (can be a tuple)
        (   R   R   (   R   t   keyt   translated_id(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   __getitem__   s    c         C   s   t  |  j  S(   s   
        Return number of residues for which the property is available.

        @return: number of residues
        @rtype: int
        (   t   lenR   (   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   __len__$   s    c         C   s   |  j  |  } |  j j |  S(   sS  
        Return 1 if the map has a property for this residue, 0 otherwise.

        Example:
            >>> if map.has_key((chain_id, res_id)):
            >>>     res, property=map[(chain_id, res_id)]

        @param chain_id: chain id
        @type chain_id: char 

        @param res_id: residue id
        @type res_id: char 
        (   R   R   t   has_key(   R   t   idR
   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   -   s    c         C   s   |  j  S(   sľ   
        Return the list of residues.

        @return: list of residues for which the property was calculated
        @rtype: [(chain_id, res_id), (chain_id, res_id),...] 
        (   R   (   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   keys>   s    c         c   s3   x, t  d t |  j   D] } |  j | Vq Wd S(   sü   
        Iterate over the (entity, property) list. Handy alternative to 
        the dictionary-like access.

        Example:
            >>> for (res, property) in iter(map):
            >>>     print res, property

        @return: iterator
        i    N(   t   rangeR   R   (   R   t   i(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   __iter__G   s    (	   t   __name__t
   __module__R   R   R   R   R   R   R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR      s   								t   AbstractResiduePropertyMapc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j |  | | |  d  S(   N(   R   R   (   R   R   R   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   W   s    c         C   s:   | \ } } t  |  t k r6 | d | d f f } n  | S(   Nt    (   t   typeR    (   R   t   ent_idt   chain_idt   res_id(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   [   s    (   R   R   R   R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   V   s   	t   AbstractAtomPropertyMapc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j |  | | |  d  S(   N(   R   R   (   R   R   R   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   b   s    c         C   sp   t  |  d k r' | \ } } } } n | \ } } } d  } t |  t k rl | d | d f | | f } n  | S(   Ni   R   (   R   t   NoneR   R    (   R   R   R   R   t	   atom_namet   icode(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   f   s    (   R   R   R   R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyR   a   s   	N(    (   t   typesR    t   __doc__R   R   R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/PDB/AbstractPropertyMap.pyt   <module>   s   K