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 classChengAndChurch.BiclusterCandidateBicluster candidate.protected static interfaceChengAndChurch.CellVisitorVisitor pattern for processing cells.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private doublealphaThe parameter for multiple node deletion.private doubledeltaThreshold for the score.private DistributiondistDistribution to sample random replacement values from.private static 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 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, 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 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 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 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: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 TypeInformation[] getInputTypeRestriction()
Description copied from interface:AlgorithmGet the input type restriction used for negotiating the data query.- Returns:
- Type restriction
-
-