Package rdkit :: Package VLib :: Package NodeLib :: Module SmilesSupply
[hide private]
[frames] | no frames]

Source Code for Module rdkit.VLib.NodeLib.SmilesSupply

 1  #  $Id$ 
 2  # 
 3  #  Copyright (C) 2003 Rational Discovery LLC 
 4  #     All Rights Reserved 
 5  # 
 6  import sys,os.path 
 7  from rdkit import RDConfig 
 8  from rdkit.VLib.Supply import SupplyNode 
 9  from rdkit import Chem 
10  from rdkit import six 
11   
12   
13 -class SmilesSupplyNode(SupplyNode):
14 """ Smiles supplier 15 16 Sample Usage: 17 >>> fileN = os.path.join(RDConfig.RDCodeDir,'VLib','NodeLib',\ 18 'test_data','pgp_20.txt') 19 >>> suppl = SmilesSupplyNode(fileN,delim="\\t",smilesColumn=2,nameColumn=1,titleLine=1) 20 >>> ms = [x for x in suppl] 21 >>> len(ms) 22 20 23 >>> ms[0].GetProp("_Name") 24 'ALDOSTERONE' 25 >>> ms[0].GetProp("ID") 26 'RD-PGP-0001' 27 >>> ms[1].GetProp("_Name") 28 'AMIODARONE' 29 >>> ms[3].GetProp("ID") 30 'RD-PGP-0004' 31 >>> suppl.reset() 32 >>> suppl.next().GetProp("_Name") 33 'ALDOSTERONE' 34 >>> suppl.next().GetProp("_Name") 35 'AMIODARONE' 36 >>> suppl.reset() 37 38 """
39 - def __init__(self,fileName,delim="\t",nameColumn=1,smilesColumn=0,titleLine=0, 40 **kwargs):
41 SupplyNode.__init__(self,**kwargs) 42 self._fileName = fileName 43 self._supplier = Chem.SmilesMolSupplier(self._fileName,delimiter=delim, 44 smilesColumn=smilesColumn, 45 nameColumn=nameColumn, 46 titleLine=titleLine)
47
48 - def reset(self):
49 SupplyNode.reset(self) 50 self._supplier.reset()
51 - def next(self):
52 """ 53 54 """ 55 r = None 56 while not r: 57 r = next(self._supplier) 58 return r
59 60 if six.PY3: 61 SmilesSupplyNode.__next__ = SmilesSupplyNode.next 62 63 #------------------------------------ 64 # 65 # doctest boilerplate 66 #
67 -def _test():
68 import doctest,sys 69 return doctest.testmod(sys.modules["__main__"])
70 71 72 if __name__ == '__main__': 73 import sys 74 failed,tried = _test() 75 sys.exit(failed) 76