Я работаю над данными секвенирования и хочу использовать DBscan для создания кластеров с использованием частотного параметра аллеля, который в основном составляет 0-100% происходящей мутации гена. Я сравниваю два момента времени для каждого пациента, которые дают мне параметры x и y. Я играл со значениями eps и minPts, и это нормально, но проблема в том, что я получаю данные в виде таблиц.
Итак, я хотел бы знать, какие гены находятся в кластерах, которые создаются программой. Я посмотрел на документацию по DBscan, и я не могу найти соответствующий код в любом месте. Сказав это, я очень большой любитель R, поэтому я мог пропустить что-то очень простое.
Я использую пакет "dbscan". Это то, что я запускаю
#Curating df to have relevant columns plus gene names, and transforming to matrix
dbscanplot.1 <- Curated.1 %>% select(Gene.Symbol.y, Diag.Allele.Fraction, Rel.Allele.Fraction)
#removing gene names to create matrix
dbscanplotMATRIX.1 <- as.matrix(dbscanplot.1[,2:3])
#running dbscan
kNNdistplot(dbscanplotMATRIX.1, k = 5)
abline(h=5, col = "red", lty=2)
pairs(dbscanplotMATRIX.1, col = res$cluster + 1L)
fr <- frNN(dbscanplotMATRIX.1, eps = 1.3)
dbscan(fr, minPts = 3)
#plotting data
plot(dbscanplotMATRIX.1, col=res$cluster)
points(dbscanplotMATRIX.1[res$cluster==0,], pch = 3, col = "grey")
I Хотелось бы узнать, какие гены есть в каждом кластере, поэтому я бы манипулировал строкой "dbscan(fr, minPts = 3)"
?
Я пробовал db$cluster
, как рекомендовано ниже ранее, но генерируемые данные сбивают с толку, так как есть более тысячи анализируемых точек данных.
Пример:
[1] 0 1 2 3 0 4 0 0 2 2 2 5 2 2 2 0 2 0 1 0 4 0 4 2 4 4 2 2 0 2 0 4 2 4 4 6 7 4
, но с огромным количеством точек данных. Я думаю, мне было интересно, можно ли сопоставить эти сгенерированные данные с именами генов.
РЕДАКТИРОВАТЬ: Я думаю, что я решил свою проблему с помощью Майкла Хаслера. Я экспортировал результаты dbscan как целое число, а затем добавил новый столбец в мой исходный кадр данных. Похоже, что он совпадает с результатами данных.
clusters<-res$cluster
dbscanplot.1["Cluster"] <- clusters
Извиняюсь, это действительно простое решение, но я новичок!
Спасибо за помощь!