From b83acde8c75c98ed0c4cea0d79b0df5f2e12cb45 Mon Sep 17 00:00:00 2001 From: Steve Reis <stevereis93@gmail.com> Date: Mon, 4 Apr 2022 19:34:10 +0200 Subject: [PATCH] fix(exareme): Matrix order in PCA Algorithm result --- .../exareme/handlers/algorithms/PCA.handler.spec.ts | 5 ++++- .../connectors/exareme/handlers/algorithms/PCA.handler.ts | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.spec.ts b/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.spec.ts index f390eea..a7af56e 100644 --- a/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.spec.ts +++ b/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.spec.ts @@ -84,7 +84,10 @@ describe('PCA result handler', () => { exp.results.forEach((it) => { if (it['matrix']) { const heatmap = it as HeatMapResult; - expect(heatmap.matrix).toEqual(data.eigen_vecs); + const matrix = data.eigen_vecs[0].map( + (_, i) => data.eigen_vecs.map((row) => row[i]), // reverse matrix as we want row-major order + ); + expect(heatmap.matrix).toEqual(matrix); expect(heatmap.yAxis.categories).toEqual(exp.variables); } }); diff --git a/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.ts b/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.ts index 3278962..64ff970 100644 --- a/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.ts +++ b/api/src/engine/connectors/exareme/handlers/algorithms/PCA.handler.ts @@ -42,7 +42,13 @@ export default class PCAHandler extends BaseHandler { }, }; - if (matrix) exp.results.push(heatMapChart); + if (matrix && matrix.length > 0) { + heatMapChart.matrix = matrix[0].map( + (_, i) => matrix.map((row) => row[i]), // reverse matrix as we want row-major order + ); + } + + if (heatMapChart.matrix) exp.results.push(heatMapChart); this.next?.handle(exp, data); } -- GitLab