Class ChengAndChurch
- java.lang.Object
-
- elki.clustering.biclustering.AbstractBiclustering<BiclusterWithInversionsModel>
-
- elki.clustering.biclustering.ChengAndChurch
-
- All Implemented Interfaces:
Algorithm
,ClusteringAlgorithm<Clustering<BiclusterWithInversionsModel>>
@Reference(authors="Y. Cheng, G. M. Church", title="Biclustering of expression data", booktitle="Proc. 8th Int. Conf. on Intelligent Systems for Molecular Biology (ISMB)", url="http://www.aaai.org/Library/ISMB/2000/ismb00-010.php", bibkey="DBLP:conf/ismb/ChengC00") public class ChengAndChurch extends AbstractBiclustering<BiclusterWithInversionsModel>
Cheng and Church biclustering.Reference:
Y. Cheng and G. M. Church.
Biclustering of expression data.
Proc. 8th Int. Conf. on Intelligent Systems for Molecular Biology (ISMB)- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ChengAndChurch.BiclusterCandidate
Bicluster candidate.protected static interface
ChengAndChurch.CellVisitor
Visitor pattern for processing cells.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private double
alpha
The parameter for multiple node deletion.private double
delta
Threshold for the score.private Distribution
dist
Distribution to sample random replacement values from.private static Logging
LOG
The logger for this class.private static int
MIN_COLUMN_REMOVE_THRESHOLD
The minimum number of columns that the database must have so that a removal of columns is performed inmultipleNodeDeletion(double[][], elki.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.private static int
MIN_ROW_REMOVE_THRESHOLD
The minimum number of rows that the database must have so that a removal of rows is performed inmultipleNodeDeletion(double[][], elki.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.private int
n
Number of biclusters to be found.private RandomFactory
rnd
Random generatorprivate boolean
useinverted
Allow inversion of rows in the last phase.-
Fields inherited from class elki.clustering.biclustering.AbstractBiclustering
relation, rowIDs
-
-
Constructor Summary
Constructors Constructor Description ChengAndChurch(double delta, double alpha, int n, Distribution dist, RandomFactory rnd)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Clustering<BiclusterWithInversionsModel>
biclustering()
Run the actual biclustering algorithm.TypeInformation[]
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.private void
multipleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 2 of Cheng and Church.private void
nodeAddition(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 3 of Cheng and Church.private void
singleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 1 of Cheng and Church:-
Methods inherited from class elki.clustering.biclustering.AbstractBiclustering
colsBitsetToIDs, colsBitsetToIDs, defineBicluster, defineBicluster, getColDim, getRowDBID, getRowDim, rowsBitsetToIDs, rowsBitsetToIDs, run, valueAt
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.clustering.ClusteringAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
MIN_COLUMN_REMOVE_THRESHOLD
private static final int MIN_COLUMN_REMOVE_THRESHOLD
The minimum number of columns that the database must have so that a removal of columns is performed inmultipleNodeDeletion(double[][], elki.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.Just start deleting multiple columns when more than 100 columns are in the data matrix.
- See Also:
- Constant Field Values
-
MIN_ROW_REMOVE_THRESHOLD
private static final int MIN_ROW_REMOVE_THRESHOLD
The minimum number of rows that the database must have so that a removal of rows is performed inmultipleNodeDeletion(double[][], elki.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.Just start deleting multiple rows when more than 100 rows are in the data matrix.
- See Also:
- Constant Field Values
-
delta
private double delta
Threshold for the score.
-
alpha
private double alpha
The parameter for multiple node deletion.It is used to magnify the
delta
value in themultipleNodeDeletion(double[][], elki.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
method.
-
n
private int n
Number of biclusters to be found.
-
useinverted
private boolean useinverted
Allow inversion of rows in the last phase.
-
dist
private Distribution dist
Distribution to sample random replacement values from.
-
rnd
private RandomFactory rnd
Random generator
-
-
Constructor Detail
-
ChengAndChurch
public ChengAndChurch(double delta, double alpha, int n, Distribution dist, RandomFactory rnd)
Constructor.- Parameters:
delta
- Delta parameter: desired qualityalpha
- Alpha parameter: controls switching to single node deletion approachn
- Number of clusters to detectdist
- Distribution of random values to insertrnd
- Random factory
-
-
Method Detail
-
biclustering
public Clustering<BiclusterWithInversionsModel> biclustering()
Description copied from class:AbstractBiclustering
Run the actual biclustering algorithm.This method is supposed to be called only from the method
AbstractBiclustering.run(elki.database.relation.Relation<? extends elki.data.NumberVector>)
.- Specified by:
biclustering
in classAbstractBiclustering<BiclusterWithInversionsModel>
-
singleNodeDeletion
private void singleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 1 of Cheng and Church:Remove single rows or columns.
Inverted rows are not supported in this method.
- Parameters:
mat
- Data matrixcand
- Bicluster candidate
-
multipleNodeDeletion
private void multipleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 2 of Cheng and Church.Remove all rows and columns that reduce the residue by alpha.
Inverted rows are not supported in this method.
- Parameters:
mat
- Data matrixcand
- Bicluster candidate
-
nodeAddition
private void nodeAddition(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Algorithm 3 of Cheng and Church.Try to re-add rows or columns that decrease the overall score.
Also try adding inverted rows.
- Parameters:
mat
- Data matrixcand
- Bicluster candidate
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:Algorithm
Get the input type restriction used for negotiating the data query.- Returns:
- Type restriction
-
-