ó
	šxTc           @   s7  d  d l  m Z d  d l m Z d  d l m Z d  d l Z d  d l m Z d  d l	 Z d  d l
 m Z d  d l Z d  d l Z d  d l Z e e j _ d e f d „  ƒ  YZ d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z e d k r3e j j d ƒ se j d ƒ n  e j d ƒ e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   driver(   t   phenix_interfaceN(   t   easy_pickle(   t   StringIOt   test_cbc           B   s    e  Z d  „  Z e e d „ Z RS(   c         C   s   g  |  _  d  S(   N(   t   messages(   t   self(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   __init__   s    c         C   s   |  j  j | ƒ d  S(   N(   R   t   append(   R   t   messaget   datat
   accumulatet   cached(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   __call__   s    (   t   __name__t
   __module__R   t   TrueR   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyR      s   	c         C   sš   t  j j d d |  d t j j ƒ } | d  k rY t  j j d d |  d t j j ƒ } n  | d  k	 sk t ‚ t j j t j	 ƒ  |  ƒ } t
 j | | ƒ d  S(   Nt   relative_paths   phaser/test/%st   tests   phaser/tutorial/%s(   t   libtbxt   envt   find_in_repositoriest   ost   patht   isfilet   Nonet   AssertionErrort   joint   getcwdt   shutilt   copy(   t	   file_namet	   full_patht	   dest_path(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   copy_file_to_cwd   s    

c   
      C   sØ  d d d g } x | D] } t  | ƒ q Wt j j d d d t j j ƒ } t ƒ  } t j	 d d g d	 | ƒ t ƒ  } t
 j ƒ  j d	 | ƒ | j ƒ  | j ƒ  k sª t ‚ d
 |  k rÂ t j } n	 t ƒ  } t ƒ  } t j j | ƒ t j	 d | d d g d	 | ƒ d |  k rÔd
 |  k r't j } n	 t ƒ  } t j	 d | g d	 | ƒ } | j ƒ  } | j ƒ  d k sot ‚ t j j | j ƒ  ƒ s�t ‚ t j d | ƒ t j d ƒ }	 |	 j ƒ  j ƒ  d k sÊt ‚ t j j d d d t j j ƒ } t j	 d | g d	 | ƒ } t j d | ƒ t j j d d d t j j ƒ } t j	 d | g d	 | ƒ } | j ƒ  } | j ƒ  d k svt ‚ t j j | j ƒ  ƒ s”t ‚ t j d | ƒ t j d ƒ }	 |	 j ƒ  j ƒ  d k sÔt ‚ n  d  S(   Ns   beta.pdbs   blip.pdbs   beta_blip_P3221.mtzR   s*   phaser/test/phenix_interface/beta_blip.effR   t   argss   --show_defaultst   outs	   --verboses   --show_scripts   --test_modes   --no-runiÈ   s   mr.pkls+   phaser/test/phenix_interface/beta_blip1.effs   beta_solution.pkls+   phaser/test/phenix_interface/beta_blip2.eff(   R#   R   R   R   R   R   R   R   R   t   runR   t   master_philt   showt   getvalueR   t   syst   stdoutR   t	   call_backt   register_handlert   get_phaser_objectt	   getTopLLGt   getTopPdbFileR   t   dumpt   load(
   R$   t   input_filesR    t   eff_fileR%   t   out2t   cbt   resultt   result_t   result2(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   exercise_mr"   sX    					c         C   sY  d d d g } x | D] } t  | ƒ q Wt j j d d d t j j ƒ } | d  k	 s] t ‚ x6 d d g D]( } t j j	 | ƒ rj t j
 | ƒ qj qj Wd	 |  k r® t j } n	 t ƒ  } t ƒ  } t j d
 | d d g d | ƒ d |  k rUd	 |  k rt j } n	 t ƒ  } t j d
 | d g d | ƒ } t j d | ƒ t j j d ƒ sUt ‚ n  d  S(   Ns   S-insulin_hyss.pdbs   S-insulin.mtzs   S-insulin.seqR   s(   phaser/test/phenix_interface/insulin.effR   s   insulin.mtzs   insulin_data.mtzs	   --verboseR$   s   --show_scripts   --test_modeR%   s   --no-runs   sad.pkls   insulin.1.mtz(   R#   R   R   R   R   R   R   R   R   t   existst   removeR*   R+   R   R   R&   R   R1   (   R$   R3   R    R4   R%   R7   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   exercise_sadV   s.    			c         C   s*   d d l  m } | j d d |  k ƒ d  S(   Niÿÿÿÿ(   t   tst_phenix_interface_ept   verboses	   --verbose(   t   phaserR>   t   exercise(   R$   R>   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   exercise_sad_simpleq   s    c         C   sÍ   t  j j d d d t j j ƒ } t  j j d d d t j j ƒ } t  j j d d d t j j ƒ } | d  k rx d GHd  S| | | d d d	 g }  d
 |  k r¨ t j } n	 t	 ƒ  } t
 j d |  d | ƒ } d  S(   NR   s$   phenix_regression/wizards/coords.pdbR   s$   phenix_regression/wizards/native.scas!   phenix_regression/wizards/seq.dats:   phenix_regression not found, skipping exercise_mr_simple()s   model_rmsd=0.85s   root=simples   --test_modes	   --verboseR$   R%   (   R   R   R   R   R   R   R   R*   R+   R   R   R&   (   R$   t   pdb_filet   sca_filet   seq_fileR%   R7   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   exercise_mr_simpleu   s&    		c         C   s{   d GHd d l  m } | j d t ƒ } d GHt |  ƒ d GHt |  ƒ d |  k rr d GHt |  ƒ d	 GHt |  ƒ n  d
 GHd  S(   Ns   validating PHIL defaults...iÿÿÿÿ(   R   t   validates   exercising simple MR run...s   exercising simple EP run...s   --quicks   exercising MR mode...s   exercising EP mode...t   OK(   R@   R   R'   R   RF   RB   R:   R=   (   R$   R   R'   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyRA   ‹   s    


t   __main__t   tst_phenix_interfacei   (    t
   __future__R    t   phaser.phenix_interfaceR   R@   R   t   libtbx.load_envR   R   t   libtbx.utilst	   cStringIOR   R   R   R*   R   t   utilst   disable_tracebacklimitt   objectR   R#   R:   R=   RB   RF   RA   R   R   t   isdirt   mkdirt   chdirt   argv(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/command_line/test_phenix_interface.pyt   <module>   s,   		4				