ó
±™xTc           @   s@  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d  d l
 m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d „  Z e ƒ  Z e Z d „  Z d e j d „ Z d	 e j f d
 „  ƒ  YZ d „  Z e d k r<e j ƒ  Z e e j d ƒ d e j ƒ  e GHn  d S(   iÿÿÿÿ(   t   divisionN(   t   flex(   t   runtime_utilsc           C   s   t  j j d d d t ƒ S(   Nt   phil_strings%  
random_seed=2679941
  .type = int
omit = False
  .type = bool
  .help = Use composite OMIT protocol
sharp=True
  .type=bool
signal_threshold = 0.5
  .type = float
ignore_zero_occupancy_atoms = True
  .type=bool
output {
  file_name = fem.mtz
    .type = path
    .style = hidden
  column_root_label = FEM
    .type = str
    .input_size = 120
    .short_caption = Base MTZ column label
  gui_output_dir = None
    .type = path
    .short_caption = Output directory
    .style = bold output_dir
}
include scope libtbx.phil.interface.tracking_params
t   enable_twin_law(   t   mmtbxt   command_linet    generate_master_phil_with_inputst   False(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyt   get_master_phil   s    c         C   s9   |  d  k r t j ƒ  }  n  t j |  ƒ t j |  ƒ d  S(   N(   t   NoneR   t   get_random_seedt   randomt   seedt   set_random_seed(   t   random_seed(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyt   manage_random_seed4   s    s   phenix.development.femc         C   s/  t  j j d |  d t d | d t d t d t d d ƒ } | j } | j } | j } | j	 } t
 d	 | j ƒ | j ƒ  } t  j j j ƒ  }	 | j |	 _ | j }
 | j j ƒ  } | j d
 d ƒ } t  j j j d | d | d | d | d | ƒ } | j d | j j d | j j d d ƒ t j j | j j ƒ S(   Nt   argst   master_philt   outt   process_pdb_filet   force_non_anomaloust   create_fmodelt   usage_strings•   
  phenix.development.fem model.pdb data.mtz
  phenix.development.fem data.mtz model.pdb f_obs_label=F

Calculate a "feature-enhanced" 2mFo-DFc map.
R   t   stringt   watert   f_obst   r_free_flagst   xray_structuret   solvent_selectiont   logt	   file_namet	   fem_labelt
   orig_labels   2mFo-DFc(   R   R   t   load_model_and_dataR   R   t   Truet   paramsR   R   R   R   R   t   crystal_symmetryt   maskst   mask_master_paramst   extractt   ignore_zero_occupancy_atomst   pdb_inpt   pdb_hierarchyt   atom_selection_cachet	   selectiont   mapst   femt   runt   write_output_filest   outputR   t   column_root_labelt   ost   patht   abspath(   R   t   command_nameR   t   cmdlineR$   R   R   R   t   cst   mask_paramsR*   t   asct   sol_selR/   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyR0   :   s<    								t   launcherc           B   s   e  Z d  „  Z RS(   c         C   s9   t  j |  j ƒ t  j |  j ƒ t d |  j d t j ƒ S(   NR   R   (   R4   t   mkdirt
   output_dirt   chdirR0   R   t   syst   stdout(   t   self(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyR0   a   s    (   t   __name__t
   __module__R0   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyR=   `   s   c         C   s   t  j j |  ƒ S(   N(   R   R   t   validate_input_params(   R$   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyt   validate_paramsf   s    t   __main__i   s   Time: %6.4f(   t
   __future__R    t   mmtbx.command_lineR   t
   mmtbx.mapst
   iotbx.philt   iotbxt	   iotbx.pdbt   scitbx.array_familyR   t   libtbxR   t   os.pathR4   t   timeRA   R   t   mmtbx.maps.femt   mmtbx.masksR	   R   t   master_paramsR   RB   R0   t   target_with_save_resultR=   RG   RD   t   t0t   argv(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/command_line/development_fem.pyt   <module>   s.   			&	