如何查找参数中字符出现的百分比?

How to find percentage of occurrence of characters in an argument?

如果数据是

,我应该如何计算参数中字符出现的百分比
t<-c(UUU,UUC,UUA,UUG,CUU,CUC,CUA,CUG,AUU,AUC,AUA,AUG,GUU,GUC,GUA,GUG,UCU,UCC,UCA,UCG,CCU,CCC,CCA,CCG,ACU,ACC,ACA,ACG,GCU,GCC,GCA,GCG,UAU,UAC,UAA,UAG,CAU,CAC,CAA,CAG,AAU,AAC,AAA,AAG,GAU,GAC,GAA,GAG,UGU,UGC,UGA,UGG,CGU,CGC,CGA,CGG,AGU,AGC,AGA,AGG,GGU,GGC,GGA,GGG)

我想做一个关于这个的函数,这可能会帮助我将来计算更多的问题。

假设我们的论点是-

(UUUUUCUUAUUGCUUCUCCUACUGAUUAUCAUAAUGGUUGUCGUAGUGUCUUCCUCAUCGCCUCCCCCACCGACUACCACAACGGCUGCCGCAGCGUAUUACUAAUAGCAUCACCAACAGAAUAACAAAAAGGAUGACGAAGAGUGUUGCUGAUGGCGUCGCCGACGGAGUAGCAGAAGAGGUGGCGGAGGG)

此外,阅读框将从 3(例如 AUG、GUG)的数量开始 我得到了下面的代码,但我希望我的答案以列表的形式出现,其中有两列名为计数和百分比,请帮助我修改此代码以按要求的方式给出百分比。

    seqn <- c("UUA","AUC","GUA", "UUA", "GAU", "UUA") #your sequence
l_seq <- length(seqn) 
u_seq <- unique(seqn) 
seq_long <- "UUUAUGGGCG"
seqn <- unlist(str_extract_all(seq_long, pattern = "[AUGC]{3}"))

colSums(sapply(u_seq, function(s) str_count(string = seqn,pattern = s)))/l_seq

帮助我更正此代码我希望我的论点像 UGCUGCUAUGAAUGAUG 一样连续

这可能适合你:

require(stringr)
bases <- c("U","A","G","C")
sapply(bases, function(b) str_count(string = c("UUA","AUC","GUA"),pattern = b))

     U A G C
[1,] 2 1 0 0
[2,] 1 1 0 1
[3,] 1 1 1 0

编辑:基础遗传学

EDIT2:根据您的评论,这可能有效

seqn <- c("UUA","AUC","GUA", "UUA", "GAU", "UUA") #your sequence
l_seq <- length(seqn) #length of sequence
u_seq <- unique(seqn) #unique codons

# This calculates the fractions of the unique codons in your sequence
colSums(sapply(u_seq, function(s) str_count(string = seqn,pattern = s)))/l_seq

      UUA       AUC       GUA       GAU 
0.5000000 0.1666667 0.1666667 0.1666667 

EDIT3:根据你的第二个问题,你可以将字符串分成 3 个字母密码子,如下所示:

seq_long <- "UUUAUGGGCG"
seqn <- unlist(str_extract_all(seq_long, pattern = "[AUGC]{3}"))

和 运行 来自 EDIT2 的代码。如果您的序列不是 3 的倍数,您将丢失最后一个字母。你可以用一些填充来解决这个问题。