Home

Awesome

r-BRICS – a revised BRICS module that breaks ring structures and carbon chains

toc

Figure 1. An example of using r-BRICS using lanostane.

Reference

L. Zhang, V. Rao, W. Cornell, r-BRICS – a revised BRICS module that breaks ring structures and carbon chains (submitted).

Pre-requisites

rdkit >= 2022.09.5

Python environment

We recommend to use miniconda with python 3.6+.

Example

First, rdkit and r-BRICS need to be imported. Simply put reBRICS_public.py in your workfolder to use it (or python library folder).

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from reBRICS_public import *
import rdkit

(1) POPC, as shown in publication

popc=Chem.MolFromSmiles("CCCCCCCCCCCCCCCC(=O)OC[C@H](COP(=O)([O-])OCC[N+](C)(C)C)OC(=O)CCCCCCC/C=C\CCCCCCCC")
Draw.MolToImage(popc,size=(800,300))
bonds=BRICS.FindrBRICSBonds(popc)
pieces=BRICS.BreakrBRICSBonds(popc,bonds)
frags=Chem.GetMolFrags(pieces,asMols=True)
Draw.MolsToGridImage(frags,subImgSize=(700,200))

(2) Lanostane, as shown in publication

lano=Chem.MolFromSmiles('C[C@H](CCCC(C)C)[C@@]1([H])CC[C@@]2(C)[C@]3([H])CC[C@@]4([H])C(C)(C)CCC[C@]4(C)[C@@]3([H])CC[C@@]21C')
bonds=FindrBRICSBonds(lano)
pieces=BreakrBRICSBonds(lano,bonds)
frags=Chem.GetMolFrags(pieces,asMols=True)
Draw.MolsToGridImage(frags,subImgSize=(700,200))

(3) n-hexapentacontane with reBRICS, as shown in publication

ccc=Chem.MolFromSmiles("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC")
### Regular r-BRICS, without reBRICS
bonds=FindrBRICSBonds(ccc)
pieces=BreakrBRICSBonds(ccc,testbonds)
frags=Chem.GetMolFrags(pieces,asMols=True)
Draw.MolsToGridImage(frags,subImgSize=(700,300))
### With reBRICS
newfrags=reBRICS(frags) ### Note that input for reBRICS is a list of fragments from regular r-BRICS
Draw.MolsToGridImage(newfrags,subImgSize=(700,200))

(4) Breaking aromatic fused rings

p135530454=Chem.MolFromSmiles("NC1=CC=C2N(CCC3CC3)C(=O)C(=C(O)C2=C1)C1=NS(=O)(=O)C2=C(N1)C=CC=C2")
bonds=FindrBRICSBonds(p135530454)
pieces=BreakrBRICSBonds(p135530454,pbonds)
frags=Chem.GetMolFrags(pieces,asMols=True)
Draw.MolsToGridImage(frags,subImgSize=(700,200))
p135530454=Chem.MolFromSmiles("NC1=CC=C2N(CCC3CC3)C(=O)C(=C(O)C2=C1)C1=NS(=O)(=O)C2=C(N1)C=CC=C2")
Chem.Kekulize(p135530454,clearAromaticFlags=True)
bonds=FindrBRICSBonds(p135530454)
pieces=BreakrBRICSBonds(p135530454,pbonds)
frags=Chem.GetMolFrags(pieces,asMols=True)
Draw.MolsToGridImage(frags,subImgSize=(700,200))

(5) Other examples shown in the publication

ritonavir=Chem.MolFromSmiles("CC(C)C1=NC(=CS1)CN(C)C(=O)NC(C(C)C)C(=O)NC(CC2=CC=CC=C2)CC(C(CC3=CC=CC=C3)NC(=O)OCC4=CN=CS4)O")