From 872830e1cc79c731a1426502ef5438249e030e63 Mon Sep 17 00:00:00 2001 From: Danielle Callan Date: Fri, 23 Feb 2024 11:56:59 -0500 Subject: [PATCH 1/2] draft simpler study vocab r object --- .../service/eda/ds/core/AbstractPlugin.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java b/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java index 78fcbaef..018fc440 100644 --- a/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java +++ b/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java @@ -740,19 +740,22 @@ public boolean validateImputeZeroesRequest(Map dataSpec public String getRStudyVocabsAsString(DynamicDataSpec dataSpec) { PluginUtil util = getUtil(); - // this assuming the first ancestor is the root one is a bit hacky, but i did the same in R so... - // obviously doing the same awful thing twice makes it ok. but doing any better is higher cost than i have time for right now :( - String studyVocabInR = util.toColNameOrEmpty(dataSpec); - String studyVocabAsRTibble = "dplyr::reframe(dplyr::group_by(data.table::fread(\"" + studyVocabInR + "\", header=FALSE), V1), " + - "values=paste0(\"veupathUtils::StudySpecificVocabulary(variableSpec=veupathUtils::VariableSpec(entityId='" + getDynamicDataSpecEntityId(dataSpec)+ "'," + - "variableId='" + getDynamicDataSpecId(dataSpec) + "')," + - "vocabulary=c('\",paste(V2, collapse='\\',\\''),\"')," + - "study='\",V1,\"'," + - "studyIdColumnName=rev(" + util.getEntityAncestorsAsRVectorString(getDynamicDataSpecEntityId(dataSpec), _referenceMetadata) + ")[1])\"))"; - - String studyVocabsListAsRString = "veupathUtils::StudySpecificVocabulariesByVariable(S4Vectors::SimpleList(eval(parse(text=paste0('c(',paste(" + studyVocabAsRTibble + "[[2]], collapse=','), ')')))))"; - - return studyVocabsListAsRString; + String studyIdColumnNameAsRString = "rev(" + util.getEntityAncestorsAsRVectorString(getDynamicDataSpecEntityId(dataSpec), _referenceMetadata) + ")[1]"; + + String studyVocabInR = "{tmp <- data.table::fread('" + util.toColNameOrEmpty(dataSpec) + "', header=FALSE);" + + "names(tmp) <- c('" + studyIdColumnNameAsRString + "', '" + util.toColNameOrEmpty(dataSpec) + "');" + + "tmp}"; + + String varSpecAsRString = "veupathUtils::VariableSpec(" + + "entityId='" + getDynamicDataSpecEntityId(dataSpec)+ "'," + + "variableId='" + getDynamicDataSpecId(dataSpec) + "')"; + + String studyVocabAsRString = "veupathUtils::StudySpecificVocabulariesByVariable(" + + "variableSpec=" + varSpecAsRString + "," + + "studyIdColumnName=" + studyIdColumnNameAsRString + "," + + "studyVocab=" + studyVocabInR + ")"; + + return studyVocabAsRString; } public String getRStudyVocabsAsString(List dataSpecs) { From 658ae8edfe85c9cfc65d6a47a4a1728e4e845058 Mon Sep 17 00:00:00 2001 From: Danielle Callan Date: Sat, 24 Feb 2024 15:39:55 -0500 Subject: [PATCH 2/2] typo --- .../java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java b/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java index 018fc440..63460c44 100644 --- a/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java +++ b/src/main/java/org/veupathdb/service/eda/ds/core/AbstractPlugin.java @@ -743,7 +743,7 @@ public String getRStudyVocabsAsString(DynamicDataSpec dataSpec) { String studyIdColumnNameAsRString = "rev(" + util.getEntityAncestorsAsRVectorString(getDynamicDataSpecEntityId(dataSpec), _referenceMetadata) + ")[1]"; String studyVocabInR = "{tmp <- data.table::fread('" + util.toColNameOrEmpty(dataSpec) + "', header=FALSE);" + - "names(tmp) <- c('" + studyIdColumnNameAsRString + "', '" + util.toColNameOrEmpty(dataSpec) + "');" + + "names(tmp) <- c(" + studyIdColumnNameAsRString + ", '" + util.toColNameOrEmpty(dataSpec) + "');" + "tmp}"; String varSpecAsRString = "veupathUtils::VariableSpec(" +