在构效关系模型的建立中,首先要把IC50数据转换为pIC50,这么做会促使实验者以对数方式设计实验区间,分析实验数据,而不是仅仅在算数尺度设计实验和分析数据。
对于大多数生物应答系统,输入数据间隔为对数尺度时,才有可能会观测到反馈数据的不同;算数尺度的应答,将会带来大的误差风险或者无法观测到有效差异。因此在进行QSAR模型建立前,对于IC50,转换成pIC50是及其必要的。
pIC50将更好的协助实验者正确评估自己的生物实验数据,特别是不至于过度夸大IC50的差异,如100 nM 与 300 nM 可能看起来差别为200 nM, 而从pIC50 角度,它们只相差0.48,属于同一级别的数据。
将IC50 转换为pIC50 也提高了数据的可读性,正如最后几行python所示,通过简单的分类,实验者可快速通过在一个很小的区间内对该数据进行好坏的归类,而不必在原始的IC50所包含的从一到万的区间内进行区分,这将提高工作效率。
Covert IC50 from nanomolar to Molar, here I assume all the input IC50s are in namomolar, since this is most the case. 首先我们把IC50从纳摩尔转换成单位为摩尔,转换关系为10的9次方
IC50_NanoMolar = 300
IC50_Molar = IC50_NanoMolar / 1000000000
print("IC50_Molar: ")
print(IC50_Molar)
IC50_Molar: 3e-07
Then the next cell just put the IC50 in molar to its negative logarithm 接下来只需取其负对数即可,不过需要先引入math函数
import math
pIC50 = -math.log (IC50_Molar,10)
print(pIC50)
6.5228787452803365
Now let's try to comment the bioactivity of this certain value of IC50, here I define pIC50 >= 6.5 good, pIC50 < 5.7 bad, others as medium. 下面对该IC50数据进行归类,如果大于6.5(300 nM),为好,小于等于5.7(2000 nM)为差,二者之间为中
if pIC50 <= 5.7:
print("The bioactivity is bad")
elif pIC50 >= 6.5:
print("The bioactivity is good")
else:
print("The bioactivity is medium")
The bioactivity is good