- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
PAGE 2
.
第 PAGE 2页,共 NUMPAGES 1页
基于优化递归算法的分子量分解问题
摘要:
本文讨论的问题是:在实验室拥有或不拥有计算机的情况下,如何将已知分子量x的蛋白质分解成18种已知分子量的氨基酸的问题,并满足蛋白质含氮量在15%—17%的物理性质。
在实验室有计算机的情况下,本文首先考虑了穷举算法,该问题就等效为十八元一次方程求整数解的问题,表示为
每种氨基酸构成蛋白质数量root(i)的上限为+1,取x最大为1000时,有种,运算量过大难以实现。
我们又考虑了递归算法,即从分子量最大的第18种氨基酸开始考虑,第18种氨基酸分子构成蛋白质的个数,对root进行分类取值,在取值已知的情况下再考虑第17种氨基酸,此时分子量减去第18种氨基酸总分子质量,得到新的分子量,将大大减少计算量。抽象归纳为的取值范围如下:
该算法同样满足含氮量的约束条件。我们借助C语言编写程序并对程序进行优化,大大加快了运行速度。
在实验室无计算机的情况下,由氨基酸的结构通式得出,每个氨基酸都存在结构,分子量为56。本文将18种氨基酸的分子量都减去56,得到18种氨基酸R基的分子量。先将任一分子量除以56取整,得到构成该蛋白质的氨基酸数目的范围(即),再根据b的取值进行分类讨论从而选择R基,后根据蛋白质含氮量对结果进行验证,在人工的情况下,此方法相对于递归法大大地减少了计算量。
关键词:分子量分解问题 递归优化法 含氮量 C语言 结构通式
1、问题重述
生命蛋白质是由若干种氨基酸经不同的方式组合而成。在实验中,为了分析某个生命蛋白质的分子组成,通常用质谱实验测定其分子量x (正整数),然后将分子量x分解为n个已知分子量a[i](i=1,,n)氨基酸的和的形式。某实验室所研究的问题中:n=18, x1000,a[i](i=1,,18)分别为57, 71, 87, 97, 99, 101, 103, 113, 114, 115, 128, 129, 131, 137, 147, 156, 163, 186。要求针对该实验室拥有或不拥有计算机的情况,对如何分解分子量x作出解答,即针对任意一个分子量x具体给出由哪些a[i](i=1,,n)氨基酸组成。
2、问题分析
题目中给出18种氨基酸分子量,要求解出已知分子量的蛋白质由哪几种氨基酸组成。初步分析,这是十八元一次方程求整数解的问题,方程形式为
其中为已知量,为18种氨基酸分子量,未知数为组成蛋白质的每种氨基酸的个数。
3、模型假设
(1)假设氨基酸组合形成蛋白质时不脱水。
(2)假设蛋白质中肽键不存在多键或成环情况,两个氨基酸之间只形成一条肽键。
(3)假设每种氨基酸出现的概率都相同。
4、符号设定
— 第种氨基酸的分子量;
— 第种氨基酸的数量;
— 第种氨基酸分子中氮原子的个数;
— 蛋白质分子量;
— 第种氨基酸基的分子量;
— 蛋白质中所含氨基酸的总数;
5、模型建立与求解
5.1实验室有计算机时的模型建立
5.1.1穷举法模型
我们首先考虑用穷举算法求解方程,根据上文符号设定,该方程可以表示为
其中且为整数。利用穷举法,对每个分别取,1,…,,找出符合上述方程的每个的取值,所得的每组解的集合即为最终解。穷举算法利用MATLAB实现,程序代码见附录一。
用上述算法,我们发现,如果的取值太大,MATLAB警告“busy”,程序无法运行。假如,求出每一个的最大值,如表一所示:
表一 最大值
i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a(i)
57
71
87
97
99
101
103
113
114
115
128
129
131
137
147
156
163
186
root(i)
17
14
11
10
10
9
9
8
8
8
7
7
7
7
6
6
6
5
运算次数为次,MATLAB无法进行如此大数量级的运算,导致可求解的具有很大的局限性。所以我们建立下文中的新模型,从而减少运算次数,提高运算速度,增强运算可行性。
5.1.2递归法模型
为减少冗余次数,我们设计思路如下:从分子量最大的氨基酸开始考虑,初步确定第18种氨基酸分子个数后,对剩下17种氨基酸的确定,则不需要再用作为衡量标准,而可以将蛋白质中所含第18种氨基酸总分子质量减掉后,得到新的分子量,则剩下的17种氨基酸可以用新的分子量来确定。按照此思路分析,的新取值范围如下:
利用这种模型,可以有效减少运算次数,使程序可以顺利运行。
5.1.3结果筛选
我们考虑通过查阅资料了解到测定蛋白质的常用指标是含氮量,一般蛋
原创力文档


文档评论(0)