如何从 AAString 对象中子集 AA?

How to subset AAs FROM AAString object?

提问人:star 提问时间:11/12/2023 最后编辑:star 更新时间:11/13/2023 访问量:39

问:

我有一个如下所示的 AAString 集,如何从 seq 列中子集区域。

df <- AAStringSet(c("MEKIVLLLA", "MEKIVLDIA"))

输入:

df:

AAStringSet object of length 2:
     width  seq        names  
       9    MEKIVLLLA  A1
       9    MEKIVLDIA  A2  

输出:

AAStringSet object of length 2:
     width  seq        names  
       6    MKLLLA  A1
       6    MKLDIA  A2  

            

我使用了以下代码,但它不起作用:

positions <- c(1,3,6,7,8,9)
end_positions <- c(1,3,6,7,8,9)
subseq(df, start = positions, end = end_positions))
                                       
R String DataFrame 字符串子

评论

0赞 Chris 11/13/2023
感谢您添加...AAStringSet{c(

答:

0赞 Chris 11/12/2023 #1

也许是一种方法,base

seq1 = 'MEKIVLLLA'
seq2 = 'MEKIVLDIA'

paste(unlist(strsplit(seq2, split = ''))[c(1,3,6:9)], collapse='')
[1] "MKLDIA"
paste(unlist(strsplit(seq1, split = ''))[c(1,3,6:9)], collapse='')
[1] "MKLLLA"

然后深入研究复杂性......

seq1_AA = Biostrings::AAString(x = seq1, start = 1)
seq1_AA
9-letter AAString object
seq: MEKIVLLLA

seq1_AA[c(1,3, 6:9)]
6-letter AAString object
seq: MKLLLA

Biostrings::subseq(seq1_AA[c(1,3,6:9)])
6-letter AAString object
seq: MKLLLA

我已经找到了通往你地狱的路。 是我正在寻找的途径,还没有取得多大成功,以便应用于 AAStringSet,而不是按行......这导致我们感到困惑,头脑爆炸,人们认为这炖菜必须为凡人包装。?XVector::subseqIRanges::solveUserSEW

真正知道的人会来。我的理解最远的是Biostrings

Biostrings::AAStringSet(c(as.character(seq1_AA[c(1,3,6:9)]),as.character(seq2_AA[c(1,3,6:9)])))
AAStringSet object of length 2:
    width seq
[1]     6 MKLLLA
[2]     6 MKLDIA

这似乎不令人满意,因为人们想要绕过并将索引应用于所有,想象一个在指针海洋中不存在的 df$seq。 有,它有一个左、中、右,看起来非常像,提议的那种缩小,你希望管理所有这些,而不是我看似机械地减少 seq 内。叹息。c(...seq?IRanges::narrowthreebands()c(1,3,6:9)subseqc(

我的探索在这里可能是不必要的,但是当你有很多成员时,他们都在寻求相同的简化/简化AAStringSet

str_6 = list()
for (i in 1:length(AAseq_12)) {
str_6[[i]] <- unlist(AAseq_12[[i]])[c(1,3,6:9)]
}
str_6_set = Biostrings::AAStringSet(str_6)
str_6_set
AAStringSet object of length 2:
    width seq
[1]     6 MKLLLA
[2]     6 MKLDIA

人们仍然抱有希望,但要驾驭错误......subseqsubscript out of bounds