我有一堆生物序列数据,我需要为每个字母到字母转换的计数制作一个计数矩阵 -> 即 A 后跟 A,A 后跟 T,...,T 后跟 T
我找不到一个包可以根据我的数据自动生成 4x4 矩阵,因此我一直通过查找每个 2 个字母组合的每个序列中的计数来手动进行操作。但是,我现在需要按索引将所有不同的 2 字母计数相加 -> 即 AA 的索引 1 + AT 的索引 1 + ... TT 的索引 1 等等,直到所有索引完成,这就是我的位置我迷路了。
获取 2 个字母计数的代码:
AA <- str_count(data$Sequence, "AA"); AC <- str_count(data$Sequence, "AC")
AG <- str_count(data$Sequence, "AG"); AT <- str_count(data$Sequence, "AT")
CA <- str_count(data$Sequence, "CA"); CC <- str_count(data$Sequence, "CC")
CG <- str_count(data$Sequence, "CG"); CT <- str_count(data$Sequence, "CT")
GA <- str_count(data$Sequence, "GA"); GC <- str_count(data$Sequence, "GC")
GG <- str_count(data$Sequence, "GG"); GT <- str_count(data$Sequence, "GT")
TA <- str_count(data$Sequence, "TA"); TC <- str_count(data$Sequence, "TC")
TG <- str_count(data$Sequence, "TG"); TT <- str_count(data$Sequence, "TT")
我对可能解决此问题的外部包/函数以及任何可以更有效地完成上述代码的包/函数持开放态度
最佳答案
您可以使用生物字符串:
library(Biostrings)
data = data.frame(Sequence=c("AGGATC","GTCCCA"))
dinucleotideFrequency(DNAStringSet(as.character(data$Sequence)))
AA AC AG AT CA CC CG CT GA GC GG GT TA TC TG TT
[1,] 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0
[2,] 0 0 0 0 1 2 0 0 0 0 0 1 0 1 0 0
关于r - 使用 R 计算字符串矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61873569/