Skip to content

ZwijnenburgGroup/smilescombine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

smilescombine 💻

Python library for combining smiles 'skeletons' with functional groups & substituents in a combinatorial fashion.

smilescombine provides molecular building blocks (in the form of SMILES strings) that can be used in combination with Supramolecular structure-building software such as stk. Alternatively, the bulding blocks can be used to generate structured molecular libraries in their own right.

Functionality

Using smilescombine begins by initialising a class Combiner, which accepts a SMILES string of the molecular skeleton we will combine with functional groups and a list of those functional groups (substituents, represented by SMILES).

substituents = ['(N(C)C)', '(N)', '(OC)', '(O)', '(CC)', '(C=O)', '(C(=O)OC)']

skeleton = Combiner('c1ccccc1', substituents, nmax=4, nconnect=0, auto_placement=True)
skeleton.combine_substituents()

We can then use the combine_substituents() method of Combiner to generate our molecular library for a this skeleton. With the above arguments, combine_substituents() will allow a maximum of 4 substitutions and place them automatically on all accessible aromatic carbon atoms within the skeleton.

Now, the attribute combinations of the instance of the Combiner class skeleton is a list of SMILES strings containing all possible positional and compositonal combinations of our molecular skeleton and the substituent SMILES supplied by substituents.

Defining a molecular skeleton SMILES

If automatic placement of substituents is accectable, we can define an ordinary SMILES string. If we wish to specify where substitutions may take place, we can specify auto_placement=False within Combiner and supply a custom skeleton SMILES string:

skeleton = Combiner('c1c(Br)cc(Br)cc1', substituents, nmax=4, nconnect=0, auto_placement=True)

Where allowed substitution sites are indicated by '(Br)' within the string.

Installation & Requirements

Simply clone the repository

rdkit

smilescombine relies on rdkit, which can be installed via conda (recommended)

conda install -c rdkit rdkit

About

Combinatorially combine functional groups with molecular templates

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%