我正在尝试生成一个能够编码所选氨基酸的核苷酸基序。例如 - 组氨酸由CAT,CAC编码。精氨酸是CGT,CGC,CGA,CGG,AGA和AGG。模式是:
在密码子中的位置 - C或A
在密码子中的位置 - A或G
位置 - A,T,C或G
答案 0 :(得分:2)
我会分两步完成。首先,使用密码子到氨基酸的映射将核苷酸序列翻译成氨基酸序列(CAT
映射到H
,CAC
映射到H
,{{1 }}映射到CGT
,R
映射到CGC
等。其次,使用Boyer-Moore算法搜索特定的氨基酸序列,或者如果需要,可以搜索正则表达式"通配符"或选项组。
答案 1 :(得分:0)
我更喜欢PHP,JS开发人员,但代码的逻辑仍然相同。 下图是定义不同氨基酸及其代码的图表。
http://wang.salk.edu/images/fig2.jpg
我建议你做这样的事情: $ all_aas = {CGC => A,CGA => A,CGG => A,AGA =>一个, ....}; //定义所有氨基酸
$ chosen_aas = {CAT => H,CGA =>一个]; //定义你选择的所有氨基酸
$ lesser_aas = {CGT => H,CGC => H]; //定义那些不太优选的氨基酸
$ final_aa_seq ='&#39 ;; //最终的氨基酸串
我正在使用Python上面的词典来完成它。它基本上是一个键值对。
现在,每当你得到一个nulcoetide序列。您所需要做的就是:
运行for循环,使用子字符串查找三个字符集。
在$ chosen_aas数组中搜索匹配项;将找到的代码附加到
$ final_aa_seq
如果在$ chosen_aas中找不到,请在$ lesser_aas中搜索字符串;将找到的代码附加到
$ final_aa_seq
运行所有完整的for循环并输出字符串。
如果您需要更多逻辑,请告诉我。
答案 2 :(得分:0)
问题解决了:
1)我制作了一个来自choise氨基酸的所有密码子的文库(例如Met和Trp是AUG和UGG - 因此所有组合的文库由[A / U] [U / G] [G] - AUG组成,AGG,UUG,UGG
2)创建了两个列表 - 第一个“好”氨基酸 - AUG,UGG和第二个“坏” - AGG,UUG
3)计算剩下的“好”氨基酸的量,如果我去除一个特定的核苷酸(如果我在第二个位置移除U,我丢失了我的AUG中的蛋氨酸 - 所以对于U在第二个位置,数字是1)每个位置的核苷酸
4)接下来的“坏”密码子被分析每个位置中每个核苷酸的出现(对于密码子AGG和UUG,我在第三个中具有2x G,在第二个中具有1xG,在第一个中具有1x U等)。5)在这些步骤之后,我只是从步骤4)中取出最高数字,查看步骤3)中的列表以及是否可以无害地去除第三位的G而没有任何良好氨基酸损失(在我们的例如,但可以在较大的密码子集中完成) - 我删除所有密码子,其中G位于第三位,编辑“好”和“坏”密码子列表,然后再次进入步骤3)