首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prolog :蛋白质到RNA的反向翻译

prolog :蛋白质到RNA的反向翻译
EN

Stack Overflow用户
提问于 2015-05-23 10:46:58
回答 2查看 139关注 0票数 1

我想展示在蛋白质序列中RNA序列的所有可能的概率,膜联蛋白是蛋白质的名字。事实:

代码语言:javascript
复制
protein(annexin,[phe,leu,gly]).
code('phe') -> codon('UUU','UUC')
code('leu') -> codon('UUA','UUG')
code('gly') -> codon('GGC','GGU')

rules:
rna(X):-
   protein(X,[A,B,C].
   (i dont know how to permute the triplet codon)

query:
rna(annexin)

result:
UUU,UUA,GGC
UUU,UUG,GGC
UUU,UUA,GGU
UUC,UUA,GGC
...
...
EN

回答 2

Stack Overflow用户

发布于 2015-05-23 18:48:13

我认为代码/密码子的表示必须明确,然后

代码语言:javascript
复制
protein(annexin,[phe,leu,gly]).
code(phe, ['UUU','UUC']).
code(leu, ['UUA','UUG']).
code(gly, ['GGC','GGU']).

rna(X, R) :- protein(X, LC), maplist(code_p, LC, R).
code_p(C, R) :- code(C, L), member(R, L).

收益率

代码语言:javascript
复制
?- rna(annexin, C).
C = ['UUU', 'UUA', 'GGC'] ;
C = ['UUU', 'UUA', 'GGU'] ;
C = ['UUU', 'UUG', 'GGC'] ;
C = ['UUU', 'UUG', 'GGU'] ;
C = ['UUC', 'UUA', 'GGC'] ;
C = ['UUC', 'UUA', 'GGU'] ;
C = ['UUC', 'UUG', 'GGC'] ;
C = ['UUC', 'UUG', 'GGU'].
票数 1
EN

Stack Overflow用户

发布于 2015-05-23 16:23:51

1)

代码语言:javascript
复制
code('phe') -> codon('UUU','UUC')

不是通常的事实,我假设你的意思是这样的:

代码语言:javascript
复制
code('phe',codon('UUU','UUC')).

2)

你不需要评估所有可能的答案,prolog会由你来做:

代码语言:javascript
复制
rna(X) :-
  protein(X,[CA,CB,CC]),
  ( code(CA,codon(DA,_)); code(CA,codon(_,DA)) ),
  ( code(CB,codon(DB,_)); code(CB,codon(_,DB)) ),
  ( code(CC,codon(DC,_)); code(CC,codon(_,DC)) ),
  format('~w ~w ~w~n', [DA, DB, DC] ),
  fail.

(如果您需要对结果进行一些后处理,请删除&fail格式,并使用setof/bagof将所有结果存储在一个列表中)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30408387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档