ó
©%�Tc           @   sv   e  a d  a d „  Z d „  Z d d „ Z e  e  e d „ Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d S(   i    c         C   s   |  |  j  d ƒ d t |  ƒ !S(   Nt   /i   (   t   rfindt   len(   t   label(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   split_labelP   s    c   	      C   sM  d d  l  } t d ƒ r7 t d ƒ } t | |  g ƒ n| j d ƒ } | sT d GHnõ d } t ƒ  rp | d 7} n  | j j | | ƒ } | j j | ƒ sÍ | j j | d | ƒ } | j j | ƒ rÍ | } qÍ n  | j j | ƒ sç d GHnb | j d	 ƒ } | sd
 GHnE | j j | d d ƒ } | j j | ƒ s6d GHn t | | |  g ƒ d  S(   Niÿÿÿÿt   logviewt   CCP4I_TCLTKs?   BL ERROR:: We cannot allocate $CCP4I_TCLTK so no wish availablet   wishs   .exet   bins7   BL ERROR:: We have $CCP4I_TCLTK but we cannot find wisht	   CCP4I_TOPsA   BL ERROR:: We cannot allocate $CCP4I_TOP so no loggraph availables   loggraph.tcls=   BL ERROR:: We have $CCP4I_TOP but we cannot find loggraph.tcl(	   t   ost   command_in_path_qmt   find_exet   run_concurrentlyt   getenvt
   is_windowst   patht   joint   isfile(	   t   logfileR
   t   log_viewt   ccp4i_tcltkt   wish_commandt   wish_exet   wish_exe_win_altt	   ccp4i_topt   loggraph_exe(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   run_loggraphW   s4    		t    c   8      C   sÄ  d d  l  } d d  l } d d  l } t d d d ƒ } d } |	 d k r§ t | ƒ d k r§ d t | d	 ƒ d
 t | d	 ƒ d t | d ƒ d t | d ƒ } nQ | rø t ƒ  r× d t | ƒ d t | ƒ } qø d t | ƒ d t | ƒ } n  | d k r| d t | ƒ 7} n  |	 d k rw|
 d	 d k rw|
 d d	 k rw| d t |
 d	 ƒ d t |
 d ƒ 7} qwn  |	 d k r|
 d d k rt |
 d	 ƒ } t | ƒ d k rd d d d g } | d 7} xA t d ƒ D]0 } t | | ƒ } | d | | d | 7} qÞWqqn  d |  d | d | d  | g } | d k rX| d! | g 7} n  d" g } t	 ƒ  } | d k r†| j
 d# ƒ n  t ƒ  } | j | ƒ rÌ| d	 k rÌ| d k r¯| j
 d$ t | ƒ ƒ t	 ƒ  d k rÆd } t | ƒ r¤x¸ t | ƒ D]¢ } t | | ƒ sût | | ƒ }  t | | d	 ƒ }! t | | |  d ƒ }" d% t | ƒ d& t |! ƒ d | d' t |" ƒ d | }# | j
 |# ƒ | d 7} qûqûWq¬d( GHqÆqÉ| j
 d) t | ƒ ƒ qÌn  | d k rîd* }$ | j
 |$ ƒ n  t ƒ  r| j
 d+ ƒ n  |	 d k ræ| s)| j
 d, ƒ n  t ƒ  }% x± |% D]¦ }& d }' |& d	 }( |& d }) |& d }* |& d }+ |' d- |( 7}' |) r˜|' d t |) ƒ 7}' n  |* rµ|' d t |* ƒ 7}' n  |+ rÒ|' d t |+ ƒ 7}' n  | j
 |' ƒ q9Wn  t ƒ  rst | ƒ }, |, rsxl |, D]a }- t |- ƒ }. |. d k rd. t |. ƒ d/ }/ x |- D] }0 |/ d |0 7}/ qAW| j
 |/ ƒ qqWqsn  t | | ƒ }1 t |1 ƒ sž|1 j
 d0 ƒ n  |1 j
 | ƒ d }2 t | ƒ d	 k rÐ|2 | 7}2 n  |2 d1 7}2 |2 t t ƒ 7}2 |2 d2 7}2 t d 7a d3 G| GHd4 G|1 GHy d5 G| j d6 GHWn d7 GHn Xy d8 G| j d9 GHWn d7 GHn Xy d: G| j d; GHWn d7 GHn Xy d< G| j d= GHWn d7 GHn X|1 d> g 7}1 t ƒ  rdt j dE k rd| rdt | | |1 |2 ƒ \ }3 }4 t ƒ  }5 t  d? d@ t |3 j! ƒ dA dB ƒ }6 t" dC ƒ t# j$ dD t% | | | | | | | |2 |
 | | | |	 |3 |4 |6 |5 f t& ƒ n\ t' | | |1 |2 ƒ }7 | d	 k r�| | f St% | | | | | | | |2 |
 | | | |	 |7 ƒ d  S(F   Niÿÿÿÿt   refmac5t   CCP4_BINt   PATHR   i   i   s	   LABIN F+=i    s    SIGF+=s    F-=i   s    SIGF-=s	   LABIN IP=s    SIGIP=s	   LABIN FP=s    SIGFP=s    FREE=s	    - 
PHIB=s    FOM=i   t   HLAt   HLBt   HLCt   HLDs    - 
t    t   =t   XYZINt   XYZOUTt   HKLINt   HKLOUTt   LIBINs   MAKE HYDROGENS NOs   REFInement TYPE RIGIDs   RIGIDbody NCYCle s   RIGIdbody GROUp s    FROM s    TO s   WARNING:: no valid refmac imol!s   NCYC s   REFI TLSC 5t   TWINs   REFI SADs
   ANOM FORM s   NCSRestraints NCHAins s    CHAIns s   WEIGHT AUTOs   refmac-from-coot-s   .logs3   INFO: running refmac with these command line args: s,   INFO: running refmac with these data lines: s   environment variable:  SYMOP: t   SYMINFOs
    not set !s   environment variable: ATOMSF: t   ATOMSFs   environment variable:  CLIBD: t   CLIBDs   environment variable:   CLIB: t   CLIBt   ENDs   Kill refmacs   kill_process(t   )s   stop.svgs   Running refmaciè  (   i   i   ((   R
   t   statt   operatorR   R   R   t   refmac_use_intensities_statet   evalt   ranget   get_refmac_refinement_methodt   appendt   refmac_imol_coordst   isNumberTypet   strt   is_valid_model_moleculet	   chain_idst   is_solvent_chain_qmt   chain_n_residuest   seqnum_from_serial_numbert   refmac_use_twin_statet   get_refmac_sad_atom_infot   refmac_use_ncs_statet   ncs_chain_idst   add_refmac_extra_paramst   extra_params_include_weight_pt   refmac_countt   environt   coot_has_gobjectt   syst   version_infoR   t   add_coot_toolbar_separatort   coot_toolbar_buttont   pidt   add_status_bar_textt   gobjectt   timeout_addt   post_run_refmact   Truet   popen_command(8   t   pdb_in_filenamet   pdb_out_filenamet   mtz_in_filenamet   mtz_out_filenamet   extra_cif_lib_filenamet   imol_refmac_countt   swap_map_colours_post_refmac_pt   imol_mtz_moleculet   show_diff_map_flagt   phase_combine_flagt   phib_fom_pairt   force_n_cyclest   make_molecules_flagt   ccp4i_project_dirt   f_colt	   sig_f_colt
   r_free_colR
   R2   R3   t   refmac_execfilet   labin_stringt   hl_listt   hl_label_lst   it   hl_labelt   command_line_argst	   std_linest   refinement_typet   imol_coordst   group_not   chain_idt
   n_residuest   start_resnot	   end_resnot
   rigid_linet
   tls_stringt   sad_atom_lst   sad_atomt
   sad_stringt	   atom_namet   fpt   fppt
   wavelengtht   chain_ids_from_ncst   ncs_sett   no_ncs_chainst
   ncs_stringt   chaint
   data_linest   refmac_log_file_namet   refmac_processt   logObjt	   separatort   kill_buttont   refmac_status(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   run_refmac_by_filename“   s,   $M	!! -
'			<		



	


								
			
	c      	   C   sY  | r] | j  ƒ  d  k rV | j ƒ  | j  ƒ  } | rZ | d j ƒ  | d j ƒ  qZ qc t Sn | } | r¥ d GH| r“ | d j ƒ  | d j ƒ  n  | rUd GHt Sn°t | ƒ | d k rÊ d d g } n | d g } t ƒ  } t d ƒ } t	 | ƒ } | r
