B
    3RcS                 @   sx   d Z ddlZddlmZ ddlmZ ejejdZdddZ	g Z
dd	d
Ze  xe
D ]\ZZede  qXW dZdS )zh functions to match a bunch of fragment descriptors from a file

No user-servicable parts inside.  ;-)

    N)RDConfig)ChemzFragmentDescriptors.csvTc             C   s   t | j||dS )N)Zuniquify)lenZGetSubstructMatches)molpattunique r   3lib/python3.7/site-packages/rdkit/Chem/Fragments.py_CountMatches   s    r
   c       	   	   C   s  | d krt } yt| d}x| D ]}t|r$|d dkr$|d}t|dkr$|d }|d }|d }|dd	}t|}|r| dkrt	d
t
| d|fdd}||_|dd}|dd}t||f q$W W d Q R X W n tk
r   Y nX d S )Nrr   #	         " zSmarts %s could not be parsedTc             S   s   t | ||dS )N)r   )r
   )r   ZcountUniquepatternr   r   r	   <lambda>.       z_LoadPatterns.<locals>.<lambda>=_-)defaultPatternFileNameopen	readlinesr   splitreplacer   ZMolFromSmartsZGetNumAtomsImportErrorrepr__doc__fnsappendIOError)	ZfileNameZinFlineZsplitLnameZdescrZsmar   fnr   r   r	   _LoadPatterns   s,    

 r'   z%s=fn)T)N)r    osZrdkitr   r   pathjoinZ	RDDataDirr   r
   r!   r'   r%   r&   execr   r   r   r	   <module>   s   

