r - 使用 R 计算字符串矩阵

标签 r

我有一堆生物序列数据,我需要为每个字母到字母转换的计数制作一个计数矩阵 -> 即 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/

相关文章:

r - 转换 data.table 中的一组列

r - 错误: ScalesList was built with an incompatible version of ggproto

r - 如何在ifelse中包含NA?

r - 具有交互项的固定效应回归会导致错误

r - 使用 R 中的辛普森规则计算曲线下面积

r - 将(read.csv)导入R时,如何省略csv文件中每行结尾的分号?

r - Polr函数错误: "response must be a factor"

r - 如何让 org-mode 导出宽或长表以便在 PDF 中可读?

r - 如何使用lapply定义多个变量?

r - 根据 R 数据框中字符串的长度插入引号