1
2
3
4
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
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
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
66
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