如果长度≤1,如何从列表中忽略DNAStringSet?

时间:2019-01-18 13:31:57

标签: r split lapply

我正在研究DNA序列的大比对。目的是将序列分组到簇中以重新排列簇。我使用Biostrings,并在DNAStringset中对齐以执行DistanceMatrixIdClusters

IdClusters中我得到cluster并相应地对齐:

alignment_list <- split(alignment, f = IdClusters$cluster)

对于列表中的每个元素,我执行AdjustAlignmnet

Adjusted_list <- lapply(alignment_list , FUN=AdjustAlignment,processors = NULL)

导致:

> Adjusted_list $1  A DNAStringSet instance of length 22 width seq name
[1] 12005 TTTCTTAAAACATAAAAAGCCTTGAAAAATTTCTAAAATGTACT...TGGAGTCGGCGG ABC [2] 12005 TTTCTTAAAACATAAAAAGCCTTGAAAAATTTCTAAAATGTACT...TGGAGTCGGCGG ABD

...

[25] 12005 TTTCTTAAAACATAAAAAGCCTTGAAAAATTTCTAAAATGTACT...TGGAGTCGGCGG ABG

...elements

$6   A DNAStringSet instance of length 1 width seq name
[1] 12005 TTTCTTAAAACATAAAAAGCCTTG-----TTTCTAAAATGTACT...TGGAGTCGGCGG CDA

我想从列表中删除元素$ 6,因为它是length 1的元素,会干扰后续步骤。

我测试过:

Adjusted_list1 <- lapply(Adjusted_list, function(x){x$ 6 <- NULL; x})

Adjusted_list1 <- lapply(Adjusted_list, function(x) x[sapply(x, length) >= 1])

但是两者都不会删除列表中的元素6。我找不到错误。

0 个答案:

没有答案