問題タブ [sequence-alignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
516 参照

string - 配列アラインメント

配列アラインメントについて次の質問があります。

グローバル アラインメントアルゴリズムは、2 つの配列をその全長にわたって強制的にアラインさせたい場合に役立ちます。ローカル アラインメントは、2 つの配列間で類似性が最も高い領域を見つけて、そこから外側に向かってアラインメントを構築します。

非常に長い 1 つのシーケンスと小さなシーケンスのライブラリがある場合、アライメント コストを最小化するライブラリ内の小さなシーケンスの連結を見つけるための最適なアルゴリズムは何ですか?

0 投票する
2 に答える
2130 参照

python - 複数配列アラインメント (最長共通部分配列)?

OKこれは私がやりたいことです:

2 つ以上の文字列を取得し、それらを「整列」します (DNA/RNA シーケンスなどはなく、それぞれに 1000 個ほどのアイテムがない通常の文字列のみ)。

ペアワイズ アラインメント (2 つの文字列をアラインする) については既にいくつかの作業を行っていますが、複数のペアをアラインしようとすると、「ギャップ」が問題を引き起こします。

(私が現在テストしているもの)

そして別の(より説明的な)例:

私が現在していること:

  • 文字列を並べ替える (長い文字列がリストの最初に来る)
  • 最初のペア : AB を整列させ、結果を取得します (たとえばR1)
  • 次に、2 番目のペア :R1C(結果はR2)を揃えます。
  • 次に、3 番目のペアR2を揃えます。D
  • 等々...

それで、あなたの心の中には何がありますか?どうすればそれを手に入れることができますか?より良い方法はありますか?(もちろんあるはず…)

私はPerl/Pythonまたはこれらの行に沿った何かでそれを行いたいと思っていますが、あらゆるタイプのコード/リファレンスは大歓迎です! :-)

0 投票する
2 に答える
644 参照

r - 配列アラインメントをファイルに出力

BioconductorのBiostringsパッケージのpairwiseAlignmentを使用して、単純なペアワイズDNA配列アラインメントを実行します。

出力は次のようになります。

非常に長いシーケンスの場合、出力は切り捨てられ、1行のみが表示されます。

完全な配置をテキストファイルに出力するにはどうすればよいですか?

0 投票する
2 に答える
244 参照

bioinformatics - MultipleSeqAlignment オブジェクトの印刷

によって生成された3つのシーケンスのアラインメントがありますclustalx

Biopython で定義済みのインデックス付けを使用してアライメントをスライスできますalign[:,:4]

ただし、結果を印刷すると、次のようになります。

以下に示すように、名前を出力せずにサブアラインメントをキャプチャするにはどうすればよいですか?

align[:,:4].seq探している出力が得られません。

0 投票する
1 に答える
157 参照

java - タンパク質配列表示

大学の研究プロジェクトの Java アプリケーションでタンパク質配列のアラインメントを表示しようとしています。各セルで JLabel を含む JTable を使用して、シーケンス内のアミノ酸を保持するというアイデアがありました。背景色、テキスト色を変更し、各セル イベントを駆動できるようにする必要があります。これを行うより良い方法はありますか?

0 投票する
1 に答える
471 参照

r - ロングペアワイズヌクレオチドアラインメントを行うアルゴリズムを探しています

私は可能性をスキャンしようとしてSNPsおりindels、足場を参照ゲノムのサブシーケンスに整列させています。(生の読み取りは利用できません)。R/bioconductorBiostrings パッケージの「pairwiseAlignment」関数を使用しています。これは小さなスキャフォールドでは問題なく機能していましたが、56kbp スキャフォールドとして整列しようとすると失敗し、次のエラー メッセージが表示されました。

