我不认为我想要做的真的很难,但是我缺乏做这些事情的适当的R知识。所以帮助是真正的赞赏!序列识别,计数和检索序列的一部分
我有含蛋白质的名称和序列的文件,所以这样的事情:
Protein1 ABCDEFGHIJKLMNOPQRSTUWXYZ
Protein2 ABCDEFGHIJKUVMNOPQRSTUVWXYZ
Protein3 ABCUVDEFGHIJKLMNOPQRSTVVW
我在寻找包含模式'UU'
,'UV'
或'VV'
蛋白质。我这样做,使用:
(编辑:这是一个简单的例子,目前我看着三胞胎( “[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
谢谢你的回应,我可以在明天试试它(抱歉,会议和所有)。同时,当你使用这样的图案时,这是否也可以工作:[UV] [UV] [UV],所以UUU,VVV,UUV,UVU等,而不是输入所有选项? 什么是最简单的方式获得这些结果的某种数据矩阵,我可以导出到txt文件? (向其他人展示) – user1941884
你需要澄清你的意思。当前模式将匹配这四种变体中的任何一种,因为它们中的每一种都包含UU或UV中的一种。如果你试图找出三重态重复,那么你需要这么说(我认为你提出的模式应该这样做)。如果你想数它们,你将需要使用'gregexpr'。 –
计数工作完美,谢谢! 不知何故,当我使用总代码 #In if(!nchar(mat)== nchar(dat [,5])){...: #条件长度> 1并且只有第一个元素将被使用 另外输出对我来说还不清楚。也许是因为我使用的文件。我将在周末期间或之后进一步讨论,并会回复给您。我相信我已经接近解决它了。如果我需要一些额外的帮助,将编辑我的帖子。周末愉快! – user1941884