Я хочу применить byclustering на двоичной матрице в R. Существует хороший пакет под названием «biclust», который доступен, но он отображает не все, что я хочу.Biclustering in R
У меня есть бинарная матрица, которая выглядит следующим образом:
1 0 0 1 0 1 0
0 0 0 0 0 0 0
0 0 1 0 1 0 0
1 0 0 1 0 1 0
0 0 1 0 1 0 0
1 0 0 1 0 1 0
0 0 0 0 0 0 0
И моя цель состоит в том, чтобы bicluster (и дисплей), это следующим образом (может быть окрашена):
1 1 1 0 0 0 0
1 1 1 0 0 0 0
1 1 1 0 0 0 0
0 0 0 1 1 0 0
0 0 0 1 1 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Настройка код:
# install.packages("biclust") (if necessary)
library("biclust")
testMatrix <- matrix(c(1,0,0,1,0,1,0,
0,0,0,0,0,0,0,
0,0,1,0,1,0,0,
1,0,0,1,0,1,0,
0,0,1,0,1,0,0,
1,0,0,1,0,1,0,
0,0,0,0,0,0,0),
nrow = 7,
ncol = 7,
byrow = TRUE)
Я применил функцию biclust из "biclust" R пакет:
testCluster <- biclust(x = testMatrix, method=BCBimax())
и на самом деле я получаю два кластера ожидается:
An object of class Biclust
call:
biclust(x = testMatrix, method = BCBimax())
Number of Clusters found: 2
First 2 Cluster sizes:
BC 1 BC 2
Number of Rows: 3 2
Number of Columns: 3 2
Я могу как отобразить кластеры отдельно:
drawHeatmap(x = testMatrix, bicResult = testCluster, number = 1) # shown in picture below
drawHeatmap(x = testMatrix, bicResult = testCluster, number = 2)
и я могу показать все кластерная матрица (один кластер в верхнем левом углу):
drawHeatmap2(x = testMatrix, bicResult = testCluster, number = 1) # shown in picture below
drawHeatmap2(x = testMatrix, bicResult = testCluster, number = 2)
До сих пор так хорошо, но я хочу:
- Цвета дисплея включается. Теперь 1 красный, а 0 - зеленый.
- Я хочу видеть строки и столбцы исходной матрицы. Теперь отображаются только номера строк и номера столбцов конкретного кластера (с drawHeatMap), и не отображаются номера строк и столбцов во всей кластерной матрице (drawHeatMap2).
- Я хочу красиво упорядоченную кластерную матрицу. Теперь в верхнем левом углу отображается только кластер, указанный в drawHeatmap2, но для остальной части матрицы я также хочу, чтобы остальные кластеры красиво упорядочивались в верхнем левом углу в нижнем правом углу для остальной части матрицы.
Возможны ли эти изменения (с пакетом «biclust»)? Или лучше сделать это по-другому с R?
Используйте * источник * пакета bicluster –
@RobbertRaats, вы выяснить, как это может быть – Turcia
@Turcia, я изменил Funtion drawHeatmap() в пакете biclust источник пак: 1. trace («drawHeatmap», edit = TRUE) 2. Измените следующее: (a) Переключите красный и зеленый - переключите rvect и gvect в вызов rgb() (b) Оригинальные имена ростов вместо нового - измените «метки = to '= bicCols' и '= bicRows' 3. Печатать рябины: перед осью вокруг строк: cat (bicRows) 4. Сохранить рябины для файла - перед осью о строках: write (bicRows, file = "FILENAME.txt") –