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 f390eea800eb08fb341b1ee4b6e7158791855702..a7af56efcc46540e8565e6130e5d7c70e420ee8e 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 3278962199e512fa04c3a2b7c55bd1339447b6c5..64ff970285259fd69147fe2ff8fc0b3ca9eab668 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); }