我不认为我想做的事情真的很难,但是我缺乏做这些事情的适当的 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)
这确实有效,但仅针对一种模式,它不包括模式出现的所有情况。
我想最终得到的是包含这些信息的东西:
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