QualityScaledXStringSet.pairwiseAlignment のエラー (パターン = パターン、: サイズ 17179869183.7 Gb のメモリ ブロックを割り当てることができません

これがバグかどうかわかりませんか?; Needleman-Wunsch algorithm私は、 used bypairwiseAlignmentは、計算の要求がoperationsO(n*m)の順序にある​​ことを意味すると私が考えたであるという印象を受けました。同様に、類似度マトリックスも 3.1 ギガのメモリを占めるようです。big-o表記を正しく覚えていないのか、それとも環境のオーバーヘッドを考慮してアライメントを構築するために実際に必要なメモリオーバーヘッドなのかはわかりません。3.1E9(56K * 56k ~= 3.1E9)Needleman-WunschR scripting

より長いシーケンスのアラインメントに使用するより良いアラインメント アルゴリズムの提案はありますか? 最初のアラインメントは、BLAST を使用してすでに行われており、アラインメントする参照ゲノムの領域を見つけています。インデルを正しく配置するための の信頼性に完全に自信があるわけでBLASTはなく、生の BLAST アラインメントを解析するためのバイオストリングによって提供されるものと同じくらい良い API をまだ見つけることができませんでした。

ところで、問題を再現するコード スニペットを次に示します。

このエラーは、短いアラインメント (数百の塩基) では発生しません。エラーが発生し始める長さのカットオフをまだ見つけていません

0 投票する
2 に答える
283 参照

algorithm - 最小サブシーケンス長制約によるシーケンスアラインメント

最小のサブシーケンス長の制約でシーケンスアラインメントを実装するにはどうすればよいですか。たとえば、これらの入力の最小サブシーケンス長を3とします。Smith-Watermanを使用すると、次のような出力が得られます。

しかし、代わりに私は以下のようにする必要があります。

このための既知のアルゴリズムはありますか、それともアプローチを知っていますか?

前もって感謝します。

0 投票する
1 に答える
1387 参照

python - 再帰呼び出しによるパスの検索: 最適な文字列配置

それで、前にこれを尋ねてみましたが、私が探していたものについて十分に明確ではなかったと思います. 私は最適な文字列配置アルゴリズムを作成しています。これは実際には動的プログラミングの問題です。なので、再帰的に書くことにしました。このプログラムは、次の 2 つの部分で構成されています。

  • 関連するコストに基づいてアラインメントを最小化する、2 つの単語間の「編集距離」を見つける。たとえば、同じ文字を並べるとコストは 0、2 つの母音を並べるとコストは 0.5 ですが、ギャップのある文字を並べるとコストは 1 になります。
  • アラインメントの視覚化: つまり、文字列とギャップの最適なアラインメントを使用して文字列を相互に重ねます。

私の編集距離は機能すると思います。私は同僚と同じ値を取得しており、差し迫った問題はないようです。ただし、一致、挿入、および削除のシーケンスを復元してアライメントを視覚化する方法を理解するのに苦労しています。私の問題は、最低 3 回の再帰呼び出しを行う再帰関数があるという事実に起因しています。そのため、再帰呼び出しごとに「移動」(一致、挿入、削除) が追加されるため、必要以上に長いシーケンスになってしまいます。これは、最もコストがかからないため使用されない可能性があります。

これが私のコードです:

そうそう、私は自分が持っているものが機能していないことを知っています。newseq再帰呼び出し中に発生するすべての追加を削除してリセットしようとするため、現在のグローバル変数の長さは 1 です。この再帰アルゴリズムで最適なアライメントを構成する一連の「移動」を記録する方法を設定するにはどうすればよいですか?

編集:これが私の memoize デコレータ関数です:

0 投票する
1 に答える
174 参照

r - Rで一度に10列をループする

1000列のデータフレームがあります。一度に 10 列をループしてseqdef()、パッケージの関数を使用しTraMineRて、それらの列のデータ全体でシーケンス アラインメントを実行しようとしています。したがって、この関数を最初の周回では列 1 ~ 10 に適用し、2 回目の周回では列 11 ~ 20 に 1000 まで適用します。

これは私が使用しているコードです。

ただし、これは最初の 10 をループしてから停止します。10列のチャンクでループするにはどうすればよいですか?