1

以下の質問は、特にバイオテクノロジーアプリケーションに適用されますが、他の分野での同様の問題の一般的な原則を示している場合があります。これは巡回セールスマン問題に関連する可能性のあるNP困難な問題であり、解決策に到達するためにどのアルゴリズムを使用できるのか興味があります。

簡単な生物学的背景:タンパク質は20個のアミノ酸で構成されています。DNAは4つの塩基(A、C、G、T)で構成されています。タンパク質のDNA配列によって、アミノ酸の配列が決まります。3つのDNA塩基(単位はコドンと呼ばれます)の連続する各配列は、1つのアミノ酸をコードします。単一のアミノ酸は複数のコドンでコード化できます。たとえば、バリンには4つのコード化方法があります。

すべてのコドンが等しくなるわけではありません-それらのいくつかは他より速く処理されます。また、すべてのコドンペアが等しくなるわけではありません-いくつかのペアは他のペアよりも遅いです。

これは、100アミノ酸(300 DNA塩基)の特定の遺伝子について、同じアミノ酸配列をコード化する多くの方法がありますが、処理速度などの非常に異なる特性を持つことを意味します。

対応する速度値を持つコドンペアのテーブルが与えられた場合、希望する速度のシーケンス、たとえば可能な限り速いシーケンスと最も遅いシーケンス、およびその間の勾配を出力できるアルゴリズムを記述したいと思います。入力は、遺伝子をコードするDNA配列、およびコドンペアとそれぞれの速度スコア(-1から1)の辞書です。出力は、最適化されたDNA配列とその全体の速度スコア(すべてのコドンペアスコアの合計として表すことができます)です。アミノ酸配列は同じままでなければなりません。

:3つのアミノ酸をコードする配列AAATTTGGGがあり、スコアのあるコドンペアがある場合:

AAATTT = -0.5

TTTGGG = -0.5

この場合、このシーケンスのスコアは-1になる可能性があります。

ペアの選択肢もある場合は、さまざまな可能性を評価できます。

AAATTG = -0.7 AAATTC = -0.3

TTGGGC = +0.2 TTCGGA = -1.0

この情報に基づく最適なシーケンスは、全体の値が-1.3になるため、AAATTCGGAであることがわかります。

もちろん、この問題の複雑さは、周囲のすべてのコドンペアに対するコドンペアの影響にあります。

完全なコドンペアチャートには61*61のエントリがあります(3つのコドンが遺伝子の読み取りを停止するため)。

====

質問

これはNP困難な問題であり、TSPと関係があると思います。シミュレーテッドアニーリングアルゴリズムを使用するアプローチを見てきました。この問題とそれに対応するアルゴリズムおよびヒューリスティックを考慮して目的の出力を生成する他の洞察に満ちた方法があるかどうか知りたいです。

動的計画法の場合、どのようなアプローチが適切でしょうか?

また、アルゴリズムを使用して、最大値と最小値だけでなく、速度スコアの勾配を作成するにはどうすればよいですか?

4

2 に答える 2

1

遺伝的アルゴリズムを使用すると、目的を達成するシーケンスを取得できるはずです。目標が x の速度だとすると、遺伝子の集団を作成できます。それぞれが同じ遺伝子をコードしていますが、異なるコドンによってコードされています。次に、x が達成される (または十分に近づく) まで、数世代にわたって選択、交配、および突然変異を行います。変異/組換えの要素は、(ヌクレオチド レベルではなく) コドン レベルでなければなりません。異なる速度で一連のシーケンスを実現するには、異なる目的 x でアルゴリズムを複数回実行します。

于 2012-10-14T00:27:19.337 に答える
0

特定のシーケンスの最も速い (または最も遅い) エンコーディングを取得することは、単純な動的計画法の問題です。各 3 つのアミノ酸グループを 64 文字のアルファベットの文字と考えてください。次に、結果の文字列の各ポイントで、目的のアミノ酸を生成するいくつかの文字を選択し、隣接する文字の各ペアに関連付けられた合計を最大化 (最小化) します。

左から右に、各ポイントで、可能な文字ごとに、その文字で終了する最大 (最小) シーケンスを計算します。各文字には最大 64 の可能性があります。n までの文字の解が与えられた場合、ここでその答えを使用して、n+1 までの文字の解を計算できます。文字 n と n+1 のスコアを取得し、これを既に計算された最良の答えに追加するだけです。 n までの文字 - n+1 の各可能な文字に対して見つけた最良の答えを保持します。

中間スコアの回答を得るには、正しいアミノ酸配列を生成するランダムな回答を生成するのが 1 つの方法です。もう 1 つの方法は、最大スコアを生成する回答の部分と最小スコアを生成する回答を混合することです。

于 2012-10-14T04:51:39.240 に答える