Class ChengAndChurch
- java.lang.Object
-
- elki.clustering.biclustering.AbstractBiclustering<BiclusterWithInversionsModel>
-
- elki.clustering.biclustering.ChengAndChurch
-
- All Implemented Interfaces:
elki.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 classChengAndChurch.BiclusterCandidateBicluster candidate.protected static interfaceChengAndChurch.CellVisitorVisitor pattern for processing cells.
-
Field Summary
Fields Modifier and Type Field Description private doublealphaThe parameter for multiple node deletion.private doubledeltaThreshold for the score.private elki.math.statistics.distribution.DistributiondistDistribution to sample random replacement values from.private static elki.logging.LoggingLOGThe logger for this class.private static intMIN_COLUMN_REMOVE_THRESHOLDThe 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 intMIN_ROW_REMOVE_THRESHOLDThe 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 intnNumber of biclusters to be found.private elki.utilities.random.RandomFactoryrndRandom generatorprivate booleanuseinvertedAllow 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, elki.math.statistics.distribution.Distribution dist, elki.utilities.random.RandomFactory rnd)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Clustering<BiclusterWithInversionsModel>biclustering()Run the actual biclustering algorithm.elki.data.type.TypeInformation[]getInputTypeRestriction()private voidmultipleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)Algorithm 2 of Cheng and Church.private voidnodeAddition(double[][] mat, ChengAndChurch.BiclusterCandidate cand)Algorithm 3 of Cheng and Church.private voidsingleNodeDeletion(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 elki.logging.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
deltavalue 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 elki.math.statistics.distribution.Distribution dist
Distribution to sample random replacement values from.
-
rnd
private elki.utilities.random.RandomFactory rnd
Random generator
-
-
Constructor Detail
-
ChengAndChurch
public ChengAndChurch(double delta, double alpha, int n, elki.math.statistics.distribution.Distribution dist, elki.utilities.random.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:AbstractBiclusteringRun 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:
biclusteringin 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 elki.data.type.TypeInformation[] getInputTypeRestriction()
-
-