9

(私はBioStarsでこれを尋ねてみましたが、テキスト マイニングの誰かがより良い解決策があると思う可能性がわずかにあるため、ここにも再投稿しています)

私が達成しようとしているタスクは、いくつかのシーケンスを整列させることです。

一致する基本的なパターンがありません。私が知っているのは、「True」パターンの長さは「30」でなければならず、シーケンスにはランダムなポイントで欠損値が導入されているということだけです。

これはそのようなシーケンスの例です。左側に欠損値の実際の位置が表示され、右側に観察できるシーケンスが表示されます。

私の目標は、右側の列にあるシーケンスのみを使用して左側の列を再構築することです (各位置の文字の多くが同じであるという事実に基づいて)

                     Real_sequence           The_sequence_we_see
1   CGCAATACTAAC-AGCTGACTTACGCACCG CGCAATACTAACAGCTGACTTACGCACCG
2   CGCAATACTAGC-AGGTGACTTCC-CT-CG   CGCAATACTAGCAGGTGACTTCCCTCG
3   CGCAATGATCAC--GGTGGCTCCCGGTGCG  CGCAATGATCACGGTGGCTCCCGGTGCG
4   CGCAATACTAACCA-CTAACT--CGCTGCG   CGCAATACTAACCACTAACTCGCTGCG
5   CGCACGGGTAAGAACGTGA-TTACGCTCAG CGCACGGGTAAGAACGTGATTACGCTCAG
6   CGCTATACTAACAA-GTG-CTTAGGC-CTG   CGCTATACTAACAAGTGCTTAGGCCTG
7   CCCA-C-CTAA-ACGGTGACTTACGCTCCG   CCCACCTAAACGGTGACTTACGCTCCG

上記の例を再現するコード例を次に示します。

ATCG <- c("A","T","C","G")
set.seed(40)
original.seq <- sample(ATCG, 30, T)
seqS <- matrix(original.seq,200,30, T)
change.letters <- function(x, number.of.changes = 15, letters.to.change.with = ATCG) 
{
    number.of.changes <- sample(seq_len(number.of.changes), 1)
    new.letters <- sample(letters.to.change.with , number.of.changes, T)
    where.to.change.the.letters <- sample(seq_along(x) , number.of.changes, F)
    x[where.to.change.the.letters] <- new.letters
    return(x)
}
change.letters(original.seq)
insert.missing.values <- function(x) change.letters(x, 3, "-") 
insert.missing.values(original.seq)

seqS2 <- t(apply(seqS, 1, change.letters))
seqS3 <- t(apply(seqS2, 1, insert.missing.values))

seqS4 <- apply(seqS3,1, function(x) {paste(x, collapse = "")})
require(stringr)
# library(help=stringr)
all.seqS <- str_replace(seqS4,"-" , "")

# how do we allign this?
data.frame(Real_sequence = seqS4, The_sequence_we_see = all.seqS)

私が持っていたのが文字列とパターンだけだったら使用できることを理解しています

library(Biostrings)
pairwiseAlignment(...)

しかし、私が提示したケースでは、(それらを 1 つのパターンに整列させるのではなく) 互いに整列させるために多くのシーケンスを扱っています。

Rでこれを行うための既知の方法はありますか?

4

4 に答える 4

9

R でアラインメント アルゴリズムを記述することは、私には悪い考えのように思えますが、 bio3dパッケージ (関数seqaln() ) にはMUSCLEアルゴリズムへの R インターフェイスがあります。最初にこのアルゴリズムをインストールする必要があることに注意してください。

または、利用可能なアルゴリズム ( ClustalWMAFFTT-COFFEEなど) のいずれかを使用して、生体伝導体機能を使用して R に複数のシーケンス alignemts をインポートすることもできますたとえば、ここを参照してください。.

于 2010-12-21T10:44:53.130 に答える
0

複数の配列でグローバル アラインメント アルゴリズムを探しています。質問する前にウィキペディアを見ましたか?

最初にグローバル アラインメントとは何かを学び、次に複数配列アラインメントを探します。

ウィキペディアにはアルゴリズムの詳細はあまり記載されていませんが、この論文の方が優れています。

于 2010-12-21T09:45:21.873 に答える