ó
©%�Tc           @   s”   d  a  e Z e Z d „  Z d „  Z d „  Z e a	 e a
 d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 d „ Z d „  Z d d „ Z d S(   t   unsetc         C   s+   t  |  ƒ } | d k r' t |  ƒ } n  | S(   Niÿÿÿÿ(   t   generic_object_indext   new_generic_object_number(   t   obj_namet   t(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   generic_object_with_name/   s    c             sò  t  }  y; d d  l } | j d ƒ d d  l } d d  l } t }  Wn d GHn X|  rît ƒ  rî‡  f d †  } d „  } ‡ f d †  } t ƒ  } | d k rî| j | j	 ƒ ‰  ˆ  j
 d ƒ | j t  d ƒ } g  ‰ d }	 xt | ƒ D]}
 d	 G|
 Gt |
 ƒ Gt |
 ƒ GHt |
 ƒ d k rå t |
 ƒ } | rçt |
 ƒ d
 | } | j d d  ƒ } | j | ƒ } | j d | |
 ƒ t |
 ƒ } | d k r¦| j t ƒ |	 d 7}	 n  | j | ƒ | j | ƒ | j ƒ  | j ƒ  ˆ j | ƒ qçqå qå Wt ˆ ƒ d k rª| j ƒ  } d } | j d d  ƒ } | j | ƒ } | j d | ƒ t ˆ ƒ |	 k rb| j t ƒ n  | j | ƒ | j ƒ  | j | ƒ | j | ƒ | j ƒ  | j ƒ  n  ˆ  j d | ƒ | j ƒ  ˆ  j | ƒ ˆ  j d ƒ ˆ  j ƒ  qîn  d  S(   Niÿÿÿÿs   2.0s-   BL WARNING:: no pygtk2. Function wont work!!!c             s   ˆ  j  ƒ  t S(   N(   t   destroyt   False(   t   args(   t
   gen_window(    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   delete_eventF   s    
c         S   sl   |  j  ƒ  } t | ƒ } | t k r@ | d k r@ t | d ƒ n  | t k rh | d k rh t | d ƒ n  d  S(   Ni    i   (   t
   get_activet   generic_object_is_displayed_qmt   Truet   set_display_generic_objectR   (   t   widgett   generic_object_numbert   button_statet   object_state(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   check_button_callbackO   s    c            sD   |  j  ƒ  } x1 ˆ  D]) } | r/ | j t ƒ q | j t ƒ q Wd  S(   N(   R   t
   set_activeR   R   (   R   t   show_allt   check_button(   t   open_generic_objects(    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   all_check_button_callbackW   s
    i    s   Generic objectss"   INFO:: generic object attributes: s     t   labelt   toggledi   s   Show/hide allR
   i
   (   R   t   pygtkt   requiret   gtkt   pangoR   t	   using_guit   number_of_generic_objectst   Windowt   WINDOW_TOPLEVELt	   set_titlet   VBoxt   ranget   generic_object_namet   is_closed_generic_object_qmt   strt   Framet   Nonet   CheckButtont   connectR   R   t   addt   showt   appendt   lent
   HSeparatort   set_border_width(   t
   pygtk_flagR   R   R   R
   R   R   t	   n_objectst   vboxt   no_active_generic_objectsR   t   nameR   t   frameR   t   current_statet   hsep(    (   R	   R   sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   generic_objects_gui9   sx    
				
	





c   
      C   s  d G| GHt  t ƒ s! d t GHnâ t t d ƒ } d } t |  | ƒ g  } t j d ƒ s» t j j | ƒ \ } } t j j | d ƒ } t j j	 | ƒ r§ | t j
 d <q» d GHd | g } n  d	 t d
 | g | | f GHt t d
 | g | g  | ƒ }	 d G|	 GHt Sd  S(   Ns   running reduce ons*   command for reduce %s is not found in patht   PATHs#   coot-molprobity/reduce-het-dict.txtt   REDUCE_HET_DICTs   reduce_wwPDB_het_dict.txts9   BL WARNING:: could neither find nor set REDUCE_HET_DICT !s   -DBs?   ======= reduce_on_pdb_file: command %s args %s with pdb_out: %ss   -builds   ======== status(   t   command_in_path_qmt   reduce_commandt   find_exet   write_reduce_het_dictt   ost   getenvt   patht   splitt   joint   isfilet   environt   popen_commandR   (
   t   imolt   pdb_int   pdb_outt   full_reduce_commandt   reduce_het_dict_file_namet	   dict_argst   dirt   tmpt   connection_filet   status(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   reduce_on_pdb_file¡   s0    				c         C   s“  d d  l  } t |  ƒ r�| j j t ƒ s< t d d ƒ a n  | j j t ƒ s` t d d ƒ a n  t d ƒ d } d } d } t |  | ƒ t	 |  | ƒ t s¤ d	 GHq�g  } | j
 d
 ƒ s| j j t ƒ \ } } | j j | d ƒ } | j j | ƒ r| | j d
 <qd GHd | g } n  t r4d d | g }	 n d | g }	 |	 | 7}	 d t |	 | f GHd G| j
 d
 ƒ GHt t |	 g  | ƒ }
 t s‘d GHq�t t t |  ƒ ƒ ƒ } d | d } d } t | | ƒ t t d d d | g g  | ƒ } | rùd GHq�t ƒ  } t d ƒ } t r+d GHt |  | ƒ } n d GHt | ƒ } | d k rUt d ƒ n  t ƒ  rnt | | ƒ n  t | | d ƒ t ƒ  t ƒ  n  d  S(   Niÿÿÿÿt   reduceR<   t   probes   coot-molprobitys   coot-molprobity/for-reduce.pdbs   coot-molprobity/reduced.pdbs#   coot-molprobity/reduce-het-dict.txtsM   BL WARNING:: Could not locate the program reduce!! Please check if installed!R=   s   reduce_wwPDB_het_dict.txts9   BL WARNING:: could neither find nor set REDUCE_HET_DICT !s   -DBs   -builds   -oldpdbs1   BL INFO:: running reduce: %s %s and ouptut to: %ss2   BL INFO:: running reduce: REDUCE_HET_DICT env var:sL   BL WARNING:: Could not locate the program probe!! Please check if installed!s   coot-molprobity/s   -with-H.pdbs   coot-molprobity/probe-dots.outs   -us   -mct   ALLs+   BL WARNING:: probe failed, cannot continue!i    s   ======= update molecule =======s!   ======= read new pdb file =======i   i   (   RB   t   is_valid_model_moleculeRD   RG   R?   R@   t   probe_commandt   make_directory_maybet   write_pdb_fileRA   RC   RE   RF   RH   t   old_pdb_styleRI   t   strip_extensiont
   strip_patht   molecule_namet   prepare_file_for_probet   recentre_on_read_pdbt   set_recentre_on_read_pdbt   reduce_molecule_updates_currentt)   clear_and_update_model_molecule_from_filet   read_pdbR   t   user_mods_guit'   handle_read_draw_probe_dots_unformattedR;   t   graphics_draw(   RJ   RB   t   mol_pdb_filet   reduce_out_pdb_fileRN   RO   RP   RQ   RR   t   arg_listt   reduce_statust   probe_name_stubt   probe_pdb_int	   probe_outt   probe_statust   recentre_statust   novaluet
   imol_probe(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyRV   Ú   sv    

				c   	      C   s²   d d  l  } g  } xM t |  ƒ D]? } d | d } t | | ƒ } | d k r | j | ƒ q q W| r® t | d ƒ } x' | D] } | j t | d ƒ | ƒ q~ W| j ƒ  n  d  S(   Niÿÿÿÿs   coot-molprobity/conn-s   .txti   t   wt   rb(   t   shutilt   non_standard_residue_namest   write_connectivityR/   t   opent   copyfileobjt   close(	   RJ   RN   Rv   t   con_file_namest   res_namet   f_nameRS   t   fint	   file_name(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyRA   J  s    c         C   sÀ   y t  |  d ƒ } Wn t k
 r/ d G|  GHn Xy t | d ƒ } Wn t k
 r_ d G| GHn X| r¼ | r¼ | j ƒ  } x* | D]" } d | k r | j | ƒ q q W| j ƒ  | j ƒ  n  d  S(   Nt   rs   BL WARNING:: Cannot read Rt   s   BL WARNING:: Cannot write t   USER(   Ry   t   IOErrort   filet	   readlinest   writeR{   (   t   file_int   file_outR   t   foutt   linest   line(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyR`   [  s    
c         C   sV  d d  l  } d d  l } d } d }	 d }
 d } | d k sE d } n  d t | ƒ d t |  ƒ d	 t | ƒ d	 t | ƒ d	 d
 | | j | ƒ d t | ƒ d } d Gt Gd d d d d | d | |	 g	 GHt d k rü t t ƒ ró d a qü d a n  t d k rRt t d d d d d | d | |	 g	 g  |
 ƒ } t |
 d d ƒ t	 ƒ  n  d  S(   Niÿÿÿÿs!   molprobity-tmp-reference-file.pdbs   molprobity-tmp-moving-file.pdbs-   coot-molprobity/molprobity-tmp-probe-dots.outt    t   chains   (file1 within s    of s   , s   not water not (t    s   )),file2s   probe commands   -mcs   -us   -quiets   -drops   -botht   file2R    t   yest   noi    (
   RB   t   stringR(   t   lowerRY   t   interactive_probe_is_OK_qmR>   RI   Rg   Rh   (   t   x_cent   y_cent   z_cent   radiust   chain_idt   res_noRB   R’   t   probe_pdb_in_1t   probe_pdb_in_2Ro   t	   chain_strt   atom_selRS   (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   interactive_probe{  s0    	e				c         C   s  d d  l  } t d k rW t t ƒ s- d a qW t d ƒ } | d k rN d a qW d a n  t d k r| j j d d ƒ } d t | ƒ d	 t | d ƒ d
 t | d ƒ d
 t | d ƒ d } d d d d d d |  g } d Gt G| GHt t | g  | t	 ƒ t
 | d d ƒ t ƒ  n  d  S(   NiÿÿÿÿR    R‘   s   coot-molprobityi    R�   s   molprobity-tmp-probe-dots.outs   (within s    of s   , i   i   t   )s   -mcs   -us   -quiets   -drops	   -stdbondsRW   s   popen_comand on(   RB   R”   R>   RY   RZ   RD   RF   R(   RI   R   Rg   Rh   (   t   pdb_file_namet   pointR˜   RB   RS   Ro   t
   within_strR   (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   get_probe_dots_from¨  s&    			C	c         C   s…   t  ƒ  } t |  | d | d | d | d ƒ } t | d ƒ t | d ƒ d } t d ƒ t | | ƒ t | | | ƒ t | ƒ d  S(   Ni    i   i   s!   molprobity-tmp-reference-file.pdbs   coot-molprobity(   t   rotation_centret    new_molecule_by_sphere_selectiont   set_mol_displayedt   set_mol_activeRZ   t   write_pdb_file_for_molprobityR¤   t   close_molecule(   RJ   R˜   t   ptt   imol_newt   pdb_name(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   probe_local_sphereÒ  s    	
g      @c      
   C   s5   t  ƒ  �& \ } } } } } } t | |  ƒ Wd  QXd  S(   N(   t   UsingActiveAtomR®   (   R˜   t   aa_imolt   aa_chain_idt	   aa_res_not   aa_ins_codet   aa_atom_namet   aa_alt_conf(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   probe_local_sphere_active_atomæ  s    	c         C   s%  t  | ƒ d } t |  | ƒ g  } x\ t |  ƒ D]N } t j j d d | d ƒ } t | | ƒ } | d k r0 | j | ƒ q0 q0 Wt j j | ƒ s  d G| GHn� | j	 d | ƒ t
 | d ƒ } xU | D]M } t j j | ƒ rÆ t
 | d	 ƒ }	 |	 j ƒ  }
 |	 j ƒ  | j |
 ƒ qÆ qÆ W| j ƒ  d  S(
   Ns   -tmp.pdbs   coot-molprobitys   conn-s   .txti   s   ERROR:: tmp file name not foundi    Rt   R�   (   t   file_name_sans_extensionR[   Rw   RB   RD   RF   Rx   R/   RG   t   insertRy   t   readR{   R†   (   RJ   R­   t   tmp_pdb_namet   conn_file_namesR}   R~   RS   t   fn_allt	   conn_filet   cft   data(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyR©   ï  s&    
c         C   sI   |  r@ |  j  ƒ  r) t d ƒ t d ƒ qE t d ƒ t d ƒ n d GHd S(   s¬   a toggle function for the main toolbar to switch on probe dots post refine
  and for chis/rotamers

  Keyword arguments:
  widget -- can be passed from the toolbutton
  
  i   i    s   BL WARNING:: no widgetN(   R   t&   set_do_probe_dots_on_rotamers_and_chist   set_do_probe_dots_post_refine(   R   (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   toggle_interactive_probe_dots  s    	

N(   R”   t   generic_object_is_displayed_pR   t   is_closed_generic_object_pR'   R   R;   RT   R   R\   Rc   RV   RA   R`   RŸ   R¤   R®   R¶   R©   R*   RÂ   (    (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/generic_objects.pyt   <module>   s    		
	h	2	p		 	-	*			&