ó
<™xTc           @   s¨   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d  d l m Z d	 „  Z d
 „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   division(   t   phase_o_phrenia(   t
   sdb_reader(   t   uctbx(   t   sgtbx(   t   flex(   t   io_utils(   t	   cgi_utilsc         C   sI   t  j |  d d d d d d d d d d d f ƒ } t  j |  ƒ | _ | S(   Nt   ucparamst   sgsymbolt
   conventiont    t   formatt	   coor_typet	   coor_filet   coordinatest   min_distance_sym_equivs   0.5t   d_mint   3t   min_peak_distances   4.0t   max_reduced_peakst   60(   s   ucparamsN(   s   sgsymbolN(   s
   conventionR   (   s   formatN(   R   N(   R   N(   s   coordinatesN(   s   min_distance_sym_equivs   0.5(   s   d_minR   (   s   min_peak_distances   4.0(   s   max_reduced_peaksR   (   R   t   inp_from_formt   Nonet   coordinates_from_formR   (   t   formt   inp(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/phase_o_phrenia.pyt   interpret_form_data
   s    	c         C   sy   t  j |  ƒ } g  } x] | D]U } | d  k	 r: | | _ n  | d  k	 rR | | _ n  | j d | ƒ } | j | ƒ q W| S(   NR   (   R   t   multi_sdb_parserR   t	   unit_cellt   space_group_infot   as_xray_structuret   append(   t   linesR   R   R   t	   sdb_filest   xray_structurest   sdbt   xray_structure(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/phase_o_phrenia.pyt   sdb_files_as_xray_structures   s      c         C   s   |  j  } | d  k	 r' t j | ƒ } n  |  j } | d  k	 rZ t j d | d |  j ƒ } n  t |  j	 ƒ } t
 |  j | | | ƒ S(   Nt   symbolt   table_id(   R   R   R   R   R	   R   R   R
   t   floatR   R&   R   (   R   R   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/phase_o_phrenia.pyt   inp_as_xray_structures$   s    	 	c      
   C   s�  d GH| j  d k r\ d Gt | j ƒ GHHt | ƒ } t | ƒ d k rÓ d GHHd GHd GHHqÓ nw | j d  k rw d | _ n  | j d  k r’ d	 | _ n  t j	 | ƒ } | j
 ƒ  d G| j ƒ  GHHt j | | | ƒ g } t | j ƒ } d
 G| GH| d k rt d ‚ n  Ht | j ƒ } d G| GH| d k r4t d ‚ n  Ht | j ƒ } d G| GH| d k ret d ‚ n  Hx+| D]#} | j  d k r–| j
 ƒ  j ƒ  Hn  | j ƒ  j ƒ  d k r´qmn  t j d | d | d | d | ƒ }	 d Gt |	 ƒ GHHt t |	 ƒ d ƒ }
 |
 d k rmt d |
 d ƒ } |
 | k r5d G|
 GHHn  d GHHt j t j |
 | ƒ ƒ } xv t |
 ƒ D]h } |	 | j } t t | | ƒ ƒ } t d t | | ƒ ƒ } x$ t | ƒ D] } t | | | f <q±WqcWxq t | d d d ƒ D]Y } d } x; t |
 ƒ D]- } | | | f r"| d 7} qÿ| d 7} qÿWd | j ƒ  GHqæWd  d! |
 GHHd" GHd# GHd$ GHx) |	 D]! } d% | j d& Gd' | j  GHqgWHqmqmWd( GHd  S()   Ns   <pre>t   cns_sdbs8   Minimum distance between symmetrically equivalent sites:i    s   No CNS sdb files found!s>   Note that each file must start with {+ file: some_file_name +}s   in order to be recognized.R   t   P1s   Minimum d-spacing:g        s$   d-spacing must be greater than zero.s   Minimum peak distance:s,   min_peak_distance must be greater than zero.s   Maximum number of peaks:s,   max_reduced_peaks must be greater than zero.R%   R   R   R   s   Actual number of peaks:i<   i
   i   s   Number of peaks used for plot:s   Plot of relative peak heights:i   iÿÿÿÿt   *t    s       |s       -t   -s
   Peak list:s
     Relatives"      height   Fractional coordinatess	       %5.1fid   s    %8.5f %8.5f %8.5fs   </pre>(!   R   R)   R   R*   t   lenR   R   R	   R   t"   special_position_settings_from_inpt   show_summaryt   structure_from_inpR   t
   ValueErrorR   t   intR   t   show_scattererst
   scattererst   sizeR   t   calculate_exp_i_two_phi_peakst   mint   maxR   t   boolt   gridt   xranget   heightt   roundt   Truet   rstript   site(   t   server_infoR   t   statust
   structurest   special_position_settingsR   R   R   t	   structuret   reduced_peakst   plot_nxt   plot_nyt   plott   iR?   t   ht   jt   linet   peak(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/phase_o_phrenia.pyt   run1   s¢      
			 			  N(   t
   __future__R    t   cctbx.examplesR   t	   iotbx.cnsR   t   cctbxR   R   t   cctbx.array_familyR   t	   cctbx.webR   R   R   R&   R*   RR   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/web/phase_o_phrenia.pyt   <module>   s   		
	