V
- Vector type.@Reference(authors="Y. Cheng, G. M. Church", title="Biclustering of expression data", booktitle="Proc. 8th International Conference on Intelligent Systems for Molecular Biology (ISMB)") public class ChengAndChurch<V extends NumberVector<?>> extends AbstractBiclustering<V,BiclusterWithInversionsModel>
Reference:
Y. Cheng and G. M. Church. Biclustering of expression data. In Proceedings of
the 8th International Conference on Intelligent Systems for Molecular Biology
(ISMB), San Diego, CA, 2000.
Modifier and Type | Class and Description |
---|---|
protected static class |
ChengAndChurch.BiclusterCandidate
Bicluster candidate.
|
static interface |
ChengAndChurch.CellVisitor
Visitor pattern for processing cells.
|
static class |
ChengAndChurch.Parameterizer<V extends NumberVector<?>>
Parameterization class.
|
Modifier and Type | Field and 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 in
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.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 in
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate) . |
private int |
n
Number of biclusters to be found.
|
private boolean |
useinverted
Allow inversion of rows in the last phase.
|
relation, rowIDs
Constructor and Description |
---|
ChengAndChurch(double delta,
double alpha,
int n,
Distribution dist)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Clustering<BiclusterWithInversionsModel> |
biclustering()
Run the actual biclustering algorithm.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
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:
Remove single rows or columns.
|
colsBitsetToIDs, colsBitsetToIDs, defineBicluster, defineBicluster, getColDim, getDatabase, getRelation, getRowDBID, getRowDim, rowsBitsetToIDs, rowsBitsetToIDs, run, valueAt
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private static final int MIN_COLUMN_REMOVE_THRESHOLD
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.
Just start deleting multiple columns when more than 100 columns are in the data matrix.
private static final int MIN_ROW_REMOVE_THRESHOLD
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.
Just start deleting multiple rows when more than 100 rows are in the data matrix.
private double delta
private double alpha
It is used to magnify the delta
value in the
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
method.
private int n
private boolean useinverted
private Distribution dist
public ChengAndChurch(double delta, double alpha, int n, Distribution dist)
delta
- Delta parameter: desired qualityalpha
- Alpha parameter: controls switching to single node deletion
approachn
- Number of clusters to detectdist
- Distribution of random values to insertpublic Clustering<BiclusterWithInversionsModel> biclustering()
AbstractBiclustering
AbstractBiclustering.run(de.lmu.ifi.dbs.elki.database.relation.Relation<V>)
.
biclustering
in class AbstractBiclustering<V extends NumberVector<?>,BiclusterWithInversionsModel>
private void singleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
mat
- Data matrixcand
- Bicluster candidateprivate void multipleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
mat
- Data matrixcand
- Bicluster candidateprivate void nodeAddition(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
mat
- Data matrixcand
- Bicluster candidatepublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<Clustering<BiclusterWithInversionsModel>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<Clustering<BiclusterWithInversionsModel>>