Reference: BRICS Guide - RDKit
!git clone https://github.com/HIPS/neural-fingerprint.git
import pandas as pd
df = pd.read_csv('./neural-fingerprint/data/2015-05-24-delaney/delaney-processed.csv')
!curl -Lo rdkit_installer.py https://git.io/fxiPZ
import rdkit_installer
%time rdkit_installer.install()
import rdkit
fatal: destination path 'neural-fingerprint' already exists and is not an empty directory. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 2415 100 2415 0 0 5616 0 --:--:-- --:--:-- --:--:-- 5616
add /root/miniconda/lib/python3.6/site-packages to PYTHONPATH python version: 3.6.8 fetching installer from https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh done installing miniconda to /root/miniconda done installing rdkit done rdkit-2019.03.4 installation finished!
CPU times: user 264 ms, sys: 155 ms, total: 419 ms Wall time: 56.1 s
from rdkit.Chem import BRICS, Draw
from rdkit.Chem.Draw import IPythonConsole
from rdkit import Chem
mols = [Chem.MolFromSmiles(smi) for smi in df['smiles']]
mols[0]
sma = Chem.BRICS.BRICSDecompose(mols[0])
Draw.MolsToGridImage([Chem.MolFromSmiles(smi)for smi in sma], molsPerRow=4)
frags_brics = set()
for mol in mols:
pieces = Chem.BRICS.BRICSDecompose(mol)
frags_brics.update(pieces)
print(len(frags_brics))
1028
import random
random.seed(42)
frags = [Chem.MolFromSmiles(smiles) for smiles in frags_brics]
gen_brics = BRICS.BRICSBuild(frags)
products = [next(gen_brics) for _ in range(10)]
Draw.MolsToGridImage(products, molsPerRow=3)