◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.freedns.us)◇◇ 由关于蛋白质多样性计算题的讨论想到的 wengjensen 今将此陈年旧题再次勾沉出于多方面原因,首先本人曾在2003.8.8与陈硕贞(北 大生科院硕博连读生,在BIOON中为上官婉儿)讨论此事,而之前在OKHERE又有多 次针对此问题的讨论,硕贞的误解显而易见,但至今在BBSEXPLORER中偶尔提及时 仍然坚持己见。在与之讨论之初本人也对自身的算法思之再三,经再三验证确认 无误,其实这一算法本人在小学数学奥林匹克培训时就已经掌握(强调此知识的 基础性),何以在生物论坛中此算法变得如此陌生。也由此引发对本人对中国生 物化学及分子生物学界以至生命科学界人士普遍缺乏(仅指整体而言,当然例外 者大有人在)数学常识的担忧。 另外对北大生命科学院学生的过分自信、固执己见、妄自尊大、盲目崇拜感到不 可理解,本人并不认为主要由北大教授编写的《生物化学》第三版有何过人之处, 只不过框架较全面,其更新部分也基本引用国外类似教材的观点,且较为集中。 相信在当今教学、科研水平下只要有相近的资金、人力投入(甚至更少,但只要 专心致志),编写这样水平的教材并非十分困难。而且国外的教材在编排方式、 编著态度上大有过之者。从第二版到第三版事隔十余年后,两者在较多部分几乎 雷同,甚至有不作更改的(当然也与经典生物化学的发展已臻成熟有关),可见 编写的态度如何。据陈硕贞声称其算法得到徐长法教授的首肯(不知事实是否如 此),那就更让本人觉得遗憾,命题人连自己的编制(或选定)的习题的题意也 未加以参详,又可见其态度,而对算法的误解就更令人难以相信其在数学方面的 能力。另外在编写教材时对“生物化学文化”方面的介绍较第二版更加缺少,而 国外教材中比较注重“生命科学人文”的介绍,系统学习科学发展史可以帮助学 生对教材内容的层次性、局限性及发展方向有更加准确的把握。 1.如果一个分子量为34000的蛋白质,含12种氨基酸,并假设每种氨基酸在该蛋 白质分子中的数目相等,问这种蛋白质有多少种可能的排列顺序?(《生物化学》 第二版,沈同) 答案:10^304。 2. 如果一个分子量为12000的蛋白质,含10种氨基酸,并假设每种氨基酸在该蛋 白质分子中的数目相等,问这种蛋白质有多少种可能的排列顺序?(《生物化学》 第三版,王镜岩) 答案:10^100。 但两者均为北京大学生命科学院徐长法教授所编写。 此题按正常理解,刻划为数学模型,即有N种氨基酸,每种M个,故有N*M个氨基 酸残基组成蛋白质,进行可重复全排列,根据《组合数学》,研究生系列教材, 姜建国、岳建国编,2003.9,第1版,西安电子科技大学出版社。P5,不尽相异 元素的全排列:有i种元素,每种ni个,且Σni=n,则全排列RP(n,n)=n!/ Π(ni!)。则当ni≡M时,有RP(N*M,N*M)=(N*M)!/(M!)^N。设蛋白 质平均氨基酸残基分子量为K,K*N*M=Mt(蛋白质总分子量),RP=(Mr/K)! /((Mr/N*K)!)^N。但从实际出发,Mr/N*K为正整数(正常情况下M应该是正 整数),K一般取110-118之间,而《生物化学》均推荐110,是通过对大量蛋白 质数据进行统计后得到的,故合理的K取值应该尽量靠近110。而34000/110=309, 34000/118=288,符合题意的取值为312,300,288;相应的K值为109,113, 118;RP为9*10^324,1*10^313,3*10^299。如果K值取教材推荐的110及陈硕贞 的120(见后),RP为9*10^321,2*10^294。如果按照答案的10^304则K为116。 而本题的关键是M是否必需取正整数,用EXCEL计算时M必需为正整数,否则无法 计算,而且只能计算199!以下的值,199以上必须通过近似估计得到,而本人通 过Maple9进行计算,M可以不取整数,且可计算十分巨大的数值。综合上述,本 题的答案K=110-118,RP=9*10^321 - 3*10^299,答案的值也在此范围之内。 而按照陈硕贞的意见,认为K值取120,N*M=283,故RP=12^283=3*10^305。虽 然计算值与答案相近,但这种算法认为283个氨基酸位点可以等概率取到12种氨 基酸中的任何一种,这样显然会出现一种极端的情况,即283个位点均取同一种 氨基酸,这显然与题目条件矛盾。其算法为RP=N^(Mr/K),如果按照这样的算 法,题目就应当改为“每种氨基酸在该蛋白质分子的出现概率相等”,而不是 “每种氨基酸在该蛋白质分子中的数目相等”,这是明显的区别,不知硕贞何以 会理解为前者。于是就提出K取值120来进行计算,如果以K=110计算,RP=12^ (34000/110)=4*10^333。 当然符合现实情况的模型应该是“每种氨基酸在该蛋白质分子的出现概率相等”, 因为一般而言理论上蛋白质分子的某一位置上的氨基酸可以取20种氨基酸中的任 何一种,出现概率相等,此时取20种氨基酸残基平均值118(硕贞取120也接近) 进行计算。不过需要指出这也是理论上的模型,在经过统计大量蛋白质数据后得 到的氨基酸残基平均出现概率并不是相等的(具体不在此作列举),因此就出现 如上所述蛋白质平均氨基酸残基残基分子量为110(实际要比110略大)。 但既然题目的题设已经表达清晰是“每种氨基酸在该蛋白质分子中的数目相等”, 就不必再以是否符合现实情况作为借口进行辩驳,而应当用“不尽相异元素的全 排列”算法进行计算,同时也考查基本的组合数学知识(此内容是组合数学中最 为基本的算法)。对此题算法的不同见解的根源是对“每种氨基酸在该蛋白质分 子中的数目相等”这一题设的理解,但本人认为这样的表述应该不存在疑异。无 论哪种表述方式都可以展示蛋白质多样性这一不容置疑的现象,就无需固执于 “每种氨基酸在该蛋白质分子的出现概率相等”这一种表述方式,也可以适当多 样化。 另外可以将问题简化为共有4个氨基酸,2种氨基酸(A、B),每种2个。 按本人算法:4!/(2!)^2=6 N端 AABB C端 ABAB ABBA BAAB BABA BBAA 按硕贞算法:2^4=16 N端 AAAA C端 AAAB AABA ABAA BAAA AABB ABAB ABBA BAAB BBAA BABA BBBA BBAB BABB ABBB BBBB 显然后者难以满足题设。 本人以为从生物化学、数学观点出发,M应当取正整数,K应该比较接近110,故 取K=113,M*N=300,较为合理,计算得到 RP=1*10^313,不必非要往10^304 一致,关键在于算法而非结果。另外本人怀疑10^304是10^300之误,因为在第二 版、第三版的正文中均提到10^300,疑心此答案并非实际结果,而是取整近似结 果,如果是真实值应该写出完整的科学计数表达式,如a*10^3##(a可以取整 数)。 同样对于第三版的题,K=110,RP=2*10^101,K=118,RP=1*10^94,而取K= 111,RP=2*10^100,与结果最接近。而按硕贞的解法,K=120,故RP=10^100, 与答案一致。而从实际出发12000/110=109,12000/118=101。故K=109,120 时符合实际,RP分别为2*10^102,2*10^92。 基于Maple9可从容进行非整数的阶乘计算,故本文建议一致采用K=110(其实 110-113均可),应用“不尽相异元素的全排列”算法进行计算。 如果将来有题设改为“每种氨基酸在该蛋白质分子的出现概率相等”的情况,K =118(118-120均可),应用指数算法进行计算。 另外需要指出的是何以两种算法的结果如此相近?这一点可以通过Sterling公式 进行换算。n!=(n/e)^n *(2nπ)^(1/2),                        Mr / Ke)^ (Mr/K)*(2 πMr/K)^(1/2) 故有RP=(Mr/K)!/((Mr/N*K)!)^N=——————————————— —————————                      [(Mr/NKe)^(Mr/NK) *(2π Mr/NK)^(1/2)]^N          N^(Mr/K)         N^(Mr/K)     N^ (Mr/K) =————————————————————=——————(1)或 —— ———— (2)    (2πMr/NK)^(1/2)]^(N-1)/N^(1/2)   4*10^11       3*10^7 因为对于题1而言(2πMr/NK)^(1/2)]^(N-1)/ N^(1/2)≈4*10^11 – 3*10^11,K取[110,120]。对于题2而言≈3*10^7 – 2*10^7,K取[110,120]。 故当RP计算值较大时(一般大于300),两种计算的结果会比较相近,但毕竟是 代表不同意义的算法。 注:如果在认同前面提到的观点并在耐心限度之内,完全可以将AB、ABC、ABCD、 AABB、AAABBB、AABBCC这些较为简单的情况进行讨论。 (XYS20041123) ◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.freedns.us)◇◇