Как пренебречь DNAStringSet из списка, если длина ≤ 1? - PullRequest
0 голосов
/ 18 января 2019

Я работаю над большим выравниванием последовательностей ДНК. Цель состоит в том, чтобы сгруппировать последовательности в кластер для перестройки кластера. Я использую Biostrings и у меня есть выравнивание в DNAStringset для выполнения DistanceMatrix и IdClusters.

С 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<br> [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<br> [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 списка. Я не могу найти ошибку.

...