t d ƒ n  t
 | |  d ƒ | d k s0t ƒ  rX| d d d d d d d	 d
 g	 | } n% | d d d d d d |	 |
 g	 | } t | Œ  } t | ƒ r¢t | ƒ n  t ƒ  rdt | | ƒ | d k rd| d k  rdd } d } d } d } d } d } | d k r| d } | d } n  | d k rBt | d ƒ \ } } } } n  t | | | | | | | ƒ qdn  | d k r€t | | ƒ n  | d k r>| d k r| d d d d d d d	 d
 g	 | } t | Œ  | d d d d d d d	 d
 g	 | } y t | Œ  Wq;d GHq;Xq>| d d d d d d |	 |
 g	 | } t | Œ  n  t | | ƒ | rUt Sd  S(   Ni    i   s   Refmac Failed.s   ... or was killedR   i   t   FWTt   PHWTt   FPt   SIGFPi   t   DELFWTt   PHDELWTt   FANt   PHANs4   BL INFO:: couldnt make the anomalous difference map.(   t   pollt   Nonet   closet   destroyRS   t   FalseR   t   recentre_on_read_pdbt   set_recentre_on_read_pdbt   handle_read_draw_moleculet   set_refmac_counterRA   t$   make_and_draw_map_with_refmac_paramst   valid_map_molecule_qmt   set_imol_refinement_mapt   get_refmac_used_mtz_file_statet#   set_stored_refmac_file_mtz_filenameR5   t   save_refmac_phase_params_to_mapt   swap_map_colourst   read_refmac_log(   RZ   R\   R[   R]   RV   RX   RW   R„   R_   Rc   Rd   Re   R^   R…   R†   t   buttont   run_in_timerR‰   t
   r_free_bitt   recentre_statust   novaluet   imolt   argst
   new_map_idt   phibt   fomt   hlat   hlbt   hlct   hldt   hlab(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyRR   j  s„    


	(%	
%
%%c         C   sK   t  d „  |  ƒ } t | ƒ d k r( t St | ƒ d k r> t Sd GHt Sd  S(   Nc         S   s   d |  j  ƒ  k S(   Nt   WEI(   t   upper(   t   x(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   <lambda>æ  s    i   i    sn   BL WARNING:: This shouldn't happen, we have more than one weight defined. God knows what refmac will do now...(   t   mapt   sumRS   R—   (   t   params_listt   have_weight(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyRF   ä  s    c            s:  |  } g  } t  r t  } nq d } t j j | ƒ rŒ y t | d ƒ } Wn% t k
 r^ d GHqŒ d G| GHqŒ X| j ƒ  } d GH| j ƒ  n  | r6d G| GH| d k râ g  | D]+ } | d d !j ƒ  d	 k sÓ | n d
 ^ q® } n | } xK |  D]@ ‰  t	 ‡  f d †  | ƒ } t
 | ƒ sï | j ˆ  j ƒ  ƒ qï qï Wn  | S(   Ns   refmac-extra-params.txtt   rs/   BL INFO:: we dont have refmac-extra-params files    BL ERROR:: unknown error readings9   BL INFO:: we have refmac-extra-params file and read liness   refmac extra params: i    i   t   NCYs   NCYC 0c            s   ˆ  d d !j  ƒ  |  j  ƒ  k S(   Ni    i   (   R´   (   Rµ   (   t   line(    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyR¶     s    (   t   refmac_extra_paramsR
   R   R   t   opent   IOErrort	   readlinesR•   R´   R·   R¸   R8   (   t	   pre_linest   force_no_cyclest
   post_linest   extra_paramst   extras_file_namet   fRµ   t   ls(    (   R½   sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyRE   ö  s2    		;c         C   s  d d  l  } | j j | ƒ r t |  ƒ rø t d ƒ } | d k sJ d GHqý d } | d } | d } | d }	 d	 }
 t |  | ƒ t ƒ  } t ƒ  } t d ƒ t	 d ƒ t
 | | | |	 |
 d d d d
 d g  d d
 d	 | | d	 ƒ t | ƒ t	 | ƒ q	d GHn	 d | GHd  S(   Niÿÿÿÿs   coot-refmaci    s%   Failed to make coot-refmac directory
s   coot-refmac/refmac-for-phasess   .pdbs   -tmp.pdbs   .mtzR   i   s%   BL WARNING:: no valid model molecule!s!   BL WARNING:: mtzfile %s not found(   R
   R   R   t   valid_model_molecule_qmt   make_directory_maybet   write_pdb_fileRC   t   refmac_use_tls_statet   set_refmac_use_ncst   set_refmac_use_tlsRŠ   (   R©   t   mtz_file_nameRc   Rd   R
   t	   dir_statet   stubt   pdb_int   pdb_outt   mtz_outt   cif_lib_filenamet	   ncs_statet	   tls_state(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   run_refmac_for_phases!  s2    


		

	
c            sM   d d  l  } d d  l } | j j ˆ ƒ rI t d ‡  ‡ ‡ f d †  ƒ n  d  S(   Niÿÿÿÿs@     Choose a molecule from which to calculate Structure factors:  c            s   t  |  ˆ ˆ  ˆ ƒ S(   N(   RØ   (   R©   (   Rc   RÏ   Rd   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyR¶   O  s    (   R
   t   timeR   R   t   molecule_chooser_gui(   RÏ   Rc   Rd   R
   RÙ   (    (   Rc   RÏ   Rd   sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   refmac_for_phases_and_make_mapI  s    c   %         sÿ  d d  l  } d d  l } ‡ f d †  ‰  ‡  ‡ ‡ ‡ ‡ f d †  } ‡  ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  }	 ‡ ‡ ‡ ‡ f d	 †  }
 ‡ ‡ ‡ ‡ f d
 †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } ‡ ‡ ‡ ‡ f d †  } d „  ‰ d „  } d „  } g  } g  ‰ g  ‰ t ‰ d } t } t } d } | j d | j ƒ } | j d | j ƒ } | j j | j j | ƒ ƒ } | j j | ƒ ròy) t	 | d ƒ } | j
 ƒ  ‰ | j ƒ  Wn d G| GHn Xˆ rŽd } t ˆ ƒ } xE| | k  rŠˆ | } | j | ƒ } | rÖ| j ƒ  } xS | D]H }  | j |  ƒ }! d |  j ƒ  k r‡t | | j |  ƒ d ƒ } Pq‡q‡Wn  d | k rï| | ƒ n d | k r| | ƒ n  | | k rVt | | j | ƒ d t | ƒ d !ƒ }" |" | k rVt } qVn  | rtd | k rtt } qtn  | r}| r}d | k r™| | ƒ q}d  | k r²| | ƒ q}d! | k rË| | ƒ q}d" | k rä|	 | ƒ q}d# | k rý|
 | ƒ q}d$ | k r| | ƒ q}d% | k r/| | ƒ q}d& | k rH| | ƒ q}d' | k ra| | ƒ q}d( | k r}| | ƒ q}n  | d 7} qIWn  | ˆ ƒ }# | |# ƒ }$ | ˆ 7} | |$ 7} | ræy t t d) | ƒ Wqïd* GHqïXqûd+ G| GHn	 d, | GHd  S(-   Niÿÿÿÿc            s<   x5 t  d d ƒ D]$ } ˆ  |  | } d | k r | Sq Wt S(   Ni   i   s   ch:(   R6   R—   (   t   post   jt	   next_line(   t   lines(    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_next_linek  s
    c            sÔ  ˆ |  } ˆ  |  ƒ } d | k r_| r_d | k rE ˆ |  d } n  ˆ | ƒ } | d } | d } t  | d ƒ } | d } t  | d ƒ } | d	 }	 d
 }
 t | ƒ d k r¾ | d	 }
 n | j ƒ  } | d }
 d | d t | ƒ d t | ƒ d |
 } d j | j ƒ  ƒ d d j | j ƒ  ƒ } ˆ j | ˆ | | d
 d d
 d g d
 | g
 ƒ nqd | k rp| d d !} | d } t  | d d !ƒ } | d d !} t  | d d !ƒ } | d d !}	 d
 } d j | j ƒ  ƒ } d | k rd } | d 7} | d j | j ƒ  ƒ 7} n  d  | d t | ƒ d t | ƒ | } ˆ j | ˆ | | d
 d d
 d g d
 | g
 ƒ n`d! | k rc| rcˆ | ƒ } | d } | d } t  | d ƒ } | d } t  | d ƒ } | d	 }	 | d" } d# | d t | ƒ d t | ƒ } d j | j ƒ  ƒ d d j | j ƒ  ƒ } ˆ j | ˆ | | d
 d d
 d g d
 | g
 ƒ nmd$ | k rÐ| rÐˆ | ƒ } | d } | d } t  | d ƒ } | d } | d } | d	 } | d" } | d } t  | d% ƒ } | d& }	 | d' } | d( } | d) d* !j ƒ  } | d+ k r-d
 } n  d, | d- | d t | ƒ d | d | d t | ƒ d | } d j | j ƒ  ƒ d d j | j ƒ  ƒ } ˆ j | ˆ | | d
 | | d g d
 | g
 ƒ n  d  S(.   Nt   CISs   ch:i   i   iÿÿÿÿi   i   i   i   R   i   s   pre-WARNING: CIS bond: R$   s    - s     s   
s    CA t   dummyt   gapi   i    i%   i)   i+   i.   i6   i:   i<   i?   s
   -link wills   'gap'-link createds   pre-WARNING: connection gap: s   big distancei	   s   pre-WARNING: large distance: t   linki   i   i   i   i   i   t   .s   pre-WARNING: s    link found: (   t   intR   t   splitR;   R   R8   t   rstrip(   Rj   t	   this_lineRÞ   t   item_lsR‚   Rq   t   res_no1t	   res_name1t   res_no2t	   res_name2t	   angle_strt	   info_textt   tooltipt
   extra_infot   dist_strt   chain1t	   chain_id1t
   atom_name1t	   alt_conf1t   chain2t	   chain_id2t
   atom_name2t	   alt_conf2t	   link_type(   Rà   R©   Rß   t   split_cleant   warning_info_list(    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_warnings  sŽ    





.,

*




&,









	F,c            sl  ˆ |  } ˆ  |  ƒ } d | k rh| rhˆ | ƒ } | d } | d } t  | d ƒ } | d } | d } | d }	 | d }
 |
 d } t  | d	 ƒ } | d
 } | d } | d } |	 d k rÍ d }	 n  d | d t | ƒ d | d | d t | ƒ d | } d j | j ƒ  ƒ d d j | j ƒ  ƒ } ˆ j | ˆ | | d | |	 d g d | g
 ƒ n  d  S(   Ns   link is foundi   iÿÿÿÿi   i   i   i   i
   i   i   i   i   Rå   R   s   pre-INFO: not used link: R$   s    - s   
Râ   (   Ræ   R;   R   Rç   R8   (   Rj   Ré   RÞ   Rê   Rô   Rõ   Rë   Rì   Rö   R÷   Rø   Rù   Rí   Rî   Rú   Rû   Rð   Rñ   (   Rà   R©   Rß   Rý   Rþ   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_infoâ  s,    










	>,c            s¿  |  d 7}  x®t  ˆ |  ƒ d k rºˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } | d k rRd } n  | d k rgd } n  ˆ j ˆ  | | d | | | | |	 |
 | | | | | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   t   -Rå   i   i   i   i	   i
   i   i   i   i   R   s   Bond distance(   R   Ræ   t   insertt   floatR8   (   Rj   R½   Rê   Rq   Rë   Rì   t   atom1R÷   Rù   Rí   Rî   t   atom2Rû   t   modt   idealt   devt   sig(   R©   Rß   t   refmac_all_dev_listRý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_bond_dist  sB    









 	 	c            s¿  |  d 7}  x®t  ˆ |  ƒ d k rºˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } | d k rRd } n  | d k rgd } n  ˆ j ˆ  | | d | | | | |	 |
 | | | | | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i   i	   i
   i   i   i   i   R$   R   s
   Bond angle(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   Rù   Rí   Rî   R  Rû   R  R  R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_bond_angle.  sB    









 	 	c            sÏ  |  d 7}  x¾t  ˆ |  ƒ d k rÊˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } | d k rbd } n  | d k rwd } n  ˆ j ˆ  | | d | | | | |	 |
 | | | | | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i   i	   i
   i   i   i   i   i   R$   R   s   Torsion angle(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   Rù   Rí   Rî   R  Rû   R  R  t   periodR  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_torsionU  sD    









 	 	c            sG  |  d 7}  x6t  ˆ |  ƒ d k rBˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } d | d k rš d } | j d | ƒ n  t | d	 ƒ } t | d
 ƒ }	 t | d ƒ }
 t | d ƒ } | d k rï d } n  ˆ j ˆ  | | d | | | | d d d d | |	 |
 | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i
   i   R$   R   t   ChiraliÁ½ðÿ(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   R  R  R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt
   get_chiral}  s.    





 	c   
         s#  |  d 7}  xt  ˆ |  ƒ d k rˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } d | k r– d } | j d | ƒ n  t | d ƒ } t | d	 ƒ }	 | d k rË d
 } n  ˆ j ˆ  | | d | | | | d d
 d
 d
 d d | |	 | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i   i   i   R  Rå   i   i	   R   t	   PlanarityiÁ½ðÿg    ðiøÀ(   R   Ræ   R  R  R8   (
   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_planarity›  s*    





 	c            s¿  |  d 7}  x®t  ˆ |  ƒ d k rºˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } | d k rRd } n  | d k rgd } n  ˆ j ˆ  | | d | | | | |	 |
 | | | | | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i   i	   i
   i   i   i   i   R   t   VDW(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   Rù   Rí   Rî   R  Rû   R  R  R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_vdw¶  sB    









 	 	c            sŸ  |  d 7}  xŽt  ˆ |  ƒ d k ršˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } | d k r2d } n  | d k rGd } n  ˆ j ˆ  | | d | | | | |	 |
 | | d d | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i   i	   i
   i   i   R   s   B-valueg    ðiøÀ(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   Rù   Rí   Rî   R  Rû   R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_b_valueÝ  s>    









 	 	c   
         s  |  d 7}  x
t  ˆ |  ƒ d k rˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } d | k r– d } | j d | ƒ n  | d } | d	 }	 | d k rÃ | d
 k n  ˆ j ˆ  | | d | | | | d d
 d
 d
 d d | |	 | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i   i   i   R  Rå   i   i	   R   t   NCSiÁ½ðÿg    ðiøÀ(   R   Ræ   R  R8   (
   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_ncs  s*    







 c            s$  |  d 7}  xt  ˆ |  ƒ d k rˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } d | k r– d } | j d | ƒ n  | d	 d
 !} | d }	 | d }
 | d k rÌ d } n  ˆ j ˆ  | | d | | | | d d d d d d |	 |
 | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   t   URå   i   i   i   i   R   t
   SphericityiÁ½ðÿg    ðiøÀ(   R   Ræ   R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   t   u_mat_lsR  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_sphericity  s,    







 	c            sŸ  |  d 7}  xŽt  ˆ |  ƒ d k ršˆ |  } ˆ | ƒ } | d } t | d ƒ } | d } | d } | d } | d d k rš d } | j d | ƒ n  | d	 } t | d
 ƒ }	 | d }
 | d } | d } t  | ƒ d k rý d } | j d | ƒ n  t | d ƒ } t | d ƒ } | d k r2d } n  | d k rGd } n  ˆ j ˆ  | | d | | | | |	 |
 | | d d | | | g g g ƒ |  d 7}  q Wd  S(   Ni   i   i    i   i   i   R  Rå   i   i   i   i	   i
   i   i   R   t   Rigidg    ðiøÀ(   R   Ræ   R  R  R8   (   Rj   R½   Rê   Rq   Rë   Rì   R  R÷   Rù   Rí   Rî   R  Rû   R  R	  (   R©   Rß   R
  Rý   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt	   get_rigid<  s>    









 	 	c         S   s   d d  l  } g  } d } |  j d d ƒ } | j d d ƒ } | j d d ƒ } | j ƒ  } x?| D]7} | d } | d } | j d ƒ d k rè | j d ƒ } | j | d ƒ xß t d	 t | ƒ ƒ D] }	 | j d | |	 ƒ qÆ Wnª | j ƒ  r…| j ƒ  r…| d
 k r…| j ƒ  r…t	 }
 d }	 | } x2 |
 r`| |	 j ƒ  }
 | | |	 7} |	 d	 7}	 q/W| j | ƒ | j | |	 d !ƒ n | j | ƒ | } qa W| S(   NiÿÿÿÿR   t   :R$   R%   t   >i    R  i   t   at(
   t   ret   replaceRç   t   findR8   R6   R   t   isalphat   isdigitRS   (   R½   R!  t   rett	   last_itemRê   t   itemt   startt   endt   new_lsRj   t   chart   string(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyRý   e  s<    

	
c         S   s=  |  } | j  ƒ  g  } d „  } xt t | ƒ ƒ D]} | | } t } | t | ƒ d k  r| | d } | d | d k r| d | d k r| d d } | | | ƒ \ }	 }
 |	 rç | |
 j | d d ƒ | | | d <n | j | d ƒ | | | d <t } q5| j | ƒ q2 | s2 | j | ƒ q2 q2 W| S(   Nc         S   s\   t  } t  } xC |  d t |  ƒ !D]. } | | d k r  |  j | ƒ } | } q  q  W| | f S(   Ni   i    (   R—   R   t   index(   t   rest   res_dev_typet   dev_typet   positiont   type_ls(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   find_dev_type–  s    i   i   i   i    (   t   sortR6   R   R—   R8   RS   (   RÈ   t	   sorted_lst	   merged_lsR4  Rj   R/  t   merged_flagt   next_resR0  t   found_dev_typeRÜ   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   sort_and_convert_list‘  s,    
	
(	c         S   s×  g  } xÊ|  D]Â} | d } | d } | d } | } | d t  | ƒ d } d } t | ƒ d }	 |	 d k s‡ t | d ƒ d k r}| d d d }
 |
 d	 k rº |
 | k rº |
 } n  x;| d t | ƒ !D]&} t | ƒ d } d } | d k rDd
 } xr | d t | ƒ !D]- } | d j ƒ  } | d j | ƒ d 7} qWn- d } | d d j ƒ  } d j | ƒ d } t | ƒ d k r°| } | t  | ƒ d | d d | 7} qÎ | t  | ƒ d | d d | d | 7} | d t  | ƒ d } qÎ Wd } | d d d } | d d d } t | | | | | g } d } | j d ƒ } | j | | | | | | | | | | g
 ƒ q d } | d d d } | d d d } | | d d d | } | d d d } | rY| d d d }
 | d 7} |
 | k r&| | 7} t | | | | | g } qq| t  |
 ƒ d | } t | | | |
 | g } n t | | | | | g } d } | d d d } | j ƒ  } d j | ƒ } | j | | | | | | | | | | g
 ƒ q W| S(   Ni    i   i   R$   s   : R   i   i   iÁ½ðÿt   si   s   
s
    deviations   :
s   : Multiple deviationst   Refines    deviation: i   R  (   R;   R   Rç   R   t   refine_zoneRè   R8   (   t   listt   ret_lsR/  R©   Rq   t   res_not
   ref_to_rest   dev_nameRñ   t   no_diff_devRí   R1  t   no_of_this_devt   tmp_tipt
   plural_strR(  t   tmp_lst   ins_codeRz   t   alt_conft   funct   button_nameRú   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   make_interesting_things_listÍ  sv    


"	')

s   CGMAT cycle number =i   s   data line.*ncyct   ncycR»   s   ERROR opening the filename i    t   NCYCi   s	   WARNING :s   INFO:i   s   Overall figure of merits   Bond distance outlierss   Bond angle outlierss   Torsion angle outlierss   Chiral volume outlierss'   Large deviation of atoms from planaritys   VDW outlierss   B-value outlierss   NCS restraint outlierss   Sphericity outlierss   Rigid bond outlierss   Refmac outliers etc.sJ   BL INFO:: could not show the interesting Refmac things! Probably no PyGTK!sC   BL INFO:: no deviations and nothing otherwise interesting found in s5   WARNING your file with name %s does not seem to exist(   R
   R!  R—   t   compilet
   IGNORECASER   t   normpatht   abspathR   R¿   RÁ   R•   R   t   searchRç   R´   Ræ   R.  RS   t   run_with_gtk_threadingt!   interesting_things_with_fix_maybe(%   R©   t   refmac_log_fileR
   R!  Rÿ   R   R  R  R  R  R  R  R  R  R  R  R;  RM  t   interesting_listt   cgmat_cyclet
   found_lastt   last_cycle_finishedRN  t   reg_ncyct   reg_ncyc_onlyt   filenamet   finRj   t   no_linesR½   t
   ncycle_rest   line_lsR(  t   ncyc_post   cycle_numbert   converted_refmac_all_dev_listt   deviation_list(    (   Rà   R©   Rß   R
  Rý   Rþ   sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyR£   c  sº    o$('('%)	,	<	W
*

c    
      C   sï   t  d d d ƒ }  |  rç d } t |  d g g  | ƒ } | d k rÒ t | d ƒ } | j ƒ  } | j ƒ  t j | ƒ xm | D]P } d | k r{ | j ƒ  d	 } | j d
 ƒ \ } } }	 t | ƒ t | ƒ g Sq{ Wqë t j | ƒ d GHn t	 Sd  S(   NR   R   R   s   refmac_version_tmp.logs   -ii    R»   t   ProgramiÿÿÿÿRå   s$   INFO:: problem to get refmac version(
   R   RT   R¿   RÁ   R•   R
   t   removeRç   Ræ   R—   (
   Rf   t   log_filet   statusR_  Rß   R½   t   versiont   majort   minort   micro(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   get_refmac_version�  s"    
N(   R”   R¾   RG   R   R   RŠ   R—   RR   RF   RE   RØ   RÛ   R£   Ro  (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/refmac.pyt   <module>,   s    		C×r		+	(		ÿ ÿ ÿ /