12 research outputs found
Illustration of the GSE48091 gene-expression data-set used in Example-A (see main text).
<p>Each row corresponds to a patient, and each column to a ‘gene’ (i.e., gene-expression measurement): the color of each pixel codes for the intensity of a particular measurement of a particular patient (see colorbar to the bottom).<i>M</i><sub><i>D</i></sub> = 340 of these patients are cases, the other <i>M</i><sub><i>X</i></sub> = 166 are controls; we group the former into the case-matrix ‘<i>D</i>’, and the latter into the control-matrix ‘<i>X</i>’.</p
Illustration of the loops within a 3-dimensional array.
<p>We sketch the structure of a 3-dimensional data-array <i>D</i>, with <i>J</i> rows, <i>K</i> columns and <i>P</i> ‘layers’. Each entry <i>D</i><sub><i>j</i>,<i>k</i>,<i>l</i></sub> will lie in the cube shown. The loops within <i>D</i> can be divided into 3-categories: (a) iso-layer loops that stretch across 2 rows and 2 columns, (b) iso-column loops that stretch across 2 rows and 2 layers, and (c) iso-row loops that stretch across 2 columns and 2 layers. The row-score [<i>Z</i><sub>ROW</sub>]<sub><i>j</i></sub> aggregates all the iso-column and iso-layer loops associated with row-<i>j</i>. The column-score [<i>Z</i><sub>COL</sub>]<sub><i>k</i></sub> aggregates all the iso-row and iso-layer loops associated with column-<i>k</i>. The layer-score [<i>Z</i><sub>LYR</sub>]<sub><i>l</i></sub> aggregates all the iso-row and iso-column loops associated with layer-<i>l</i>.</p
Contrasting a bicluster with controls.
<p>This shows the bicluster of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g005" target="_blank">Fig 5B</a> on top, and the rest of the controls on the bottom. The control-patients have been rearranged in order of their correlation with the co-expression pattern of the bicluster. Even though a few of the controls (i.e,. ∼ 3/166) exhibit a coexpression pattern comparable to that expressed by the bicluster, the vast majority do not.</p
Illustration of bicluster found within gene-expression data-set.
<p>Both panels illustrate the same submatrix (i.e., bicluster) drawn from the full case-matrix shown at the top of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g004" target="_blank">Fig 4</a>. This bicluster was found using our control-corrected biclustering algorithm (described in section of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.s005" target="_blank">S1 Text</a>). In Panel-A we represent this bicluster using the row- and column-ordering given by the output of our algorithm. This ordering has certain advantages (see section of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.s006" target="_blank">S2 Text</a>), but does not make the co-expression pattern particularly clear to the eye. Thus, to show this co-expression more clearly, we present the bicluster again in Panel-B, except this time with the rows and columns rearranged so that the coefficients of the first principal-component-vector change monotonically. As can be seen, there is a striking pattern of correlation across the 793 genes for the 45 cases shown.</p
Row-traces for the bicluster shown in Example-A.
<p>This bicluster was found by running our algorithm on the data shown in <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g004" target="_blank">Fig 4</a>. Because we corrected for controls, we compare our original-data to the distribution we obtain under the null-hypothesis H0 (see <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#sec011" target="_blank">Methods</a>). On the left we show the row-trace as a function of iteration for the original-data (red) as well as each of the 256 random shuffles (blue). On the right we replot this same trace data, showing the 5th, 50th and 95th percentile (across iterations) of the H0 distribution. Because we are not correcting for any covariates, the column-traces are identical to the row-traces.</p
A highly idealized cartoon of different kinds of biclusters.
<p>In each panel we show a heat-map of an <i>M</i> × <i>N</i> matrix ‘<i>D</i>’, which contains a large embedded bicluster (highlighted in pink) with a special structure. In this cartoon, light and dark pixels correspond to high and low values for the corresponding matrix-entry. Many approaches to biclustering search for structures containing mostly ‘large’ or ‘small’ values—as shown in Panels A and B. Such a bicluster can be thought of as delineating a subset of columns which are ‘differentially-expressed’ with respect to the remaining rows of <i>D</i>. Our algorithm generalizes this notion, searching for biclusters that are ‘low-rank’. Examples of low-rank biclusters include those shown in Panels A and B, as well as ‘rank-1’ biclusters which can exhibit co-expression without necessarily exhibiting differential-expression (see Panel-C and <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g005" target="_blank">Fig 5</a> later on). Also encompassed are ‘rank-2’ and higher biclusters which exhibit higher-order correlations that are not necessarily obvious to the eye (see Panel-D and <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g007" target="_blank">Fig 7</a> later on). Note that, while the biclusters shown in this cartoon are very large and essentially noiseless, our algorithm can readily discover biclusters that are much smaller and noisier (see section of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.s005" target="_blank">S1 Text</a>).</p
A scatterplot of the data shown in Fig 10.
<p>Each row-trace shown on the left in <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g010" target="_blank">Fig 10</a> is plotted as a single point in 2-dimensional space; the horizontal-axis corresponds to the maximum row-trace and the vertical-axis corresponds to the average row-trace (taken across the iterations). The original-data is indicated with a ‘⊗’, and each of the random shuffles with a colored ‘•’. The <i>p</i>-value for any point in this plane is equal to the fraction of label-shuffled-traces that have either an <i>x</i>-position larger than <i>x</i><sub><i>w</i></sub> or a <i>y</i>-position larger than <i>y</i><sub><i>w</i></sub>, where <i>x</i><sub><i>w</i></sub> and <i>y</i><sub><i>w</i></sub> are the <i>x</i>- and <i>y</i>-percentiles associated with the most extreme coordinate of (details given in section ) of <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.s006" target="_blank">S2 Text</a>. Each random shuffle is colored by its p-value determined by the label-shuffled-distribution. By comparing the original-trace with the shuffled-distribution we can read off a p-value for the original-data of ≲ 0.008.</p
Continuous–covariate-distribution for the bicluster shown in Example-B.
<p>As mentioned in the introduction, our algorithm proceeds iteratively, removing rows and columns from the case-matrix until there are none left. One of our goals is to ensure that, during this process, our algorithm focuses on biclusters which involve case-patients that are relatively well balanced in covariate-space. On the left we show a scatterplot illustrating the 2-dimensional distribution of covariate-components across the remaining <i>m</i> = 115 case-patients within the bicluster shown in Example-B (i.e., <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g007" target="_blank">Fig 7</a>). The horizontal and vertical lines in each subplot indicate the medians of the components of the covariate-distribution. On the right we show the same data again, except in contour form (note colorbar). The continuous-covariates remain relatively well-distributed even though relatively few case-patients are left (compare with <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1006105#pcbi.1006105.g009" target="_blank">Fig 9</a>).</p
Illustration of bicluster found within genome-wide-association-study dataset.
<p>In this figure we illustrate the genome-wide association-study (i.e., GWAS) data-set discussed in Example-B (see main text). This data-set involves 16577 patients, each genotyped across 276768 genetic base-pair-locations (i.e., alleles). Many of these patients have a particular psychological disorder, while the remainder do not. We use this phenotype to separate the patients into <i>M</i><sub><i>D</i></sub> = 9752 cases and <i>M</i><sub><i>X</i></sub> = 6825 controls. The size of this GWAS data-set is indicated in the background of this picture, and dwarfs the size of the gene-expression data-set used in Example-A (inset for comparison). At the top of the foreground we illustrate an <i>m</i> = 115 by <i>n</i> = 706 submatrix found within the case-patients. This submatrix is a low-rank bicluster, and the alleles are strongly correlated across these particular case-patients. The order of the patients and alleles within this submatrix has been chosen to emphasize this correlation. For comparison, we pull out a few other randomly-chosen case-patients and control-patients, and present their associated submatrices (defined using the same 706 alleles) further down.</p
Illustration of the algorithm operating on a case-matrix alone (i.e., <i>D</i> only).
<p>In Panel-A we show a large <i>M</i> × <i>N</i> binarized matrix <i>D</i> (black and white pixels correspond to values of ±1, respectively). In the upper left corner of <i>D</i> we’ve inserted a large rank-1 bicluster <i>B</i> (shaded in pink). Our algorithm considers all 2 × 2 submatrices (i.e., ‘loops’) within <i>D</i>. Several such loops are highlighted via the blue rectangles (the corners of each rectangle pick out a 2 × 2 submatrix). Generally speaking, loops are equally likely to be rank-1 or rank-2. Some loops, such as the loop shown in red, are entirely contained within <i>B</i>. These loops are more likely to be rank-1 than rank-2. In Panel-B we show some examples of rank-2 and rank-1 loops. Given a loop with row-indices <i>j</i>, <i>j</i>′ and column-indices <i>k</i>, <i>k</i>′, the rank of the loop is determined by the sign of . Our algorithm accumulates a ‘loop-score’ for each row <i>j</i> and each column <i>k</i>. In its simplest form, the loop-score for a particular row <i>j</i> is given by . Analogously, the loop-score for a column <i>k</i> is given by . In Panel-C we show the distribution of loop-scores we might expect from the rows or columns within <i>D</i>. The blue-curve corresponds to the distribution of scores expected from the rows/cols of <i>D</i> that are not in <i>B</i>, whereas the red-curve corresponds to the distribution of scores expected from the rows/cols of <i>B</i>. In Panel-D we show the distribution of loop-scores we might expect by pooling all rows or columns of <i>D</i>. The rows or columns that correspond to the lowest scores are not likely to be part of <i>B</i>.</p