ó
4™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 Z	 d  d l
 Z d  d l m Z d  d l m Z d  d l m Z d  d l Z d  d l Z e d d	 d
 d „ Z d „  Z d „  Z e d k rÝ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t	   kissel_io(   t
   identifier(   t   xray_scatteringN(   t   user_plus_sys_time(   t   OptionParser(   t   easy_picklet   kissel_fits_plotsi    c         C   så  | d  k r' t j j j d | ƒ } n  d } d } t |  ƒ d k r£ t |  d j d ƒ ƒ d k r£ g  |  d j d ƒ D] }	 t |	 ƒ ^ qx \ } } |  d }  n  | sñ t j	 j
 | ƒ sÍ d | GHd  } n  | d k rñ | d  k	 sî t ‚ qñ n  d }
 xç|  D]ß} |
 | | k } |
 d 7}
 | s*qþ n  i  } | | d <t j | ƒ } | j ƒ  } | | j | d k @} t j j j | j j | ƒ | j j | ƒ | j j | ƒ t j d t ƒ ƒ } t j j j | j j | ƒ | j j | ƒ | j j | ƒ t j d t ƒ ƒ } | sKt j j j d	 | j d
 | d | d | d | ƒ | | j <nb t j j j d	 | j d
 | d | d | ƒ } | j } t j d | j ƒ  d d | ƒ g | | j <t j  j! ƒ  d t" | j ƒ } t# j$ | | ƒ qþ Wd  S(   Nt   max_n_termsi   i    t   ,i   s<   No plots because target directory does not exist (mkdir %s).t   fit_parametersg�íµ ÷Æ°>t   labelt   null_fitt   paramst	   plots_dirt   verboset   null_fit_moret   stoliÿÿÿÿt   gaussian_sums   %s_fits.pickle(%   t   Nonet   cctbxt   eltbxt   gaussian_fitR
   t   lent   splitt   intt   ost   patht   isdirt   AssertionErrorR   t
   read_tablet   itvc_sampling_selectiont   xt   scitbxt   matht   gaussiant   fitt   selectt   yt   sigmasR   t   Falset   incremental_fitst   elementt   fit_with_golay_startst   final_gaussian_fitt   fitted_gaussiant   table_xt   syst   stdoutt   flushR   R   t   dump(   t   argst   cutoffR   t   six_termR   R   R   t   chunk_nt   chunk_it   it   i_chunkt	   file_namet   flagt   resultst   tabt   more_selectiont   fit_selectionR   R   t   best_mint   gt   pickle_file_name(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/development/kissel_fits.pyt   run   sl    12	

					#c          O   s1   t  ƒ  } z t |  | Ž  Wd  d | j ƒ  GHXd  S(   Ns   CPU time: %.2f seconds(   R   RC   t   elapsed(   R3   t   kwt   timer(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/development/kissel_fits.pyt   run_and_timeF   s    	c          C   s
  t  d d ƒ }  |  j d d d d d d d	 d
 ƒ|  j d d d d d d d d d	 d ƒ|  j d d d d d d d d d	 d ƒ|  j d d d d d d d	 d ƒ|  j ƒ  \ } } t | ƒ d k  rÕ |  j ƒ  d  St d | d | j d | j d  | j d! | j	 ƒ d  S("   Nt   usages?   usage: python %prog file_name [n_chunks,i_chunk] [scatterer...]s   -vs	   --verboset   actiont
   store_truet   defaulti    t   helps&   show comparison table for each elements   -cs   --cutofft   typet   floati   t   metavart   FLOATs   maximum sin(theta)/lambdas   -ns   --max_n_termsR   i   t   INTs    maximum number of Gaussian termss   -ss
   --six_terms/   fit six-term Gaussians using Golay based startsi   R3   R4   R   R5   R   (
   R   t
   add_optiont
   parse_argsR   t
   print_helpRG   R4   R   R5   R   (   t   parsert   optionsR3   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/development/kissel_fits.pyt   mainM   s0    	
			t   __main__(   t
   __future__R    t   cctbx.eltbx.developmentR   t1   cctbx.eltbx.development.create_n_gaussian_raw_cppR   t   cctbx.eltbxR   t   scitbx.math.gaussian_fitR!   t   cctbx.eltbx.gaussian_fitR   t   libtbx.utilsR   t   libtbx.option_parserR   t   libtbxR   R/   R   R(   R   RC   RG   RW   t   __name__(    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/development/kissel_fits.pyt   <module>   s   9		