<jupyter_start><jupyter_text>To do * substituents  that have multiple points of attachment* second order ennumeration (using enumerated fragments as seeds)  Issues* problems with Si and Carboxylic Acid substituents : cannot canonicalize<jupyter_code>from smilescombine import Combiner
substituents = ['(N(C)C)', '(O)', '(N)', '(S)', '(C)', '(F)']    

combiner = Combiner('c1ccsc1', substituents, nmax=2, auto_placement=True)
combiner.combine_substituents('./SMILES.csv')<jupyter_output>Skeleton SMILES: c1ccsc1
Number of vacant sites: 4
Numer of unique substituent permutations: 127
StarcoderdataJupyterStructuredCleanDedup