困惑して長い時間と広範な検索をオンラインで試みた後、問題が発生しました。最大の差のために(無作為にはない)文字列をシャッフル
文字列をシャッフルして、元の文字列と同じ最大文字数を持つ文字列を取得する方法を探していますが、同じ文字列が含まれています。私の特定のケースは、短いヌクレオチド配列(4-8ヌクレオチド長)のためである
、これらの例の配列によって表されるように:各シーケンスに対して
seq_1<-"ACTG"
seq_2<-"ATGTT"
seq_3<-"ACGTGCT"
、私は同じが含まれているスクランブル系列を取得したいと思います核酸塩基の数は、異なる順序である。
seq_3の好ましいスクランブルシーケンスは次のようなものです。配列のいずれも1-7位置決めない
seq_3.scramble<-"CATGTGC"
は、同一の核酸塩基を有するが、全体的な核酸塩基数が(A = 1、C = 2、G = 2、T = 2)と同じです。もちろん、完全に異なる文字列を得ることは必ずしも可能ではありませんが、これらは出力にフラグを立てるだけです。
私は特にシーケンスをランダム化することに興味はなく、これらのスクランブルシーケンスを一貫した方法で作る方法を好むだろう。
ご意見はありますか?
に文字列Aを変換するのに必要な置換の数は、あなたがRを使用する必要があります決定する、
stringdist(..., ..., method=hamming)
を使用して計算されますか?厳密に距離メトリックを定義できますか?これは基本的には配列の操作と2つのforループです。 –シーケンスがすべての並べ替えを行うには長すぎる場合は、距離を最大化するためにいくつかのランダムランを試すことができます – user3507085
正確な最適解を探しているのか、また、上記の距離メトリックを定義する必要があります。たとえば、[Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance)を受け入れることができますか? –