Skip to content
Snippets Groups Projects
Commit 58d5a14d authored by stevereis's avatar stevereis
Browse files

feat: Add formula transform experiment (exareme)

parent 21d14c65
No related branches found
No related tags found
No related merge requests found
...@@ -30,11 +30,12 @@ export const transformToAlgorithms = jsonata(` ...@@ -30,11 +30,12 @@ export const transformToAlgorithms = jsonata(`
export const transformToExperiment = jsonata(` export const transformToExperiment = jsonata(`
( (
$params := ["y", "pathology", "dataset", "filter", "x"]; $params := ["y", "pathology", "dataset", "filter", "x", "formula"];
$toArray := function($x) { $type($x) = 'array' ? $x : [$x]}; $toArray := function($x) { $type($x) = 'array' ? $x : [$x]};
$convDate := function($v) { $type($v) = 'string' ? $toMillis($v) : $v }; $convDate := function($v) { $type($v) = 'string' ? $toMillis($v) : $v };
$rp := function($v) {$replace($v, /(\\+|\\*|-)/, ',')}; $rp := function($v) {$replace($v, /(\\+|\\*|-)/, ',')};
$strSafe := function($v) { $type($v) = 'string' ? $v : "" }; $strSafe := function($v) { $type($v) = 'string' ? $v : "" };
$formula := $eval(algorithm.parameters[name = "formula"].value);
{ {
"name": name, "name": name,
...@@ -47,11 +48,18 @@ export const transformToExperiment = jsonata(` ...@@ -47,11 +48,18 @@ export const transformToExperiment = jsonata(`
"shared": shared, "shared": shared,
"updateAt": $convDate(updated), "updateAt": $convDate(updated),
"domain": algorithm.parameters[name = "pathology"].value, "domain": algorithm.parameters[name = "pathology"].value,
"datasets": $split(algorithm.parameters[name = "dataset"].value, ','),
"variables": $split($rp(algorithm.parameters[name = "y"].value), ','), "variables": $split($rp(algorithm.parameters[name = "y"].value), ','),
"coVariables": $toArray($split($rp(algorithm.parameters[name = "x"].value), ',')), "coVariables": $toArray($split($rp(algorithm.parameters[name = "x"].value), ',')),
"filterVariables": (algorithm.parameters[name = "filter"].value ~> $strSafe() ~> $match(/\\"id\\":\\"(\w*)\\"/)).groups, "filterVariables": (algorithm.parameters[name = "filter"].value ~> $strSafe() ~> $match(/\\"id\\":\\"(\w*)\\"/)).groups,
"filter": algorithm.parameters[name = "filter"].value, "filter": algorithm.parameters[name = "filter"].value,
"datasets": $split(algorithm.parameters[name = "dataset"].value, ','), "formula": {
"transformations": $formula.single.{
"id": var_name,
"operation": unary_operation
}[],
"interactions" : $formula.interactions.[var1, var2][]
},
"algorithm": { "algorithm": {
"id": algorithm.name, "id": algorithm.name,
"parameters" : $toArray( "parameters" : $toArray(
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment