B
    3Rc                 @   s  d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 eddd	Z
e
jd
ddddddd e
jdddddddd edkre
 \ZZejd krejdkrejZned e d ed i Zi Zi Zi Zi ZedZx6e jD ]*Ze Zed\ZZ Z!Z"Z#Z$e ee!< e"ee#< e%e!ee& e%e!i  e!ekree Z'e'dkrte j()de   qe'ee!< e'* ee!< ee"Z+e+dkre j()de"  qe+* ee! d k rqe+* ee! d krqe	,e+ee! e eej-\Z.Z/e.ee! e#< e0ee! e# e/ee! e#< qW xdeD ]\Z!xTee! D ]HZ#ee! e# ekr8ed ee# e#ee! e!ee! e# ee! e# f  q8W q*W dS )!    N)OptionParser)Chem)DataStructs)defaultdict)
FraggleSimzAProgram to post-process Tversky search results as part of FragglezFormat of input file: query_frag_smiles,query_smiles,query_id,retrieved_smi,retrieved_id,tversky_sim	Output: SMILES,ID,QuerySMI,QueryID,Fraggle_Similarity,RDK5_Similarity)ZdescriptionZepilogz-cz--cutoffZstorecutofffloatgffffff?zqCutoff for fraggle similarity. Only results with similarity greater than the cutoff will be output. DEFAULT = 0.7)actiondesttypedefaulthelpz-pz--pfppfpg?z/Cutoff for partial fp similarity. DEFAULT = 0.8__main__   z#Fraggle cutoff must be in range 0-1z=SMILES,ID,QuerySMI,QueryID,Fraggle_Similarity,RDK5_Similarity*,zCan't generate mol for: %s
      z%s,%s,%s,%s,%s,%s)1sysZoptparser   Zrdkitr   r   collectionsr   Zrdkit.Chem.Fraggler   parserZ
add_option__name__
parse_argsZoptionsargsr   Zfraggle_cutoffprintexitZ	id_to_smiZday_simZfrag_simZ
query_sizeZ
query_molsZMolFromSmilesZemptyMolstdinlinerstripsplitZqSubsZqSmiZqIDZinSmiZid_Ztversky
setdefaultr   ZqMolstderrwriteZGetNumAtomsZiMolZ#compute_fraggle_similarity_for_subsr   Z	rdkit_simZfraggle_simmax r%   r%   *share/RDKit/Contrib/fraggle/atomcontrib.py<module>!   sr   









