私は、整列させたい100文字の2つの配列を持っています(最大、それ以下でも同じでもないかもしれません)。他の文字と異なる文字がある場合は、「 - 」を追加します。ダイナミックプログラミングに基づいたNeedleman–Wunschアルゴリズムと、動的プログラミングに基づいた一般的なローカルアライメントメソッドであるSmith–Watermanアルゴリズムが見つかりましたが、それらは私がやりたいことに対しては複雑すぎます。私はちょうど50行未満のJavaの単純なアルゴリズムを必要とするだけで、このコードはアセンブリ言語に翻訳されるので、単純なアルゴリズムが必要なのです。Javaキャラクタのアライメントアルゴリズム
diffアルゴリズムとのこの種のアラインメントはありますか?はいの場合、誰かが私にこれを行う方法を教えることができますか?私はbiostarセクションを検索しましたが、私が言及した2つのアルゴリズムを使用する必要があるようです。
英語は母国語ではないため、間違ったキーワードを検索してしまう可能性があります。
私のプログラムは、すでにNeedlemanアルゴリズムと約200行(ish)のコードで動作します。所望の入力/出力の
例:
Input
Array 1 : MKNLASREVNIYVNGKLV
Array 2 : QMASREVNIYVNGKL
Output
Array 1 (or a simple print) : -MKNLASREVNIYVNGKLV
Array 2 (or a simple print) : QM---ASREVNIYVNGKL-
おかげ
は正しい出力か? 「IY」は消え、「Q」はまだ残っている?アレイ2の順序は関係がありますか、それとも単純にアレイ1の順序に従っていますか? –
問題をより明確にするために入力出力を修正し、注文が関係しています。 – metraon
Wikipediaの記事http://en.wikipedia.org/wiki/Sequence_alignmentには、基本的にはリストされている唯一のアルゴリズムです。インターネットがより良いものを思いつくことはまずありません。さらに、あなたの問題のシナリオは、一般的な配列アライメントの場合よりも**簡単です** –