From 3c36fece2ef16d06ef68978466068cca0c0d7d63 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Tue, 9 Nov 2021 10:42:43 +0100 Subject: [PATCH] Add coVariables in expriment --- api/src/engine/connectors/exareme/converters.ts | 10 ++++++++++ api/src/engine/connectors/exareme/transformations.ts | 5 +++-- api/src/engine/models/experiment/experiment.model.ts | 3 +++ .../experiment/input/experiment-create.input.ts | 3 +++ api/src/schema.gql | 12 ++++++++---- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 3dd9532..c3eed2d 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -116,6 +116,16 @@ export const experimentInputToData = (data: ExperimentCreateInput) => { }, name: data.name, }; + + if (data.coVariables && data.coVariables.length) { + params.algorithm.parameters.push({ + name: 'x', + label: 'x', + value: data.coVariables.join(','), + }); + } + + return params; }; export const descriptiveDataToTableResult = ( diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts index 74bc69a..d43e249 100644 --- a/api/src/engine/connectors/exareme/transformations.ts +++ b/api/src/engine/connectors/exareme/transformations.ts @@ -5,7 +5,7 @@ import * as jsonata from 'jsonata'; // old import style needed due to 'export = export const transformToAlgorithms = jsonata(` ( - $params := ["y", "pathology", "dataset", "filter"]; + $params := ["y", "pathology", "dataset", "filter", "x"]; $toArray := function($x) { $type($x) = 'array' ? $x : [$x]}; @@ -30,7 +30,7 @@ export const transformToAlgorithms = jsonata(` export const transformToExperiment = jsonata(` ( - $params := ["y", "pathology", "dataset", "filter"]; + $params := ["y", "pathology", "dataset", "filter", "x"]; $toArray := function($x) { $type($x) = 'array' ? $x : [$x]}; @@ -46,6 +46,7 @@ export const transformToExperiment = jsonata(` "updateAt": updated, "domain": algorithm.parameters[name = "pathology"].value, "variables": $split(algorithm.parameters[name = "y"].value, ','), + "coVariables": $toArray($split(algorithm.parameters[name = "x"].value, ',')), "filter": algorithm.parameters[name = "filter"].value, "datasets": $split(algorithm.parameters[name = "dataset"].value, ','), "algorithm": { diff --git a/api/src/engine/models/experiment/experiment.model.ts b/api/src/engine/models/experiment/experiment.model.ts index 06e28b4..0a76e9d 100644 --- a/api/src/engine/models/experiment/experiment.model.ts +++ b/api/src/engine/models/experiment/experiment.model.ts @@ -43,6 +43,9 @@ export class Experiment { @Field(() => [String]) variables: string[]; + @Field(() => [String], { nullable: true, defaultValue: [] }) + coVariables?: string[]; + @Field() algorithm: Algorithm; diff --git a/api/src/engine/models/experiment/input/experiment-create.input.ts b/api/src/engine/models/experiment/input/experiment-create.input.ts index b0b57ce..8c8104a 100644 --- a/api/src/engine/models/experiment/input/experiment-create.input.ts +++ b/api/src/engine/models/experiment/input/experiment-create.input.ts @@ -24,6 +24,9 @@ export class ExperimentCreateInput { @Field(() => [String]) variables: string[]; + @Field(() => [String], { nullable: true, defaultValue: [] }) + coVariables?: string[]; + @Field() algorithm: AlgorithmInput; diff --git a/api/src/schema.gql b/api/src/schema.gql index 2c77f09..a657a44 100644 --- a/api/src/schema.gql +++ b/api/src/schema.gql @@ -37,7 +37,7 @@ type Domain { } type AlgorithmParameter { - name: String! + id: String! value: [String!] label: String description: String @@ -50,7 +50,7 @@ type AlgorithmParameter { } type Algorithm { - name: String! + id: String! parameters: [AlgorithmParameter!] label: String type: String @@ -140,6 +140,7 @@ type Experiment { filter: String domain: String! variables: [String!]! + coVariables: [String!] algorithm: Algorithm! name: String! } @@ -158,6 +159,7 @@ type PartialExperiment { filter: String domain: String variables: [String!] + coVariables: [String!] algorithm: Algorithm name: String } @@ -187,6 +189,7 @@ input ExperimentCreateInput { filter: String domain: String! variables: [String!]! + coVariables: [String!] = [] algorithm: AlgorithmInput! name: String! transformations: [FormulaTransformation!] @@ -194,13 +197,13 @@ input ExperimentCreateInput { } input AlgorithmInput { - name: String! + id: String! parameters: [AlgorithmParamInput!] = [] type: String! } input AlgorithmParamInput { - name: String! + id: String! value: [String!]! } @@ -211,5 +214,6 @@ input FormulaTransformation { input ExperimentEditInput { name: String + shared: Boolean viewed: Boolean } -- GitLab