确定蛋白浓度(一)|自学生信Python(第二十一天)
示例:确定蛋白浓度
1951 年, Oliver Lowry描述了使用苯酣福林试剂测量蛋白质含量的流程。 该方法测 试的优点在于(相比于如凯氏定氮法等)多个样品可以使用光度计快速地进行测量。 其普 遍适用性使得 Lowry 的论文成为一直以来引用最多的文章。
在 Lowry 的试验中,需要记录一系 列已知蛋白质浓度样本的消光值,从中 构建一条最吻合的直线,然后可以通过在直线上找到未知样品浓度的消光值来 确定其浓度。早在 1951 年,最佳拟合线 是在纸上绘制的(见图 7. 1),未知样品需 要手工确定。
本文大部分以 Lowry 消光值数据为例讲解如何用 Python 处理大量样本数据。 Lowry 的文献中给出了一个 标准的系列示例,参见 Table IV(Measurement of Small Amount of Protein from Rabbit Brain) ,他检测了18 个兔脑组织样本的蛋白质浓度,一共 6 种浓度各检验 3 次,获得了表 7.1 的值。
这个表可以很容易地从文件解析得到。但计算最佳拟合线只需要一组 x/y 值, 即一 个两列的表。因此,用于计算未知蛋白质样 本浓度,需要单独的蛋白质浓度-消光值对列 表(见表 7.2) 。
如何将原始数据表(表 7. 1)转换为更简单的表(表 7.2)? 在下面的 Python 会话中,会对初始表,即包含数个列表的列表执行一些操作步骤,将一个新函数zip() 使用两次:第一次,将表调转了 90° ,第二次,组合表中的两列以获得一个新的二维表。
Python 会话示例
table = [
['protein','ext1','ext2','ext3'],
[0.16,0.038,0.044,0.040],
[0.33,0.089,0.095,0.091],
[0.66,0.184,0.191,0.191],
[1.00,0.280,0.292,0.283],
[1.32,0.365,0.367,0.365],
[1.66,0.441,0.443,0.444]
]
table = table[1:]
protein,ext1,ext2,ext3 = zip(*table)
extinction = ext1+ext2+ext3
protein = protein*3
table =zip(protein,extinction)
for prot,ext in table:
print(prot,ext)
输出结果为:
其上面代码的含义将在下期介绍!
日常结尾:
虽然这是个小小的计算程序,但对于初学者的我来说每一次对原代码的升级改造,哪怕是读懂后的注释都感觉是一次进步提升,总之代码虽小,动手最重要!希望更多学习Python的爱好者不要像我一样眼高手低,学习编程就是要,思考,敲码,思考,敲码,敲码,再敲码!!