I have the following data frame:
library(tidyverse)
dat <- structure(list(fasta_header = c(">seq1", ">seq2"), sequence = c("MPSRGTRPE",
"VSSKYTFWNF")), .Names = c("fasta_header", "sequence"), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame"))
dat
#> # A tibble: 2 x 2
#> fasta_header sequence
#> <chr> <chr>
#> 1 >seq1 MPSRGTRPE
#> 2 >seq2 VSSKYTFWNF
我想要做的是计算每一行氨基酸的频率。期望的结果如下(手动计算):
fasta_header sequence M P S R G T E V K Y F W N
>seq1 MPSRGTRPE 1 1 1 2 1 1 1 0 0 0 0 0 0
>seq2 VSSKYTFWNF 0 0 2 0 0 1 0 1 1 1 2 1 1
我该如何使用dplyr管道方法完成这个任务?
dat
中所有行中sequence
列的唯一值。 - littleworthBioconductor
中的Biostrings
包。它拥有各种令人惊叹的函数。 - Amar?Biostrings::letterFrequency
和?Biostrings::alphabetFrequency
。 - Maurits Evers