B ¶Vfb@sddlmZddlmZddlmZddlZddlZddl m Z ddl m Z ddZd d Zd d Zd dZddZddZddZdS))print_function)argv)ChemN)rdMolDescriptors)popenc Csi}t|}|d}|xl|D]d}|dkr6q(|d}i||d<x>|ddD].}|d\}}t|||d|<qZWq(W|S)N ,r:)openreadsplitclosefloatrstripupper) ZlistfilelogPfllineZaaaatomZLOGPrszread_mol..rrr)rMolFromMolFile GetNumAtomsGetAtomsr_CalcCrippenContribsrange GetConformerGetAtomPositionappendxyzr r rpop) fileZronelementZcrippenrrposrsrrrread_mols  * r2c Cs*g}g}t|d}|d}|dWdQRXd}x|D]}|dddkr|dd}|td|dt|d d t|d d t|d d g||nV|dd dkr ||dt|d d t|d d t|d d g|||d7}q@W|t |||gS)Nrrr rZHETATMKz[-+0-9]&.6ATOM r ) r r rr,striprr(rerrMolFromPDBFile)r-rline_numrr1r.rrrrr read_HETATM*s0     r@c Cst|d}|d}|dWdQRXi}g}x|D]}|dddkr<|dd}||krvg||<|||||d|dd t|d d t|d d t|d d gqWdS) Nfreer rKdz memory used=ztotal=zp=z{:.1f}zsleep ) listporintprintformatossystemstr)rtZtirUr1totalusedptrrr wait_memorys         rd) __future__rsysrrdkitrnumpyrGr= rdkit.Chemrr\rrXrr2r@rFrJrTrdrrrrs