ó
©%�Tc           @   s:   d  „  Z  d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c         C   s¿   d „  } t  |  ƒ } t | t ƒ s0 d |  GHn‹ | d } d d d d d d g d	 g d
 d d d d g d	 g d d d d d g d	 g g g | d | ƒ } | | d <d G| GHt |  | ƒ d  S(   Nc         S   s   | S(   N(    (   t   plane_name_sub_stringt   plane_restraints(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt
   filter_out   s    s   failed to get %s restraintst   _chem_comp_plane_atoms   pseudo-ring-1s    C1 s    C2 s    C4 s    C5 g{®Gáz„?s   pseudo-ring-2s    C3 s    O5 s   pseudo-ring-3s   BL DEBUG:: new plane restraints(   t   monomer_restraintst
   isinstancet   dictt   set_monomer_restraints(   t   comp_idR   t
   restraintsR   t   new_plane_restraints(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt)   add_pyranose_pseudo_ring_plane_restraints   s    	

	c           C   s6   t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ d  S(   Nt   NAGt   BMAt   MANt   GALt   GLC(   R   (    (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt!   add_synthetic_carbohydrate_planes   s
    



c      	   C   sO  t  |  ƒ t ƒ  } t d ƒ t ƒ  } | } x| D] } t | ƒ t d ƒ t | t ƒ so d | | f GHt S| sy d St | t ƒ r¤ t	 | ƒ d k r¤ d GHq3 | d } | d } d	 GHt
 |  t | ƒ t | ƒ t | ƒ | | ƒ }	 d
 G|	 GHt |  | d ƒ }
 t ƒ  � t |  | g |
 ƒ Wd  QX|	 d } q3 Wt | ƒ t | ƒ d  S(   Ni   i,  s5   OOps not a proper res_spec %s with residue_to_add: %st   donei   s>   Oops - not a residue_link string pair when adding new_res_pairi    i   s:   BL DEBUG:: xxxxxxxxxxxxxxxx calling add_linked_residue xxxs1   BL DEBUG:: xxxxxxxxxx add_linked_residue returns:gffffffþ?(   t   set_go_to_atom_moleculet   matrix_statet
   set_matrixt"   dragged_refinement_steps_per_framet   set_go_to_atom_from_res_spect&   set_dragged_refinement_steps_per_frameR   t   listt   Falset   lent   add_linked_residuet   res_spec2chain_idt   res_spec2res_not   res_spec2ins_codet   residues_near_residuet
   AutoAcceptt   refine_residues(   t   imolt   res_spect   residues_to_addt   current_matrixt   current_refinement_ratet   current_residue_spect   residue_to_addt   new_rest   new_linkt   new_res_spect   ls(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   multi_add_linked_residue   sB    
	
	



					

c          C   sy   d d g d d g d d g d d g d d g d d g g d d g d d g g g d d g d d g d d g g g }  |  S(	   Ns   NAG-ASNR   s   BETA1-4R   s   ALPHA1-6R   s   ALPHA1-2s   ALPHA1-3(    (   t   ret(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   oligomannose_treeT   s    								c            s`   ‡ f d †  ‰ ‡ f d †  ‰  ‡  ‡ ‡ f d †  } ‡ f d †  ‰ t  ˆ ƒ ˆ | | | ƒ d  S(   Nc   	   
      s�   t  ƒ  �r \ } } } } } } t | |  d ƒ } t ˆ  |  g | d t ƒ  ƒ } d |  | f GHt | ƒ sm t S| d k SWd  QXd  S(   Ni   i    s/   ######## new residue %s density correlation: %sg      à?(   t   UsingActiveAtomR    t   map_to_model_correlationt   imol_refinement_mapt   isNumberR   (	   R$   t   aa_imolt   aa_chain_idt	   aa_res_not   aa_ins_codet   aa_atom_namet   aa_alt_conft   neighbst   c(   R#   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   well_fitting_qmn   s    	c            s)   t  ˆ  t |  ƒ t |  ƒ t |  ƒ ƒ d  S(   N(   t   delete_residuet   residue_spec2chain_idt   residue_spec2res_not   residue_spec2ins_code(   t   spec(   R#   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   delete_residue_by_specz   s    		c            s  t  |  t ƒ s" d |  | f GHt S| d } | d } t |  ƒ d Gˆ G| G| GHt ˆ t |  ƒ t |  ƒ t |  ƒ | | ƒ } t ˆ |  d ƒ } |  g | } t	 ƒ  � t
 ˆ | ƒ Wd  QXt  | t ƒ sÍ t S| d } ˆ | ƒ rç | Sd G| GHˆ  | ƒ t	 ƒ  � t
 ˆ | ƒ t SWd  QXd  S(   Ns5   OOps not a proper res_spec %s with residue_to_add: %si    i   s>   BL DEBUG:: ============== calling add_linked_residue with argsgffffffþ?s0   ----------- That was not well fitting. Deleting:(   R   R   R   R   R   R   R   R   R    R!   R"   (   t   parentt   res_pairR+   t   new_res_typeR,   R-   t   local_lst   preped_new_res_spec(   RC   R#   R=   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   func€   s6    


				

	

c            s‘   xŠ | D]‚ } t  | ƒ d k rg t | d t ƒ rg t | d t ƒ rg | |  | ƒ } | rc | }  q‰ Pq t | t ƒ r ˆ  |  | | ƒ q q Wd  S(   Ni   i    (   R   R   t   strR   (   RD   t   treet	   proc_funct   branchR*   (   t   process_tree(    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRN   ¨   s    	(   R   (   R#   RD   RK   RI   (    (   RC   R#   RN   R=   sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   add_linked_residue_treel   s    (
c             sÍ  t  rÉt j ƒ  rÉt d ƒ }  d „  ‰  t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ t |  d	 ‡  f d
 †  ƒ t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ t |  d ‡  f d †  ƒ d „  ‰ t |  d ‡ f d †  ƒ t |  d d „  ƒ t |  d d „  ƒ d „  ‰ t |  d ‡ f d †  ƒ t d „ ‰ t |  d  ‡ f d! †  ƒ t |  d" ‡ f d# †  ƒ t |  d$ d% „  ƒ qÉn  d  S(&   Nt   Glycoc   	      S   s^   t  ƒ  } t d ƒ t ƒ  �< \ } } } } } } t | | | | |  | ƒ t | ƒ Wd  QXd  S(   Ni   (   R   R   R1   R   (	   t   sugart   linkt   current_weightR5   R6   R7   R8   R9   R:   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   add_carbo_link_funcÂ   s    	
	
s   Add a ASN-NAG NAGc            s   ˆ  d d ƒ S(   NR   s   NAG-ASN(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   <lambda>Í   s    s   Add a BETA1-4 NAGc            s   ˆ  d d ƒ S(   NR   s   BETA1-4(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   Ñ   s    s   Add a BETA1-4 BMAc            s   ˆ  d d ƒ S(   NR   s   BETA1-4(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   Õ   s    s   Add an ALPHA1-2 MANc            s   ˆ  d d ƒ S(   NR   s   ALPHA1-2(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   Ù   s    s   Add an ALPHA1-3 MANc            s   ˆ  d d ƒ S(   NR   s   ALPHA1-3(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   Ý   s    s   Add an ALPHA2-3 MANc            s   ˆ  d d ƒ S(   NR   s   ALPHA2-3(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   ä   s    s   Add an ALPHA2-3 GALc            s   ˆ  d d ƒ S(   NR   s   ALPHA2-3(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   é   s    s   Add an ALPHA1-6 MANc            s   ˆ  d d ƒ S(   NR   s   ALPHA1-6(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   í   s    s   Add an ALPHA1-6 FUCc            s   ˆ  d d ƒ S(   Nt   FUCs   ALPHA1-6(    (   RI   (   RT   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   ñ   s    c      
   S   sA   t  ƒ  �2 \ } } } } } } t | | | | g |  ƒ Wd  QXd  S(   N(   R1   R.   (   t	   link_listR5   R6   R7   R8   R9   R:   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   add_multi_carbo_link_funcó   s
    	s   N-link add NAG, NAG, BMAc            s%   ˆ  d d g d d g d d g g ƒ S(   NR   s   NAG-ASNs   BETA1-4R   (    (   RI   (   RX   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   ü   s   	s&   Auto Fit & Refine On for Link Additionc         S   s
   t  d ƒ S(   Ni   (   t(   set_add_linked_residue_do_fit_and_refine(   RI   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU     s    s'   Auto Fit & Refine Off for Link Additionc         S   s
   t  d ƒ S(   Ni    (   RY   (   RI   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU     s    c       
   S   sN   t  ƒ  �? \ }  } } } } } t |  ƒ t |  | | | g t ƒ  ƒ Wd  QXd  S(   N(   R1   t   make_backupRO   R0   (   R5   R6   R7   R8   R9   R:   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   add_oligo_mannose_func	  s    	
s   Add Oligomannosec            s   ˆ  ƒ  S(   N(    (   RI   (   R[   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU     s    c         S   ss   t  ƒ  �d \ } } } } } } | | | g } t | | g d ƒ |  ri t ƒ  � t | | g ƒ Wd  QXn  Wd  QXd  S(   Ni0u  (   R1   t   multi_residue_torsion_fitR!   R"   (   t   refineR5   R6   R7   R8   R9   R:   t   centre_residue(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   torsion_fit_this_func  s    	
s   Torsion Fit this residuec            s   ˆ  ƒ  S(   N(    (   RI   (   R_   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   $  s    s!   Torsion Fit & Refine this residuec            s
   ˆ  t  ƒ S(   N(   t   True(   RI   (   R_   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   )  s    s'   Add synthetic pyranose plane restraintsc         S   s   t  ƒ  S(   N(   R   (   RI   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyRU   -  s    (   t   have_coot_pythont   coot_pythont   main_menubart   coot_menubar_menut   add_simple_coot_menu_menuitemR   (   t   menu(    (   RT   RX   R[   R_   sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   add_module_carbohydrate½   sn    			

		N(   R   R   R.   R0   RO   Rg   (    (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/gui_add_linked_cho.pyt   <module>   s
   			5		Q