やりたいことが本当に難しいとは思いませんが、この種のことを行うための適切な R の知識が不足しています。ですから、助けていただければ幸いです。
タンパク質の名前と配列を含むファイルがあるので、次のようになります。
Protein1 ABCDEFGHIJKLMNOPQRSTUWXYZ
Protein2 ABCDEFGHIJKUVMNOPQRSTUVWXYZ
Protein3 ABCUVDEFGHIJKLMNOPQRSTVVW
'UU'
パターン、'UV'
またはを含むタンパク質を探しています'VV'
。私はそれを使用してそれを行いました:
(編集:これは単純化された例です。現在、トリプレット ("[UV][UV][UV]") を見ています)
y <- x[grep("[UV][UV]", x[,2]),]
だから今、私はどれがパターンを持っているかを知っていますが、もっと欲しい. まず、このパターンがシーケンスにどのくらいの頻度で存在するかを知りたいのですが、今のところこれを行う方法を見つけることができませんでした. それでは質問その1です。
質問番号2:パターン+シーケンスの前の部分を抽出したい。これまで私は使用してきました:
pattern <- "[A-Z]{5}[UV][UV]"
locs <- regexpr(pattern, y[,2])
z <- substr(y[,2], locs, locs+attr(locs,"match.length")-1)
これは機能しますが、パターンの 1 つのアカウントについてのみであり、パターンが発生するすべてのケースが含まれているわけではありません。
私が最終的にしたいのは、この情報を含むものです:
Protein name,
number of patterns found in the sequence,
pattern + part of the desired sequence in front
私の例では、結果は次のようになります。
Protein1
0
Protein2
2
GHIJKUV
PQRSTUV
Protein3
2
ABCUV #don't know about this one, since the sequence in front is shorter than 5. For me it would be best if these would not appear.
PQRSTVV
編集:最後に、データマトリックスをテキストファイルに保存して、他の人と共有できるようにしたいと思います。次に、次のようなものになりたいと思います。
ProteinName Count Sequence1 Sequence2 Sequence3 SequenceMax
Protein1 0
Protein2 2 GHIJKUV PQRSTUV