Bicluster with biclust
Package
A. Pendahuluan
A.1 Package
Package Utama yang digunakan dalam materi ini adalah biclust
.
install.packages("biclust")
Load Package biclust
library(biclust)
## Loading required package: MASS
## Loading required package: grid
## Loading required package: colorspace
## Loading required package: lattice
Namun, ada beberapa package yang digunakan untuk memudahkan visualisasi ataupun analisis, seperti packages berikut ini :
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3 v purrr 0.3.4
## v tibble 3.0.6 v dplyr 1.0.4
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select()
A.2 Data
Data yang digunakan dalam materi ini adalah data BicatYeast
yang berasal dari package biclust
tersebut.
data(BicatYeast)
glimpse(BicatYeast)
## num [1:419, 1:70] -0.276 -0.941 1.642 0.69 1.749 ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:419] "249364_at" "253423_at" "250327_at" "247474_at" ...
## ..$ : chr [1:70] "cold_green_6h" "cold_green_24h" "cold_roots_6h" "cold_roots_24h" ...
class(BicatYeast)
## [1] "matrix" "array"
Description
Microarray data matrix for 80 experiments with Saccharomyces Cerevisiae organism extracted from BicAT example data set.
Format
Data structure with information about the expression levels of 419 probesets over 70 conditions Row names follow Affymetrix probeset notation
Selain itu, akan dibangkitkan beberapa matrix, untuk menunjukkan bagaimana Algoritma yang digunakan dalam biclust
ini bekerja.
Berikut adalah matrix yang dicobakan pada package biclust
tersebut
Matrix \(7x7\)
<- matrix(c(1,0,0,0,0,0,1,
tujuh 0,0,0,0,0,0,0,
0,0,1,0,1,0,0,
0,0,0,1,0,0,0,
0,0,1,0,1,0,0,
0,0,0,0,0,0,0,
1,0,0,0,0,0,1),
nrow = 7,
ncol = 7,
byrow = TRUE)
colnames(tujuh)<-c("A","B","C","D","E","F","G")
rownames(tujuh)<-c("T","U","V","W","X","Y","Z")
tujuh
## A B C D E F G
## T 1 0 0 0 0 0 1
## U 0 0 0 0 0 0 0
## V 0 0 1 0 1 0 0
## W 0 0 0 1 0 0 0
## X 0 0 1 0 1 0 0
## Y 0 0 0 0 0 0 0
## Z 1 0 0 0 0 0 1
B. biclust
pada Matrix sederhana
B.1 The Bimax Bicluster algorithm BCBimax
Performs Bimax Biclustering based on the framework by Prelic et. al.(2006). It searches for submatrices of ones in a logical matrix. Uses the original C code of the authors.
<- biclust(tujuh, method=BCBimax())
tujuh.bimax
tujuh.bimax
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCBimax())
##
## Number of Clusters found: 2
##
## First 2 Cluster sizes:
## BC 1 BC 2
## Number of Rows: 2 2
## Number of Columns: 2 2
drawHeatmap2(x = tujuh, bicResult = tujuh.bimax, number = 1)
B.2 The CC Bicluster algorithm BCCC
Performs CC Biclustering based on the framework by Cheng and Church (2000). Searches for submatrices with a score lower than a specific treshold in a standardized data matrix.
<- biclust(tujuh, method=BCCC())
tujuh.cc
tujuh.cc
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCCC())
##
## There was one cluster found with
## 7 Rows and 7 columns
drawHeatmap2(x = tujuh, bicResult = tujuh.cc, number = 1)
B.3 The Plaid Model Bicluster algorithm BCPlaid
Performs Plaid Model Biclustering as described in Turner et al., 2003. This is an improvement of original ‘Plaid Models for Gene Expression Data’ (Lazzeroni and Owen, 2002). This algorithm models data matrices to a sum of layers, the model is fitted to data through minimization of error.
set.seed(1) #Kadang random, perlu buat seed.
<- biclust(x=tujuh, method=BCPlaid()) tujuh.plaid
## layer: 0
## 3.204082
## layer: 1
## [1] 0 2 2
## [1] 30 2 2
## [1] 31 2 2
## [1] 60 2 2
## [1] 1
## [1] 1.4993753 0.0000000 0.0000000 0.6513953
## back fitting 2 times
## layer: 2
## [1] 0 1 2
## [1] 1 5 2
## [1] 30 5 2
## [1] 31 5 2
## [1] 60 5 2
## [1] 2
## [1] 0.4911693 0.0000000 0.0000000 0.0000000
## back fitting 2 times
## layer: 3
## [1] 0 2 1
## [1] "Zero residual degrees of freedom"
## [1] 30 2 1
## [1] 31 0 1
## [1] 32
## [1] 0 0 0 0
##
## Layer Rows Cols Df SS MS Convergence Rows Released Cols Released
## 0 7 7 13 5.05 0.39 NA NA NA
## 1 2 2 3 5.20 1.73 1 0 0
## 2 5 2 6 2.70 0.45 1 0 0
tujuh.plaid
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCPlaid())
##
## Number of Clusters found: 2
##
## First 2 Cluster sizes:
## BC 1 BC 2
## Number of Rows: 2 5
## Number of Columns: 2 2
drawHeatmap2(x = tujuh, bicResult = tujuh.plaid, number = 1)
B.4 The Questmotif Bicluster algorithm BCQuest
Performs Questmotif Biclustering a Bicluster algorithm for questionairs based on the framework by Murali and Kasif (2003). Searches subgroups of questionairs with same or similar answer to some questions.
<- biclust(tujuh, method=BCQuest())
tujuh.Quest
tujuh.Quest
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCQuest())
##
## There was no cluster found
#drawHeatmap2(x = tujuh, bicResult = tujuh.Quest, number = 1)
B.5 The Questmotif Bicluster algorithm BCQuestmet
Performs Questmotif Biclustering a Bicluster algorithm for questionairs based on the framework by Murali and Kasif (2003). Searches subgroups of questionairs with same or similar answer to some questions.
<- biclust(tujuh, method=BCQuestmet())
tujuh.Questmet
tujuh.Questmet
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCQuestmet())
##
## There was no cluster found
#drawHeatmap2(x = tujuh, bicResult = tujuh.Questmet, number = 1)
B.6 The Questmotif Bicluster algorithm BCQuestord
Performs Questmotif Biclustering a Bicluster algorithm for questionairs based on the framework by Murali and Kasif (2003). Searches subgroups of questionairs with same or similar answer to some questions.
<- biclust(tujuh, method=BCQuestord())
tujuh.Questord
tujuh.Questord
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCQuestord())
##
## There was no cluster found
# drawHeatmap2(x = tujuh, bicResult = tujuh.Questord, number = 1)
B.7 The Bimax Bicluster algorithm BCrepBimax
Performs Bimax Biclustering based on the framework by Prelic et. al.(2006). It searches for submatrices of ones in a logical matrix. Uses the original C code of the authors.
<- biclust(tujuh, method=BCrepBimax())
tujuh.CrepBimax
tujuh.CrepBimax
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCrepBimax())
##
## There was no cluster found
#drawHeatmap2(x = tujuh, bicResult = tujuh.CrepBimax, number = 1)
B.8 The Spectral Bicluster algorithm BCSpectral
Performs Spectral Biclustering as described in Kluger et al., 2003. Spectral biclustering supposes that normalized microarray data matrices have a checkerboard structure that can be discovered by the use of svd decomposition in eigenvectors, applied to genes (rows) and conditions (columns).
<- biclust(tujuh, method=BCSpectral())
tujuh.spectral
tujuh.spectral
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCSpectral())
##
## Number of Clusters found: 3
##
## First 3 Cluster sizes:
## BC 1 BC 2 BC 3
## Number of Rows: 5 5 5
## Number of Columns: 5 3 3
drawHeatmap2(x = tujuh, bicResult = tujuh.spectral, number = 1)
B.9 The Xmotifs Bicluster algorithm BCXmotifs
Performs XMotifs Biclustering based on the framework by Murali and Kasif (2003). Searches for a submatrix where each row as a similar motif through all columns. The Algorihm needs a discret matrix to perform.
<- biclust(tujuh, method=BCXmotifs())
tujuh.motif
tujuh.motif
##
## An object of class Biclust
##
## call:
## biclust(x = tujuh, method = BCXmotifs())
##
## There was one cluster found with
## 3 Rows and 6 columns
drawHeatmap2(x = tujuh, bicResult = tujuh.motif, number = 1)
C. biclust
pada data BicatYeast
C.1 The Bimax Bicluster algorithm BCBimax
<- biclust(BicatYeast, method=BCBimax())
BicatYeast.bimax
BicatYeast.bimax
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCBimax())
##
## Number of Clusters found: 100
##
## First 5 Cluster sizes:
## BC 1 BC 2 BC 3 BC 4 BC 5
## Number of Rows: 18 96 26 107 20
## Number of Columns: 2 2 2 2 2
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.bimax, number = 1)
C.2 The CC Bicluster algorithm BCCC
<- biclust(BicatYeast, method=BCCC())
BicatYeast.cc
BicatYeast.cc
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCCC())
##
## There was one cluster found with
## 419 Rows and 70 columns
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.cc, number = 1)
C.3 The Plaid Model Bicluster algorithm BCPlaid
set.seed(1) #Kadang random, perlu buat seed.
<- biclust(x=BicatYeast, method=BCPlaid()) BicatYeast.plaid
## layer: 0
## 1224.87
## layer: 1
## [1] 0 153 14
## [1] 1 141 14
## [1] 2 134 14
## [1] 3 131 14
## [1] 4 130 14
## [1] 5 129 14
## [1] 6 125 14
## [1] 7 122 14
## [1] 8 120 14
## [1] 9 119 14
## [1] 30 119 14
## [1] 31 24 14
## [1] 32 24 7
## [1] 33 23 7
## [1] 34 23 7
## [1] 35 23 7
## [1] 60 23 7
## [1] 10
## [1] 859.7717 0.0000 0.0000 0.0000
## back fitting 2 times
## layer: 2
## [1] 0 171 11
## [1] 1 164 11
## [1] 2 163 11
## [1] 3 162 11
## [1] 30 162 11
## [1] 31 30 11
## [1] 32 30 8
## [1] 33 29 8
## [1] 34 29 8
## [1] 35 29 8
## [1] 60 29 8
## [1] 4
## [1] 591.8997 0.0000 0.0000 0.0000
## back fitting 2 times
## layer: 3
## [1] 0 176 15
## [1] 1 147 14
## [1] 2 131 14
## [1] 3 129 14
## [1] 4 126 14
## [1] 30 126 14
## [1] "Zero residual degrees of freedom"
## [1] 31 1 14
## [1] "Zero residual degrees of freedom"
## [1] 32 1 14
## [1] 33 0 14
## [1] 34
## [1] 0 0 0 0
##
## Layer Rows Cols Df SS MS Convergence Rows Released Cols Released
## 0 419 70 488 1934.97 3.97 NA NA NA
## 1 23 7 29 1213.50 41.84 1 96 7
## 2 29 8 36 846.65 23.52 1 133 3
BicatYeast.plaid
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCPlaid())
##
## Number of Clusters found: 2
##
## First 2 Cluster sizes:
## BC 1 BC 2
## Number of Rows: 23 29
## Number of Columns: 7 8
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.plaid, number = 1)
C.4 The Questmotif Bicluster algorithm BCQuest
<- biclust(BicatYeast, method=BCQuest())
BicatYeast.Quest
BicatYeast.Quest
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCQuest())
##
## There was no cluster found
#drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.Quest, number = 1)
C.5 The Questmotif Bicluster algorithm BCQuestmet
<- biclust(BicatYeast, method=BCQuestmet())
BicatYeast.Questmet
BicatYeast.Questmet
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCQuestmet())
##
## Number of Clusters found: 10
##
## First 5 Cluster sizes:
## BC 1 BC 2 BC 3 BC 4 BC 5
## Number of Rows: 95 59 64 49 21
## Number of Columns: 23 20 15 12 15
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.Questmet, number = 1)
C.6 The Questmotif Bicluster algorithm BCQuestord
<- biclust(BicatYeast, method=BCQuestord())
BicatYeast.Questord
BicatYeast.Questord
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCQuestord())
##
## Number of Clusters found: 10
##
## First 5 Cluster sizes:
## BC 1 BC 2 BC 3 BC 4 BC 5
## Number of Rows: 153 49 32 41 18
## Number of Columns: 30 28 34 27 27
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.Questord, number = 1)
C.7 The Bimax Bicluster algorithm BCrepBimax
<- biclust(BicatYeast, method=BCrepBimax())
BicatYeast.CrepBimax
BicatYeast.CrepBimax
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCrepBimax())
##
## Number of Clusters found: 100
##
## First 5 Cluster sizes:
## BC 1 BC 2 BC 3 BC 4 BC 5
## Number of Rows: 24 14 10 9 5
## Number of Columns: 11 11 11 11 11
drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.CrepBimax, number = 1)
C.8 The Spectral Bicluster algorithm BCSpectral
<- biclust(BicatYeast, method=BCSpectral()) BicatYeast.spectral
## Warning in spectral(x, normalization, numberOfEigenvalues, minr, minc,
## withinVar): No biclusters found
BicatYeast.spectral
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCSpectral())
##
## There was no cluster found
# drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.spectral, number = 1)
C.9 The Xmotifs Bicluster algorithm BCXmotifs
<- biclust(BicatYeast, method=BCXmotifs())
BicatYeast.motif
BicatYeast.motif
##
## An object of class Biclust
##
## call:
## biclust(x = BicatYeast, method = BCXmotifs())
##
## There was no cluster found
#drawHeatmap2(x = BicatYeast, bicResult = BicatYeast.motif, number = 1)
IPB University - Badan Informasi Geospasial, abdul.aziz@big.go.id↩︎
IPB University - Badan Pusat Statistik, jodi.jhouranda@bps.go.id︎↩︎
IPB University - Badan Pusat Statistik, mochamad.ridwan2007@gmail.com ↩︎