Кластерный анализ в R - PullRequest
       59

Кластерный анализ в R

0 голосов
/ 10 апреля 2020

Добрый вечер всем, у меня есть фрейм двоичных данных, в котором в первом столбце указано имя гена, а в другом 31 примере. Я хочу сгруппировать образец в соответствии с наличием / отсутствием гена (1/0) и попытаться визуализировать его с помощью графика или дерева. У меня было бы дерево с моими 31 образцом, сгруппированным согласно присутствию / отсутствию гена. Я делаю этот анализ в R.

Gene    Sample_1   Sample2 ... Sample31
Gene_1   1           0            0 
Gene_2   0           1            1
.

. Надеюсь, вы поймете, как организован фрейм данных

Вот код, который я использую:

meta <- read.csv("gene_presence_absence.csv")
colnames(meta)
distance <- dist(meta)
hc_m <- hclust(distance)
plot(hc_m)


colnames(meta)

idx <- which(colnames(meta) %in%
               c("Gene","BackhedF_2015__SID26_4M__bin.5"                
                 ,"BackhedF_2015__SID377_4M__bin.14"              
                 , "BackhedF_2015__SID377_B__bin.9"                
                 , "BackhedF_2015__SID387_4M__bin.4"               
                 ,"BackhedF_2015__SID633_4M__bin.14"              
                 , "BackhedF_2015__SID78_B__bin.8"                 
                 ,"ChengpingW_2017__AS100raw__bin.22"             
                 , "ChengpingW_2017__AS2raw__bin.23"               
                 ,"FengQ_2015__SID530163__bin.32"                 
                 ,"FerrettiP_2018__CA_C10003IS2042FE_t4M15__bin.6"
                 ,"GeversD_2014__SKBSTL035__bin.2"                
                 ,"HeQ_2017__SZAXPI029582.100__bin.54"            
                 ,"KosticAD_2015__PRJNA231909.3112121__bin.18"    
                 , "KosticAD_2015__PRJNA231909.3117383__bin.25"    
                 ,"LiJ_2014__V1.FI13__bin.57"                     
                 ,"LiJ_2014__V1.FI17__bin.50"                     
                 ,"SchirmerM_2016__G89070__bin.14"                
                 ,"VatanenT_2016__G69189__bin.6"                  
                 ,"VatanenT_2016__G78738__bin.5"                  
                 ,"VatanenT_2016__G78795__bin.4"                  
                 ,"VatanenT_2016__G78890__bin.12"                 
                 , "VatanenT_2016__G78894__bin.6"                  
                 ,"VatanenT_2016__G80281__bin.6"                  
                 ,"VatanenT_2016__G80326__bin.1"                  
                 , "XieH_2016__YSZC12003_36019__bin.38"            
                 ,"XieH_2016__YSZC12003_36795__bin.41"            
                 , "XieH_2016__YSZC12003_37332__bin.60"            
                 ,"ZeeviD_2015__158__bin.56"                      
                 ,"ZeeviD_2015__168__bin.36"                      
                 , "ZeeviD_2015__354__bin.43"   ))


my_data <- data.frame(meta[,idx],
                       row.names = rownames(meta))

m <- ifelse(my_data == "", 0, 1)

m <- as.data.frame(m)
m$Gene <- my_data$Gene
m[is.na(m)] <- 0
m


###Created a binary matrix with 0 and 1 according to presence or not gene


zz <- t(m)
zz
anyNA(zz)


d <- dist(zz)
my_clust <- hclust(zz)
plot(my_clust)

Основная проблема в том, что функция dist () выдает только NA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...