diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml
index 0e8f622a2b6..50c396dd7cc 100644
--- a/.github/workflows/develop.yml
+++ b/.github/workflows/develop.yml
@@ -15,7 +15,7 @@ jobs:
test:
uses: ./.github/workflows/test-analysis.yml
- needs: deploy-docker-ext-tools
+ needs: build
with:
test_profile: runShortTests,runMediumTests
secrets: inherit
diff --git a/.github/workflows/docker-ext-tools.yml b/.github/workflows/docker-ext-tools.yml
index 07062f03278..6ded6d96fbe 100644
--- a/.github/workflows/docker-ext-tools.yml
+++ b/.github/workflows/docker-ext-tools.yml
@@ -8,7 +8,6 @@ on:
- TASK-*
paths:
- opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile
- workflow_dispatch:
jobs:
build:
@@ -19,5 +18,4 @@ jobs:
needs: build
with:
cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ needs.build.outputs.version }}
- secrets: inherit
-
+ secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/long-test-analysis.yml b/.github/workflows/long-test-analysis.yml
index ef610d74bda..c898c4dfa0b 100644
--- a/.github/workflows/long-test-analysis.yml
+++ b/.github/workflows/long-test-analysis.yml
@@ -5,13 +5,13 @@ name: Long test for run only on weekend
on:
schedule:
- cron: '10 1 * * 6'
+ workflow_dispatch:
jobs:
test:
uses: ./.github/workflows/test-analysis.yml
secrets: inherit
with:
- test_profile: runLongTests,runMediumTests,runShortTests
- report_context: development
+ test_profile: runShortTests,runMediumTests,runLongTests,
diff --git a/.github/workflows/manual-deploy-docker.yml b/.github/workflows/manual-deploy-docker.yml
new file mode 100644
index 00000000000..3c9660bbb2c
--- /dev/null
+++ b/.github/workflows/manual-deploy-docker.yml
@@ -0,0 +1,50 @@
+name: Manual deploy Docker base
+on:
+ workflow_dispatch:
+ inputs:
+ branch:
+ description: "The branch, tag or SHA of the source code to build docker."
+ type: string
+ required: true
+ tag:
+ description: "The tag for the new docker."
+ type: string
+ required: true
+
+jobs:
+ build:
+ name: Build Java app
+ runs-on: ubuntu-22.04
+ outputs:
+ version: ${{ steps.get_project_version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: '10'
+ ref: "${{ inputs.branch }}"
+ - name: Set up JDK 8
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '8'
+ cache: 'maven'
+ - name: Install dependencies branches
+ run: |
+ if [ -f "./.github/workflows/scripts/get_same_branch.sh" ]; then
+ chmod +x ./.github/workflows/scripts/get_same_branch.sh
+ ./.github/workflows/scripts/get_same_branch.sh ${{ github.ref_name }}
+ fi
+ - name: Maven Build (skip tests)
+ run: mvn -T 2 clean install -DskipTests
+ - uses: actions/upload-artifact@v3
+ with:
+ name: build-folder
+ path: build
+
+
+ deploy-docker:
+ uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop
+ needs: build
+ with:
+ cli: python3 ./build/cloud/docker/docker-build.py push --images base,init --tag ${{ inputs.tag }}
+ secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/manual-deploy-ext-tools.yml b/.github/workflows/manual-deploy-ext-tools.yml
new file mode 100644
index 00000000000..3f64fd392de
--- /dev/null
+++ b/.github/workflows/manual-deploy-ext-tools.yml
@@ -0,0 +1,50 @@
+name: Manual deploy Docker Ext-Tools
+on:
+ workflow_dispatch:
+ inputs:
+ branch:
+ description: "The branch, tag or SHA of the source code to build docker."
+ type: string
+ required: true
+ tag:
+ description: "The tag for the new docker."
+ type: string
+ required: true
+
+jobs:
+ build:
+ name: Build Java app
+ runs-on: ubuntu-22.04
+ outputs:
+ version: ${{ steps.get_project_version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: '10'
+ ref: "${{ inputs.branch }}"
+ - name: Set up JDK 8
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '8'
+ cache: 'maven'
+ - name: Install dependencies branches
+ run: |
+ if [ -f "./.github/workflows/scripts/get_same_branch.sh" ]; then
+ chmod +x ./.github/workflows/scripts/get_same_branch.sh
+ ./.github/workflows/scripts/get_same_branch.sh ${{ github.ref_name }}
+ fi
+ - name: Maven Build (skip tests)
+ run: mvn -T 2 clean install -DskipTests
+ - uses: actions/upload-artifact@v3
+ with:
+ name: build-folder
+ path: build
+
+
+ deploy-docker-ext-tools:
+ uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop
+ needs: build
+ with:
+ cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ inputs.tag }}
+ secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0ed6340be1f..b7fccc7fa3f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -14,21 +14,21 @@ jobs:
deploy-maven:
uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@develop
- needs: test
+ needs: build
with:
maven_opts: -P storage-hadoop,hdp3.1 -Dopencga.war.name=opencga
secrets: inherit
deploy-docker:
uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop
- needs: test
+ needs: build
with:
cli: python3 ./build/cloud/docker/docker-build.py push --images base,init
secrets: inherit
deploy-python:
uses: opencb/java-common-libs/.github/workflows/deploy-python-workflow.yml@develop
- needs: test
+ needs: build
with:
cli: ./clients/python/python-build.sh push
artifact: build-folder
@@ -42,3 +42,4 @@ jobs:
file: |
opencga-client-${{ needs.build.outputs.version }}.tar.gz
clients/R/opencgaR_${{ needs.build.outputs.version }}.tar.gz
+
diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml
index 732d92a4e56..a83cea15dc9 100644
--- a/.github/workflows/test-analysis.yml
+++ b/.github/workflows/test-analysis.yml
@@ -8,6 +8,7 @@ on:
required: true
mvn_opts:
type: string
+
required: false
default: ""
secrets:
@@ -82,3 +83,4 @@ jobs:
report_paths: './**/surefire-reports/TEST-*.xml'
commit: '${{ github.sha }}'
fail_on_test_failures: true
+
diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml
index ddefa7d2618..adcb53e2d0e 100644
--- a/opencga-analysis/pom.xml
+++ b/opencga-analysis/pom.xml
@@ -22,7 +22,7 @@
org.opencb.opencgaopencga
- 2.10.0-SNAPSHOT
+ 2.11.0-SNAPSHOT../pom.xml
diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java
index 38953f5ff7f..fd8a0cebad5 100644
--- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java
+++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java
@@ -230,7 +230,7 @@ public OpenCGAResult coverageStats(String studyIdStr, String
String species = projectQueryResult.first().getOrganism().getScientificName();
String assembly = projectQueryResult.first().getOrganism().getAssembly();
String dataRelease = projectQueryResult.first().getCellbase().getDataRelease();
- String cellbaseToken = projectQueryResult.first().getCellbase().getToken();
+ String cellbaseToken = projectQueryResult.first().getCellbase().getApiKey();
for (String geneName : geneNames) {
@@ -451,7 +451,7 @@ public List mergeRegions(List regions, List genes, boole
String species = projectQueryResult.first().getOrganism().getScientificName();
String assembly = projectQueryResult.first().getOrganism().getAssembly();
String dataRelease = projectQueryResult.first().getCellbase().getDataRelease();
- String cellbaseToken = projectQueryResult.first().getCellbase().getToken();
+ String cellbaseToken = projectQueryResult.first().getCellbase().getApiKey();
CellBaseClient cellBaseClient = new CellBaseClient(species, assembly, dataRelease, cellbaseToken,
projectQueryResult.first().getCellbase().toClientConfiguration());
GeneClient geneClient = cellBaseClient.getGeneClient();
diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/hrdetect/HRDetectAnalysis.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/hrdetect/HRDetectAnalysis.java
index f6dee08bd8e..e808c33cd36 100644
--- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/hrdetect/HRDetectAnalysis.java
+++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/hrdetect/HRDetectAnalysis.java
@@ -59,7 +59,7 @@ public class HRDetectAnalysis extends OpenCgaToolScopeStudy {
public static final String ID = "hr-detect";
public static final String DESCRIPTION = "Run HRDetect analysis for a given somatic sample.";
- public final static String HRDETECT_SCORES_FILENAME_DEFAULT = "data_matrix.tsv";
+ public final static String HRDETECT_SCORES_FILENAME_DEFAULT = "hrdetect_output.tsv";
@ToolParams
private HRDetectAnalysisParams hrdetectParams = new HRDetectAnalysisParams();
diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java
index 806fbb6d818..22b337e9621 100644
--- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java
+++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java
@@ -49,6 +49,7 @@
import org.opencb.opencga.catalog.managers.StudyManager;
import org.opencb.opencga.core.api.ParamConstants;
import org.opencb.opencga.core.cellbase.CellBaseValidator;
+import org.opencb.opencga.core.common.ExceptionUtils;
import org.opencb.opencga.core.common.UriUtils;
import org.opencb.opencga.core.config.storage.CellBaseConfiguration;
import org.opencb.opencga.core.config.storage.SampleIndexConfiguration;
@@ -564,7 +565,10 @@ public OpenCGAResult setCellbaseConfiguration(String project, CellBaseConfi
String annotationSaveId, String token)
throws CatalogException, StorageEngineException {
StopWatch stopwatch = StopWatch.createStarted();
- return secureOperationByProject("configureCellbase", project, new ObjectMap(), token, engine -> {
+ return secureOperationByProject("configureCellbase", project, new ObjectMap()
+ .append("cellbaseConfiguration", cellbaseConfiguration)
+ .append("annotate", annotate)
+ .append("annotationSaveId", annotationSaveId), token, engine -> {
OpenCGAResult result = new OpenCGAResult<>();
result.setResultType(Job.class.getCanonicalName());
result.setResults(new ArrayList<>());
@@ -1017,8 +1021,9 @@ private void setCellbaseConfiguration(VariantStorageEngine engine, String projec
.get(project, new QueryOptions(INCLUDE, ProjectDBAdaptor.QueryParams.CELLBASE.key()), token)
.first().getCellbase();
if (cellbase != null) {
- if (StringUtils.isEmpty(cellbase.getToken()) || storageConfiguration.getCellbase() != null) {
- cellbase.setToken(storageConfiguration.getCellbase().getToken());
+ // To ensure that we use the project API key before using the storage API key
+ if (StringUtils.isEmpty(cellbase.getApiKey()) && storageConfiguration.getCellbase() != null) {
+ cellbase.setApiKey(storageConfiguration.getCellbase().getApiKey());
}
engine.getConfiguration().setCellbase(cellbase);
engine.reloadCellbaseConfiguration();
@@ -1225,7 +1230,7 @@ private R secureTool(String toolId, boolean isOperation, ObjectMap params, S
throw e;
} catch (Exception e) {
exception = e;
- throw new StorageEngineException("Error executing operation " + toolId, e);
+ throw new StorageEngineException("Error executing operation '" + toolId + "' : " + e.getMessage(), e);
} finally {
if (result instanceof DataResult) {
auditAttributes.append("dbTime", ((DataResult) result).getTime());
@@ -1237,6 +1242,8 @@ private R secureTool(String toolId, boolean isOperation, ObjectMap params, S
if (exception != null) {
auditAttributes.append("errorType", exception.getClass());
auditAttributes.append("errorMessage", exception.getMessage());
+ auditAttributes.append("errorMessageFull", ExceptionUtils.prettyExceptionMessage(exception, false, true));
+ auditAttributes.append("exceptionStackTrace", ExceptionUtils.prettyExceptionStackTrace(exception));
status = new AuditRecord.Status(AuditRecord.Status.Result.ERROR,
new Error(-1, exception.getClass().getName(), exception.getMessage()));
} else {
diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/mutationalSignature/MutationalSignatureLocalAnalysisExecutor.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/mutationalSignature/MutationalSignatureLocalAnalysisExecutor.java
index d0b17eac64a..c542521329a 100644
--- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/mutationalSignature/MutationalSignatureLocalAnalysisExecutor.java
+++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/mutationalSignature/MutationalSignatureLocalAnalysisExecutor.java
@@ -64,6 +64,9 @@
public class MutationalSignatureLocalAnalysisExecutor extends MutationalSignatureAnalysisExecutor
implements StorageToolExecutor {
+ private static final String SVCLASS = "SVCLASS";
+ private static final String EXT_SVTYPE = "EXT_SVTYPE";
+
public final static String R_DOCKER_IMAGE = "opencb/opencga-ext-tools:"
+ GitRepositoryState.getInstance().getBuildVersion();
@@ -80,7 +83,6 @@ public void run() throws ToolException, CatalogException, IOException, StorageEn
&& getSkip().contains(MutationalSignatureAnalysisParams.SIGNATURE_CATALOGUE_SKIP_VALUE)
&& getSkip().contains(MutationalSignatureAnalysisParams.SIGNATURE_FITTING_SKIP_VALUE)) {
// Only compute genome context file
- // TODO: overwrite support !
File indexFile = checkGenomeContextFile();
logger.info("Checking genome context file {} for sample {}", indexFile.getAbsolutePath(), getSample());
}
@@ -97,7 +99,6 @@ && getSkip().contains(MutationalSignatureAnalysisParams.SIGNATURE_FITTING_SKIP_V
// SNV
logger.info("Computing catalogue (mutational signature) for SNV variants");
- // TODO: overwrite support !
File indexFile = checkGenomeContextFile();
logger.info("Mutational signature analysis is using the genome context file {} for sample {}", indexFile.getAbsolutePath(),
getSample());
@@ -191,19 +192,18 @@ refGenomePath, new FastaSequenceIndex(new File(base + ".fai")),
try {
// Accessing to the context sequence and write it into the context index file
- ReferenceSequence refSeq = indexed.getSubsequenceAt(variant.getChromosome(), variant.getStart() - 1,
- variant.getEnd() + 1);
+ ReferenceSequence refSeq = indexed.getSubsequenceAt(variant.getChromosome(), (long) variant.getStart() - 1,
+ (long) variant.getEnd() + 1);
String sequence = new String(refSeq.getBases());
// Write context index
pw.println(variant.toString() + "\t" + sequence);
} catch (Exception e) {
- logger.warn("When creating genome context file for mutational signature analysis, ignoring variant "
- + variant.toStringSimple() + ". " + e.getMessage());
+ logger.warn("When creating genome context file for mutational signature analysis, ignoring variant {}: {}",
+ variant.toStringSimple(), Arrays.toString(e.getStackTrace()));
}
}
}
-
} catch (IOException | CatalogException | ToolException | StorageEngineException e) {
throw new ToolExecutorException(e);
}
@@ -211,7 +211,8 @@ refGenomePath, new FastaSequenceIndex(new File(base + ".fai")),
private void updateCountMap(Variant variant, String sequence, Map> countMap) {
try {
- String k, seq;
+ String k;
+ String seq;
String key = variant.getReference() + ">" + variant.getAlternate();
@@ -226,16 +227,15 @@ private void updateCountMap(Variant variant, String sequence, Map indexMap = new HashMap<>();
- BufferedReader br = new BufferedReader(new FileReader(indexFile));
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split("\t");
@@ -288,9 +288,11 @@ public void computeSignatureCatalogueSNV(File indexFile) throws ToolExecutorExce
}
public void computeSignatureCatalogueSV() throws ToolExecutorException {
+ Query query;
+ File clusteredFile;
try {
// Get variant iterator
- Query query = new Query();
+ query = new Query();
if (getQuery() != null) {
query.putAll(getQuery());
}
@@ -301,16 +303,19 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException {
QueryOptions queryOptions = new QueryOptions(QueryOptions.INCLUDE, "id,sv,studies");
- logger.info("Query: {}", query.toJson());
- logger.info("Query options: {}", queryOptions.toJson());
+ logger.info("Query: {}", query != null ? query.toJson() : null);
+ logger.info("Query options: {}", queryOptions != null ? queryOptions.toJson() : null);
- File clusteredFile = computeClusteredFile(query, queryOptions);
+ clusteredFile = computeClusteredFile(query, queryOptions);
+ } catch (CatalogException | StorageEngineException | ToolException e) {
+ throw new ToolExecutorException(e);
+ }
- BufferedReader br = FileUtils.newBufferedReader(clusteredFile.toPath());
+ Map countMap = new HashMap<>();
+ try (BufferedReader br = FileUtils.newBufferedReader(clusteredFile.toPath())) {
// Skip header line
// chrom1 start1 end1 chrom2 start2 end2 length type sample id is.clustered
// 0 1 2 3 4 5 6 7 8 9 10
- Map countMap = new HashMap<>();
// Skip first line
String line = br.readLine();
while ((line = br.readLine()) != null) {
@@ -333,35 +338,36 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException {
countMap.put(key, 1);
}
}
+ } catch (IOException e) {
+ throw new ToolExecutorException(e);
+ }
-// logger.info("Count map size = {}", countMap.size());
-// for (Map.Entry entry : countMap.entrySet()) {
-// logger.info("context = {}, count = {}", entry.getKey(), entry.getValue());
-// }
-
- // Build teh genome context counts object for SV
- List genomeContextCounts = new LinkedList<>();
- for (String clustered: new LinkedList<>(Arrays.asList(CLUSTERED, NON_CLUSTERED))) {
- for (String type: new LinkedList<>(Arrays.asList(TYPE_DEL, TYPE_TDS, TYPE_INV))) {
- for (String length : new LinkedList<>(Arrays.asList(LENGTH_1_10Kb, LENGTH_10Kb_100Kb, LENGTH_100Kb_1Mb, LENGTH_1Mb_10Mb,
- LENGTH_10Mb))) {
- String key = clustered + "_" + type + "_" + length;
- genomeContextCounts.add(new Signature.GenomeContextCount(key, countMap.containsKey(key) ? countMap.get(key) : 0));
- }
+ // Build teh genome context counts object for SV
+ List genomeContextCounts = new LinkedList<>();
+ for (String clustered: new LinkedList<>(Arrays.asList(CLUSTERED, NON_CLUSTERED))) {
+ for (String type: new LinkedList<>(Arrays.asList(TYPE_DEL, TYPE_TDS, TYPE_INV))) {
+ for (String length : new LinkedList<>(Arrays.asList(LENGTH_1_10Kb, LENGTH_10Kb_100Kb, LENGTH_100Kb_1Mb, LENGTH_1Mb_10Mb,
+ LENGTH_10Mb))) {
+ String key = clustered + "_" + type + "_" + length;
+ genomeContextCounts.add(new Signature.GenomeContextCount(key, countMap.containsKey(key) ? countMap.get(key) : 0));
}
- String key = clustered + "_" + TYPE_TRANS;
- genomeContextCounts.add(new Signature.GenomeContextCount(key, countMap.containsKey(key) ? countMap.get(key) : 0));
}
+ String key = clustered + "_" + TYPE_TRANS;
+ genomeContextCounts.add(new Signature.GenomeContextCount(key, countMap.containsKey(key) ? countMap.get(key) : 0));
+ }
- // Write catalogue file from the genome context counts
- PrintWriter pw = new PrintWriter(getOutDir().resolve(CATALOGUES_FILENAME_DEFAULT).toFile());
+ // Write catalogue file from the genome context counts
+ try (PrintWriter pw = new PrintWriter(getOutDir().resolve(CATALOGUES_FILENAME_DEFAULT).toFile())) {
pw.write(query.getString(VariantQueryParam.SAMPLE.key()));
pw.write("\n");
for (Signature.GenomeContextCount counts : genomeContextCounts) {
pw.write(counts.getContext() + "\t" + counts.getTotal() + "\n");
}
- pw.close();
+ } catch (IOException e) {
+ throw new ToolExecutorException(e);
+ }
+ try {
Signature signature = new Signature()
.setId(getQueryId())
.setDescription(getQueryDescription())
@@ -371,7 +377,7 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException {
JacksonUtils.getDefaultObjectMapper().writerFor(Signature.class).writeValue(getOutDir()
.resolve(MutationalSignatureAnalysis.MUTATIONAL_SIGNATURE_DATA_MODEL_FILENAME).toFile(), signature);
- } catch (IOException | CatalogException | StorageEngineException | ToolException e) {
+ } catch (IOException e) {
throw new ToolExecutorException(e);
}
}
@@ -383,25 +389,59 @@ private File computeClusteredFile(Query query, QueryOptions queryOptions) throws
// $ Rscript sv_clustering.R ./test.bedpe ./out.bedpe
File inputFile = getOutDir().resolve("in.clustered.bedpe").toFile();
File outputFile = getOutDir().resolve("out.clustered.bedpe").toFile();
- try {
- PrintWriter pw = new PrintWriter(inputFile);
+ try (PrintWriter pw = new PrintWriter(inputFile);) {
+ String mateChrom;
+ int matePosition;
+ String lengthKey;
+ boolean processVariant;
+
+ Map> breakendMap = new HashMap<>();
pw.println("chrom1\tstart1\tend1\tchrom2\tstart2\tend2\tlength\ttype\tsample");
while (iterator.hasNext()) {
+ processVariant = true;
Variant variant = iterator.next();
- if (variant.getSv() == null || variant.getSv().getBreakend() == null || variant.getSv().getBreakend().getMate() == null) {
- continue;
+ if (breakendMap.containsKey(variant.getChromosome())) {
+ for (Integer position : breakendMap.get(variant.getChromosome())) {
+ if (Math.abs(variant.getStart() - position) <= 20) {
+ // Skipping since it is a mate
+ processVariant = false;
+ break;
+ }
+ }
}
- String typeKey = getTypeKey(variant);
- String lengthKey = getLengthKey(variant);
- if (typeKey != null && lengthKey != null) {
- BreakendMate mate = variant.getSv().getBreakend().getMate();
- pw.println(variant.getChromosome() + "\t" + variant.getStart() + "\t" + variant.getEnd() + "\t"
- + mate.getChromosome() + "\t" + mate.getPosition() + "\t" + mate.getPosition() + "\t"
- + lengthKey + "\t" + typeKey + "\t" + getSample());
+ if (processVariant) {
+ BreakendMate mate = null;
+ if (variant.getSv() != null && variant.getSv().getBreakend() != null
+ && variant.getSv().getBreakend().getMate() != null) {
+ mate = variant.getSv().getBreakend().getMate();
+ if (!breakendMap.containsKey(mate.getChromosome())) {
+ breakendMap.put(mate.getChromosome(), new ArrayList<>());
+ }
+ breakendMap.get(mate.getChromosome()).add(mate.getPosition());
+ }
+ String typeKey = getTypeKey(variant);
+ if (mate == null) {
+ mateChrom = "0";
+ matePosition = 0;
+ lengthKey = LENGTH_NA;
+ } else {
+ mateChrom = mate.getChromosome();
+ matePosition = mate.getPosition() == null ? 0 : mate.getPosition();
+ lengthKey = getLengthKey(variant, typeKey);
+ }
+
+ if (typeKey != null && lengthKey != null) {
+ pw.println(variant.getChromosome() + "\t" + variant.getStart() + "\t" + variant.getEnd() + "\t"
+ + mateChrom + "\t" + matePosition + "\t" + matePosition + "\t"
+ + lengthKey + "\t" + typeKey + "\t" + getSample());
+ }
}
}
- pw.close();
+ } catch (Exception e) {
+ throw new ToolException(e);
+ }
+ try {
// Build command line to run R script via docker image
// Input binding
List> inputBindings = new ArrayList<>();
@@ -430,22 +470,17 @@ private File computeClusteredFile(Query query, QueryOptions queryOptions) throws
return outputFile;
}
- private String getClusteredKey(Variant variant) {
- return NON_CLUSTERED;
- }
-
private String getTypeKey(Variant variant) {
String variantType = variant.getType() != null ? variant.getType().name() : "";
if (CollectionUtils.isNotEmpty(variant.getStudies()) && CollectionUtils.isNotEmpty(variant.getStudies().get(0).getFiles())) {
for (FileEntry file : variant.getStudies().get(0).getFiles()) {
- if (file.getData() != null) {
- if (file.getData().containsKey("EXT_SVTYPE")) {
- variantType = file.getData().get("EXT_SVTYPE").toUpperCase(Locale.ROOT);
- break;
- } else if (file.getData().containsKey("SVCLASS")) {
- variantType = file.getData().get("SVCLASS").toUpperCase(Locale.ROOT);
- break;
+ if (file.getData() != null && (file.getData().containsKey(EXT_SVTYPE) || file.getData().containsKey(SVCLASS))) {
+ if (file.getData().containsKey(EXT_SVTYPE)) {
+ variantType = file.getData().get(EXT_SVTYPE).toUpperCase(Locale.ROOT);
+ } else if (file.getData().containsKey(SVCLASS)) {
+ variantType = file.getData().get(SVCLASS).toUpperCase(Locale.ROOT);
}
+ break;
}
}
}
@@ -458,6 +493,7 @@ private String getTypeKey(Variant variant) {
case "TDS":
case "DUPLICATION":
case "TANDEM_DUPLICATION":
+ case "TANDEM-DUPLICATION":
return TYPE_TDS;
case "INV":
case "INVERSION":
@@ -466,30 +502,33 @@ private String getTypeKey(Variant variant) {
case "TRANS":
case "TRANSLOCATION":
return TYPE_TRANS;
+ default: {
+ logger.warn("Unknown variant type {}, so this variant will be ignored in mutational signature analysis", variantType);
+ return null;
+ }
}
- return null;
}
- private String getLengthKey(Variant variant) {
- if (variant.getSv() == null || variant.getSv().getBreakend() == null || variant.getSv().getBreakend().getMate() == null) {
+ private String getLengthKey(Variant variant, String type) {
+ if (type == null) {
return null;
}
- BreakendMate mate = variant.getSv().getBreakend().getMate();
- if (variant.getChromosome().equals(mate.getChromosome())) {
- int length = Math.abs(mate.getPosition() - variant.getStart());
- if (length <= 10000) {
- return LENGTH_1_10Kb;
- } else if (length <= 100000) {
- return LENGTH_10Kb_100Kb;
- } else if (length <= 1000000) {
- return LENGTH_100Kb_1Mb;
- } else if (length <= 10000000) {
- return LENGTH_1Mb_10Mb;
- }
- return LENGTH_10Mb;
+ if (type.equals(TYPE_TRANS)) {
+ return LENGTH_NA;
} else {
- if (variant.getType() == VariantType.TRANSLOCATION) {
- return LENGTH_NA;
+ BreakendMate mate = variant.getSv().getBreakend().getMate();
+ if (variant.getChromosome().equals(mate.getChromosome())) {
+ int length = Math.abs(mate.getPosition() - variant.getStart());
+ if (length <= 10000) {
+ return LENGTH_1_10Kb;
+ } else if (length <= 100000) {
+ return LENGTH_10Kb_100Kb;
+ } else if (length <= 1000000) {
+ return LENGTH_100Kb_1Mb;
+ } else if (length <= 10000000) {
+ return LENGTH_1Mb_10Mb;
+ }
+ return LENGTH_10Mb;
}
}
return null;
@@ -508,12 +547,12 @@ private void computeSignatureFitting() throws IOException, ToolException, Catalo
throw new ToolException("Unable to compute mutational signature analysis. Sample '" + getSample() + "' not found");
}
Sample sample = sampleResult.first();
- logger.info("Searching catalogue counts from quality control for sample " + getSample());
+ logger.info("Searching catalogue counts from quality control for sample {}", getSample());
if (sample.getQualityControl() != null && sample.getQualityControl().getVariant() != null
&& CollectionUtils.isNotEmpty(sample.getQualityControl().getVariant().getSignatures())) {
- logger.info("Searching in " + sample.getQualityControl().getVariant().getSignatures().size() + " signatures");
+ logger.info("Searching in {} signatures", sample.getQualityControl().getVariant().getSignatures().size());
for (Signature signature : sample.getQualityControl().getVariant().getSignatures()) {
- logger.info("Matching ? " + getQueryId() + " vs " + signature.getId());
+ logger.info("Matching ? {} vs {}", getQueryId(), signature.getId());
if (getQueryId().equals(signature.getId())) {
// Write catalogue file
try (PrintWriter pw = new PrintWriter(cataloguesFile)) {
@@ -521,7 +560,6 @@ private void computeSignatureFitting() throws IOException, ToolException, Catalo
for (Signature.GenomeContextCount count : signature.getCounts()) {
pw.println(count.getContext() + "\t" + count.getTotal());
}
- pw.close();
} catch (Exception e) {
throw new ToolException("Error writing catalogue output file: " + cataloguesFile.getName(), e);
}
@@ -587,7 +625,8 @@ private void computeSignatureFitting() throws IOException, ToolException, Catalo
scriptParams.append(" --genomev=hg19");
break;
}
- case "GRCh38": {
+ case "GRCh38":
+ default: {
scriptParams.append(" --genomev=hg38");
break;
}
@@ -595,7 +634,7 @@ private void computeSignatureFitting() throws IOException, ToolException, Catalo
String cmdline = DockerUtils.run(R_DOCKER_IMAGE, inputBindings, outputBinding, scriptParams.toString(),
null);
- logger.info("Docker command line: " + cmdline);
+ logger.info("Docker command line: {}", cmdline);
// Check fitting file before parsing and creating the mutational signature fitting data model
File signatureCoeffsFile = getOutDir().resolve(SIGNATURE_COEFFS_FILENAME).toFile();
diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/wrappers/exomiser/ExomiserWrapperAnalysisExecutor.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/wrappers/exomiser/ExomiserWrapperAnalysisExecutor.java
index e586a47d434..099d3c6c7db 100644
--- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/wrappers/exomiser/ExomiserWrapperAnalysisExecutor.java
+++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/wrappers/exomiser/ExomiserWrapperAnalysisExecutor.java
@@ -7,7 +7,6 @@
import org.opencb.biodata.models.clinical.Phenotype;
import org.opencb.biodata.models.clinical.pedigree.Member;
import org.opencb.biodata.models.clinical.pedigree.Pedigree;
-import org.opencb.biodata.models.core.SexOntologyTermAnnotation;
import org.opencb.biodata.models.pedigree.IndividualProperty;
import org.opencb.commons.datastore.core.QueryOptions;
import org.opencb.commons.exec.Command;
@@ -21,12 +20,9 @@
import org.opencb.opencga.core.exceptions.ToolExecutorException;
import org.opencb.opencga.core.models.family.Family;
import org.opencb.opencga.core.models.individual.Individual;
-import org.opencb.opencga.core.models.sample.Sample;
import org.opencb.opencga.core.tools.annotations.ToolExecutor;
import org.opencb.opencga.storage.core.exceptions.StorageEngineException;
-import org.opencb.opencga.storage.core.variant.adaptors.VariantField;
import org.opencb.opencga.storage.core.variant.adaptors.VariantQuery;
-import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam;
import org.opencb.opencga.storage.core.variant.io.VariantWriterFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,7 +32,6 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
-import java.util.stream.Collectors;
@ToolExecutor(id = ExomiserWrapperAnalysisExecutor.ID,
tool = ExomiserWrapperAnalysis.ID,
@@ -130,10 +125,11 @@ public void run() throws ToolException {
VariantQuery query = new VariantQuery()
.study(studyId)
- .sample(sampleId + ":0/1,1/1")
+ .sample(sampleId)
.includeSample(samples)
.includeSampleData("GT")
- .unknownGenotype("./.");
+ .unknownGenotype("./.")
+ .append("includeAllFromSampleIndex", true);
QueryOptions queryOptions = new QueryOptions(QueryOptions.INCLUDE, "id,studies.samples");
diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java
index 37ae808c6bf..31a59eebc2e 100644
--- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java
+++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java
@@ -194,7 +194,9 @@ public void setUp() throws Throwable {
null, null, null, token);
Phenotype phenotype = new Phenotype("phenotype", "phenotype", "");
- Disorder disorder = new Disorder("disorder", "disorder", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
+ Disorder disorder1 = new Disorder("disorder id 1", "disorder name 1", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
+ Disorder disorder2 = new Disorder("disorder id 2", "disorder name 2", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
+ List disorderList = new ArrayList<>(Arrays.asList(disorder1, disorder2));
List individuals = new ArrayList<>(4);
// Father
@@ -208,14 +210,14 @@ public void setUp() throws Throwable {
// Son
individuals.add(catalogManager.getIndividualManager()
.create(STUDY, new Individual(son, son, new Individual(), new Individual(), new Location(), SexOntologyTermAnnotation.initMale(), null, null, null, null, "",
- Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)).setDisorders(Collections.singletonList(disorder)), Collections.singletonList(son), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
+ Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)).setDisorders(disorderList), Collections.singletonList(son), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
// Daughter
individuals.add(catalogManager.getIndividualManager()
.create(STUDY, new Individual(daughter, daughter, new Individual(), new Individual(), new Location(), SexOntologyTermAnnotation.initFemale(), null, null, null, null, "",
Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)), Collections.singletonList(daughter), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
catalogManager.getFamilyManager().create(
STUDY,
- new Family("f1", "f1", Collections.singletonList(phenotype), Collections.singletonList(disorder), null, null, 3, null, null),
+ new Family("f1", "f1", Collections.singletonList(phenotype), disorderList, null, null, 3, null, null),
individuals.stream().map(Individual::getId).collect(Collectors.toList()), new QueryOptions(),
token);
@@ -814,9 +816,22 @@ public void testMutationalSignatureCatalogueSV() throws Exception {
params.setSample(cancer_sample);
params.setId("catalogue-1");
params.setDescription("Catalogue #1");
- VariantQuery query = new VariantQuery();
- query.sample(cancer_sample);
- query.type(VariantType.SV.name());
+ VariantQuery query = new VariantQuery()
+ .sample(cancer_sample)
+ .type(VariantType.SV.name())
+ //.file("AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz");
+ .fileData("AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz:BAS>=0;BKDIST>=-1")
+ .region("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y");
+
+ //https://ws.opencb.org/opencga-test/webservices/rest/v2/analysis/variant/mutationalSignature/query
+ // ?study=serena@cancer38:test38
+ // &fitting=false
+ // &sample=AR2.10039966-01T
+ // &fileData=AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz:BAS>=0;BKDIST>=-1;EXT_PS_SOM>=4;EXT_RC_SOM>=0
+ // ®ion=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y
+ // &type=SV
+
+
params.setQuery(query.toJson());
params.setSkip("fitting");
@@ -992,8 +1007,12 @@ public void testHRDetect() throws Exception {
List hrDetects = sample.getQualityControl().getVariant().getHrDetects();
for (HRDetect hrDetect : hrDetects) {
if (hrDetect.getId().equals(hrDetect.getId())) {
+ System.out.println("HRDetect scores for " + hrDetect.getId());
+ for (Map.Entry entry : hrDetect.getScores().entrySet()) {
+ System.out.println("\t" + entry.getKey() + ": " + entry.getValue());
+ }
if (hrDetect.getScores().containsKey("del.mh.prop")) {
- Assert.assertEquals(hrDetect.getScores().getFloat("del.mh.prop"), 0.172413793103448f, 0.00001f);
+ Assert.assertEquals(-1.5702984, hrDetect.getScores().getFloat("del.mh.prop"), 0.00001f);
return;
}
}
@@ -1018,12 +1037,23 @@ public void testHRDetectParseResults() throws Exception {
HRDetect hrDetect = HRDetectAnalysis.parseResult(hrdParams, hrdetectOutDir);
for (Map.Entry entry : hrDetect.getScores().entrySet()) {
- System.out.println(entry.getKey() + " -> " + entry.getValue());
+ System.out.println(entry.getKey() + ": " + entry.getValue());
}
assertTrue(hrDetect.getScores().containsKey("hrd"));
- assertEquals(-0.102769986f, hrDetect.getScores().getFloat("hrd"), 0.00001f);
+ assertEquals(-1.95208666666667, hrDetect.getScores().getFloat("hrd"), 0.00001f);
assertTrue(hrDetect.getScores().containsKey("Probability"));
- assertEquals(0.998444f, hrDetect.getScores().getFloat("Probability"), 0.00001f);
+ assertEquals(4.21293910790655e-05, hrDetect.getScores().getFloat("Probability"), 0.00001f);
+ }
+
+ @Test
+ public void testPedigreeGraph() throws CatalogException {
+ String base64 = "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC6FBMVEUAAAABAQECAgIEBAQGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxsdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozu7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////lDE73AAARGklEQVR4nO3dfVwUdQLH8T2tDpXQ8ta0uB4OKq87PTpleRAhwMTKhxDsOLWEyDTS4MzrLDMf8PLSUznTyisVNbvOh9My6y6VUCyP81mUTE4BxUpFediF3783M7uzu7LKMTuLs/vt+3m9YoYZ2Pn99s0CvwXMJBh0JqMHwNo3AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8HcA176u9s9S5e9p3QwuQmsu3zfv4iM3oYVwrHcBrf7PUUeKv1b3sAt8NLSA6PDFyzKwfz8mKGrvH6KFcPT3ATszJ6Z7HfhBdem5okbQJkf7bN/o354weztUisI7ODlinbEOUl/+MPG7kYK4Rgb2vbsBu+44dWByLrDFuMNeKwN6Xt8qx4wAWn6df602Ni8BeV5mo7qnAImOvMUNpJQJ73fxCdc8JXDTZmKG0EoG9bvgZdc8JbIszZiit5GPgxUPnGtD4GUZcNcx5TziBBTzwX3O2GdCwZUZctW+zOusfELAxn6Jz9hlx1dHl6p4T+HLi1d/UwAjsde8uVPecwOtnGjGQViOw19VaGhx7TuDECiMG0moE9r6l0xw7IS0P+FEE1tHot+xbB/DmwY3GjKO1CKwj67jJtfJWAW6c81itMcNoNQLrqrD/vFMKcM2blkVNRo2itXQA/+1XIx2F3aHuRS713dDannHAomHl49EpNz0a/cjSi4aNodV0ANvK1crKnLtW3w2t7RkILHex8nw73Or3aybEm0x39BqYsPo7HTcD8Ut3BgO3R6UZJqW+64pSX7/1iU+9viEC+2NnRpscdbcNK1v45oafZnj72yIE9sM+NTmLO5xms1x+snj6T7d6d1sE9r/ecfmanhq7a0X+qYdFXMX9+V7dmAbg3l3OCbE6Qt6NC6mXXi7o0/EZ+bUjCZ3uWivvvBt2Q1iJa6ueb/euC7Dm6V9ID+q1xIsLvefma0obLAZ8l7t1y+++j8mY482wtQB3m+KY4YkOXd+XNh9szJBnaA2feulfnaX7eJN545k9J1xbx/n27/oAa51+VvzZ7Z23a75Okbuv6f5PNr/4bUxzUsWswuLbtd+YNuCZXarsM5wR9cIQ5dBEeYYHOlwWIjVXiL7L7W+obh3n27/rA6xx+o2dPhciM1PrZS5YrgA2NyednrmmJLPOYk0teqBa+7C1AK8bk2Of4d0FX3ZUrqXMcF+HOmmGiaL+R/k9e+TUObcCDFjj9MtM0up4UaTWy/zuCl/ToN1P10VZRxwsKDg6whb+nPZhawIu71whz3BHxxoR/oZ8SJlh493TGnYGRYlyU0x1xS9ecW4FGrC26e81NUtfT3trvMrpK31NTw0/tHjJkVRb1OWsojWvJR7TPGxNwCI7S55hVor0aeqX8iE74IGEblGZaaLStF6Itx90bgUasLbpe/cIntYCePhIyXbcF6tnVQ0SsefSRmketjbgik6zIsTl4E5mc4ipVLgDJswT4tYNdlh1CwesafqNQTukDwaNX4ObLS2A7yleNfuUbDtly9bc87GW5v9/G1emDVjkdIsQhV1PVlVVxeYKa934rDqrEMWVla/dVivElNia031edW3V8+3e9QLWNv3MpG+LgzV+41vawtfUS8R9l/fxx3nnY5sHncxfMe4zrcPWCFwVFCEG5cqvrTVblU8nU4V4OeSmxEPSofqsYPOketdWPd/uXTdgTdO/kBZ0m9Z1cEFL4MekFXBsc/LJOatKnqzv1xj9ktZh85ksv2pCS+Cn5BVwybh6i3XkgTcXlic+rfUWCeyT8qRHcui1/gQ8z/OzmONtPc481hL4EWUFfHDJ4uMjbJEXn9mWovWCBPZJ8l367tlWTrbI8bbqGfVZz+bwlsCh0gr4iGRb+3TR+zOqk8QdTRovSGCfdBVDOetVTrp/16mecTzr2fx0mAewtErKlFbA1cliQM3vN30aMq5J2wUJrLuD/YKHZNo/Y07vcXPYbnEsMeTetUKY5/a913myemT30Dccx4TytuoZe/KKq3nCnFEtgVML7SvgFzdvm3ze0pSYMv+pJk0XJLDebGH5tq03Kvf3l6Fnxdf/td33csP2znuFOaW+WT3ZbMmr+ybsH8ox+Z1C9zjfzZ4MfPZt8QePb7KUFfAL0irp4W/++F7p4Cli+SlNFySw3nbfYhMiRbm/S7tvaxCipKv0iTIzT5i3uk6WBkvbhWOVY3Khe5zvZs/xnMm6lsDJjhXwyn+Pre/XMOql1VovSGC9/b2v9OI5+2fMdx4Mzji7/ufSgZmjhHmf6+SGG8PDw+8crhyTC93jfDd7DuCalsA9T85etUdeAaftX/bn8qFDq7VekMB6291LejFSXbXUPPK88wG133Vyr9n+HKN8TE56BKvvZk991vPhFsA/U1fAw5siL47fnKz5ggTWm+2ev4myIOX+PlBkbRiVZ7v31cadXb5S7m/1ZFPklIu2g7uVY299pHwNVt9NftX1pO6aFsBP2FfAtdk7100/M3DuSs0XJLDu9kdGp45V7u9dfbrcmvqtOJpwc3ih49GqnqzOMIf036ocGzRNefCpZ+RXXU/q2qKuBB4rr4DXyivghJqX1lgaNV+QwH7WxiuB4+wr4KmbPn3+giXnQ+23R2B/a/QVwGZpBfyJvAJO+eb1vCe8uDkC+1sXY92Beysr4LnvlY6pfyDam7+QIbDfdcr9h/5jpBWwvEoatf+VUK/++QAC+1+n49yA5RXw0j+XD1t3/1GvbozAftjliU7gqIXlI6QV8Oik8Ze8uy0C+2VfJDqAu8sr4GcnhO7w9pYI7Kd9MU4BvrfwvvE9n9jp/e0Q2G9r2r9qdua4aa/v0/VPQxAYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcGDAB6i488r0YMA5iP42hEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBg8CeHCR0SPw3yCA+Qi+dgQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDB6BwSMweAQGj8DgERg8AoNHYPAIDJ5PgOvLyg1tzBZjr3/KF3diO+UT4AWx2YaWPMbY69/pizuxnfIJ8NoCX9xK4DbQ6AG0EoF9EIHBIzB4BAaPwOARGDwCg0dg8AgMHoHBIzB4BAaPwOARGDwCg0dg8AgMHoHBIzB4BAaPwOARGDwCg0dg8LCBazfnJ/SfteF7HwwmsPqT8y8buj6UHZM1dMST8dljjR6UR3qBD42Jn/mP9MSP85PS9vpkQIFTjMnZX9Oz/xKx4VdLsnoYPSiP9AE3zRj8b2kzOV16cXhEbqNPhhQoDXQBT3xtS+Lx6M+mvTjA6EF5pAvYOmpes7xVgIV4+5E6H4woYHIDXrAp+VjMF5OmfnKL0YPySBdw7mL71gEsVvvfl6B2zA14zaNH++3KlB7GMUYPyiM9wLvSHDsqsHh2s87hBFJuwCOOWkqfnL8x+WhPowflkR7gYV87dpzANQn6RhNQuQEf+PV/Ri5a/ejRqAeNHpRHOoAvJKl7TmAxskLfcAIpN2DL4ceXrxx2xFIabvSgPNIBvP0P6p4L+I0PdY0moHIDPpqy4s1RBywH06CAP1yg7rmAVy7TN5xAyg148IeLM/bLD+N+Rg/KIx3An8xU91zASwr1DSeQcgP+aG72l1FlKSsKoJ7oOJ2q7rmAx/9H33ACKTfguc+WRB+THsa/jTN6UB7p+S56wAXHjhO4sX+zzvEEUG7AU7cPOB6/cW52CdYTHSumO3acwIvm6xxOIOUG/M+44/Hbpk8oibYYPSiP9AA3Ddpl31GBD8U26B5Q4OQGnHg8dmfui9LD+HajB+WRrqcqq6NKlK0D+GDk17rHE0C5AZfHFD8/VX4Y/9LoQXmk76dJVcl/lB+zCrCtIO6ET4YUKLkBR+0dN3Oz/DD+udGD8kjnz4Ntf4l8ZXfd5PSGr2ZbXv8hfX4WVwDvGzt/Y/LxmOJn/e8fNdT9Gx3WLZOS7r/noYnr630xnEAqPVHtJw/cN7BHQmj/vmHxRg/KI4h/TphdOwKDR2DwCAwegcHTANy7yzkhVkfIu3Eh8vfMC/p0fEZ+7UhCp7vWyjvvht0QViLEhfSgXkuEa4tRm6d/ML5zj7wmIYZI66ebDRywPS3A3aY4ZniiQ9f3pc0HGzPkGVrDp176V+d9Qmwybzyz54QQWfFnt3fe7tpi1Obp9828VBa6TAJeVldn/NpRC/DMLlX2Gc6IemGIcmiiPMMDHS4LkZorzWy5crCx0+dCZGY6tyC1dfoiRJp21iQJeLlhY3VLC/C6MTn2Gd5d8GXHavmQMsN9HeqkGSaK+h/l9+yRUyfKTOeFWBTp3ILU1umLGVmXjt35kQR8++0PfWbokOU0AZd3rpBnuKNjjQh/Qz6kzLDx7mkNO4OiRLkpprriF6+IvaZmId7r7dyC1Nbpiz3hJtNz0onNXx3Ov9Hw/6OTJmCRnSXPMCtF+jBVfm6izFAcSOgWlZkmKk3rhXj7QdxHcNumf+mW2XUVFsevM6W8atyA7WkDrug0K0JcDu5kNoeYSoU6Q7mEeULcukGZYWPQDuleyHRuQWrr9I+ZLkof19H248NeNmi0zrQBi5xuEaKw68mqqqrYXGGtG59VZxWiuLLytdtqhZgSW3O6j/Qhm5n0bXHwdtcWo7ZO3/qTuY2V0RNE7arT5966YbfRw9YIXBUUIQblyq+tNVunKb+OJMTLITclHpIO1WcFmydJC4MLaUG3KetgxxajNk9/V1SX7hnfiYuxNwf1Nf7XxPlMFngEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAwegcEjMHgEBo/A4BEYPAKDR2DwCAze/wCMbFD0pB/BRAAAAABJRU5ErkJggg==";
+
+ OpenCGAResult results = catalogManager.getFamilyManager().search(STUDY, new Query("id", "f1"), QueryOptions.empty(), token);
+ Family family = results.first();
+
+ assertTrue(family.getPedigreeGraph() != null);
+ assertEquals(base64, family.getPedigreeGraph().getBase64());
}
public void checkExecutionResult(ExecutionResult er) {
diff --git a/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile b/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile
index 1ee9b95fdee..5558259e3f5 100644
--- a/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile
+++ b/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile
@@ -15,13 +15,16 @@ RUN apt-get update -y && DEBIAN_FRONTEND="noninteractive" TZ="Europe/London" apt
libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev \
gnuplot pandoc samtools bcftools tabix fastqc plink1.9 bwa r-base && \
## Installation dependencies using R install.packages() is slower than apt-get but final size is 400GB smaller.
- R -e "install.packages(c('BiocManager', 'RCircos', 'nnls', 'ggplot2', 'jsonlite', 'optparse', 'knitr', 'configr', 'dplyr', 'rmarkdown', 'tidyr', 'httr', 'kinship2'))" && \
+ R -e "install.packages(c('BiocManager', 'RCircos', 'nnls', 'ggplot2', 'jsonlite', 'optparse', 'knitr', 'configr', 'dplyr', 'rmarkdown', 'tidyr', 'httr', 'kinship2', 'limSolve'))" && \
R -e "BiocManager::install('BiocStyle')" && \
- ## signature.tools.lib installation
+ ## signature.tools.lib installation \
R -e 'install.packages(c("devtools", "getopt"), repos="https://www.stats.bris.ac.uk/R/")' && \
- git clone https://github.com/Nik-Zainal-Group/signature.tools.lib.git /opt/opencga/signature.tools.lib && \
-# git checkout tags/v2.3.0 && \
- git checkout d3d73db497b5b83abc55d6cd55840c34ed542628 && \
+ git clone https://github.com/Nik-Zainal-Group/signature.tools.lib.git /opt/opencga/signature.tools.lib
+
+WORKDIR /opt/opencga/signature.tools.lib
+
+RUN git fetch origin --tags && \
+ git checkout tags/v2.4.1 && \
sed -i '/Mmusculus/d' DESCRIPTION && \
sed -i '/Cfamiliaris/d' DESCRIPTION && \
sed -i '/1000genomes/d' DESCRIPTION && \
diff --git a/opencga-app/app/misc/clients/rest_client_generator.py b/opencga-app/app/misc/clients/rest_client_generator.py
index 8239fa55709..bfb3b78489f 100644
--- a/opencga-app/app/misc/clients/rest_client_generator.py
+++ b/opencga-app/app/misc/clients/rest_client_generator.py
@@ -198,6 +198,9 @@ def get_method_name(self, endpoint, category):
# /{apiVersion}/analysis/clinical/{clinicalAnalysis}/interpretation/{interpretationId}/merge
elif self.all_arg([items[0], items[2]]) and not self.any_arg([items[1], items[3]]):
method_name = '_'.join([items[3], items[1]])
+ # /{apiVersion}/admin/users/{user}/groups/update
+ elif self.all_arg([items[1]]) and not self.any_arg([items[0], items[2], items[3]]):
+ method_name = '_'.join([items[0], items[3], items[2]])
elif len(items) == 5:
# e.g. /{apiVersion}/files/{file}/annotationSets/{annotationSet}/annotations/update
if self.all_arg([items[0], items[2]]) and not self.any_arg([items[1], items[3], items[4]]):
diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml
index c0bc97362b9..b787e5d11d2 100644
--- a/opencga-app/pom.xml
+++ b/opencga-app/pom.xml
@@ -22,7 +22,7 @@
org.opencb.opencgaopencga
- 2.10.0-SNAPSHOT
+ 2.11.0-SNAPSHOT../pom.xml
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java
index fa69afab38d..b023618b21f 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java
@@ -1,5 +1,5 @@
/*
-* Copyright 2015-2023-04-18 OpenCB
+* Copyright 2015-2023-09-08 OpenCB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -70,7 +70,7 @@ public abstract class OpenCgaCompleter implements Completer {
.map(Candidate::new)
.collect(toList());
- private List adminList = asList( "audit-group-by","catalog-index-stats","catalog-install","catalog-jwt","users-create","users-import","users-search","users-sync")
+ private List adminList = asList( "audit-group-by","catalog-index-stats","catalog-install","catalog-jwt","users-create","users-import","users-search","users-sync","update-groups-users")
.stream()
.map(Candidate::new)
.collect(toList());
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java
index c18998aabcc..93ae1e2ed26 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java
@@ -1,5 +1,5 @@
/*
-* Copyright 2015-2023-04-18 OpenCB
+* Copyright 2015-2023-09-08 OpenCB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -188,6 +188,7 @@ public OpencgaCliOptionsParser() {
adminSubCommands.addCommand("users-import", adminCommandOptions.importUsersCommandOptions);
adminSubCommands.addCommand("users-search", adminCommandOptions.searchUsersCommandOptions);
adminSubCommands.addCommand("users-sync", adminCommandOptions.syncUsersCommandOptions);
+ adminSubCommands.addCommand("update-groups-users", adminCommandOptions.usersUpdateGroupsCommandOptions);
individualsCommandOptions = new IndividualsCommandOptions(commonCommandOptions, jCommander);
jCommander.addCommand("individuals", individualsCommandOptions);
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java
index 9ab6c51ed00..a16efb4df47 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java
@@ -19,11 +19,13 @@
import org.opencb.opencga.app.cli.main.options.AdminCommandOptions;
import java.util.Map;
+import org.opencb.opencga.catalog.utils.ParamUtils.AddRemoveAction;
import org.opencb.opencga.core.models.admin.GroupSyncParams;
import org.opencb.opencga.core.models.admin.InstallationParams;
import org.opencb.opencga.core.models.admin.JWTParams;
import org.opencb.opencga.core.models.admin.UserCreateParams;
import org.opencb.opencga.core.models.admin.UserImportParams;
+import org.opencb.opencga.core.models.admin.UserUpdateGroup;
import org.opencb.opencga.core.models.common.Enums.Resource;
import org.opencb.opencga.core.models.sample.Sample;
import org.opencb.opencga.core.models.study.Group;
@@ -87,6 +89,9 @@ public void execute() throws Exception {
case "users-sync":
queryResponse = syncUsers();
break;
+ case "update-groups-users":
+ queryResponse = usersUpdateGroups();
+ break;
default:
logger.error("Subcommand not valid");
break;
@@ -288,4 +293,35 @@ private RestResponse syncUsers() throws Exception {
}
return openCGAClient.getAdminClient().syncUsers(groupSyncParams);
}
+
+ private RestResponse usersUpdateGroups() throws Exception {
+ logger.debug("Executing usersUpdateGroups in Admin command line");
+
+ AdminCommandOptions.UsersUpdateGroupsCommandOptions commandOptions = adminCommandOptions.usersUpdateGroupsCommandOptions;
+
+ ObjectMap queryParams = new ObjectMap();
+ queryParams.putIfNotNull("action", commandOptions.action);
+
+
+ UserUpdateGroup userUpdateGroup = null;
+ if (commandOptions.jsonDataModel) {
+ userUpdateGroup = new UserUpdateGroup();
+ RestResponse res = new RestResponse<>();
+ res.setType(QueryType.VOID);
+ PrintUtils.println(getObjectAsJSON(userUpdateGroup));
+ return res;
+ } else if (commandOptions.jsonFile != null) {
+ userUpdateGroup = JacksonUtils.getDefaultObjectMapper()
+ .readValue(new java.io.File(commandOptions.jsonFile), UserUpdateGroup.class);
+ } else {
+ ObjectMap beanParams = new ObjectMap();
+ putNestedIfNotNull(beanParams, "studyIds",commandOptions.studyIds, true);
+ putNestedIfNotNull(beanParams, "groupIds",commandOptions.groupIds, true);
+
+ userUpdateGroup = JacksonUtils.getDefaultObjectMapper().copy()
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true)
+ .readValue(beanParams.toJson(), UserUpdateGroup.class);
+ }
+ return openCGAClient.getAdminClient().usersUpdateGroups(commandOptions.user, userUpdateGroup, queryParams);
+ }
}
\ No newline at end of file
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java
index 408f28841f3..78ed32b92dc 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java
@@ -197,7 +197,7 @@ private RestResponse configureCellbase() throws Exception {
putNestedIfNotEmpty(beanParams, "url",commandOptions.url, true);
putNestedIfNotEmpty(beanParams, "version",commandOptions.version, true);
putNestedIfNotEmpty(beanParams, "dataRelease",commandOptions.dataRelease, true);
- putNestedIfNotEmpty(beanParams, "token",commandOptions.token, true);
+ putNestedIfNotEmpty(beanParams, "apiKey",commandOptions.apiKey, true);
cellBaseConfiguration = JacksonUtils.getDefaultObjectMapper().copy()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java
index 7facd50d4d6..2ed3593e612 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java
@@ -123,7 +123,7 @@ private RestResponse create() throws Exception {
putNestedIfNotEmpty(beanParams, "cellbase.url",commandOptions.cellbaseUrl, true);
putNestedIfNotEmpty(beanParams, "cellbase.version",commandOptions.cellbaseVersion, true);
putNestedIfNotEmpty(beanParams, "cellbase.dataRelease",commandOptions.cellbaseDataRelease, true);
- putNestedIfNotEmpty(beanParams, "cellbase.token",commandOptions.cellbaseToken, true);
+ putNestedIfNotEmpty(beanParams, "cellbase.apiKey",commandOptions.cellbaseApiKey, true);
putNestedIfNotNull(beanParams, "attributes",commandOptions.attributes, true);
projectCreateParams = JacksonUtils.getDefaultObjectMapper().copy()
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java
index ae9c1397750..f246d8a36d8 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java
@@ -41,6 +41,7 @@ public class AdminCommandOptions {
public ImportUsersCommandOptions importUsersCommandOptions;
public SearchUsersCommandOptions searchUsersCommandOptions;
public SyncUsersCommandOptions syncUsersCommandOptions;
+ public UsersUpdateGroupsCommandOptions usersUpdateGroupsCommandOptions;
public AdminCommandOptions(CommonCommandOptions commonCommandOptions, JCommander jCommander) {
@@ -55,6 +56,7 @@ public AdminCommandOptions(CommonCommandOptions commonCommandOptions, JCommander
this.importUsersCommandOptions = new ImportUsersCommandOptions();
this.searchUsersCommandOptions = new SearchUsersCommandOptions();
this.syncUsersCommandOptions = new SyncUsersCommandOptions();
+ this.usersUpdateGroupsCommandOptions = new UsersUpdateGroupsCommandOptions();
}
@@ -278,4 +280,30 @@ public class SyncUsersCommandOptions {
}
+ @Parameters(commandNames = {"update-groups-users"}, commandDescription ="Add or remove users from existing groups")
+ public class UsersUpdateGroupsCommandOptions {
+
+ @ParametersDelegate
+ public CommonCommandOptions commonOptions = commonCommandOptions;
+
+ @Parameter(names = {"--json-file"}, description = "File with the body data in JSON format. Note, that using this parameter will ignore all the other parameters.", required = false, arity = 1)
+ public String jsonFile;
+
+ @Parameter(names = {"--json-data-model"}, description = "Show example of file structure for body data.", help = true, arity = 0)
+ public Boolean jsonDataModel = false;
+
+ @Parameter(names = {"--user", "-u"}, description = "User ID", required = true, arity = 1)
+ public String user;
+
+ @Parameter(names = {"--action"}, description = "Action to be performed: ADD or REMOVE user to/from groups", required = false, arity = 1)
+ public String action = "ADD";
+
+ @Parameter(names = {"--study-ids"}, description = "The body web service studyIds parameter", required = false, arity = 1)
+ public String studyIds;
+
+ @Parameter(names = {"--group-ids"}, description = "The body web service groupIds parameter", required = false, arity = 1)
+ public String groupIds;
+
+ }
+
}
\ No newline at end of file
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java
index 48261ca8a3c..95636ad4c3f 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java
@@ -275,7 +275,7 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of Clinical Analysis UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -284,7 +284,7 @@ public class DistinctCommandOptions {
@Parameter(names = {"--type"}, description = "Clinical Analysis type", required = false, arity = 1)
public String type;
- @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder", required = false, arity = 1)
+ @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorder;
@Parameter(names = {"--files"}, description = "Clinical Analysis files", required = false, arity = 1)
@@ -364,7 +364,7 @@ public class DistinctInterpretationCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of Interpretation UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -376,7 +376,7 @@ public class DistinctInterpretationCommandOptions {
@Parameter(names = {"--analyst-id"}, description = "Analyst ID", required = false, arity = 1)
public String analystId;
- @Parameter(names = {"--method-name"}, description = "Interpretation method name", required = false, arity = 1)
+ @Parameter(names = {"--method-name"}, description = "Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String methodName;
@Parameter(names = {"--panels"}, description = "Interpretation panels", required = false, arity = 1)
@@ -432,7 +432,7 @@ public class SearchInterpretationCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of Interpretation UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -444,7 +444,7 @@ public class SearchInterpretationCommandOptions {
@Parameter(names = {"--analyst-id"}, description = "Analyst ID", required = false, arity = 1)
public String analystId;
- @Parameter(names = {"--method-name"}, description = "Interpretation method name", required = false, arity = 1)
+ @Parameter(names = {"--method-name"}, description = "Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String methodName;
@Parameter(names = {"--panels"}, description = "Interpretation panels", required = false, arity = 1)
@@ -1488,7 +1488,7 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of Clinical Analysis UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -1497,7 +1497,7 @@ public class SearchCommandOptions {
@Parameter(names = {"--type"}, description = "Clinical Analysis type", required = false, arity = 1)
public String type;
- @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder", required = false, arity = 1)
+ @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorder;
@Parameter(names = {"--files"}, description = "Clinical Analysis files", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java
index fc752daaf98..0b37bec1c1c 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java
@@ -925,8 +925,8 @@ public class RunGwasCommandOptions {
@Parameter(names = {"--phenotype"}, description = "The body web service phenotype parameter", required = false, arity = 1)
public String phenotype;
- @Parameter(names = {"--index"}, description = "The body web service index parameter", required = false, arity = 1)
- public Boolean index;
+ @Parameter(names = {"--index"}, description = "The body web service index parameter", required = false, help = true, arity = 0)
+ public boolean index = false;
@Parameter(names = {"--index-score-id"}, description = "The body web service indexScoreId parameter", required = false, arity = 1)
public String indexScoreId;
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java
index 13373914df4..03f08e58c9e 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java
@@ -242,10 +242,10 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--uuid"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1)
@@ -334,7 +334,7 @@ public class GenerateCommandOptions {
@Parameter(names = {"--status"}, description = "Filter by status", required = false, arity = 1)
public String status;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
@Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1)
@@ -411,10 +411,10 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--uuid"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java
index c6e353a7dca..1f0f1cbb9bc 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java
@@ -157,37 +157,37 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of panel UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--internal-status"}, description = "Filter by internal status", required = false, arity = 1)
public String internalStatus;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
- @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids", required = false, arity = 1)
+ @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String variants;
- @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids", required = false, arity = 1)
+ @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String genes;
@Parameter(names = {"--source"}, description = "Comma separated list of source ids or names.", required = false, arity = 1)
public String source;
- @Parameter(names = {"--regions"}, description = "Comma separated list of regions", required = false, arity = 1)
+ @Parameter(names = {"--regions"}, description = "Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String regions;
- @Parameter(names = {"--categories"}, description = "Comma separated list of category names", required = false, arity = 1)
+ @Parameter(names = {"--categories"}, description = "Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String categories;
- @Parameter(names = {"--tags"}, description = "Panel tags", required = false, arity = 1)
+ @Parameter(names = {"--tags"}, description = "Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String tags;
@Parameter(names = {"--deleted"}, description = "Boolean to retrieve deleted entries", required = false, help = true, arity = 0)
@@ -275,37 +275,37 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of panel UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--internal-status"}, description = "Filter by internal status", required = false, arity = 1)
public String internalStatus;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
- @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids", required = false, arity = 1)
+ @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String variants;
- @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids", required = false, arity = 1)
+ @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String genes;
@Parameter(names = {"--source"}, description = "Comma separated list of source ids or names.", required = false, arity = 1)
public String source;
- @Parameter(names = {"--regions"}, description = "Comma separated list of regions", required = false, arity = 1)
+ @Parameter(names = {"--regions"}, description = "Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String regions;
- @Parameter(names = {"--categories"}, description = "Comma separated list of category names", required = false, arity = 1)
+ @Parameter(names = {"--categories"}, description = "Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String categories;
- @Parameter(names = {"--tags"}, description = "Panel tags", required = false, arity = 1)
+ @Parameter(names = {"--tags"}, description = "Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String tags;
@Parameter(names = {"--deleted"}, description = "Boolean to retrieve deleted entries", required = false, help = true, arity = 0)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java
index 9530f60074d..3c57ef335ba 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java
@@ -252,10 +252,10 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--uuid"}, description = "Comma separated list family UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -270,10 +270,10 @@ public class DistinctCommandOptions {
@Parameter(names = {"--samples"}, description = "Comma separated list of member's samples", required = false, arity = 1)
public String samples;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
@Parameter(names = {"--creation-date", "--cd"}, description = "Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805", required = false, arity = 1)
@@ -335,10 +335,10 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--uuid"}, description = "Comma separated list family UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -353,10 +353,10 @@ public class SearchCommandOptions {
@Parameter(names = {"--samples"}, description = "Comma separated list of member's samples", required = false, arity = 1)
public String samples;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
@Parameter(names = {"--creation-date", "--cd"}, description = "Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java
index d1d4e0bf0a8..5ea18955f58 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java
@@ -327,19 +327,19 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list file UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
- @Parameter(names = {"--path"}, description = "Comma separated list of paths", required = false, arity = 1)
+ @Parameter(names = {"--path"}, description = "Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String path;
- @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris", required = false, arity = 1)
+ @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String uri;
@Parameter(names = {"--type"}, description = "File type, either FILE or DIRECTORY", required = false, arity = 1)
@@ -378,7 +378,7 @@ public class DistinctCommandOptions {
@Parameter(names = {"--description"}, description = "Description", required = false, arity = 1)
public String description;
- @Parameter(names = {"--tags"}, description = "Tags", required = false, arity = 1)
+ @Parameter(names = {"--tags"}, description = "Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String tags;
@Parameter(names = {"--size"}, description = "File size", required = false, arity = 1)
@@ -609,19 +609,19 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list file UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
- @Parameter(names = {"--path"}, description = "Comma separated list of paths", required = false, arity = 1)
+ @Parameter(names = {"--path"}, description = "Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String path;
- @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris", required = false, arity = 1)
+ @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String uri;
@Parameter(names = {"--type"}, description = "File type, either FILE or DIRECTORY", required = false, arity = 1)
@@ -660,7 +660,7 @@ public class SearchCommandOptions {
@Parameter(names = {"--description"}, description = "Description", required = false, arity = 1)
public String description;
- @Parameter(names = {"--tags"}, description = "Tags", required = false, arity = 1)
+ @Parameter(names = {"--tags"}, description = "Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String tags;
@Parameter(names = {"--size"}, description = "File size", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java
index a9e20c70232..d0238597f52 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java
@@ -350,13 +350,13 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list individual UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--family-ids"}, description = "Comma separated list of family ids the individuals may belong to.", required = false, arity = 1)
@@ -374,22 +374,22 @@ public class DistinctCommandOptions {
@Parameter(names = {"--sex"}, description = "Individual sex", required = false, arity = 1)
public String sex;
- @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity", required = false, arity = 1)
+ @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String ethnicity;
@Parameter(names = {"--date-of-birth"}, description = "Individual date of birth", required = false, arity = 1)
public String dateOfBirth;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
- @Parameter(names = {"--population-name"}, description = "Population name", required = false, arity = 1)
+ @Parameter(names = {"--population-name"}, description = "Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String populationName;
- @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name", required = false, arity = 1)
+ @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String populationSubpopulation;
@Parameter(names = {"--karyotypic-sex"}, description = "Individual karyotypic sex", required = false, arity = 1)
@@ -457,13 +457,13 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list individual UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String name;
@Parameter(names = {"--father"}, description = "Father ID, name or UUID", required = false, arity = 1)
@@ -484,19 +484,19 @@ public class SearchCommandOptions {
@Parameter(names = {"--date-of-birth"}, description = "Individual date of birth", required = false, arity = 1)
public String dateOfBirth;
- @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity", required = false, arity = 1)
+ @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String ethnicity;
- @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1)
+ @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String disorders;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
- @Parameter(names = {"--population-name"}, description = "Population name", required = false, arity = 1)
+ @Parameter(names = {"--population-name"}, description = "Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String populationName;
- @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name", required = false, arity = 1)
+ @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String populationSubpopulation;
@Parameter(names = {"--karyotypic-sex"}, description = "Individual karyotypic sex", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java
index 44eac65bf28..04b6caae03c 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java
@@ -241,13 +241,13 @@ public class DistinctCommandOptions {
@Parameter(names = {"--other-studies"}, description = "Flag indicating the entries being queried can belong to any related study, not just the primary one.", required = false, help = true, arity = 0)
public boolean otherStudies = false;
- @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of job UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job", required = false, arity = 1)
+ @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String toolId;
@Parameter(names = {"--tool-type"}, description = "Tool type executed by the job [OPERATION, ANALYSIS]", required = false, arity = 1)
@@ -362,13 +362,13 @@ public class SearchCommandOptions {
@Parameter(names = {"--other-studies"}, description = "Flag indicating the entries being queried can belong to any related study, not just the primary one.", required = false, help = true, arity = 0)
public boolean otherStudies = false;
- @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list of job UUIDs up to a maximum of 100", required = false, arity = 1)
public String uuid;
- @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job", required = false, arity = 1)
+ @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String toolId;
@Parameter(names = {"--tool-type"}, description = "Tool type executed by the job [OPERATION, ANALYSIS]", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java
index c3c89bf4b1a..d0b8a26d019 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java
@@ -128,8 +128,8 @@ public class ConfigureCellbaseCommandOptions {
@Parameter(names = {"--data-release"}, description = "CellBase data release version to be used. If empty, will use the active one", required = false, arity = 1)
public String dataRelease;
- @Parameter(names = {"--token"}, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...", required = false, arity = 1)
- public String token;
+ @Parameter(names = {"--api-key"}, description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.", required = false, arity = 1)
+ public String apiKey;
}
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java
index 1f7a3782e45..a2eca8cb958 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java
@@ -110,8 +110,8 @@ public class CreateCommandOptions {
@Parameter(names = {"--cellbase-data-release"}, description = "CellBase data release version to be used. If empty, will use the active one", required = false, arity = 1)
public String cellbaseDataRelease;
- @Parameter(names = {"--cellbase-token"}, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...", required = false, arity = 1)
- public String cellbaseToken;
+ @Parameter(names = {"--cellbase-api-key"}, description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.", required = false, arity = 1)
+ public String cellbaseApiKey;
@DynamicParameter(names = {"--attributes"}, description = "The body web service attributes parameter. Use: --attributes key=value", required = false)
public java.util.Map attributes = new HashMap<>(); //Dynamic parameters must be initialized;
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java
index 0099fbf2a90..8cfc8fed346 100644
--- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java
@@ -305,7 +305,7 @@ public class DistinctCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list sample UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -356,7 +356,7 @@ public class DistinctCommandOptions {
@Parameter(names = {"--collection-method"}, description = "Collection method", required = false, arity = 1)
public String collectionMethod;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
@Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1)
@@ -468,7 +468,7 @@ public class SearchCommandOptions {
@Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1)
public String study;
- @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100", required = false, arity = 1)
+ @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String id;
@Parameter(names = {"--uuid"}, description = "Comma separated list sample UUIDs up to a maximum of 100", required = false, arity = 1)
@@ -519,7 +519,7 @@ public class SearchCommandOptions {
@Parameter(names = {"--collection-method"}, description = "Collection method", required = false, arity = 1)
public String collectionMethod;
- @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1)
+ @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1)
public String phenotypes;
@Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1)
diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java b/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java
new file mode 100644
index 00000000000..72fe8e6499e
--- /dev/null
+++ b/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java
@@ -0,0 +1,50 @@
+package org.opencb.opencga.app.migrations.v2_9_0.catalog;
+
+import com.mongodb.client.model.Projections;
+import com.mongodb.client.model.UpdateOneModel;
+import com.mongodb.client.model.Updates;
+import org.bson.Document;
+import org.opencb.opencga.catalog.db.mongodb.MongoDBAdaptorFactory;
+import org.opencb.opencga.catalog.migration.Migration;
+import org.opencb.opencga.catalog.migration.MigrationTool;
+
+import java.util.List;
+
+import static com.mongodb.client.model.Filters.eq;
+
+@Migration(id = "rename_cellbase_token_2_api_key" ,
+ description = "Rename CellBase Token to ApiKey",
+ version = "2.9.0",
+ domain = Migration.MigrationDomain.CATALOG,
+ language = Migration.MigrationLanguage.JAVA,
+ date = 20230829
+)
+public class RenameCellBaseToken2ApiKey extends MigrationTool {
+
+ @Override
+ protected void run() throws Exception {
+
+ migrateCollection(MongoDBAdaptorFactory.USER_COLLECTION,
+ new Document("projects.id", new Document("$exists", true)),
+ Projections.include("_id", "projects"),
+ (userDocument, bulk) -> {
+ List projects = userDocument.getList("projects", Document.class);
+ for (int i = 0; i < projects.size(); i++) {
+ Document project = projects.get(i);
+ Document cellbase = project.get("cellbase", Document.class);
+ if (cellbase != null) {
+ String token = cellbase.getString("token");
+ if (token != null) {
+ bulk.add(new UpdateOneModel<>(
+ eq("_id", userDocument.get("_id")),
+ Updates.combine(
+ Updates.set("projects." + i + ".cellbase.apiKey", token),
+ Updates.unset("projects." + i + ".cellbase.token")
+ )));
+ }
+ }
+ }
+ });
+ }
+
+}
diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml
index c911504528d..fac7d8e548a 100644
--- a/opencga-catalog/pom.xml
+++ b/opencga-catalog/pom.xml
@@ -23,7 +23,7 @@
org.opencb.opencgaopencga
- 2.10.0-SNAPSHOT
+ 2.11.0-SNAPSHOT../pom.xml
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/MongoDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/MongoDBAdaptor.java
index 376c835b8a8..a3b47c037dc 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/MongoDBAdaptor.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/MongoDBAdaptor.java
@@ -376,6 +376,41 @@ protected OpenCGAResult groupBy(MongoDBCollection collection, Bson query, List(aggregate);
}
+ public static QueryOptions addPrefixInOptions(QueryOptions options, String prefix) {
+ if (options == null) {
+ return null;
+ }
+
+ QueryOptions queryOptions = new QueryOptions(options);
+
+ if (queryOptions.containsKey(QueryOptions.INCLUDE)) {
+ Set includeList = new HashSet<>(queryOptions.getAsStringList(QueryOptions.INCLUDE));
+ List newInclude = new ArrayList<>(includeList.size());
+ for (String key : includeList) {
+ if (key.startsWith(prefix)) {
+ newInclude.add(key);
+ } else {
+ newInclude.add(prefix + key);
+ }
+ }
+ queryOptions.put(QueryOptions.INCLUDE, newInclude);
+ }
+ if (queryOptions.containsKey(QueryOptions.EXCLUDE)) {
+ Set excludeList = new HashSet<>(queryOptions.getAsStringList(QueryOptions.EXCLUDE));
+ List newExclude = new ArrayList<>(excludeList.size());
+ for (String key : excludeList) {
+ if (key.startsWith(prefix)) {
+ newExclude.add(key);
+ } else {
+ newExclude.add(prefix + key);
+ }
+ }
+ queryOptions.put(QueryOptions.EXCLUDE, newExclude);
+ }
+
+ return queryOptions;
+ }
+
/**
* Filter QueryOptions object to ensure the keys provided are always included.
*
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/ProjectMongoDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/ProjectMongoDBAdaptor.java
index 297ff31f27e..1474f1ed4e1 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/ProjectMongoDBAdaptor.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/ProjectMongoDBAdaptor.java
@@ -771,8 +771,10 @@ private MongoDBIterator getMongoCursor(ClientSession clientSession, Qu
aggregates.add(Aggregates.match(bsonQuery));
// Check include
- QueryOptions qOptions = options != null ? new QueryOptions(options) : new QueryOptions();
- List includeList = new ArrayList<>();
+ QueryOptions qOptions = filterQueryOptions(options, Arrays.asList(QueryParams.UID.key(), QueryParams.FQN.key()));
+ qOptions = addPrefixInOptions(qOptions, "projects.");
+
+ /*List includeList = new ArrayList<>();
if (options != null && options.get(QueryOptions.INCLUDE) != null) {
List optionsAsStringList = options.getAsStringList(QueryOptions.INCLUDE);
includeList.addAll(optionsAsStringList.stream().collect(Collectors.toList()));
@@ -792,6 +794,7 @@ private MongoDBIterator getMongoCursor(ClientSession clientSession, Qu
}
qOptions.put(QueryOptions.INCLUDE, includeList);
}
+ */
for (Bson aggregate : aggregates) {
logger.debug("Get project: Aggregate : {}", aggregate.toBsonDocument());
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java
index 34510e96868..d2e01a601be 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java
@@ -318,10 +318,10 @@ Study insert(ClientSession clientSession, Project project, Study study)
}
@Override
- public OpenCGAResult getAllStudiesInProject(long projectId, QueryOptions options) throws CatalogDBException {
+ public OpenCGAResult getAllStudiesInProject(long projectUid, QueryOptions options) throws CatalogDBException {
long startTime = startQuery();
- dbAdaptorFactory.getCatalogProjectDbAdaptor().checkId(projectId);
- Query query = new Query(QueryParams.PROJECT_ID.key(), projectId);
+ dbAdaptorFactory.getCatalogProjectDbAdaptor().checkId(projectUid);
+ Query query = new Query(QueryParams.PROJECT_UID.key(), projectUid);
return endQuery(startTime, get(query, options));
}
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/iterators/ProjectCatalogMongoDBIterator.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/iterators/ProjectCatalogMongoDBIterator.java
index 52aa62fb1e0..0cc8fc56180 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/iterators/ProjectCatalogMongoDBIterator.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/iterators/ProjectCatalogMongoDBIterator.java
@@ -25,6 +25,7 @@ public class ProjectCatalogMongoDBIterator extends CatalogMongoDBIterator
private final String user;
private final QueryOptions options;
+ private boolean includeStudyInfo;
private final StudyMongoDBAdaptor studyDBAdaptor;
private QueryOptions studyQueryOptions;
@@ -44,6 +45,7 @@ public ProjectCatalogMongoDBIterator(MongoDBIterator mongoCursor, Clie
this.studyDBAdaptor = dbAdaptorFactory.getCatalogStudyDBAdaptor();
this.options = options != null ? new QueryOptions(options) : new QueryOptions();
+ this.includeStudyInfo = includeStudyInfo();
this.studyQueryOptions = createInnerQueryOptionsForVersionedEntity(this.options, ProjectDBAdaptor.QueryParams.STUDIES.key(), false);
this.studyQueryOptions = MongoDBAdaptor.filterQueryOptions(this.studyQueryOptions,
Collections.singletonList(MongoDBAdaptor.PRIVATE_PROJECT));
@@ -90,8 +92,7 @@ private void fetchNextBatch() {
projectListBuffer.add(projectDocument);
counter++;
- if (options == null || !options.containsKey(QueryOptions.EXCLUDE)
- || !options.getAsStringList(QueryOptions.EXCLUDE).contains("projects.studies")) {
+ if (includeStudyInfo) {
projectUidSet.add(projectDocument.get(UID, Long.class));
}
}
@@ -130,4 +131,29 @@ private void fetchNextBatch() {
}
}
}
+
+ private boolean includeStudyInfo() {
+ if (options == null) {
+ return true;
+ }
+ if (options.containsKey(QueryOptions.EXCLUDE)) {
+ List list = options.getAsStringList(QueryOptions.EXCLUDE);
+ for (String exclude : list) {
+ if (exclude.equals("studies") || exclude.equals("projects.studies")) {
+ return false;
+ }
+ }
+ return true;
+ } else if (options.containsKey(QueryOptions.INCLUDE)) {
+ List list = options.getAsStringList(QueryOptions.INCLUDE);
+ for (String include : list) {
+ if (include.startsWith("studies") || include.startsWith("projects.studies")) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return true;
+ }
+ }
}
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/ProjectManager.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/ProjectManager.java
index 249d14ab057..7900d958a42 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/ProjectManager.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/ProjectManager.java
@@ -610,7 +610,9 @@ public OpenCGAResult incrementRelease(String projectStr, String session
int currentRelease = project.getCurrentRelease();
// Check current release has been used at least in one study or file or cohort or individual...
- List allStudiesInProject = project.getStudies();
+ QueryOptions studyOptions = keepFieldInQueryOptions(StudyManager.INCLUDE_STUDY_IDS, StudyDBAdaptor.QueryParams.RELEASE.key());
+ OpenCGAResult studyResult = studyDBAdaptor.getAllStudiesInProject(projectUid, studyOptions);
+ List allStudiesInProject = studyResult.getResults();
if (allStudiesInProject.isEmpty()) {
throw new CatalogException("Cannot increment current release number. No studies found for release " + currentRelease);
}
diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/utils/PedigreeGraphUtils.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/utils/PedigreeGraphUtils.java
index 62394a6e562..b56966a44e8 100644
--- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/utils/PedigreeGraphUtils.java
+++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/utils/PedigreeGraphUtils.java
@@ -120,7 +120,7 @@ private static File createPedFile(Family family, Path outDir) throws FileNotFoun
StringBuilder sbDisorders = new StringBuilder();
if (CollectionUtils.isNotEmpty(disorders) && disorders.size() > 1) {
for (Disorder disorder : family.getDisorders()) {
- sbDisorders.append("affected.").append(disorder.getId()).append("\t");
+ sbDisorders.append("\"affected.").append(disorder.getId()).append("\"\t");
}
} else {
sbDisorders.append("affected").append("\t");
diff --git a/opencga-catalog/src/test/java/org/opencb/opencga/catalog/managers/ProjectManagerTest.java b/opencga-catalog/src/test/java/org/opencb/opencga/catalog/managers/ProjectManagerTest.java
index 2490163b781..611a3a6204b 100644
--- a/opencga-catalog/src/test/java/org/opencb/opencga/catalog/managers/ProjectManagerTest.java
+++ b/opencga-catalog/src/test/java/org/opencb/opencga/catalog/managers/ProjectManagerTest.java
@@ -17,6 +17,7 @@
package org.opencb.opencga.catalog.managers;
import com.fasterxml.jackson.core.JsonProcessingException;
+import org.apache.commons.collections4.CollectionUtils;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -161,6 +162,42 @@ public void searchProjects() throws CatalogException {
}
+ @Test
+ public void searchProjectsUsingInclude() throws CatalogException {
+ OpenCGAResult projects = catalogManager.getProjectManager().search(new Query(),
+ new QueryOptions(QueryOptions.INCLUDE, ProjectDBAdaptor.QueryParams.ID.key()), sessionIdUser);
+ assertEquals(1, projects.getNumResults());
+ for (Project project : projects.getResults()) {
+ assertNotNull(project.getId());
+ assertNull(project.getDescription());
+ assertNull(project.getName());
+ assertNull(project.getStudies());
+ assertTrue(CollectionUtils.isEmpty(project.getStudies()));
+ }
+
+ projects = catalogManager.getProjectManager().search(new Query(),
+ new QueryOptions(QueryOptions.INCLUDE, ProjectDBAdaptor.QueryParams.STUDIES.key()), sessionIdUser);
+ assertEquals(1, projects.getNumResults());
+ for (Project project : projects.getResults()) {
+ assertNull(project.getId());
+ assertNull(project.getDescription());
+ assertNull(project.getName());
+ assertNotNull(project.getStudies());
+ assertTrue(CollectionUtils.isNotEmpty(project.getStudies()));
+ }
+
+ projects = catalogManager.getProjectManager().search(new Query(),
+ new QueryOptions(QueryOptions.EXCLUDE, ProjectDBAdaptor.QueryParams.NAME.key()), sessionIdUser);
+ assertEquals(1, projects.getNumResults());
+ for (Project project : projects.getResults()) {
+ assertNotNull(project.getId());
+ assertNull(project.getName());
+ assertNotNull(project.getDescription());
+ assertNotNull(project.getStudies());
+ assertFalse(CollectionUtils.isEmpty(project.getStudies()));
+ }
+ }
+
@Test
public void getSharedProjects() throws CatalogException {
try {
diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml
index 25c7042ce63..22a563296b0 100644
--- a/opencga-client/pom.xml
+++ b/opencga-client/pom.xml
@@ -22,7 +22,7 @@
org.opencb.opencgaopencga
- 2.10.0-SNAPSHOT
+ 2.11.0-SNAPSHOT../pom.xml
diff --git a/opencga-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R
index 11b7d569372..52e55fc3918 100644
--- a/opencga-client/src/main/R/R/Admin-methods.R
+++ b/opencga-client/src/main/R/R/Admin-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -28,6 +28,7 @@
#' | importUsers | /{apiVersion}/admin/users/import | body[*] |
#' | searchUsers | /{apiVersion}/admin/users/search | include, exclude, limit, skip, count, user, account, authenticationId |
#' | syncUsers | /{apiVersion}/admin/users/sync | body[*] |
+#' | usersUpdateGroups | /{apiVersion}/admin/users/{user}/groups/update | user[*], action, body[*] |
#'
#' @md
#' @seealso \url{http://docs.opencb.org/display/opencga/Using+OpenCGA} and the RESTful API documentation
@@ -35,7 +36,7 @@
#' [*]: Required parameter
#' @export
-setMethod("adminClient", "OpencgaR", function(OpencgaR, endpointName, params=NULL, ...) {
+setMethod("adminClient", "OpencgaR", function(OpencgaR, user, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/admin/audit/groupBy:
@@ -100,5 +101,13 @@ setMethod("adminClient", "OpencgaR", function(OpencgaR, endpointName, params=NUL
#' @param data JSON containing the parameters.
syncUsers=fetchOpenCGA(object=OpencgaR, category="admin", categoryId=NULL, subcategory="users",
subcategoryId=NULL, action="sync", params=params, httpMethod="POST", as.queryParam=NULL, ...),
+
+ #' @section Endpoint /{apiVersion}/admin/users/{user}/groups/update:
+ #' Add or remove users from existing groups.
+ #' @param user User ID.
+ #' @param action Action to be performed: ADD or REMOVE user to/from groups. Allowed values: ['ADD REMOVE']
+ #' @param data JSON containing the parameters.
+ usersUpdateGroups=fetchOpenCGA(object=OpencgaR, category="admin/users", categoryId=user, subcategory="groups",
+ subcategoryId=NULL, action="update", params=params, httpMethod="POST", as.queryParam=NULL, ...),
)
})
\ No newline at end of file
diff --git a/opencga-client/src/main/R/R/Alignment-methods.R b/opencga-client/src/main/R/R/Alignment-methods.R
index 00be80c77b7..66dcf64a9a4 100644
--- a/opencga-client/src/main/R/R/Alignment-methods.R
+++ b/opencga-client/src/main/R/R/Alignment-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
diff --git a/opencga-client/src/main/R/R/AllGenerics.R b/opencga-client/src/main/R/R/AllGenerics.R
index 7c9d2230cf6..2b49e7247d0 100644
--- a/opencga-client/src/main/R/R/AllGenerics.R
+++ b/opencga-client/src/main/R/R/AllGenerics.R
@@ -1,6 +1,6 @@
# ##############################################################################
## UserClient
-setGeneric("userClient", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...)
+setGeneric("userClient", function(OpencgaR, users, user, filterId, endpointName, params=NULL, ...)
standardGeneric("userClient"))
# ##############################################################################
@@ -10,12 +10,12 @@ setGeneric("projectClient", function(OpencgaR, projects, project, endpointName,
# ##############################################################################
## StudyClient
-setGeneric("studyClient", function(OpencgaR, members, templateId, studies, variableSet, group, study, endpointName, params=NULL, ...)
+setGeneric("studyClient", function(OpencgaR, study, group, variableSet, studies, members, templateId, endpointName, params=NULL, ...)
standardGeneric("studyClient"))
# ##############################################################################
## FileClient
-setGeneric("fileClient", function(OpencgaR, folder, file, members, files, annotationSet, endpointName, params=NULL, ...)
+setGeneric("fileClient", function(OpencgaR, folder, annotationSet, file, members, files, endpointName, params=NULL, ...)
standardGeneric("fileClient"))
# ##############################################################################
@@ -25,22 +25,22 @@ setGeneric("jobClient", function(OpencgaR, members, jobs, job, endpointName, par
# ##############################################################################
## SampleClient
-setGeneric("sampleClient", function(OpencgaR, members, sample, samples, annotationSet, endpointName, params=NULL, ...)
+setGeneric("sampleClient", function(OpencgaR, samples, members, sample, annotationSet, endpointName, params=NULL, ...)
standardGeneric("sampleClient"))
# ##############################################################################
## IndividualClient
-setGeneric("individualClient", function(OpencgaR, members, individual, annotationSet, individuals, endpointName, params=NULL, ...)
+setGeneric("individualClient", function(OpencgaR, individuals, members, individual, annotationSet, endpointName, params=NULL, ...)
standardGeneric("individualClient"))
# ##############################################################################
## FamilyClient
-setGeneric("familyClient", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...)
+setGeneric("familyClient", function(OpencgaR, family, members, families, annotationSet, endpointName, params=NULL, ...)
standardGeneric("familyClient"))
# ##############################################################################
## CohortClient
-setGeneric("cohortClient", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...)
+setGeneric("cohortClient", function(OpencgaR, annotationSet, members, cohort, cohorts, endpointName, params=NULL, ...)
standardGeneric("cohortClient"))
# ##############################################################################
@@ -60,7 +60,7 @@ setGeneric("variantClient", function(OpencgaR, endpointName, params=NULL, ...)
# ##############################################################################
## ClinicalClient
-setGeneric("clinicalClient", function(OpencgaR, clinicalAnalysis, members, interpretation, clinicalAnalyses, interpretations, endpointName, params=NULL, ...)
+setGeneric("clinicalClient", function(OpencgaR, clinicalAnalyses, interpretation, clinicalAnalysis, interpretations, members, endpointName, params=NULL, ...)
standardGeneric("clinicalClient"))
# ##############################################################################
@@ -75,11 +75,11 @@ setGeneric("metaClient", function(OpencgaR, endpointName, params=NULL, ...)
# ##############################################################################
## GA4GHClient
-setGeneric("ga4ghClient", function(OpencgaR, file, study, endpointName, params=NULL, ...)
+setGeneric("ga4ghClient", function(OpencgaR, study, file, endpointName, params=NULL, ...)
standardGeneric("ga4ghClient"))
# ##############################################################################
## AdminClient
-setGeneric("adminClient", function(OpencgaR, endpointName, params=NULL, ...)
+setGeneric("adminClient", function(OpencgaR, user, endpointName, params=NULL, ...)
standardGeneric("adminClient"))
diff --git a/opencga-client/src/main/R/R/Clinical-methods.R b/opencga-client/src/main/R/R/Clinical-methods.R
index c590dab0b25..36200235c2a 100644
--- a/opencga-client/src/main/R/R/Clinical-methods.R
+++ b/opencga-client/src/main/R/R/Clinical-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -58,7 +58,7 @@
#' [*]: Required parameter
#' @export
-setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, members, interpretation, clinicalAnalyses, interpretations, endpointName, params=NULL, ...) {
+setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalyses, interpretation, clinicalAnalysis, interpretations, members, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/analysis/clinical/acl/{members}/update:
@@ -94,10 +94,10 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, mem
#' @section Endpoint /{apiVersion}/analysis/clinical/distinct:
#' Clinical Analysis distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100.
+ #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of Clinical Analysis UUIDs up to a maximum of 100.
#' @param type Clinical Analysis type.
- #' @param disorder Clinical Analysis disorder.
+ #' @param disorder Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param files Clinical Analysis files.
#' @param sample Sample associated to the proband or any member of a family.
#' @param individual Proband or any member of a family.
@@ -126,11 +126,11 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, mem
#' @section Endpoint /{apiVersion}/analysis/clinical/interpretation/distinct:
#' Interpretation distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of Interpretation IDs up to a maximum of 100.
+ #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of Interpretation UUIDs up to a maximum of 100.
#' @param clinicalAnalysisId Clinical Analysis id.
#' @param analystId Analyst ID.
- #' @param methodName Interpretation method name.
+ #' @param methodName Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param panels Interpretation panels.
#' @param primaryFindings Interpretation primary findings.
#' @param secondaryFindings Interpretation secondary findings.
@@ -152,11 +152,11 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, mem
#' @param skip Number of results to skip.
#' @param sort Sort the results.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of Interpretation IDs up to a maximum of 100.
+ #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of Interpretation UUIDs up to a maximum of 100.
#' @param clinicalAnalysisId Clinical Analysis id.
#' @param analystId Analyst ID.
- #' @param methodName Interpretation method name.
+ #' @param methodName Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param panels Interpretation panels.
#' @param primaryFindings Interpretation primary findings.
#' @param secondaryFindings Interpretation secondary findings.
@@ -484,10 +484,10 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, mem
#' @param skip Number of results to skip.
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100.
+ #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of Clinical Analysis UUIDs up to a maximum of 100.
#' @param type Clinical Analysis type.
- #' @param disorder Clinical Analysis disorder.
+ #' @param disorder Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param files Clinical Analysis files.
#' @param sample Sample associated to the proband or any member of a family.
#' @param individual Proband or any member of a family.
diff --git a/opencga-client/src/main/R/R/Cohort-methods.R b/opencga-client/src/main/R/R/Cohort-methods.R
index 3d1c6034484..3ae1d7734b5 100644
--- a/opencga-client/src/main/R/R/Cohort-methods.R
+++ b/opencga-client/src/main/R/R/Cohort-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -39,7 +39,7 @@
#' [*]: Required parameter
#' @export
-setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...) {
+setMethod("cohortClient", "OpencgaR", function(OpencgaR, annotationSet, members, cohort, cohorts, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/cohorts/acl/{members}/update:
@@ -97,8 +97,8 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohort, annota
#' @section Endpoint /{apiVersion}/cohorts/distinct:
#' Cohort distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of cohort IDs up to a maximum of 100.
- #' @param name Comma separated list of cohort names up to a maximum of 100.
+ #' @param id Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param name Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of cohort IDs up to a maximum of 100.
#' @param type Cohort type.
#' @param creationDate creationDate.
@@ -128,7 +128,7 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohort, annota
#' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param internalStatus Filter by internal status.
#' @param status Filter by status.
- #' @param phenotypes Comma separated list of phenotype ids or names.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0.
#' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. .
#' @param release Release when it was created.
@@ -147,8 +147,8 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohort, annota
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param flattenAnnotations Flatten the annotations?.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of cohort IDs up to a maximum of 100.
- #' @param name Comma separated list of cohort names up to a maximum of 100.
+ #' @param id Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param name Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of cohort IDs up to a maximum of 100.
#' @param type Cohort type.
#' @param creationDate creationDate.
diff --git a/opencga-client/src/main/R/R/Family-methods.R b/opencga-client/src/main/R/R/Family-methods.R
index b4bdd82fbc5..ffeb618a259 100644
--- a/opencga-client/src/main/R/R/Family-methods.R
+++ b/opencga-client/src/main/R/R/Family-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -38,7 +38,7 @@
#' [*]: Required parameter
#' @export
-setMethod("familyClient", "OpencgaR", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...) {
+setMethod("familyClient", "OpencgaR", function(OpencgaR, family, members, families, annotationSet, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/families/acl/{members}/update:
@@ -98,14 +98,14 @@ setMethod("familyClient", "OpencgaR", function(OpencgaR, members, families, fami
#' @section Endpoint /{apiVersion}/families/distinct:
#' Family distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list family IDs up to a maximum of 100.
- #' @param name Comma separated list family names up to a maximum of 100.
+ #' @param id Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param name Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list family UUIDs up to a maximum of 100.
#' @param members Comma separated list of family members.
#' @param expectedSize Expected size of the family (number of members).
#' @param samples Comma separated list of member's samples.
- #' @param phenotypes Comma separated list of phenotype ids or names.
- #' @param disorders Comma separated list of disorder ids or names.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param deleted Boolean to retrieve deleted entries.
@@ -128,14 +128,14 @@ setMethod("familyClient", "OpencgaR", function(OpencgaR, members, families, fami
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param flattenAnnotations Flatten the annotations?.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list family IDs up to a maximum of 100.
- #' @param name Comma separated list family names up to a maximum of 100.
+ #' @param id Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param name Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list family UUIDs up to a maximum of 100.
#' @param members Comma separated list of family members.
#' @param expectedSize Expected size of the family (number of members).
#' @param samples Comma separated list of member's samples.
- #' @param phenotypes Comma separated list of phenotype ids or names.
- #' @param disorders Comma separated list of disorder ids or names.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param deleted Boolean to retrieve deleted entries.
diff --git a/opencga-client/src/main/R/R/File-methods.R b/opencga-client/src/main/R/R/File-methods.R
index d97412f4788..5db25da7799 100644
--- a/opencga-client/src/main/R/R/File-methods.R
+++ b/opencga-client/src/main/R/R/File-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -54,7 +54,7 @@
#' [*]: Required parameter
#' @export
-setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, files, annotationSet, endpointName, params=NULL, ...) {
+setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, annotationSet, file, members, files, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/files/acl/{members}/update:
@@ -122,11 +122,11 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, fi
#' @section Endpoint /{apiVersion}/files/distinct:
#' File distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of file IDs up to a maximum of 100.
+ #' @param id Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list file UUIDs up to a maximum of 100.
- #' @param name Comma separated list of file names.
- #' @param path Comma separated list of paths.
- #' @param uri Comma separated list of uris.
+ #' @param name Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param path Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param uri Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param type File type, either FILE or DIRECTORY.
#' @param bioformat Comma separated Bioformat values. For existing Bioformats see files/bioformats.
#' @param format Comma separated Format values. For existing Formats see files/formats.
@@ -139,7 +139,7 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, fi
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param description Description.
- #' @param tags Tags.
+ #' @param tags Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param size File size.
#' @param sampleIds Comma separated list sample IDs or UUIDs up to a maximum of 100.
#' @param jobId Job ID that created the file(s) or folder(s).
@@ -207,11 +207,11 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, fi
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param flattenAnnotations Boolean indicating to flatten the annotations.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of file IDs up to a maximum of 100.
+ #' @param id Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list file UUIDs up to a maximum of 100.
- #' @param name Comma separated list of file names.
- #' @param path Comma separated list of paths.
- #' @param uri Comma separated list of uris.
+ #' @param name Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param path Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param uri Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param type File type, either FILE or DIRECTORY.
#' @param bioformat Comma separated Bioformat values. For existing Bioformats see files/bioformats.
#' @param format Comma separated Format values. For existing Formats see files/formats.
@@ -224,7 +224,7 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, fi
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
#' @param description Description.
- #' @param tags Tags.
+ #' @param tags Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param size File size.
#' @param sampleIds Comma separated list sample IDs or UUIDs up to a maximum of 100.
#' @param jobId Job ID that created the file(s) or folder(s).
diff --git a/opencga-client/src/main/R/R/GA4GH-methods.R b/opencga-client/src/main/R/R/GA4GH-methods.R
index defcc45b18f..8aae23ad4a6 100644
--- a/opencga-client/src/main/R/R/GA4GH-methods.R
+++ b/opencga-client/src/main/R/R/GA4GH-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -31,7 +31,7 @@
#' [*]: Required parameter
#' @export
-setMethod("ga4ghClient", "OpencgaR", function(OpencgaR, file, study, endpointName, params=NULL, ...) {
+setMethod("ga4ghClient", "OpencgaR", function(OpencgaR, study, file, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/ga4gh/reads/search:
diff --git a/opencga-client/src/main/R/R/Individual-methods.R b/opencga-client/src/main/R/R/Individual-methods.R
index 1ded4cea574..35b01f1ce71 100644
--- a/opencga-client/src/main/R/R/Individual-methods.R
+++ b/opencga-client/src/main/R/R/Individual-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -39,7 +39,7 @@
#' [*]: Required parameter
#' @export
-setMethod("individualClient", "OpencgaR", function(OpencgaR, members, individual, annotationSet, individuals, endpointName, params=NULL, ...) {
+setMethod("individualClient", "OpencgaR", function(OpencgaR, individuals, members, individual, annotationSet, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/individuals/acl/{members}/update:
@@ -106,20 +106,20 @@ setMethod("individualClient", "OpencgaR", function(OpencgaR, members, individual
#' @section Endpoint /{apiVersion}/individuals/distinct:
#' Individual distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list individual IDs up to a maximum of 100.
+ #' @param id Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list individual UUIDs up to a maximum of 100.
- #' @param name Comma separated list individual names up to a maximum of 100.
+ #' @param name Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param familyIds Comma separated list of family ids the individuals may belong to.
#' @param father Father ID, name or UUID.
#' @param mother Mother ID, name or UUID.
#' @param samples Sample ID, name or UUID.
#' @param sex Individual sex.
- #' @param ethnicity Individual ethnicity.
+ #' @param ethnicity Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param dateOfBirth Individual date of birth.
- #' @param disorders Comma separated list of disorder ids or names.
- #' @param phenotypes Comma separated list of phenotype ids or names.
- #' @param populationName Population name.
- #' @param populationSubpopulation Subpopulation name.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param populationName Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param populationSubpopulation Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param karyotypicSex Individual karyotypic sex.
#' @param lifeStatus Individual life status.
#' @param internalStatus Filter by internal status.
@@ -144,20 +144,20 @@ setMethod("individualClient", "OpencgaR", function(OpencgaR, members, individual
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param flattenAnnotations Flatten the annotations?.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list individual IDs up to a maximum of 100.
+ #' @param id Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list individual UUIDs up to a maximum of 100.
- #' @param name Comma separated list individual names up to a maximum of 100.
+ #' @param name Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param father Father ID, name or UUID.
#' @param mother Mother ID, name or UUID.
#' @param samples Sample ID, name or UUID.
#' @param familyIds Comma separated list of family ids the individuals may belong to.
#' @param sex Individual sex.
#' @param dateOfBirth Individual date of birth.
- #' @param ethnicity Individual ethnicity.
- #' @param disorders Comma separated list of disorder ids or names.
- #' @param phenotypes Comma separated list of phenotype ids or names.
- #' @param populationName Population name.
- #' @param populationSubpopulation Subpopulation name.
+ #' @param ethnicity Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param populationName Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param populationSubpopulation Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param karyotypicSex Individual karyotypic sex.
#' @param lifeStatus Individual life status.
#' @param internalStatus Filter by internal status.
diff --git a/opencga-client/src/main/R/R/Job-methods.R b/opencga-client/src/main/R/R/Job-methods.R
index 9a6319a293c..d61eb46c702 100644
--- a/opencga-client/src/main/R/R/Job-methods.R
+++ b/opencga-client/src/main/R/R/Job-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -87,9 +87,9 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, jobs, job, endpoi
#' Job distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
#' @param otherStudies Flag indicating the entries being queried can belong to any related study, not just the primary one.
- #' @param id Comma separated list of job IDs up to a maximum of 100.
+ #' @param id Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of job UUIDs up to a maximum of 100.
- #' @param toolId Tool ID executed by the job.
+ #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param toolType Tool type executed by the job [OPERATION, ANALYSIS].
#' @param userId User that created the job.
#' @param priority Priority of the job.
@@ -128,9 +128,9 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, jobs, job, endpoi
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
#' @param otherStudies Flag indicating the entries being queried can belong to any related study, not just the primary one.
- #' @param id Comma separated list of job IDs up to a maximum of 100.
+ #' @param id Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of job UUIDs up to a maximum of 100.
- #' @param toolId Tool ID executed by the job.
+ #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param toolType Tool type executed by the job [OPERATION, ANALYSIS].
#' @param userId User that created the job.
#' @param priority Priority of the job.
@@ -155,7 +155,7 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, jobs, job, endpoi
#' @param internalStatus Filter by internal status.
#' @param priority Priority of the job.
#' @param userId User that created the job.
- #' @param toolId Tool ID executed by the job.
+ #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
top=fetchOpenCGA(object=OpencgaR, category="jobs", categoryId=NULL, subcategory=NULL, subcategoryId=NULL,
action="top", params=params, httpMethod="GET", as.queryParam=NULL, ...),
diff --git a/opencga-client/src/main/R/R/Meta-methods.R b/opencga-client/src/main/R/R/Meta-methods.R
index cfd47fb4f17..100a6e11e6f 100644
--- a/opencga-client/src/main/R/R/Meta-methods.R
+++ b/opencga-client/src/main/R/R/Meta-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
diff --git a/opencga-client/src/main/R/R/Operation-methods.R b/opencga-client/src/main/R/R/Operation-methods.R
index 8869d0ff5a3..73e41e1eefe 100644
--- a/opencga-client/src/main/R/R/Operation-methods.R
+++ b/opencga-client/src/main/R/R/Operation-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
diff --git a/opencga-client/src/main/R/R/Panel-methods.R b/opencga-client/src/main/R/R/Panel-methods.R
index ea88beb1bfa..bf61ce54f10 100644
--- a/opencga-client/src/main/R/R/Panel-methods.R
+++ b/opencga-client/src/main/R/R/Panel-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -62,17 +62,17 @@ setMethod("panelClient", "OpencgaR", function(OpencgaR, members, panels, endpoin
#' @section Endpoint /{apiVersion}/panels/distinct:
#' Panel distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of panel IDs up to a maximum of 100.
+ #' @param id Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of panel UUIDs up to a maximum of 100.
- #' @param name Comma separated list of panel names up to a maximum of 100.
+ #' @param name Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param internalStatus Filter by internal status.
- #' @param disorders Comma separated list of disorder ids or names.
- #' @param variants Comma separated list of variant ids.
- #' @param genes Comma separated list of gene ids.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param variants Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param genes Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param source Comma separated list of source ids or names.
- #' @param regions Comma separated list of regions.
- #' @param categories Comma separated list of category names.
- #' @param tags Panel tags.
+ #' @param regions Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param categories Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param tags Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param deleted Boolean to retrieve deleted entries.
#' @param status Filter by status.
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
@@ -103,17 +103,17 @@ setMethod("panelClient", "OpencgaR", function(OpencgaR, members, panels, endpoin
#' @param skip Number of results to skip.
#' @param count Get the total number of results matching the query. Deactivated by default.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list of panel IDs up to a maximum of 100.
+ #' @param id Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list of panel UUIDs up to a maximum of 100.
- #' @param name Comma separated list of panel names up to a maximum of 100.
+ #' @param name Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param internalStatus Filter by internal status.
- #' @param disorders Comma separated list of disorder ids or names.
- #' @param variants Comma separated list of variant ids.
- #' @param genes Comma separated list of gene ids.
+ #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param variants Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param genes Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param source Comma separated list of source ids or names.
- #' @param regions Comma separated list of regions.
- #' @param categories Comma separated list of category names.
- #' @param tags Panel tags.
+ #' @param regions Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param categories Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ #' @param tags Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param deleted Boolean to retrieve deleted entries.
#' @param status Filter by status.
#' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
diff --git a/opencga-client/src/main/R/R/Project-methods.R b/opencga-client/src/main/R/R/Project-methods.R
index 88420d4beb6..3911d6f5f9a 100644
--- a/opencga-client/src/main/R/R/Project-methods.R
+++ b/opencga-client/src/main/R/R/Project-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
diff --git a/opencga-client/src/main/R/R/Sample-methods.R b/opencga-client/src/main/R/R/Sample-methods.R
index fa8bc1e707a..44d4e5e58bb 100644
--- a/opencga-client/src/main/R/R/Sample-methods.R
+++ b/opencga-client/src/main/R/R/Sample-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -39,7 +39,7 @@
#' [*]: Required parameter
#' @export
-setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, samples, annotationSet, endpointName, params=NULL, ...) {
+setMethod("sampleClient", "OpencgaR", function(OpencgaR, samples, members, sample, annotationSet, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/samples/acl/{members}/update:
@@ -98,7 +98,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, sample
#' @section Endpoint /{apiVersion}/samples/distinct:
#' Sample distinct method.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list sample IDs up to a maximum of 100.
+ #' @param id Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list sample UUIDs up to a maximum of 100.
#' @param somatic Somatic sample.
#' @param individualId Individual ID or UUID.
@@ -115,7 +115,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, sample
#' @param collectionFrom Collection from.
#' @param collectionType Collection type.
#' @param collectionMethod Collection method.
- #' @param phenotypes Comma separated list of phenotype ids or names.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0.
#' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. .
#' @param internalRgaStatus Index status of the sample for the Recessive Gene Analysis. Allowed values: ['NOT_INDEXED INDEXED INVALID_PERMISSIONS INVALID_METADATA INVALID']
@@ -157,7 +157,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, sample
#' @param includeIndividual Include Individual object as an attribute.
#' @param flattenAnnotations Flatten the annotations?.
#' @param study Study [[user@]project:]study where study and project can be either the ID or UUID.
- #' @param id Comma separated list sample IDs up to a maximum of 100.
+ #' @param id Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param uuid Comma separated list sample UUIDs up to a maximum of 100.
#' @param somatic Somatic sample.
#' @param individualId Individual ID or UUID.
@@ -174,7 +174,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, sample
#' @param collectionFrom Collection from.
#' @param collectionType Collection type.
#' @param collectionMethod Collection method.
- #' @param phenotypes Comma separated list of phenotype ids or names.
+ #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
#' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0.
#' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. .
#' @param internalRgaStatus Index status of the sample for the Recessive Gene Analysis. Allowed values: ['NOT_INDEXED INDEXED INVALID_PERMISSIONS INVALID_METADATA INVALID']
diff --git a/opencga-client/src/main/R/R/Study-methods.R b/opencga-client/src/main/R/R/Study-methods.R
index 425059d2d03..ab51f6a4a8d 100644
--- a/opencga-client/src/main/R/R/Study-methods.R
+++ b/opencga-client/src/main/R/R/Study-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -46,7 +46,7 @@
#' [*]: Required parameter
#' @export
-setMethod("studyClient", "OpencgaR", function(OpencgaR, members, templateId, studies, variableSet, group, study, endpointName, params=NULL, ...) {
+setMethod("studyClient", "OpencgaR", function(OpencgaR, study, group, variableSet, studies, members, templateId, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/studies/acl/{members}/update:
diff --git a/opencga-client/src/main/R/R/User-methods.R b/opencga-client/src/main/R/R/User-methods.R
index 9faadad0488..671c70ca6c9 100644
--- a/opencga-client/src/main/R/R/User-methods.R
+++ b/opencga-client/src/main/R/R/User-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
@@ -38,7 +38,7 @@
#' [*]: Required parameter
#' @export
-setMethod("userClient", "OpencgaR", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...) {
+setMethod("userClient", "OpencgaR", function(OpencgaR, users, user, filterId, endpointName, params=NULL, ...) {
switch(endpointName,
#' @section Endpoint /{apiVersion}/users/login:
diff --git a/opencga-client/src/main/R/R/Variant-methods.R b/opencga-client/src/main/R/R/Variant-methods.R
index e9e2f67edeb..911cd8ecc94 100644
--- a/opencga-client/src/main/R/R/Variant-methods.R
+++ b/opencga-client/src/main/R/R/Variant-methods.R
@@ -2,7 +2,7 @@
# WARNING: AUTOGENERATED CODE
#
# This code was generated by a tool.
-# Autogenerated on: 2023-04-18
+# Autogenerated on: 2023-09-08
#
# Manual changes to this file may cause unexpected behavior in your application.
# Manual changes to this file will be overwritten if the code is regenerated.
diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java
index 4baf9a8229e..b4b8cc001d6 100644
--- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java
+++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java
@@ -25,6 +25,7 @@
import org.opencb.opencga.core.models.admin.JWTParams;
import org.opencb.opencga.core.models.admin.UserCreateParams;
import org.opencb.opencga.core.models.admin.UserImportParams;
+import org.opencb.opencga.core.models.admin.UserUpdateGroup;
import org.opencb.opencga.core.models.sample.Sample;
import org.opencb.opencga.core.models.study.Group;
import org.opencb.opencga.core.models.user.User;
@@ -35,7 +36,7 @@
* WARNING: AUTOGENERATED CODE
*
* This code was generated by a tool.
-* Autogenerated on: 2023-04-18
+* Autogenerated on: 2023-09-08
*
* Manual changes to this file may cause unexpected behavior in your application.
* Manual changes to this file will be overwritten if the code is regenerated.
@@ -44,7 +45,7 @@
/**
* This class contains methods for the Admin webservices.
- * Client version: 2.8.0-SNAPSHOT
+ * Client version: 2.11.0-SNAPSHOT
* PATH: admin
*/
public class AdminClient extends AbstractParentClient {
@@ -165,4 +166,19 @@ public RestResponse syncUsers(GroupSyncParams data) throws ClientExceptio
params.put("body", data);
return execute("admin", null, "users", null, "sync", params, POST, Group.class);
}
+
+ /**
+ * Add or remove users from existing groups.
+ * @param user User ID.
+ * @param data JSON containing the parameters.
+ * @param params Map containing any of the following optional parameters.
+ * action: Action to be performed: ADD or REMOVE user to/from groups.
+ * @return a RestResponse object.
+ * @throws ClientException ClientException if there is any server error.
+ */
+ public RestResponse usersUpdateGroups(String user, UserUpdateGroup data, ObjectMap params) throws ClientException {
+ params = params != null ? params : new ObjectMap();
+ params.put("body", data);
+ return execute("admin/users", user, "groups", null, "update", params, POST, Group.class);
+ }
}
diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java
index c153146ca4e..ae7aef83174 100644
--- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java
+++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java
@@ -40,7 +40,7 @@
* WARNING: AUTOGENERATED CODE
*
* This code was generated by a tool.
-* Autogenerated on: 2023-04-18
+* Autogenerated on: 2023-09-08
*
* Manual changes to this file may cause unexpected behavior in your application.
* Manual changes to this file will be overwritten if the code is regenerated.
@@ -49,7 +49,7 @@
/**
* This class contains methods for the Alignment webservices.
- * Client version: 2.8.0-SNAPSHOT
+ * Client version: 2.11.0-SNAPSHOT
* PATH: analysis/alignment
*/
public class AlignmentClient extends AbstractParentClient {
diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java
index 9da4bc7e24c..912ef505958 100644
--- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java
+++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java
@@ -51,7 +51,7 @@
* WARNING: AUTOGENERATED CODE
*
* This code was generated by a tool.
-* Autogenerated on: 2023-04-18
+* Autogenerated on: 2023-09-08
*
* Manual changes to this file may cause unexpected behavior in your application.
* Manual changes to this file will be overwritten if the code is regenerated.
@@ -60,7 +60,7 @@
/**
* This class contains methods for the ClinicalAnalysis webservices.
- * Client version: 2.8.0-SNAPSHOT
+ * Client version: 2.11.0-SNAPSHOT
* PATH: analysis/clinical
*/
public class ClinicalAnalysisClient extends AbstractParentClient {
@@ -127,10 +127,12 @@ public RestResponse create(ClinicalAnalysisCreateParams data,
* @param field Comma separated list of fields for which to obtain the distinct values.
* @param params Map containing any of the following optional parameters.
* study: Study [[user@]project:]study where study and project can be either the ID or UUID.
- * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100.
+ * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the
+ * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100.
* type: Clinical Analysis type.
- * disorder: Clinical Analysis disorder.
+ * disorder: Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g.
+ * '~value' for case sensitive, '~/value/i' for case insensitive search.
* files: Clinical Analysis files.
* sample: Sample associated to the proband or any member of a family.
* individual: Proband or any member of a family.
@@ -166,11 +168,13 @@ public RestResponse distinct(String field, ObjectMap params) throws C
* @param field Comma separated list of fields for which to obtain the distinct values.
* @param params Map containing any of the following optional parameters.
* study: Study [[user@]project:]study where study and project can be either the ID or UUID.
- * id: Comma separated list of Interpretation IDs up to a maximum of 100.
+ * id: Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the
+ * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100.
* clinicalAnalysisId: Clinical Analysis id.
* analystId: Analyst ID.
- * methodName: Interpretation method name.
+ * methodName: Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}'
+ * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* panels: Interpretation panels.
* primaryFindings: Interpretation primary findings.
* secondaryFindings: Interpretation secondary findings.
@@ -197,11 +201,13 @@ public RestResponse distinctInterpretation(String field, ObjectMap pa
* skip: Number of results to skip.
* sort: Sort the results.
* study: Study [[user@]project:]study where study and project can be either the ID or UUID.
- * id: Comma separated list of Interpretation IDs up to a maximum of 100.
+ * id: Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the
+ * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100.
* clinicalAnalysisId: Clinical Analysis id.
* analystId: Analyst ID.
- * methodName: Interpretation method name.
+ * methodName: Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}'
+ * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* panels: Interpretation panels.
* primaryFindings: Interpretation primary findings.
* secondaryFindings: Interpretation secondary findings.
@@ -614,10 +620,12 @@ public RestResponse summaryRgaVariant(ObjectMap params
* skip: Number of results to skip.
* count: Get the total number of results matching the query. Deactivated by default.
* study: Study [[user@]project:]study where study and project can be either the ID or UUID.
- * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100.
+ * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the
+ * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100.
* type: Clinical Analysis type.
- * disorder: Clinical Analysis disorder.
+ * disorder: Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g.
+ * '~value' for case sensitive, '~/value/i' for case insensitive search.
* files: Clinical Analysis files.
* sample: Sample associated to the proband or any member of a family.
* individual: Proband or any member of a family.
diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java
index 11bfc04c972..88cc7b62b23 100644
--- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java
+++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java
@@ -37,7 +37,7 @@
* WARNING: AUTOGENERATED CODE
*
* This code was generated by a tool.
-* Autogenerated on: 2023-04-18
+* Autogenerated on: 2023-09-08
*
* Manual changes to this file may cause unexpected behavior in your application.
* Manual changes to this file will be overwritten if the code is regenerated.
@@ -46,7 +46,7 @@
/**
* This class contains methods for the Cohort webservices.
- * Client version: 2.8.0-SNAPSHOT
+ * Client version: 2.11.0-SNAPSHOT
* PATH: cohorts
*/
public class CohortClient extends AbstractParentClient {
@@ -144,8 +144,10 @@ public RestResponse create(CohortCreateParams data, ObjectMap params) th
* @param field Comma separated list of fields for which to obtain the distinct values.
* @param params Map containing any of the following optional parameters.
* study: Study [[user@]project:]study where study and project can be either the ID or UUID.
- * id: Comma separated list of cohort IDs up to a maximum of 100.
- * name: Comma separated list of cohort names up to a maximum of 100.
+ * id: Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~',
+ * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
+ * name: Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator
+ * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.
* uuid: Comma separated list of cohort IDs up to a maximum of 100.
* type: Cohort type.
* creationDate: creationDate.
@@ -182,7 +184,8 @@ public RestResponse