У меня большой фрейм данных, и я хочу найти кластеры, которые различают guish при разнице в 3%. Это означает, что в одном кластере элементы имеют сходство 97%. Я попытался справиться с этим с помощью функции otu(x, k , threshold , method,residues = NULL, gap = "-", ...)
, потому что операционные таксономические единицы c в исследованиях микробиомов в значительной степени совпадают. Мои данные не являются ни последовательностью ДНК, ни аминокислотной последовательностью, и я не знаю, как определить аргумент residue
. Мой фрейм данных выглядит так (но в реальной жизни он намного больше)
library(tidyverse)
library(OTUbase) #for OTU
library(ape) #for OTU
library(kmer) #for kmeans
library(fst) #compressing data
b <- data.frame(rows=c("row1","row2","row3"),col1=c("0.478","45","-0.45"),col2=c("0.4856","48",0))
rows col1 col2
1 row1 0.478 0.4856
2 row2 45 48
3 row3 -0.45 0
otu(unique(b),k = 3, threshold = 0.97, method = "central",nstart = 20)
Fehler in kcount(x, k = k, residues = residues, gap = gap, named = FALSE) : Unable to calculate distance matrix
for large k and large alphabet size.
If residues are amino acids consider converting to AAbin object for compression
Строки должны быть похожи на разные последовательности ДНК, а столбцы - это основы. Таким образом, идентификаторы кластеров должны ссылаться на столбцы, а сами элементы являются заданными c строками. Я думаю, что ошибка происходит, потому что я не указал residue =
. Я уже пытался сжать B с unique
и преобразовал его в файл FST. Но возникает та же ошибка.
Как я могу получить 97% идентификаторов кластеров фрейма данных? Как использовать otu()
здесь?