diff --git a/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.spec.ts b/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.spec.ts index 617f12859d60c04985bcbea78cfd31dc2737346b..6c157e60af4662b878390dd4053f094d3bfafec2 100644 --- a/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.spec.ts +++ b/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.spec.ts @@ -43,7 +43,7 @@ const createExperiment = (): Experiment => ({ id: 'dummy-id', name: 'Testing purpose', algorithm: { - name: 'LOGISTIC_REGRESSION', + name: LogisticRegressionHandler.ALGO_NAME, }, datasets: ['desd-synthdata'], domain: 'dementia', diff --git a/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.ts b/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.ts index a36e0b921a6cc36d28d82a7558d953e250d6a9a6..ce990f63e10ec3bfdfb31fcbc27cc58561822106 100644 --- a/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.ts +++ b/api/src/engine/connectors/exareme/handlers/algorithms/logistic-regression.handler.ts @@ -34,6 +34,8 @@ const roundNumber = (val: any, name: string) => : val; export default class LogisticRegressionHandler extends BaseHandler { + public static readonly ALGO_NAME = 'logistic_regression'; + private getModel(data: any): TableResult | undefined { return { name: 'Model', @@ -73,13 +75,16 @@ export default class LogisticRegressionHandler extends BaseHandler { name: lookupDict[name], type: 'string', })), - data: [fields.map((name) => roundNumber(data[name], name))], + data: data['indep_vars'].map((_var: string, i: number) => + fields.map((name) => roundNumber(data[name][i], name)), + ), }; } canHandle(exp: Experiment, data: any): boolean { return ( - exp.algorithm.name.toLowerCase() === 'logistic_regression' && + exp.algorithm.name.toLowerCase() === + LogisticRegressionHandler.ALGO_NAME && !!data && !!data[0] && !!data[0]['summary'] diff --git a/api/src/engine/connectors/exareme/handlers/index.ts b/api/src/engine/connectors/exareme/handlers/index.ts index ad4dfb9e0789eb8a8acd4145446aad8825ca9e27..c3041feb05df727b30a27a3589afbee533893f8f 100644 --- a/api/src/engine/connectors/exareme/handlers/index.ts +++ b/api/src/engine/connectors/exareme/handlers/index.ts @@ -4,9 +4,11 @@ import AnovaOneWayHandler from './algorithms/anova-one-way.handler'; import DescriptiveHandler from './algorithms/descriptive.handler'; import LinearRegressionCVHandler from './algorithms/linear-regression-cv.handler'; import LinearRegressionHandler from './algorithms/linear-regression.handler'; +import LogisticRegressionHandler from './algorithms/logistic-regression.handler'; import PCAHandler from './algorithms/PCA.handler'; import PearsonHandler from './algorithms/pearson.handler'; import RawHandler from './algorithms/raw.handler'; +import TTestPairedHandler from './algorithms/ttest-paired.handler'; import ResultHandler from './result-handler.interface'; const start = new PearsonHandler() as ResultHandler; @@ -17,6 +19,8 @@ start .setNext(new PCAHandler()) .setNext(new LinearRegressionHandler()) .setNext(new LinearRegressionCVHandler()) + .setNext(new LogisticRegressionHandler()) + .setNext(new TTestPairedHandler()) .setNext(new RawHandler()); // should be last handler as it works as a fallback (if other handlers could not process the results) export default (exp: Experiment, data: unknown, domain: Domain): Experiment => { diff --git a/api/src/engine/connectors/exareme/transformations/algorithms/index.ts b/api/src/engine/connectors/exareme/transformations/algorithms/index.ts index b3626f3499aee15f47487f2704fd4f6226a03b1e..c723ebab7f62915d8c71f4e1e8a28a8a96c2fd2e 100644 --- a/api/src/engine/connectors/exareme/transformations/algorithms/index.ts +++ b/api/src/engine/connectors/exareme/transformations/algorithms/index.ts @@ -13,7 +13,7 @@ const transformToAlgorithms = jsonata(` 'PEARSON','ID3','KMEANS','NAIVE_BAYES', 'TTEST_ONESAMPLE','PCA','CALIBRATION_BELT','CART', 'KAPLAN_MEIER','THREE_C', 'ONE_WAY_ANOVA', 'PEARSON', 'LINEAR_REGRESSION_CV']; - $linkedVars:= ['positive_level', 'negative_level', 'outcome_neg', 'outcome_pos']; + $linkedVars:= ['positive_class', 'positive_level', 'negative_level', 'outcome_neg', 'outcome_pos']; $linkedCoVars:= ['referencevalues', 'xlevels']; $truthy:= function($val) {( $v:= $lowercase($val);