IC50 Prediction

Patrick Chirdon
4 min readOct 18, 2020

IC50 is the concentration at which 50 percent inhibition occurs. It is useful for designing inhibitors.

First let´s create a function that calculates lipinski druglikeness. Lipinski’s rule states that, in general, an orally active drug has no more than one violation of the following criteria:

from rdkit import Chem
from rdkit.Chem import Descriptors, Lipinski
import pandas as pd
import numpy as np
from rdkit import Chem
from rdkit.Chem import Descriptors, Lipinski



dataset = open('smiles.txt', "r" )
dataset = [ line.rstrip().split(",") for line in dataset ][0:]
mols = [ Chem.MolFromSmiles( line[0] ) for line in dataset ]

def lipinski(moldata, verbose=False):


baseData= np.arange(1,1)
i=0
for mol in moldata:

desc_MolWt = Descriptors.MolWt(mol)
desc_MolLogP = Descriptors.MolLogP(mol)
desc_NumHDonors = Lipinski.NumHDonors(mol)
desc_NumHAcceptors = Lipinski.NumHAcceptors(mol)

row = np.array([desc_MolWt,
desc_MolLogP,
desc_NumHDonors,
desc_NumHAcceptors])

if(i==0):
baseData=row…

--

--