[R] Help with SOM membership

Ken Termiso jerk_alert at hotmail.com
Thu Jun 9 20:36:58 CEST 2005


Hi all,

I originally posted this to the bioconductor group, but maybe it's better 
suited to the r-help...

I'm using som() to partition samples of gene expression data into clusters. 
The point is to classify control vs. experimental cases (sample clustering). 
The original matrix was 22283 x 8. The 8 samples have 4 controls and 4 
experimentals.

I transposed the matrix so that its dim are 8 x 22283, and called that 
"allt." Using the normalize() function from som library, I scaled the data 
to have mean zero and variance 1.

allt.som <- som(allt, xdim=5, ydim=5, topol="hexa", neigh="bubble", alpha=1)
plot(allt.som)

What I cannot figure out how to do is how to determine where each sample has 
clustered, since the plot that i'm using does not include labels...I also 
tried str(allt.som) but cannot determine which attribute calls where each 
sample has gone...all I would like to know is where samples are being placed 
in the SOM grids, to make sure that the controls cluster together and exps 
cluster together. (Also I would eventually like to cluster the genes with 
SOM and also like to know which genes are clustered in which grids, which is 
the same problem as I have with the samples).

Thanks in advance,
Ken


>str(allt.som)
List of 16
$ data      : num [1:8, 1:22277] 1167 1282 1561 1398 1581 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:8] "m577con" "m577exp" "m578con" "m578exp" ...
  .. ..$ : chr [1:22277] "1007_s_at" "1053_at" "117_at" "121_at" ...
$ code      : matrix [1:25, 1:22277] 1050 1222 1411 1504 1722 ...
  ..- attr(*, "class")= chr "matrix"
$ visual    :`data.frame':     8 obs. of  3 variables:
  ..$ x     : num [1:8] 0 1 3 2 3 4 2 1
  ..$ y     : num [1:8] 1 2 0 1 3 3 2 4
  ..$ qerror: num [1:8] 6472 8396 7574 7856 6969 ...
$ qerror    : num 6e+08
$ init      : chr "linear"
$ alpha     : chr "inverse"
$ neigh     : chr "bubble"
$ topol     : chr "hexa"
$ alpha0    : num [1:2] 1 0.5
$ radius0   : num [1:2] 5 3
$ rlen      : num [1:2] 16 80
$ xdim      : num 5
$ ydim      : num 5
$ err.radius: num 1
$ inv.alp.c : num [1:2] 0.16 0.8
$ code.sum  :`data.frame':     25 obs. of  3 variables:
  ..$ x   : num [1:25] 0 1 2 3 4 0 1 2 3 4 ...
  ..$ y   : num [1:25] 0 0 0 0 0 1 1 1 1 1 ...
  ..$ nobs: int [1:25] 0 0 0 1 0 1 0 1 0 0 ...
- attr(*, "class")= chr "som"




More information about the R-help mailing list