diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts
index 309fb333126b56a0cef0d8cc2a55e4bce3135c9c..4adf3d822c8610c763bbcde3693ce4b255ed1a00 100644
--- a/api/src/engine/connectors/exareme/transformations.ts
+++ b/api/src/engine/connectors/exareme/transformations.ts
@@ -30,11 +30,12 @@ export const transformToAlgorithms = 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]};
     $convDate := function($v) { $type($v) = 'string' ? $toMillis($v) : $v };
     $rp := function($v) {$replace($v, /(\\+|\\*|-)/, ',')};
     $strSafe := function($v) { $type($v) = 'string' ? $v : "" };
+    $formula := $eval(algorithm.parameters[name = "formula"].value);
 
     {
         "name": name,
@@ -47,11 +48,18 @@ export const transformToExperiment = jsonata(`
         "shared": shared,
         "updateAt": $convDate(updated),
         "domain": algorithm.parameters[name = "pathology"].value,
+        "datasets": $split(algorithm.parameters[name = "dataset"].value, ','),
         "variables": $split($rp(algorithm.parameters[name = "y"].value), ','),
         "coVariables": $toArray($split($rp(algorithm.parameters[name = "x"].value), ',')),
         "filterVariables": (algorithm.parameters[name = "filter"].value ~> $strSafe() ~> $match(/\\"id\\":\\"(\w*)\\"/)).groups,
         "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": {
             "id": algorithm.name,
             "parameters" : $toArray(