r - R 中 DNAStringset 的子集列表

标签 r list lapply

沿着我的老问题Subsetting defined group out of DNAStringSet ,我很难对列表做同样的事情。 我所有的尝试都会导致错误:

.Call2("new_XStringSet_from_CHARACTER", ans_class, ans_elementType, 中出现错误:键 56 (char '8') 不在查找表中

工作示例: 库(“解密”) 库(“Biostrings”)

名为 Biglist 的 DNAStringset 列表和名为 patterns 的选择,我想调用以获取新列表:

  aDNAStringSet <- DNAStringSet(c("GCATCCATTAC", "AATCGCCATCC", "GCATACCTTAC", "GCATACCTTAC", "GCATACCTTAC"))
  names(aDNAStringSet) <- c("seq1", "seq2", "seq3", "seq4", "seq5") 

  bDNAStringSet <- DNAStringSet(c("GCATCCATTAC", "AATCGCCATCC", "GCATACCTTAC", "GCATACCTTAC", "GCATACCTTAC"))
  names(bDNAStringSet) <- c("seq1", "seq2", "seq3", "seq4", "seq5") 

  cDNAStringSet <- DNAStringSet(c("GCATCCATTAC", "AATCGCCATCC", "GCATACCTTAC", "GCATACCTTAC", "GCATACCTTAC"))
  names(cDNAStringSet) <- c("seq1", "seq2", "seq3", "seq4", "seq5") 

  dDNAStringSet <- DNAStringSet(c("GCATCCATTAC", "AATCGCCATCC", "GCATACCTTAC", "GCATACCTTAC", "GCATACCTTAC"))
  names(dDNAStringSet) <- c("seq1", "seq2", "seq3", "seq4", "seq5") 



  Biglist<-list(A=aDNAStringSet, B=bDNAStringSet, C=cDNAStringSet, D=dDNAStringSet) 

  patterns <- c("seq2", "seq4", "seq5") 

使用grep我能够隔离元素,但这不是我想要的:

  newlist<-Biglist[grep("A", names(Biglist))]

使用lapply应该是正确的方法,但是这一行会导致错误:

  newlist<-lapply(Biglist, function(y) y[y %in% patterns])

.Call2("new_XStringSet_from_CHARACTER", ans_class, ans_elementType, 中出现错误:键 101 (char 'e') 不在查找表中

我也不明白错误消息。 有什么想法吗?

最佳答案

由于您正在使用 S4 类,因此,您需要一个不同的子集方法,在本例中为 @

#To use `DNAStringSet` function install Biostrings using the following
#source("http://www.bioconductor.org/biocLite.R") 
#biocLite(c("Biostrings"))
#library(Biostrings)

lapply(Biglist, function(x) x[x@ranges@NAMES %in% patterns])

关于r - R 中 DNAStringset 的子集列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741306/

相关文章:

r - 在 R 中,如何根据前一行(或后一行)的变化为变量设置值?

list - Scala从元组列表中删除元素

R:从 lapply 对象中提取循环元素

r - 如何在 Windows 上将 doRedis 包版本 1.0.5 安装到 R 3.0.1 中?

通过从另一个变量中获取值来随机替换值

r - data.table - 检查一列是否在另一(列表)列中

python - 列出 URL 路由 Flask

python - 如何在 python 中正确处理列表列表?具体来说有一个函数列表

linux - mclapply 的不当用例?

r - 使用 mapply 将 lm 模型列表拟合到数据框列表 [R]