B
    ž3Rc   ã               @   s  d dl mZ d dlmZ d dlmZmZ d dlZd dlZdZ	dZ
de d¡fd	e d
¡fde d¡fde d¡fde d¡ffZdd„ Zedkre ejd ¡Zeejd dƒZg Zx\eeƒD ]P\ZZesÎqÀe ed¡Zdd„ eD ƒZeee	ƒZe e
¡Ze eeege ¡ qÀW dddgdd„ eD ƒ Ze  ee¡ e  ee¡ e!dd "d d„ eD ƒ¡ ƒ g Z#g Z$g Z%x¬eD ]¤Z&e&d  Ze&d Ze&d Zee#kròee$kròe# 'e¡Z(e%e( \Z)Z*e!eee)e*ed! e) ed! e* e(d d "e&d"d… ¡ƒ n"e# e¡ e$ e¡ e% eef¡ qrW dS )#é    )ÚChem)ÚAllChem)ÚPairsÚTorsionsNé   ZCompound_origzSCF3?z	SC(F)(F)FzCOCF3?zC(=O)C(F)(F)FzOCF3?z	OC(F)(F)FzNCF3?z	NC(F)(F)FzCF3?zC(F)(F)Fc             C   sâ   t  d¡}t  d¡}t d¡}|  |¡}|rr| | f¡d d }t  |¡ x"|  ¡ D ]}| ||  	|¡¡ qTW |} |  
|¡}tj| d||d}	xNtd|ƒD ]@}
tj| d|
|d}x(| ¡  ¡ D ]\}}|	| | |	|< q¾W qšW |	S )NÚFz[$(C(F)(F)F)]z[*:1]-C(F)(F)F>>[*:1]-Fr   iè#  )ZnBitsZ
targetSizeZ	fromAtomsé   )r   ÚMolFromSmartsr   ZReactionFromSmartsÚHasSubstructMatchZRunReactantsZSanitizeMolZGetPropNamesZSetPropÚGetPropZGetSubstructMatchr   Z&GetHashedTopologicalTorsionFingerprintÚrangeZGetNonzeroElementsZ	iteritems)ÚmolÚmaxPathLengthZFQueryZCF3QueryZCF3RxnZhasCF3ÚpÚnmÚmatchÚfpÚiZnfpÚbitÚv© r   ú$share/RDKit/Contrib/LEF/CreateFps.pyÚGetMolFingerprint9   s&    







r   Ú__main__é   r   zw+Tc             C   s   g | ]\}}t t |¡ƒ‘qS r   )Ústrr   r
   )Ú.0ÚxÚyr   r   r   ú
<listcomp>X   s    r   ÚnameZsmilesr   c             C   s   g | ]\}}|‘qS r   r   )r   r   r   r   r   r   r   ^   s    z;name1 smiles1 name2 smiles2 name12 smiles12 environment_id ú c             C   s   g | ]\}}|‘qS r   r   )r   r   r   r   r   r   r   c   s    Ú.é   )+Zrdkitr   Z
rdkit.Chemr   Zrdkit.Chem.AtomPairsr   r   ÚsysÚpickler   Z	nameFieldr	   ZextraQueriesr   Ú__name__ZSDMolSupplierÚargvZsupplÚfileZoutFZfpsÚ	enumerater   r   ZMolToSmilesZsmiZqueryMatchesr   r   r   ÚappendZcolNamesÚdumpÚprintÚjoinÚseenZsmisÚdataÚrowÚindexÚidZonmZosmir   r   r   r   Ú<module>"   sT   




:

