From ee65a872f8cac1d2145bab9840155d1460a1dafe Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Sun, 23 Jan 2022 21:24:42 +0100 Subject: [PATCH] fix: Handle parameters exceptions (exareme) --- .../engine/connectors/exareme/converters.ts | 46 ++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 06950ab..3c32f75 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -111,11 +111,6 @@ export const experimentInputToData = (data: ExperimentCreateInput) => { label: 'pathology', value: data.domain, }, - { - name: 'y', - label: 'y', - value: data.variables.join(','), - }, ...(formula ? [ { @@ -132,10 +127,49 @@ export const experimentInputToData = (data: ExperimentCreateInput) => { }; if (data.coVariables && data.coVariables.length) { + let separator = ','; + + const design = params.algorithm.parameters.find((p) => p.name === 'design'); + const excludes = [ + 'Multiple Histograms', + 'CART', + 'ID3', + 'Naive Bayes Training', + ]; + + if (design && !excludes.includes(data.algorithm.id)) { + separator = design.value === 'additive' ? '+' : '*'; + } + params.algorithm.parameters.push({ name: 'x', label: 'x', - value: data.coVariables.join(','), + value: data.coVariables.join(separator), + }); + } + + if (data.variables) { + let variables = data.variables.join(','); + + if (data.algorithm.id === 'TTEST_PAIRED') { + const varCount = data.variables.length; + variables = data.variables + ?.reduce( + (vectors: string, v, i) => + (i + 1) % 2 === 0 + ? `${vectors}${v},` + : varCount === i + 1 + ? `${vectors}${v}-${data.variables[0]}` + : `${vectors}${v}-`, + '', + ) + .replace(/,$/, ''); + } + + params.algorithm.parameters.push({ + name: 'y', + label: 'y', + value: variables, }); } -- GitLab