o
    Rŀgc                     @   sD   d Z ddlmZ ddlmZ erddlmZ G dd ded ZdS )	z=The structure class, representing a macromolecular structure.    )TYPE_CHECKING)Entity)Modelc                   @   sh   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dde
ddfddZdde
ddfddZdS )	Structurez=The Structure class contains a collection of Model instances.c                 C   s   d| _ t| | dS )zInitialize the class.SN)levelr   __init__)selfid r   E/var/www/html/myenv/lib/python3.10/site-packages/Bio/PDB/Structure.pyr      s   zStructure.__init__c                 C   s   d|    dS )z Return the structure identifier.z<Structure id=>)get_idr	   r   r   r   __repr__   s   zStructure.__repr__c                 c   s    | E dH  dS )zReturn models.Nr   r   r   r   r   
get_models   s   zStructure.get_modelsc                 c       |   D ]}|E dH  qdS )zReturn chains from models.N)r   )r	   mr   r   r   
get_chains"      zStructure.get_chainsc                 c   r   )zReturn residues from chains.N)r   )r	   cr   r   r   get_residues'   r   zStructure.get_residuesc                 c   r   )zReturn atoms from residue.N)r   )r	   rr   r   r   	get_atoms,   r   zStructure.get_atomsFverbosereturnNc                 C      |   D ]}|| qdS )zCreate/update internal coordinates from Atom X,Y,Z coordinates.

        Internal coordinates are bond length, angle and dihedral angles.

        :param verbose bool: default False
            describe runtime problems

        N)r   atom_to_internal_coordinatesr	   r   chnr   r   r   r   1   s   	z&Structure.atom_to_internal_coordinatesc                 C   r   )zCreate/update atom coordinates from internal coordinates.

        :param verbose bool: default False
            describe runtime problems

        :raises Exception: if any chain does not have .internal_coord attribute
        N)r   internal_to_atom_coordinatesr   r   r   r   r    =   s   z&Structure.internal_to_atom_coordinates)F)__name__
__module____qualname____doc__r   r   r   r   r   r   boolr   r    r   r   r   r   r      s    r   )Nr   N)r$   typingr   Bio.PDB.Entityr   Bio.PDB.Modelr   r   r   r   r   r   <module>   s   