ó
Š™xTc           @   sI   d  d l  m Z d  d l Z d  d l m Z d  d l m Z d „  Z d S(   iÿÿÿÿ(   t   divisionN(   t   adptbx(   t   StringIOc         C   sA  | d  k	 r | j d | ƒ n  t ƒ  } x | D] } | d I| IJq/ W| d I|  j ƒ  j ƒ  IJ| d I|  j ƒ  j ƒ  IJ| r” | d IJn
 | d IJ| t j j d |  ƒ IJ| t j j	 d |  j
 ƒ  ƒ IJt j j j ƒ  } | d  k	 r| j ƒ  | _ n  d } x“|  j ƒ  D]…}	 | d	 7} t j j d
 d d | ƒ | _ |	 j j ƒ  r•t j |  j
 ƒ  |	 j ƒ | _ t j t j | j ƒ ƒ | _ n | j ƒ  t j |	 j ƒ | _ | rÉ|	 j | _ n |  j
 ƒ  j |	 j ƒ | _ |	 j | _  |	 j! j ƒ  }
 |
 d  | _" | d  k r(|
 d  | _ n  |	 j# ƒ  } | d  k rId } n  t$ | ƒ d k sat% ‚ | j ƒ  | _& t j j d
 d d | ƒ | _' | | j( ƒ  IJqW| d  k	 r-t$ | ƒ |  j ƒ  j ƒ  k sÒt% ‚ d } xR | D]G } | d	 7} d | } x  | D] } | d | d	 7} q W| | IJqßWn  | d IJ| j) ƒ  S(   Ni    t   REMARKs   REMARK Number of scatterers:s   REMARK At special positions:s   REMARK Fractional coordinatess   REMARK Cartesian coordinatest   crystal_symmetryt	   unit_celli   t   widthi   t   valuei   i   t   Qi   s
   CONNECT%5ds   %5dt   END(   i   i   (*   t   Nonet   insertR   t
   scattererst   sizet   special_position_indicest   iotbxt   pdbt   format_cryst1_recordt   format_scale_recordsR   t	   hierarchyt   atom_with_labelst   uppert   resnamet
   hy36encodet   serialt   flagst   use_u_aniso_onlyR   t   u_star_as_u_cartt   u_start   uijt   u_as_bt   u_cart_as_u_isot   bt	   uij_eraset   u_isot   sitet   xyzt   orthogonalizet	   occupancyt   occt   labelt   namet   element_symbolt   lent   AssertionErrort   elementt   resseqt   format_atom_record_groupt   getvalue(   t   selft   remarkt   remarkst   fractional_coordinatesR   t   connectt   st   atomR   t	   scattererR(   R*   t   it   bondst   lt   bond(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/xray_structure.pyt   as_pdb_file   sf    	


!
 	$


(	   t
   __future__R    t   iotbx.pdb.hierarchyR   t   cctbxR   t	   cStringIOR   R=   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/xray_structure.pyt   <module>   s   