ó
„™xTc           @   sR   d  Z  d d l m Z d „  Z e d k rN d d l Z e d e j d ƒ n  d S(   s¯   
Symmetry copies of atoms in pdb input file.
Uses two-character chain ids in output pdb file.
Therefore it only works for space groups with less than
ten symmetry operations.
iÿÿÿÿ(   t   divisionc         C   sÃ  t  |  ƒ d k s t d ƒ ‚ d d  l } | j j d |  d ƒ } | j ƒ  } | j ƒ  } | j ƒ  j ƒ  } | j ƒ  j	 ƒ  } | | j
 ƒ  j ƒ  } | g } x€ t | j ƒ  ƒ D]l \ }	 }
 |
 j ƒ  rÏ q± n  t |
 ƒ GH| j ƒ  } | j
 ƒ  j d | |
 j ƒ  j ƒ  | ƒ | j | ƒ q± W| j j j d | ƒ } d } d	 G| GHt | d
 ƒ d |  d t | j ƒ  ƒ f IJd d l m } | j d | d t d | j d | j d d ƒ ƒ d t ƒ d  S(   Ni   t   pdb_file_nameiÿÿÿÿt	   file_namei    t   new_xyzt   rootss   symmetry_copies.pdbs   Writing file:t   ws_   REMARK input file name: %s
REMARK original space group: %s
REMARK using two-character chain ids(   t   sgtbxt   open_appendt   crystal_symmetryt   space_group_infot   symbolt   P1t
   append_end(   t   lent   AssertionErrort	   iotbx.pdbt   pdbt   inputt   construct_hierarchyR   t	   unit_cellt   fractionalization_matrixt   orthogonalization_matrixt   atomst   extract_xyzt	   enumeratet   space_groupt
   is_unit_mxt   strt	   deep_copyt   set_xyzt   as_rationalt   as_floatt   appendt	   hierarchyt
   join_rootst   openR	   t   cctbxR   t   write_pdb_filet   Truet   customized_copy(   t   argst   iotbxt   pdb_inpt   pdb_hierarchyt   cst   frac_mxt   orth_mxt
   sites_fract   pdb_hierarchiest   i_sym_opt   sym_opt   pdb_hierarchy_copyt   combined_pdb_hierarchiest   output_file_nameR   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/examples/pdb_symmetry_copies.pyt   run	   s<    	 		 		t   __main__NR(   i   (   t   __doc__t
   __future__R    R6   t   __name__t   syst   argv(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/examples/pdb_symmetry_copies.pyt   <module>   s
   	!