Guest User

Untitled

a guest
Jan 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. from rdkit import Chem
  2. import itertools
  3.  
  4. atoms = ["C","N","O","F","Si","P","S","Cl","Br","I"]
  5. bonds = ["","=","#"]
  6.  
  7. raw_smiles = []
  8. mols = []
  9. smiles_list = []
  10.  
  11. atom_pairs = list(itertools.product(atoms, repeat=2))
  12. for a,b in atom_pairs:
  13. for x in bonds:
  14. raw_smiles.append(a+x+b)
  15. atom_triples = list(itertools.product(atoms, repeat=3))
  16. bond_pairs = list(itertools.product(bonds, repeat=2))
  17. for a,b,c in atom_triples:
  18. for x,y in bond_pairs:
  19. raw_smiles.append(a+x+b+y+c)
  20.  
  21. atom_quads = list(itertools.product(atoms, repeat=4))
  22. bond_triples = list(itertools.product(bonds, repeat=3))
  23. for a,b,c,d in atom_quads:
  24. for x,y,z in bond_triples:
  25. raw_smiles.append(a+x+b+"("+y+c+")"+z+d)
  26.  
  27. atom_pents = list(itertools.product(atoms, repeat=5))
  28. bond_quads = list(itertools.product(bonds, repeat=4))
  29. for a,b,c,d,e in atom_pents:
  30. for x,y,z,zz in bond_quads:
  31. raw_smiles.append(a+x+b+"("+y+c+")"+"("+z+d+")"+zz+e)
  32.  
  33. for smiles in raw_smiles:
  34. try:
  35. mol = Chem.MolFromSmiles(smiles)
  36. except:
  37. continue
  38. if mol != None:
  39. smiles = Chem.MolToSmiles(Chem.MolFromSmiles(smiles))
  40. if smiles not in smiles_list:
  41. smiles_list.append(smiles)
  42. mols.append(mol)
  43.  
  44. print len(mols)
Add Comment
Please, Sign In to add comment