Load a data matrix (IDs in the first row and first column).
Correlate columns (samples) or rows (features) with Pearson, Spearman, or Kendall.
Use Browse file, drop a CSV / TSV, or click Demo Data.
Load a data matrix (IDs in the first row and first column).
Correlate columns (samples) or rows (features) with Pearson, Spearman, or Kendall.
Use Browse file, drop a CSV / TSV, or click Demo Data.
Input format
CSV, TSV or semicolon-separated text. First row = column IDs (e.g. samples), first column = row IDs (e.g. features/genes), remaining cells numeric. Quoted fields, even with line breaks inside, are read as in RFC 4180. Blank, NA, NaN, N/A and null cells are missing values. Any other cell that is not a plain number (such as 12abc or 0x1A) is also treated as missing, and a note under the input box counts them. So are numbers outside the computer's number range (such as 1e400 or 1e-400).
Decimal commas (1,5) are read only in tab or semicolon files that use them consistently. The same note says when that happened, when a comma was ambiguous (1,234 could be a thousands separator), when IDs repeat or rows have the wrong number of cells, and when a column with data has no header ID (it is then named by its position, such as Column 5).
Between
Correlate the columns (sample-sample, typical QC) or the rows (feature-feature, e.g. gene co-expression).
Method
Pearson (linear), Spearman (rank / monotonic), or Kendall τ-b (rank, robust to outliers, slower). Coefficients match scipy. A pair needs at least 3 observations present in both variables. With fewer, or with a constant variable, it has no coefficient and its cell shows the missing color.
Clustering
Hierarchical clustering reorders variables so correlated blocks group together (average/complete/single linkage on 1−r, or 1−|r| to group by strength). A dendrogram is drawn on top. Pairs without a coefficient get distance 1, as if r = 0.
Significance
Two-sided p-values that follow R's cor.test, except in the far tail of Spearman (described here). Pearson uses the Student t distribution with n - 2 degrees of freedom. Spearman, with no ties, gives the exact permutation p-value for n ≤ 9. For n from 10 to 16 it is also exact wherever the AS 89 Edgeworth series (Best and Roberts, 1975) gives less than 0.001, and AS 89 gives the rest. For n of 17 or more the series is used (up to n = 1,290, with the t approximation above that). The series is close to the exact value in the middle of the range, but in the extreme tail it fails. It can be orders of magnitude too small, and between n = 16 and n = 25 its p-value even rises as the correlation gets stronger. So a Spearman p-value below 1e-4 (n = 17 to 24) or below 1e-5 (larger n) is not shown as a number. It is shown as an upper bound, "<1e-5 (approximate)", and the Benjamini-Hochberg step uses the bound as that pair's p-value. The bound is approximate: the true p-value can sit a little above it (at most about 1.4 times). The q-value of such a pair is marked ~. R's cor.test prints a number in this tail, and its extreme values differ from the exact ones. Kendall, with no ties, gives the exact permutation p-value for n < 50 and the normal approximation above that.
With ties, both rank methods give the exact conditional permutation p-value (all orderings, ties kept) when n ≤ 9. Larger tied pairs use the t approximation (Spearman) or the normal approximation with tie-corrected variance (Kendall), labelled "approximate (ties)". These approximate p-values are never shown below 2/n!, the smallest value a permutation test can give; the label then says "floored at 2/n!". The Selected Pair panel and the copied table name the method for every pair. The copied table also has a p_is_upper_bound column: "yes" means the p column holds the bound as a plain number (for example 0.00001), not an estimate. Values below 1e-300 show as <1e-300.
The Benjamini-Hochberg FDR correction runs across all pairs that have a p-value. Stars: one star means below alpha. ** (below 0.01) and *** (below 0.001) are added only when they are stricter than alpha. The figure legend lists the exact thresholds. Toggle raw p vs BH q. A pair shown with an upper bound counts as significant at alpha when its bound is no larger than alpha, because its true p-value is below the bound. At the edge of the bound the true value can be up to about 1.4 times higher, so a call made at an alpha equal to the bound is approximate.
Missing data
Each correlation uses only the observations present in both variables (pairwise-complete). The pair's n is shown on hover and in the Selected Pair panel, and the legend gives the range of n.
Color scale
Auto from data fits the colors to the observed values. For diverging palettes it uses a symmetric range around 0 (minus to plus the largest |r|), so equal positive and negative values get equally strong colors. RdBu is the 11-class ColorBrewer palette. PuOr follows ColorBrewer exactly: its purple end is darker than its orange end, so equal +r and -r do not look equally strong. Use RdBu when that matters.
Large data
Above 400 variables, or for a large Kendall or Spearman job, the tool asks before computing. Up to 1,000 variables can run in the browser. Value labels are shown only when they fit inside the cells.
Export
PNG honors the DPI selector and is tagged with that DPI. SVG is vector and matches the screen, including the dendrogram, title and subtitle. Copy puts a PNG on the clipboard. The copy button in Top Correlations copies every pair as a tab-separated table, with the method, coefficient, p, q, n and how each p-value was computed. Labels with tabs, line breaks or quotes are quoted, and labels that start with =, +, - or @ get a leading apostrophe so a spreadsheet does not run them as formulas (plain numbers such as -1.5 are left as they are).
If this tool was useful in your work, please cite it as:
EuropaDX, Inc. (2026). Correlation Matrix. EuropaXp OmicsCloud Bioinformatics Toolkit. Available at https://europadx.com/tools/correlation/Correlating more than 400 variables, or running Kendall or Spearman on a large input, is slow, and the matrix is hard to read in the browser. Continue anyway runs it here, for up to 1,000 variables. You can also try the other orientation, or pre-filter to the variables of interest.
EuropaXp OmicsCloud handles large correlation analyses with full pipeline support, persistent workspaces, and reproducible reports.