From 520695eaded65a0491611797c1d6da289c3e3f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Mon, 3 Apr 2023 10:04:52 +0200 Subject: [PATCH 01/70] analysis: fix SV catalog counting in signature analysis, #TASK-4144 --- ...ationalSignatureLocalAnalysisExecutor.java | 63 +++++++++++++++++-- .../analysis/variant/VariantAnalysisTest.java | 19 +++++- 2 files changed, 74 insertions(+), 8 deletions(-) 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 55173c3bd3a..7666ee3cb34 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 @@ -296,6 +296,7 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException { } // Overwrite study and types related to SV query.put(VariantQueryParam.STUDY.key(), getStudy()); +// query.put(VariantQueryParam.TYPE.key(), VariantType.BREAKEND + "," + VariantType.DELETION); query.put(VariantQueryParam.TYPE.key(), VariantType.DELETION + "," + VariantType.BREAKEND + "," + VariantType.DUPLICATION + "," + VariantType.TANDEM_DUPLICATION + "," + VariantType.INVERSION + "," + VariantType.TRANSLOCATION); @@ -384,19 +385,45 @@ private File computeClusteredFile(Query query, QueryOptions queryOptions) throws File inputFile = getOutDir().resolve("in.clustered.bedpe").toFile(); File outputFile = getOutDir().resolve("out.clustered.bedpe").toFile(); try { + String mateChrom; + int matePosition; + String lengthKey; + + Map> breakendMap = new HashMap<>(); PrintWriter pw = new PrintWriter(inputFile); pw.println("chrom1\tstart1\tend1\tchrom2\tstart2\tend2\tlength\ttype\tsample"); while (iterator.hasNext()) { 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 + continue; + } + } + } + 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); - String lengthKey = getLengthKey(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) { - 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" + + mateChrom + "\t" + matePosition + "\t" + matePosition + "\t" + lengthKey + "\t" + typeKey + "\t" + getSample()); } } @@ -458,6 +485,7 @@ private String getTypeKey(Variant variant) { case "TDS": case "DUPLICATION": case "TANDEM_DUPLICATION": + case "TANDEM-DUPLICATION": return TYPE_TDS; case "INV": case "INVERSION": @@ -495,6 +523,31 @@ private String getLengthKey(Variant variant) { return null; } + private String getLengthKey(Variant variant, String type) { + if (type == null) { + return null; + } + if (type.equals(TYPE_TRANS)) { + return LENGTH_NA; + } else { + 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; + } + private void computeSignatureFitting() throws IOException, ToolException, CatalogException { File cataloguesFile = getOutDir().resolve(CATALOGUES_FILENAME_DEFAULT).toFile(); if (!cataloguesFile.exists()) { 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 c0ce79b8374..31ac3ab30a2 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 @@ -858,9 +858,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"); From d36b6cded5e060fe2a17c393aab353aaeb3a3662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 4 Apr 2023 16:43:18 +0200 Subject: [PATCH 02/70] analysis: fix SV catalogue counting and clean code, #TASK-4144 --- ...ationalSignatureLocalAnalysisExecutor.java | 160 ++++++++---------- 1 file changed, 67 insertions(+), 93 deletions(-) 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 7666ee3cb34..41778987bb3 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,8 +64,10 @@ public class MutationalSignatureLocalAnalysisExecutor extends MutationalSignatureAnalysisExecutor implements StorageToolExecutor { - public final static String R_DOCKER_IMAGE = "opencb/opencga-ext-tools:" - + GitRepositoryState.get().getBuildVersion(); + public static final String R_DOCKER_IMAGE = "opencb/opencga-ext-tools:" + GitRepositoryState.get().getBuildVersion(); + + private static final String SVCLASS = "SVCLASS"; + private static final String EXT_SVTYPE = "EXT_SVTYPE"; private Path opencgaHome; @@ -80,7 +82,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 +98,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,15 +191,15 @@ 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(), e.getMessage()); } } } @@ -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,26 +288,30 @@ 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()); } // Overwrite study and types related to SV query.put(VariantQueryParam.STUDY.key(), getStudy()); -// query.put(VariantQueryParam.TYPE.key(), VariantType.BREAKEND + "," + VariantType.DELETION); query.put(VariantQueryParam.TYPE.key(), VariantType.DELETION + "," + VariantType.BREAKEND + "," + VariantType.DUPLICATION + "," + VariantType.TANDEM_DUPLICATION + "," + VariantType.INVERSION + "," + VariantType.TRANSLOCATION); 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()); + 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 @@ -335,11 +339,6 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException { } } -// 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))) { @@ -372,7 +371,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); } } @@ -384,50 +383,54 @@ 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 { + try (PrintWriter pw = new PrintWriter(inputFile);) { String mateChrom; int matePosition; String lengthKey; + boolean processVariant; Map> breakendMap = new HashMap<>(); - PrintWriter pw = new PrintWriter(inputFile); pw.println("chrom1\tstart1\tend1\tchrom2\tstart2\tend2\tlength\ttype\tsample"); while (iterator.hasNext()) { + processVariant = true; Variant variant = iterator.next(); 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 - continue; + processVariant = false; + break; } } } - 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<>()); + 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); } - 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()); + 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(); // Build command line to run R script via docker image // Input binding @@ -457,22 +460,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; } } } @@ -494,33 +492,9 @@ private String getTypeKey(Variant variant) { case "TRANS": case "TRANSLOCATION": return TYPE_TRANS; + default: + return null; } - return null; - } - - private String getLengthKey(Variant variant) { - if (variant.getSv() == null || variant.getSv().getBreakend() == null || variant.getSv().getBreakend().getMate() == 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; - } else { - if (variant.getType() == VariantType.TRANSLOCATION) { - return LENGTH_NA; - } - } - return null; } private String getLengthKey(Variant variant, String type) { @@ -561,12 +535,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)) { @@ -574,7 +548,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); } @@ -640,7 +613,8 @@ private void computeSignatureFitting() throws IOException, ToolException, Catalo scriptParams.append(" --genomev=hg19"); break; } - case "GRCh38": { + case "GRCh38": + default: { scriptParams.append(" --genomev=hg38"); break; } @@ -648,7 +622,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(); From 9f3ca93eb7d40a44566f28636b718ddc4a8a1388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 4 Apr 2023 17:19:58 +0200 Subject: [PATCH 03/70] analysis: fix try-catch issues, #TASK-4144 --- ...ationalSignatureLocalAnalysisExecutor.java | 41 +++++++++++-------- .../analysis/variant/VariantAnalysisTest.java | 6 +-- 2 files changed, 28 insertions(+), 19 deletions(-) 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 41778987bb3..32b0bd92b75 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 @@ -203,7 +203,6 @@ refGenomePath, new FastaSequenceIndex(new File(base + ".fai")), } } } - } catch (IOException | CatalogException | ToolException | StorageEngineException e) { throw new ToolExecutorException(e); } @@ -311,11 +310,11 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException { throw new ToolExecutorException(e); } + 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) { @@ -338,30 +337,36 @@ public void computeSignatureCatalogueSV() throws ToolExecutorException { countMap.put(key, 1); } } + } catch (IOException e) { + throw new ToolExecutorException(e); + } - // 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()) @@ -431,7 +436,11 @@ private File computeClusteredFile(Query query, QueryOptions queryOptions) throws } } } + } catch (Exception e) { + throw new ToolException(e); + } + try { // Build command line to run R script via docker image // Input binding List> inputBindings = new ArrayList<>(); 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 31ac3ab30a2..0dcee9ebfa6 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 @@ -861,9 +861,9 @@ public void testMutationalSignatureCatalogueSV() throws Exception { 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") + //.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 From f6bba81ebd36f22c0fa82865953f35c4d54b0500 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Mon, 22 May 2023 13:51:56 +0200 Subject: [PATCH 04/70] cicd: New check-junit-test workflow #TASK-4445 --- .github/workflows/check-junit-test.yml | 41 +++++++++++++++++++ .github/workflows/scripts/get_profiles.sh | 30 ++++++++++++++ .github/workflows/test-analysis.yml | 8 +++- .github/workflows/test-long-test-analysis.yml | 14 ------- 4 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/check-junit-test.yml create mode 100755 .github/workflows/scripts/get_profiles.sh delete mode 100644 .github/workflows/test-long-test-analysis.yml diff --git a/.github/workflows/check-junit-test.yml b/.github/workflows/check-junit-test.yml new file mode 100644 index 00000000000..183fee32ea0 --- /dev/null +++ b/.github/workflows/check-junit-test.yml @@ -0,0 +1,41 @@ +name: LONG TEST ANALYSIS + +on: + workflow_dispatch: + inputs: + short_tests: + type: boolean + required: false + default: true + medium_tests: + type: boolean + required: false + default: false + long_tests: + type: boolean + required: false + default: false + mvn_opts: + type: string + required: false + default: "" + +jobs: + test: + name: Test JUnit + runs-on: ubuntu-22.04 + steps: + - name: Building string profiles to run + id: get_profiles + run: | + if [ -f "./.github/workflows/scripts/get_profiles.sh" ]; then + chmod +x ./.github/workflows/scripts/get_profiles.sh + echo "profiles=$(./.github/workflows/scripts/get_profiles.sh ${{ inputs.short_tests }} ${{ inputs.medium_tests }} ${{ inputs.long_tests }})" >> $GITHUB_OUTPUT + fi + - name: Building string profiles to run + uses: ./.github/workflows/test-analysis.yml + secrets: inherit + with: + test_profile: ${{ steps.get_profiles.outputs.profiles }} + report_context: development + mvn_opts: ${{ inputs.mvn_opts }} diff --git a/.github/workflows/scripts/get_profiles.sh b/.github/workflows/scripts/get_profiles.sh new file mode 100755 index 00000000000..fc205968984 --- /dev/null +++ b/.github/workflows/scripts/get_profiles.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +if [ $# -eq 0 ]; then + echo "The arguments must be 3" + exit 1 +fi +PROFILE="" + +if [ $1 == "true" ]; then + PROFILE="${PROFILE}runShortTests," +fi +if [ $2 == "true" ]; then + PROFILE="${PROFILE}runMediumTests," +fi +if [ $3 == "true" ]; then + PROFILE="${PROFILE}runLongTests" +fi + +if [[ "${PROFILE}" == *"," ]]; then + PROFILE="${PROFILE%?}" +fi + +if [ -z "${PROFILE}" ]; then + echo "There must be at least one active profile" + exit 1 +fi + +echo "${PROFILE}" +exit 0 + diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml index 8c72b649a33..37f1215a802 100644 --- a/.github/workflows/test-analysis.yml +++ b/.github/workflows/test-analysis.yml @@ -8,6 +8,10 @@ on: report_context: type: string required: true + mvn_opts: + type: string + required: false + default: "" secrets: SONAR_TOKEN: required: true @@ -61,7 +65,7 @@ jobs: mongodb-version: 6.0 mongodb-replica-set: rs-test - name: Run Junit tests - run: mvn -B verify surefire-report:report -P storage-hadoop,hdp3.1,${{ inputs.test_profile }} -Dcheckstyle.skip -Popencga-storage-hadoop-deps -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' + run: mvn -B verify surefire-report:report -P storage-hadoop,hdp3.1,${{ inputs.test_profile }} -Dcheckstyle.skip -Popencga-storage-hadoop-deps -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' ${{ inputs.mvn_opts }} - name: Upload result dir uses: actions/upload-artifact@v3 with: @@ -73,7 +77,7 @@ jobs: needs: test strategy: matrix: - module: ["opencga-app", "opencga-catalog", "opencga-client", "opencga-clinical", "opencga-core", "opencga-master", "opencga-server", "opencga-storage", "opencga-storage/opencga-storage-app", "opencga-storage/opencga-storage-benchmark", "opencga-storage/opencga-storage-core", "opencga-storage/opencga-storage-hadoop", "opencga-storage/opencga-storage-server", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps"] + module: [ "opencga-app", "opencga-catalog", "opencga-client", "opencga-clinical", "opencga-core", "opencga-master", "opencga-server", "opencga-storage", "opencga-storage/opencga-storage-app", "opencga-storage/opencga-storage-benchmark", "opencga-storage/opencga-storage-core", "opencga-storage/opencga-storage-hadoop", "opencga-storage/opencga-storage-server", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps" ] steps: - name: Download result dir uses: actions/download-artifact@v3 diff --git a/.github/workflows/test-long-test-analysis.yml b/.github/workflows/test-long-test-analysis.yml deleted file mode 100644 index fe516b75a98..00000000000 --- a/.github/workflows/test-long-test-analysis.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: LONG TEST ANALYSIS - -on: - push: - branches: - - TASK-4149 - -jobs: - test: - uses: ./.github/workflows/test-analysis.yml - secrets: inherit - with: - test_profile: runLongTests,runMediumTests,runShortTests - report_context: development From bc7f00e5f0692e947f42e1f9e8f08e124e62967c Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Mon, 22 May 2023 13:53:38 +0200 Subject: [PATCH 05/70] cicd: Rename check-junit-test #TASK-4445 --- .github/workflows/check-junit-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-junit-test.yml b/.github/workflows/check-junit-test.yml index 183fee32ea0..58f71978a27 100644 --- a/.github/workflows/check-junit-test.yml +++ b/.github/workflows/check-junit-test.yml @@ -1,4 +1,4 @@ -name: LONG TEST ANALYSIS +name: Check junits on: workflow_dispatch: From 571f76c479ae3e3a56aa79aa6584e40cb53d0f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 24 May 2023 16:12:01 +0100 Subject: [PATCH 06/70] storage: Fix HadoopVariantStatisticsManagerTest::testJulieTool #TASK-4445 --- .../opencga/storage/core/metadata/models/ProjectMetadata.java | 4 ---- .../storage/core/variant/annotation/DummyTestAnnotator.java | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/models/ProjectMetadata.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/models/ProjectMetadata.java index c27111d1c03..e64deedff64 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/models/ProjectMetadata.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/models/ProjectMetadata.java @@ -85,10 +85,6 @@ public VariantAnnotationMetadata() { sourceVersion = new ArrayList<>(); } - public VariantAnnotationMetadata(int id, String name, Date creationDate, VariantAnnotatorProgram annotator, - List sourceVersion, DataRelease dataRelease) { - - } public VariantAnnotationMetadata(int id, String name, Date creationDate, VariantAnnotatorProgram annotator, List sourceVersion, DataRelease dataRelease, List privateSources) { this.id = id; diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java index 71f5135e08c..33e2860868d 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java @@ -59,7 +59,7 @@ public List annotate(List variants) throws VariantAn public ProjectMetadata.VariantAnnotationMetadata getVariantAnnotationMetadata() throws VariantAnnotatorException { return new ProjectMetadata.VariantAnnotationMetadata(-1, null, null, new ProjectMetadata.VariantAnnotatorProgram("MyAnnotator", key, null), - Collections.singletonList(new ObjectMap("data", "genes")), null); + Collections.singletonList(new ObjectMap("data", "genes")), null, null); } } From 37ba31205a843de2f3cd5a81e6d558a751d49056 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 25 May 2023 17:13:24 +0200 Subject: [PATCH 07/70] cicd:Synch with the latest version of workflow from develop --- .github/workflows/check-junit-test.yml | 33 +++++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check-junit-test.yml b/.github/workflows/check-junit-test.yml index 58f71978a27..f953642c9eb 100644 --- a/.github/workflows/check-junit-test.yml +++ b/.github/workflows/check-junit-test.yml @@ -21,21 +21,36 @@ on: default: "" jobs: - test: + get_profiles: name: Test JUnit runs-on: ubuntu-22.04 + outputs: + profiles: ${{ steps.getter.outputs.profiles }} steps: + - uses: actions/checkout@v3 + with: + fetch-depth: '10' - name: Building string profiles to run - id: get_profiles + id: getter run: | if [ -f "./.github/workflows/scripts/get_profiles.sh" ]; then chmod +x ./.github/workflows/scripts/get_profiles.sh echo "profiles=$(./.github/workflows/scripts/get_profiles.sh ${{ inputs.short_tests }} ${{ inputs.medium_tests }} ${{ inputs.long_tests }})" >> $GITHUB_OUTPUT fi - - name: Building string profiles to run - uses: ./.github/workflows/test-analysis.yml - secrets: inherit - with: - test_profile: ${{ steps.get_profiles.outputs.profiles }} - report_context: development - mvn_opts: ${{ inputs.mvn_opts }} + + echo_log: + needs: get_profiles + runs-on: ubuntu-22.04 + steps: + - name: Echo profiles + id: log + run: echo "Executing testing profiles -> ${{ needs.get_profiles.outputs.profiles }}" + + test: + needs: [ get_profiles, echo_log ] + uses: ./.github/workflows/test-analysis.yml + with: + test_profile: ${{ needs.get_profiles.outputs.profiles }} + report_context: development + mvn_opts: ${{ inputs.mvn_opts }} + secrets: inherit \ No newline at end of file From e68bed2ac8e7532225123a865aae1df5edc79cd2 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 8 Jun 2023 11:38:09 +0200 Subject: [PATCH 08/70] Prepare next release 2.8.3-SNAPSHOT --- .github/workflows/test-analysis.yml | 2 +- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 22 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml index 8c72b649a33..af9ed6209a2 100644 --- a/.github/workflows/test-analysis.yml +++ b/.github/workflows/test-analysis.yml @@ -20,7 +20,7 @@ on: SSH_TESTING_SERVER_PASSWORD: required: true env: - xb_version: "1.6.2" + xb_version: "1.6.3" jobs: analysis: name: Execute Sonar Analysis diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 8bcef458f6e..a2fed95c1b8 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 315fc675ba6..be106d38391 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index e95e81f9f7f..d43aa67b53f 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 51e8e3271b6..fc888cf42ea 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 1c3d98c36a3..7d8f216a0ea 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 5facda4944f..eb0016308f8 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 38eef6ef604..1f19d740348 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 3a1708b0d9a..c4050fb6339 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 08fd95e1d5a..3a1821c0cbd 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 34771805b75..9c61a4cab94 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index f89776272e5..a746892a217 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 3d6337f89dc..0e8e429b549 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index eb2acc7aa0e..b3b9bcc68cc 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 0d533640d0e..185a923475d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 3a5fd0680de..4a1ed4cb963 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 2573492c69c..8788d1547ac 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 5287da75128..5f3b2235c63 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 9296e54be14..cf3e6549427 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 9734fe45943..0f73ef09ee2 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index b13fb52d290..ab0a67d1e7e 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 528699344be..1dc423846c4 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.3-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.8.3 - 2.8.3 - 5.4.0 - 2.8.0 - 4.8.0 - 2.8.2 + 2.8.3_dev + 2.8.3_dev + 5.4.1-SNAPSHOT + 2.8.1-SNAPSHOT + 4.8.1-SNAPSHOT + 2.8.3-SNAPSHOT 0.2.0 2.11.4 From b80c6b115adc7a06508b3aecc4563b2fa166714c Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 8 Jun 2023 12:27:18 +0200 Subject: [PATCH 09/70] pom: testing another surefire report version 3.1.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1dc423846c4..182af514996 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ false false - 2.22.2 + 3.1.0 From 548c19fad1df0b8745850b904e99d12b2a33fcfb Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Tue, 13 Jun 2023 15:54:17 +0200 Subject: [PATCH 10/70] Prepare next release 2.9.2-SNAPSHOT --- .github/workflows/test-analysis.yml | 3 +-- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 22 files changed, 28 insertions(+), 29 deletions(-) diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml index ac937f35c4c..b778e704cae 100644 --- a/.github/workflows/test-analysis.yml +++ b/.github/workflows/test-analysis.yml @@ -24,8 +24,7 @@ on: SSH_TESTING_SERVER_PASSWORD: required: true env: - xb_version: "1.7.1" - + xb_version: "1.7.2" jobs: analysis: name: Execute Sonar Analysis diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index ed6d1e6ea9c..aec5669b12f 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index ddac6242b5a..a9fe3703f97 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index 4bd331c20cd..43fb05be14d 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 3b99ea89a10..bed3ac24829 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 70f90af19bf..9f85a0ff7d0 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 5b526af39c5..8544e3bbd09 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 097227b48fb..898205375bc 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index c1dedc8f9b5..957eb127745 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 3866f9663c5..45bd1dd22c1 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index efca71394d9..cdd5e80590b 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 5d72ad07bd9..ab277249b74 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index e0e24254c4d..2ef22a0bf03 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index 3263e91216a..6ed975a82d8 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index efc599af6fb..422fa4f30c2 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 64bfaffce10..a2e8db3647b 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 59b617f558b..246bdd0cc61 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index c1e722996de..e7302b47a65 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 323e4ef2404..580e03d7ebc 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 80340a628c9..eff64556c36 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index a7ff7fcb5cb..6b0e2013c39 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 7740e246360..d8b1fd7308a 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.1 + 2.9.2-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.9.1 - 2.9.1 - 5.5.0 - 2.9.0 - 4.9.0 - 2.9.1 + 2.9.2_dev + 2.9.2_dev + 5.5.1-SNAPSHOT + 2.9.1-SNAPSHOT + 4.9.1-SNAPSHOT + 2.9.2-SNAPSHOT 0.2.0 2.11.4 From 020d2f9e1f33866d4dca120d5e68e6ec2faedaf1 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Tue, 13 Jun 2023 16:12:46 +0200 Subject: [PATCH 11/70] Fix release.yml --- .github/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5d1f3b7398..388e4aacf92 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,9 +54,9 @@ jobs: release: uses: opencb/java-common-libs/.github/workflows/release-github-workflow.yml@release-4.9.x needs: [ build,test ] - with: - artifact: build-folder - file: | - opencga-client-${{ needs.build.outputs.version }}.tar.gz - clients/R/opencgaR_${{ needs.build.outputs.version }}.tar.gz + with: + artifact: build-folder + file: | + opencga-client-${{ needs.build.outputs.version }}.tar.gz + clients/R/opencgaR_${{ needs.build.outputs.version }}.tar.gz From d9ee6b94c574944549752e5ce439c7d589bb1a7c Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Mon, 19 Jun 2023 13:48:58 +0200 Subject: [PATCH 12/70] updated maven-surefire-plugin.version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d8b1fd7308a..f36ef9ca58a 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ false false - 2.22.2 + 3.1.0 From d715ee33ce50564812db38a19a96184ef79fe91a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 28 Jun 2023 12:53:15 +0100 Subject: [PATCH 13/70] Prepare next release 2.8.2.1-SNAPSHOT --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 8bcef458f6e..9e8f790a1c5 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 315fc675ba6..9a3cf1a065d 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index e95e81f9f7f..ce12ec8bb7d 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 51e8e3271b6..eea1e5e143f 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 1c3d98c36a3..5849eeb4cc6 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 5facda4944f..1043ad89e74 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 38eef6ef604..ff8f7892601 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 3a1708b0d9a..4e25503d4a2 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 08fd95e1d5a..704afa216d5 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 34771805b75..4a06087fc05 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index f89776272e5..4c004d2bb7b 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 3d6337f89dc..1c0cd71fd7d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index eb2acc7aa0e..f96d3f9ccaa 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 0d533640d0e..34594bea0a6 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 3a5fd0680de..3c9c953ee24 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 2573492c69c..d68c78fce5c 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 5287da75128..adc064c8d1e 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 9296e54be14..033c1d323cf 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 9734fe45943..c369625b1e1 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index b13fb52d290..60eb7b9c7fd 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT ../pom.xml From 92d78ef566ba1d784779078508baa2f642179ddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Mon, 26 Jun 2023 16:17:08 +0100 Subject: [PATCH 14/70] storage: Always return originalCall when context allele is missing #TASK-4642 --- .../adaptors/VariantDBAdaptorTest.java | 7 +++- .../adaptors/VariantHBaseQueryParser.java | 16 +++++++- .../study/HBaseToStudyEntryConverter.java | 17 +++++--- .../SampleIndexOnlyVariantQueryExecutor.java | 41 +++++++++++++++---- .../variant/index/sample/SampleIndexTest.java | 36 +++++++++++----- 5 files changed, 91 insertions(+), 26 deletions(-) diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantDBAdaptorTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantDBAdaptorTest.java index 1476416b6e2..1f305574a64 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantDBAdaptorTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantDBAdaptorTest.java @@ -2285,7 +2285,12 @@ public void testReturnNoneFiles() { queryResult = query(new Query(INCLUDE_FILE.key(), VariantQueryUtils.NONE).append(INCLUDE_SAMPLE.key(), ALL), new QueryOptions()); assertEquals(allVariants.getResults().size(), queryResult.getResults().size()); for (Variant variant : queryResult.getResults()) { - assertThat(variant.getStudies().get(0).getFiles(), is(Collections.emptyList())); + if (variant.getLengthReference() == 0 || variant.getLengthAlternate() == 0) { + assertThat(variant.getStudies().get(0).getFiles(), is(not(Collections.emptyList()))); + assertThat(variant.getStudies().get(0).getFiles().get(0).getCall(), is(not(nullValue()))); + } else { + assertThat(variant.getStudies().get(0).getFiles(), is(Collections.emptyList())); + } assertThat(new HashSet<>(variant.getStudies().get(0).getSampleDataKeys()), is(FORMAT)); } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java index 2d6c3ce8593..1da02f637f1 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java @@ -225,7 +225,8 @@ public List parseQueryMultiRegion(VariantQueryProjection selectElements, Q } List scans; - if ((regions.isEmpty() || regions.size() == 1) && variants.isEmpty() && idIntersect.isEmpty()) { + int numLocusFilters = regions.size() + variants.size() + idIntersect.size(); + if (numLocusFilters <= 1) { scans = Collections.singletonList(parseQuery(selectElements, query, options)); } else { scans = new ArrayList<>(regions.size() + variants.size() + idIntersect.size()); @@ -254,7 +255,7 @@ public List parseQueryMultiRegion(VariantQueryProjection selectElements, Q subQuery.put(ID.key(), variant); try { Scan scan = new Scan(templateScan); - scan.setSmall(true); + scan.setOneRowLimit(); addVariantIdFilter(scan, variant); scans.add(scan); } catch (IOException e) { @@ -301,6 +302,17 @@ public Scan parseQuery(VariantQueryProjection selectElements, Query query, Query Variant variant = VariantQueryUtils.toVariant(ids.get(0)); addVariantIdFilter(scan, variant); regionOrVariant = variant; + scan.setOneRowLimit(); + } + if (isValidParam(query, ID_INTERSECT)) { + List ids = query.getAsStringList(ID_INTERSECT.key()); + if (ids.size() != 1) { + throw VariantQueryException.malformedParam(ID_INTERSECT, ids.toString(), "Unsupported multiple variant ids filter"); + } + Variant variant = VariantQueryUtils.toVariant(ids.get(0)); + addVariantIdFilter(scan, variant); + regionOrVariant = variant; + scan.setOneRowLimit(); } // if (isValidParam(query, ID)) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java index c6921fdfb55..2419d5960ae 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java @@ -399,10 +399,10 @@ private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEnt if (configuration.getProjection() != null && !configuration.getProjection().getStudy(studyMetadata.getId()).getFiles().contains(fileId)) { - // TODO: Should we return the original CALL? -// if (call != null && !call.isEmpty()) { -// studyEntry.getFiles().add(new FileEntry(fileName, call, Collections.emptyMap())); -// } + if (call != null && !call.isEmpty()) { + OriginalCall originalCall = parseOriginalCall(call); + studyEntry.getFiles().add(new FileEntry(fileName, originalCall, Collections.emptyMap())); + } return; } @@ -412,8 +412,7 @@ private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEnt VariantOverlappingStatus overlappingStatus = VariantOverlappingStatus.valueFromShortString((String) (fileColumn.getElement(FILE_VARIANT_OVERLAPPING_STATUS_IDX))); if (call != null && !call.isEmpty()) { - int i = call.lastIndexOf(':'); - originalCall = new OriginalCall(call.substring(0, i), Integer.valueOf(call.substring(i + 1))); + originalCall = parseOriginalCall(call); } else if (overlappingStatus.equals(VariantOverlappingStatus.MULTI)) { attributes.put(StudyEntry.FILTER, "SiteConflict"); AlternateCoordinate alternateCoordinate = getAlternateCoordinate(alternateRaw); @@ -427,6 +426,12 @@ private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEnt studyEntry.getFiles().add(new FileEntry(fileName, originalCall, attributes)); } + private OriginalCall parseOriginalCall(String call) { + int i = call.lastIndexOf(':'); + OriginalCall originalCall = new OriginalCall(call.substring(0, i), Integer.valueOf(call.substring(i + 1))); + return originalCall; + } + public static HashMap convertFileAttributes(PhoenixArray fileColumn, List fixedAttributes) { return convertFileAttributes(fileColumn, fixedAttributes, null); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 9211318768a..36a74570fb4 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -6,6 +6,7 @@ import org.apache.commons.lang3.time.StopWatch; import org.opencb.biodata.models.variant.StudyEntry; import org.opencb.biodata.models.variant.Variant; +import org.opencb.biodata.models.variant.avro.FileEntry; import org.opencb.biodata.models.variant.avro.SampleEntry; import org.opencb.biodata.tools.commons.Converter; import org.opencb.commons.datastore.core.DataResult; @@ -42,6 +43,7 @@ import java.util.*; import java.util.concurrent.*; +import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.NONE; import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.addSamplesMetadataIfRequested; import static org.opencb.opencga.storage.hadoop.variant.index.SampleIndexVariantQueryExecutor.SAMPLE_INDEX_TABLE_SOURCE; @@ -265,16 +267,16 @@ private boolean isIncludeCovered(SampleIndexQuery sampleIndexQuery, Query inputQ } - private static class SampleVariantIndexEntryToVariantConverter implements Converter { - - enum FamilyRole { - MOTHER, - FATHER, - SAMPLE - } + enum FamilyRole { + MOTHER, + FATHER, + SAMPLE + } + private class SampleVariantIndexEntryToVariantConverter implements Converter { private final boolean includeStudy; private String studyName; + private List files; private List familyRoleOrder; private String sampleName; private String motherName; @@ -297,6 +299,11 @@ enum FamilyRole { } sampleName = sampleIndexQuery.getSamplesMap().keySet().iterator().next(); Integer sampleId = metadataManager.getSampleId(studyId, sampleName); + List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); + files = new ArrayList<>(fileIds.size()); + for (Integer fileId : fileIds) { + files.add(metadataManager.getFileName(studyId, fileId)); + } familyRoleOrder = new ArrayList<>(); @@ -364,9 +371,29 @@ public Variant convert(SampleVariantIndexEntry entry) { } } studyEntry.setSortedSamplesPosition(samplesPosition); + if (v.getLengthReference() == 0 || v.getLengthAlternate() == 0) { + studyEntry.setFiles(getOriginalCall(v, studyName, files)); + } v.setStudies(Collections.singletonList(studyEntry)); } return v; } } + + private List getOriginalCall(Variant v, String study, List files) { + Variant variant = dbAdaptor.get(Collections.singletonList(v).iterator(), + new Query() + .append(VariantQueryParam.INCLUDE_FILE.key(), files) + .append(VariantQueryParam.INCLUDE_SAMPLE.key(), NONE) + .append(VariantQueryParam.INCLUDE_STUDY.key(), study), + new QueryOptions() + .append(VariantHadoopDBAdaptor.NATIVE, true) + .append(QueryOptions.INCLUDE, Arrays.asList(VariantField.STUDIES_FILES))).first(); + List fileEntries = variant.getStudies().get(0).getFiles(); + fileEntries.forEach(fileEntry -> { + fileEntry.setData(Collections.emptyMap()); + }); + return fileEntries; + } + } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java index 4ab4180d2ba..d1cd1f5c64b 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java @@ -1114,16 +1114,32 @@ private void testSampleIndexOnlyVariantQueryExecutor(VariantQuery query, QueryOp assertEquals( expectedVariants.stream().map(String::valueOf).collect(toList()), actualVariants.stream().map(String::valueOf).collect(toList())); - System.out.println("DBAdaptor " + expectedVariants.get(0).toJson()); - System.out.println("Actual " + actualVariants.get(0).toJson()); - assertEquals(expectedVariants, actualVariants); +// System.out.println("DBAdaptor " + expectedVariants.get(0).toJson()); +// System.out.println("Actual " + actualVariants.get(0).toJson()); + for (int i = 0; i < actualVariants.size(); i++) { + Variant av = actualVariants.get(i); + Variant ev = expectedVariants.get(i); + if (!ev.getStudies().isEmpty()) { + if (av.getLengthAlternate() == 0 || av.getLengthReference() == 0) { +// System.out.println("-------" + av + "----------"); +// System.out.println("DBAdaptor " + ev.toJson()); +// System.out.println("Actual " + av.toJson()); + assertNotNull(av.toString(), av.getStudies().get(0).getFiles().get(0).getCall()); + assertNotNull(ev.toString(), ev.getStudies().get(0).getFiles().get(0).getCall()); + ev.getStudies().get(0).getSamples().forEach(s -> s.setFileIndex(null)); + av.getStudies().get(0).getSamples().forEach(s -> s.setFileIndex(null)); + } + } + try { + assertEquals(ev, av); + } catch (AssertionError error) { + System.out.println("-------" + av + "----------"); + System.out.println("DBAdaptor " + ev.toJson()); + System.out.println("Actual " + av.toJson()); + throw error; + } + } +// assertEquals(expectedVariants, actualVariants); assertEquals(count, actualVariants.size()); } } - -/* - -10:101166544:C:T, 10:101473218:A:G, 10:104229785:C:T, 10:105194086:C:T, 10:11805354:A:G, 10:119043554:C:T, 10:121086097:A:T, 10:123976285:G:A, 10:129899922:T:C, 10:134013974:C:A, 10:135000148:T:C, 10:14941654:C:T, 10:21104613:T:C, 10:26463043:A:T, 10:27964470:G:A, 10:28345418:T:C, 10:33137551:T:C, 10:45953767:A:G, 10:46965018:C:G, 10:49659637:T:C, 10:5435918:G:A, 10:6063508:G:A, 10:61665886:C:A, 10:64573771:C:T, 10:69926319:C:A, 10:71027231:G:C, 10:73044580:G:A, 10:75871735:C:G, 10:7601810:TTTTG:-, 10:81065938:C:T, 10:85997105:G:T, 10:88696622:C:G, 10:88702350:G:C, 10:88730312:T:C, 10:92456132:T:C, 10:93841227:A:G, 10:95552653:T:C, 10:96163039:C:G, 10:99006083:G:A, 10:99130282:T:G, 11:103229027:T:C, 11:1087972:C:T, 11:111324266:T:A, 11:1158073:T:C, 11:117376413:G:A, 11:118529069:G:C, 11:121491782:G:A, 11:123777498:C:T, 11:124015994:C:T, 11:125707761:A:C, 11:1272559:C:T, 11:128781978:T:G, 11:134158745:A:G, 11:1502097:A:G, 11:18210580:C:T, 11:1858262:C:T, 11:233067:C:T, 11:284299:A:G, 11:2869188:C:T, 11:31703352:C:T, 11:36458997:A:G, 11:46745003:C:T, 11:4730985:C:T, 11:47469439:A:G, 11:4791111:T:C, 11:48285982:CTT:-, 11:4976554:A:G, 11:5079946:C:T, 11:51516000:C:T, 11:5248243:A:G, 11:5510598:A:T, 11:5510626:T:C, 11:551753:G:A, 11:55340379:T:C, 11:57982832:T:A, 11:5809548:G:A, 11:6007899:C:T, 11:60285575:A:G, 11:60698054:G:A, 11:60701987:G:A, 11:62010863:C:T, 11:6243804:A:G, 11:62847453:T:C, 11:62951221:C:G, 11:63991581:G:A, 11:64367862:T:C, 11:64591972:T:C, 11:64808682:C:-, 11:67258391:A:G, 11:6789929:C:A, 11:68030173:C:A, 11:68703959:A:G, 11:70279766:C:T, 11:7324475:T:C, 11:73681135:G:A, 11:77635882:A:C, 11:77920930:A:G, 11:870446:G:A, 11:87908448:A:G, 11:89224131:-:TC, 11:92088177:C:T, 11:93517874:C:G, 12:10206925:A:G, 12:104709559:C:T, 12:105568176:G:A, 12:10588530:C:G, 12:10958658:T:C, 12:109696838:G:A, 12:109937534:G:A, 12:110893682:C:A, 12:112580071:C:T, 12:113357209:G:A, 12:11420941:G:T, 12:114377885:G:C, 12:117693817:G:A, 12:118199286:C:G, 12:11905443:G:T, 12:122674758:G:A, 12:123345736:C:G, 12:123799974:A:G, 12:124325977:T:G, 12:124417889:C:T, 12:124968359:C:T, 12:129189702:C:G, 12:129566340:G:A, 12:13214537:A:G, 12:133202004:C:T, 12:133331459:G:C, 12:18443809:C:A, 12:19506870:C:G, 12:26217567:T:C, 12:27077409:G:A, 12:49390677:T:C, 12:50189807:C:A, 12:50190653:C:T, 12:50744119:G:A, 12:51237816:G:A, 12:52885350:T:C, 12:52886911:T:C, 12:52981512:G:A, 12:53217701:C:A, 12:55808469:C:G, 12:55820121:C:T, 12:56335107:A:G, 12:57109931:A:T, 12:57619362:G:A, 12:6091000:A:G, 12:63083521:G:A, 12:6424188:T:C, 12:7981462:T:A, 12:9083336:A:G, 12:93147907:A:T, 12:94976084:T:C, 12:97254620:G:A, 13:110436232:G:A, 13:111319754:T:C, 13:111368164:T:G, 13:113979969:-:CACA, 13:19999913:G:A, 13:23907677:C:T, 13:24243200:T:C, 13:25265139:T:C, 13:26043182:A:C, 13:28009031:G:C, 13:31495179:G:A, 13:31729729:A:G, 13:33590851:T:C, 13:47243196:C:G, 13:52660472:G:A, 13:52951802:T:C, 13:64417500:C:G, 13:95726541:A:G, 13:95863008:C:A, 14:100625902:C:T, 14:101200645:T:C, 14:101350721:T:C, 14:103986255:C:T, 14:105187469:G:A, 14:105344823:G:A, 14:105414252:C:T, 14:105419234:T:C, 14:20528362:A:G, 14:20586432:C:T, 14:21467913:T:G, 14:21511497:C:T, 14:22133997:A:G, 14:39648629:C:T, 14:51057727:G:A, 14:51368610:A:G, 14:52186966:G:A, 14:60574539:A:G, 14:69704553:G:T, 14:75513883:T:C, 14:77942316:G:A, 14:88477882:A:C, 14:90398907:G:A, 14:92088016:G:A, 14:95903306:GTA:-, 14:97002317:G:A, 15:100269796:A:G, 15:29415698:A:G, 15:34673722:C:T, 15:40914177:T:C, 15:41148199:C:T, 15:41149161:G:C, 15:41991315:A:T, 15:42139642:C:T, 15:51217361:T:C, 15:52353498:C:G, 15:52901977:G:A, 15:56959028:C:T, 15:63340647:A:G, 15:63433766:G:A, 15:65715171:G:A, 15:68596203:C:A, 15:68624290:G:A, 15:73994847:C:A, 15:78632830:C:G, 15:79058968:T:C, 15:80215597:G:T, 15:82443939:G:A, 15:84255758:T:C, 15:90126121:C:T, 15:90168693:T:A, 15:90226947:C:A, 15:90628591:G:A, 16:1291250:C:G, 16:16278863:G:T, 16:18872050:C:T, 16:19509305:C:G, 16:1961674:G:C, 16:20376755:T:C, 16:20648702:G:A, 16:23546561:G:C, 16:2815237:A:C, 16:29814234:G:A, 16:3085335:G:C, 16:31004169:T:C, 16:31091209:T:C, 16:3199713:C:T, 16:3297181:C:T, 16:33961918:G:T, 16:3639139:A:G, 16:427820:C:T, 16:4432029:A:C, 16:4938160:T:G, 16:50342658:C:T, 16:51173559:G:A, 16:5140541:G:C, 16:53636000:G:A, 16:68598007:A:G, 16:68712730:C:A, 16:69364437:G:A, 16:70161263:T:C, 16:71660310:G:A, 16:72110541:G:A, 16:76311603:-:T, 16:81211548:G:A, 16:83984844:A:C, 16:84229559:T:C, 16:84229580:C:T, 16:84516309:G:A, 16:84691433:C:T, 16:8738579:A:G, 16:88713236:A:G, 16:88724347:G:T, 16:88805183:G:A, 16:89590168:-:TA, 17:10544416:G:T, 17:11523082:A:G, 17:15341183:A:C, 17:17696531:G:C, 17:21203964:C:G, 17:21318770:G:A, 17:29161358:C:T, 17:30469423:C:A, 17:34328461:A:G, 17:3594277:G:-, 17:3628362:T:C, 17:36478450:G:T, 17:36963226:G:T, 17:38122686:G:A, 17:38955961:G:A, 17:3909383:G:C, 17:39135207:A:G, 17:39334133:T:C, 17:3947533:G:A, 17:39633349:G:C, 17:39661689:G:A, 17:39983849:G:C, 17:41891589:G:A, 17:4463713:A:G, 17:47210506:C:A, 17:47572518:C:T, 17:48452776:A:C, 17:4926882:A:G, 17:56232675:G:A, 17:56598439:T:C, 17:60503892:A:G, 17:6157:A:G, 17:62019103:G:T, 17:65104743:G:A, 17:6515454:C:T, 17:66416357:C:T, 17:6943266:G:A, 17:71390366:C:A, 17:72346855:T:C, 17:7293715:C:T, 17:73949555:C:T, 17:74287204:C:G, 17:74468111:G:A, 17:76230729:T:C, 17:76462770:G:A, 17:7681412:C:G, 17:79477830:C:T, 17:79478019:G:A, 17:8021608:G:C, 17:80391684:A:G, 17:8243661:G:A, 17:8416901:C:T, 18:11609978:C:T, 18:13056682:G:A, 18:13069782:C:T, 18:14752957:G:A, 18:166819:T:C, 18:21100240:C:T, 18:2707619:G:A, 18:28710615:C:A, 18:3164385:C:T, 18:42529996:G:C, 18:56205262:A:C, 18:60191428:G:A, 18:60237388:A:G, 18:61390361:T:C, 18:76753768:C:G, 18:77171061:T:G, 18:77894844:G:A, 18:8784612:A:G, 18:9887205:A:G, 19:10106787:G:A, 19:10221642:A:G, 19:1032689:G:T, 19:10450285:G:A, 19:1047002:A:G, 19:11465316:G:C, 19:12936617:C:G, 19:14495661:A:C, 19:14512489:G:A, 19:14580328:A:G, 19:14589378:C:T, 19:14817548:T:A, 19:14877102:C:T, 19:14910321:A:G, 19:14952017:T:A, 19:15905661:C:A, 19:17450016:T:C, 19:17648350:T:C, 19:18054110:G:A, 19:1811547:A:G, 19:18337260:G:A, 19:18562438:C:T, 19:19168542:A:G, 19:19655670:C:T, 19:1969882:G:T, 19:20229486:G:A, 19:20807047:A:G, 19:21477431:T:C, 19:21606429:G:T, 19:30199200:C:T, 19:33110204:T:C, 19:33792748:G:A, 19:35719106:A:G, 19:36940760:G:T, 19:36981137:A:-, 19:37488499:T:C, 19:39923952:G:A, 19:41018832:A:G, 19:41133643:C:T, 19:42085873:A:G, 19:42301763:A:C, 19:4251069:T:C, 19:4322990:G:A, 19:43243238:A:G, 19:4333711:C:T, 19:43585111:C:G, 19:43585325:G:A, 19:43922060:C:T, 19:43983740:T:C, 19:44470420:T:C, 19:44740602:G:A, 19:44934489:G:A, 19:4511278:C:T, 19:48622427:A:G, 19:4910889:G:T, 19:49513273:C:T, 19:49526191:G:A, 19:49869051:T:G, 19:49950298:C:T, 19:49954803:C:T, 19:501725:G:A, 19:501900:C:A, 19:50312653:C:T, 19:51330932:G:T, 19:51850290:G:A, 19:52004792:-:C, 19:52090100:T:C, 19:5212482:G:A, 19:52887247:-:CAA, 19:52942445:C:T, 19:53995004:G:A, 19:5455976:C:T, 19:54599222:G:T, 19:54677759:T:C, 19:55045042:G:A, 19:55526345:T:G, 19:55871019:A:G, 19:55993876:T:C, 19:56114237:G:A, 19:57036012:G:T, 19:57840547:A:G, 19:57931303:C:A, 19:58002964:G:C, 19:58565233:G:A, 19:58904396:G:A, 19:6731057:T:C, 19:7528734:A:G, 19:7571030:T:A, 19:7755056:G:A, 19:8564288:C:T, 19:8576670:C:T, 19:8645786:A:C, 19:9024994:C:T, 19:9065632:T:C, 19:9072742:T:C, 1:100203648:C:T, 1:100515497:T:C, 1:101704674:T:C, 1:104076462:C:T, 1:104116413:T:C, 1:107979396:A:C, 1:109735416:A:C, 1:116534852:C:T, 1:117487710:A:G, 1:11839971:C:T, 1:11848068:G:C, 1:120611554:T:C, 1:120611715:A:G, 1:13910417:C:T, 1:144917841:T:C, 1:146758054:G:A, 1:150526044:G:C, 1:150970577:G:T, 1:152079989:T:G, 1:152185864:G:A, 1:152192825:C:T, 1:152278689:C:A, 1:152325732:G:A, 1:152770533:G:A, 1:156760887:C:A, 1:158735691:T:C, 1:158813081:T:C, 1:15909850:C:G, 1:160648875:C:T, 1:16386447:G:C, 1:16451767:G:A, 1:1650807:T:C, 1:165389129:G:A, 1:167097739:C:A, 1:169391154:A:G, 1:17586134:A:G, 1:176992553:A:G, 1:17739586:G:A, 1:177902388:G:A, 1:179533915:G:A, 1:182850483:C:T, 1:183184616:C:T, 1:1849529:A:G, 1:18808526:A:C, 1:19175846:T:C, 1:19597420:G:T, 1:200880978:C:T, 1:202129826:T:C, 1:204402500:C:T, 1:208391085:G:A, 1:208391254:C:T, 1:209811886:T:G, 1:21050958:C:T, 1:212873074:C:T, 1:214820299:A:G, 1:215799210:A:G, 1:223717496:C:T, 1:223951857:G:A, 1:225266966:C:G, 1:226553676:C:T, 1:227171487:C:T, 1:228496014:G:A, 1:228504670:C:T, 1:228559994:C:T, 1:229622162:A:G, 1:229623338:T:C, 1:23111551:A:T, 1:234745009:A:G, 1:235652513:T:C, 1:237890437:C:T, 1:2441358:T:C, 1:245133550:GC:-, 1:245704130:G:C, 1:2458010:G:C, 1:247902448:G:A, 1:248436611:G:A, 1:248458876:T:-, 1:248487016:C:T, 1:248525060:T:A, 1:248737511:A:G, 1:25291010:A:T, 1:25890189:A:G, 1:27320356:T:C, 1:29189597:C:T, 1:29475648:T:G, 1:32148571:A:G, 1:33161212:T:C, 1:34330067:A:C, 1:40881041:C:G, 1:40980731:G:T, 1:41285553:T:C, 1:43296173:C:T, 1:47133811:T:C, 1:54605320:-:C, 1:55075062:C:T, 1:59125683:C:T, 1:60381646:C:T, 1:6162054:T:C, 1:62603421:C:T, 1:65860687:A:C, 1:67313249:G:A, 1:67558739:C:T, 1:67852335:G:A, 1:75672376:A:G, 1:76198785:G:A, 1:7797503:C:G, 1:7909737:C:T, 1:84880380:T:C, 1:84944989:A:G, 1:89426902:G:A, 1:89847411:C:T, 1:9009406:C:T, 1:90178336:G:A, 1:92445257:C:G, 20:1600524:T:C, 20:23017017:T:C, 20:25255338:C:T, 20:30795819:T:C, 20:31024207:C:T, 20:31044088:C:T, 20:31897554:G:C, 20:3209072:A:C, 20:36979265:T:C, 20:40714479:G:A, 20:4163302:A:G, 20:42815190:G:A, 20:43379268:C:A, 20:44680412:C:T, 20:44996182:A:G, 20:57045667:T:C, 20:57244493:G:A, 20:60293919:C:A, 20:60640306:GCCAGG:-, 20:61167883:G:A, 20:61881296:A:G, 20:62903550:A:G, 20:7980390:C:T, 21:15954528:G:A, 21:28216674:G:C, 21:33717877:G:A, 21:33956579:T:C, 21:34883618:T:C, 21:37420650:G:A, 21:38437917:A:C, 21:40191638:A:G, 21:43547788:T:C, 21:43824123:G:C, 21:45107518:A:G, 21:45959386:G:A, 21:46020527:C:T, 21:46271452:C:T, 21:47831866:G:A, 22:17469026:G:A, 22:18835221:A:G, 22:19753449:A:G, 22:20780030:-:C, 22:20800835:A:G, 22:21044998:C:T, 22:24109774:T:G, 22:24891380:C:T, 22:26862041:G:A, 22:29454778:G:A, 22:32334229:A:C, 22:36591380:A:G, 22:38369976:A:G, 22:38485540:A:G, 22:41548008:A:G, 22:42416056:A:G, 22:44681612:A:G, 22:45685002:A:G, 22:45813687:G:A, 22:50547247:A:G, 22:50962208:T:G, 2:101096960:C:T, 2:101594191:C:T, 2:107073469:T:A, 2:109381927:A:C, 2:112686988:G:A, 2:120199140:A:G, 2:129025758:C:A, 2:130897620:A:G, 2:136594158:G:A, 2:158636910:G:A, 2:159663599:T:C, 2:159954175:C:T, 2:160035207:T:C, 2:160738677:G:A, 2:160968628:A:G, 2:169985338:C:T, 2:170053505:C:T, 2:170218847:C:G, 2:170354138:G:A, 2:171822466:C:T, 2:172725301:A:G, 2:172945107:C:T, 2:174097106:A:G, 2:176945176:C:G, 2:17698678:A:G, 2:178417142:C:T, 2:179464527:T:C, 2:179578704:G:A, 2:185800905:A:T, 2:186673485:C:T, 2:189932831:T:C, 2:197004439:A:G, 2:203686202:T:C, 2:207041933:T:C, 2:216242917:T:A, 2:219602819:G:A, 2:220283277:T:C, 2:225719693:G:A, 2:228776996:T:C, 2:233712227:ACA:-, 2:233750074:C:T, 2:234707460:G:C, 2:238277795:A:G, 2:240982131:A:G, 2:240985099:G:A, 2:241404317:C:T, 2:241451351:G:A, 2:24149439:G:A, 2:24432839:A:G, 2:277003:A:G, 2:32713706:A:T, 2:32822957:G:A, 2:3392295:A:G, 2:38298139:T:C, 2:55096321:T:C, 2:61647901:A:G, 2:71190384:C:T, 2:71221822:A:G, 2:73339708:G:A, 2:75937801:C:T, 2:96626292:C:T, 2:97637905:T:C, 2:98274527:G:C, 2:99778985:T:C, 3:100712249:T:C, 3:100963154:G:A, 3:101283792:C:G, 3:108634973:C:A, 3:108719470:C:G, 3:111981878:T:C, 3:112993367:G:A, 3:121100283:G:A, 3:121263720:C:A, 3:121351338:C:T, 3:121416623:G:C, 3:123452838:G:A, 3:124379817:T:C, 3:125726048:G:C, 3:1262474:T:C, 3:128369596:A:C, 3:130368301:G:A, 3:13421150:C:T, 3:14183188:G:A, 3:146177815:C:T, 3:14755572:A:G, 3:148847613:G:T, 3:151090424:G:A, 3:154002714:A:G, 3:183823576:T:C, 3:183951431:C:T, 3:183975408:G:A, 3:184003317:C:T, 3:18427924:G:T, 3:190578566:A:G, 3:191093310:A:G, 3:194081635:T:C, 3:195510217:A:G, 3:195701388:G:A, 3:195938177:A:G, 3:196046830:A:G, 3:27472936:C:T, 3:38151731:T:C, 3:38798171:C:T, 3:49690199:G:A, 3:51990315:A:G, 3:52544470:A:G, 3:52825585:T:C, 3:56627598:A:G, 3:56716922:T:G, 3:66287056:G:A, 3:97365074:A:G, 3:97983257:C:G, 3:9798773:C:G, 3:98073313:A:G, 4:104004064:T:C, 4:106155185:C:G, 4:107168431:G:C, 4:109010342:G:A, 4:113352397:G:A, 4:123664204:G:A, 4:129043204:C:G, 4:1388583:A:G, 4:154479430:T:C, 4:155256177:A:G, 4:15569018:G:A, 4:164435265:A:C, 4:173852389:C:T, 4:189012728:G:C, 4:3519881:C:T, 4:39094738:G:A, 4:42003671:A:G, 4:4249884:G:T, 4:42895308:G:A, 4:46086060:T:C, 4:56262374:A:G, 4:5785442:G:A, 4:5991384:T:C, 4:5991476:G:A, 4:69095197:T:C, 4:69687987:C:A, 4:70160342:T:C, 4:7043945:G:T, 4:71469604:C:T, 4:75719517:A:C, 4:7717012:G:A, 4:80905990:C:G, 4:83838262:G:T, 4:84376743:A:T, 4:95578588:G:A, 5:10282396:A:G, 5:109181682:A:T, 5:111611076:A:G, 5:121488506:C:G, 5:122425832:G:T, 5:125802027:G:A, 5:127609633:G:A, 5:134782450:T:A, 5:135388663:A:G, 5:136961566:C:A, 5:13701525:T:C, 5:138861078:C:T, 5:140346468:T:A, 5:140531374:T:C, 5:140605162:C:G, 5:140772427:T:G, 5:141335284:G:A, 5:145508340:A:G, 5:148207447:G:C, 5:154271948:G:A, 5:159835658:A:G, 5:16794916:G:A, 5:169454941:C:G, 5:171723739:T:C, 5:175792605:G:C, 5:176863519:G:C, 5:177422908:A:G, 5:180472498:C:T, 5:32087253:A:G, 5:35861068:T:C, 5:40998196:T:C, 5:41158863:G:A, 5:42719239:A:C, 5:476353:C:T, 5:54253615:C:T, 5:54404015:C:T, 5:56526783:G:A, 5:57751443:A:G, 5:57753149:A:G, 5:73076511:C:A, 5:78340257:C:G, 5:82833391:A:G, 5:89943571:G:T, 5:89985882:A:G, 5:9190404:G:A, 5:95234392:A:C, 5:96237326:G:A, 6:107113715:G:A, 6:111696257:G:A, 6:117246719:C:T, 6:129691132:C:G, 6:133035098:G:A, 6:136683828:A:G, 6:146112348:T:C, 6:151669875:A:G, 6:152470752:C:A, 6:152489294:T:C, 6:155141313:C:T, 6:155597147:C:T, 6:160858188:G:A, 6:166720806:G:C, 6:166873010:C:T, 6:167790110:C:T, 6:170485571:T:C, 6:17665479:G:C, 6:26056549:A:G, 6:26104217:T:C, 6:26370605:T:C, 6:27279852:T:C, 6:29080450:G:A, 6:29911064:A:G, 6:30313268:G:A, 6:30893127:G:A, 6:31110391:G:C, 6:31324864:G:A, 6:31378977:G:A, 6:31540784:C:A, 6:31555657:A:G, 6:31839309:C:T, 6:32370908:T:A, 6:32489748:-:CC, 6:32551959:-:TT, 6:32609271:G:C, 6:32632714:G:C, 6:32802938:C:T, 6:32826233:A:G, 6:32974551:G:T, 6:33756532:G:A, 6:36198421:T:C, 6:36446975:G:C, 6:38746176:G:A, 6:4122249:C:A, 6:41773735:G:A, 6:43251912:A:G, 6:47649265:T:A, 6:51483961:T:C, 6:54186147:T:C, 6:56470690:G:A, 6:62390916:T:C, 6:65300143:G:C, 6:656555:G:T, 6:7246998:G:A, 6:72889472:A:G, 6:74354175:C:T, 6:79656570:G:A, 6:82461520:A:G, 6:83949261:T:C, 6:84799059:C:T, 6:90459454:G:A, 6:9900600:-:GAG, 7:100391581:T:C, 7:100807230:G:T, 7:102112980:G:A, 7:104110492:C:T, 7:106524689:C:T, 7:107834734:C:T, 7:117282644:A:G, 7:12417407:C:T, 7:134925411:G:A, 7:138732497:G:A, 7:150696111:T:G, 7:150935430:G:C, 7:154681216:G:A, 7:156742675:C:T, 7:20698270:A:G, 7:20778646:G:A, 7:2645526:G:A, 7:30915262:C:T, 7:31009576:G:T, 7:36366483:G:C, 7:37907304:T:C, 7:43664280:A:G, 7:44620836:C:A, 7:45124465:A:T, 7:47872845:A:G, 7:50435777:T:G, 7:5112057:C:G, 7:5518331:A:G, 7:55433884:A:C, 7:6026988:G:A, 7:63225873:C:T, 7:6550540:G:A, 7:66098384:G:A, 7:66703328:G:A, 7:75659815:T:C, 7:87160618:A:C, 7:91503228:C:T, 7:92098776:C:T, 7:97823125:G:A, 7:99580907:C:G, 8:104337096:A:G, 8:10480268:A:C, 8:110302047:T:G, 8:11996150:C:G, 8:124448804:T:A, 8:124665124:C:T, 8:12878807:T:G, 8:142367400:G:A, 8:142488837:G:A, 8:144332082:T:C, 8:144671685:G:C, 8:144697041:A:G, 8:144946252:C:T, 8:144995736:G:A, 8:144998514:C:T, 8:145693720:A:G, 8:146033347:T:C, 8:146115367:A:G, 8:146156247:C:A, 8:18257854:T:C, 8:2021421:G:T, 8:22864622:T:C, 8:23150878:T:G, 8:27634589:T:C, 8:27925796:A:T, 8:30585310:T:C, 8:30695226:C:T, 8:3200877:C:T, 8:41132742:A:T, 8:48173561:G:A, 8:57026229:C:A, 8:74005131:A:G, 8:74888616:G:C, 8:75157094:C:T, 8:75737733:A:G, 8:8234192:G:C, 8:977600:C:T, 9:103064530:G:A, 9:107361439:G:C, 9:112069477:T:A, 9:113169630:T:C, 9:115968797:C:T, 9:116028559:C:A, 9:117835931:G:A, 9:125637471:A:T, 9:125920376:G:A, 9:126520068:T:C, 9:127220952:T:C, 9:131403096:A:G, 9:131689361:G:A, 9:132382596:C:A, 9:132591509:A:G, 9:133710820:-:C, 9:133761001:A:G, 9:133951230:C:T, 9:135139901:T:C, 9:136340200:T:G, 9:138591266:A:G, 9:139100805:T:C, 9:139273288:C:T, 9:139391636:G:A, 9:139413908:C:T, 9:139650678:A:G, 9:139656670:T:C, 9:139937795:T:C, 9:139990813:C:T, 9:14775859:G:A, 9:17466802:A:G, 9:18681821:A:G, 9:19058483:C:A, 9:27524731:A:G, 9:33935736:A:G, 9:34379692:C:T, 9:35606884:G:A, 9:35870001:T:C, 9:37441650:T:C, 9:429719:T:C, 9:90343780:A:C, 9:91978397:C:T, X:107976940:G:C, X:11316892:C:T, X:117700141:A:G, X:13677862:G:A, X:153151285:T:-, X:2408437:G:A, X:295231:A:G, X:3241791:G:A, X:45051111:C:T, X:48460314:A:G, X:70146475:G:C -1:1650807:T:C, 1:1849529:A:G, 1:2441358:T:C, 1:2458010:G:C, 1:6162054:T:C, 1:7797503:C:G, 1:7909737:C:T, 1:9009406:C:T, 1:11839971:C:T, 1:11848068:G:C, 1:13910417:C:T, 1:15909850:C:G, 1:16386447:G:C, 1:16451767:G:A, 1:17586134:A:G, 1:17739586:G:A, 1:18808526:A:C, 1:19175846:T:C, 1:19597420:G:T, 1:21050958:C:T, 1:23111551:A:T, 1:25291010:A:T, 1:25890189:A:G, 1:27320356:T:C, 1:29189597:C:T, 1:29475648:T:G, 1:32148571:A:G, 1:33161212:T:C, 1:34330067:A:C, 1:40881041:C:G, 1:40980731:G:T, 1:41285553:T:C, 1:43296173:C:T, 1:47133811:T:C, 1:54605320:-:C, 1:55075062:C:T, 1:59125683:C:T, 1:60381646:C:T, 1:62603421:C:T, 1:65860687:A:C, 1:67313249:G:A, 1:67558739:C:T, 1:67852335:G:A, 1:75672376:A:G, 1:76198785:G:A, 1:84880380:T:C, 1:84944989:A:G, 1:89426902:G:A, 1:89847411:C:T, 1:90178336:G:A, 1:92445257:C:G, 1:100203648:C:T, 1:100515497:T:C, 1:101704674:T:C, 1:104076462:C:T, 1:104116413:T:C, 1:107979396:A:C, 1:109735416:A:C, 1:116534852:C:T, 1:117487710:A:G, 1:120611554:T:C, 1:120611715:A:G, 1:144917841:T:C, 1:146758054:G:A, 1:150526044:G:C, 1:150970577:G:T, 1:152079989:T:G, 1:152185864:G:A, 1:152192825:C:T, 1:152278689:C:A, 1:152325732:G:A, 1:152770533:G:A, 1:156760887:C:A, 1:158735691:T:C, 1:158813081:T:C, 1:160648875:C:T, 1:165389129:G:A, 1:167097739:C:A, 1:169391154:A:G, 1:176992553:A:G, 1:177902388:G:A, 1:179533915:G:A, 1:182850483:C:T, 1:183184616:C:T, 1:200880978:C:T, 1:202129826:T:C, 1:204402500:C:T, 1:208391085:G:A, 1:208391254:C:T, 1:209811886:T:G, 1:212873074:C:T, 1:214820299:A:G, 1:215799210:A:G, 1:223717496:C:T, 1:223951857:G:A, 1:225266966:C:G, 1:226553676:C:T, 1:227171487:C:T, 1:228496014:G:A, 1:228504670:C:T, 1:228559994:C:T, 1:229622162:A:G, 1:229623338:T:C, 1:234745009:A:G, 1:235652513:T:C, 1:237890437:C:T, 1:245133550:GC:-, 1:245704130:G:C, 1:247902448:G:A, 1:248436611:G:A, 1:248458876:T:-, 1:248487016:C:T, 1:248525060:T:A, 1:248737511:A:G, 10:5435918:G:A, 10:6063508:G:A, 10:7601810:TTTTG:-, 10:11805354:A:G, 10:14941654:C:T, 10:21104613:T:C, 10:26463043:A:T, 10:27964470:G:A, 10:28345418:T:C, 10:33137551:T:C, 10:45953767:A:G, 10:46965018:C:G, 10:49659637:T:C, 10:61665886:C:A, 10:64573771:C:T, 10:69926319:C:A, 10:71027231:G:C, 10:73044580:G:A, 10:75871735:C:G, 10:81065938:C:T, 10:85997105:G:T, 10:88696622:C:G, 10:88702350:G:C, 10:88730312:T:C, 10:92456132:T:C, 10:93841227:A:G, 10:95552653:T:C, 10:96163039:C:G, 10:99006083:G:A, 10:99130282:T:G, 10:101166544:C:T, 10:101473218:A:G, 10:104229785:C:T, 10:105194086:C:T, 10:119043554:C:T, 10:121086097:A:T, 10:123976285:G:A, 10:129899922:T:C, 10:134013974:C:A, 10:135000148:T:C, 11:233067:C:T, 11:284299:A:G, 11:551753:G:A, 11:870446:G:A, 11:1087972:C:T, 11:1158073:T:C, 11:1272559:C:T, 11:1502097:A:G, 11:1858262:C:T, 11:2869188:C:T, 11:4730985:C:T, 11:4791111:T:C, 11:4976554:A:G, 11:5079946:C:T, 11:5248243:A:G, 11:5510598:A:T, 11:5510626:T:C, 11:5809548:G:A, 11:6007899:C:T, 11:6243804:A:G, 11:6789929:C:A, 11:7324475:T:C, 11:18210580:C:T, 11:31703352:C:T, 11:36458997:A:G, 11:46745003:C:T, 11:47469439:A:G, 11:48285982:CTT:-, 11:51516000:C:T, 11:55340379:T:C, 11:57982832:T:A, 11:60285575:A:G, 11:60698054:G:A, 11:60701987:G:A, 11:62010863:C:T, 11:62847453:T:C, 11:62951221:C:G, 11:63991581:G:A, 11:64367862:T:C, 11:64591972:T:C, 11:64808682:C:-, 11:67258391:A:G, 11:68030173:C:A, 11:68703959:A:G, 11:70279766:C:T, 11:73681135:G:A, 11:77635882:A:C, 11:77920930:A:G, 11:87908448:A:G, 11:89224131:-:TC, 11:92088177:C:T, 11:93517874:C:G, 11:103229027:T:C, 11:111324266:T:A, 11:117376413:G:A, 11:118529069:G:C, 11:121491782:G:A, 11:123777498:C:T, 11:124015994:C:T, 11:125707761:A:C, 11:128781978:T:G, 11:134158745:A:G, 12:6091000:A:G, 12:6424188:T:C, 12:7981462:T:A, 12:9083336:A:G, 12:10206925:A:G, 12:10588530:C:G, 12:10958658:T:C, 12:11420941:G:T, 12:11905443:G:T, 12:13214537:A:G, 12:18443809:C:A, 12:19506870:C:G, 12:26217567:T:C, 12:27077409:G:A, 12:49390677:T:C, 12:50189807:C:A, 12:50190653:C:T, 12:50744119:G:A, 12:51237816:G:A, 12:52885350:T:C, 12:52886911:T:C, 12:52981512:G:A, 12:53217701:C:A, 12:55808469:C:G, 12:55820121:C:T, 12:56335107:A:G, 12:57109931:A:T, 12:57619362:G:A, 12:63083521:G:A, 12:93147907:A:T, 12:94976084:T:C, 12:97254620:G:A, 12:104709559:C:T, 12:105568176:G:A, 12:109696838:G:A, 12:109937534:G:A, 12:110893682:C:A, 12:112580071:C:T, 12:113357209:G:A, 12:114377885:G:C, 12:117693817:G:A, 12:118199286:C:G, 12:122674758:G:A, 12:123345736:C:G, 12:123799974:A:G, 12:124325977:T:G, 12:124417889:C:T, 12:124968359:C:T, 12:129189702:C:G, 12:129566340:G:A, 12:133202004:C:T, 12:133331459:G:C, 13:19999913:G:A, 13:23907677:C:T, 13:24243200:T:C, 13:25265139:T:C, 13:26043182:A:C, 13:28009031:G:C, 13:31495179:G:A, 13:31729729:A:G, 13:33590851:T:C, 13:47243196:C:G, 13:52660472:G:A, 13:52951802:T:C, 13:64417500:C:G, 13:95726541:A:G, 13:95863008:C:A, 13:110436232:G:A, 13:111319754:T:C, 13:111368164:T:G, 13:113979969:-:CACA, 14:20528362:A:G, 14:20586432:C:T, 14:21467913:T:G, 14:21511497:C:T, 14:22133997:A:G, 14:39648629:C:T, 14:51057727:G:A, 14:51368610:A:G, 14:52186966:G:A, 14:60574539:A:G, 14:69704553:G:T, 14:75513883:T:C, 14:77942316:G:A, 14:88477882:A:C, 14:90398907:G:A, 14:92088016:G:A, 14:95903306:GTA:-, 14:97002317:G:A, 14:100625902:C:T, 14:101200645:T:C, 14:101350721:T:C, 14:103986255:C:T, 14:105187469:G:A, 14:105344823:G:A, 14:105414252:C:T, 14:105419234:T:C, 15:29415698:A:G, 15:34673722:C:T, 15:40914177:T:C, 15:41148199:C:T, 15:41149161:G:C, 15:41991315:A:T, 15:42139642:C:T, 15:51217361:T:C, 15:52353498:C:G, 15:52901977:G:A, 15:56959028:C:T, 15:63340647:A:G, 15:63433766:G:A, 15:65715171:G:A, 15:68596203:C:A, 15:68624290:G:A, 15:73994847:C:A, 15:78632830:C:G, 15:79058968:T:C, 15:80215597:G:T, 15:82443939:G:A, 15:84255758:T:C, 15:90126121:C:T, 15:90168693:T:A, 15:90226947:C:A, 15:90628591:G:A, 15:100269796:A:G, 16:427820:C:T, 16:1291250:C:G, 16:1961674:G:C, 16:2815237:A:C, 16:3085335:G:C, 16:3199713:C:T, 16:3297181:C:T, 16:3639139:A:G, 16:4432029:A:C, 16:4938160:T:G, 16:5140541:G:C, 16:8738579:A:G, 16:16278863:G:T, 16:18872050:C:T, 16:19509305:C:G, 16:20376755:T:C, 16:20648702:G:A, 16:23546561:G:C, 16:29814234:G:A, 16:31004169:T:C, 16:31091209:T:C, 16:33961918:G:T, 16:50342658:C:T, 16:51173559:G:A, 16:53636000:G:A, 16:68598007:A:G, 16:68712730:C:A, 16:69364437:G:A, 16:70161263:T:C, 16:71660310:G:A, 16:72110541:G:A, 16:76311603:-:T, 16:81211548:G:A, 16:83984844:A:C, 16:84229559:T:C, 16:84229580:C:T, 16:84516309:G:A, 16:84691433:C:T, 16:88713236:A:G, 16:88724347:G:T, 16:88805183:G:A, 16:89590168:-:TA, 17:6157:A:G, 17:3594277:G:-, 17:3628362:T:C, 17:3909383:G:C, 17:3947533:G:A, 17:4463713:A:G, 17:4926882:A:G, 17:6515454:C:T, 17:6943266:G:A, 17:7293715:C:T, 17:7681412:C:G, 17:8021608:G:C, 17:8243661:G:A, 17:8416901:C:T, 17:10544416:G:T, 17:11523082:A:G, 17:15341183:A:C, 17:17696531:G:C, 17:21203964:C:G, 17:21318770:G:A, 17:29161358:C:T, 17:30469423:C:A, 17:34328461:A:G, 17:36478450:G:T, 17:36963226:G:T, 17:38122686:G:A, 17:38955961:G:A, 17:39135207:A:G, 17:39334133:T:C, 17:39633349:G:C, 17:39661689:G:A, 17:39983849:G:C, 17:41891589:G:A, 17:47210506:C:A, 17:47572518:C:T, 17:48452776:A:C, 17:56232675:G:A, 17:56598439:T:C, 17:60503892:A:G, 17:62019103:G:T, 17:65104743:G:A, 17:66416357:C:T, 17:71390366:C:A, 17:72346855:T:C, 17:73949555:C:T, 17:74287204:C:G, 17:74468111:G:A, 17:76230729:T:C, 17:76462770:G:A, 17:79477830:C:T, 17:79478019:G:A, 17:80391684:A:G, 18:166819:T:C, 18:2707619:G:A, 18:3164385:C:T, 18:8784612:A:G, 18:9887205:A:G, 18:11609978:C:T, 18:13056682:G:A, 18:13069782:C:T, 18:14752957:G:A, 18:21100240:C:T, 18:28710615:C:A, 18:42529996:G:C, 18:56205262:A:C, 18:60191428:G:A, 18:60237388:A:G, 18:61390361:T:C, 18:76753768:C:G, 18:77171061:T:G, 18:77894844:G:A, 19:501725:G:A, 19:501900:C:A, 19:1032689:G:T, 19:1047002:A:G, 19:1811547:A:G, 19:1969882:G:T, 19:4251069:T:C, 19:4322990:G:A, 19:4333711:C:T, 19:4511278:C:T, 19:4910889:G:T, 19:5212482:G:A, 19:5455976:C:T, 19:6731057:T:C, 19:7528734:A:G, 19:7571030:T:A, 19:7755056:G:A, 19:8564288:C:T, 19:8576670:C:T, 19:8645786:A:C, 19:9024994:C:T, 19:9065632:T:C, 19:9072742:T:C, 19:10106787:G:A, 19:10221642:A:G, 19:10450285:G:A, 19:11465316:G:C, 19:12936617:C:G, 19:14495661:A:C, 19:14512489:G:A, 19:14580328:A:G, 19:14589378:C:T, 19:14817548:T:A, 19:14877102:C:T, 19:14910321:A:G, 19:14952017:T:A, 19:15905661:C:A, 19:17450016:T:C, 19:17648350:T:C, 19:18054110:G:A, 19:18337260:G:A, 19:18562438:C:T, 19:19168542:A:G, 19:19655670:C:T, 19:20229486:G:A, 19:20807047:A:G, 19:21477431:T:C, 19:21606429:G:T, 19:30199200:C:T, 19:33110204:T:C, 19:33792748:G:A, 19:35719106:A:G, 19:36940760:G:T, 19:36981137:A:-, 19:37488499:T:C, 19:39923952:G:A, 19:41018832:A:G, 19:41133643:C:T, 19:42085873:A:G, 19:42301763:A:C, 19:43243238:A:G, 19:43585111:C:G, 19:43585325:G:A, 19:43922060:C:T, 19:43983740:T:C, 19:44470420:T:C, 19:44740602:G:A, 19:44934489:G:A, 19:48622427:A:G, 19:49513273:C:T, 19:49526191:G:A, 19:49869051:T:G, 19:49950298:C:T, 19:49954803:C:T, 19:50312653:C:T, 19:51330932:G:T, 19:51850290:G:A, 19:52004792:-:C, 19:52090100:T:C, 19:52887247:-:CAA, 19:52942445:C:T, 19:53995004:G:A, 19:54599222:G:T, 19:54677759:T:C, 19:55045042:G:A, 19:55526345:T:G, 19:55871019:A:G, 19:55993876:T:C, 19:56114237:G:A, 19:57036012:G:T, 19:57840547:A:G, 19:57931303:C:A, 19:58002964:G:C, 19:58565233:G:A, 19:58904396:G:A, 2:277003:A:G, 2:3392295:A:G, 2:17698678:A:G, 2:24149439:G:A, 2:24432839:A:G, 2:32713706:A:T, 2:32822957:G:A, 2:38298139:T:C, 2:55096321:T:C, 2:61647901:A:G, 2:71190384:C:T, 2:71221822:A:G, 2:73339708:G:A, 2:75937801:C:T, 2:96626292:C:T, 2:97637905:T:C, 2:98274527:G:C, 2:99778985:T:C, 2:101096960:C:T, 2:101594191:C:T, 2:107073469:T:A, 2:109381927:A:C, 2:112686988:G:A, 2:120199140:A:G, 2:129025758:C:A, 2:130897620:A:G, 2:136594158:G:A, 2:158636910:G:A, 2:159663599:T:C, 2:159954175:C:T, 2:160035207:T:C, 2:160738677:G:A, 2:160968628:A:G, 2:169985338:C:T, 2:170053505:C:T, 2:170218847:C:G, 2:170354138:G:A, 2:171822466:C:T, 2:172725301:A:G, 2:172945107:C:T, 2:174097106:A:G, 2:176945176:C:G, 2:178417142:C:T, 2:179464527:T:C, 2:179578704:G:A, 2:185800905:A:T, 2:186673485:C:T, 2:189932831:T:C, 2:197004439:A:G, 2:203686202:T:C, 2:207041933:T:C, 2:216242917:T:A, 2:219602819:G:A, 2:220283277:T:C, 2:225719693:G:A, 2:228776996:T:C, 2:233712227:ACA:-, 2:233750074:C:T, 2:234707460:G:C, 2:238277795:A:G, 2:240982131:A:G, 2:240985099:G:A, 2:241404317:C:T, 2:241451351:G:A, 20:1600524:T:C, 20:3209072:A:C, 20:4163302:A:G, 20:7980390:C:T, 20:23017017:T:C, 20:25255338:C:T, 20:30795819:T:C, 20:31024207:C:T, 20:31044088:C:T, 20:31897554:G:C, 20:36979265:T:C, 20:40714479:G:A, 20:42815190:G:A, 20:43379268:C:A, 20:44680412:C:T, 20:44996182:A:G, 20:57045667:T:C, 20:57244493:G:A, 20:60293919:C:A, 20:60640306:GCCAGG:-, 20:61167883:G:A, 20:61881296:A:G, 20:62903550:A:G, 21:15954528:G:A, 21:28216674:G:C, 21:33717877:G:A, 21:33956579:T:C, 21:34883618:T:C, 21:37420650:G:A, 21:38437917:A:C, 21:40191638:A:G, 21:43547788:T:C, 21:43824123:G:C, 21:45107518:A:G, 21:45959386:G:A, 21:46020527:C:T, 21:46271452:C:T, 21:47831866:G:A, 22:17469026:G:A, 22:18835221:A:G, 22:19753449:A:G, 22:20780030:-:C, 22:20800835:A:G, 22:21044998:C:T, 22:24109774:T:G, 22:24891380:C:T, 22:26862041:G:A, 22:29454778:G:A, 22:32334229:A:C, 22:36591380:A:G, 22:38369976:A:G, 22:38485540:A:G, 22:41548008:A:G, 22:42416056:A:G, 22:44681612:A:G, 22:45685002:A:G, 22:45813687:G:A, 22:50547247:A:G, 22:50962208:T:G, 3:1262474:T:C, 3:9798773:C:G, 3:13421150:C:T, 3:14183188:G:A, 3:14755572:A:G, 3:18427924:G:T, 3:27472936:C:T, 3:38151731:T:C, 3:38798171:C:T, 3:49690199:G:A, 3:51990315:A:G, 3:52544470:A:G, 3:52825585:T:C, 3:56627598:A:G, 3:56716922:T:G, 3:66287056:G:A, 3:97365074:A:G, 3:97983257:C:G, 3:98073313:A:G, 3:100712249:T:C, 3:100963154:G:A, 3:101283792:C:G, 3:108634973:C:A, 3:108719470:C:G, 3:111981878:T:C, 3:112993367:G:A, 3:121100283:G:A, 3:121263720:C:A, 3:121351338:C:T, 3:121416623:G:C, 3:123452838:G:A, 3:124379817:T:C, 3:125726048:G:C, 3:128369596:A:C, 3:130368301:G:A, 3:146177815:C:T, 3:148847613:G:T, 3:151090424:G:A, 3:154002714:A:G, 3:183823576:T:C, 3:183951431:C:T, 3:183975408:G:A, 3:184003317:C:T, 3:190578566:A:G, 3:191093310:A:G, 3:194081635:T:C, 3:195510217:A:G, 3:195701388:G:A, 3:195938177:A:G, 3:196046830:A:G, 4:1388583:A:G, 4:3519881:C:T, 4:4249884:G:T, 4:5785442:G:A, 4:5991384:T:C, 4:5991476:G:A, 4:7043945:G:T, 4:7717012:G:A, 4:15569018:G:A, 4:39094738:G:A, 4:42003671:A:G, 4:42895308:G:A, 4:46086060:T:C, 4:56262374:A:G, 4:69095197:T:C, 4:69687987:C:A, 4:70160342:T:C, 4:71469604:C:T, 4:75719517:A:C, 4:80905990:C:G, 4:83838262:G:T, 4:84376743:A:T, 4:95578588:G:A, 4:104004064:T:C, 4:106155185:C:G, 4:107168431:G:C, 4:109010342:G:A, 4:113352397:G:A, 4:123664204:G:A, 4:129043204:C:G, 4:154479430:T:C, 4:155256177:A:G, 4:164435265:A:C, 4:173852389:C:T, 4:189012728:G:C, 5:476353:C:T, 5:9190404:G:A, 5:10282396:A:G, 5:13701525:T:C, 5:16794916:G:A, 5:32087253:A:G, 5:35861068:T:C, 5:40998196:T:C, 5:41158863:G:A, 5:42719239:A:C, 5:54253615:C:T, 5:54404015:C:T, 5:56526783:G:A, 5:57751443:A:G, 5:57753149:A:G, 5:73076511:C:A, 5:78340257:C:G, 5:82833391:A:G, 5:89943571:G:T, 5:89985882:A:G, 5:95234392:A:C, 5:96237326:G:A, 5:109181682:A:T, 5:111611076:A:G, 5:121488506:C:G, 5:122425832:G:T, 5:125802027:G:A, 5:127609633:G:A, 5:134782450:T:A, 5:135388663:A:G, 5:136961566:C:A, 5:138861078:C:T, 5:140346468:T:A, 5:140531374:T:C, 5:140605162:C:G, 5:140772427:T:G, 5:141335284:G:A, 5:145508340:A:G, 5:148207447:G:C, 5:154271948:G:A, 5:159835658:A:G, 5:169454941:C:G, 5:171723739:T:C, 5:175792605:G:C, 5:176863519:G:C, 5:177422908:A:G, 5:180472498:C:T, 6:656555:G:T, 6:4122249:C:A, 6:7246998:G:A, 6:9900600:-:GAG, 6:17665479:G:C, 6:26056549:A:G, 6:26104217:T:C, 6:26370605:T:C, 6:27279852:T:C, 6:29080450:G:A, 6:29911064:A:G, 6:30313268:G:A, 6:30893127:G:A, 6:31110391:G:C, 6:31324864:G:A, 6:31378977:G:A, 6:31540784:C:A, 6:31555657:A:G, 6:31839309:C:T, 6:32370908:T:A, 6:32489748:-:CC, 6:32551959:-:TT, 6:32609271:G:C, 6:32632714:G:C, 6:32802938:C:T, 6:32826233:A:G, 6:32974551:G:T, 6:33756532:G:A, 6:36198421:T:C, 6:36446975:G:C, 6:38746176:G:A, 6:41773735:G:A, 6:43251912:A:G, 6:47649265:T:A, 6:51483961:T:C, 6:54186147:T:C, 6:56470690:G:A, 6:62390916:T:C, 6:65300143:G:C, 6:72889472:A:G, 6:74354175:C:T, 6:79656570:G:A, 6:82461520:A:G, 6:83949261:T:C, 6:84799059:C:T, 6:90459454:G:A, 6:107113715:G:A, 6:111696257:G:A, 6:117246719:C:T, 6:129691132:C:G, 6:133035098:G:A, 6:136683828:A:G, 6:146112348:T:C, 6:151669875:A:G, 6:152470752:C:A, 6:152489294:T:C, 6:155141313:C:T, 6:155597147:C:T, 6:160858188:G:A, 6:166720806:G:C, 6:166873010:C:T, 6:167790110:C:T, 6:170485571:T:C, 7:2645526:G:A, 7:5112057:C:G, 7:5518331:A:G, 7:6026988:G:A, 7:6550540:G:A, 7:12417407:C:T, 7:20698270:A:G, 7:20778646:G:A, 7:30915262:C:T, 7:31009576:G:T, 7:36366483:G:C, 7:37907304:T:C, 7:43664280:A:G, 7:44620836:C:A, 7:45124465:A:T, 7:47872845:A:G, 7:50435777:T:G, 7:55433884:A:C, 7:63225873:C:T, 7:66098384:G:A, 7:66703328:G:A, 7:75659815:T:C, 7:87160618:A:C, 7:91503228:C:T, 7:92098776:C:T, 7:97823125:G:A, 7:99580907:C:G, 7:100391581:T:C, 7:100807230:G:T, 7:102112980:G:A, 7:104110492:C:T, 7:106524689:C:T, 7:107834734:C:T, 7:117282644:A:G, 7:134925411:G:A, 7:138732497:G:A, 7:150696111:T:G, 7:150935430:G:C, 7:154681216:G:A, 7:156742675:C:T, 8:977600:C:T, 8:2021421:G:T, 8:3200877:C:T, 8:8234192:G:C, 8:10480268:A:C, 8:11996150:C:G, 8:12878807:T:G, 8:18257854:T:C, 8:22864622:T:C, 8:23150878:T:G, 8:27634589:T:C, 8:27925796:A:T, 8:30585310:T:C, 8:30695226:C:T, 8:41132742:A:T, 8:48173561:G:A, 8:57026229:C:A, 8:74005131:A:G, 8:74888616:G:C, 8:75157094:C:T, 8:75737733:A:G, 8:104337096:A:G, 8:110302047:T:G, 8:124448804:T:A, 8:124665124:C:T, 8:142367400:G:A, 8:142488837:G:A, 8:144332082:T:C, 8:144671685:G:C, 8:144697041:A:G, 8:144946252:C:T, 8:144995736:G:A, 8:144998514:C:T, 8:145693720:A:G, 8:146033347:T:C, 8:146115367:A:G, 8:146156247:C:A, 9:429719:T:C, 9:14775859:G:A, 9:17466802:A:G, 9:18681821:A:G, 9:19058483:C:A, 9:27524731:A:G, 9:33935736:A:G, 9:34379692:C:T, 9:35606884:G:A, 9:35870001:T:C, 9:37441650:T:C, 9:90343780:A:C, 9:91978397:C:T, 9:103064530:G:A, 9:107361439:G:C, 9:112069477:T:A, 9:113169630:T:C, 9:115968797:C:T, 9:116028559:C:A, 9:117835931:G:A, 9:125637471:A:T, 9:125920376:G:A, 9:126520068:T:C, 9:127220952:T:C, 9:131403096:A:G, 9:131689361:G:A, 9:132382596:C:A, 9:132591509:A:G, 9:133710820:-:C, 9:133761001:A:G, 9:133951230:C:T, 9:135139901:T:C, 9:136340200:T:G, 9:138591266:A:G, 9:139100805:T:C, 9:139273288:C:T, 9:139391636:G:A, 9:139413908:C:T, 9:139650678:A:G, 9:139656670:T:C, 9:139937795:T:C, 9:139990813:C:T, X:295231:A:G, X:2408437:G:A, X:3241791:G:A, X:11316892:C:T, X:13677862:G:A, X:45051111:C:T, X:48460314:A:G, X:70146475:G:C, X:107976940:G:C, X:117700141:A:G, X:153151285:T:- - - */ \ No newline at end of file From a27182f3c90abeacc6c3a1e14aff450487e6cf22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Tue, 27 Jun 2023 09:22:27 +0100 Subject: [PATCH 15/70] storage: Fetch original call from indelx in batches in threads. #TASK-4642 --- .../variant/HadoopVariantStorageOptions.java | 2 + .../adaptors/VariantHBaseQueryParser.java | 37 ++--- .../adaptors/VariantHadoopDBAdaptor.java | 1 + .../SampleIndexOnlyVariantQueryExecutor.java | 136 ++++++++++++++---- 4 files changed, 130 insertions(+), 46 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java index 3b487eaa7aa..ec334245d4b 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java @@ -95,6 +95,8 @@ public enum HadoopVariantStorageOptions implements ConfigurationOption { SAMPLE_INDEX_BUILD_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.build.maxSamplesPerMR", 2000), SAMPLE_INDEX_ANNOTATION_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.annotation.maxSamplesPerMR", 2000), SAMPLE_INDEX_FAMILY_MAX_TRIOS_PER_MR("storage.hadoop.sampleIndex.family.maxTriosPerMR", 1000), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER("storage.hadoop.sampleIndex.query.sampleIndexOnly.missingOriginalCall.buffer", 10000), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH("storage.hadoop.sampleIndex.query.sampleIndexOnly.missingOriginalCall.batch", 250), ///////////////////////// // Annotation index table configuration diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java index 1da02f637f1..1de83e96382 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHBaseQueryParser.java @@ -237,7 +237,7 @@ public List parseQueryMultiRegion(VariantQueryProjection selectElements, Q subQuery.remove(ID.key()); subQuery.remove(ID_INTERSECT.key()); - subQuery.put(REGION.key(), "MULTI_REGION"); + subQuery.put(REGION.key(), "MULTI_REGION (#" + numLocusFilters + ")"); Scan templateScan = parseQuery(selectElements, subQuery, options); for (Region region : regions) { @@ -599,21 +599,26 @@ public Scan parseQuery(VariantQueryProjection selectElements, Query query, Query } scan.setReversed(options.getString(QueryOptions.ORDER, QueryOptions.ASCENDING).equals(QueryOptions.DESCENDING)); - logger.info("----------------------------"); - logger.info("StartRow = " + Bytes.toStringBinary(scan.getStartRow())); - logger.info("StopRow = " + Bytes.toStringBinary(scan.getStopRow())); - if (regionOrVariant != null) { - logger.info("\tRegion = " + regionOrVariant); - } - logger.info("columns (" + scan.getFamilyMap().getOrDefault(family, Collections.emptyNavigableSet()).size() + ") = " - + scan.getFamilyMap().getOrDefault(family, Collections.emptyNavigableSet()) - .stream().map(Bytes::toString).collect(Collectors.joining(","))); - logger.info("MaxResultSize = " + scan.getMaxResultSize()); - logger.info("Filters = " + scan.getFilter()); - if (!scan.getTimeRange().isAllTime()) { - logger.info("TimeRange = " + scan.getTimeRange()); - } - logger.info("Batch = " + scan.getBatch()); + if (!options.getBoolean(VariantHadoopDBAdaptor.QUIET)) { + logger.info("----------------------------"); + String startRow = Bytes.toStringBinary(scan.getStartRow()); + if (!startRow.startsWith("MULTI_REGION")) { + logger.info("StartRow = " + startRow); + logger.info("StopRow = " + Bytes.toStringBinary(scan.getStopRow())); + } + if (regionOrVariant != null) { + logger.info("\tRegion = " + regionOrVariant); + } + logger.info("columns (" + scan.getFamilyMap().getOrDefault(family, Collections.emptyNavigableSet()).size() + ") = " + + scan.getFamilyMap().getOrDefault(family, Collections.emptyNavigableSet()) + .stream().map(Bytes::toString).collect(Collectors.joining(","))); + logger.info("MaxResultSize = " + scan.getMaxResultSize()); + logger.info("Filters = " + scan.getFilter()); + if (!scan.getTimeRange().isAllTime()) { + logger.info("TimeRange = " + scan.getTimeRange()); + } + logger.info("Batch = " + scan.getBatch()); + } return scan; } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHadoopDBAdaptor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHadoopDBAdaptor.java index e4b1acc4980..3d6fe440da1 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHadoopDBAdaptor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/adaptors/VariantHadoopDBAdaptor.java @@ -90,6 +90,7 @@ public class VariantHadoopDBAdaptor implements VariantDBAdaptor { public static final String NATIVE = "native"; + public static final String QUIET = "quiet"; public static final QueryParam ANNOT_NAME = QueryParam.create("annotName", "", Type.TEXT); protected static Logger logger = LoggerFactory.getLogger(VariantHadoopDBAdaptor.class); diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 36a74570fb4..d27c0b9860c 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -13,6 +13,8 @@ import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; +import org.opencb.commons.run.Task; +import org.opencb.opencga.core.common.BatchUtils; import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.response.VariantQueryResult; import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager; @@ -42,9 +44,12 @@ import java.io.IOException; import java.util.*; import java.util.concurrent.*; +import java.util.stream.Collectors; import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.NONE; import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.addSamplesMetadataIfRequested; +import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH; +import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER; import static org.opencb.opencga.storage.hadoop.variant.index.SampleIndexVariantQueryExecutor.SAMPLE_INDEX_TABLE_SOURCE; /** @@ -63,6 +68,11 @@ public class SampleIndexOnlyVariantQueryExecutor extends VariantQueryExecutor { private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() .namingPattern("sample-index-async-count-%s") .build()); + private static final ExecutorService THREAD_POOL_ORIG_CALL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() + .namingPattern("sample-index-fetch-call-%s") + .build()); + private int missingOriginalCallBufferSize; + private int missingOriginalCallBatchSize; public SampleIndexOnlyVariantQueryExecutor(VariantHadoopDBAdaptor dbAdaptor, SampleIndexDBAdaptor sampleIndexDBAdaptor, String storageEngineId, ObjectMap options) { @@ -71,6 +81,10 @@ public SampleIndexOnlyVariantQueryExecutor(VariantHadoopDBAdaptor dbAdaptor, Sam this.dbAdaptor = dbAdaptor; variantQueryParser = new VariantQueryParser(null, getMetadataManager()); variantQueryProjectionParser = new VariantQueryProjectionParser(getMetadataManager()); + missingOriginalCallBufferSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER.key(), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER.defaultValue()); + missingOriginalCallBatchSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH.key(), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH.defaultValue()); } @Override @@ -162,6 +176,9 @@ private VariantDBIterator getVariantDBIterator(SampleIndexQuery sampleIndexQuery SampleVariantIndexEntryToVariantConverter converter = new SampleVariantIndexEntryToVariantConverter(parseQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); variantIterator = VariantDBIterator.wrapper(Iterators.transform(rawIterator, converter::convert)); + AddMissingOriginalCallTask task = new AddMissingOriginalCallTask( + parseQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); + variantIterator = variantIterator.mapBuffered(task::apply, missingOriginalCallBufferSize); variantIterator.addCloseable(rawIterator); } return variantIterator; @@ -267,16 +284,16 @@ private boolean isIncludeCovered(SampleIndexQuery sampleIndexQuery, Query inputQ } - enum FamilyRole { - MOTHER, - FATHER, - SAMPLE - } + private static class SampleVariantIndexEntryToVariantConverter implements Converter { + + enum FamilyRole { + MOTHER, + FATHER, + SAMPLE + } - private class SampleVariantIndexEntryToVariantConverter implements Converter { private final boolean includeStudy; private String studyName; - private List files; private List familyRoleOrder; private String sampleName; private String motherName; @@ -299,12 +316,6 @@ private class SampleVariantIndexEntryToVariantConverter implements Converter fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); - files = new ArrayList<>(fileIds.size()); - for (Integer fileId : fileIds) { - files.add(metadataManager.getFileName(studyId, fileId)); - } - familyRoleOrder = new ArrayList<>(); samplesPosition = new LinkedHashMap<>(); @@ -371,29 +382,94 @@ public Variant convert(SampleVariantIndexEntry entry) { } } studyEntry.setSortedSamplesPosition(samplesPosition); - if (v.getLengthReference() == 0 || v.getLengthAlternate() == 0) { - studyEntry.setFiles(getOriginalCall(v, studyName, files)); - } v.setStudies(Collections.singletonList(studyEntry)); } return v; } } - private List getOriginalCall(Variant v, String study, List files) { - Variant variant = dbAdaptor.get(Collections.singletonList(v).iterator(), - new Query() - .append(VariantQueryParam.INCLUDE_FILE.key(), files) - .append(VariantQueryParam.INCLUDE_SAMPLE.key(), NONE) - .append(VariantQueryParam.INCLUDE_STUDY.key(), study), - new QueryOptions() - .append(VariantHadoopDBAdaptor.NATIVE, true) - .append(QueryOptions.INCLUDE, Arrays.asList(VariantField.STUDIES_FILES))).first(); - List fileEntries = variant.getStudies().get(0).getFiles(); - fileEntries.forEach(fileEntry -> { - fileEntry.setData(Collections.emptyMap()); - }); - return fileEntries; + private class AddMissingOriginalCallTask implements Task { + private String studyName; + private List files; + + AddMissingOriginalCallTask(ParsedVariantQuery parseQuery, SampleIndexQuery sampleIndexQuery, + VariantStorageMetadataManager metadataManager) { + VariantQueryProjection projection = parseQuery.getProjection(); + + int studyId = projection.getStudyIds().get(0); // only one study + VariantQueryProjection.StudyVariantQueryProjection projectionStudy = projection.getStudy(studyId); + studyName = projectionStudy.getStudyMetadata().getName(); + + if (sampleIndexQuery.getSamplesMap().size() != 1) { + // This should never happen + throw new IllegalStateException("Unexpected number of samples. Expected one, found " + + sampleIndexQuery.getSamplesMap().keySet()); + } + String sampleName = sampleIndexQuery.getSamplesMap().keySet().iterator().next(); + Integer sampleId = metadataManager.getSampleId(studyId, sampleName); + List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); + files = new ArrayList<>(fileIds.size()); + for (Integer fileId : fileIds) { + files.add(metadataManager.getFileName(studyId, fileId)); + } + } + + @Override + public List apply(List variants) { + List indels = variants.stream() + .filter(v -> v.getLengthReference() == 0 || v.getLengthAlternate() == 0) + .collect(Collectors.toList()); + if (!indels.isEmpty()) { + StopWatch stopWatch = StopWatch.createStarted(); + List> batches = BatchUtils.splitBatches(indels, missingOriginalCallBatchSize); + List>>> futures = new ArrayList<>(batches.size()); + for (List batch : batches) { + futures.add(THREAD_POOL_ORIG_CALL.submit(() -> getOriginalCall(batch, studyName, files))); + } + + Map> map = new HashMap<>(variants.size()); + for (Future>> future : futures) { + try { + map.putAll(future.get(60, TimeUnit.SECONDS)); + } catch (InterruptedException | ExecutionException | TimeoutException e) { + throw new VariantQueryException("Error fetching original call for INDELs"); + } + } + logger.info("Fetch {} INDEL original call in {} in {} threads", map.size(), TimeUtils.durationToString(stopWatch), + futures.size()); + + for (Variant v : indels) { + List fileEntries = map.get(v.toString()); + v.getStudies().get(0).setFiles(fileEntries); + } + } + return variants; + } + + private Map> getOriginalCall(List variants, String study, List files) { +// StopWatch stopWatch = StopWatch.createStarted(); + Map> filesMap = new HashMap<>(variants.size()); + for (Variant variant : dbAdaptor.iterable( + new Query() + .append(VariantQueryParam.ID.key(), variants) + .append(VariantQueryParam.INCLUDE_FILE.key(), files) + .append(VariantQueryParam.INCLUDE_SAMPLE.key(), NONE) + .append(VariantQueryParam.INCLUDE_STUDY.key(), study), + new QueryOptions() + .append(VariantHadoopDBAdaptor.NATIVE, true) + .append(VariantHadoopDBAdaptor.QUIET, true) + .append(QueryOptions.INCLUDE, Arrays.asList(VariantField.STUDIES_FILES)))) { + + List fileEntries = variant.getStudies().get(0).getFiles(); + // Remove data, as we only want the original call + fileEntries.forEach(fileEntry -> fileEntry.setData(Collections.emptyMap())); + filesMap.put(variant.toString(), fileEntries); + } +// logger.info(" # Fetch {} INDEL original call in {}", filesMap.size(), TimeUtils.durationToString(stopWatch)); + return filesMap; + } + + } } From 90ea5a2ec37d601f0e1d025b277a417e2f226dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 28 Jun 2023 11:46:36 +0100 Subject: [PATCH 16/70] storage: Include secondary-alternates to the SampleIndexOnlyVariantQueryExecutor #TASK-4642 --- .../ExomiserWrapperAnalysisExecutor.java | 2 +- .../core/variant/adaptors/GenotypeClass.java | 20 ++ .../core/variant/adaptors/VariantQuery.java | 13 ++ .../variant/HadoopVariantStorageOptions.java | 4 +- .../SampleIndexOnlyVariantQueryExecutor.java | 172 +++++++++++++----- 5 files changed, 161 insertions(+), 50 deletions(-) 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..1b19e410b5b 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 @@ -130,7 +130,7 @@ public void run() throws ToolException { VariantQuery query = new VariantQuery() .study(studyId) - .sample(sampleId + ":0/1,1/1") + .sample(sampleId) .includeSample(samples) .includeSampleData("GT") .unknownGenotype("./."); diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/GenotypeClass.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/GenotypeClass.java index d54e03fd3db..d3f5e8dd1ef 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/GenotypeClass.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/GenotypeClass.java @@ -211,6 +211,25 @@ public enum GenotypeClass implements Predicate { return true; }), + /** + * Genotypes containing any secondary alternate. + *

+ * 1/2, 2/3, ./2, 0/2, ... + */ + SEC(str -> { + Genotype gt = parseGenotype(str); + if (gt == null) { + // Skip invalid genotypes + return false; + } + for (int allele : gt.getAllelesIdx()) { + if (allele > 1) { + return true; + } + } + return false; + }), + /** * Genotypes containing reference and secondary alternates only. *

@@ -233,6 +252,7 @@ public enum GenotypeClass implements Predicate { return hasSecondaryAlternate; }), + /** * Contains the main alternate. *

diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQuery.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQuery.java index c2798e0dba8..65c2bda05e6 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQuery.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQuery.java @@ -9,6 +9,7 @@ import org.opencb.opencga.storage.core.variant.query.VariantQueryUtils; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -193,6 +194,12 @@ public VariantQuery includeSampleData(String value) { put(VariantQueryParam.INCLUDE_SAMPLE_DATA.key(), value); return this; } + + public VariantQuery includeSampleData(Collection value) { + put(VariantQueryParam.INCLUDE_SAMPLE_DATA.key(), value); + return this; + } + public String includeSampleData() { return getString(VariantQueryParam.INCLUDE_SAMPLE_DATA.key()); } @@ -257,6 +264,12 @@ public VariantQuery includeFile(String value) { put(VariantQueryParam.INCLUDE_FILE.key(), value); return this; } + + public VariantQuery includeFile(Collection value) { + put(VariantQueryParam.INCLUDE_FILE.key(), value); + return this; + } + public VariantQuery includeFileAll() { return includeFile(ParamConstants.ALL); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java index ec334245d4b..83e949962cb 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java @@ -95,8 +95,8 @@ public enum HadoopVariantStorageOptions implements ConfigurationOption { SAMPLE_INDEX_BUILD_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.build.maxSamplesPerMR", 2000), SAMPLE_INDEX_ANNOTATION_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.annotation.maxSamplesPerMR", 2000), SAMPLE_INDEX_FAMILY_MAX_TRIOS_PER_MR("storage.hadoop.sampleIndex.family.maxTriosPerMR", 1000), - SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER("storage.hadoop.sampleIndex.query.sampleIndexOnly.missingOriginalCall.buffer", 10000), - SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH("storage.hadoop.sampleIndex.query.sampleIndexOnly.missingOriginalCall.batch", 250), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BUFFER("storage.hadoop.sampleIndex.query.sampleIndexOnly.partialData.buffer", 10000), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BATCH("storage.hadoop.sampleIndex.query.sampleIndexOnly.partialData.batch", 250), ///////////////////////// // Annotation index table configuration diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index d27c0b9860c..a3558164692 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -21,9 +21,7 @@ import org.opencb.opencga.storage.core.metadata.models.SampleMetadata; import org.opencb.opencga.storage.core.metadata.models.TaskMetadata; import org.opencb.opencga.storage.core.utils.iterators.CloseableIterator; -import org.opencb.opencga.storage.core.variant.adaptors.VariantField; -import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryException; -import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam; +import org.opencb.opencga.storage.core.variant.adaptors.*; import org.opencb.opencga.storage.core.variant.adaptors.iterators.VariantDBIterator; import org.opencb.opencga.storage.core.variant.query.ParsedVariantQuery; import org.opencb.opencga.storage.core.variant.query.VariantQueryParser; @@ -48,8 +46,8 @@ import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.NONE; import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.addSamplesMetadataIfRequested; -import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH; -import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER; +import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BATCH; +import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BUFFER; import static org.opencb.opencga.storage.hadoop.variant.index.SampleIndexVariantQueryExecutor.SAMPLE_INDEX_TABLE_SOURCE; /** @@ -68,11 +66,11 @@ public class SampleIndexOnlyVariantQueryExecutor extends VariantQueryExecutor { private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() .namingPattern("sample-index-async-count-%s") .build()); - private static final ExecutorService THREAD_POOL_ORIG_CALL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() + private static final ExecutorService THREAD_POOL_FETCH_CALL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() .namingPattern("sample-index-fetch-call-%s") .build()); - private int missingOriginalCallBufferSize; - private int missingOriginalCallBatchSize; + private int partialDataBufferSize; + private int partialDataBatchSize; public SampleIndexOnlyVariantQueryExecutor(VariantHadoopDBAdaptor dbAdaptor, SampleIndexDBAdaptor sampleIndexDBAdaptor, String storageEngineId, ObjectMap options) { @@ -81,10 +79,10 @@ public SampleIndexOnlyVariantQueryExecutor(VariantHadoopDBAdaptor dbAdaptor, Sam this.dbAdaptor = dbAdaptor; variantQueryParser = new VariantQueryParser(null, getMetadataManager()); variantQueryProjectionParser = new VariantQueryProjectionParser(getMetadataManager()); - missingOriginalCallBufferSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER.key(), - SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BUFFER.defaultValue()); - missingOriginalCallBatchSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH.key(), - SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_MOC_BATCH.defaultValue()); + partialDataBufferSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BUFFER.key(), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BUFFER.defaultValue()); + partialDataBatchSize = options.getInt(SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BATCH.key(), + SAMPLE_INDEX_QUERY_SAMPLE_INDEX_ONLY_PD_BATCH.defaultValue()); } @Override @@ -159,9 +157,9 @@ protected Object getOrIterator(Query inputQuery, QueryOptions options, boolean i } private VariantDBIterator getVariantDBIterator(SampleIndexQuery sampleIndexQuery, Query inputQuery, QueryOptions options) { - ParsedVariantQuery parseQuery = variantQueryParser.parseQuery(inputQuery, options, true); + ParsedVariantQuery parsedQuery = variantQueryParser.parseQuery(inputQuery, options, true); VariantDBIterator variantIterator; - if (parseQuery.getProjection().getStudyIds().isEmpty()) { + if (parsedQuery.getProjection().getStudyIds().isEmpty()) { logger.info("Using sample index iterator Iterator"); variantIterator = sampleIndexDBAdaptor.iterator(sampleIndexQuery, options); variantIterator = variantIterator.map(v -> v.setId(v.toString())); @@ -174,11 +172,11 @@ private VariantDBIterator getVariantDBIterator(SampleIndexQuery sampleIndexQuery throw VariantQueryException.internalException(e).setQuery(inputQuery); } SampleVariantIndexEntryToVariantConverter converter = - new SampleVariantIndexEntryToVariantConverter(parseQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); + new SampleVariantIndexEntryToVariantConverter(parsedQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); variantIterator = VariantDBIterator.wrapper(Iterators.transform(rawIterator, converter::convert)); - AddMissingOriginalCallTask task = new AddMissingOriginalCallTask( - parseQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); - variantIterator = variantIterator.mapBuffered(task::apply, missingOriginalCallBufferSize); + AddMissingDataTask task = new AddMissingDataTask( + parsedQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); + variantIterator = variantIterator.mapBuffered(task::apply, partialDataBufferSize); variantIterator.addCloseable(rawIterator); } return variantIterator; @@ -220,7 +218,6 @@ private boolean isIncludeCovered(SampleIndexQuery sampleIndexQuery, Query inputQ || includeFields.contains(VariantField.STUDIES_FILES) || includeFields.contains(VariantField.STUDIES_ISSUES) || includeFields.contains(VariantField.STUDIES_SCORES) - || includeFields.contains(VariantField.STUDIES_SECONDARY_ALTERNATES) ) { return false; } @@ -388,13 +385,17 @@ public Variant convert(SampleVariantIndexEntry entry) { } } - private class AddMissingOriginalCallTask implements Task { - private String studyName; - private List files; + private class AddMissingDataTask implements Task { + private final ParsedVariantQuery parsedQuery; + private final String studyName; + private final List samples; + private final List files; + private final List allFiles; - AddMissingOriginalCallTask(ParsedVariantQuery parseQuery, SampleIndexQuery sampleIndexQuery, - VariantStorageMetadataManager metadataManager) { - VariantQueryProjection projection = parseQuery.getProjection(); + AddMissingDataTask(ParsedVariantQuery parsedQuery, SampleIndexQuery sampleIndexQuery, + VariantStorageMetadataManager metadataManager) { + this.parsedQuery = parsedQuery; + VariantQueryProjection projection = this.parsedQuery.getProjection(); int studyId = projection.getStudyIds().get(0); // only one study VariantQueryProjection.StudyVariantQueryProjection projectionStudy = projection.getStudy(studyId); @@ -405,6 +406,16 @@ private class AddMissingOriginalCallTask implements Task { throw new IllegalStateException("Unexpected number of samples. Expected one, found " + sampleIndexQuery.getSamplesMap().keySet()); } + samples = new ArrayList<>(projectionStudy.getSamples().size()); + for (Integer sample : projectionStudy.getSamples()) { + samples.add(metadataManager.getSampleName(studyId, sample)); + } + Set allFileIds = metadataManager.getFileIdsFromSampleIds(studyId, projectionStudy.getSamples(), true); + allFiles = new ArrayList<>(allFileIds.size()); + for (Integer fileId : allFileIds) { + allFiles.add(metadataManager.getFileName(studyId, fileId)); + } + String sampleName = sampleIndexQuery.getSamplesMap().keySet().iterator().next(); Integer sampleId = metadataManager.getSampleId(studyId, sampleName); List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); @@ -416,37 +427,94 @@ private class AddMissingOriginalCallTask implements Task { @Override public List apply(List variants) { - List indels = variants.stream() - .filter(v -> v.getLengthReference() == 0 || v.getLengthAlternate() == 0) - .collect(Collectors.toList()); + // Multi allelic variants, to be read entirely + List multiAllelic = new ArrayList<>(); + // INDELs (non multiallelic) variants, to fetch the original call + List indels = new ArrayList<>(); + for (Variant variant : variants) { + boolean secAlt = false; + for (SampleEntry sample : variant.getStudies().get(0).getSamples()) { + if (GenotypeClass.SEC.test(sample.getData().get(0))) { + secAlt = true; + break; + } + } + if (secAlt) { + multiAllelic.add(variant); + } else { + if (variant.getLengthReference() == 0 || variant.getLengthAlternate() == 0) { + indels.add(variant); + } + } + } + // Process in multiple treads + List> futures = new ArrayList<>(10); + if (!multiAllelic.isEmpty()) { + List> batches = BatchUtils.splitBatches(multiAllelic, partialDataBatchSize); + for (List batch : batches) { + futures.add(THREAD_POOL_FETCH_CALL.submit(() -> addSecondaryAlternates(batch))); + } + } if (!indels.isEmpty()) { - StopWatch stopWatch = StopWatch.createStarted(); - List> batches = BatchUtils.splitBatches(indels, missingOriginalCallBatchSize); - List>>> futures = new ArrayList<>(batches.size()); + List> batches = BatchUtils.splitBatches(indels, partialDataBatchSize); for (List batch : batches) { - futures.add(THREAD_POOL_ORIG_CALL.submit(() -> getOriginalCall(batch, studyName, files))); + futures.add(THREAD_POOL_FETCH_CALL.submit(() -> addOriginalCall(batch, studyName))); } + } - Map> map = new HashMap<>(variants.size()); - for (Future>> future : futures) { - try { - map.putAll(future.get(60, TimeUnit.SECONDS)); - } catch (InterruptedException | ExecutionException | TimeoutException e) { - throw new VariantQueryException("Error fetching original call for INDELs"); - } + StopWatch stopWatch = StopWatch.createStarted(); + for (Future future : futures) { + try { + // Should end in few seconds + future.get(90, TimeUnit.SECONDS); + } catch (InterruptedException | ExecutionException | TimeoutException e) { + throw new VariantQueryException("Error fetching original call for INDELs"); } - logger.info("Fetch {} INDEL original call in {} in {} threads", map.size(), TimeUtils.durationToString(stopWatch), - futures.size()); + } + logger.info("Fetch {} partial variants in {} in {} threads", + multiAllelic.size() + indels.size(), + TimeUtils.durationToString(stopWatch), + futures.size()); + return variants; + } - for (Variant v : indels) { - List fileEntries = map.get(v.toString()); - v.getStudies().get(0).setFiles(fileEntries); + private void addSecondaryAlternates(List toReadFull) { +// StopWatch stopWatch = StopWatch.createStarted(); + QueryOptions options = new QueryOptions(parsedQuery.getInputOptions()); + Set includeFields = new HashSet<>(VariantField.getIncludeFields(options)); + includeFields.add(VariantField.STUDIES_SECONDARY_ALTERNATES); + includeFields.add(VariantField.STUDIES_FILES); + options.remove(QueryOptions.EXCLUDE); + options.remove(VariantField.SUMMARY); + options.put(QueryOptions.INCLUDE, includeFields); + options.put(VariantHadoopDBAdaptor.QUIET, true); + + Map fullVariants = dbAdaptor.get(new VariantQuery() + .id(toReadFull) + .study(studyName) + .includeSample(samples) + .includeSampleData(VariantQueryUtils.getIncludeSampleData(parsedQuery.getInputQuery())) + .includeFile(allFiles), + options) + .getResults().stream().collect(Collectors.toMap(Variant::toString, v -> v)); + + for (Variant variant : toReadFull) { + Variant fullVariant = fullVariants.get(variant.toString()); + if (fullVariant == null) { + // TODO: Should we fail here? +// throw new VariantQueryException("Variant " + variant + " not found!"); + logger.warn("Variant " + variant + " not found!"); + continue; } + StudyEntry fullStudy = fullVariant.getStudies().get(0); + fullStudy.getFiles().forEach(f -> f.setData(Collections.emptyMap())); + fullStudy.setStats(Collections.emptyList()); + variant.setStudies(Collections.singletonList(fullStudy)); } - return variants; +// logger.info(" # Fetch {} SEC_ALTS in {}", toReadFull.size(), TimeUtils.durationToString(stopWatch)); } - private Map> getOriginalCall(List variants, String study, List files) { + private void addOriginalCall(List variants, String study) { // StopWatch stopWatch = StopWatch.createStarted(); Map> filesMap = new HashMap<>(variants.size()); for (Variant variant : dbAdaptor.iterable( @@ -465,8 +533,18 @@ private Map> getOriginalCall(List variants, Str fileEntries.forEach(fileEntry -> fileEntry.setData(Collections.emptyMap())); filesMap.put(variant.toString(), fileEntries); } + + for (Variant variant : variants) { + List fileEntries = filesMap.get(variant.toString()); + if (fileEntries == null) { + // TODO: Should we fail here? +// throw new VariantQueryException("Variant " + variant + " not found!"); + logger.warn("Variant " + variant + " not found!"); + continue; + } + variant.getStudies().get(0).setFiles(fileEntries); + } // logger.info(" # Fetch {} INDEL original call in {}", filesMap.size(), TimeUtils.durationToString(stopWatch)); - return filesMap; } From ca109efefb4be70dddd0521e9b1aa9715f16cd68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 28 Jun 2023 13:05:25 +0100 Subject: [PATCH 17/70] Prepare next release 2.8.2.1-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 528699344be..37db25a9a58 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2 + 2.8.2.1-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis From b1d890a1120dfad2c3ff6aa160812c7cd4551ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Thu, 29 Jun 2023 10:43:36 +0100 Subject: [PATCH 18/70] storage: Fix Structural Variants filtering when partial region overlap #TASK-4146 --- .../VariantStorageMetadataManager.java | 4 + .../src/test/resources/variant-large-sv.vcf | 10 ++ ...HadoopLocalLoadVariantStoragePipeline.java | 109 +++++++++++++++--- .../variant/HadoopVariantStorageOptions.java | 1 + .../variant/index/query/LocusQuery.java | 14 +-- .../variant/index/query/SampleIndexQuery.java | 18 +-- .../index/query/SingleSampleIndexQuery.java | 2 +- .../AbstractSampleIndexEntryFilter.java | 2 +- .../index/sample/SampleIndexDBAdaptor.java | 67 +++++++---- .../index/sample/SampleIndexDriver.java | 2 +- .../index/sample/SampleIndexQueryParser.java | 27 ++++- .../index/sample/SampleIndexSchema.java | 14 ++- .../mr/SampleIndexTableRecordReader.java | 5 +- .../variant/VariantHadoopDBWriterTest.java | 2 +- .../sample/SampleIndexDBAdaptorTest.java | 53 +++++---- .../sample/SampleIndexEntryFilterTest.java | 2 +- .../sample/SampleIndexQueryParserTest.java | 39 ++++++- .../variant/index/sample/SampleIndexTest.java | 41 ++++++- 18 files changed, 312 insertions(+), 100 deletions(-) create mode 100644 opencga-storage/opencga-storage-core/src/test/resources/variant-large-sv.vcf diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/VariantStorageMetadataManager.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/VariantStorageMetadataManager.java index 33f6de51fea..cf4477bb4f1 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/VariantStorageMetadataManager.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/metadata/VariantStorageMetadataManager.java @@ -185,6 +185,10 @@ public VariantStorageMetadataManager(VariantStorageMetadataDBAdaptorFactory dbAd }); } + public ObjectMap getConfiguration() { + return dbAdaptorFactory.getConfiguration(); + } + public Lock lockGlobal(long lockDuration, long timeout, String lockName) throws StorageEngineException { try { diff --git a/opencga-storage/opencga-storage-core/src/test/resources/variant-large-sv.vcf b/opencga-storage/opencga-storage-core/src/test/resources/variant-large-sv.vcf new file mode 100644 index 00000000000..7038eb551fb --- /dev/null +++ b/opencga-storage/opencga-storage-core/src/test/resources/variant-large-sv.vcf @@ -0,0 +1,10 @@ +##fileformat=VCFv4.1 +##FILTER= +##FILTER= +##FORMAT= +##FORMAT= +##FORMAT= +##command=seq 1000000 500 3000000 | while read i ; do echo -e "chr1\t$i\t.\tA\tC\t$RANDOM\tPASS\t.\tGT\t0/1\t1/1\t1|0\t0|1" ; done +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA19600 NA19660 NA19661 NA19685 +chr1 1000000 . A 6067 PASS END=4000000 GT 0/1 1/1 1|0 0|1 +chr1 4000200 . A C 5536 PASS . GT 0/1 1/1 1|0 0|1 \ No newline at end of file diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java index b67fa9887e5..62ed11a729d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java @@ -50,6 +50,7 @@ import org.opencb.opencga.storage.hadoop.variant.archive.VariantHBaseArchiveDataWriter; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexDBAdaptor; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexDBLoader; +import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexSchema; import org.opencb.opencga.storage.hadoop.variant.load.VariantHadoopDBWriter; import org.opencb.opencga.storage.hadoop.variant.transform.VariantSliceReader; import org.opencb.opencga.storage.hadoop.variant.transform.VariantToVcfSliceConverterTask; @@ -83,6 +84,7 @@ public class HadoopLocalLoadVariantStoragePipeline extends HadoopVariantStorageP private int taskId; private HashSet loadedGenotypes; private int sampleIndexVersion; + private int largestVariantLength; public HadoopLocalLoadVariantStoragePipeline(StorageConfiguration configuration, VariantHadoopDBAdaptor dbAdaptor, IOConnectorProvider ioConnectorProvider, @@ -266,6 +268,7 @@ protected void loadFromProto(URI input, URI outdir, ArchiveTableHelper helper, P VariantHadoopDBWriter variantsWriter = newVariantHadoopDBWriter(); List sampleIds = new ArrayList<>(getMetadataManager().getFileMetadata(getStudyId(), getFileId()).getSamples()); SampleIndexDBLoader sampleIndexDBLoader = newSampleIndexDBLoader(sampleIds); + GetLargestVariantTask largestVariantTask = new GetLargestVariantTask(); // ((TaskMetadata) t -> t) // .then(archiveWriter) @@ -294,6 +297,7 @@ protected void loadFromProto(URI input, URI outdir, ArchiveTableHelper helper, P } List variants = converter.convert(slice); + largestVariantTask.apply(variants); variants = VariantHadoopDBWriter.filterVariantsNotFromThisSlice(slice.getPosition(), variants); variantsWriter.write(variants); if (sampleIndexDBLoader != null) { @@ -327,6 +331,7 @@ protected void loadFromProto(URI input, URI outdir, ArchiveTableHelper helper, P // Update list of loaded genotypes this.loadedGenotypes = sampleIndexDBLoader.getLoadedGenotypes(); this.sampleIndexVersion = sampleIndexDBLoader.getSampleIndexVersion(); + this.largestVariantLength = largestVariantTask.getMaxLength(); } } @@ -354,6 +359,7 @@ protected void loadFromAvroWithArchive(URI input, URI outdir, ArchiveTableHelper boolean stdin = options.getBoolean(STDIN.key(), STDIN.defaultValue()); int sliceBufferSize = options.getInt(ARCHIVE_SLICE_BUFFER_SIZE.key(), ARCHIVE_SLICE_BUFFER_SIZE.defaultValue()); VariantReader variantReader = variantReaderUtils.getVariantReader(input, helper.getStudyMetadata(), stdin); + GetLargestVariantTask largestVariantTask = new GetLargestVariantTask(); AbstractDuplicatedVariantsResolver resolver = new DuplicatedVariantsResolverFactory(getOptions(), ioConnectorProvider) .getResolver(UriUtils.fileName(input), outdir); VariantDeduplicationTask dedupTask = new DuplicatedVariantsResolverFactory(getOptions(), ioConnectorProvider) @@ -374,7 +380,7 @@ protected void loadFromAvroWithArchive(URI input, URI outdir, ArchiveTableHelper String nonRefFilter = options.getString(ARCHIVE_NON_REF_FILTER.key()); // TODO: Move "SampleIndexDBLoader" to Write step so we can increase the number of threads GroupedVariantsTask task = new GroupedVariantsTask(archiveWriter, hadoopDBWriter, sampleIndexDBLoader, - null, archiveFields, nonRefFilter); + null, archiveFields, nonRefFilter, largestVariantTask); ParallelTaskRunner>, Object> ptr = new ParallelTaskRunner<>(sliceReader, task, null, config); @@ -389,6 +395,7 @@ protected void loadFromAvroWithArchive(URI input, URI outdir, ArchiveTableHelper // Update list of loaded genotypes this.loadedGenotypes = sampleIndexDBLoader.getLoadedGenotypes(); this.sampleIndexVersion = sampleIndexDBLoader.getSampleIndexVersion(); + this.largestVariantLength = largestVariantTask.getMaxLength(); } } @@ -397,7 +404,7 @@ protected void loadFromAvroWithoutArchive(URI input, URI outdir, ArchiveTableHel int studyId = helper.getStudyId(); int fileId = Integer.parseInt(helper.getFileMetadata().getId()); - + List sampleIds = new ArrayList<>(getMetadataManager().getFileMetadata(studyId, fileId).getSamples()); // Reader boolean stdin = options.getBoolean(STDIN.key(), STDIN.defaultValue()); @@ -406,12 +413,12 @@ protected void loadFromAvroWithoutArchive(URI input, URI outdir, ArchiveTableHel .getResolver(UriUtils.fileName(input), outdir); VariantDeduplicationTask dedupTask = new DuplicatedVariantsResolverFactory(getOptions(), ioConnectorProvider) .getTask(resolver); - DataReader reader = variantReader.then(dedupTask); + GetLargestVariantTask largestVariantTask = new GetLargestVariantTask(); + DataReader reader = variantReader.then(dedupTask).then(largestVariantTask); // Variants Writer VariantHadoopDBWriter hadoopDBWriter = newVariantHadoopDBWriter(); // Sample Index Writer - List sampleIds = new ArrayList<>(getMetadataManager().getFileMetadata(studyId, fileId).getSamples()); SampleIndexDBLoader sampleIndexDBLoader = newSampleIndexDBLoader(sampleIds); Task progressLoggerTask = progressLogger @@ -436,6 +443,7 @@ protected void loadFromAvroWithoutArchive(URI input, URI outdir, ArchiveTableHel // Update list of loaded genotypes this.loadedGenotypes = sampleIndexDBLoader.getLoadedGenotypes(); this.sampleIndexVersion = sampleIndexDBLoader.getSampleIndexVersion(); + this.largestVariantLength = largestVariantTask.getMaxLength(); } } @@ -490,6 +498,8 @@ private void logLoadResults(VariantFileMetadata variantFileMetadata, int duplica } } } + getLoadStats().put("largestVariantLength", largestVariantLength); + logger.info("Largest variant found in VCF had a length of : {}", largestVariantLength); logger.info("============================================================"); } @@ -503,16 +513,50 @@ public URI postLoad(URI input, URI output) throws StorageEngineException { metadataManager.setStatus(getStudyId(), taskId, Status.READY); boolean loadSampleIndex = YesNoAuto.parse(getOptions(), LOAD_SAMPLE_INDEX.key()).orYes().booleanValue(); - if (loadSampleIndex) { - for (Integer sampleId : metadataManager.getSampleIdsFromFileId(getStudyId(), getFileId())) { - // Worth to check first to avoid too many updates in scenarios like 1000G - SampleMetadata sampleMetadata = metadataManager.getSampleMetadata(getStudyId(), sampleId); - if (sampleMetadata.getSampleIndexStatus(sampleIndexVersion) != Status.READY) { - metadataManager.updateSampleMetadata(getStudyId(), sampleId, - s -> s.setSampleIndexStatus(Status.READY, sampleIndexVersion)); + for (Integer sampleId : metadataManager.getSampleIdsFromFileId(getStudyId(), getFileId())) { + // Worth to check first to avoid too many updates in scenarios like 1000G + SampleMetadata sampleMetadata = metadataManager.getSampleMetadata(getStudyId(), sampleId); + boolean updateSampleIndexStatus = loadSampleIndex && sampleMetadata.getSampleIndexStatus(sampleIndexVersion) != Status.READY; + int actualLargestVariantLength = sampleMetadata.getAttributes().getInt(SampleIndexSchema.LARGEST_VARIANT_LENGTH); + boolean alreadyLoadedFiles = false; + if (sampleMetadata.getFiles().size() > 1) { + int loadedFiles = 0; + for (Integer fileId : sampleMetadata.getFiles()) { + if (metadataManager.isFileIndexed(getStudyId(), fileId)) { + loadedFiles++; + } } + if (loadedFiles > 1) { + alreadyLoadedFiles = true; + } + metadataManager.getFileIdsFromSampleId(1, 1, true); + } + boolean updateLargestVariantLength; + if (alreadyLoadedFiles) { + if (actualLargestVariantLength > 0) { + // Already loaded files, with a valid value. Update if needed. + updateLargestVariantLength = largestVariantLength > actualLargestVariantLength; + } else { + // Already loaded files without a valid value. Do not set a value, as it might be smaller than previous files. + updateLargestVariantLength = false; + } + } else { + // First file loaded. Update value + updateLargestVariantLength = true; + } + + if (updateSampleIndexStatus || updateLargestVariantLength) { + metadataManager.updateSampleMetadata(getStudyId(), sampleId, s -> { + if (updateSampleIndexStatus) { + s.setSampleIndexStatus(Status.READY, sampleIndexVersion); + } + if (updateLargestVariantLength) { + s.getAttributes().put(SampleIndexSchema.LARGEST_VARIANT_LENGTH, largestVariantLength); + } + }); } } + boolean loadArchive = YesNoAuto.parse(getOptions(), LOAD_ARCHIVE.key()).orYes().booleanValue(); if (loadArchive) { metadataManager.updateFileMetadata(getStudyId(), getFileId(), fileMetadata -> { @@ -578,18 +622,16 @@ protected static class GroupedVariantsTask implements Task otherTask; GroupedVariantsTask(VariantHBaseArchiveDataWriter archiveWriter, VariantHadoopDBWriter hadoopDBWriter, - SampleIndexDBLoader sampleIndexDBLoader, ProgressLogger progressLogger) { - this(archiveWriter, hadoopDBWriter, sampleIndexDBLoader, progressLogger, null, null); - } - - GroupedVariantsTask(VariantHBaseArchiveDataWriter archiveWriter, VariantHadoopDBWriter hadoopDBWriter, - SampleIndexDBLoader sampleIndexDBLoader, ProgressLogger progressLogger, String fields, String nonRefFilter) { + SampleIndexDBLoader sampleIndexDBLoader, ProgressLogger progressLogger, String fields, String nonRefFilter, + Task otherTask) { this.converterTask = new VariantToVcfSliceConverterTask(progressLogger, fields, nonRefFilter); this.archiveWriter = Objects.requireNonNull(archiveWriter); this.hadoopDBWriter = Objects.requireNonNull(hadoopDBWriter); this.sampleIndexDBLoader = sampleIndexDBLoader; + this.otherTask = otherTask; } @Override @@ -606,10 +648,11 @@ public void pre() throws Exception { } converterTask.pre(); + otherTask.pre(); } @Override - public List apply(List>> batch) { + public List apply(List>> batch) throws Exception { for (ImmutablePair> pair : batch) { List variants = VariantHadoopDBWriter.filterVariantsNotFromThisSlice(pair.getKey(), pair.getValue()); hadoopDBWriter.write(variants); @@ -617,6 +660,7 @@ public List apply(List>> batch) { if (sampleIndexDBLoader != null) { sampleIndexDBLoader.write(variants); } + otherTask.apply(variants); } List slices = converterTask.apply(batch); @@ -639,7 +683,36 @@ public void post() throws Exception { } converterTask.post(); + otherTask.post(); } } + private static class GetLargestVariantTask implements Task { + + private final AtomicInteger maxLength = new AtomicInteger(); + + @Override + public List apply(List variants) { + int localMax = maxLength.get(); + boolean newValue = false; + for (Variant variant : variants) { + if (variant.getLengthReference() > localMax) { + localMax = variant.getLengthReference(); + newValue = true; + } + } + if (newValue) { + updateMaxLength(localMax); + } + return variants; + } + + private void updateMaxLength(int local) { + maxLength.updateAndGet(v -> Math.max(v, local)); + } + + public int getMaxLength() { + return maxLength.get(); + } + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java index 3b487eaa7aa..e9bb17a5f3c 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageOptions.java @@ -95,6 +95,7 @@ public enum HadoopVariantStorageOptions implements ConfigurationOption { SAMPLE_INDEX_BUILD_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.build.maxSamplesPerMR", 2000), SAMPLE_INDEX_ANNOTATION_MAX_SAMPLES_PER_MR("storage.hadoop.sampleIndex.annotation.maxSamplesPerMR", 2000), SAMPLE_INDEX_FAMILY_MAX_TRIOS_PER_MR("storage.hadoop.sampleIndex.family.maxTriosPerMR", 1000), + SAMPLE_INDEX_QUERY_EXTENDED_REGION_FILTER("storage.hadoop.sampleIndex.query.extendedRegionFilter.default", 5_000_000), ///////////////////////// // Annotation index table configuration diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/LocusQuery.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/LocusQuery.java index ff031718ebd..2bd4c84f900 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/LocusQuery.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/LocusQuery.java @@ -2,7 +2,6 @@ import org.opencb.biodata.models.core.Region; import org.opencb.biodata.models.variant.Variant; -import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexSchema; import java.util.ArrayList; import java.util.List; @@ -14,7 +13,7 @@ /** * Sample index queries based on position, aligned to SampleIndex chunks. */ -public class LocusQuery { +public class LocusQuery implements Comparable { /** * Region aligned with sampleIndex chunks covering all locus from regions and variants. */ @@ -34,12 +33,6 @@ public LocusQuery(Region chunkRegion, List regions, List varian this.variants = variants; } - public static LocusQuery buildLocusQuery(Region r) { - LocusQuery locusQuery = new LocusQuery(SampleIndexSchema.getChunkRegion(r)); - locusQuery.getRegions().add(r); - return locusQuery; - } - public Region getChunkRegion() { return chunkRegion; } @@ -96,4 +89,9 @@ public String toString() { sb.append('}'); return sb.toString(); } + + @Override + public int compareTo(LocusQuery o) { + return REGION_COMPARATOR.compare(chunkRegion, o.chunkRegion); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SampleIndexQuery.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SampleIndexQuery.java index fddc76a5fc2..664ace07747 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SampleIndexQuery.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SampleIndexQuery.java @@ -33,6 +33,7 @@ public class SampleIndexQuery { private final SampleIndexSchema schema; private final Collection locusQueries; + private final int extendedFilteringRegion; private final Set variantTypes; private final String study; private final Map> samplesMap; @@ -59,6 +60,7 @@ public enum MendelianErrorType { public SampleIndexQuery(Collection locusQueries, SampleIndexQuery query) { this.schema = query.schema; this.locusQueries = locusQueries; + this.extendedFilteringRegion = query.extendedFilteringRegion; this.variantTypes = query.variantTypes; this.study = query.study; this.samplesMap = query.samplesMap; @@ -74,14 +76,8 @@ public SampleIndexQuery(Collection locusQueries, SampleIndexQuery qu this.queryOperation = query.queryOperation; } - public SampleIndexQuery(SampleIndexSchema schema, Collection locusQueries, String study, Map> samplesMap, QueryOperation queryOperation) { - this(schema, locusQueries, null, study, samplesMap, Collections.emptySet(), null, Collections.emptyMap(), Collections.emptyMap(), - Collections.emptyMap(), - new SampleAnnotationIndexQuery(schema), Collections.emptySet(), null, false, queryOperation); - } - - public SampleIndexQuery(SampleIndexSchema schema, Collection locusQueries, Set variantTypes, String study, + public SampleIndexQuery(SampleIndexSchema schema, Collection locusQueries, int extendedFilteringRegion, + Set variantTypes, String study, Map> samplesMap, Set multiFileSamplesSet, Set negatedSamples, Map fatherFilter, Map motherFilter, Map> fileFilterMap, @@ -90,6 +86,7 @@ public SampleIndexQuery(SampleIndexSchema schema, Collection locusQu QueryOperation queryOperation) { this.schema = schema; this.locusQueries = locusQueries; + this.extendedFilteringRegion = extendedFilteringRegion; this.variantTypes = variantTypes; this.study = study; this.samplesMap = samplesMap; @@ -113,6 +110,10 @@ public Collection getLocusQueries() { return locusQueries; } + public int getExtendedFilteringRegion() { + return extendedFilteringRegion; + } + public List getAllRegions() { return locusQueries.stream() .map(LocusQuery::getRegions) @@ -163,7 +164,6 @@ public Set getNegatedSamples() { return negatedSamples; } - public boolean isNegated(String sample) { return getNegatedSamples().contains(sample); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SingleSampleIndexQuery.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SingleSampleIndexQuery.java index 7db8c2d0e8b..35a9e67e718 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SingleSampleIndexQuery.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/query/SingleSampleIndexQuery.java @@ -24,7 +24,7 @@ protected SingleSampleIndexQuery(SampleIndexQuery query, String sample) { protected SingleSampleIndexQuery(SampleIndexQuery query, String sample, List gts) { super(query.getSchema(), query.getLocusQueries() == null ? null : new ArrayList<>(query.getLocusQueries()), - query.getVariantTypes() == null ? null : new HashSet<>(query.getVariantTypes()), + query.getExtendedFilteringRegion(), query.getVariantTypes() == null ? null : new HashSet<>(query.getVariantTypes()), query.getStudy(), Collections.singletonMap(sample, gts), query.getMultiFileSamplesSet(), diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java index 37dbb0180b3..7cb87773f0c 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java @@ -459,7 +459,7 @@ private boolean filterLocus(Variant variant) { return true; } for (Region region : locusQuery.getRegions()) { - if (region.contains(variant.getChromosome(), variant.getStart())) { + if (region.overlaps(variant.getChromosome(), variant.getStart(), variant.getEnd())) { return true; } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptor.java index d94ec75cab5..c7abaedcde9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptor.java @@ -369,14 +369,8 @@ private long count(SingleSampleIndexQuery query) { long count = 0; for (LocusQuery locusQuery : locusQueries) { // Split region in countable regions - List subLocusQueries; - if (locusQuery != null && locusQuery.getVariants().isEmpty() && locusQuery.getRegions().size() == 1) { - subLocusQueries = splitRegion(locusQuery.getRegions().get(0)) - .stream().map(LocusQuery::buildLocusQuery).collect(Collectors.toList()); - } else { - // Do not split - subLocusQueries = Collections.singletonList(locusQuery); - } + List subLocusQueries = splitLocusQuery(locusQuery); + for (LocusQuery subLocusQuery : subLocusQueries) { boolean noLocusFilter = subLocusQuery == null || (subLocusQuery.getVariants().isEmpty() @@ -466,36 +460,60 @@ protected List getAllLoadedGenotypes(int study) { /** * Split region into regions that match with batches at SampleIndexTable. * - * @param region Region to split + * @param locusQuery Locus query to split * @return List of regions. */ - protected static List splitRegion(Region region) { - List regions; + protected static List splitLocusQuery(LocusQuery locusQuery) { + if (locusQuery == null || !locusQuery.getVariants().isEmpty() || locusQuery.getRegions().size() != 1) { + // Do not split + return Collections.singletonList(locusQuery); + } + Region region = locusQuery.getRegions().get(0); + List locusQueries; if (region.getEnd() - region.getStart() < SampleIndexSchema.BATCH_SIZE) { // Less than one batch. Do not split region - regions = Collections.singletonList(region); + locusQueries = Collections.singletonList(locusQuery); } else if (region.getStart() / SampleIndexSchema.BATCH_SIZE + 1 == region.getEnd() / SampleIndexSchema.BATCH_SIZE && !startsAtBatch(region) && !endsAtBatch(region)) { // Consecutive partial batches. Do not split region - regions = Collections.singletonList(region); + locusQueries = Collections.singletonList(locusQuery); } else { - // Copy region before modifying + locusQueries = new ArrayList<>(3); +// Copy regions before modifying region = new Region(region.getChromosome(), region.getStart(), region.getEnd()); - regions = new ArrayList<>(3); + Region chunkRegion = new Region(locusQuery.getChunkRegion().getChromosome(), + locusQuery.getChunkRegion().getStart(), + locusQuery.getChunkRegion().getEnd()); if (!startsAtBatch(region)) { - int splitPoint = region.getStart() - region.getStart() % SampleIndexSchema.BATCH_SIZE + SampleIndexSchema.BATCH_SIZE; - regions.add(new Region(region.getChromosome(), region.getStart(), splitPoint - 1)); + int splitPoint = SampleIndexSchema.getChunkStartNext(region.getStart()); + Region startRegion = new Region(region.getChromosome(), region.getStart(), splitPoint - 1); + locusQueries.add(new LocusQuery( + // Keep the exceeded start only for the first split. + new Region(chunkRegion.getChromosome(), chunkRegion.getStart(), splitPoint), + Collections.singletonList(startRegion), + Collections.emptyList())); region.setStart(splitPoint); + chunkRegion.setStart(splitPoint); } - regions.add(region); if (!endsAtBatch(region)) { - int splitPoint = region.getEnd() - region.getEnd() % SampleIndexSchema.BATCH_SIZE; - regions.add(new Region(region.getChromosome(), splitPoint, region.getEnd())); + int splitPoint = SampleIndexSchema.getChunkStart(region.getEnd()); + Region endRegion = new Region(region.getChromosome(), splitPoint, region.getEnd()); + locusQueries.add(new LocusQuery( + SampleIndexSchema.getChunkRegion(endRegion, 0), + Collections.singletonList(endRegion), + Collections.emptyList() + )); region.setEnd(splitPoint - 1); + chunkRegion.setEnd(splitPoint); } + locusQueries.add(new LocusQuery( + chunkRegion, + Collections.singletonList(region), + Collections.emptyList())); + locusQueries.sort(LocusQuery::compareTo); } - return regions; + return locusQueries; } protected static boolean matchesWithBatch(Region region) { @@ -711,7 +729,12 @@ public static void printScan(Scan scan) { public static void printQuery(LocusQuery locusQuery) { if (locusQuery != null) { - logger.info("ChunkRegion: [ " + locusQuery.getChunkRegion() + " )"); + Region chunk = locusQuery.getChunkRegion(); + if (chunk.getStart() == 0 && chunk.getEnd() == Integer.MAX_VALUE) { + logger.info("ChunkRegion: [ " + chunk.getChromosome() + " )"); + } else { + logger.info("ChunkRegion: [ " + chunk.getChromosome() + ":" + chunk.getStart() + "-" + chunk.getEnd() + " )"); + } if (!locusQuery.getRegions().isEmpty()) { logger.info(" - Regions: " + locusQuery.getRegions()); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDriver.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDriver.java index 2dda3e69562..d8488e87a8e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDriver.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDriver.java @@ -538,7 +538,7 @@ private void countSampleGt(Context context, int sampleId, String gt) { public void flush(Context context, String chromosome, int position) throws IOException, InterruptedException { logger.info("Flush {}:{}-{} with {} variants", chromosome, SampleIndexSchema.getChunkStart(position), - SampleIndexSchema.getChunkStart(position) + SampleIndexSchema.BATCH_SIZE, + SampleIndexSchema.getChunkStartNext(position), variantsInBatch); variantsInBatch = 0; for (SampleIndexEntryPutBuilder builder : samplesMap.values()) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java index 5c0b2e77570..08b036ee585 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java @@ -20,6 +20,7 @@ import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryException; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam; import org.opencb.opencga.storage.core.variant.query.*; +import org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions; import org.opencb.opencga.storage.hadoop.variant.index.annotation.CtBtFtCombinationIndexSchema; import org.opencb.opencga.storage.hadoop.variant.index.core.IndexField; import org.opencb.opencga.storage.hadoop.variant.index.core.RangeIndexField; @@ -51,15 +52,18 @@ public class SampleIndexQueryParser { private static Logger logger = LoggerFactory.getLogger(SampleIndexQueryParser.class); private final VariantStorageMetadataManager metadataManager; private final SampleIndexSchemaFactory schemaFactory; + private final int extendedFilteringRegionDefault; public SampleIndexQueryParser(VariantStorageMetadataManager metadataManager) { - this.metadataManager = metadataManager; - this.schemaFactory = new SampleIndexSchemaFactory(metadataManager); + this(metadataManager, new SampleIndexSchemaFactory(metadataManager)); } public SampleIndexQueryParser(VariantStorageMetadataManager metadataManager, SampleIndexSchemaFactory schemaFactory) { this.metadataManager = metadataManager; this.schemaFactory = schemaFactory; + this.extendedFilteringRegionDefault = metadataManager.getConfiguration().getInt( + HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_EXTENDED_REGION_FILTER.key(), + HadoopVariantStorageOptions.SAMPLE_INDEX_QUERY_EXTENDED_REGION_FILTER.defaultValue()); } /** @@ -528,9 +532,19 @@ public SampleIndexQuery parse(Query query) { // } } - Collection regionGroups = buildLocusQueries(regions, variants); + int extendedFilteringRegion = 0; + for (String sample : sampleGenotypeQuery.keySet()) { + SampleMetadata sampleMetadata = getSampleMetadata(sampleMetadatas, sample, studyId); + extendedFilteringRegion = Math.max(extendedFilteringRegion, sampleMetadata.getAttributes() + .getInt(SampleIndexSchema.LARGEST_VARIANT_LENGTH, -1)); + } + if (extendedFilteringRegion <= 0) { + extendedFilteringRegion = extendedFilteringRegionDefault; + } + + Collection regionGroups = buildLocusQueries(regions, variants, extendedFilteringRegion); - return new SampleIndexQuery(schema, regionGroups, variantTypes, study, sampleGenotypeQuery, multiFileSamples, negatedSamples, + return new SampleIndexQuery(schema, regionGroups, extendedFilteringRegion, variantTypes, study, sampleGenotypeQuery, multiFileSamples, negatedSamples, fatherFilterMap, motherFilterMap, fileIndexMap, annotationIndexQuery, mendelianErrorSet, mendelianErrorType, includeParentsField, queryOperation); } @@ -563,13 +577,14 @@ private SampleMetadata getSampleMetadata(Map sampleMetad * * @param regions List of regions to group * @param variants List of variants to group + * @param extendedFilteringRegion number of positions to start filtering before any actual region filter start * @return Locus Queries */ - public static Collection buildLocusQueries(List regions, List variants) { + public static Collection buildLocusQueries(List regions, List variants, int extendedFilteringRegion) { regions = mergeRegions(regions); Map groupsMap = new HashMap<>(); for (Region region : regions) { - Region chunkRegion = SampleIndexSchema.getChunkRegion(region); + Region chunkRegion = SampleIndexSchema.getChunkRegion(region, extendedFilteringRegion); groupsMap.computeIfAbsent(chunkRegion, LocusQuery::new).getRegions().add(region); } for (Variant variant : variants) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java index be24989a7f4..2a82e5d1750 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java @@ -118,6 +118,8 @@ public final class SampleIndexSchema { static final String ANNOTATION_CLINICAL_PREFIX = META_PREFIX + "CL_"; static final byte[] ANNOTATION_CLINICAL_PREFIX_BYTES = Bytes.toBytes(ANNOTATION_CLINICAL_PREFIX); + public static final String LARGEST_VARIANT_LENGTH = "largestVariantLength"; + private final int version; private final SampleIndexConfiguration configuration; private final FileIndexSchema fileIndex; @@ -200,8 +202,12 @@ public static int getChunkStart(Integer start) { return (start / BATCH_SIZE) * BATCH_SIZE; } - public static Region getChunkRegion(Region region) { - return getChunkRegion(region.getChromosome(), region.getStart(), region.getEnd()); + public static int getChunkStartNext(Integer start) { + return getChunkStart(start + SampleIndexSchema.BATCH_SIZE); + } + + public static Region getChunkRegion(Region region, int extendedFilteringRegion) { + return getChunkRegion(region.getChromosome(), Math.max(0, region.getStart() - extendedFilteringRegion), region.getEnd()); } public static Region getChunkRegion(Variant variant) { @@ -209,11 +215,11 @@ public static Region getChunkRegion(Variant variant) { return getChunkRegion(variant.getChromosome(), variant.getStart(), variant.getStart()); } - public static Region getChunkRegion(String chromosome, int start, int end) { + private static Region getChunkRegion(String chromosome, int start, int end) { return new Region(chromosome, SampleIndexSchema.getChunkStart(start), end == Integer.MAX_VALUE ? Integer.MAX_VALUE - : SampleIndexSchema.getChunkStart(end + SampleIndexSchema.BATCH_SIZE)); + : SampleIndexSchema.getChunkStartNext(end)); } public static int getExpectedSize(String chromosome) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/mr/SampleIndexTableRecordReader.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/mr/SampleIndexTableRecordReader.java index 69f4576b7d2..2efd1115846 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/mr/SampleIndexTableRecordReader.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/mr/SampleIndexTableRecordReader.java @@ -20,6 +20,7 @@ import org.opencb.opencga.storage.hadoop.variant.index.query.LocusQuery; import org.opencb.opencga.storage.hadoop.variant.index.query.SampleIndexQuery; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexDBAdaptor; +import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexQueryParser; import org.opencb.opencga.storage.hadoop.variant.metadata.HBaseVariantStorageMetadataDBAdaptorFactory; import org.opencb.opencga.storage.hadoop.variant.utils.HBaseVariantTableNameGenerator; import org.slf4j.Logger; @@ -27,7 +28,6 @@ import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; import static org.opencb.opencga.storage.hadoop.variant.utils.HBaseVariantTableNameGenerator.getDBNameFromVariantsTableName; @@ -222,7 +222,8 @@ public void initialize(InputSplit inputsplit, TaskAttemptContext context) throws if (regions.isEmpty()) { iterator = VariantDBIterator.emptyIterator(); } else { - Collection locusQueries = regions.stream().map(LocusQuery::buildLocusQuery).collect(Collectors.toList()); + Collection locusQueries = SampleIndexQueryParser + .buildLocusQueries(regions, Collections.emptyList(), sampleIndexQuery.getExtendedFilteringRegion()); SampleIndexQuery query = new SampleIndexQuery(locusQueries, sampleIndexQuery); iterator = sampleIndexDBAdaptor.iterator(query); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopDBWriterTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopDBWriterTest.java index 714435ac771..289052ad00f 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopDBWriterTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopDBWriterTest.java @@ -268,7 +268,7 @@ private void loadVariantsBasic(StudyMetadata sc, int fileId, List varia fileId, metadataManager, dbAdaptor.getHBaseManager(), false, false); // TaskMetadata - HadoopLocalLoadVariantStoragePipeline.GroupedVariantsTask task = new HadoopLocalLoadVariantStoragePipeline.GroupedVariantsTask(archiveWriter, hadoopDBWriter, null, null); + HadoopLocalLoadVariantStoragePipeline.GroupedVariantsTask task = new HadoopLocalLoadVariantStoragePipeline.GroupedVariantsTask(archiveWriter, hadoopDBWriter, null, null, null, null, null); ParallelTaskRunner.Config config = ParallelTaskRunner.Config.builder().setNumTasks(1).setBatchSize(1).build(); ParallelTaskRunner>, Object> ptr = diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptorTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptorTest.java index fa3e6cfbf75..03e8b3cd4fb 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptorTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBAdaptorTest.java @@ -9,9 +9,11 @@ import org.opencb.opencga.core.testclassification.duration.ShortTests; import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager; import org.opencb.opencga.storage.core.metadata.models.SampleMetadata; -import org.opencb.opencga.storage.core.variant.query.VariantQueryUtils; import org.opencb.opencga.storage.core.variant.dummy.DummyVariantStorageMetadataDBAdaptorFactory; +import org.opencb.opencga.storage.core.variant.query.VariantQueryUtils; import org.opencb.opencga.storage.hadoop.utils.HBaseManager; +import org.opencb.opencga.storage.hadoop.variant.index.query.LocusQuery; +import org.opencb.opencga.storage.hadoop.variant.index.query.SampleAnnotationIndexQuery; import org.opencb.opencga.storage.hadoop.variant.index.query.SampleIndexQuery; import java.util.Arrays; @@ -40,38 +42,45 @@ public void testSampleIdFF() throws Exception { String sampleName = "FF"; metadataManager.unsecureUpdateSampleMetadata(studyId, new SampleMetadata(studyId, sampleId, sampleName)); - SampleIndexQuery query = new SampleIndexQuery(SampleIndexSchema.defaultSampleIndexSchema(), Collections.emptyList(), "ST", - Collections.singletonMap(sampleName, Collections.singletonList("0/1")), VariantQueryUtils.QueryOperation.AND); + SampleIndexQuery query = new SampleIndexQuery(SampleIndexSchema.defaultSampleIndexSchema(), Collections.emptyList(), 0, null, "ST", + Collections.singletonMap(sampleName, Collections.singletonList("0/1")), Collections.emptySet(), null, Collections.emptyMap(), + Collections.emptyMap(), Collections.emptyMap(), new SampleAnnotationIndexQuery(SampleIndexSchema.defaultSampleIndexSchema()), + Collections.emptySet(), null, false, VariantQueryUtils.QueryOperation.AND); new SampleIndexDBAdaptor(new HBaseManager(new Configuration()), null, metadataManager).parse(query.forSample(sampleName), null); } @Test public void testSplitRegion() { - Region region = new Region("1", 1000, 16400000); - List split = SampleIndexDBAdaptor.splitRegion(region); + Region region = new Region("1", 11001000, 16400000); + List split = SampleIndexDBAdaptor.splitLocusQuery( + new LocusQuery( + SampleIndexSchema.getChunkRegion(region, 3000000), + Collections.singletonList(region), + Collections.emptyList())); // Check region is not modified - Assert.assertEquals("1:1000-16400000", region.toString()); + Assert.assertEquals("1:11001000-16400000", region.toString()); Assert.assertEquals(Arrays.asList( - new Region("1", 1000, 999999), - new Region("1", 1000000, 15999999), - new Region("1", 16000000, 16400000)), + new LocusQuery(new Region("1", 8000000, 12000000), Collections.singletonList(new Region("1", 11001000, 11999999)), Collections.emptyList()), + new LocusQuery(new Region("1", 12000000, 16000000), Collections.singletonList(new Region("1", 12000000, 15999999)), Collections.emptyList()), + new LocusQuery(new Region("1", 16000000, 17000000), Collections.singletonList(new Region("1", 16000000, 16400000)), Collections.emptyList())), split); - Assert.assertFalse(SampleIndexDBAdaptor.startsAtBatch(split.get(0))); - Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(0))); - Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(1))); - Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(1))); - Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(2))); - Assert.assertFalse(SampleIndexDBAdaptor.endsAtBatch(split.get(2))); + Assert.assertFalse(SampleIndexDBAdaptor.startsAtBatch(split.get(0).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(0).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(1).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(1).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(2).getRegions().get(0))); + Assert.assertFalse(SampleIndexDBAdaptor.endsAtBatch(split.get(2).getRegions().get(0))); - split = SampleIndexDBAdaptor.splitRegion(new Region("1", 1000000, 16400000)); + region = new Region("1", 1000000, 16400000); + split = SampleIndexDBAdaptor.splitLocusQuery(new LocusQuery(SampleIndexSchema.getChunkRegion(region, 0), Collections.singletonList(region), Collections.emptyList())); Assert.assertEquals(Arrays.asList( - new Region("1", 1000000, 15999999), - new Region("1", 16000000, 16400000)), + new LocusQuery(new Region("1", 1000000, 16000000), Collections.singletonList(new Region("1", 1000000, 15999999)), Collections.emptyList()), + new LocusQuery(new Region("1", 16000000, 17000000), Collections.singletonList(new Region("1", 16000000, 16400000)), Collections.emptyList())), split); - Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(0))); - Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(0))); - Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(1))); - Assert.assertFalse(SampleIndexDBAdaptor.endsAtBatch(split.get(1))); + Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(0).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.endsAtBatch(split.get(0).getRegions().get(0))); + Assert.assertTrue(SampleIndexDBAdaptor.startsAtBatch(split.get(1).getRegions().get(0))); + Assert.assertFalse(SampleIndexDBAdaptor.endsAtBatch(split.get(1).getRegions().get(0))); } } \ No newline at end of file diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryFilterTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryFilterTest.java index 063727ddd84..f4989f9ff79 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryFilterTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryFilterTest.java @@ -279,7 +279,7 @@ private SingleSampleIndexQuery getSingleSampleIndexQuery(SampleAnnotationIndexQu private SingleSampleIndexQuery getSingleSampleIndexQuery(SampleAnnotationIndexQuery annotationIndexQuery, Map> fileFilterMap) { return new SampleIndexQuery( - schema, Collections.emptyList(), null, "study", Collections.singletonMap("S1", Arrays.asList("0/1", "1/1")), Collections.emptySet(), null, Collections.emptyMap(), Collections.emptyMap(), fileFilterMap, annotationIndexQuery, Collections.emptySet(), null, false, VariantQueryUtils.QueryOperation.AND) + schema, Collections.emptyList(), 0, null, "study", Collections.singletonMap("S1", Arrays.asList("0/1", "1/1")), Collections.emptySet(), null, Collections.emptyMap(), Collections.emptyMap(), fileFilterMap, annotationIndexQuery, Collections.emptySet(), null, false, VariantQueryUtils.QueryOperation.AND) .forSample("S1"); } } \ No newline at end of file diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParserTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParserTest.java index 1f8763e0ccf..0eafe0ca875 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParserTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParserTest.java @@ -1851,7 +1851,7 @@ public void testBuildLocusQueries() { new Region("6", 33_200_000, 34_800_000), new Region("8", 144_671_680, 144_690_000), new Region("6", 31_200_000, 31_800_000), - new Region("8", 145_100_000, 146_100_000)), Collections.emptyList()); + new Region("8", 145_100_000, 146_100_000)), Collections.emptyList(), 0); assertEquals(Arrays.asList( new LocusQuery(new Region("6", 31_000_000, 35_000_000), Arrays.asList(new Region("6", 31_200_000, 31_800_000),new Region("6", 33_200_000, 34_800_000)), Collections.emptyList()), // new LocusQuery(new Region("6", 31_000_000, 32_000_000), Collections.singletonList(new Region("6", 31_200_000, 31_800_000)), Collections.emptyList()), @@ -1866,7 +1866,7 @@ public void testBuildLocusQueries() { new Region("6", 31_200_000, 33_800_000), new Region("8", 144_671_680, 144_690_000), new Region("8", 144_700_000, 144_995_738), - new Region("8", 145_100_000, 146_100_000)), Collections.emptyList()); + new Region("8", 145_100_000, 146_100_000)), Collections.emptyList(), 0); assertEquals(Arrays.asList( new LocusQuery(new Region("6", 31_000_000, 35_000_000), Collections.singletonList(new Region("6", 31_200_000, 34_800_000)), Collections.emptyList()), new LocusQuery(new Region("8", 144_000_000, 147_000_000), Arrays.asList(new Region("8", 144_671_680, 144_690_000), @@ -1885,7 +1885,7 @@ public void testBuildLocusQueries() { new Variant("6:35001000:A:T"), new Variant("7:35001000:A:T"), new Variant("7:35002000:A:T") - )); + ), 0); assertEquals(Arrays.asList( new LocusQuery(new Region("6", 31_000_000, 36_000_000), Collections.singletonList(new Region("6", 31_200_000, 34_800_000)), Arrays.asList(new Variant("6:35001000:A:T"))), @@ -1895,5 +1895,38 @@ public void testBuildLocusQueries() { new Region("8", 144_700_000, 144_995_738), new Region("8", 145_100_000, 146_100_000)), Collections.emptyList()) ), queries); + + queries = buildLocusQueries( + Arrays.asList( + new Region("6", 31_200_000, 31_800_000), + new Region("6", 41_200_000, 43_800_000), + new Region("6", 35_200_000, 36_800_000), + new Region("8", 144_671_680, 144_690_000), + new Region("8", 144_700_000, 144_995_738), + new Region("8", 145_100_000, 146_100_000)), + Arrays.asList( + new Variant("6:35001000:A:T"), + new Variant("7:35001000:A:T"), + new Variant("7:35002000:A:T") + ), 2000000); + assertEquals(Arrays.asList( + new LocusQuery(new Region("6", 29_000_000, 44_000_000), + Arrays.asList( + new Region("6", 31_200_000, 31_800_000), + new Region("6", 35_200_000, 36_800_000), + new Region("6", 41_200_000, 43_800_000)), + Arrays.asList( + new Variant("6:35001000:A:T"))), + new LocusQuery(new Region("7", 35_000_000, 36_000_000), + Collections.emptyList(), + Arrays.asList( + new Variant("7:35001000:A:T"), + new Variant("7:35002000:A:T"))), + new LocusQuery(new Region("8", 142_000_000, 147_000_000), + Arrays.asList( + new Region("8", 144_671_680, 144_690_000), + new Region("8", 144_700_000, 144_995_738), + new Region("8", 145_100_000, 146_100_000)), Collections.emptyList()) + ), queries); } } \ No newline at end of file diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java index 4ab4180d2ba..5f52896d009 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java @@ -84,7 +84,8 @@ public class SampleIndexTest extends VariantStorageBaseTest implements HadoopVar private static boolean loaded = false; public static final String STUDY_NAME_3 = "study_3"; public static final String STUDY_NAME_4 = "study_4"; - private static final List studies = Arrays.asList(STUDY_NAME, STUDY_NAME_2, STUDY_NAME_3, STUDY_NAME_4); + public static final String STUDY_NAME_5 = "study_5"; + private static final List studies = Arrays.asList(STUDY_NAME, STUDY_NAME_2, STUDY_NAME_3, STUDY_NAME_4, STUDY_NAME_5); private static final Map> sampleNames = new HashMap>() {{ put(STUDY_NAME, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); put(STUDY_NAME_2, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); @@ -183,6 +184,14 @@ public void load() throws Exception { runETL(engine, getResourceUri("variant-test-dense.vcf.gz"), outputUri, params, true, true, true); engine.familyIndex(STUDY_NAME_4, trios, new ObjectMap()); + // Study 5, large SV + params = new ObjectMap() + .append(VariantStorageOptions.STUDY.key(), STUDY_NAME_5) + .append(VariantStorageOptions.ANNOTATE.key(), false) + .append(VariantStorageOptions.STATS_CALCULATE.key(), false); + runETL(engine, getResourceUri("variant-large-sv.vcf"), outputUri, params, true, true, true); + engine.familyIndex(STUDY_NAME_5, trios, new ObjectMap()); + // ---------------- Annotate // variantStorageEngine.getConfiguration().getCellbase().setUrl(ParamConstants.CELLBASE_URL); @@ -427,6 +436,36 @@ public void testMultiFileFilters() throws Exception { .append(SAMPLE_DATA.key(), "NA19600:DS=1.005")); } + @Test + public void testLocusQueryOverlap() throws Exception { + + VariantQuery query = new VariantQuery().study(STUDY_NAME_5).sample("NA19600"); + System.out.println("query = " + query.toJson()); + List variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) + .toDataResult().getResults(); + assertEquals(2, variants.size()); + + query.region("1:2000200-5500000"); + System.out.println("query = " + query.toJson()); + variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) + .toDataResult().getResults(); + assertEquals(2, variants.size()); + + query.region("1:200-2500000"); + System.out.println("query = " + query.toJson()); + variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) + .toDataResult().getResults(); + assertEquals(1, variants.size()); + assertEquals("1:1000001:4000000:-:", variants.get(0).toString()); + + query.region("1:2000200-2500000"); + System.out.println("query = " + query.toJson()); + variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) + .toDataResult().getResults(); + assertEquals(1, variants.size()); + assertEquals("1:1000001:4000000:-:", variants.get(0).toString()); + } + @Test public void testQueryAnnotationIndex() throws Exception { testQueryAnnotationIndex(new Query(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift=tolerated")); From f214bd87343e2103439aa218afd506e822d615ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Thu, 29 Jun 2023 10:47:12 +0100 Subject: [PATCH 19/70] storage: Fix checkstyle and test. #TASK-4146 --- .../variant/index/sample/SampleIndexQueryParser.java | 3 ++- .../hadoop/variant/index/sample/SampleIndexTest.java | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java index 08b036ee585..3731d3ff6f4 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexQueryParser.java @@ -544,7 +544,8 @@ public SampleIndexQuery parse(Query query) { Collection regionGroups = buildLocusQueries(regions, variants, extendedFilteringRegion); - return new SampleIndexQuery(schema, regionGroups, extendedFilteringRegion, variantTypes, study, sampleGenotypeQuery, multiFileSamples, negatedSamples, + return new SampleIndexQuery(schema, regionGroups, extendedFilteringRegion, variantTypes, study, + sampleGenotypeQuery, multiFileSamples, negatedSamples, fatherFilterMap, motherFilterMap, fileIndexMap, annotationIndexQuery, mendelianErrorSet, mendelianErrorType, includeParentsField, queryOperation); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java index 5f52896d009..3e77b77d22f 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java @@ -440,30 +440,30 @@ public void testMultiFileFilters() throws Exception { public void testLocusQueryOverlap() throws Exception { VariantQuery query = new VariantQuery().study(STUDY_NAME_5).sample("NA19600"); - System.out.println("query = " + query.toJson()); +// System.out.println("query = " + query.toJson()); List variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) .toDataResult().getResults(); assertEquals(2, variants.size()); query.region("1:2000200-5500000"); - System.out.println("query = " + query.toJson()); +// System.out.println("query = " + query.toJson()); variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) .toDataResult().getResults(); assertEquals(2, variants.size()); query.region("1:200-2500000"); - System.out.println("query = " + query.toJson()); +// System.out.println("query = " + query.toJson()); variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) .toDataResult().getResults(); assertEquals(1, variants.size()); - assertEquals("1:1000001:4000000:-:", variants.get(0).toString()); + assertEquals("1:1000001-4000000:-:", variants.get(0).toString()); query.region("1:2000200-2500000"); - System.out.println("query = " + query.toJson()); +// System.out.println("query = " + query.toJson()); variants = sampleIndexDBAdaptor.iterator(new Query(query), new QueryOptions()) .toDataResult().getResults(); assertEquals(1, variants.size()); - assertEquals("1:1000001:4000000:-:", variants.get(0).toString()); + assertEquals("1:1000001-4000000:-:", variants.get(0).toString()); } @Test From cde3594a2ebbd4fb31fa550e5a076c1ae0f3a5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Fri, 30 Jun 2023 16:36:36 +0200 Subject: [PATCH 20/70] analysis: update R package 'signature.tools.lib' to v2.4.1, #TASK-4593 --- .../analysis/variant/hrdetect/HRDetectAnalysis.java | 2 +- .../analysis/variant/VariantAnalysisTest.java | 12 ++++++++---- .../app/cloud/docker/opencga-ext-tools/Dockerfile | 13 ++++++++----- .../src/test/resources/hrdetect_output_38.tsv | 2 +- 4 files changed, 18 insertions(+), 11 deletions(-) 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/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java index 37ae808c6bf..a2a83790fbc 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 @@ -992,8 +992,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 +1022,12 @@ 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); } 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 024f4ed2a68..364a2994a24 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-storage/opencga-storage-core/src/test/resources/hrdetect_output_38.tsv b/opencga-storage/opencga-storage-core/src/test/resources/hrdetect_output_38.tsv index f69d855e19c..14b9e346363 100644 --- a/opencga-storage/opencga-storage-core/src/test/resources/hrdetect_output_38.tsv +++ b/opencga-storage/opencga-storage-core/src/test/resources/hrdetect_output_38.tsv @@ -1,2 +1,2 @@ intercept del.mh.prop SNV3 SV3 SV5 hrd SNV8 Probability -AR2.10039966-01T -3.364 6.1388694855816 2.93200322296942 -0.876753168376584 1.62647246717118 -0.102769988932733 0.110259929136027 0.998444003582779 +AR2.10039966-01T -3.364 -1.70122966415816 -0.949832911392405 -0.876753168376584 -1.10515509103169 -1.95208666666667 -0.125665303554577 4.21293910790655e-05 From d7b8d799161360445526b48806e0f0ba5c68d7d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Mon, 3 Jul 2023 10:26:48 +0200 Subject: [PATCH 21/70] analysis: fix the analysis of pedigree graphs when running with multiple disorders that have ids/names containing multiple words, #TASK-4686 --- .../analysis/variant/VariantAnalysisTest.java | 19 ++++++++++++++++--- .../catalog/utils/PedigreeGraphUtils.java | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) 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..19e4b6cce10 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); @@ -1026,6 +1028,17 @@ public void testHRDetectParseResults() throws Exception { assertEquals(0.998444f, 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) { checkExecutionResult(er, true); } 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 9da89bab416..6459083abab 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"); From db6922c8eeefc7e56ed60a8276694f24fd21e83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 4 Jul 2023 09:25:39 +0200 Subject: [PATCH 22/70] analysis: improve log messages, #TASK-4144 --- .../MutationalSignatureLocalAnalysisExecutor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 32b0bd92b75..f2bf45cf487 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 @@ -199,7 +199,7 @@ refGenomePath, new FastaSequenceIndex(new File(base + ".fai")), 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()); + variant.toStringSimple(), Arrays.toString(e.getStackTrace())); } } } @@ -227,7 +227,7 @@ private void updateCountMap(Variant variant, String sequence, Map Date: Tue, 4 Jul 2023 17:58:34 +0100 Subject: [PATCH 23/70] storage: Ensure native HBase query #TASK-4642 --- .../variant/index/SampleIndexOnlyVariantQueryExecutor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index a3558164692..4e33e778ca4 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -480,14 +480,16 @@ public List apply(List variants) { private void addSecondaryAlternates(List toReadFull) { // StopWatch stopWatch = StopWatch.createStarted(); - QueryOptions options = new QueryOptions(parsedQuery.getInputOptions()); - Set includeFields = new HashSet<>(VariantField.getIncludeFields(options)); + Set includeFields = new HashSet<>(VariantField.getIncludeFields(parsedQuery.getInputOptions())); includeFields.add(VariantField.STUDIES_SECONDARY_ALTERNATES); includeFields.add(VariantField.STUDIES_FILES); + + QueryOptions options = new QueryOptions(parsedQuery.getInputOptions()); options.remove(QueryOptions.EXCLUDE); options.remove(VariantField.SUMMARY); options.put(QueryOptions.INCLUDE, includeFields); options.put(VariantHadoopDBAdaptor.QUIET, true); + options.put(VariantHadoopDBAdaptor.NATIVE, true); Map fullVariants = dbAdaptor.get(new VariantQuery() .id(toReadFull) From 2596e2fcc29e7a200cfe2c4942f10dbfc4baba13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 5 Jul 2023 23:40:50 +0100 Subject: [PATCH 24/70] storage: Fix test. Avoid duplicated file entries #TASK-4642 --- .../study/HBaseToStudyEntryConverter.java | 42 +++++++++++++++---- ...doopVariantStorageEngineSplitDataTest.java | 3 +- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java index 2419d5960ae..7acd417c78e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/converters/study/HBaseToStudyEntryConverter.java @@ -240,11 +240,7 @@ protected StudyEntry convert(List sampleDataMap, } Map> alternateFileMap = new HashMap<>(); - for (Pair pair : filesMap) { - String fileId = pair.getKey(); - PhoenixArray fileColumn = pair.getValue(); - addFileEntry(studyMetadata, variant, studyEntry, fileId, fileColumn, alternateFileMap); - } + addFileEntries(filesMap, variant, studyMetadata, studyEntry, alternateFileMap); addSecondaryAlternates(variant, studyEntry, studyMetadata, alternateFileMap); fillEmptySamplesData(studyEntry, studyMetadata, fillMissingColumnValue); @@ -386,8 +382,36 @@ private List remapSamplesData(List sampleData, int[] formatsMap) } } - private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEntry studyEntry, String fileIdStr, - PhoenixArray fileColumn, Map> alternateFileMap) { + private void addFileEntries(List> filesMap, Variant variant, StudyMetadata studyMetadata, + StudyEntry studyEntry, Map> alternateFileMap) { + // Some file entries might be added only for their "OriginalCall" info. + // These would be added at the end, but only if the original call is not already present. + ArrayList filesOnlyCall = new ArrayList<>(); + for (Pair pair : filesMap) { + String fileId = pair.getKey(); + PhoenixArray fileColumn = pair.getValue(); + addFileEntry(studyMetadata, variant, fileId, fileColumn, alternateFileMap, studyEntry.getFiles(), filesOnlyCall); + } + if (!filesOnlyCall.isEmpty()) { + // Create a set of original calls to avoid duplicates + Set variantIds = new HashSet<>(); + for (FileEntry fileEntry : studyEntry.getFiles()) { + if (fileEntry.getCall() != null) { + variantIds.add(fileEntry.getCall().getVariantId()); + } + } + for (FileEntry fileEntry : filesOnlyCall) { + if (variantIds.add(fileEntry.getCall().getVariantId())) { + // Not seen, so add to the list of file entries + studyEntry.getFiles().add(fileEntry); + } + } + } + } + + private void addFileEntry(StudyMetadata studyMetadata, Variant variant, String fileIdStr, + PhoenixArray fileColumn, Map> alternateFileMap, + List files, List filesOnlyCall) { int fileId = Integer.parseInt(fileIdStr); String alternateRaw = (String) (fileColumn.getElement(FILE_SEC_ALTS_IDX)); String alternate = normalizeNonRefAlternateCoordinate(variant, alternateRaw); @@ -401,7 +425,7 @@ private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEnt && !configuration.getProjection().getStudy(studyMetadata.getId()).getFiles().contains(fileId)) { if (call != null && !call.isEmpty()) { OriginalCall originalCall = parseOriginalCall(call); - studyEntry.getFiles().add(new FileEntry(fileName, originalCall, Collections.emptyMap())); + filesOnlyCall.add(new FileEntry(fileName, originalCall, Collections.emptyMap())); } return; } @@ -423,7 +447,7 @@ private void addFileEntry(StudyMetadata studyMetadata, Variant variant, StudyEnt alternateCoordinate.getReference(), alternateCoordinate.getAlternate()).toString(), 0); } - studyEntry.getFiles().add(new FileEntry(fileName, originalCall, attributes)); + files.add(new FileEntry(fileName, originalCall, attributes)); } private OriginalCall parseOriginalCall(String call) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineSplitDataTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineSplitDataTest.java index b68a8a85342..5d77e7dc375 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineSplitDataTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineSplitDataTest.java @@ -412,7 +412,8 @@ public void testLoadByRegion() throws Exception { assertEquals(TaskMetadata.Status.NONE, sampleMetadata.getSampleIndexAnnotationStatus(1)); } - checkVariantsTable(studyId_split, studyId_normal, new VariantQuery().includeSample(ParamConstants.ALL), new QueryOptions(QueryOptions.EXCLUDE, VariantField.STUDIES_FILES)); + checkVariantsTable(studyId_split, studyId_normal, new VariantQuery().includeSample(ParamConstants.ALL), new QueryOptions(QueryOptions.EXCLUDE, VariantField.STUDIES_FILES), + v -> v.getStudies().get(0).getFiles().forEach(file -> file.setFileId(""))); checkSampleIndex(studyId_split, studyId_normal); } From 12913784f059ea72099fc72150eafd54d602144a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Tue, 11 Jul 2023 09:32:35 +0100 Subject: [PATCH 25/70] storage: Fix test VariantHadoopDBWriterTest.loadVariantsBasic #TASK-4736 --- .../variant/HadoopLocalLoadVariantStoragePipeline.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java index 62ed11a729d..063219f7654 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopLocalLoadVariantStoragePipeline.java @@ -631,7 +631,11 @@ protected static class GroupedVariantsTask implements Task t; + } else { + this.otherTask = otherTask; + } } @Override From dd2362e33bf416f5847ff1080a2c2ae6e069f045 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 12 Jul 2023 12:36:29 +0200 Subject: [PATCH 26/70] Prepare release 2.8.2.1 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 6 +++--- 21 files changed, 23 insertions(+), 23 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 9e8f790a1c5..ec07e770980 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 9a3cf1a065d..487f8a79b70 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index ce12ec8bb7d..a477a10338c 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index eea1e5e143f..2253ab703c1 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 5849eeb4cc6..1f4081610ce 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 1043ad89e74..2d20981f882 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index ff8f7892601..f1328ae8014 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 4e25503d4a2..f31a834b58c 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 704afa216d5..c880ba80e4d 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 4a06087fc05..1ffa40499d6 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 4c004d2bb7b..e3680f726a9 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 1c0cd71fd7d..4952d05abfa 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index f96d3f9ccaa..ffa0a154cd5 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 34594bea0a6..1e5cc5980ab 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 3c9c953ee24..44eb9fb37a9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index d68c78fce5c..b3d21b69d62 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index adc064c8d1e..44c89fd9b22 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 033c1d323cf..3a7acd6082b 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index c369625b1e1..21edba58336 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 60eb7b9c7fd..6210dc8d2b0 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 ../pom.xml diff --git a/pom.xml b/pom.xml index 37db25a9a58..a71ba63f9d8 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1-SNAPSHOT + 2.8.2.1 pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis @@ -42,8 +42,8 @@ - 2.8.3 - 2.8.3 + + 2.8.2.1 5.4.0 2.8.0 4.8.0 From a8c51d843df33ebebb2dc56ad3f0de0519929116 Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 12 Jul 2023 13:54:42 +0200 Subject: [PATCH 27/70] catalog: fix include in project search method, #TASK-4712 --- .../catalog/db/mongodb/MongoDBAdaptor.java | 35 +++++++++++++++++++ .../db/mongodb/ProjectMongoDBAdaptor.java | 7 ++-- .../ProjectCatalogMongoDBIterator.java | 30 ++++++++++++++-- .../catalog/managers/ProjectManagerTest.java | 26 ++++++++++++++ 4 files changed, 94 insertions(+), 4 deletions(-) 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..97de4701558 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 = addPrefixInOptions(options, "projects."); + qOptions = filterQueryOptions(qOptions, Arrays.asList(QueryParams.UID.key(), QueryParams.FQN.key())); + + /*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/iterators/ProjectCatalogMongoDBIterator.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/iterators/ProjectCatalogMongoDBIterator.java index 52aa62fb1e0..f08e0cea0e6 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 exclude : list) { + if (exclude.equals("studies") || exclude.equals("projects.studies")) { + return true; + } + } + return false; + } else { + return true; + } + } } 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..56c29d0fbb9 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,31 @@ 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.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 { From 0d335223287137bb4b9d3306076c024287a40b04 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 12 Jul 2023 17:26:13 +0200 Subject: [PATCH 28/70] Fix needs in release.yml --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ed6340be1f..204f13d2b72 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 From 95ed1adf2d269b4715def60d0c3d3826093d04a4 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 13 Jul 2023 08:39:35 +0200 Subject: [PATCH 29/70] update version --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index ec07e770980..ddefa7d2618 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 487f8a79b70..c0bc97362b9 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index a477a10338c..c911504528d 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 2253ab703c1..25c7042ce63 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 1f4081610ce..d7c383eec63 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 2d20981f882..b23641a3dbd 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index f1328ae8014..d1e079cf6a8 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index f31a834b58c..f16e51062b9 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index c880ba80e4d..209b780bb8c 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 1ffa40499d6..e43034af54f 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index e3680f726a9..95c37c68a8c 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 4952d05abfa..ca90d6fc622 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index ffa0a154cd5..001205ea43e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 1e5cc5980ab..e8ed3f367fc 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 44eb9fb37a9..19403f3054e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index b3d21b69d62..f46f425eede 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 44c89fd9b22..d2c588dc56f 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 3a7acd6082b..42703d7ee32 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 21edba58336..643cebae481 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 6210dc8d2b0..18c878e910c 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index a71ba63f9d8..778d57c8df0 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.10.0-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis From 1319dca78325329eff09996d47169d24be609317 Mon Sep 17 00:00:00 2001 From: imedina Date: Mon, 17 Jul 2023 01:33:54 +0100 Subject: [PATCH 30/70] Prepare release 2.10.0 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index ddefa7d2618..7844c61c782 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index c0bc97362b9..b25eb3d7e06 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index c911504528d..3e041c2a767 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 25c7042ce63..9ae20b273bf 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index d7c383eec63..2b909b97d2c 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index b23641a3dbd..52e0d9d9795 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index d1e079cf6a8..14e9ff88442 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index f16e51062b9..229956a4b60 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 209b780bb8c..9c06003c1e6 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index e43034af54f..08a6603cd59 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 95c37c68a8c..85c6321289e 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index ca90d6fc622..ee34b8f5284 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index 001205ea43e..30c0ceba8df 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index e8ed3f367fc..d9705a34f36 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 19403f3054e..6dcbbea5635 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index f46f425eede..7c5d8e9cc86 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index d2c588dc56f..39134f16293 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 42703d7ee32..ee14da290e4 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 643cebae481..288064b9406 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 18c878e910c..a34e79d3d87 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 ../pom.xml diff --git a/pom.xml b/pom.xml index 4d35b06f169..7469f82817d 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0-SNAPSHOT + 2.10.0 pom OpenCGA OpenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.10.0_dev - 2.10.0_dev - 5.6.0-SNAPSHOT - 2.10.0-SNAPSHOT - 4.10.0-SNAPSHOT - 2.10.0-SNAPSHOT + 2.10.0 + 2.10.0 + 5.6.0 + 2.10.0 + 4.10.0 + 2.10.0 0.2.0 From a19ea40fb4c466b86df0a2b5714ffbe00b2173cb Mon Sep 17 00:00:00 2001 From: imedina Date: Mon, 17 Jul 2023 01:37:14 +0100 Subject: [PATCH 31/70] Prepare new development branch release-2.10.x --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 7844c61c782..adcb53e2d0e 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index b25eb3d7e06..b787e5d11d2 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index 3e041c2a767..fac7d8e548a 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 9ae20b273bf..22a563296b0 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 2b909b97d2c..de52a8ef4e1 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 52e0d9d9795..e2d8fc127e4 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 14e9ff88442..2d6fd5a8da6 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 229956a4b60..65cebaebdda 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 9c06003c1e6..cafb6d1c2ac 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 08a6603cd59..aa79ec720fd 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 85c6321289e..b97d0472984 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index ee34b8f5284..97db69b63b9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index 30c0ceba8df..1c27bd10350 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index d9705a34f36..f1f99b70468 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 6dcbbea5635..03561e6c93d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 7c5d8e9cc86..c0e60a63db5 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 39134f16293..1ea5e5a91d1 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index ee14da290e4..c9a6b5604a3 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 288064b9406..49b680170d0 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index a34e79d3d87..caa613c03e2 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 7469f82817d..c0b9f02fd71 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.10.0 + 2.11.0-SNAPSHOT pom OpenCGA OpenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.10.0 - 2.10.0 - 5.6.0 - 2.10.0 - 4.10.0 - 2.10.0 + 2.11.0_dev + 2.11.0_dev + 5.7.0-SNAPSHOT + 2.11.0-SNAPSHOT + 4.11.0-SNAPSHOT + 2.11.0-SNAPSHOT 0.2.0 From 7d4ed6df4477d6e063fb5ef1c5b19de642c04122 Mon Sep 17 00:00:00 2001 From: imedina Date: Mon, 17 Jul 2023 01:41:02 +0100 Subject: [PATCH 32/70] cicd: fix develop.yml 'needs' variable --- .github/workflows/develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 88757b2ef11de00e8e1c188ba22eac9a1c9625d1 Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 20 Jul 2023 10:23:00 +0200 Subject: [PATCH 33/70] catalog: add new test including just the studies, #TASK-4712 --- .../catalog/db/mongodb/ProjectMongoDBAdaptor.java | 4 ++-- .../opencga/catalog/managers/ProjectManagerTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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 97de4701558..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,8 @@ private MongoDBIterator getMongoCursor(ClientSession clientSession, Qu aggregates.add(Aggregates.match(bsonQuery)); // Check include - QueryOptions qOptions = addPrefixInOptions(options, "projects."); - qOptions = filterQueryOptions(qOptions, Arrays.asList(QueryParams.UID.key(), QueryParams.FQN.key())); + 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) { 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 56c29d0fbb9..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 @@ -175,6 +175,17 @@ public void searchProjectsUsingInclude() throws CatalogException { 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()); From 041b3bdf201060d423f5965486000c3c16c1784d Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 20 Jul 2023 11:51:56 +0200 Subject: [PATCH 34/70] Create branch Port Patch 1.6.3.1 -> 1.6.4 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index ec07e770980..a2fed95c1b8 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 487f8a79b70..be106d38391 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index a477a10338c..d43aa67b53f 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 2253ab703c1..fc888cf42ea 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 1f4081610ce..7d8f216a0ea 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 2d20981f882..eb0016308f8 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index f1328ae8014..1f19d740348 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index f31a834b58c..c4050fb6339 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index c880ba80e4d..3a1821c0cbd 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 1ffa40499d6..9c61a4cab94 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index e3680f726a9..a746892a217 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 4952d05abfa..0e8e429b549 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index ffa0a154cd5..b3b9bcc68cc 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 1e5cc5980ab..185a923475d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 44eb9fb37a9..4a1ed4cb963 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index b3d21b69d62..8788d1547ac 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 44c89fd9b22..5f3b2235c63 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 3a7acd6082b..cf3e6549427 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 21edba58336..0f73ef09ee2 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 6210dc8d2b0..ab0a67d1e7e 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index a71ba63f9d8..6c40385d56a 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.2.1 + 2.8.3-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis From 1c2db28529029f8ae9e19aa51bbc5ff60a4e346d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Fri, 21 Jul 2023 11:07:29 +0100 Subject: [PATCH 35/70] storage: Add FILTER to the SampleIndexOnlyVariantQueryExecutor #TASK-4794 --- .../storage/SampleIndexConfiguration.java | 9 ++ .../SampleIndexOnlyVariantQueryExecutor.java | 102 ++++++++++++++++-- ...endelianErrorSampleIndexEntryIterator.java | 9 +- .../index/sample/SampleIndexDBLoader.java | 3 +- .../sample/SampleIndexEntryIterator.java | 11 +- .../index/sample/SampleVariantIndexEntry.java | 29 +++-- 6 files changed, 136 insertions(+), 27 deletions(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java index f2e6bf1c3f8..0dcdf5b08fc 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java @@ -386,6 +386,15 @@ public List getCustomFields() { return customFields; } + public IndexFieldConfiguration getCustomField(IndexFieldConfiguration.Source source, String key) { + for (IndexFieldConfiguration s : customFields) { + if (s.getKey().equals(key) && s.getSource() == source) { + return s; + } + } + return null; + } + public int getFilePositionBits() { return filePositionBits; } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 4e33e778ca4..195f35a66d2 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -2,6 +2,7 @@ import com.google.common.collect.Iterators; import htsjdk.variant.vcf.VCFConstants; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.time.StopWatch; import org.opencb.biodata.models.variant.StudyEntry; @@ -16,7 +17,9 @@ import org.opencb.commons.run.Task; import org.opencb.opencga.core.common.BatchUtils; import org.opencb.opencga.core.common.TimeUtils; +import org.opencb.opencga.core.config.storage.IndexFieldConfiguration; import org.opencb.opencga.core.response.VariantQueryResult; +import org.opencb.opencga.storage.core.io.bit.BitBuffer; import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager; import org.opencb.opencga.storage.core.metadata.models.SampleMetadata; import org.opencb.opencga.storage.core.metadata.models.TaskMetadata; @@ -31,10 +34,12 @@ import org.opencb.opencga.storage.core.variant.query.projection.VariantQueryProjectionParser; import org.opencb.opencga.storage.hadoop.variant.adaptors.VariantHadoopDBAdaptor; import org.opencb.opencga.storage.hadoop.variant.converters.HBaseToVariantConverter; +import org.opencb.opencga.storage.hadoop.variant.index.core.IndexField; import org.opencb.opencga.storage.hadoop.variant.index.family.GenotypeCodec; import org.opencb.opencga.storage.hadoop.variant.index.query.SampleIndexQuery; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexDBAdaptor; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexQueryParser; +import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexSchema; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleVariantIndexEntry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,6 +47,7 @@ import java.io.IOException; import java.util.*; import java.util.concurrent.*; +import java.util.function.BiConsumer; import java.util.stream.Collectors; import static org.opencb.opencga.storage.core.variant.query.VariantQueryUtils.NONE; @@ -283,10 +289,12 @@ private boolean isIncludeCovered(SampleIndexQuery sampleIndexQuery, Query inputQ private static class SampleVariantIndexEntryToVariantConverter implements Converter { + + enum FamilyRole { MOTHER, FATHER, - SAMPLE + SAMPLE; } private final boolean includeStudy; @@ -296,9 +304,20 @@ enum FamilyRole { private String motherName; private String fatherName; private LinkedHashMap samplesPosition; + private final List files; + private IndexField filterField; + private IndexField qualField; + private final SampleIndexSchema schema; + SampleVariantIndexEntryToVariantConverter(ParsedVariantQuery parseQuery, SampleIndexQuery sampleIndexQuery, VariantStorageMetadataManager metadataManager) { + schema = sampleIndexQuery.getSchema(); + filterField = schema.getFileIndex() + .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER); + qualField = schema.getFileIndex() + .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.QUAL); + VariantQueryProjection projection = parseQuery.getProjection(); includeStudy = !projection.getStudyIds().isEmpty(); if (includeStudy) { @@ -348,6 +367,13 @@ enum FamilyRole { this.fatherName = null; } + List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); + files = new ArrayList<>(fileIds.size()); + for (Integer fileId : fileIds) { + files.add(metadataManager.getFileName(studyId, fileId)); + } + } else { + files = null; } } @@ -378,6 +404,22 @@ public Variant convert(SampleVariantIndexEntry entry) { throw new IllegalStateException("Unexpected value: " + role); } } + HashMap fileAttributes = new HashMap<>(); + // TODO: What if multi-files? + BitBuffer fileIndexBitBuffer = entry.getFileIndex(); + String filter = filterField.readAndDecode(fileIndexBitBuffer); + if (filter == null) { + filter = "NA"; + } + fileAttributes.put(StudyEntry.FILTER, filter); +// String qual = qualField.readAndDecode(fileIndexBitBuffer); +// if (qual == null) { +// qual = "NA"; +// } +// fileAttributes.put(StudyEntry.QUAL, qual); + String fileName = files.get(0); + studyEntry.setFiles(new ArrayList<>()); + studyEntry.getFiles().add(new FileEntry(fileName, null, fileAttributes)); studyEntry.setSortedSamplesPosition(samplesPosition); v.setStudies(Collections.singletonList(studyEntry)); } @@ -391,6 +433,7 @@ private class AddMissingDataTask implements Task { private final List samples; private final List files; private final List allFiles; + private final int gtIdx; AddMissingDataTask(ParsedVariantQuery parsedQuery, SampleIndexQuery sampleIndexQuery, VariantStorageMetadataManager metadataManager) { @@ -423,6 +466,8 @@ private class AddMissingDataTask implements Task { for (Integer fileId : fileIds) { files.add(metadataManager.getFileName(studyId, fileId)); } + List includeSampleData = VariantQueryUtils.getIncludeSampleData(parsedQuery.getInputQuery()); + gtIdx = includeSampleData.indexOf("GT"); } @Override @@ -478,6 +523,10 @@ public List apply(List variants) { return variants; } + /** + * Fetch the Secondary alternates, sample GTs and original call of these variants. + * @param toReadFull variants to complete + */ private void addSecondaryAlternates(List toReadFull) { // StopWatch stopWatch = StopWatch.createStarted(); Set includeFields = new HashSet<>(VariantField.getIncludeFields(parsedQuery.getInputOptions())); @@ -491,27 +540,41 @@ private void addSecondaryAlternates(List toReadFull) { options.put(VariantHadoopDBAdaptor.QUIET, true); options.put(VariantHadoopDBAdaptor.NATIVE, true); - Map fullVariants = dbAdaptor.get(new VariantQuery() + Map variantsExtra = dbAdaptor.get(new VariantQuery() .id(toReadFull) .study(studyName) .includeSample(samples) - .includeSampleData(VariantQueryUtils.getIncludeSampleData(parsedQuery.getInputQuery())) + .includeSampleData("GT") // read only GT .includeFile(allFiles), options) .getResults().stream().collect(Collectors.toMap(Variant::toString, v -> v)); for (Variant variant : toReadFull) { - Variant fullVariant = fullVariants.get(variant.toString()); - if (fullVariant == null) { + Variant variantExtra = variantsExtra.get(variant.toString()); + if (variantExtra == null) { // TODO: Should we fail here? // throw new VariantQueryException("Variant " + variant + " not found!"); logger.warn("Variant " + variant + " not found!"); continue; } - StudyEntry fullStudy = fullVariant.getStudies().get(0); - fullStudy.getFiles().forEach(f -> f.setData(Collections.emptyMap())); - fullStudy.setStats(Collections.emptyList()); - variant.setStudies(Collections.singletonList(fullStudy)); + StudyEntry studyExtra = variantExtra.getStudies().get(0); + StudyEntry study = variant.getStudies().get(0); + + mergeFileEntries(study, studyExtra.getFiles(), (fe, newFe) -> { + fe.setCall(newFe.getCall()); + }); + // merge sampleEntries + for (SampleEntry sampleExtra : studyExtra.getSamples()) { + SampleEntry sample = study.getSample(sampleExtra.getSampleId()); + sample.getData().set(gtIdx, sampleExtra.getData().get(0)); +// if (sampleExtra.getFileIndex() != null) { +// String fileIdFromFull = fullStudy.getFiles().get(sampleExtra.getFileIndex()).getFileId(); +// if (sample.getFileIndex() == null) { +// actualStudy.getFiles(). +// String fileIdFrmoFull = fullStudy.getFiles().get(sampleExtra.getFileIndex()).getFileId(); +// } +// } + } } // logger.info(" # Fetch {} SEC_ALTS in {}", toReadFull.size(), TimeUtils.durationToString(stopWatch)); } @@ -544,11 +607,30 @@ private void addOriginalCall(List variants, String study) { logger.warn("Variant " + variant + " not found!"); continue; } - variant.getStudies().get(0).setFiles(fileEntries); + StudyEntry studyEntry = variant.getStudies().get(0); + mergeFileEntries(studyEntry, fileEntries, (fe, newFe)->{ + fe.setCall(newFe.getCall()); + }); } // logger.info(" # Fetch {} INDEL original call in {}", filesMap.size(), TimeUtils.durationToString(stopWatch)); } + private void mergeFileEntries(StudyEntry studyEntry, List newFileEntries, + BiConsumer merge) { + if (CollectionUtils.isEmpty(studyEntry.getFiles())) { + studyEntry.setFiles(newFileEntries); + } else { + for (FileEntry newFileEntry : newFileEntries) { + FileEntry fileEntry = studyEntry.getFile(newFileEntry.getFileId()); + if (fileEntry == null) { + studyEntry.getFiles().add(newFileEntry); + } else { + merge.accept(fileEntry, newFileEntry); + } + } + } + } + } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/family/MendelianErrorSampleIndexEntryIterator.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/family/MendelianErrorSampleIndexEntryIterator.java index 233129ef337..f089c82f20e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/family/MendelianErrorSampleIndexEntryIterator.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/family/MendelianErrorSampleIndexEntryIterator.java @@ -125,9 +125,12 @@ public Variant next() { @Override public SampleVariantIndexEntry nextSampleVariantIndexEntry() { AnnotationIndexEntry annotationIndexEntry = nextAnnotationIndexEntry(); - BitBuffer fileIndex = null; + List filesIndex = new ArrayList<>(); if (hasFileIndex()) { - fileIndex = nextFileIndexEntry(); + filesIndex.add(nextFileIndexEntry()); + while (isMultiFileIndex()) { + filesIndex.add(nextMultiFileIndexEntry()); + } } String genotype = nextGenotype(); int meCode = nextMendelianErrorCode(); @@ -136,7 +139,7 @@ public SampleVariantIndexEntry nextSampleVariantIndexEntry() { parentsCode = nextParentsIndexEntry(); } Variant variant = next(); - return new SampleVariantIndexEntry(variant, fileIndex, genotype, annotationIndexEntry, parentsCode, meCode); + return new SampleVariantIndexEntry(variant, filesIndex, genotype, annotationIndexEntry, parentsCode, meCode); } @Override diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBLoader.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBLoader.java index 428e835025c..f2700831e94 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBLoader.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexDBLoader.java @@ -143,7 +143,8 @@ public void addVariant(int sampleIdx, String gt, SampleVariantIndexEntry variant throw new IllegalArgumentException("Already loaded variant " + variantIndexEntry.getVariant()); } } - if (schema.getFileIndex().isMultiFile(variantIndexEntry.getFileIndex())) { + if (variantIndexEntry.getFilesIndex().size() > 1 + || schema.getFileIndex().isMultiFile(variantIndexEntry.getFilesIndex().get(0))) { throw new IllegalArgumentException("Unexpected multi-file at variant " + variantIndexEntry.getVariant()); } sampleEntry.add(gt, variantIndexEntry); diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryIterator.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryIterator.java index 61627ddfd7b..da9c4a3a517 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryIterator.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexEntryIterator.java @@ -4,7 +4,9 @@ import org.opencb.opencga.storage.core.io.bit.BitBuffer; import org.opencb.opencga.storage.hadoop.variant.index.annotation.AnnotationIndexEntry; +import java.util.ArrayList; import java.util.Iterator; +import java.util.List; /** * Iterate through the variants of a SampleIndexEntry. @@ -36,9 +38,12 @@ default SampleVariantIndexEntry nextSampleVariantIndexEntry() { // This object could be reused annotationIndexEntry = new AnnotationIndexEntry(annotationIndexEntry); } - BitBuffer fileIndex = null; + List filesIndex = new ArrayList<>(); if (hasFileIndex()) { - fileIndex = nextFileIndexEntry(); + filesIndex.add(nextFileIndexEntry()); + while (isMultiFileIndex()) { + filesIndex.add(nextMultiFileIndexEntry()); + } } Byte parentsCode = null; if (hasParentsIndex()) { @@ -46,7 +51,7 @@ default SampleVariantIndexEntry nextSampleVariantIndexEntry() { } String genotype = nextGenotype(); Variant variant = next(); - return new SampleVariantIndexEntry(variant, fileIndex, genotype, annotationIndexEntry, parentsCode); + return new SampleVariantIndexEntry(variant, filesIndex, genotype, annotationIndexEntry, parentsCode, null); } /** diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleVariantIndexEntry.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleVariantIndexEntry.java index 359591ed3d1..3d919ce846f 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleVariantIndexEntry.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleVariantIndexEntry.java @@ -6,7 +6,9 @@ import org.opencb.opencga.storage.core.io.bit.BitBuffer; import org.opencb.opencga.storage.hadoop.variant.index.annotation.AnnotationIndexEntry; +import java.util.Collections; import java.util.Comparator; +import java.util.List; import java.util.Objects; import static org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexSchema.INTRA_CHROMOSOME_VARIANT_COMPARATOR; @@ -15,21 +17,18 @@ public class SampleVariantIndexEntry { private final Variant variant; private final String genotype; + @Deprecated private final BitBuffer fileIndex; + private final List filesIndex; private final AnnotationIndexEntry annotationIndexEntry; private final Integer meCode; private final Byte parentsCode; public SampleVariantIndexEntry(Variant variant, BitBuffer fileIndex) { - this(variant, fileIndex, null, null, null); + this(variant, Collections.singletonList(fileIndex), null, null, null, null); } - public SampleVariantIndexEntry(Variant variant, BitBuffer fileIndex, String genotype, AnnotationIndexEntry annotationIndexEntry, - Byte parentsCode) { - this(variant, fileIndex, genotype, annotationIndexEntry, parentsCode, null); - } - - public SampleVariantIndexEntry(Variant variant, BitBuffer fileIndex, String genotype, AnnotationIndexEntry annotationIndexEntry, + public SampleVariantIndexEntry(Variant variant, List filesIndex, String genotype, AnnotationIndexEntry annotationIndexEntry, Byte parentsCode, Integer meCode) { if (CollectionUtils.isEmpty(variant.getImpl().getStudies())) { this.variant = variant; @@ -48,7 +47,12 @@ public SampleVariantIndexEntry(Variant variant, BitBuffer fileIndex, String geno variant.getType(), null, null)); } - this.fileIndex = fileIndex; + this.filesIndex = filesIndex; + if (filesIndex == null) { + this.fileIndex = null; + } else { + this.fileIndex = filesIndex.get(0); + } this.genotype = genotype; this.annotationIndexEntry = annotationIndexEntry; this.meCode = meCode; @@ -59,10 +63,15 @@ public Variant getVariant() { return variant; } + @Deprecated public BitBuffer getFileIndex() { return fileIndex; } + public List getFilesIndex() { + return filesIndex; + } + public String getGenotype() { return genotype; } @@ -88,7 +97,7 @@ public boolean equals(Object o) { return false; } SampleVariantIndexEntry that = (SampleVariantIndexEntry) o; - return fileIndex.equals(that.fileIndex) && Objects.equals(variant, that.variant); + return filesIndex.equals(that.filesIndex) && Objects.equals(variant, that.variant); } @Override @@ -106,7 +115,7 @@ public String toString(SampleIndexSchema schema, String separator) { sb.append(separator).append("gt: ") .append(this.getGenotype()); sb.append(separator).append("file: ") - .append(this.getFileIndex()); + .append(this.getFilesIndex()); if (annotationIndexEntry != null) { annotationIndexEntry.toString(schema, separator, sb); } From c21e416ebb1c66f4b4ab3bd43eb65039292311be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Fri, 21 Jul 2023 12:55:35 +0100 Subject: [PATCH 36/70] storage: Fix multi-allelic fetch. Add QUAL. #TASK-4794 --- .../SampleIndexOnlyVariantQueryExecutor.java | 27 ++++++++++--------- .../variant/index/core/RangeIndexField.java | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 195f35a66d2..6c0668aa1e2 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -390,15 +390,15 @@ public Variant convert(SampleVariantIndexEntry entry) { switch (role) { case MOTHER: studyEntry.getSamples().add(new SampleEntry(motherName, null, - Collections.singletonList(GenotypeCodec.decodeMother(entry.getParentsCode())))); + Arrays.asList(GenotypeCodec.decodeMother(entry.getParentsCode())))); break; case FATHER: studyEntry.getSamples().add(new SampleEntry(fatherName, null, - Collections.singletonList(GenotypeCodec.decodeFather(entry.getParentsCode())))); + Arrays.asList(GenotypeCodec.decodeFather(entry.getParentsCode())))); break; case SAMPLE: studyEntry.getSamples().add(new SampleEntry(sampleName, null, - Collections.singletonList(entry.getGenotype()))); + Arrays.asList(entry.getGenotype()))); break; default: throw new IllegalStateException("Unexpected value: " + role); @@ -412,11 +412,11 @@ public Variant convert(SampleVariantIndexEntry entry) { filter = "NA"; } fileAttributes.put(StudyEntry.FILTER, filter); -// String qual = qualField.readAndDecode(fileIndexBitBuffer); -// if (qual == null) { -// qual = "NA"; -// } -// fileAttributes.put(StudyEntry.QUAL, qual); + String qual = qualField.readAndDecode(fileIndexBitBuffer); + if (qual == null) { + qual = "NA"; + } + fileAttributes.put(StudyEntry.QUAL, qual); String fileName = files.get(0); studyEntry.setFiles(new ArrayList<>()); studyEntry.getFiles().add(new FileEntry(fileName, null, fileAttributes)); @@ -513,7 +513,7 @@ public List apply(List variants) { // Should end in few seconds future.get(90, TimeUnit.SECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { - throw new VariantQueryException("Error fetching original call for INDELs"); + throw new VariantQueryException("Error fetching extra data", e); } } logger.info("Fetch {} partial variants in {} in {} threads", @@ -564,8 +564,11 @@ private void addSecondaryAlternates(List toReadFull) { fe.setCall(newFe.getCall()); }); // merge sampleEntries - for (SampleEntry sampleExtra : studyExtra.getSamples()) { - SampleEntry sample = study.getSample(sampleExtra.getSampleId()); + for (int i = 0; i < samples.size(); i++) { +// String sampleName = samples.get(i); + SampleEntry sample = study.getSample(i); + SampleEntry sampleExtra = studyExtra.getSample(i); + sample.getData().set(gtIdx, sampleExtra.getData().get(0)); // if (sampleExtra.getFileIndex() != null) { // String fileIdFromFull = fullStudy.getFiles().get(sampleExtra.getFileIndex()).getFileId(); @@ -608,7 +611,7 @@ private void addOriginalCall(List variants, String study) { continue; } StudyEntry studyEntry = variant.getStudies().get(0); - mergeFileEntries(studyEntry, fileEntries, (fe, newFe)->{ + mergeFileEntries(studyEntry, fileEntries, (fe, newFe) -> { fe.setCall(newFe.getCall()); }); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java index 5cf4d9e75c0..8f5d6a8f4f8 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java @@ -120,7 +120,7 @@ public int encode(Double value) { @Override public Double decode(int code) { - return code == thresholds.length ? max : code < 0 ? min : thresholds[code]; + return code <= 0 ? min : thresholds[code - 1]; } @Override From e65f12950761b888173be62446b167bb76ba6184 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Fri, 21 Jul 2023 13:56:50 +0200 Subject: [PATCH 37/70] Fix weekend cicd syntax --- .github/workflows/long-test-analysis.yml | 4 ++-- .../storage/core/variant/annotation/DummyTestAnnotator.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java index 71f5135e08c..b36e8fa90ad 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java @@ -59,7 +59,7 @@ public List annotate(List variants) throws VariantAn public ProjectMetadata.VariantAnnotationMetadata getVariantAnnotationMetadata() throws VariantAnnotatorException { return new ProjectMetadata.VariantAnnotationMetadata(-1, null, null, new ProjectMetadata.VariantAnnotatorProgram("MyAnnotator", key, null), - Collections.singletonList(new ObjectMap("data", "genes")), null); + Collections.singletonList(new ObjectMap("data", "genes")), null,null); } } From 026500f25a9c59c1bac60d1be8f1912e0d319ebc Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Mon, 24 Jul 2023 10:28:23 +0200 Subject: [PATCH 38/70] Prepare release 2.9.2 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index aec5669b12f..90785305aeb 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index a9fe3703f97..487a5db6a10 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index 43fb05be14d..72f6826b01c 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index bed3ac24829..0fe70424e93 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 9f85a0ff7d0..4c2ca0fcc8f 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 8544e3bbd09..169f823dc73 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 898205375bc..588edea3bec 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 957eb127745..ce486179b63 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 45bd1dd22c1..c8b4d7baaab 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index cdd5e80590b..529f72d4704 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index ab277249b74..2fb5ee548ad 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 2ef22a0bf03..8e77648c007 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index 6ed975a82d8..1184125129d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 422fa4f30c2..e0433aecf75 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index a2e8db3647b..6dfda56b33c 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 246bdd0cc61..2a11460e046 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index e7302b47a65..1e3a6fe0ab7 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 580e03d7ebc..6ada960d62c 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index eff64556c36..5147b9ca3db 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 6b0e2013c39..83b52baf0c0 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 ../pom.xml diff --git a/pom.xml b/pom.xml index f36ef9ca58a..76c206990bb 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2-SNAPSHOT + 2.9.2 pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.9.2_dev - 2.9.2_dev - 5.5.1-SNAPSHOT - 2.9.1-SNAPSHOT - 4.9.1-SNAPSHOT - 2.9.2-SNAPSHOT + 2.9.2 + 2.9.2 + 5.5.0 + 2.9.0 + 4.9.0 + 2.9.2 0.2.0 2.11.4 From 0531651b3809695c77c6526e4fb7053e9e23de8b Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Tue, 25 Jul 2023 10:17:51 +0200 Subject: [PATCH 39/70] Update version for Port Patch 1.7.2 -> 1.9.0 #TASK-4810 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 90785305aeb..adcb53e2d0e 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 487a5db6a10..b787e5d11d2 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index 72f6826b01c..fac7d8e548a 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 0fe70424e93..22a563296b0 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 4c2ca0fcc8f..de52a8ef4e1 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 169f823dc73..e2d8fc127e4 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 588edea3bec..2d6fd5a8da6 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index ce486179b63..65cebaebdda 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index c8b4d7baaab..cafb6d1c2ac 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 529f72d4704..aa79ec720fd 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 2fb5ee548ad..b97d0472984 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 8e77648c007..97db69b63b9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index 1184125129d..1c27bd10350 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index e0433aecf75..f1f99b70468 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 6dfda56b33c..03561e6c93d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 2a11460e046..c0e60a63db5 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 1e3a6fe0ab7..1ea5e5a91d1 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index 6ada960d62c..c9a6b5604a3 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 5147b9ca3db..49b680170d0 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 83b52baf0c0..caa613c03e2 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 76c206990bb..061edc3cead 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.9.2 + 2.11.0-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis From 4de465a5a1dedbd5c5e1d2dff2ffabfebed3e81d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Tue, 25 Jul 2023 16:20:56 +0100 Subject: [PATCH 40/70] storage: Do not return extra files information. #TASK-4794 --- .../ExomiserWrapperAnalysisExecutor.java | 8 +- .../storage/SampleIndexConfiguration.java | 2 +- .../test/resources/variant-multiallelic.vcf | 20 +++ .../SampleIndexOnlyVariantQueryExecutor.java | 141 ++++++++++-------- .../variant/index/sample/FileIndexSchema.java | 27 +++- .../index/core/CategoricalIndexFieldTest.java | 50 ++++++- .../variant/index/sample/SampleIndexTest.java | 61 +++++++- 7 files changed, 233 insertions(+), 76 deletions(-) create mode 100644 opencga-storage/opencga-storage-core/src/test/resources/variant-multiallelic.vcf 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 1b19e410b5b..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, @@ -133,7 +128,8 @@ public void run() throws ToolException { .sample(sampleId) .includeSample(samples) .includeSampleData("GT") - .unknownGenotype("./."); + .unknownGenotype("./.") + .append("includeAllFromSampleIndex", true); QueryOptions queryOptions = new QueryOptions(QueryOptions.INCLUDE, "id,studies.samples"); diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java index 0dcdf5b08fc..31b1bd45a45 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java @@ -169,7 +169,7 @@ public static SampleIndexConfiguration defaultConfiguration(boolean cellbaseV4) .addFileIndexField(new IndexFieldConfiguration( IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER, - IndexFieldConfiguration.Type.CATEGORICAL, + IndexFieldConfiguration.Type.CATEGORICAL_MULTI_VALUE, VCFConstants.PASSES_FILTERS_v4)) .addFileIndexField(new IndexFieldConfiguration( IndexFieldConfiguration.Source.FILE, StudyEntry.QUAL, QUAL_THRESHOLDS).setNullable(false)) diff --git a/opencga-storage/opencga-storage-core/src/test/resources/variant-multiallelic.vcf b/opencga-storage/opencga-storage-core/src/test/resources/variant-multiallelic.vcf new file mode 100644 index 00000000000..dc1cfc5d784 --- /dev/null +++ b/opencga-storage/opencga-storage-core/src/test/resources/variant-multiallelic.vcf @@ -0,0 +1,20 @@ +##fileformat=VCFv4.1 +##FILTER= +##FILTER= +##FILTER= +##FILTER= +##FORMAT= +##FORMAT= +##FORMAT= +##command=seq 1000000 500 3000000 | while read i ; do echo -e "chr1\t$i\t.\tA\tC\t$RANDOM\tPASS\t.\tGT\t0/1\t1/1\t1|0\t0|1" ; done +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA19600 NA19660 NA19661 NA19685 +chr1 1000000 . A C,T 5 noPass,noPass2 . GT 1/2 1/1 0|0 0|1 +chr1 1000010 . A AC,CA 20 PASS . GT 1/2 1/1 0|0 0|1 +chr1 1000020 . AT T,A 60 . . GT 1/2 1/1 0|0 0|1 +chr1 1000030 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000040 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000050 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000060 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000070 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000080 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 +chr1 1000090 . C G 60 . PASS GT 1/0 1/1 0|0 0|1 \ No newline at end of file diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 6c0668aa1e2..8b4f5d1c347 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -2,7 +2,6 @@ import com.google.common.collect.Iterators; import htsjdk.variant.vcf.VCFConstants; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.time.StopWatch; import org.opencb.biodata.models.variant.StudyEntry; @@ -177,8 +176,9 @@ private VariantDBIterator getVariantDBIterator(SampleIndexQuery sampleIndexQuery } catch (IOException e) { throw VariantQueryException.internalException(e).setQuery(inputQuery); } - SampleVariantIndexEntryToVariantConverter converter = - new SampleVariantIndexEntryToVariantConverter(parsedQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); + boolean includeAll = inputQuery.getBoolean("includeAllFromSampleIndex", false); + SampleVariantIndexEntryToVariantConverter converter = new SampleVariantIndexEntryToVariantConverter( + parsedQuery, sampleIndexQuery, dbAdaptor.getMetadataManager(), includeAll); variantIterator = VariantDBIterator.wrapper(Iterators.transform(rawIterator, converter::convert)); AddMissingDataTask task = new AddMissingDataTask( parsedQuery, sampleIndexQuery, dbAdaptor.getMetadataManager()); @@ -289,8 +289,6 @@ private boolean isIncludeCovered(SampleIndexQuery sampleIndexQuery, Query inputQ private static class SampleVariantIndexEntryToVariantConverter implements Converter { - - enum FamilyRole { MOTHER, FATHER, @@ -304,19 +302,17 @@ enum FamilyRole { private String motherName; private String fatherName; private LinkedHashMap samplesPosition; - private final List files; + private List sampleFiles; private IndexField filterField; private IndexField qualField; private final SampleIndexSchema schema; + private final boolean includeAll; SampleVariantIndexEntryToVariantConverter(ParsedVariantQuery parseQuery, SampleIndexQuery sampleIndexQuery, - VariantStorageMetadataManager metadataManager) { + VariantStorageMetadataManager metadataManager, boolean includeAll) { schema = sampleIndexQuery.getSchema(); - filterField = schema.getFileIndex() - .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER); - qualField = schema.getFileIndex() - .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.QUAL); + this.includeAll = includeAll; VariantQueryProjection projection = parseQuery.getProjection(); includeStudy = !projection.getStudyIds().isEmpty(); @@ -367,13 +363,22 @@ enum FamilyRole { this.fatherName = null; } - List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); - files = new ArrayList<>(fileIds.size()); - for (Integer fileId : fileIds) { - files.add(metadataManager.getFileName(studyId, fileId)); + if (includeAll) { + if (sampleMetadata == null) { + sampleMetadata = metadataManager.getSampleMetadata(studyId, sampleId); + } + if (sampleMetadata.isMultiFileSample()) { + List sampleFileIds = sampleMetadata.getFiles(); + sampleFiles = new ArrayList<>(sampleFileIds.size()); + for (Integer fileId : sampleFileIds) { + sampleFiles.add(metadataManager.getFileName(studyId, fileId)); + } + } + filterField = schema.getFileIndex() + .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER); + qualField = schema.getFileIndex() + .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.QUAL); } - } else { - files = null; } } @@ -386,6 +391,7 @@ public Variant convert(SampleVariantIndexEntry entry) { studyEntry.setStudyId(studyName); studyEntry.setSampleDataKeys(Collections.singletonList("GT")); studyEntry.setSamples(new ArrayList<>(familyRoleOrder.size())); + SampleEntry sampleEntry = null; for (FamilyRole role : familyRoleOrder) { switch (role) { case MOTHER: @@ -397,29 +403,37 @@ public Variant convert(SampleVariantIndexEntry entry) { Arrays.asList(GenotypeCodec.decodeFather(entry.getParentsCode())))); break; case SAMPLE: - studyEntry.getSamples().add(new SampleEntry(sampleName, null, - Arrays.asList(entry.getGenotype()))); + sampleEntry = new SampleEntry(sampleName, null, + Arrays.asList(entry.getGenotype())); + studyEntry.getSamples().add(sampleEntry); break; default: throw new IllegalStateException("Unexpected value: " + role); } } - HashMap fileAttributes = new HashMap<>(); - // TODO: What if multi-files? - BitBuffer fileIndexBitBuffer = entry.getFileIndex(); - String filter = filterField.readAndDecode(fileIndexBitBuffer); - if (filter == null) { - filter = "NA"; - } - fileAttributes.put(StudyEntry.FILTER, filter); - String qual = qualField.readAndDecode(fileIndexBitBuffer); - if (qual == null) { - qual = "NA"; + if (includeAll) { + HashMap fileAttributes = new HashMap<>(); + for (BitBuffer fileIndexBitBuffer : entry.getFilesIndex()) { + String filter = filterField.readAndDecode(fileIndexBitBuffer); + if (filter == null) { + filter = "NA"; + } + fileAttributes.put(StudyEntry.FILTER, filter); + String qual = qualField.readAndDecode(fileIndexBitBuffer); + if (qual == null) { + qual = "NA"; + } + fileAttributes.put(StudyEntry.QUAL, qual); + + Integer idx = schema.getFileIndex().getFilePositionIndex().readAndDecode(fileIndexBitBuffer); + String fileName = sampleFiles.get(idx); + studyEntry.setFiles(new ArrayList<>()); + studyEntry.getFiles().add(new FileEntry(fileName, null, fileAttributes)); + if (sampleEntry != null) { + sampleEntry.setFileIndex(0); + } + } } - fileAttributes.put(StudyEntry.QUAL, qual); - String fileName = files.get(0); - studyEntry.setFiles(new ArrayList<>()); - studyEntry.getFiles().add(new FileEntry(fileName, null, fileAttributes)); studyEntry.setSortedSamplesPosition(samplesPosition); v.setStudies(Collections.singletonList(studyEntry)); } @@ -430,9 +444,10 @@ public Variant convert(SampleVariantIndexEntry entry) { private class AddMissingDataTask implements Task { private final ParsedVariantQuery parsedQuery; private final String studyName; - private final List samples; - private final List files; - private final List allFiles; + private final String sampleName; + private final List filesFromSample; + private final List includeSamples; + private final List allFiles; // from all includedSamples private final int gtIdx; AddMissingDataTask(ParsedVariantQuery parsedQuery, SampleIndexQuery sampleIndexQuery, @@ -449,9 +464,9 @@ private class AddMissingDataTask implements Task { throw new IllegalStateException("Unexpected number of samples. Expected one, found " + sampleIndexQuery.getSamplesMap().keySet()); } - samples = new ArrayList<>(projectionStudy.getSamples().size()); + includeSamples = new ArrayList<>(projectionStudy.getSamples().size()); for (Integer sample : projectionStudy.getSamples()) { - samples.add(metadataManager.getSampleName(studyId, sample)); + includeSamples.add(metadataManager.getSampleName(studyId, sample)); } Set allFileIds = metadataManager.getFileIdsFromSampleIds(studyId, projectionStudy.getSamples(), true); allFiles = new ArrayList<>(allFileIds.size()); @@ -459,12 +474,12 @@ private class AddMissingDataTask implements Task { allFiles.add(metadataManager.getFileName(studyId, fileId)); } - String sampleName = sampleIndexQuery.getSamplesMap().keySet().iterator().next(); + sampleName = sampleIndexQuery.getSamplesMap().keySet().iterator().next(); Integer sampleId = metadataManager.getSampleId(studyId, sampleName); List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); - files = new ArrayList<>(fileIds.size()); + filesFromSample = new ArrayList<>(fileIds.size()); for (Integer fileId : fileIds) { - files.add(metadataManager.getFileName(studyId, fileId)); + filesFromSample.add(metadataManager.getFileName(studyId, fileId)); } List includeSampleData = VariantQueryUtils.getIncludeSampleData(parsedQuery.getInputQuery()); gtIdx = includeSampleData.indexOf("GT"); @@ -543,7 +558,7 @@ private void addSecondaryAlternates(List toReadFull) { Map variantsExtra = dbAdaptor.get(new VariantQuery() .id(toReadFull) .study(studyName) - .includeSample(samples) + .includeSample(includeSamples) .includeSampleData("GT") // read only GT .includeFile(allFiles), options) @@ -560,23 +575,17 @@ private void addSecondaryAlternates(List toReadFull) { StudyEntry studyExtra = variantExtra.getStudies().get(0); StudyEntry study = variant.getStudies().get(0); + study.setSecondaryAlternates(studyExtra.getSecondaryAlternates()); + mergeFileEntries(study, studyExtra.getFiles(), (fe, newFe) -> { fe.setCall(newFe.getCall()); }); // merge sampleEntries - for (int i = 0; i < samples.size(); i++) { -// String sampleName = samples.get(i); + for (int i = 0; i < includeSamples.size(); i++) { SampleEntry sample = study.getSample(i); SampleEntry sampleExtra = studyExtra.getSample(i); sample.getData().set(gtIdx, sampleExtra.getData().get(0)); -// if (sampleExtra.getFileIndex() != null) { -// String fileIdFromFull = fullStudy.getFiles().get(sampleExtra.getFileIndex()).getFileId(); -// if (sample.getFileIndex() == null) { -// actualStudy.getFiles(). -// String fileIdFrmoFull = fullStudy.getFiles().get(sampleExtra.getFileIndex()).getFileId(); -// } -// } } } // logger.info(" # Fetch {} SEC_ALTS in {}", toReadFull.size(), TimeUtils.durationToString(stopWatch)); @@ -588,7 +597,7 @@ private void addOriginalCall(List variants, String study) { for (Variant variant : dbAdaptor.iterable( new Query() .append(VariantQueryParam.ID.key(), variants) - .append(VariantQueryParam.INCLUDE_FILE.key(), files) + .append(VariantQueryParam.INCLUDE_FILE.key(), filesFromSample) .append(VariantQueryParam.INCLUDE_SAMPLE.key(), NONE) .append(VariantQueryParam.INCLUDE_STUDY.key(), study), new QueryOptions() @@ -620,21 +629,23 @@ private void addOriginalCall(List variants, String study) { private void mergeFileEntries(StudyEntry studyEntry, List newFileEntries, BiConsumer merge) { - if (CollectionUtils.isEmpty(studyEntry.getFiles())) { - studyEntry.setFiles(newFileEntries); - } else { - for (FileEntry newFileEntry : newFileEntries) { - FileEntry fileEntry = studyEntry.getFile(newFileEntry.getFileId()); - if (fileEntry == null) { - studyEntry.getFiles().add(newFileEntry); - } else { - merge.accept(fileEntry, newFileEntry); + if (studyEntry.getFiles() == null) { + studyEntry.setFiles(new ArrayList<>(newFileEntries.size())); + } + for (FileEntry newFileEntry : newFileEntries) { + FileEntry fileEntry = studyEntry.getFile(newFileEntry.getFileId()); + if (fileEntry == null) { + fileEntry = new FileEntry(newFileEntry.getFileId(), null, new HashMap<>()); + studyEntry.getFiles().add(fileEntry); + if (filesFromSample.contains(fileEntry.getFileId())) { + SampleEntry sampleEntry = studyEntry.getSample(sampleName); + if (sampleEntry.getFileIndex() == null) { + sampleEntry.setFileIndex(studyEntry.getFiles().size() - 1); + } } } + merge.accept(fileEntry, newFileEntry); } } - - } - } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/FileIndexSchema.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/FileIndexSchema.java index 4ea023e75e5..a383109139d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/FileIndexSchema.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/FileIndexSchema.java @@ -213,7 +213,32 @@ private static IndexField buildCustomIndexField(IndexFieldConfiguration } else { return Arrays.asList(s.split(VCFConstants.FILTER_CODE_SEPARATOR)); } - }, v -> v == null ? null : String.join(VCFConstants.FILTER_CODE_SEPARATOR, v)); + }, values -> { + if (values == null || values.isEmpty()) { + return null; + } + if (values.size() == 1) { + String value = values.get(0); + if (value == null) { + return null; + } else { + return value; + } + } else { + StringBuilder sb = new StringBuilder(); + for (String v : values) { + if (sb.length() != 0) { + sb.append(VCFConstants.FILTER_CODE_SEPARATOR); + } + if (v == null) { + sb.append("NA"); + } else { + sb.append(v); + } + } + return sb.toString(); + } + }); } else { return new CategoricalMultiValuedIndexField<>(conf, bitOffset, conf.getValues()) .from(s -> { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java index a062617da1f..0abaa66893a 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java @@ -1,7 +1,9 @@ package org.opencb.opencga.storage.hadoop.variant.index.core; +import org.apache.commons.lang3.tuple.Pair; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.opencb.biodata.models.variant.StudyEntry; import org.opencb.opencga.core.config.storage.IndexFieldConfiguration; import org.opencb.opencga.core.config.storage.SampleIndexConfiguration; import org.opencb.opencga.core.testclassification.duration.ShortTests; @@ -15,6 +17,7 @@ import java.util.Set; import static org.junit.Assert.assertEquals; +import static org.opencb.opencga.core.config.storage.IndexFieldConfiguration.Source.FILE; import static org.opencb.opencga.core.config.storage.IndexFieldConfiguration.Source.SAMPLE; @Category(ShortTests.class) @@ -39,10 +42,55 @@ public void testLength() { assertEquals(3, CategoricalIndexField.create(new IndexFieldConfiguration(SAMPLE, "K", IndexFieldConfiguration.Type.CATEGORICAL, "1", "2", "3", "4", "5", "6").setNullable(nullable), 0).getBitLength()); } + @Test + public void testEncodeDecodeQual() { + SampleIndexSchema indexSchema = SampleIndexSchema.defaultSampleIndexSchema(); + IndexField qualfield = indexSchema.getFileIndex().getCustomField(FILE, StudyEntry.QUAL); + + List> pairs = Arrays.asList( + Pair.of("45", "30.0"), + Pair.of("25", "20.0"), + Pair.of("30", "30.0"), + Pair.of("10", "10.0"), + Pair.of("0", Double.toString(Double.MIN_VALUE)) + ); + for (Pair pair : pairs) { + String qual = pair.getKey(); + String expectedQual = pair.getValue(); + int encode = qualfield.encode(qual); + String actualQual = qualfield.decode(encode); + assertEquals(expectedQual, actualQual); + } + } + + @Test + public void testEncodeDecodeFilter() { + SampleIndexConfiguration indexConfiguration = SampleIndexConfiguration.defaultConfiguration(); + indexConfiguration.getFileIndexConfiguration().getCustomField(FILE, StudyEntry.FILTER).setValues("PASS", "noPass"); + SampleIndexSchema indexSchema = new SampleIndexSchema(indexConfiguration, 0); + IndexField field = indexSchema.getFileIndex().getCustomField(FILE, StudyEntry.FILTER); + + List> pairs = Arrays.asList( + Pair.of("PASS", "PASS"), + Pair.of("asdfasdf", null), + Pair.of("noPass", "noPass"), + Pair.of("PASS;noPass", "PASS;noPass"), + Pair.of("PASS;noPass;other;another", "PASS;noPass;NA"), + Pair.of(".", null) + ); + for (Pair pair : pairs) { + String filter = pair.getKey(); + String expectedFilter = pair.getValue(); + int encode = field.encode(filter); + String actualFilter = field.decode(encode); + assertEquals(expectedFilter, actualFilter); + } + } + @Test public void testEncodeDecode() { SampleIndexSchema indexSchema = SampleIndexSchema.defaultSampleIndexSchema(); - CategoricalMultiValuedIndexField field = (CategoricalMultiValuedIndexField) indexSchema.getCtIndex().getField(); + CategoricalMultiValuedIndexField field = indexSchema.getCtIndex().getField(); List expected = Arrays.asList("synonymous_variant", "missense_variant"); int encode = field.encode(expected); diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java index 7693fc1a53e..3cea4d62452 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java @@ -14,8 +14,10 @@ import org.junit.experimental.categories.Category; import org.junit.rules.ExternalResource; import org.opencb.biodata.models.core.Region; +import org.opencb.biodata.models.variant.StudyEntry; import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.ConsequenceType; +import org.opencb.biodata.models.variant.avro.FileEntry; import org.opencb.biodata.models.variant.avro.VariantType; import org.opencb.biodata.models.variant.metadata.SampleVariantStats; import org.opencb.commons.datastore.core.*; @@ -59,6 +61,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import java.util.stream.Collectors; import static java.util.stream.Collectors.*; @@ -84,8 +87,15 @@ public class SampleIndexTest extends VariantStorageBaseTest implements HadoopVar private static boolean loaded = false; public static final String STUDY_NAME_3 = "study_3"; public static final String STUDY_NAME_4 = "study_4"; - public static final String STUDY_NAME_5 = "study_5"; - private static final List studies = Arrays.asList(STUDY_NAME, STUDY_NAME_2, STUDY_NAME_3, STUDY_NAME_4, STUDY_NAME_5); + public static final String STUDY_NAME_5 = "study_5"; // large SV + public static final String STUDY_NAME_6 = "study_6"; // multiallelic + private static final List studies = Arrays.asList( + STUDY_NAME, + STUDY_NAME_2, + STUDY_NAME_3, + STUDY_NAME_4, + STUDY_NAME_5, + STUDY_NAME_6); private static final Map> sampleNames = new HashMap>() {{ put(STUDY_NAME, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); put(STUDY_NAME_2, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); @@ -192,6 +202,20 @@ public void load() throws Exception { runETL(engine, getResourceUri("variant-large-sv.vcf"), outputUri, params, true, true, true); engine.familyIndex(STUDY_NAME_5, trios, new ObjectMap()); + // Study 6, multiallelic + SampleIndexConfiguration sampleIndexConfiguration = SampleIndexConfiguration.defaultConfiguration(); + System.out.println("sampleIndexConfiguration.getFileIndexConfiguration() = " + sampleIndexConfiguration.getFileIndexConfiguration()); + sampleIndexConfiguration.getFileIndexConfiguration().getCustomField(IndexFieldConfiguration.Source.FILE, "FILTER") + .setValues("PASS", "noPass", "noPass2"); + engine.getMetadataManager().addSampleIndexConfiguration(STUDY_NAME_6, sampleIndexConfiguration, true); + + params = new ObjectMap() + .append(VariantStorageOptions.STUDY.key(), STUDY_NAME_6) + .append(VariantStorageOptions.ANNOTATE.key(), false) + .append(VariantStorageOptions.STATS_CALCULATE.key(), false); + runETL(engine, getResourceUri("variant-multiallelic.vcf"), outputUri, params, true, true, true); + engine.familyIndex(STUDY_NAME_6, trios, new ObjectMap()); + // ---------------- Annotate // variantStorageEngine.getConfiguration().getCellbase().setUrl(ParamConstants.CELLBASE_URL); @@ -1122,9 +1146,41 @@ public void testSampleIndexOnlyVariantQueryExecutor() { new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(VariantField.ID, VariantField.STUDIES_SAMPLES)), SampleIndexOnlyVariantQueryExecutor.class); + testSampleIndexOnlyVariantQueryExecutor( + new VariantQuery() + .study(STUDY_NAME_6) + .sample("NA19600") + .includeGenotype(true), + new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(VariantField.ID, VariantField.STUDIES_SAMPLES)), + SampleIndexOnlyVariantQueryExecutor.class); + + testSampleIndexOnlyVariantQueryExecutor( + new VariantQuery() + .study(STUDY_NAME_6) + .sample("NA19600") + .includeGenotype(true) + .append("includeAllFromSampleIndex", true), + new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(VariantField.ID, VariantField.STUDIES_SAMPLES)), + SampleIndexOnlyVariantQueryExecutor.class, + v -> { + for (FileEntry fe : v.getStudies().get(0).getFiles()) { + assertNotNull(fe.getData().get(StudyEntry.FILTER)); + fe.setData(Collections.emptyMap()); + } + v.getStudies().get(0).getFiles().removeIf(fe -> fe.getCall() == null); + if (v.getStudies().get(0).getFiles().isEmpty()) { + v.getStudies().get(0).getSamples().forEach(s -> s.setFileIndex(null)); + } + return v; + }); } private void testSampleIndexOnlyVariantQueryExecutor(VariantQuery query, QueryOptions options, Class expected) { + testSampleIndexOnlyVariantQueryExecutor(query, options, expected, v -> v); + } + + private void testSampleIndexOnlyVariantQueryExecutor(VariantQuery query, QueryOptions options, Class expected, + Function mapper) { VariantQueryExecutor variantQueryExecutor = variantStorageEngine.getVariantQueryExecutor( query, options); @@ -1158,6 +1214,7 @@ private void testSampleIndexOnlyVariantQueryExecutor(VariantQuery query, QueryOp for (int i = 0; i < actualVariants.size(); i++) { Variant av = actualVariants.get(i); Variant ev = expectedVariants.get(i); + mapper.apply(av); if (!ev.getStudies().isEmpty()) { if (av.getLengthAlternate() == 0 || av.getLengthReference() == 0) { // System.out.println("-------" + av + "----------"); From cd665a651e6395b4714faf75fab96900ca445bec Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 26 Jul 2023 10:53:02 +0200 Subject: [PATCH 41/70] CICD: docker-ext tools deploy workflow --- .github/workflows/docker-ext-tools.yml | 48 +++++++++++++++++++++----- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-ext-tools.yml b/.github/workflows/docker-ext-tools.yml index 07062f03278..8241c3c5d66 100644 --- a/.github/workflows/docker-ext-tools.yml +++ b/.github/workflows/docker-ext-tools.yml @@ -1,18 +1,48 @@ name: Deploy Docker Ext-Tools - on: - push: - branches: - - develop - - release-* - - TASK-* - paths: - - opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile workflow_dispatch: + inputs: + ref: + description: "The branch, tag or SHA to build docker. Otherwise, uses develop branch." + type: string + required: false + default: "" jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop + 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.ref }}" + - 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 + - id: get_project_version + uses: avides/actions-project-version-check@v1.3.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + file-to-check: pom.xml + only-return-version: true deploy-docker-ext-tools: uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop From 2943017fa577df1eadf160ecb99987492fd7dd4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 26 Jul 2023 10:59:38 +0100 Subject: [PATCH 42/70] storage: Fix NPE at SampleIndexOnlyVariantQueryExecutor for non multi-file samples #TASK-4794 --- .../index/SampleIndexOnlyVariantQueryExecutor.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java index 8b4f5d1c347..5829a9580a8 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/SampleIndexOnlyVariantQueryExecutor.java @@ -66,7 +66,7 @@ public class SampleIndexOnlyVariantQueryExecutor extends VariantQueryExecutor { private final VariantHadoopDBAdaptor dbAdaptor; private final VariantQueryParser variantQueryParser; private final VariantQueryProjectionParser variantQueryProjectionParser; - private Logger logger = LoggerFactory.getLogger(SampleIndexOnlyVariantQueryExecutor.class); + private static Logger logger = LoggerFactory.getLogger(SampleIndexOnlyVariantQueryExecutor.class); private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(new BasicThreadFactory.Builder() .namingPattern("sample-index-async-count-%s") @@ -373,6 +373,15 @@ enum FamilyRole { for (Integer fileId : sampleFileIds) { sampleFiles.add(metadataManager.getFileName(studyId, fileId)); } + } else { + List fileIds = metadataManager.getFileIdsFromSampleId(studyId, sampleId, true); + if (fileIds.isEmpty()) { + logger.warn("Sample without indexed files!"); + sampleFiles = Collections.singletonList("sample_without_indexed_files.vcf"); + } else { + String fileName = metadataManager.getFileName(studyId, fileIds.get(0)); + sampleFiles = Collections.singletonList(fileName); + } } filterField = schema.getFileIndex() .getCustomField(IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER); From b2f354aca1d5f30c2d251363fc1ff465e38fb784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 26 Jul 2023 11:00:03 +0100 Subject: [PATCH 43/70] storage: Revert default SampleIndexConfiguration changes. #TASK-4794 --- .../storage/SampleIndexConfiguration.java | 11 ++++- .../index/core/CategoricalIndexField.java | 47 +++++++++++++++---- .../CategoricalMultiValuedIndexField.java | 28 +++++++++-- .../index/core/FixedSizeIndexSchema.java | 8 ++++ .../hadoop/variant/index/core/IndexField.java | 8 ++++ .../variant/index/core/RangeIndexField.java | 36 ++++++++++++-- .../index/core/SingleFieldIndexSchema.java | 8 ++++ .../AbstractSampleIndexEntryFilter.java | 7 ++- .../index/sample/SampleIndexSchema.java | 16 +++++++ .../sample/SampleIndexVariantBiConverter.java | 4 ++ .../index/sample/VariantTypeIndexCodec.java | 7 +++ 11 files changed, 164 insertions(+), 16 deletions(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java index 31b1bd45a45..21178f7fdf4 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/SampleIndexConfiguration.java @@ -169,7 +169,7 @@ public static SampleIndexConfiguration defaultConfiguration(boolean cellbaseV4) .addFileIndexField(new IndexFieldConfiguration( IndexFieldConfiguration.Source.FILE, StudyEntry.FILTER, - IndexFieldConfiguration.Type.CATEGORICAL_MULTI_VALUE, + IndexFieldConfiguration.Type.CATEGORICAL, VCFConstants.PASSES_FILTERS_v4)) .addFileIndexField(new IndexFieldConfiguration( IndexFieldConfiguration.Source.FILE, StudyEntry.QUAL, QUAL_THRESHOLDS).setNullable(false)) @@ -714,4 +714,13 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(fileIndexConfiguration, annotationIndexConfiguration); } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleIndexConfiguration{"); + sb.append("fileIndexConfiguration=").append(fileIndexConfiguration); + sb.append(", annotationIndexConfiguration=").append(annotationIndexConfiguration); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexField.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexField.java index 1ebc25bbe97..59e373257d7 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexField.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexField.java @@ -8,10 +8,7 @@ import org.opencb.opencga.storage.hadoop.variant.index.core.filters.MultiValueIndexFieldFilter; import org.opencb.opencga.storage.hadoop.variant.index.core.filters.SingleValueIndexFieldFilter; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -22,7 +19,7 @@ * Value "0" represents NA. */ public class CategoricalIndexField extends IndexField implements IndexCodec { - private final int numBits; + private final int bitLength; private final IndexCodec codec; public static CategoricalIndexField create(IndexFieldConfiguration configuration, int bitOffset) { @@ -43,18 +40,18 @@ public CategoricalIndexField(IndexFieldConfiguration configuration, int bitOffse numValues = values.length; codec = new BasicCodec<>(values, valuesMapping); } - this.numBits = Math.max(1, IndexUtils.log2(numValues - 1) + 1); + this.bitLength = Math.max(1, IndexUtils.log2(numValues - 1) + 1); } public CategoricalIndexField(IndexFieldConfiguration configuration, int bitOffset, int numValues, IndexCodec codec) { super(configuration, bitOffset); - this.numBits = IndexUtils.log2(numValues - 1) + 1; + this.bitLength = IndexUtils.log2(numValues - 1) + 1; this.codec = codec; } @Override public int getBitLength() { - return numBits; + return bitLength; } @Override @@ -124,6 +121,16 @@ public T decode(int code) { public boolean ambiguous(int code) { return ambiguousValues[code]; } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("BasicCodec{"); + sb.append("values=").append(Arrays.toString(values)); + sb.append(", valuesMappingRev=").append(valuesMappingRev); + sb.append(", ambiguousValues=").append(Arrays.toString(ambiguousValues)); + sb.append('}'); + return sb.toString(); + } } private static class BasicCodecWithNa implements IndexCodec { @@ -178,6 +185,20 @@ public T decode(int code) { public boolean ambiguous(int code) { return ambiguousValues[code]; } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("BasicCodecWithNa{"); + sb.append("values=").append(Arrays.toString(values)); + sb.append(", valuesMappingRev=").append(valuesMappingRev); + sb.append(", ambiguousValues=").append(Arrays.toString(ambiguousValues)); + sb.append('}'); + return sb.toString(); + } + } + + protected IndexCodec getCodec() { + return codec; } @Override @@ -195,4 +216,14 @@ public boolean ambiguous(int code) { return codec.ambiguous(code); } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("CategoricalIndexField{"); + sb.append("configuration=").append(getConfiguration()); + sb.append(", bitOffset=").append(getBitOffset()); + sb.append(", bitLength=").append(bitLength); + sb.append(", codec=").append(codec); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalMultiValuedIndexField.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalMultiValuedIndexField.java index 3f172f9db72..e7bafeb4b11 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalMultiValuedIndexField.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalMultiValuedIndexField.java @@ -20,7 +20,7 @@ */ public class CategoricalMultiValuedIndexField extends CategoricalIndexField> { - private final int numBits; + private final int bitLength; public static CategoricalMultiValuedIndexField createMultiValued(IndexFieldConfiguration configuration, int bitOffset) { return new CategoricalMultiValuedIndexField<>( @@ -41,7 +41,7 @@ public CategoricalMultiValuedIndexField(IndexFieldConfiguration configuration, i private CategoricalMultiValuedIndexField(IndexFieldConfiguration configuration, int bitOffset, T[] values, MaskValueCodec codec) { super(configuration, bitOffset, values.length, codec); - numBits = codec.numBits; + bitLength = codec.numBits; } @Override @@ -59,7 +59,7 @@ protected IndexFieldFilter getSingleValueIndexFilter(OpValue> opValue) { @Override public int getBitLength() { - return numBits; + return bitLength; } /** @@ -145,6 +145,28 @@ public List decode(int code) { public boolean ambiguous(int code) { return code == NA || (code & ambiguousValues) != 0; } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("MaskValueCodec{"); + sb.append("values=").append(Arrays.toString(values)); + sb.append(", otherValuePosition=").append(otherValuePosition); + sb.append(", valuesPosition=").append(valuesPosition); + sb.append(", numBits=").append(numBits); + sb.append(", ambiguousValues=").append(ambiguousValues); + sb.append('}'); + return sb.toString(); + } } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("CategoricalMultiValuedIndexField{"); + sb.append("configuration=").append(getConfiguration()); + sb.append(", codec=").append(getCodec()); + sb.append(", bitOffset=").append(getBitOffset()); + sb.append(", bitLength=").append(bitLength); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/FixedSizeIndexSchema.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/FixedSizeIndexSchema.java index 727d21c6ae6..1b2592caec9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/FixedSizeIndexSchema.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/FixedSizeIndexSchema.java @@ -38,4 +38,12 @@ public BitBuffer read(BitBuffer buffer, int i) { return buffer.getBitBuffer(i * indexSizeBits, indexSizeBits); } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("FixedSizeIndexSchema{"); + sb.append("indexSizeBits=").append(indexSizeBits); + sb.append(", fields=").append(fields); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/IndexField.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/IndexField.java index aa12c98653f..ae0715ff52e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/IndexField.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/IndexField.java @@ -170,4 +170,12 @@ public R decode(int code) { }; } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("IndexField{"); + sb.append("configuration=").append(configuration); + sb.append(", bitOffset=").append(bitOffset); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java index 8f5d6a8f4f8..5e37863cee7 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/RangeIndexField.java @@ -7,6 +7,7 @@ import org.opencb.opencga.storage.hadoop.variant.index.core.filters.IndexFieldFilter; import org.opencb.opencga.storage.hadoop.variant.index.core.filters.RangeIndexFieldFilter; +import java.util.Arrays; import java.util.List; /** @@ -18,7 +19,7 @@ public class RangeIndexField extends IndexField { private final double[] thresholds; private final double min; private final double max; - private final int numBits; + private final int bitLength; private final IndexCodec codec; private int numRanges; @@ -40,7 +41,7 @@ public RangeIndexField(IndexFieldConfiguration configuration, int bitOffset, dou } else { codec = new NonNullableRangeCodec(); } - numBits = Math.max(1, IndexUtils.log2(numRanges - 1) + 1); + bitLength = Math.max(1, IndexUtils.log2(numRanges - 1) + 1); if (configuration.getType().equals(IndexFieldConfiguration.Type.RANGE_GT)) { // Add one DELTA to each value to invert ranges from [s, e) to (s, e], therefore the operation ">" is exact for (int i = 0; i < thresholds.length; i++) { @@ -77,7 +78,7 @@ public double getMax() { @Override public int getBitLength() { - return numBits; + return bitLength; } @Override @@ -127,6 +128,13 @@ public Double decode(int code) { public boolean ambiguous(int code) { return true; } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("NonNullableRangeCodec{"); + sb.append('}'); + return sb.toString(); + } } public class NullableRangeCodec extends NonNullableRangeCodec { @@ -142,6 +150,13 @@ public int encode(Double value) { public Double decode(int code) { return code == NA ? null : super.decode(code - 1); } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("NullableRangeCodec{"); + sb.append('}'); + return sb.toString(); + } } /** @@ -174,4 +189,19 @@ public static boolean lessThan(double a, double b) { public static boolean equalsTo(double a, double b) { return Math.abs(a - b) < (DELTA / 10); } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("RangeIndexField{"); + sb.append("configuration=").append(getConfiguration()); + sb.append(", bitOffset=").append(getBitOffset()); + sb.append(", bitLength=").append(bitLength); + sb.append(", thresholds=").append(Arrays.toString(thresholds)); + sb.append(", min=").append(min); + sb.append(", max=").append(max); + sb.append(", codec=").append(codec); + sb.append(", numRanges=").append(numRanges); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/SingleFieldIndexSchema.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/SingleFieldIndexSchema.java index 58da9585b8f..2f2cf67409a 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/SingleFieldIndexSchema.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/core/SingleFieldIndexSchema.java @@ -21,4 +21,12 @@ public int readFieldValue(BitBuffer buffer, int i) { // return getField().read(read(buffer, i)); return buffer.getIntPartial(i * getBitsLength(), getBitsLength()); } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SingleFieldIndexSchema{"); + sb.append("field=").append(field); + sb.append('}'); + return sb.toString(); + } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java index 7cb87773f0c..1a0fd0935d9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/AbstractSampleIndexEntryFilter.java @@ -206,7 +206,12 @@ private Collection filter(SampleIndexEntry entry, boolean count) { entry.getSampleId(), entry.getChromosome(), entry.getBatchStart(), gtEntry.getGt()); - logger.warn(gtEntry.toStringSummary()); + try { + logger.warn(gtEntry.toStringSummary()); + logger.warn(converter.getSchema().toString()); + } catch (Exception exception) { + e.addSuppressed(exception); + } throw e; } if (!variants.isEmpty()) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java index 2a82e5d1750..d050421a160 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexSchema.java @@ -198,6 +198,22 @@ public FileIndexSchema getFileIndex() { return fileIndex; } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleIndexSchema{"); + sb.append("version=").append(version); + sb.append(", configuration=").append(configuration); + sb.append(", fileIndex=").append(fileIndex); + sb.append(", popFreqIndex=").append(popFreqIndex); + sb.append(", ctIndex=").append(ctIndex); + sb.append(", biotypeIndex=").append(biotypeIndex); + sb.append(", transcriptFlagIndexSchema=").append(transcriptFlagIndexSchema); + sb.append(", ctBtTfIndex=").append(ctBtTfIndex); + sb.append(", clinicalIndexSchema=").append(clinicalIndexSchema); + sb.append('}'); + return sb.toString(); + } + public static int getChunkStart(Integer start) { return (start / BATCH_SIZE) * BATCH_SIZE; } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexVariantBiConverter.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexVariantBiConverter.java index 4c0fb21701f..d8961251205 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexVariantBiConverter.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexVariantBiConverter.java @@ -196,6 +196,10 @@ public MendelianErrorSampleIndexEntryIterator toMendelianIterator(SampleIndexEnt return new MendelianErrorSampleIndexEntryIterator(sampleIndexEntry, schema); } + public SampleIndexSchema getSchema() { + return schema; + } + private abstract static class SampleIndexGtEntryIterator implements SampleIndexEntryIterator { protected SampleIndexEntry.SampleIndexGtEntry gtEntry; private final SampleIndexSchema schema; diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/VariantTypeIndexCodec.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/VariantTypeIndexCodec.java index dd4acb565b2..a385183398f 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/VariantTypeIndexCodec.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/index/sample/VariantTypeIndexCodec.java @@ -74,4 +74,11 @@ public VariantType decode(int code) { public boolean ambiguous(int code) { return code == TYPE_OTHER_CODE || code == TYPE_CNV_CODE; } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("VariantTypeIndexCodec{"); + sb.append('}'); + return sb.toString(); + } } From 53c5ef3ee03427be5621807cc09eb2ff39cb7ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 26 Jul 2023 11:14:02 +0100 Subject: [PATCH 44/70] storage: Fix variant parse for unusual contigs. #TASK-4816 --- .../core/variant/query/VariantQueryUtils.java | 16 +++++++++++++--- .../variant/adaptors/VariantQueryUtilsTest.java | 9 +++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryUtils.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryUtils.java index 6e7831c69ed..114379c77a9 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryUtils.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/query/VariantQueryUtils.java @@ -25,6 +25,7 @@ import org.opencb.biodata.models.core.Region; import org.opencb.biodata.models.variant.StudyEntry; import org.opencb.biodata.models.variant.Variant; +import org.opencb.biodata.models.variant.VariantBuilder; import org.opencb.biodata.models.variant.annotation.ConsequenceTypeMappings; import org.opencb.biodata.models.variant.avro.*; import org.opencb.commons.datastore.core.*; @@ -515,9 +516,18 @@ public static boolean isHpo(String value) { */ public static boolean isVariantId(String value) { int count = StringUtils.countMatches(value, ':'); - return count == 3 - // It may have more colons if is a symbolic alternate like , or a breakend 4:100:C:]15:300]A - || count > 3 && StringUtils.containsAny(value, '<', '[', ']'); + if (count == 3) { + return true; + } + if (count > 3) { + try { + new VariantBuilder(value); + } catch (RuntimeException e) { + return false; + } + return true; + } + return false; } /** diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryUtilsTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryUtilsTest.java index 8f14f1a202b..c939064307e 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryUtilsTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/adaptors/VariantQueryUtilsTest.java @@ -435,6 +435,8 @@ public void isVariantId() { checkIsVariantId("1:1000:A:T"); checkIsVariantId("1:1000-2000:A:T"); checkIsVariantId("1:1000-2000:A:"); + checkIsVariantId("HLA-DRB1*04:03:01:3349:GAGACAGAG:-", true); + checkIsVariantId("HLA-DRB1*04:03:01:3349:GAGACAGAG:-:2", false); checkIsVariantId("11:14525312:-:]11:14521700]."); checkIsVariantId("4:100:C:[15:300[A"); checkIsVariantId("4:100:C:]15:300]A"); @@ -442,8 +444,6 @@ public void isVariantId() { } public void checkIsVariantId(String v) { - - boolean actual = VariantQueryUtils.isVariantId(v); boolean expected; try { new Variant(v); @@ -451,6 +451,11 @@ public void checkIsVariantId(String v) { } catch (Exception e) { expected = false; } + checkIsVariantId(v, expected); + } + + public void checkIsVariantId(String v, boolean expected) { + boolean actual = VariantQueryUtils.isVariantId(v); assertEquals(v, expected, actual); } From d37174e6caa5c85cfe114f87bdde86df2a8618ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 26 Jul 2023 11:38:37 +0100 Subject: [PATCH 45/70] storage: Fix test CategoricalIndexFieldTest#testEncodeDecodeFilter #TASK-4794 --- .../hadoop/variant/index/core/CategoricalIndexFieldTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java index 0abaa66893a..feae2ca31e6 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/core/CategoricalIndexFieldTest.java @@ -66,7 +66,9 @@ public void testEncodeDecodeQual() { @Test public void testEncodeDecodeFilter() { SampleIndexConfiguration indexConfiguration = SampleIndexConfiguration.defaultConfiguration(); - indexConfiguration.getFileIndexConfiguration().getCustomField(FILE, StudyEntry.FILTER).setValues("PASS", "noPass"); + indexConfiguration.getFileIndexConfiguration().getCustomField(FILE, StudyEntry.FILTER) + .setType(IndexFieldConfiguration.Type.CATEGORICAL_MULTI_VALUE) + .setValues("PASS", "noPass"); SampleIndexSchema indexSchema = new SampleIndexSchema(indexConfiguration, 0); IndexField field = indexSchema.getFileIndex().getCustomField(FILE, StudyEntry.FILTER); From 83dfca3df976946fba2d46e232dab8f68cc3632f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 26 Jul 2023 16:25:14 +0100 Subject: [PATCH 46/70] storage: Fix tests from SampleIndexTest #TASK-4794 --- .../hadoop/variant/index/sample/SampleIndexTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java index 3cea4d62452..0319c2bc43b 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/index/sample/SampleIndexTest.java @@ -95,12 +95,15 @@ public class SampleIndexTest extends VariantStorageBaseTest implements HadoopVar STUDY_NAME_3, STUDY_NAME_4, STUDY_NAME_5, - STUDY_NAME_6); + STUDY_NAME_6 + ); private static final Map> sampleNames = new HashMap>() {{ put(STUDY_NAME, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); put(STUDY_NAME_2, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); put(STUDY_NAME_3, Arrays.asList("NA12877", "NA12878")); put(STUDY_NAME_4, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); + put(STUDY_NAME_5, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); + put(STUDY_NAME_6, Arrays.asList("NA19600", "NA19660", "NA19661", "NA19685")); }}; // private static List> trios = Arrays.asList( // Arrays.asList("NA19600", "NA19660", "NA19661"), @@ -204,7 +207,6 @@ public void load() throws Exception { // Study 6, multiallelic SampleIndexConfiguration sampleIndexConfiguration = SampleIndexConfiguration.defaultConfiguration(); - System.out.println("sampleIndexConfiguration.getFileIndexConfiguration() = " + sampleIndexConfiguration.getFileIndexConfiguration()); sampleIndexConfiguration.getFileIndexConfiguration().getCustomField(IndexFieldConfiguration.Source.FILE, "FILTER") .setValues("PASS", "noPass", "noPass2"); engine.getMetadataManager().addSampleIndexConfiguration(STUDY_NAME_6, sampleIndexConfiguration, true); @@ -1163,6 +1165,7 @@ public void testSampleIndexOnlyVariantQueryExecutor() { new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(VariantField.ID, VariantField.STUDIES_SAMPLES)), SampleIndexOnlyVariantQueryExecutor.class, v -> { + assertEquals(v.toString(), 1, v.getStudies().get(0).getFiles().size()); for (FileEntry fe : v.getStudies().get(0).getFiles()) { assertNotNull(fe.getData().get(StudyEntry.FILTER)); fe.setData(Collections.emptyMap()); From 84c1e0d8f5cd1961c90e908b17a45774ad037ce6 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 26 Jul 2023 22:38:57 +0200 Subject: [PATCH 47/70] Docker ext-tools manual deployer yml --- .github/workflows/docker-ext-tools.yml | 52 ++++--------------- .github/workflows/manual-deploy-ext-tools.yml | 51 ++++++++++++++++++ 2 files changed, 61 insertions(+), 42 deletions(-) create mode 100644 .github/workflows/manual-deploy-ext-tools.yml diff --git a/.github/workflows/docker-ext-tools.yml b/.github/workflows/docker-ext-tools.yml index 8241c3c5d66..6ded6d96fbe 100644 --- a/.github/workflows/docker-ext-tools.yml +++ b/.github/workflows/docker-ext-tools.yml @@ -1,53 +1,21 @@ name: Deploy Docker Ext-Tools + on: - workflow_dispatch: - inputs: - ref: - description: "The branch, tag or SHA to build docker. Otherwise, uses develop branch." - type: string - required: false - default: "" + push: + branches: + - develop + - release-* + - TASK-* + paths: + - opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile 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.ref }}" - - 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 - - id: get_project_version - uses: avides/actions-project-version-check@v1.3.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - file-to-check: pom.xml - only-return-version: true + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop 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 ${{ needs.build.outputs.version }} - secrets: inherit - + 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..7dbf4b5a104 --- /dev/null +++ b/.github/workflows/manual-deploy-ext-tools.yml @@ -0,0 +1,51 @@ +name: Deploy Docker Ext-Tools +on: + workflow_dispatch: + inputs: + branch: + description: "The branch, tag or SHA to build docker." + type: string + required: true + tag: + description: "The tag for the 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 + From 6d427175ada253076f632efe214627ce21703a15 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 26 Jul 2023 22:42:28 +0200 Subject: [PATCH 48/70] Docker ext-tools manual deployer yml --- .github/workflows/manual-deploy-ext-tools.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/manual-deploy-ext-tools.yml b/.github/workflows/manual-deploy-ext-tools.yml index 7dbf4b5a104..eb8d2347137 100644 --- a/.github/workflows/manual-deploy-ext-tools.yml +++ b/.github/workflows/manual-deploy-ext-tools.yml @@ -3,11 +3,11 @@ on: workflow_dispatch: inputs: branch: - description: "The branch, tag or SHA to build docker." + description: "The branch, tag or SHA of the source code to build docker." type: string required: true tag: - description: "The tag for the docker." + description: "The tag for the new docker." type: string required: true From a995463a69c4179ac5ecfb46996e869fe2f8dd8d Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 26 Jul 2023 22:44:52 +0200 Subject: [PATCH 49/70] Docker ext-tools manual deployer yml --- .github/workflows/manual-deploy-ext-tools.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/manual-deploy-ext-tools.yml b/.github/workflows/manual-deploy-ext-tools.yml index eb8d2347137..3f64fd392de 100644 --- a/.github/workflows/manual-deploy-ext-tools.yml +++ b/.github/workflows/manual-deploy-ext-tools.yml @@ -1,4 +1,4 @@ -name: Deploy Docker Ext-Tools +name: Manual deploy Docker Ext-Tools on: workflow_dispatch: inputs: @@ -47,5 +47,4 @@ jobs: needs: build with: cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ inputs.tag }} - secrets: inherit - + secrets: inherit \ No newline at end of file From b176eb7b2ae7b132c5f6a570016eb17654f02be6 Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 9 Aug 2023 13:20:03 +0200 Subject: [PATCH 50/70] catalog: fix project include issues, #TASK-4851 --- .../opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java | 6 +++--- .../db/mongodb/iterators/ProjectCatalogMongoDBIterator.java | 4 ++-- .../org/opencb/opencga/catalog/managers/ProjectManager.java | 4 +++- 3 files changed, 8 insertions(+), 6 deletions(-) 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 0a3539870bb..7b88fb6ce1f 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 f08e0cea0e6..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 @@ -146,8 +146,8 @@ private boolean includeStudyInfo() { return true; } else if (options.containsKey(QueryOptions.INCLUDE)) { List list = options.getAsStringList(QueryOptions.INCLUDE); - for (String exclude : list) { - if (exclude.equals("studies") || exclude.equals("projects.studies")) { + for (String include : list) { + if (include.startsWith("studies") || include.startsWith("projects.studies")) { 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); } From 13899a0062e067cb0f09bcd5c1e0c902a00f8c13 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Wed, 9 Aug 2023 15:54:04 +0200 Subject: [PATCH 51/70] Manual docker generate --- .github/workflows/manual-deploy-docker.yml | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/manual-deploy-docker.yml diff --git a/.github/workflows/manual-deploy-docker.yml b/.github/workflows/manual-deploy-docker.yml new file mode 100644 index 00000000000..a22f4dd4563 --- /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-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 base,init --tag ${{ inputs.tag }} + secrets: inherit \ No newline at end of file From 3e42c2e7e0787c3a4c1617789f7c9b897601c0a8 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Thu, 10 Aug 2023 13:37:33 +0200 Subject: [PATCH 52/70] rename step deploy-docker --- .github/workflows/manual-deploy-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/manual-deploy-docker.yml b/.github/workflows/manual-deploy-docker.yml index a22f4dd4563..3c9660bbb2c 100644 --- a/.github/workflows/manual-deploy-docker.yml +++ b/.github/workflows/manual-deploy-docker.yml @@ -42,7 +42,7 @@ jobs: path: build - deploy-docker-ext-tools: + deploy-docker: uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop needs: build with: From 3213ffeb3966d03f35eac210caa469a4fc806fb9 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Fri, 11 Aug 2023 12:26:59 +0200 Subject: [PATCH 53/70] storage-core: Added ANNOTATION_PHARMACOGENOMICS to VariantField.java #TASK-4848 --- .../opencga/storage/core/variant/adaptors/VariantField.java | 1 + 1 file changed, 1 insertion(+) diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java index d0eb0a335e6..8c208b1cd30 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java @@ -71,6 +71,7 @@ public enum VariantField { ANNOTATION_CONSERVATION(ANNOTATION, "annotation.conservation"), ANNOTATION_CANCER_HOTSPOTS(ANNOTATION, "annotation.cancerHotspots"), ANNOTATION_GENE_EXPRESSION(ANNOTATION, "annotation.geneExpression"), + ANNOTATION_PHARMACOGENOMICS(ANNOTATION, "annotation.pharmacogenomics"), ANNOTATION_GENE_TRAIT_ASSOCIATION(ANNOTATION, "annotation.geneTraitAssociation"), ANNOTATION_GENE_DRUG_INTERACTION(ANNOTATION, "annotation.geneDrugInteraction"), ANNOTATION_GENE_CANCER_ASSOCIATIONS(ANNOTATION, "annotation.geneCancerAssociations"), From 6137680dd01c58e201059cfd9e8b430088e1da3a Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Fri, 11 Aug 2023 15:27:30 +0200 Subject: [PATCH 54/70] Prepare release 2.8.3 --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 14 +++++++------- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index a2fed95c1b8..260955d38c6 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index be106d38391..4d18a6476ca 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index d43aa67b53f..a0ea06ca14c 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index fc888cf42ea..191a5319867 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index 7d8f216a0ea..a9630add90e 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index eb0016308f8..508d50cede8 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index 1f19d740348..d45f901844c 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index c4050fb6339..0d66c9f3a74 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 3a1821c0cbd..9d41b4d028d 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 9c61a4cab94..89d8c6c9d7e 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index a746892a217..3b2f329ccb0 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index 0e8e429b549..bd7a7c7baa4 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index b3b9bcc68cc..f64c1bc25ba 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index 185a923475d..a5852716f29 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index 4a1ed4cb963..cbbfa9c0e83 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 8788d1547ac..3dc7eedf5dc 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 5f3b2235c63..202510b2e48 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index cf3e6549427..bbe30f1aa3b 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index 0f73ef09ee2..ab93e1a8071 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index ab0a67d1e7e..8f13ebd49ab 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 ../pom.xml diff --git a/pom.xml b/pom.xml index c9d53b1bfb7..a91ad02aa54 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3-SNAPSHOT + 2.8.3 pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis @@ -42,12 +42,12 @@ - 2.8.3_dev - 2.8.3_dev - 5.4.1-SNAPSHOT - 2.8.1-SNAPSHOT - 4.8.1-SNAPSHOT - 2.8.3-SNAPSHOT + 2.8.3 + 2.8.3 + 5.4.0 + 2.8.0 + 4.8.0 + 2.8.3 0.2.0 From aed710fdd2ab13f3bd4d81754717133689a547bb Mon Sep 17 00:00:00 2001 From: pfurio Date: Mon, 28 Aug 2023 10:52:08 +0200 Subject: [PATCH 55/70] core: add REGEX comment to /search and /distinct, #TASK-4248 --- .../opencga/core/api/ParamConstants.java | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java index b65214a9ba4..6a42182cf34 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java @@ -38,6 +38,7 @@ public class ParamConstants { public static final String RELEASE_DESCRIPTION = "Release when it was created"; public static final String INTERNAL_STATUS_PARAM = "internalStatus"; public static final String INTERNAL_STATUS_DESCRIPTION = "Filter by internal status"; + private static final String REGEX_SUPPORT = ". Also admits basic regular expressions like '~/^value/i'"; @Deprecated // Use INTERNAL_VARIANT_INDEX_STATUS_PARAM public static final String INTERNAL_INDEX_STATUS_PARAM = "internalIndexStatus"; public static final String INTERNAL_VARIANT_INDEX_STATUS_PARAM = "internalVariantIndexStatus"; @@ -169,12 +170,12 @@ public class ParamConstants { + "exception whenever one of the entries looked for cannot be shown for whichever reason"; public static final String FILE_ID_DESCRIPTION = "File ID"; public static final String FILE_NAME_DESCRIPTION = "File name"; - public static final String FILE_NAMES_DESCRIPTION = "Comma separated list of file names"; + public static final String FILE_NAMES_DESCRIPTION = "Comma separated list of file names" + REGEX_SUPPORT; // --------------------------------------------- public static final String FILE_PATH_PARAM = "path"; public static final String FILE_PATH_DESCRIPTION = "File path"; - public static final String FILE_PATHS_DESCRIPTION = "Comma separated list of paths"; - public static final String FILE_URIS_DESCRIPTION = "Comma separated list of uris"; + public static final String FILE_PATHS_DESCRIPTION = "Comma separated list of paths" + REGEX_SUPPORT; + public static final String FILE_URIS_DESCRIPTION = "Comma separated list of uris" + REGEX_SUPPORT; public static final String FILE_TYPE_DESCRIPTION = "File type, either FILE or DIRECTORY"; public static final String FILE_FORMAT_DESCRIPTION = "Comma separated Format values. For existing Formats see files/formats"; public static final String FILE_EXTERNAL_DESCRIPTION = "Boolean field indicating whether to filter by external or non external files"; @@ -182,7 +183,7 @@ public class ParamConstants { "files/bioformats"; public static final String FILE_STATUS_DESCRIPTION = "File status"; public static final String FILE_DESCRIPTION_DESCRIPTION = "Description"; - public static final String FILE_TAGS_DESCRIPTION = "Tags"; + public static final String FILE_TAGS_DESCRIPTION = "Tags" + REGEX_SUPPORT; public static final String FILE_SOFTWARE_NAME_PARAM = "softwareName"; public static final String FILE_SOFTWARE_NAME_DESCRIPTION = "Software name"; public static final String FILE_JOB_ID_DESCRIPTION = "Job ID that created the file(s) or folder(s)"; @@ -316,12 +317,12 @@ public class ParamConstants { public static final String INDIVIDUAL_MOTHER_DESCRIPTION = "Mother ID, name or UUID"; public static final String INDIVIDUAL_SAMPLES_DESCRIPTION = "Sample ID, name or UUID"; public static final String INDIVIDUAL_SEX_DESCRIPTION = "Individual sex"; - public static final String INDIVIDUAL_ETHNICITY_DESCRIPTION = "Individual ethnicity"; + public static final String INDIVIDUAL_ETHNICITY_DESCRIPTION = "Individual ethnicity" + REGEX_SUPPORT; public static final String INDIVIDUAL_DATE_OF_BIRTH_DESCRIPTION = "Individual date of birth"; - public static final String INDIVIDUAL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; - public static final String INDIVIDUAL_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION; - public static final String INDIVIDUAL_POPULATION_NAME_DESCRIPTION = "Population name"; - public static final String INDIVIDUAL_POPULATION_SUBPOPULATION_DESCRIPTION = "Subpopulation name"; + public static final String INDIVIDUAL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; + public static final String INDIVIDUAL_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION + REGEX_SUPPORT; + public static final String INDIVIDUAL_POPULATION_NAME_DESCRIPTION = "Population name" + REGEX_SUPPORT; + public static final String INDIVIDUAL_POPULATION_SUBPOPULATION_DESCRIPTION = "Subpopulation name" + REGEX_SUPPORT; public static final String INDIVIDUAL_KARYOTYPIC_SEX_DESCRIPTION = "Individual karyotypic sex"; public static final String INDIVIDUAL_LIFE_STATUS_DESCRIPTION = "Individual life status"; public static final String INDIVIDUAL_DELETED_DESCRIPTION = DELETED_DESCRIPTION; @@ -358,8 +359,8 @@ public class ParamConstants { public static final String FAMILY_MEMBERS_DESCRIPTION = "Comma separated list of family members"; public static final String FAMILY_SAMPLES_DESCRIPTION = "Comma separated list of member's samples"; public static final String FAMILY_EXPECTED_SIZE_DESCRIPTION = "Expected size of the family (number of members)"; - public static final String FAMILY_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION; - public static final String FAMILY_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; + public static final String FAMILY_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION + REGEX_SUPPORT; + public static final String FAMILY_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; public static final String FAMILY_CREATION_DATE_DESCRIPTION = CREATION_DATE_DESCRIPTION; public static final String FAMILY_MODIFICATION_DATE_DESCRIPTION = MODIFICATION_DATE_DESCRIPTION; public static final String FAMILY_DELETED_DESCRIPTION = DELETED_DESCRIPTION; @@ -422,7 +423,7 @@ public class ParamConstants { public static final String CLINICAL_STATUS_PARAM = STATUS_PARAM; public static final String CLINICAL_INTERNAL_STATUS_PARAM = INTERNAL_STATUS_PARAM; public static final String CLINICAL_TYPE_DESCRIPTION = "Clinical Analysis type"; - public static final String CLINICAL_DISORDER_DESCRIPTION = "Clinical Analysis disorder"; + public static final String CLINICAL_DISORDER_DESCRIPTION = "Clinical Analysis disorder" + REGEX_SUPPORT; public static final String CLINICAL_FILES_DESCRIPTION = "Clinical Analysis files"; public static final String CLINICAL_SAMPLE_DESCRIPTION = "Sample associated to the proband or any member of a family"; public static final String CLINICAL_INDIVIDUAL_DESCRIPTION = "Proband or any member of a family"; @@ -466,7 +467,7 @@ public class ParamConstants { public static final String INTERPRETATION_LOCKED_PARAM = "locked"; public static final String INTERPRETATION_CLINICAL_ANALYSIS_ID_DESCRIPTION = "Clinical Analysis id"; public static final String INTERPRETATION_ANALYST_ID_DESCRIPTION = "Analyst ID"; - public static final String INTERPRETATION_METHOD_NAME_DESCRIPTION = "Interpretation method name"; + public static final String INTERPRETATION_METHOD_NAME_DESCRIPTION = "Interpretation method name" + REGEX_SUPPORT; public static final String INTERPRETATION_PANELS_DESCRIPTION = "Interpretation panels"; public static final String INTERPRETATION_PRIMARY_FINDINGS_IDS_DESCRIPTION = "Interpretation primary findings"; public static final String INTERPRETATION_SECONDARY_FINDINGS_IDS_DESCRIPTION = "Interpretation secondary findings"; @@ -498,12 +499,12 @@ public class ParamConstants { public static final String PANEL_ACL_PARAM = ACL_PARAM; public static final String PANEL_RELEASE_PARAM = RELEASE_PARAM; public static final String PANEL_SNAPSHOT_PARAM = SNAPSHOT_PARAM; - public static final String PANEL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; - public static final String PANEL_VARIANTS_DESCRIPTION = "Comma separated list of variant ids"; - public static final String PANEL_GENES_DESCRIPTION = "Comma separated list of gene ids"; - public static final String PANEL_REGIONS_DESCRIPTION = "Comma separated list of regions"; - public static final String PANEL_CATEGORIES_DESCRIPTION = "Comma separated list of category names"; - public static final String PANEL_TAGS_DESCRIPTION = "Panel tags"; + public static final String PANEL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; + public static final String PANEL_VARIANTS_DESCRIPTION = "Comma separated list of variant ids" + REGEX_SUPPORT; + public static final String PANEL_GENES_DESCRIPTION = "Comma separated list of gene ids" + REGEX_SUPPORT; + public static final String PANEL_REGIONS_DESCRIPTION = "Comma separated list of regions" + REGEX_SUPPORT; + public static final String PANEL_CATEGORIES_DESCRIPTION = "Comma separated list of category names" + REGEX_SUPPORT; + public static final String PANEL_TAGS_DESCRIPTION = "Panel tags" + REGEX_SUPPORT; public static final String PANEL_DELETED_DESCRIPTION = DELETED_DESCRIPTION; public static final String PANEL_STATUS_DESCRIPTION = STATUS_DESCRIPTION; @@ -539,7 +540,7 @@ public class ParamConstants { public static final String JOB_DEPENDS_ON_DESCRIPTION = "Comma separated list of existing job IDs the job will depend on."; public static final String JOB_TOOL_ID_PARAM = "toolId"; public static final String JOB_TOOL_TYPE_PARAM = "toolType"; - public static final String JOB_TOOL_ID_DESCRIPTION = "Tool ID executed by the job"; + public static final String JOB_TOOL_ID_DESCRIPTION = "Tool ID executed by the job" + REGEX_SUPPORT; public static final String JOB_TOOL_TYPE_DESCRIPTION = "Tool type executed by the job [OPERATION, ANALYSIS]"; public static final String JOB_USER_PARAM = "userId"; public static final String JOB_USER_DESCRIPTION = "User that created the job"; @@ -1475,34 +1476,34 @@ public class ParamConstants { public static final String ADMIN_CATALOG_JWT_SECRETKEY = "The body web service secretKey parameter"; private static final String UP_TO_100 = " up to a maximum of 100"; public static final String FILES_DESCRIPTION = "Comma separated list of file IDs or names" + UP_TO_100; - public static final String FILES_ID_DESCRIPTION = "Comma separated list of file IDs" + UP_TO_100; + public static final String FILES_ID_DESCRIPTION = "Comma separated list of file IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String FILES_UUID_DESCRIPTION = "Comma separated list file UUIDs" + UP_TO_100; public static final String SAMPLES_DESCRIPTION = "Comma separated list sample IDs or UUIDs" + UP_TO_100; public static final String SAMPLES_ID_DESCRIPTION = "Comma separated list sample IDs" + UP_TO_100; public static final String SAMPLES_UUID_DESCRIPTION = "Comma separated list sample UUIDs" + UP_TO_100; public static final String INDIVIDUALS_DESCRIPTION = "Comma separated list of individual IDs, names or UUIDs" + UP_TO_100; - public static final String INDIVIDUALS_ID_DESCRIPTION = "Comma separated list individual IDs" + UP_TO_100; - public static final String INDIVIDUAL_NAME_DESCRIPTION = "Comma separated list individual names" + UP_TO_100; + public static final String INDIVIDUALS_ID_DESCRIPTION = "Comma separated list individual IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String INDIVIDUAL_NAME_DESCRIPTION = "Comma separated list individual names" + UP_TO_100 + REGEX_SUPPORT; public static final String INDIVIDUAL_UUID_DESCRIPTION = "Comma separated list individual UUIDs" + UP_TO_100; public static final String FAMILIES_DESCRIPTION = "Comma separated list of family IDs or names" + UP_TO_100; - public static final String FAMILY_ID_DESCRIPTION = "Comma separated list family IDs" + UP_TO_100; - public static final String FAMILY_NAME_DESCRIPTION = "Comma separated list family names" + UP_TO_100; + public static final String FAMILY_ID_DESCRIPTION = "Comma separated list family IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String FAMILY_NAME_DESCRIPTION = "Comma separated list family names" + UP_TO_100 + REGEX_SUPPORT; public static final String FAMILY_UUID_DESCRIPTION = "Comma separated list family UUIDs" + UP_TO_100; public static final String COHORTS_DESCRIPTION = "Comma separated list of cohort IDs or UUIDs" + UP_TO_100; - public static final String COHORT_IDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100; - public static final String COHORT_NAMES_DESCRIPTION = "Comma separated list of cohort names" + UP_TO_100; + public static final String COHORT_IDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String COHORT_NAMES_DESCRIPTION = "Comma separated list of cohort names" + UP_TO_100 + REGEX_SUPPORT; public static final String COHORT_UUIDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100; - public static final String CLINICAL_ID_DESCRIPTION = "Comma separated list of Clinical Analysis IDs" + UP_TO_100; + public static final String CLINICAL_ID_DESCRIPTION = "Comma separated list of Clinical Analysis IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String CLINICAL_UUID_DESCRIPTION = "Comma separated list of Clinical Analysis UUIDs" + UP_TO_100; public static final String CLINICAL_ANALYSES_DESCRIPTION = "Comma separated list of clinical analysis IDs or names" + UP_TO_100; - public static final String INTERPRETATION_ID_DESCRIPTION = "Comma separated list of Interpretation IDs" + UP_TO_100; + public static final String INTERPRETATION_ID_DESCRIPTION = "Comma separated list of Interpretation IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String INTERPRETATION_UUID_DESCRIPTION = "Comma separated list of Interpretation UUIDs" + UP_TO_100; public static final String INTERPRETATION_DESCRIPTION = "Comma separated list of clinical interpretation IDs " + UP_TO_100; - public static final String PANEL_ID_DESCRIPTION = "Comma separated list of panel IDs " + UP_TO_100; + public static final String PANEL_ID_DESCRIPTION = "Comma separated list of panel IDs " + UP_TO_100 + REGEX_SUPPORT; public static final String PANEL_UUID_DESCRIPTION = "Comma separated list of panel UUIDs " + UP_TO_100; - public static final String PANEL_NAME_DESCRIPTION = "Comma separated list of panel names " + UP_TO_100; + public static final String PANEL_NAME_DESCRIPTION = "Comma separated list of panel names " + UP_TO_100 + REGEX_SUPPORT; public static final String JOBS_DESCRIPTION = "Comma separated list of job IDs or UUIDs" + UP_TO_100; - public static final String JOB_IDS_DESCRIPTION = "Comma separated list of job IDs" + UP_TO_100; + public static final String JOB_IDS_DESCRIPTION = "Comma separated list of job IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String JOB_UUIDS_DESCRIPTION = "Comma separated list of job UUIDs" + UP_TO_100; // --------------------------------------------- public static final String PROJECTS_DESCRIPTION = "Comma separated list of projects [user@]project" + UP_TO_100; From b677b547a00bb4c30a49e33a3f30f2af45780379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Mon, 28 Aug 2023 11:22:00 +0200 Subject: [PATCH 56/70] core: update according to CellBase changes, #TASK-4898, #TASK-4641 --- .../alignment/AlignmentStorageManager.java | 4 +-- .../manager/VariantStorageManager.java | 4 +-- .../opencga/core/api/ParamConstants.java | 2 +- .../core/cellbase/CellBaseValidator.java | 17 +++++------ .../config/storage/CellBaseConfiguration.java | 29 +++++++++++++----- .../core/variant/VariantStorageEngine.java | 2 +- .../AbstractCellBaseVariantAnnotator.java | 2 +- .../CellBaseRestVariantAnnotator.java | 4 +-- ...java => VariantAnnotatorByApiKeyTest.java} | 30 +++++++++---------- .../annotators/VariantAnnotatorTest.java | 11 ++----- 10 files changed, 57 insertions(+), 48 deletions(-) rename opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/{VariantAnnotatorByTokenTest.java => VariantAnnotatorByApiKeyTest.java} (87%) 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/manager/VariantStorageManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java index 806fbb6d818..b017ec0698c 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 @@ -1017,8 +1017,8 @@ 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()); + if (StringUtils.isEmpty(cellbase.getApiKey()) || storageConfiguration.getCellbase() != null) { + cellbase.setApiKey(storageConfiguration.getCellbase().getApiKey()); } engine.getConfiguration().setCellbase(cellbase); engine.reloadCellbaseConfiguration(); diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java index b65214a9ba4..b1e57dbc24a 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java @@ -76,7 +76,7 @@ public class ParamConstants { public static final String CELLBASE_URL = "https://ws.zettagenomics.com/cellbase"; public static final String CELLBASE_VERSION = "v5.1"; public static final String CELLBASE_DATA_RELEASE = "2"; - public static final String CELLBASE_TOKEN = ""; + public static final String CELLBASE_APIKEY = ""; public static final String POP_FREQ_1000G_CB_V4 = "1kG_phase3"; public static final String POP_FREQ_1000G_CB_V5 = "1000G"; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 21f5c79fecd..83f1bd9e311 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -2,12 +2,11 @@ import org.apache.commons.lang3.StringUtils; import org.opencb.cellbase.client.rest.CellBaseClient; +import org.opencb.cellbase.core.api.key.ApiKeyManager; import org.opencb.cellbase.core.config.SpeciesConfiguration; import org.opencb.cellbase.core.config.SpeciesProperties; import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResponse; -import org.opencb.cellbase.core.token.DataAccessTokenManager; -import org.opencb.cellbase.core.token.DataAccessTokenSources; import org.opencb.opencga.core.common.VersionUtils; import org.opencb.opencga.core.config.storage.CellBaseConfiguration; import org.slf4j.Logger; @@ -69,13 +68,13 @@ public String getDataRelease() { return cellBaseClient.getDataRelease(); } - public String getToken() { - return cellBaseClient.getToken(); + public String getApiKey() { + return cellBaseClient.getApiKey(); } - public DataAccessTokenSources getTokenSources() { - DataAccessTokenManager tokenManager = new DataAccessTokenManager(); - return tokenManager.decode(cellBaseClient.getToken()); + public List getApiKeyDataSources() { + ApiKeyManager apiKeyManager = new ApiKeyManager(); + return new ArrayList<>(apiKeyManager.getValidSources(cellBaseClient.getApiKey())); } public String getURL() { @@ -91,7 +90,7 @@ public CellBaseClient getCellBaseClient() { } public CellBaseConfiguration getCellBaseConfiguration() { - return new CellBaseConfiguration(getURL(), getVersion(), getDataRelease(), getToken()); + return new CellBaseConfiguration(getURL(), getVersion(), getDataRelease(), getApiKey()); } public String getDefaultDataRelease() throws IOException { @@ -281,7 +280,7 @@ public String toString() { + "species '" + getSpecies() + "', " + "assembly '" + getAssembly() + "', " + "dataRelease '" + getDataRelease() + "', " - + "token '" + getToken() + "'"; + + "token '" + getApiKey() + "'"; } } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java index 9a392c88168..1818beb363c 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java @@ -42,9 +42,13 @@ public class CellBaseConfiguration { @DataField(id = "dataRelease", description = "CellBase data release version to be used. If empty, will use the active one") private String dataRelease; - @DataField(id = "token", description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...") + @Deprecated + @DataField(id = "token", deprecated = true, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...") private String token; + @DataField(id = "apiKey", description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.") + private String apiKey; + public CellBaseConfiguration() { this(ParamConstants.CELLBASE_URL, ParamConstants.CELLBASE_VERSION); } @@ -54,11 +58,12 @@ public CellBaseConfiguration(String url, String version) { this.version = version; } - public CellBaseConfiguration(String url, String version, String dataRelease, String token) { + public CellBaseConfiguration(String url, String version, String dataRelease, String apiKey) { this.url = url; this.version = version; this.dataRelease = dataRelease; - this.token = token; + this.token = apiKey; + this.apiKey = apiKey; } @Override @@ -68,6 +73,7 @@ public String toString() { sb.append(", version='").append(version).append('\''); sb.append(", dataRelease='").append(dataRelease).append('\''); sb.append(", token='").append(token).append('\''); + sb.append(", apiKey='").append(apiKey).append('\''); sb.append('}'); return sb.toString(); } @@ -99,12 +105,21 @@ public CellBaseConfiguration setDataRelease(String dataRelease) { return this; } - public String getToken() { - return token; +// public String getToken() { +// return apiKey; +// } +// +// public CellBaseConfiguration setToken(String token) { +// this.apiKey = token; +// return this; +// } + + public String getApiKey() { + return apiKey; } - public CellBaseConfiguration setToken(String token) { - this.token = token; + public CellBaseConfiguration setApiKey(String apiKey) { + this.apiKey = apiKey; return this; } diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java index c3c27c26c35..a4f560e49f2 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java @@ -1117,7 +1117,7 @@ public CellBaseUtils getCellBaseUtils() throws StorageEngineException { } species = toCellBaseSpeciesName(species); cellBaseUtils = new CellBaseUtils(new CellBaseClient(species, assembly, configuration.getCellbase().getDataRelease(), - configuration.getCellbase().getToken(), clientConfiguration)); + configuration.getCellbase().getApiKey(), clientConfiguration)); } return cellBaseUtils; } diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java index 320c909c33a..fc743b13a76 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java @@ -72,7 +72,7 @@ public AbstractCellBaseVariantAnnotator(StorageConfiguration storageConfiguratio assembly = projectMetadata.getAssembly(); cellbaseVersion = storageConfiguration.getCellbase().getVersion(); cellbaseDataRelease = storageConfiguration.getCellbase().getDataRelease(); - cellbaseToken = storageConfiguration.getCellbase().getToken(); + cellbaseToken = storageConfiguration.getCellbase().getApiKey(); queryOptions = new QueryOptions(); if (StringUtils.isNotEmpty(params.getString(VariantStorageOptions.ANNOTATOR_CELLBASE_INCLUDE.key()))) { diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java index 889cba2f42a..85ee3b0810c 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java @@ -113,8 +113,8 @@ public ProjectMetadata.VariantAnnotationMetadata getVariantAnnotationMetadata() + getDebugInfo("/meta/" + species + "/dataReleases") + ". "); } List privateSources; - if (StringUtils.isNotEmpty(cellBaseUtils.getToken())) { - privateSources = new ArrayList<>(cellBaseUtils.getTokenSources().getSources().keySet()); + if (StringUtils.isNotEmpty(cellBaseUtils.getApiKey())) { + privateSources = cellBaseUtils.getApiKeyDataSources(); } else { privateSources = new ArrayList<>(); } diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java similarity index 87% rename from opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java rename to opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java index 0faf42d6cb7..806a75df2fb 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java @@ -21,7 +21,7 @@ import static org.junit.Assert.assertEquals; import static org.opencb.opencga.storage.core.variant.VariantStorageOptions.ANNOTATOR_CELLBASE_INCLUDE; -public class VariantAnnotatorByTokenTest { +public class VariantAnnotatorByApiKeyTest { private StorageConfiguration storageConfiguration; @@ -36,7 +36,7 @@ public void setUp() throws Exception { storageConfiguration.getCellbase().setUrl(url); storageConfiguration.getCellbase().setDataRelease("1"); storageConfiguration.getCellbase().setVersion("v5.3"); - storageConfiguration.getCellbase().setToken(null); + storageConfiguration.getCellbase().setApiKey(null); CellBaseUtils cellBaseUtils = new CellBaseUtils(new CellBaseClient(storageConfiguration.getCellbase().toClientConfiguration())); try { @@ -47,7 +47,7 @@ public void setUp() throws Exception { } @Test - public void testNoToken() throws Exception { + public void testNoApiKey() throws Exception { projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); @@ -61,11 +61,11 @@ public void testNoToken() throws Exception { } @Test - public void testCOSMICToken() throws Exception { - String cosmicToken = System.getenv("CELLBASE_COSMIC_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(cosmicToken)); + public void testCOSMICApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_COSMIC_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); - storageConfiguration.getCellbase().setToken(cosmicToken); + storageConfiguration.getCellbase().setApiKey(apiKey); projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); @@ -80,11 +80,11 @@ public void testCOSMICToken() throws Exception { } @Test - public void testHGMDToken() throws Exception { - String hgmdToken = System.getenv("CELLBASE_HGMD_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(hgmdToken)); + public void testHGMDApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); - storageConfiguration.getCellbase().setToken(hgmdToken); + storageConfiguration.getCellbase().setApiKey(apiKey); projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); @@ -99,11 +99,11 @@ public void testHGMDToken() throws Exception { } @Test - public void testCOSMICandHGMDToken() throws Exception { - String token = System.getenv("CELLBASE_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(token)); + public void testCOSMICandHGMDApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_COSMIC_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); - storageConfiguration.getCellbase().setToken(token); + storageConfiguration.getCellbase().setApiKey(apiKey); projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java index cf2b4201b5f..260e1840dba 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java @@ -9,20 +9,15 @@ import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.EvidenceEntry; import org.opencb.biodata.models.variant.avro.VariantAnnotation; -import org.opencb.cellbase.client.config.ClientConfiguration; -import org.opencb.cellbase.client.config.RestConfig; -import org.opencb.cellbase.client.rest.CellBaseClient; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.opencga.core.testclassification.duration.ShortTests; import org.opencb.opencga.storage.core.StorageEngine; import org.opencb.opencga.core.config.storage.StorageConfiguration; import org.opencb.opencga.storage.core.metadata.models.ProjectMetadata; -import org.opencb.opencga.storage.core.utils.CellBaseUtils; import org.opencb.opencga.storage.core.variant.VariantStorageOptions; import org.opencb.opencga.storage.core.variant.annotation.VariantAnnotatorException; -import java.io.IOException; import java.util.*; import static org.hamcrest.CoreMatchers.instanceOf; @@ -139,7 +134,7 @@ public void useCellBaseTokens() throws VariantAnnotatorException { assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); // Using COSMIC token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjQ2Nn0.ByfPJn8Lkh5Sow4suRZcOqVxvWZRmTBBNLDzHEIZQ5U"); + storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjQ2Nn0.ByfPJn8Lkh5Sow4suRZcOqVxvWZRmTBBNLDzHEIZQ5U"); variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); assertEquals(1, results.size()); @@ -148,7 +143,7 @@ public void useCellBaseTokens() throws VariantAnnotatorException { assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); // Using HGMD token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2NzU4NzI1MDd9.f3JgVRt7_VrifNWTaRMW3aQfrKbtDbIxlzoenJRYJo0"); + storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2NzU4NzI1MDd9.f3JgVRt7_VrifNWTaRMW3aQfrKbtDbIxlzoenJRYJo0"); variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); assertEquals(1, results.size()); @@ -157,7 +152,7 @@ public void useCellBaseTokens() throws VariantAnnotatorException { assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); // Using COSMIC = HGMD token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwNywiaGdtZCI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjUyN30.NCCFc4SAhjUsN5UU0wXGY6nCZx8jLglvaO1cNZYI0u4"); + storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwNywiaGdtZCI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjUyN30.NCCFc4SAhjUsN5UU0wXGY6nCZx8jLglvaO1cNZYI0u4"); variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); assertEquals(1, results.size()); From cb2e78bf8c06caac1facf09114920d4f923bb244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Tue, 29 Aug 2023 12:02:59 +0200 Subject: [PATCH 57/70] tests: remove VersionUtils and use it from java-commons-lib, and fix some tests using CellBase API keys, #TASK-4898, #TASK-4641 --- .../core/cellbase/CellBaseValidator.java | 2 +- .../opencga/core/common/VersionUtils.java | 123 ------------------ .../opencga/core/common/VersionUtilsTest.java | 35 ----- .../storage/core/utils/CellBaseUtilsTest.java | 20 +-- .../VariantAnnotatorByApiKeyTest.java | 18 +-- .../annotators/VariantAnnotatorTest.java | 68 +++++----- 6 files changed, 53 insertions(+), 213 deletions(-) delete mode 100644 opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java delete mode 100644 opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 83f1bd9e311..dd8988e761b 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -7,7 +7,7 @@ import org.opencb.cellbase.core.config.SpeciesProperties; import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResponse; -import org.opencb.opencga.core.common.VersionUtils; +import org.opencb.commons.utils.VersionUtils; import org.opencb.opencga.core.config.storage.CellBaseConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java b/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java deleted file mode 100644 index 4e32c6ada32..00000000000 --- a/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.opencb.opencga.core.common; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -public class VersionUtils { - - public static List order(List versions) { - return versions.stream().map(Version::new).sorted().map(Version::toString).collect(Collectors.toList()); - } - - public static boolean isMinVersion(String minVersion, String version) { - return isMinVersion(minVersion, version, false); - } - - public static boolean isMinVersion(String minVersion, String version, boolean ignorePreReleaseVersioning) { - return new Version(minVersion).compareTo(new Version(version), ignorePreReleaseVersioning) <= 0; - } - - public static class Version implements Comparable { - - private final int major; - private final int minor; - private final int patch; - private final int repatch; - private final String other; - - public static final Comparator COMPARATOR = Comparator - .comparingInt(Version::getMajor) - .thenComparingInt(Version::getMinor) - .thenComparingInt(Version::getPatch) - .thenComparingInt(Version::getRepatch) - .thenComparing((o1, o2) -> { - if (o1.other.equals(o2.other)) { - return 0; - } - if (o1.other.isEmpty()) { - return +1; - } - if (o2.other.isEmpty()) { - return -1; - } - if (o1.other.equals("-SNAPSHOT")) { - return -1; - } - if (o2.other.equals("-SNAPSHOT")) { - return +1; - } - return o1.other.compareTo(o2.other); - }); - - public static final Comparator COMPARATOR_NO_PR = Comparator - .comparingInt(Version::getMajor) - .thenComparingInt(Version::getMinor) - .thenComparingInt(Version::getPatch) - .thenComparingInt(Version::getRepatch); - - public Version(String version) { - String[] split = StringUtils.split(version, ".", 4); - major = Integer.parseInt(split[0]); - minor = Integer.parseInt(split[1]); - if (split.length == 4) { - patch = Integer.parseInt(split[2]); - String last = split[3]; - String[] split2 = StringUtils.split(last, "-+", 3); - repatch = Integer.parseInt(split2[0]); - other = last.substring(split2[0].length()); - } else { - String last = split[2]; - String[] split2 = StringUtils.split(last, "-+", 2); - patch = Integer.parseInt(split2[0]); - repatch = 0; - other = last.substring(split2[0].length()); - } - } - - @Override - public String toString() { - if (repatch > 0) { - return major + "." + minor + "." + patch + "." + repatch + other; - } else { - return major + "." + minor + "." + patch + other; - } - } - - @Override - public int compareTo(Version o) { - return COMPARATOR.compare(this, o); - } - - public int compareTo(Version o, boolean ignorePreReleaseVersioning) { - if (ignorePreReleaseVersioning) { - return COMPARATOR_NO_PR.compare(this, o); - } else { - return COMPARATOR.compare(this, o); - } - } - - public int getMajor() { - return major; - } - - public int getMinor() { - return minor; - } - - public int getPatch() { - return patch; - } - - public int getRepatch() { - return repatch; - } - - public String getOther() { - return other; - } - } - -} diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java deleted file mode 100644 index a6b0dce858f..00000000000 --- a/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.opencb.opencga.core.common; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.opencb.opencga.core.testclassification.duration.ShortTests; - -@Category(ShortTests.class) -public class VersionUtilsTest { - public static String getComparation(String minVersion, String version) { - int c = new VersionUtils.Version(minVersion).compareTo(new VersionUtils.Version(version)); - String comp; - if (c == 0) { - comp = "="; - } else if (c < 0) { - comp = "<"; - } else { - comp = ">"; - } - System.out.println(minVersion + "\t" + comp + "\t" + version); - return comp; - } - - @Test - public void testOrder() { - Assert.assertEquals("<", getComparation("5.2.7", "5.2.8")); - Assert.assertEquals("=", getComparation("5.2.7", "5.2.7")); - Assert.assertEquals(">", getComparation("5.2.7.1", "5.2.7.1-alpha")); - Assert.assertEquals(">", getComparation("5.2.7", "5.2.7-SNAPSHOT")); - Assert.assertEquals("<", getComparation("5.2.7-alpha", "5.2.7")); - Assert.assertEquals("<", getComparation("5.2.7-alpha", "5.2.7-beta")); - Assert.assertEquals(">", getComparation("5.2.7", "5.2.6")); - Assert.assertEquals("=", getComparation("5.2.7", "5.2.7.0")); - } -} \ No newline at end of file diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java index 1f679ace47e..93cb92e8899 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java @@ -21,7 +21,7 @@ import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; -import org.opencb.opencga.core.common.VersionUtils; +import org.opencb.commons.utils.VersionUtils; import org.opencb.opencga.core.testclassification.duration.MediumTests; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryException; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam; @@ -255,10 +255,10 @@ public void testGetTranscriptFlags() throws IOException { } @Test - public void testAnnotationWithHGMDToken() throws IOException { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - Assume.assumeThat(assembly, CoreMatchers.equalTo("grch37")); - String hgmdToken = System.getenv("CELLBASE_HGMD_TOKEN"); + public void testAnnotationWithHGMDApiKey() throws IOException { + Assume.assumeTrue(cellBaseUtils.isMinVersion("5.4.0")); + Assume.assumeThat(assembly, CoreMatchers.equalTo("grch38")); + String hgmdToken = System.getenv("CELLBASE_HGMD_APIKEY"); Assume.assumeTrue(StringUtils.isNotEmpty(hgmdToken)); cellBaseClient = new CellBaseClient("hsapiens", assembly, dataRelease, hgmdToken, @@ -271,14 +271,14 @@ public void testAnnotationWithHGMDToken() throws IOException { .getAnnotationByVariantIds(Collections.singletonList("10:113588287:G:A"), queryOptions); VariantAnnotation variantAnnotation = v.firstResult(); assertEquals(2, variantAnnotation.getTraitAssociation().size()); - assertEquals("clinvar", variantAnnotation.getTraitAssociation().get(0).getSource().getName()); - assertEquals("hgmd", variantAnnotation.getTraitAssociation().get(1).getSource().getName()); + assertTrue(variantAnnotation.getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(variantAnnotation.getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); } @Test - public void testAnnotationWithoutHGMDToken() throws IOException { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - Assume.assumeThat(assembly, CoreMatchers.equalTo("grch37")); + public void testAnnotationWithoutHGMDAPiKey() throws IOException { + Assume.assumeTrue(cellBaseUtils.isMinVersion("5.4.0")); + Assume.assumeThat(assembly, CoreMatchers.equalTo("grch38")); cellBaseClient = new CellBaseClient("hsapiens", assembly, dataRelease, "", new ClientConfiguration().setVersion(version) diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java index 806a75df2fb..02ae9aded18 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java @@ -34,21 +34,18 @@ public void setUp() throws Exception { storageConfiguration = StorageConfiguration.load(StorageEngine.class.getClassLoader().getResourceAsStream("storage-configuration.yml"), "yml"); String url = "https://uk.ws.zettagenomics.com/cellbase/"; storageConfiguration.getCellbase().setUrl(url); - storageConfiguration.getCellbase().setDataRelease("1"); - storageConfiguration.getCellbase().setVersion("v5.3"); + storageConfiguration.getCellbase().setDataRelease("3"); + storageConfiguration.getCellbase().setVersion("v5.4"); storageConfiguration.getCellbase().setApiKey(null); CellBaseUtils cellBaseUtils = new CellBaseUtils(new CellBaseClient(storageConfiguration.getCellbase().toClientConfiguration())); - try { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - } catch (RuntimeException e) { - Assume.assumeNoException("Cellbase '" + url + "' not available", e); - } + Assume.assumeTrue(cellBaseUtils.isMinVersion("v5.4")); + + projectMetadata = new ProjectMetadata("hsapiens", "grch38", "3", 1, null, null, null); } @Test public void testNoApiKey() throws Exception { - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); @@ -66,7 +63,7 @@ public void testCOSMICApiKey() throws Exception { Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); storageConfiguration.getCellbase().setApiKey(apiKey); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); + ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); assertEquals(Collections.singletonList("cosmic"), annotator.getVariantAnnotationMetadata().getPrivateSources()); @@ -85,7 +82,7 @@ public void testHGMDApiKey() throws Exception { Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); storageConfiguration.getCellbase().setApiKey(apiKey); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); + ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); assertEquals(Collections.singletonList("hgmd"), annotator.getVariantAnnotationMetadata().getPrivateSources()); @@ -105,7 +102,6 @@ public void testCOSMICandHGMDApiKey() throws Exception { storageConfiguration.getCellbase().setApiKey(apiKey); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); options.put(ANNOTATOR_CELLBASE_INCLUDE.key(), "clinical"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java index 260e1840dba..02b84fc38a9 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java @@ -1,6 +1,7 @@ package org.opencb.opencga.storage.core.variant.annotation.annotators; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -111,9 +112,9 @@ public void testErrorVariant() throws VariantAnnotatorException { } @Test - public void useCellBaseTokens() throws VariantAnnotatorException { + public void useCellBaseApiKeys() throws VariantAnnotatorException { storageConfiguration.getCellbase().setUrl("https://uk.ws.zettagenomics.com/cellbase/"); - storageConfiguration.getCellbase().setVersion("task-3808"); + storageConfiguration.getCellbase().setVersion("v5.4"); storageConfiguration.getCellbase().setDataRelease("3"); VariantAnnotator variantAnnotator = null; @@ -126,6 +127,8 @@ public void useCellBaseTokens() throws VariantAnnotatorException { } assumeTrue(variantAnnotator != null); + String apiKey; + // No token List results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); assertEquals(1, results.size()); @@ -134,41 +137,40 @@ public void useCellBaseTokens() throws VariantAnnotatorException { assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); // Using COSMIC token - storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjQ2Nn0.ByfPJn8Lkh5Sow4suRZcOqVxvWZRmTBBNLDzHEIZQ5U"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + apiKey = System.getenv("CELLBASE_COSMIC_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + } // Using HGMD token - storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2NzU4NzI1MDd9.f3JgVRt7_VrifNWTaRMW3aQfrKbtDbIxlzoenJRYJo0"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); - - // Using COSMIC = HGMD token - storageConfiguration.getCellbase().setApiKey("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwNywiaGdtZCI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjUyN30.NCCFc4SAhjUsN5UU0wXGY6nCZx8jLglvaO1cNZYI0u4"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); - } + apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + } - private Set getSources(VariantAnnotation variantAnnotation) { - Set sources = new HashSet<>(); - if (variantAnnotation != null && CollectionUtils.isNotEmpty(variantAnnotation.getTraitAssociation())) { - for (EvidenceEntry entry : variantAnnotation.getTraitAssociation()) { - sources.add(entry.getSource().getName()); - } + // Using COSMIC + HGMD token + apiKey = System.getenv("CELLBASE_COSMIC_HGMD_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); } - return sources; } public static class TestCellBaseRestVariantAnnotator extends CellBaseRestVariantAnnotator { From 061730a7e45b5af2230fc9f113f235d18faf5a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Tue, 29 Aug 2023 15:26:31 +0100 Subject: [PATCH 58/70] app: Add migration for renaming cellbase.token to cellbase.apiKey #TASK-4898 --- .../catalog/RenameCellBaseToken2ApiKey.java | 50 +++++++++++++++++++ .../config/storage/CellBaseConfiguration.java | 15 ------ 2 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java 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-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java index 1818beb363c..2ef6a77cca4 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java @@ -42,10 +42,6 @@ public class CellBaseConfiguration { @DataField(id = "dataRelease", description = "CellBase data release version to be used. If empty, will use the active one") private String dataRelease; - @Deprecated - @DataField(id = "token", deprecated = true, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...") - private String token; - @DataField(id = "apiKey", description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.") private String apiKey; @@ -62,7 +58,6 @@ public CellBaseConfiguration(String url, String version, String dataRelease, Str this.url = url; this.version = version; this.dataRelease = dataRelease; - this.token = apiKey; this.apiKey = apiKey; } @@ -72,7 +67,6 @@ public String toString() { sb.append("url='").append(url).append('\''); sb.append(", version='").append(version).append('\''); sb.append(", dataRelease='").append(dataRelease).append('\''); - sb.append(", token='").append(token).append('\''); sb.append(", apiKey='").append(apiKey).append('\''); sb.append('}'); return sb.toString(); @@ -105,15 +99,6 @@ public CellBaseConfiguration setDataRelease(String dataRelease) { return this; } -// public String getToken() { -// return apiKey; -// } -// -// public CellBaseConfiguration setToken(String token) { -// this.apiKey = token; -// return this; -// } - public String getApiKey() { return apiKey; } From 88ed0ea4ef071c2257b2fa5e6c3e1422f48cdb49 Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 30 Aug 2023 09:40:17 +0200 Subject: [PATCH 59/70] core: improve regex description, #TASK-4906 --- .../main/java/org/opencb/opencga/core/api/ParamConstants.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java index 6a42182cf34..a34b818924a 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java @@ -38,7 +38,8 @@ public class ParamConstants { public static final String RELEASE_DESCRIPTION = "Release when it was created"; public static final String INTERNAL_STATUS_PARAM = "internalStatus"; public static final String INTERNAL_STATUS_DESCRIPTION = "Filter by internal status"; - private static final String REGEX_SUPPORT = ". Also admits basic regular expressions like '~/^value/i'"; + private static final String REGEX_SUPPORT = ". Also admits basic regular expressions using the operator '~', " + + "i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search."; @Deprecated // Use INTERNAL_VARIANT_INDEX_STATUS_PARAM public static final String INTERNAL_INDEX_STATUS_PARAM = "internalIndexStatus"; public static final String INTERNAL_VARIANT_INDEX_STATUS_PARAM = "internalVariantIndexStatus"; From c34d02549b6d595a38a33591d59beae764b419a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 30 Aug 2023 11:38:46 +0100 Subject: [PATCH 60/70] core: Fix cellbase validator to acknowledge tokens. #TASK-4913 --- .../core/cellbase/CellBaseValidator.java | 44 ++++++++++++++++++- .../core/cellbase/CellBaseValidatorTest.java | 35 +++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 21f5c79fecd..43da58f396a 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -1,6 +1,8 @@ package org.opencb.opencga.core.cellbase; +import io.jsonwebtoken.JwtException; import org.apache.commons.lang3.StringUtils; +import org.opencb.biodata.models.variant.avro.VariantAnnotation; import org.opencb.cellbase.client.rest.CellBaseClient; import org.opencb.cellbase.core.config.SpeciesConfiguration; import org.opencb.cellbase.core.config.SpeciesProperties; @@ -8,6 +10,7 @@ import org.opencb.cellbase.core.result.CellBaseDataResponse; import org.opencb.cellbase.core.token.DataAccessTokenManager; import org.opencb.cellbase.core.token.DataAccessTokenSources; +import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.opencga.core.common.VersionUtils; import org.opencb.opencga.core.config.storage.CellBaseConfiguration; import org.slf4j.Logger; @@ -15,6 +18,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -46,6 +50,7 @@ private CellBaseClient newCellBaseClient(CellBaseConfiguration cellBaseConfigura toCellBaseSpeciesName(species), assembly, cellBaseConfiguration.getDataRelease(), + cellBaseConfiguration.getToken(), cellBaseConfiguration.toClientConfiguration()); } @@ -136,7 +141,7 @@ public void validate() throws IOException { validate(false); } - public CellBaseConfiguration validate(boolean autoComplete) throws IOException { + private CellBaseConfiguration validate(boolean autoComplete) throws IOException { CellBaseConfiguration cellBaseConfiguration = getCellBaseConfiguration(); String inputVersion = getVersion(); CellBaseDataResponse species; @@ -189,6 +194,38 @@ public CellBaseConfiguration validate(boolean autoComplete) throws IOException { } } } + if (getToken() != null) { + // Check it's supported + if (!supportsToken(serverVersion)) { + throw new IllegalArgumentException("Token not supported for cellbase " + + "url: '" + getURL() + "'" + + ", version: '" + inputVersion + "'"); + } + + // Check it's an actual token + DataAccessTokenManager tokenManager = new DataAccessTokenManager(); + try { + tokenManager.decode(getToken()); + } catch (JwtException e) { + throw new IllegalArgumentException("Malformed token for cellbase " + + "url: '" + getURL() + "'" + + ", version: '" + inputVersion + + "', species: '" + getSpecies() + + "', assembly: '" + getAssembly() + "'"); + } + + // Check it's a valid token + CellBaseDataResponse response = cellBaseClient.getVariantClient() + .getAnnotationByVariantIds(Collections.singletonList("1:1:N:C"), new QueryOptions(), true); + if (response.firstResult() == null) { + throw new IllegalArgumentException("Invalid token for cellbase " + + "url: '" + getURL() + "'" + + ", version: '" + inputVersion + + "', species: '" + getSpecies() + + "', assembly: '" + getAssembly() + "'"); + } + } + return cellBaseConfiguration; } @@ -231,6 +268,11 @@ public static boolean supportsDataReleaseActiveByDefaultIn(String serverVersion) return VersionUtils.isMinVersion("5.5.0", serverVersion, true); } + public static boolean supportsToken(String serverVersion) { + // Tokens support starts at version 5.4.0 + return VersionUtils.isMinVersion("5.4.0", serverVersion); + } + public String getVersionFromServerMajor() throws IOException { return major(getVersionFromServer()); } diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java index 36db80985f0..38d91dd0fc8 100644 --- a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java +++ b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java @@ -1,6 +1,8 @@ package org.opencb.opencga.core.cellbase; +import org.apache.commons.lang3.StringUtils; import org.junit.Assert; +import org.junit.Assume; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -70,4 +72,37 @@ public void testNoActiveReleases() throws IOException { thrown.expectMessage("No active data releases found on cellbase"); CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, null), "mmusculus", "GRCm38", true); } + + @Test + public void testToken() throws IOException { + String token = System.getenv("CELLBASE_HGMD_TOKEN"); + Assume.assumeTrue(StringUtils.isNotEmpty(token)); + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getToken()); + } + + @Test + public void testTokenNotSupported() throws IOException { + String token = System.getenv("CELLBASE_HGMD_TOKEN"); + Assume.assumeTrue(StringUtils.isNotEmpty(token)); + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, token), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getToken()); + } + + @Test + public void testMalformedToken() throws IOException { + thrown.expectMessage("Malformed token for cellbase"); + String token = "MALFORMED_TOKEN"; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getToken()); + } + + @Test + public void testUnsignedToken() throws IOException { + thrown.expectMessage("Invalid token for cellbase"); + String token = "eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2OTMyMTY5MDd9.invalidsignature"; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getToken()); + } + } \ No newline at end of file From 24e51ea1d9848cfa8e32f396412fd3b8058fcc78 Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 30 Aug 2023 15:02:16 +0200 Subject: [PATCH 61/70] app: fix client and cli generator, #TASK-4917 --- opencga-app/app/misc/clients/rest_client_generator.py | 3 +++ .../server/generator/writers/ParentClientRestApiWriter.java | 2 ++ 2 files changed, 5 insertions(+) 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-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java b/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java index 2ac80dfd288..72857bc2aec 100644 --- a/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java +++ b/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java @@ -218,6 +218,8 @@ protected static String getMethodName(String subpath) { // methodName = items[3] + "_" + items[1] + "_" + items[2]; } else if (items[0].contains("}") && items[2].contains("}") && (!items[1].contains("}")) && (!items[3].contains("}"))) { methodName = items[3] + "_" + items[1]; + } else if (items[1].contains("}") && (!items[0].contains("}") && !items[2].contains("}") && !items[3].contains("}"))) { + methodName = items[0] + "_" + items[3] + "_" + items[2]; } } else if (items.length == 5) { if (items[0].contains("}") && items[2].contains("}") && (!items[1].contains("}")) && (!items[3].contains("}")) From 4722e48728dbb6761c4a65643a52c0f339080866 Mon Sep 17 00:00:00 2001 From: pfurio Date: Wed, 30 Aug 2023 15:04:32 +0200 Subject: [PATCH 62/70] app: generate new clients and cli, #TASK-4917 --- .../app/cli/main/OpenCgaCompleter.java | 4 +-- .../app/cli/main/OpencgaCliOptionsParser.java | 3 +- .../main/executors/AdminCommandExecutor.java | 36 +++++++++++++++++++ .../cli/main/options/AdminCommandOptions.java | 28 +++++++++++++++ .../AnalysisVariantCommandOptions.java | 4 +-- opencga-client/src/main/R/R/Admin-methods.R | 13 +++++-- .../src/main/R/R/Alignment-methods.R | 2 +- opencga-client/src/main/R/R/AllGenerics.R | 18 +++++----- .../src/main/R/R/Clinical-methods.R | 4 +-- opencga-client/src/main/R/R/Cohort-methods.R | 4 +-- opencga-client/src/main/R/R/Family-methods.R | 4 +-- opencga-client/src/main/R/R/File-methods.R | 4 +-- opencga-client/src/main/R/R/GA4GH-methods.R | 2 +- .../src/main/R/R/Individual-methods.R | 4 +-- opencga-client/src/main/R/R/Job-methods.R | 4 +-- opencga-client/src/main/R/R/Meta-methods.R | 2 +- .../src/main/R/R/Operation-methods.R | 2 +- opencga-client/src/main/R/R/Panel-methods.R | 2 +- opencga-client/src/main/R/R/Project-methods.R | 2 +- opencga-client/src/main/R/R/Sample-methods.R | 2 +- opencga-client/src/main/R/R/Study-methods.R | 4 +-- opencga-client/src/main/R/R/User-methods.R | 4 +-- opencga-client/src/main/R/R/Variant-methods.R | 2 +- .../client/rest/clients/AdminClient.java | 20 +++++++++-- .../client/rest/clients/AlignmentClient.java | 4 +-- .../rest/clients/ClinicalAnalysisClient.java | 4 +-- .../client/rest/clients/CohortClient.java | 4 +-- .../rest/clients/DiseasePanelClient.java | 4 +-- .../client/rest/clients/FamilyClient.java | 4 +-- .../client/rest/clients/FileClient.java | 4 +-- .../client/rest/clients/GA4GHClient.java | 4 +-- .../client/rest/clients/IndividualClient.java | 4 +-- .../client/rest/clients/JobClient.java | 4 +-- .../client/rest/clients/MetaClient.java | 4 +-- .../client/rest/clients/ProjectClient.java | 4 +-- .../client/rest/clients/SampleClient.java | 4 +-- .../client/rest/clients/StudyClient.java | 4 +-- .../client/rest/clients/UserClient.java | 4 +-- .../client/rest/clients/VariantClient.java | 4 +-- .../rest/clients/VariantOperationClient.java | 4 +-- opencga-client/src/main/javascript/Admin.js | 13 ++++++- .../src/main/javascript/Alignment.js | 2 +- .../src/main/javascript/ClinicalAnalysis.js | 2 +- opencga-client/src/main/javascript/Cohort.js | 2 +- .../src/main/javascript/DiseasePanel.js | 2 +- opencga-client/src/main/javascript/Family.js | 2 +- opencga-client/src/main/javascript/File.js | 2 +- opencga-client/src/main/javascript/GA4GH.js | 2 +- .../src/main/javascript/Individual.js | 2 +- opencga-client/src/main/javascript/Job.js | 2 +- opencga-client/src/main/javascript/Meta.js | 2 +- opencga-client/src/main/javascript/Project.js | 2 +- opencga-client/src/main/javascript/Sample.js | 2 +- opencga-client/src/main/javascript/Study.js | 2 +- opencga-client/src/main/javascript/User.js | 2 +- opencga-client/src/main/javascript/Variant.js | 2 +- .../src/main/javascript/VariantOperation.js | 2 +- .../pyopencga/rest_clients/admin_client.py | 17 +++++++-- .../rest_clients/alignment_client.py | 4 +-- .../rest_clients/clinical_analysis_client.py | 4 +-- .../pyopencga/rest_clients/cohort_client.py | 4 +-- .../rest_clients/disease_panel_client.py | 4 +-- .../pyopencga/rest_clients/family_client.py | 4 +-- .../pyopencga/rest_clients/file_client.py | 4 +-- .../pyopencga/rest_clients/ga4gh_client.py | 4 +-- .../rest_clients/individual_client.py | 4 +-- .../pyopencga/rest_clients/job_client.py | 4 +-- .../pyopencga/rest_clients/meta_client.py | 4 +-- .../pyopencga/rest_clients/project_client.py | 4 +-- .../pyopencga/rest_clients/sample_client.py | 4 +-- .../pyopencga/rest_clients/study_client.py | 4 +-- .../pyopencga/rest_clients/user_client.py | 4 +-- .../pyopencga/rest_clients/variant_client.py | 4 +-- .../rest_clients/variant_operation_client.py | 4 +-- 74 files changed, 239 insertions(+), 125 deletions(-) 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..6627d4d82f1 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-08-30 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..b619c612c32 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-08-30 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/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/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-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R index 11b7d569372..5d46536451d 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-08-30 # # 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..206b0aa2646 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-08-30 # # 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..8e9baedd284 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, user, filterId, users, endpointName, params=NULL, ...) standardGeneric("userClient")) # ############################################################################## @@ -10,17 +10,17 @@ 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, members, variableSet, studies, group, study, templateId, endpointName, params=NULL, ...) standardGeneric("studyClient")) # ############################################################################## ## FileClient -setGeneric("fileClient", function(OpencgaR, folder, file, members, files, annotationSet, endpointName, params=NULL, ...) +setGeneric("fileClient", function(OpencgaR, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) standardGeneric("fileClient")) # ############################################################################## ## JobClient -setGeneric("jobClient", function(OpencgaR, members, jobs, job, endpointName, params=NULL, ...) +setGeneric("jobClient", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) standardGeneric("jobClient")) # ############################################################################## @@ -30,17 +30,17 @@ setGeneric("sampleClient", function(OpencgaR, members, sample, samples, annotati # ############################################################################## ## IndividualClient -setGeneric("individualClient", function(OpencgaR, members, individual, annotationSet, individuals, endpointName, params=NULL, ...) +setGeneric("individualClient", function(OpencgaR, members, individuals, annotationSet, individual, endpointName, params=NULL, ...) standardGeneric("individualClient")) # ############################################################################## ## FamilyClient -setGeneric("familyClient", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...) +setGeneric("familyClient", function(OpencgaR, members, family, annotationSet, families, endpointName, params=NULL, ...) standardGeneric("familyClient")) # ############################################################################## ## CohortClient -setGeneric("cohortClient", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...) +setGeneric("cohortClient", function(OpencgaR, members, annotationSet, 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, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) standardGeneric("clinicalClient")) # ############################################################################## @@ -80,6 +80,6 @@ setGeneric("ga4ghClient", function(OpencgaR, file, study, endpointName, params=N # ############################################################################## ## 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..f0652ba64dd 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-08-30 # # 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, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/analysis/clinical/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Cohort-methods.R b/opencga-client/src/main/R/R/Cohort-methods.R index 3d1c6034484..2bcb87bbbbc 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-08-30 # # 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, members, annotationSet, cohort, cohorts, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/cohorts/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Family-methods.R b/opencga-client/src/main/R/R/Family-methods.R index b4bdd82fbc5..5993bbe8de9 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-08-30 # # 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, members, family, annotationSet, families, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/families/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/File-methods.R b/opencga-client/src/main/R/R/File-methods.R index d97412f4788..0ef0d2c83d8 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-08-30 # # 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, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/files/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/GA4GH-methods.R b/opencga-client/src/main/R/R/GA4GH-methods.R index defcc45b18f..534e75260ad 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-08-30 # # 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/Individual-methods.R b/opencga-client/src/main/R/R/Individual-methods.R index 1ded4cea574..019acd410c2 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-08-30 # # 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, members, individuals, annotationSet, individual, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/individuals/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Job-methods.R b/opencga-client/src/main/R/R/Job-methods.R index 9a6319a293c..f85fe4840f7 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-08-30 # # 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. @@ -40,7 +40,7 @@ #' [*]: Required parameter #' @export -setMethod("jobClient", "OpencgaR", function(OpencgaR, members, jobs, job, endpointName, params=NULL, ...) { +setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/jobs/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Meta-methods.R b/opencga-client/src/main/R/R/Meta-methods.R index cfd47fb4f17..d4de1c866b8 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-08-30 # # 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..902a0403f47 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-08-30 # # 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..e7d661d3a2c 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-08-30 # # 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/Project-methods.R b/opencga-client/src/main/R/R/Project-methods.R index 88420d4beb6..b4ab8a5b98e 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-08-30 # # 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..89b2d7b5876 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-08-30 # # 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/Study-methods.R b/opencga-client/src/main/R/R/Study-methods.R index 425059d2d03..754fa677dea 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-08-30 # # 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, members, variableSet, studies, group, study, 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..7fb54a32ff1 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-08-30 # # 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, user, filterId, users, 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..0b7a706cb8f 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-08-30 # # 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..2a375bb7b83 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-08-30 * * 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..08257cc1a1a 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-08-30 * * 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..32ab712003e 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-08-30 * * 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 { 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..547601b9329 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-08-30 * * 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 { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java index fc47e555d99..ad5ea1a7047 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java @@ -35,7 +35,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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 +44,7 @@ /** * This class contains methods for the DiseasePanel webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: panels */ public class DiseasePanelClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java index 072933ac1e2..d113cbdaf09 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -45,7 +45,7 @@ /** * This class contains methods for the Family webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: families */ public class FamilyClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java index 553e0983a27..72be6ed305b 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java @@ -43,7 +43,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -52,7 +52,7 @@ /** * This class contains methods for the File webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: files */ public class FileClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java index a4bc5b7f11c..fbb84f972a4 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java @@ -27,7 +27,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -36,7 +36,7 @@ /** * This class contains methods for the GA4GH webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: ga4gh */ public class GA4GHClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java index 3b41baf7ae6..5803d125e54 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -45,7 +45,7 @@ /** * This class contains methods for the Individual webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: individuals */ public class IndividualClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java index 334c154ae53..27245d4011c 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java @@ -37,7 +37,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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 Job webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: jobs */ public class JobClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java index ac4c311a0bb..c2c015b670d 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java @@ -28,7 +28,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -37,7 +37,7 @@ /** * This class contains methods for the Meta webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: meta */ public class MetaClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java index 9a3094cb554..47aeec33622 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java @@ -32,7 +32,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -41,7 +41,7 @@ /** * This class contains methods for the Project webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: projects */ public class ProjectClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java index efeca3bd4b3..d2dd71bc2f3 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -45,7 +45,7 @@ /** * This class contains methods for the Sample webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: samples */ public class SampleClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java index 47f1ce2dbc9..53502e91c7e 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java @@ -45,7 +45,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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 @@ /** * This class contains methods for the Study webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: studies */ public class StudyClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java index bdf3eb4f232..eda89cb9228 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -45,7 +45,7 @@ /** * This class contains methods for the User webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: users */ public class UserClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java index 5b135d4d38e..0d25391978a 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java @@ -62,7 +62,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -71,7 +71,7 @@ /** * This class contains methods for the Variant webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: analysis/variant */ public class VariantClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java index e15498be36d..ae6bef9d18d 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java @@ -50,7 +50,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-08-30 * * 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. @@ -59,7 +59,7 @@ /** * This class contains methods for the VariantOperation webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.11.0-SNAPSHOT * PATH: operation */ public class VariantOperationClient extends AbstractParentClient { diff --git a/opencga-client/src/main/javascript/Admin.js b/opencga-client/src/main/javascript/Admin.js index 53c4f4e9c41..26d6d454012 100644 --- a/opencga-client/src/main/javascript/Admin.js +++ b/opencga-client/src/main/javascript/Admin.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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. @@ -116,4 +116,15 @@ export default class Admin extends OpenCGAParentClass { return this._post("admin", null, "users", null, "sync", data); } + /** Add or remove users from existing groups + * @param {String} user - User ID. + * @param {Object} data - JSON containing the parameters. + * @param {Object} [params] - The Object containing the following optional parameters: + * @param {"ADD REMOVE"} [params.action = "ADD"] - Action to be performed: ADD or REMOVE user to/from groups. The default value is ADD. + * @returns {Promise} Promise object in the form of RestResponse instance. + */ + usersUpdateGroups(user, data, params) { + return this._post("admin/users", user, "groups", null, "update", data, params); + } + } \ No newline at end of file diff --git a/opencga-client/src/main/javascript/Alignment.js b/opencga-client/src/main/javascript/Alignment.js index bc3b7eb2c02..33aa92db017 100644 --- a/opencga-client/src/main/javascript/Alignment.js +++ b/opencga-client/src/main/javascript/Alignment.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/ClinicalAnalysis.js b/opencga-client/src/main/javascript/ClinicalAnalysis.js index 30c195691ca..4434d811346 100644 --- a/opencga-client/src/main/javascript/ClinicalAnalysis.js +++ b/opencga-client/src/main/javascript/ClinicalAnalysis.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Cohort.js b/opencga-client/src/main/javascript/Cohort.js index 56f11ab10fa..cb53c5278a3 100644 --- a/opencga-client/src/main/javascript/Cohort.js +++ b/opencga-client/src/main/javascript/Cohort.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/DiseasePanel.js b/opencga-client/src/main/javascript/DiseasePanel.js index c8a18d38ab6..a4bc253c0bd 100644 --- a/opencga-client/src/main/javascript/DiseasePanel.js +++ b/opencga-client/src/main/javascript/DiseasePanel.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Family.js b/opencga-client/src/main/javascript/Family.js index eef6b77e11e..e971b3b2e81 100644 --- a/opencga-client/src/main/javascript/Family.js +++ b/opencga-client/src/main/javascript/Family.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/File.js b/opencga-client/src/main/javascript/File.js index 66ca23ddf1e..b3219c4f08a 100644 --- a/opencga-client/src/main/javascript/File.js +++ b/opencga-client/src/main/javascript/File.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/GA4GH.js b/opencga-client/src/main/javascript/GA4GH.js index e6fb38143ac..ec01beb21de 100644 --- a/opencga-client/src/main/javascript/GA4GH.js +++ b/opencga-client/src/main/javascript/GA4GH.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Individual.js b/opencga-client/src/main/javascript/Individual.js index 2487febccf8..71eb45dbafd 100644 --- a/opencga-client/src/main/javascript/Individual.js +++ b/opencga-client/src/main/javascript/Individual.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Job.js b/opencga-client/src/main/javascript/Job.js index e76d111f0b5..1e1cc91bc52 100644 --- a/opencga-client/src/main/javascript/Job.js +++ b/opencga-client/src/main/javascript/Job.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Meta.js b/opencga-client/src/main/javascript/Meta.js index b0208dd1cfd..24dfe87c63d 100644 --- a/opencga-client/src/main/javascript/Meta.js +++ b/opencga-client/src/main/javascript/Meta.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Project.js b/opencga-client/src/main/javascript/Project.js index 06abda04b57..e240c25cb46 100644 --- a/opencga-client/src/main/javascript/Project.js +++ b/opencga-client/src/main/javascript/Project.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Sample.js b/opencga-client/src/main/javascript/Sample.js index 2c4fdd8956a..03c6a5b8d8f 100644 --- a/opencga-client/src/main/javascript/Sample.js +++ b/opencga-client/src/main/javascript/Sample.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Study.js b/opencga-client/src/main/javascript/Study.js index 029d4133c82..e99e8c7606b 100644 --- a/opencga-client/src/main/javascript/Study.js +++ b/opencga-client/src/main/javascript/Study.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/User.js b/opencga-client/src/main/javascript/User.js index fd3b9adaf52..bfed2a7bfec 100644 --- a/opencga-client/src/main/javascript/User.js +++ b/opencga-client/src/main/javascript/User.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/Variant.js b/opencga-client/src/main/javascript/Variant.js index f5f8b2e09a1..ae9365d5448 100644 --- a/opencga-client/src/main/javascript/Variant.js +++ b/opencga-client/src/main/javascript/Variant.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/javascript/VariantOperation.js b/opencga-client/src/main/javascript/VariantOperation.js index 604e09d9ccf..f9837f69e25 100644 --- a/opencga-client/src/main/javascript/VariantOperation.js +++ b/opencga-client/src/main/javascript/VariantOperation.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-04-18 + * Autogenerated on: 2023-08-30 * * 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/python/pyopencga/rest_clients/admin_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py index 7048467edf6..e982694d126 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Admin(_ParentRestClient): """ This class contains methods for the 'Admin' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/admin """ @@ -128,3 +128,16 @@ def sync_users(self, data=None, **options): return self._post(category='admin', resource='sync', subcategory='users', data=data, **options) + def users_update_groups(self, user, data=None, **options): + """ + Add or remove users from existing groups. + PATH: /{apiVersion}/admin/users/{user}/groups/update + + :param dict data: JSON containing the parameters. (REQUIRED) + :param str user: User ID. (REQUIRED) + :param str action: Action to be performed: ADD or REMOVE user to/from + groups. Allowed values: ['ADD REMOVE'] + """ + + return self._post(category='admin/users', resource='update', query_id=user, subcategory='groups', data=data, **options) + diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py index 826ae8b6957..b94f350449a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Alignment(_ParentRestClient): """ This class contains methods for the 'Analysis - Alignment' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/analysis/alignment """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py index e6ced9ecbf3..ca4e1438978 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class ClinicalAnalysis(_ParentRestClient): """ This class contains methods for the 'Analysis - Clinical' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/analysis/clinical """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py index 6c685b9772a..fef4cafa48d 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Cohort(_ParentRestClient): """ This class contains methods for the 'Cohorts' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/cohorts """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py index 4ec0b95c8fa..8382900c307 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class DiseasePanel(_ParentRestClient): """ This class contains methods for the 'Disease Panels' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/panels """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py index ab94612b324..0637f728a08 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Family(_ParentRestClient): """ This class contains methods for the 'Families' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/families """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py index 0db45804764..816cdf83c0b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class File(_ParentRestClient): """ This class contains methods for the 'Files' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/files """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py index 0b1c0df4afa..6f62ec62786 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class GA4GH(_ParentRestClient): """ This class contains methods for the 'GA4GH' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/ga4gh """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py index e4830dbe5ab..3982f010208 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Individual(_ParentRestClient): """ This class contains methods for the 'Individuals' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/individuals """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py index fe0a9ec74d3..313cf0df796 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Job(_ParentRestClient): """ This class contains methods for the 'Jobs' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/jobs """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py index 96982cc0e3d..189a5ab62ea 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Meta(_ParentRestClient): """ This class contains methods for the 'Meta' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/meta """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py index d28ecf4d846..0784b20594c 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Project(_ParentRestClient): """ This class contains methods for the 'Projects' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/projects """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py index dca81d4e863..258189685ef 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Sample(_ParentRestClient): """ This class contains methods for the 'Samples' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/samples """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py index 53849f904d7..3726c1e0a3a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Study(_ParentRestClient): """ This class contains methods for the 'Studies' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/studies """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py index 0a446be7d9a..80ac433566b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class User(_ParentRestClient): """ This class contains methods for the 'Users' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/users """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py index cc233157566..32dfa804648 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class Variant(_ParentRestClient): """ This class contains methods for the 'Analysis - Variant' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/analysis/variant """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py index 80eb4b8c973..4070484d219 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-04-18 + Autogenerated on: 2023-08-30 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. @@ -14,7 +14,7 @@ class VariantOperation(_ParentRestClient): """ This class contains methods for the 'Operations - Variant Storage' webservices - Client version: 2.8.0-SNAPSHOT + Client version: 2.11.0-SNAPSHOT PATH: /{apiVersion}/operation """ From af38b8bd620c9b0dce5c7f885d08fcb34fbdcf62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Thu, 31 Aug 2023 16:23:38 +0200 Subject: [PATCH 63/70] client: generate OpenCGA clients to take into account the parameter API key, #TASK-4898, #TASK-4641 --- .../app/cli/main/OpenCgaCompleter.java | 2 +- .../app/cli/main/OpencgaCliOptionsParser.java | 2 +- ...erationsVariantStorageCommandExecutor.java | 2 +- .../executors/ProjectsCommandExecutor.java | 2 +- ...perationsVariantStorageCommandOptions.java | 4 ++-- .../main/options/ProjectsCommandOptions.java | 4 ++-- opencga-client/src/main/R/R/Admin-methods.R | 2 +- .../src/main/R/R/Alignment-methods.R | 2 +- opencga-client/src/main/R/R/AllGenerics.R | 20 +++++++++---------- .../src/main/R/R/Clinical-methods.R | 4 ++-- opencga-client/src/main/R/R/Cohort-methods.R | 4 ++-- opencga-client/src/main/R/R/Family-methods.R | 4 ++-- opencga-client/src/main/R/R/File-methods.R | 4 ++-- opencga-client/src/main/R/R/GA4GH-methods.R | 4 ++-- .../src/main/R/R/Individual-methods.R | 2 +- opencga-client/src/main/R/R/Job-methods.R | 4 ++-- opencga-client/src/main/R/R/Meta-methods.R | 2 +- .../src/main/R/R/Operation-methods.R | 2 +- opencga-client/src/main/R/R/Panel-methods.R | 2 +- opencga-client/src/main/R/R/Project-methods.R | 4 ++-- opencga-client/src/main/R/R/Sample-methods.R | 4 ++-- opencga-client/src/main/R/R/Study-methods.R | 4 ++-- opencga-client/src/main/R/R/User-methods.R | 4 ++-- opencga-client/src/main/R/R/Variant-methods.R | 2 +- .../client/rest/clients/AdminClient.java | 2 +- .../client/rest/clients/AlignmentClient.java | 2 +- .../rest/clients/ClinicalAnalysisClient.java | 2 +- .../client/rest/clients/CohortClient.java | 2 +- .../rest/clients/DiseasePanelClient.java | 2 +- .../client/rest/clients/FamilyClient.java | 2 +- .../client/rest/clients/FileClient.java | 2 +- .../client/rest/clients/GA4GHClient.java | 2 +- .../client/rest/clients/IndividualClient.java | 2 +- .../client/rest/clients/JobClient.java | 2 +- .../client/rest/clients/MetaClient.java | 2 +- .../client/rest/clients/ProjectClient.java | 2 +- .../client/rest/clients/SampleClient.java | 2 +- .../client/rest/clients/StudyClient.java | 2 +- .../client/rest/clients/UserClient.java | 2 +- .../client/rest/clients/VariantClient.java | 2 +- .../rest/clients/VariantOperationClient.java | 2 +- opencga-client/src/main/javascript/Admin.js | 2 +- .../src/main/javascript/Alignment.js | 2 +- .../src/main/javascript/ClinicalAnalysis.js | 2 +- opencga-client/src/main/javascript/Cohort.js | 2 +- .../src/main/javascript/DiseasePanel.js | 2 +- opencga-client/src/main/javascript/Family.js | 2 +- opencga-client/src/main/javascript/File.js | 2 +- opencga-client/src/main/javascript/GA4GH.js | 2 +- .../src/main/javascript/Individual.js | 2 +- opencga-client/src/main/javascript/Job.js | 2 +- opencga-client/src/main/javascript/Meta.js | 2 +- opencga-client/src/main/javascript/Project.js | 2 +- opencga-client/src/main/javascript/Sample.js | 2 +- opencga-client/src/main/javascript/Study.js | 2 +- opencga-client/src/main/javascript/User.js | 2 +- opencga-client/src/main/javascript/Variant.js | 2 +- .../src/main/javascript/VariantOperation.js | 2 +- .../pyopencga/rest_clients/admin_client.py | 2 +- .../rest_clients/alignment_client.py | 2 +- .../rest_clients/clinical_analysis_client.py | 2 +- .../pyopencga/rest_clients/cohort_client.py | 2 +- .../rest_clients/disease_panel_client.py | 2 +- .../pyopencga/rest_clients/family_client.py | 2 +- .../pyopencga/rest_clients/file_client.py | 2 +- .../pyopencga/rest_clients/ga4gh_client.py | 2 +- .../rest_clients/individual_client.py | 2 +- .../pyopencga/rest_clients/job_client.py | 2 +- .../pyopencga/rest_clients/meta_client.py | 2 +- .../pyopencga/rest_clients/project_client.py | 2 +- .../pyopencga/rest_clients/sample_client.py | 2 +- .../pyopencga/rest_clients/study_client.py | 2 +- .../pyopencga/rest_clients/user_client.py | 2 +- .../pyopencga/rest_clients/variant_client.py | 2 +- .../rest_clients/variant_operation_client.py | 2 +- 75 files changed, 96 insertions(+), 96 deletions(-) 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 6627d4d82f1..8b3fc6bbc51 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-08-30 OpenCB +* Copyright 2015-2023-08-31 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 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 b619c612c32..471a564c487 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-08-30 OpenCB +* Copyright 2015-2023-08-31 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 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/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-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R index 5d46536451d..683aadd80e1 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-08-30 +# Autogenerated on: 2023-08-31 # # 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/Alignment-methods.R b/opencga-client/src/main/R/R/Alignment-methods.R index 206b0aa2646..175943692f6 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-08-30 +# Autogenerated on: 2023-08-31 # # 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 8e9baedd284..088e6976532 100644 --- a/opencga-client/src/main/R/R/AllGenerics.R +++ b/opencga-client/src/main/R/R/AllGenerics.R @@ -1,31 +1,31 @@ # ############################################################################## ## UserClient -setGeneric("userClient", function(OpencgaR, user, filterId, users, endpointName, params=NULL, ...) +setGeneric("userClient", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...) standardGeneric("userClient")) # ############################################################################## ## ProjectClient -setGeneric("projectClient", function(OpencgaR, projects, project, endpointName, params=NULL, ...) +setGeneric("projectClient", function(OpencgaR, project, projects, endpointName, params=NULL, ...) standardGeneric("projectClient")) # ############################################################################## ## StudyClient -setGeneric("studyClient", function(OpencgaR, members, variableSet, studies, group, study, templateId, endpointName, params=NULL, ...) +setGeneric("studyClient", function(OpencgaR, members, variableSet, studies, study, templateId, group, endpointName, params=NULL, ...) standardGeneric("studyClient")) # ############################################################################## ## FileClient -setGeneric("fileClient", function(OpencgaR, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) +setGeneric("fileClient", function(OpencgaR, members, annotationSet, file, files, folder, endpointName, params=NULL, ...) standardGeneric("fileClient")) # ############################################################################## ## JobClient -setGeneric("jobClient", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) +setGeneric("jobClient", function(OpencgaR, job, members, jobs, endpointName, params=NULL, ...) standardGeneric("jobClient")) # ############################################################################## ## 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")) # ############################################################################## @@ -35,12 +35,12 @@ setGeneric("individualClient", function(OpencgaR, members, individuals, annotati # ############################################################################## ## FamilyClient -setGeneric("familyClient", function(OpencgaR, members, family, annotationSet, families, endpointName, params=NULL, ...) +setGeneric("familyClient", function(OpencgaR, family, members, families, annotationSet, endpointName, params=NULL, ...) standardGeneric("familyClient")) # ############################################################################## ## CohortClient -setGeneric("cohortClient", function(OpencgaR, members, annotationSet, cohort, cohorts, endpointName, params=NULL, ...) +setGeneric("cohortClient", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...) standardGeneric("cohortClient")) # ############################################################################## @@ -60,7 +60,7 @@ setGeneric("variantClient", function(OpencgaR, endpointName, params=NULL, ...) # ############################################################################## ## ClinicalClient -setGeneric("clinicalClient", function(OpencgaR, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) +setGeneric("clinicalClient", function(OpencgaR, interpretation, members, interpretations, clinicalAnalyses, clinicalAnalysis, endpointName, params=NULL, ...) standardGeneric("clinicalClient")) # ############################################################################## @@ -75,7 +75,7 @@ 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")) # ############################################################################## diff --git a/opencga-client/src/main/R/R/Clinical-methods.R b/opencga-client/src/main/R/R/Clinical-methods.R index f0652ba64dd..b87af69bca9 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) { +setMethod("clinicalClient", "OpencgaR", function(OpencgaR, interpretation, members, interpretations, clinicalAnalyses, clinicalAnalysis, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/analysis/clinical/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Cohort-methods.R b/opencga-client/src/main/R/R/Cohort-methods.R index 2bcb87bbbbc..4aafeeb7609 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, annotationSet, cohort, cohorts, endpointName, params=NULL, ...) { +setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/cohorts/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Family-methods.R b/opencga-client/src/main/R/R/Family-methods.R index 5993bbe8de9..069bac92a64 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, family, annotationSet, families, endpointName, params=NULL, ...) { +setMethod("familyClient", "OpencgaR", function(OpencgaR, family, members, families, annotationSet, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/families/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/File-methods.R b/opencga-client/src/main/R/R/File-methods.R index 0ef0d2c83d8..1db2de2c791 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) { +setMethod("fileClient", "OpencgaR", function(OpencgaR, members, annotationSet, file, files, folder, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/files/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/GA4GH-methods.R b/opencga-client/src/main/R/R/GA4GH-methods.R index 534e75260ad..3d4b5de60c2 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-08-30 +# Autogenerated on: 2023-08-31 # # 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 019acd410c2..348b34679a1 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-08-30 +# Autogenerated on: 2023-08-31 # # 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/Job-methods.R b/opencga-client/src/main/R/R/Job-methods.R index f85fe4840f7..59955bac486 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-08-30 +# Autogenerated on: 2023-08-31 # # 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. @@ -40,7 +40,7 @@ #' [*]: Required parameter #' @export -setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) { +setMethod("jobClient", "OpencgaR", function(OpencgaR, job, members, jobs, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/jobs/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Meta-methods.R b/opencga-client/src/main/R/R/Meta-methods.R index d4de1c866b8..386dc6d24da 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-08-30 +# Autogenerated on: 2023-08-31 # # 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 902a0403f47..f143297e89e 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-08-30 +# Autogenerated on: 2023-08-31 # # 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 e7d661d3a2c..1a7bf7bdbca 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-08-30 +# Autogenerated on: 2023-08-31 # # 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/Project-methods.R b/opencga-client/src/main/R/R/Project-methods.R index b4ab8a5b98e..3e68f49bfe5 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-08-30 +# Autogenerated on: 2023-08-31 # # 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. @@ -34,7 +34,7 @@ #' [*]: Required parameter #' @export -setMethod("projectClient", "OpencgaR", function(OpencgaR, projects, project, endpointName, params=NULL, ...) { +setMethod("projectClient", "OpencgaR", function(OpencgaR, project, projects, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/projects/create: diff --git a/opencga-client/src/main/R/R/Sample-methods.R b/opencga-client/src/main/R/R/Sample-methods.R index 89b2d7b5876..a78d57987f3 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-08-30 +# Autogenerated on: 2023-08-31 # # 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: diff --git a/opencga-client/src/main/R/R/Study-methods.R b/opencga-client/src/main/R/R/Study-methods.R index 754fa677dea..682812a7583 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, variableSet, studies, group, study, templateId, endpointName, params=NULL, ...) { +setMethod("studyClient", "OpencgaR", function(OpencgaR, members, variableSet, studies, study, templateId, group, 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 7fb54a32ff1..71089917286 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-08-30 +# Autogenerated on: 2023-08-31 # # 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, user, filterId, users, endpointName, params=NULL, ...) { +setMethod("userClient", "OpencgaR", function(OpencgaR, filterId, users, user, 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 0b7a706cb8f..1925f53cf1d 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-08-30 +# Autogenerated on: 2023-08-31 # # 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 2a375bb7b83..71bae1378cd 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 @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/AlignmentClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java index 08257cc1a1a..e902d0d6454 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-08-30 +* Autogenerated on: 2023-08-31 * * 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/ClinicalAnalysisClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java index 32ab712003e..012238a332a 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-08-30 +* Autogenerated on: 2023-08-31 * * 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/CohortClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java index 547601b9329..024ddc75a4c 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-08-30 +* Autogenerated on: 2023-08-31 * * 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/DiseasePanelClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java index ad5ea1a7047..ba7055998a1 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java @@ -35,7 +35,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/FamilyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java index d113cbdaf09..9b7142415e4 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/FileClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java index 72be6ed305b..c40f63da5d7 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java @@ -43,7 +43,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/GA4GHClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java index fbb84f972a4..a4afee831af 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java @@ -27,7 +27,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/IndividualClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java index 5803d125e54..2b291285857 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/JobClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java index 27245d4011c..35e20d6ea8d 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java @@ -37,7 +37,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/MetaClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java index c2c015b670d..2a4c2afb9b8 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java @@ -28,7 +28,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/ProjectClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java index 47aeec33622..b1dd2d4757b 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java @@ -32,7 +32,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/SampleClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java index d2dd71bc2f3..31b281cccd2 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/StudyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java index 53502e91c7e..6e4fb4a9495 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java @@ -45,7 +45,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/UserClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java index eda89cb9228..3443565c6a3 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/VariantClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java index 0d25391978a..fe1f4de3e99 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java @@ -62,7 +62,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/VariantOperationClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java index ae6bef9d18d..e2b9052903e 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java @@ -50,7 +50,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-08-31 * * 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/javascript/Admin.js b/opencga-client/src/main/javascript/Admin.js index 26d6d454012..60a9d5b1c9e 100644 --- a/opencga-client/src/main/javascript/Admin.js +++ b/opencga-client/src/main/javascript/Admin.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Alignment.js b/opencga-client/src/main/javascript/Alignment.js index 33aa92db017..10a7da5bad2 100644 --- a/opencga-client/src/main/javascript/Alignment.js +++ b/opencga-client/src/main/javascript/Alignment.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/ClinicalAnalysis.js b/opencga-client/src/main/javascript/ClinicalAnalysis.js index 4434d811346..687447b8005 100644 --- a/opencga-client/src/main/javascript/ClinicalAnalysis.js +++ b/opencga-client/src/main/javascript/ClinicalAnalysis.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Cohort.js b/opencga-client/src/main/javascript/Cohort.js index cb53c5278a3..f121ff941f5 100644 --- a/opencga-client/src/main/javascript/Cohort.js +++ b/opencga-client/src/main/javascript/Cohort.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/DiseasePanel.js b/opencga-client/src/main/javascript/DiseasePanel.js index a4bc253c0bd..1216496f705 100644 --- a/opencga-client/src/main/javascript/DiseasePanel.js +++ b/opencga-client/src/main/javascript/DiseasePanel.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Family.js b/opencga-client/src/main/javascript/Family.js index e971b3b2e81..ea150256018 100644 --- a/opencga-client/src/main/javascript/Family.js +++ b/opencga-client/src/main/javascript/Family.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/File.js b/opencga-client/src/main/javascript/File.js index b3219c4f08a..80d2eac1817 100644 --- a/opencga-client/src/main/javascript/File.js +++ b/opencga-client/src/main/javascript/File.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/GA4GH.js b/opencga-client/src/main/javascript/GA4GH.js index ec01beb21de..41810680d69 100644 --- a/opencga-client/src/main/javascript/GA4GH.js +++ b/opencga-client/src/main/javascript/GA4GH.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Individual.js b/opencga-client/src/main/javascript/Individual.js index 71eb45dbafd..c611dbc3d20 100644 --- a/opencga-client/src/main/javascript/Individual.js +++ b/opencga-client/src/main/javascript/Individual.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Job.js b/opencga-client/src/main/javascript/Job.js index 1e1cc91bc52..e751db7fb46 100644 --- a/opencga-client/src/main/javascript/Job.js +++ b/opencga-client/src/main/javascript/Job.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Meta.js b/opencga-client/src/main/javascript/Meta.js index 24dfe87c63d..f49c2c01b37 100644 --- a/opencga-client/src/main/javascript/Meta.js +++ b/opencga-client/src/main/javascript/Meta.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Project.js b/opencga-client/src/main/javascript/Project.js index e240c25cb46..0e5880626c3 100644 --- a/opencga-client/src/main/javascript/Project.js +++ b/opencga-client/src/main/javascript/Project.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Sample.js b/opencga-client/src/main/javascript/Sample.js index 03c6a5b8d8f..21a7247620e 100644 --- a/opencga-client/src/main/javascript/Sample.js +++ b/opencga-client/src/main/javascript/Sample.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Study.js b/opencga-client/src/main/javascript/Study.js index e99e8c7606b..c9e4deb0aac 100644 --- a/opencga-client/src/main/javascript/Study.js +++ b/opencga-client/src/main/javascript/Study.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/User.js b/opencga-client/src/main/javascript/User.js index bfed2a7bfec..904b617010a 100644 --- a/opencga-client/src/main/javascript/User.js +++ b/opencga-client/src/main/javascript/User.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/Variant.js b/opencga-client/src/main/javascript/Variant.js index ae9365d5448..3430052c798 100644 --- a/opencga-client/src/main/javascript/Variant.js +++ b/opencga-client/src/main/javascript/Variant.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/javascript/VariantOperation.js b/opencga-client/src/main/javascript/VariantOperation.js index f9837f69e25..5582f9cfd53 100644 --- a/opencga-client/src/main/javascript/VariantOperation.js +++ b/opencga-client/src/main/javascript/VariantOperation.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-08-31 * * 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/python/pyopencga/rest_clients/admin_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py index e982694d126..98954f3e971 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/alignment_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py index b94f350449a..7a9da2b0a02 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/clinical_analysis_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py index ca4e1438978..7c5b60dc1a3 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/cohort_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py index fef4cafa48d..0a3b30eab24 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/disease_panel_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py index 8382900c307..e5176a346f7 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/family_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py index 0637f728a08..198bccd8143 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/file_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py index 816cdf83c0b..8ef5f6a3cee 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/ga4gh_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py index 6f62ec62786..4ed3b96720b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/individual_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py index 3982f010208..34ec70ec784 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/job_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py index 313cf0df796..d12fbfa375a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/meta_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py index 189a5ab62ea..c334170020b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/project_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py index 0784b20594c..f9c91a6177f 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/sample_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py index 258189685ef..d9afbca66d7 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/study_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py index 3726c1e0a3a..5698145ea79 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/user_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py index 80ac433566b..36018f0560f 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/variant_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py index 32dfa804648..c6143f58c4d 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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/python/pyopencga/rest_clients/variant_operation_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py index 4070484d219..10e74c335a6 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-08-31 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. From 48889d0218db3d0c3779fa15ee956e4d72d2e350 Mon Sep 17 00:00:00 2001 From: pfurio Date: Fri, 1 Sep 2023 10:43:15 +0200 Subject: [PATCH 64/70] app: generate cli automatically, #TASK-4248 --- .../app/cli/main/OpenCgaCompleter.java | 2 +- .../app/cli/main/OpencgaCliOptionsParser.java | 2 +- .../AnalysisClinicalCommandOptions.java | 16 ++-- .../main/options/CohortsCommandOptions.java | 10 +-- .../options/DiseasePanelsCommandOptions.java | 32 ++++---- .../main/options/FamiliesCommandOptions.java | 16 ++-- .../cli/main/options/FilesCommandOptions.java | 20 ++--- .../options/IndividualsCommandOptions.java | 28 +++---- .../cli/main/options/JobsCommandOptions.java | 8 +- .../main/options/SamplesCommandOptions.java | 8 +- opencga-client/src/main/R/R/Admin-methods.R | 2 +- .../src/main/R/R/Alignment-methods.R | 2 +- opencga-client/src/main/R/R/AllGenerics.R | 20 ++--- .../src/main/R/R/Clinical-methods.R | 20 ++--- opencga-client/src/main/R/R/Cohort-methods.R | 14 ++-- opencga-client/src/main/R/R/Family-methods.R | 20 ++--- opencga-client/src/main/R/R/File-methods.R | 24 +++--- opencga-client/src/main/R/R/GA4GH-methods.R | 4 +- .../src/main/R/R/Individual-methods.R | 32 ++++---- opencga-client/src/main/R/R/Job-methods.R | 14 ++-- opencga-client/src/main/R/R/Meta-methods.R | 2 +- .../src/main/R/R/Operation-methods.R | 2 +- opencga-client/src/main/R/R/Panel-methods.R | 34 ++++----- opencga-client/src/main/R/R/Project-methods.R | 2 +- opencga-client/src/main/R/R/Sample-methods.R | 12 +-- opencga-client/src/main/R/R/Study-methods.R | 4 +- opencga-client/src/main/R/R/User-methods.R | 4 +- opencga-client/src/main/R/R/Variant-methods.R | 2 +- .../client/rest/clients/AdminClient.java | 2 +- .../client/rest/clients/AlignmentClient.java | 2 +- .../rest/clients/ClinicalAnalysisClient.java | 26 ++++--- .../client/rest/clients/CohortClient.java | 17 +++-- .../rest/clients/DiseasePanelClient.java | 54 ++++++++----- .../client/rest/clients/FamilyClient.java | 26 ++++--- .../client/rest/clients/FileClient.java | 32 +++++--- .../client/rest/clients/GA4GHClient.java | 2 +- .../client/rest/clients/IndividualClient.java | 44 +++++++---- .../client/rest/clients/JobClient.java | 17 +++-- .../client/rest/clients/MetaClient.java | 2 +- .../client/rest/clients/ProjectClient.java | 2 +- .../client/rest/clients/SampleClient.java | 14 ++-- .../client/rest/clients/StudyClient.java | 2 +- .../client/rest/clients/UserClient.java | 2 +- .../client/rest/clients/VariantClient.java | 2 +- .../rest/clients/VariantOperationClient.java | 2 +- opencga-client/src/main/javascript/Admin.js | 2 +- .../src/main/javascript/Alignment.js | 2 +- .../src/main/javascript/ClinicalAnalysis.js | 26 ++++--- opencga-client/src/main/javascript/Cohort.js | 17 +++-- .../src/main/javascript/DiseasePanel.js | 54 ++++++++----- opencga-client/src/main/javascript/Family.js | 26 ++++--- opencga-client/src/main/javascript/File.js | 32 +++++--- opencga-client/src/main/javascript/GA4GH.js | 2 +- .../src/main/javascript/Individual.js | 44 +++++++---- opencga-client/src/main/javascript/Job.js | 17 +++-- opencga-client/src/main/javascript/Meta.js | 2 +- opencga-client/src/main/javascript/Project.js | 2 +- opencga-client/src/main/javascript/Sample.js | 14 ++-- opencga-client/src/main/javascript/Study.js | 2 +- opencga-client/src/main/javascript/User.js | 2 +- opencga-client/src/main/javascript/Variant.js | 2 +- .../src/main/javascript/VariantOperation.js | 2 +- .../pyopencga/rest_clients/admin_client.py | 2 +- .../rest_clients/alignment_client.py | 2 +- .../rest_clients/clinical_analysis_client.py | 38 +++++++--- .../pyopencga/rest_clients/cohort_client.py | 21 +++-- .../rest_clients/disease_panel_client.py | 76 +++++++++++++++---- .../pyopencga/rest_clients/family_client.py | 28 ++++++- .../pyopencga/rest_clients/file_client.py | 48 +++++++++--- .../pyopencga/rest_clients/ga4gh_client.py | 2 +- .../rest_clients/individual_client.py | 60 ++++++++++++--- .../pyopencga/rest_clients/job_client.py | 23 +++++- .../pyopencga/rest_clients/meta_client.py | 2 +- .../pyopencga/rest_clients/project_client.py | 2 +- .../pyopencga/rest_clients/sample_client.py | 14 +++- .../pyopencga/rest_clients/study_client.py | 2 +- .../pyopencga/rest_clients/user_client.py | 2 +- .../pyopencga/rest_clients/variant_client.py | 2 +- .../rest_clients/variant_operation_client.py | 2 +- .../opencga/core/api/ParamConstants.java | 14 ++-- 80 files changed, 765 insertions(+), 427 deletions(-) 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 6627d4d82f1..07cb922d522 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-08-30 OpenCB +* Copyright 2015-2023-09-01 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 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 b619c612c32..4e3e7ed1c1f 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-08-30 OpenCB +* Copyright 2015-2023-09-01 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 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/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/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-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R index 5d46536451d..da576e61ed5 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-08-30 +# Autogenerated on: 2023-09-01 # # 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/Alignment-methods.R b/opencga-client/src/main/R/R/Alignment-methods.R index 206b0aa2646..e8d0ded651f 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 8e9baedd284..64aa34c799c 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, user, filterId, users, endpointName, params=NULL, ...) +setGeneric("userClient", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...) standardGeneric("userClient")) # ############################################################################## @@ -10,37 +10,37 @@ setGeneric("projectClient", function(OpencgaR, projects, project, endpointName, # ############################################################################## ## StudyClient -setGeneric("studyClient", function(OpencgaR, members, variableSet, studies, group, study, templateId, endpointName, params=NULL, ...) +setGeneric("studyClient", function(OpencgaR, variableSet, studies, members, group, study, templateId, endpointName, params=NULL, ...) standardGeneric("studyClient")) # ############################################################################## ## FileClient -setGeneric("fileClient", function(OpencgaR, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) +setGeneric("fileClient", function(OpencgaR, members, folder, annotationSet, files, file, endpointName, params=NULL, ...) standardGeneric("fileClient")) # ############################################################################## ## JobClient -setGeneric("jobClient", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) +setGeneric("jobClient", function(OpencgaR, job, members, jobs, endpointName, params=NULL, ...) standardGeneric("jobClient")) # ############################################################################## ## SampleClient -setGeneric("sampleClient", function(OpencgaR, members, sample, samples, annotationSet, endpointName, params=NULL, ...) +setGeneric("sampleClient", function(OpencgaR, annotationSet, sample, samples, members, endpointName, params=NULL, ...) standardGeneric("sampleClient")) # ############################################################################## ## IndividualClient -setGeneric("individualClient", function(OpencgaR, members, individuals, annotationSet, individual, endpointName, params=NULL, ...) +setGeneric("individualClient", function(OpencgaR, individual, individuals, annotationSet, members, endpointName, params=NULL, ...) standardGeneric("individualClient")) # ############################################################################## ## FamilyClient -setGeneric("familyClient", function(OpencgaR, members, family, annotationSet, families, endpointName, params=NULL, ...) +setGeneric("familyClient", function(OpencgaR, families, family, annotationSet, members, endpointName, params=NULL, ...) standardGeneric("familyClient")) # ############################################################################## ## CohortClient -setGeneric("cohortClient", function(OpencgaR, members, annotationSet, cohort, cohorts, endpointName, params=NULL, ...) +setGeneric("cohortClient", function(OpencgaR, annotationSet, cohorts, members, cohort, endpointName, params=NULL, ...) standardGeneric("cohortClient")) # ############################################################################## @@ -60,7 +60,7 @@ setGeneric("variantClient", function(OpencgaR, endpointName, params=NULL, ...) # ############################################################################## ## ClinicalClient -setGeneric("clinicalClient", function(OpencgaR, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) +setGeneric("clinicalClient", function(OpencgaR, interpretation, members, interpretations, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) standardGeneric("clinicalClient")) # ############################################################################## @@ -75,7 +75,7 @@ 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")) # ############################################################################## diff --git a/opencga-client/src/main/R/R/Clinical-methods.R b/opencga-client/src/main/R/R/Clinical-methods.R index f0652ba64dd..ae64c192aeb 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, interpretations, members, interpretation, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) { +setMethod("clinicalClient", "OpencgaR", function(OpencgaR, interpretation, members, interpretations, clinicalAnalysis, clinicalAnalyses, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/analysis/clinical/acl/{members}/update: @@ -94,10 +94,10 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, interpretations, memb #' @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, interpretations, memb #' @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, interpretations, memb #' @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, interpretations, memb #' @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 2bcb87bbbbc..3dbf84870e5 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, annotationSet, cohort, cohorts, endpointName, params=NULL, ...) { +setMethod("cohortClient", "OpencgaR", function(OpencgaR, annotationSet, cohorts, members, cohort, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/cohorts/acl/{members}/update: @@ -97,8 +97,8 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, annotationSet, #' @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, annotationSet, #' @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, annotationSet, #' @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 5993bbe8de9..c5d4cbc0485 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, family, annotationSet, families, endpointName, params=NULL, ...) { +setMethod("familyClient", "OpencgaR", function(OpencgaR, families, family, annotationSet, members, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/families/acl/{members}/update: @@ -98,14 +98,14 @@ setMethod("familyClient", "OpencgaR", function(OpencgaR, members, family, annota #' @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, family, 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 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 0ef0d2c83d8..3145654d92d 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, files, members, file, annotationSet, folder, endpointName, params=NULL, ...) { +setMethod("fileClient", "OpencgaR", function(OpencgaR, members, folder, annotationSet, files, file, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/files/acl/{members}/update: @@ -122,11 +122,11 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, files, members, file, ann #' @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, files, members, file, ann #' @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, files, members, file, ann #' @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, files, members, file, ann #' @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 534e75260ad..7ec25d1cb31 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 019acd410c2..fa208ff5bf2 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, individuals, annotationSet, individual, endpointName, params=NULL, ...) { +setMethod("individualClient", "OpencgaR", function(OpencgaR, individual, individuals, annotationSet, members, 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 f85fe4840f7..00c06ed1483 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-08-30 +# Autogenerated on: 2023-09-01 # # 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. @@ -40,7 +40,7 @@ #' [*]: Required parameter #' @export -setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpointName, params=NULL, ...) { +setMethod("jobClient", "OpencgaR", function(OpencgaR, job, members, jobs, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/jobs/acl/{members}/update: @@ -87,9 +87,9 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, 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, job, jobs, 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, job, jobs, 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 d4de1c866b8..360a9dacb50 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 902a0403f47..f95d93bc801 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 e7d661d3a2c..fe01d294f0b 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 b4ab8a5b98e..d9cb522a4e2 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 89b2d7b5876..8a8d00d9796 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, annotationSet, sample, samples, members, 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 754fa677dea..84227b71b68 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, variableSet, studies, group, study, templateId, endpointName, params=NULL, ...) { +setMethod("studyClient", "OpencgaR", function(OpencgaR, variableSet, studies, members, group, study, 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 7fb54a32ff1..51b6157fe7a 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-08-30 +# Autogenerated on: 2023-09-01 # # 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, user, filterId, users, endpointName, params=NULL, ...) { +setMethod("userClient", "OpencgaR", function(OpencgaR, filterId, users, user, 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 0b7a706cb8f..6d17848726b 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-08-30 +# Autogenerated on: 2023-09-01 # # 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 2a375bb7b83..df137812b2f 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 @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/AlignmentClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java index 08257cc1a1a..759e68f1b90 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-08-30 +* Autogenerated on: 2023-09-01 * * 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/ClinicalAnalysisClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java index 32ab712003e..22eeeca0ccd 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-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -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 547601b9329..4afa30f7993 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-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -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 distinct(String field, ObjectMap params) throws Clie * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * internalStatus: Filter by internal status. * status: Filter by status. - * phenotypes: Comma separated list of phenotype ids or names. + * 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. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: @@ -210,8 +213,10 @@ public RestResponse generate(CohortGenerateParams data, ObjectMap params * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * 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. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java index ad5ea1a7047..ec146dbae49 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java @@ -35,7 +35,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -93,17 +93,27 @@ public RestResponse create(PanelCreateParams data, ObjectMap params) thro * @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 panel IDs up to a maximum of 100. + * 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. * uuid: Comma separated list of panel UUIDs up to a maximum of 100. - * name: Comma separated list of panel names up to a maximum of 100. + * 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. * internalStatus: Filter by internal status. - * disorders: Comma separated list of disorder ids or names. - * variants: Comma separated list of variant ids. - * genes: Comma separated list of gene ids. + * 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. + * 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. + * 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. * source: Comma separated list of source ids or names. - * regions: Comma separated list of regions. - * categories: Comma separated list of category names. - * tags: Panel tags. + * 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. + * 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. + * 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. * deleted: Boolean to retrieve deleted entries. * status: Filter by status. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. @@ -149,17 +159,27 @@ public RestResponse importPanels(PanelImportParams data, 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 panel IDs up to a maximum of 100. + * 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. * uuid: Comma separated list of panel UUIDs up to a maximum of 100. - * name: Comma separated list of panel names up to a maximum of 100. + * 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. * internalStatus: Filter by internal status. - * disorders: Comma separated list of disorder ids or names. - * variants: Comma separated list of variant ids. - * genes: Comma separated list of gene ids. + * 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. + * 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. + * 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. * source: Comma separated list of source ids or names. - * regions: Comma separated list of regions. - * categories: Comma separated list of category names. - * tags: Panel tags. + * 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. + * 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. + * 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. * deleted: Boolean to retrieve deleted entries. * status: Filter by status. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java index d113cbdaf09..cbd554fe8d4 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -145,14 +145,18 @@ public RestResponse create(FamilyCreateParams 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 family IDs up to a maximum of 100. - * name: Comma separated list family names up to a maximum of 100. + * 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. + * 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. * uuid: Comma separated list family UUIDs up to a maximum of 100. * members: Comma separated list of family members. * expectedSize: Expected size of the family (number of members). * samples: Comma separated list of member's samples. - * phenotypes: Comma separated list of phenotype ids or names. - * disorders: Comma separated list of disorder ids or names. + * 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. + * 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. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * deleted: Boolean to retrieve deleted entries. @@ -184,14 +188,18 @@ public RestResponse distinct(String field, ObjectMap params) throws Clie * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list family IDs up to a maximum of 100. - * name: Comma separated list family names up to a maximum of 100. + * 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. + * 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. * uuid: Comma separated list family UUIDs up to a maximum of 100. * members: Comma separated list of family members. * expectedSize: Expected size of the family (number of members). * samples: Comma separated list of member's samples. - * phenotypes: Comma separated list of phenotype ids or names. - * disorders: Comma separated list of disorder ids or names. + * 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. + * 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. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * deleted: Boolean to retrieve deleted entries. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java index 72be6ed305b..fc31ad2bec2 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java @@ -43,7 +43,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -164,11 +164,15 @@ public RestResponse create(FileCreateParams data, ObjectMap params) throws * @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 file IDs up to a maximum of 100. + * 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. * uuid: Comma separated list file UUIDs up to a maximum of 100. - * name: Comma separated list of file names. - * path: Comma separated list of paths. - * uri: Comma separated list of uris. + * 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. + * 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. + * 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. * type: File type, either FILE or DIRECTORY. * bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. * format: Comma separated Format values. For existing Formats see files/formats. @@ -181,7 +185,8 @@ public RestResponse create(FileCreateParams data, ObjectMap params) throws * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * description: Description. - * tags: Tags. + * 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. * size: File size. * sampleIds: Comma separated list sample IDs or UUIDs up to a maximum of 100. * jobId: Job ID that created the file(s) or folder(s). @@ -290,11 +295,15 @@ public RestResponse runPostlink(PostLinkToolParams data, ObjectMap params) * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Boolean indicating to flatten the annotations. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of file IDs up to a maximum of 100. + * 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. * uuid: Comma separated list file UUIDs up to a maximum of 100. - * name: Comma separated list of file names. - * path: Comma separated list of paths. - * uri: Comma separated list of uris. + * 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. + * 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. + * 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. * type: File type, either FILE or DIRECTORY. * bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. * format: Comma separated Format values. For existing Formats see files/formats. @@ -307,7 +316,8 @@ public RestResponse runPostlink(PostLinkToolParams data, ObjectMap params) * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * description: Description. - * tags: Tags. + * 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. * size: File size. * sampleIds: Comma separated list sample IDs or UUIDs up to a maximum of 100. * jobId: Job ID that created the file(s) or folder(s). diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java index fbb84f972a4..b0afdac763a 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java @@ -27,7 +27,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/IndividualClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java index 5803d125e54..27a9af45ed5 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -153,20 +153,27 @@ public RestResponse create(IndividualCreateParams data, ObjectMap pa * @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 individual IDs up to a maximum of 100. + * 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. * uuid: Comma separated list individual UUIDs up to a maximum of 100. - * name: Comma separated list individual names up to a maximum of 100. + * 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. * familyIds: Comma separated list of family ids the individuals may belong to. * father: Father ID, name or UUID. * mother: Mother ID, name or UUID. * samples: Sample ID, name or UUID. * sex: Individual sex. - * ethnicity: Individual ethnicity. + * 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. * dateOfBirth: Individual date of birth. - * disorders: Comma separated list of disorder ids or names. - * phenotypes: Comma separated list of phenotype ids or names. - * populationName: Population name. - * populationSubpopulation: Subpopulation name. + * 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. + * 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. + * 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. + * 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. * karyotypicSex: Individual karyotypic sex. * lifeStatus: Individual life status. * internalStatus: Filter by internal status. @@ -200,20 +207,27 @@ public RestResponse distinct(String field, ObjectMap params) throws Clie * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list individual IDs up to a maximum of 100. + * 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. * uuid: Comma separated list individual UUIDs up to a maximum of 100. - * name: Comma separated list individual names up to a maximum of 100. + * 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. * father: Father ID, name or UUID. * mother: Mother ID, name or UUID. * samples: Sample ID, name or UUID. * familyIds: Comma separated list of family ids the individuals may belong to. * sex: Individual sex. * dateOfBirth: Individual date of birth. - * ethnicity: Individual ethnicity. - * disorders: Comma separated list of disorder ids or names. - * phenotypes: Comma separated list of phenotype ids or names. - * populationName: Population name. - * populationSubpopulation: Subpopulation name. + * 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. + * 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. + * 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. + * 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. + * 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. * karyotypicSex: Individual karyotypic sex. * lifeStatus: Individual life status. * internalStatus: Filter by internal status. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java index 27245d4011c..f880ed1d600 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java @@ -37,7 +37,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -120,9 +120,11 @@ public RestResponse create(JobCreateParams data, ObjectMap params) throws C * @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. * otherStudies: Flag indicating the entries being queried can belong to any related study, not just the primary one. - * id: Comma separated list of job IDs up to a maximum of 100. + * 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. * uuid: Comma separated list of job UUIDs up to a maximum of 100. - * toolId: Tool ID executed by the job. + * 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. * toolType: Tool type executed by the job [OPERATION, ANALYSIS]. * userId: User that created the job. * priority: Priority of the job. @@ -176,9 +178,11 @@ public RestResponse retry(JobRetryParams data, ObjectMap params) throws Cli * 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. * otherStudies: Flag indicating the entries being queried can belong to any related study, not just the primary one. - * id: Comma separated list of job IDs up to a maximum of 100. + * 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. * uuid: Comma separated list of job UUIDs up to a maximum of 100. - * toolId: Tool ID executed by the job. + * 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. * toolType: Tool type executed by the job [OPERATION, ANALYSIS]. * userId: User that created the job. * priority: Priority of the job. @@ -211,7 +215,8 @@ public RestResponse search(ObjectMap params) throws ClientException { * internalStatus: Filter by internal status. * priority: Priority of the job. * userId: User that created the job. - * toolId: Tool ID executed by the job. + * 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. * @return a RestResponse object. * @throws ClientException ClientException if there is any server error. */ diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java index c2c015b670d..15ca508dc41 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java @@ -28,7 +28,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/ProjectClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java index 47aeec33622..fb3f13b0077 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java @@ -32,7 +32,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/SampleClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java index d2dd71bc2f3..5399ebea102 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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. @@ -145,7 +145,8 @@ public RestResponse create(SampleCreateParams 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 sample IDs up to a maximum of 100. + * 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. * uuid: Comma separated list sample UUIDs up to a maximum of 100. * somatic: Somatic sample. * individualId: Individual ID or UUID. @@ -162,7 +163,8 @@ public RestResponse create(SampleCreateParams data, ObjectMap params) th * collectionFrom: Collection from. * collectionType: Collection type. * collectionMethod: Collection method. - * phenotypes: Comma separated list of phenotype ids or names. + * 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. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: @@ -221,7 +223,8 @@ public RestResponse load(String file, ObjectMap params) throws ClientExc * includeIndividual: Include Individual object as an attribute. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list sample IDs up to a maximum of 100. + * 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. * uuid: Comma separated list sample UUIDs up to a maximum of 100. * somatic: Somatic sample. * individualId: Individual ID or UUID. @@ -238,7 +241,8 @@ public RestResponse load(String file, ObjectMap params) throws ClientExc * collectionFrom: Collection from. * collectionType: Collection type. * collectionMethod: Collection method. - * phenotypes: Comma separated list of phenotype ids or names. + * 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. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java index 53502e91c7e..f5cc56d0d9c 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java @@ -45,7 +45,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/UserClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java index eda89cb9228..e6c291036f5 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/VariantClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java index 0d25391978a..0e88f0a112c 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java @@ -62,7 +62,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/VariantOperationClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java index ae6bef9d18d..e0e2f076484 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java @@ -50,7 +50,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-08-30 +* Autogenerated on: 2023-09-01 * * 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/javascript/Admin.js b/opencga-client/src/main/javascript/Admin.js index 26d6d454012..d372e15a01c 100644 --- a/opencga-client/src/main/javascript/Admin.js +++ b/opencga-client/src/main/javascript/Admin.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/Alignment.js b/opencga-client/src/main/javascript/Alignment.js index 33aa92db017..7a1e4809128 100644 --- a/opencga-client/src/main/javascript/Alignment.js +++ b/opencga-client/src/main/javascript/Alignment.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/ClinicalAnalysis.js b/opencga-client/src/main/javascript/ClinicalAnalysis.js index 4434d811346..1054e70f292 100644 --- a/opencga-client/src/main/javascript/ClinicalAnalysis.js +++ b/opencga-client/src/main/javascript/ClinicalAnalysis.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -76,10 +76,12 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * @param {String} [params.type] - Clinical Analysis type. - * @param {String} [params.disorder] - Clinical Analysis disorder. + * @param {String} [params.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 {String} [params.files] - Clinical Analysis files. * @param {String} [params.sample] - Sample associated to the proband or any member of a family. * @param {String} [params.individual] - Proband or any member of a family. @@ -112,11 +114,13 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of Interpretation UUIDs up to a maximum of 100. * @param {String} [params.clinicalAnalysisId] - Clinical Analysis id. * @param {String} [params.analystId] - Analyst ID. - * @param {String} [params.methodName] - Interpretation method name. + * @param {String} [params.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 {String} [params.panels] - Interpretation panels. * @param {String} [params.primaryFindings] - Interpretation primary findings. * @param {String} [params.secondaryFindings] - Interpretation secondary findings. @@ -140,11 +144,13 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {Number} [params.skip] - Number of results to skip. * @param {Boolean} [params.sort] - Sort the results. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of Interpretation UUIDs up to a maximum of 100. * @param {String} [params.clinicalAnalysisId] - Clinical Analysis id. * @param {String} [params.analystId] - Analyst ID. - * @param {String} [params.methodName] - Interpretation method name. + * @param {String} [params.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 {String} [params.panels] - Interpretation panels. * @param {String} [params.primaryFindings] - Interpretation primary findings. * @param {String} [params.secondaryFindings] - Interpretation secondary findings. @@ -513,10 +519,12 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {Boolean} [params.count = "false"] - Get the total number of results matching the query. Deactivated by default. The default * value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * @param {String} [params.type] - Clinical Analysis type. - * @param {String} [params.disorder] - Clinical Analysis disorder. + * @param {String} [params.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 {String} [params.files] - Clinical Analysis files. * @param {String} [params.sample] - Sample associated to the proband or any member of a family. * @param {String} [params.individual] - Proband or any member of a family. diff --git a/opencga-client/src/main/javascript/Cohort.js b/opencga-client/src/main/javascript/Cohort.js index cb53c5278a3..11d9d5906f6 100644 --- a/opencga-client/src/main/javascript/Cohort.js +++ b/opencga-client/src/main/javascript/Cohort.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -101,8 +101,10 @@ export default class Cohort extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. + * @param {String} [params.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 {String} [params.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 {String} [params.uuid] - Comma separated list of cohort IDs up to a maximum of 100. * @param {String} [params.type] - Cohort type. * @param {String} [params.creationDate] - creationDate. @@ -135,7 +137,8 @@ export default class Cohort extends OpenCGAParentClass { * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.internalStatus] - Filter by internal status. * @param {String} [params.status] - Filter by status. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.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 {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. @@ -161,8 +164,10 @@ export default class Cohort extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. + * @param {String} [params.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 {String} [params.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 {String} [params.uuid] - Comma separated list of cohort IDs up to a maximum of 100. * @param {String} [params.type] - Cohort type. * @param {String} [params.creationDate] - creationDate. diff --git a/opencga-client/src/main/javascript/DiseasePanel.js b/opencga-client/src/main/javascript/DiseasePanel.js index a4bc253c0bd..1c427e0629f 100644 --- a/opencga-client/src/main/javascript/DiseasePanel.js +++ b/opencga-client/src/main/javascript/DiseasePanel.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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,27 @@ export default class DiseasePanel extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of panel UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. + * @param {String} [params.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 {String} [params.internalStatus] - Filter by internal status. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.variants] - Comma separated list of variant ids. - * @param {String} [params.genes] - Comma separated list of gene ids. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.source] - Comma separated list of source ids or names. - * @param {String} [params.regions] - Comma separated list of regions. - * @param {String} [params.categories] - Comma separated list of category names. - * @param {String} [params.tags] - Panel tags. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. * @param {String} [params.status] - Filter by status. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. @@ -112,17 +122,27 @@ export default class DiseasePanel extends OpenCGAParentClass { * @param {Boolean} [params.count = "false"] - Get the total number of results matching the query. Deactivated by default. The default * value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of panel UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. + * @param {String} [params.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 {String} [params.internalStatus] - Filter by internal status. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.variants] - Comma separated list of variant ids. - * @param {String} [params.genes] - Comma separated list of gene ids. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.source] - Comma separated list of source ids or names. - * @param {String} [params.regions] - Comma separated list of regions. - * @param {String} [params.categories] - Comma separated list of category names. - * @param {String} [params.tags] - Panel tags. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. * @param {String} [params.status] - Filter by status. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. diff --git a/opencga-client/src/main/javascript/Family.js b/opencga-client/src/main/javascript/Family.js index e971b3b2e81..90d31e15443 100644 --- a/opencga-client/src/main/javascript/Family.js +++ b/opencga-client/src/main/javascript/Family.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -104,14 +104,18 @@ export default class Family extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. + * @param {String} [params.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 {String} [params.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 {String} [params.uuid] - Comma separated list family UUIDs up to a maximum of 100. * @param {String} [params.members] - Comma separated list of family members. * @param {Number} [params.expectedSize] - Expected size of the family (number of members). * @param {String} [params.samples] - Comma separated list of member's samples. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. + * @param {String} [params.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 {String} [params.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 {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. @@ -140,14 +144,18 @@ export default class Family extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. + * @param {String} [params.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 {String} [params.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 {String} [params.uuid] - Comma separated list family UUIDs up to a maximum of 100. * @param {String} [params.members] - Comma separated list of family members. * @param {Number} [params.expectedSize] - Expected size of the family (number of members). * @param {String} [params.samples] - Comma separated list of member's samples. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. + * @param {String} [params.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 {String} [params.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 {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. diff --git a/opencga-client/src/main/javascript/File.js b/opencga-client/src/main/javascript/File.js index b3219c4f08a..d5678f46153 100644 --- a/opencga-client/src/main/javascript/File.js +++ b/opencga-client/src/main/javascript/File.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -112,11 +112,15 @@ export default class File extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list file UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of file names. - * @param {String} [params.path] - Comma separated list of paths. - * @param {String} [params.uri] - Comma separated list of uris. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.type] - File type, either FILE or DIRECTORY. * @param {String} [params.bioformat] - Comma separated Bioformat values. For existing Bioformats see files/bioformats. * @param {String} [params.format] - Comma separated Format values. For existing Formats see files/formats. @@ -129,7 +133,8 @@ export default class File extends OpenCGAParentClass { * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.description] - Description. - * @param {String} [params.tags] - Tags. + * @param {String} [params.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 {String} [params.size] - File size. * @param {String} [params.sampleIds] - Comma separated list sample IDs or UUIDs up to a maximum of 100. * @param {String} [params.jobId] - Job ID that created the file(s) or folder(s). @@ -220,11 +225,15 @@ export default class File extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Boolean indicating to flatten the annotations. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list file UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of file names. - * @param {String} [params.path] - Comma separated list of paths. - * @param {String} [params.uri] - Comma separated list of uris. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.type] - File type, either FILE or DIRECTORY. * @param {String} [params.bioformat] - Comma separated Bioformat values. For existing Bioformats see files/bioformats. * @param {String} [params.format] - Comma separated Format values. For existing Formats see files/formats. @@ -237,7 +246,8 @@ export default class File extends OpenCGAParentClass { * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.description] - Description. - * @param {String} [params.tags] - Tags. + * @param {String} [params.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 {String} [params.size] - File size. * @param {String} [params.sampleIds] - Comma separated list sample IDs or UUIDs up to a maximum of 100. * @param {String} [params.jobId] - Job ID that created the file(s) or folder(s). diff --git a/opencga-client/src/main/javascript/GA4GH.js b/opencga-client/src/main/javascript/GA4GH.js index ec01beb21de..52d93be35f7 100644 --- a/opencga-client/src/main/javascript/GA4GH.js +++ b/opencga-client/src/main/javascript/GA4GH.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/Individual.js b/opencga-client/src/main/javascript/Individual.js index 71eb45dbafd..b66f0fc8aee 100644 --- a/opencga-client/src/main/javascript/Individual.js +++ b/opencga-client/src/main/javascript/Individual.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -111,20 +111,27 @@ export default class Individual extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list individual UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. + * @param {String} [params.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 {String} [params.familyIds] - Comma separated list of family ids the individuals may belong to. * @param {String} [params.father] - Father ID, name or UUID. * @param {String} [params.mother] - Mother ID, name or UUID. * @param {String} [params.samples] - Sample ID, name or UUID. * @param {String} [params.sex] - Individual sex. - * @param {String} [params.ethnicity] - Individual ethnicity. + * @param {String} [params.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 {String} [params.dateOfBirth] - Individual date of birth. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.populationName] - Population name. - * @param {String} [params.populationSubpopulation] - Subpopulation name. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.karyotypicSex] - Individual karyotypic sex. * @param {String} [params.lifeStatus] - Individual life status. * @param {String} [params.internalStatus] - Filter by internal status. @@ -155,20 +162,27 @@ export default class Individual extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list individual UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. + * @param {String} [params.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 {String} [params.father] - Father ID, name or UUID. * @param {String} [params.mother] - Mother ID, name or UUID. * @param {String} [params.samples] - Sample ID, name or UUID. * @param {String} [params.familyIds] - Comma separated list of family ids the individuals may belong to. * @param {String} [params.sex] - Individual sex. * @param {String} [params.dateOfBirth] - Individual date of birth. - * @param {String} [params.ethnicity] - Individual ethnicity. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.populationName] - Population name. - * @param {String} [params.populationSubpopulation] - Subpopulation name. + * @param {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.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 {String} [params.karyotypicSex] - Individual karyotypic sex. * @param {String} [params.lifeStatus] - Individual life status. * @param {String} [params.internalStatus] - Filter by internal status. diff --git a/opencga-client/src/main/javascript/Job.js b/opencga-client/src/main/javascript/Job.js index 1e1cc91bc52..8128ce9db7d 100644 --- a/opencga-client/src/main/javascript/Job.js +++ b/opencga-client/src/main/javascript/Job.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -85,9 +85,11 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. * @param {Boolean} [params.otherStudies = "false"] - Flag indicating the entries being queried can belong to any related study, not just * the primary one. The default value is false. - * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of job UUIDs up to a maximum of 100. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.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 {String} [params.toolType] - Tool type executed by the job [OPERATION, ANALYSIS]. * @param {String} [params.userId] - User that created the job. * @param {String} [params.priority] - Priority of the job. @@ -136,9 +138,11 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. * @param {Boolean} [params.otherStudies = "false"] - Flag indicating the entries being queried can belong to any related study, not just * the primary one. The default value is false. - * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list of job UUIDs up to a maximum of 100. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.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 {String} [params.toolType] - Tool type executed by the job [OPERATION, ANALYSIS]. * @param {String} [params.userId] - User that created the job. * @param {String} [params.priority] - Priority of the job. @@ -168,7 +172,8 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.internalStatus] - Filter by internal status. * @param {String} [params.priority] - Priority of the job. * @param {String} [params.userId] - User that created the job. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.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. * @returns {Promise} Promise object in the form of RestResponse instance. */ top(params) { diff --git a/opencga-client/src/main/javascript/Meta.js b/opencga-client/src/main/javascript/Meta.js index 24dfe87c63d..96fcc5b6d68 100644 --- a/opencga-client/src/main/javascript/Meta.js +++ b/opencga-client/src/main/javascript/Meta.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/Project.js b/opencga-client/src/main/javascript/Project.js index e240c25cb46..8c4e02f956e 100644 --- a/opencga-client/src/main/javascript/Project.js +++ b/opencga-client/src/main/javascript/Project.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/Sample.js b/opencga-client/src/main/javascript/Sample.js index 03c6a5b8d8f..74c71a5206f 100644 --- a/opencga-client/src/main/javascript/Sample.js +++ b/opencga-client/src/main/javascript/Sample.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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. @@ -103,7 +103,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list sample UUIDs up to a maximum of 100. * @param {Boolean} [params.somatic] - Somatic sample. * @param {String} [params.individualId] - Individual ID or UUID. @@ -120,7 +121,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} [params.collectionFrom] - Collection from. * @param {String} [params.collectionType] - Collection type. * @param {String} [params.collectionMethod] - Collection method. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.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 {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. @@ -173,7 +175,8 @@ export default class Sample extends OpenCGAParentClass { * @param {Boolean} [params.includeIndividual = "false"] - Include Individual object as an attribute. The default value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. + * @param {String} [params.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 {String} [params.uuid] - Comma separated list sample UUIDs up to a maximum of 100. * @param {Boolean} [params.somatic] - Somatic sample. * @param {String} [params.individualId] - Individual ID or UUID. @@ -190,7 +193,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} [params.collectionFrom] - Collection from. * @param {String} [params.collectionType] - Collection type. * @param {String} [params.collectionMethod] - Collection method. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.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 {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. diff --git a/opencga-client/src/main/javascript/Study.js b/opencga-client/src/main/javascript/Study.js index e99e8c7606b..54186dac4ec 100644 --- a/opencga-client/src/main/javascript/Study.js +++ b/opencga-client/src/main/javascript/Study.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/User.js b/opencga-client/src/main/javascript/User.js index bfed2a7bfec..ac91b91b891 100644 --- a/opencga-client/src/main/javascript/User.js +++ b/opencga-client/src/main/javascript/User.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/Variant.js b/opencga-client/src/main/javascript/Variant.js index ae9365d5448..27eb9763570 100644 --- a/opencga-client/src/main/javascript/Variant.js +++ b/opencga-client/src/main/javascript/Variant.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/javascript/VariantOperation.js b/opencga-client/src/main/javascript/VariantOperation.js index f9837f69e25..192a736a775 100644 --- a/opencga-client/src/main/javascript/VariantOperation.js +++ b/opencga-client/src/main/javascript/VariantOperation.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-08-30 + * Autogenerated on: 2023-09-01 * * 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/python/pyopencga/rest_clients/admin_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py index e982694d126..2a5439b0d00 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/alignment_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py index b94f350449a..012e5296968 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/clinical_analysis_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py index ca4e1438978..6bd79233875 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -86,11 +86,16 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Clinical Analysis IDs up to a - maximum of 100. + 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 str uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. :param str type: Clinical Analysis type. - :param str disorder: Clinical Analysis disorder. + :param str 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 str files: Clinical Analysis files. :param str sample: Sample associated to the proband or any member of a family. @@ -133,12 +138,17 @@ def distinct_interpretation(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Interpretation IDs up to a - maximum of 100. + 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 str uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. :param str clinical_analysis_id: Clinical Analysis id. :param str analyst_id: Analyst ID. - :param str method_name: Interpretation method name. + :param str method_name: 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 str panels: Interpretation panels. :param str primary_findings: Interpretation primary findings. :param str secondary_findings: Interpretation secondary findings. @@ -169,12 +179,17 @@ def search_interpretation(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Interpretation IDs up to a - maximum of 100. + 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 str uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. :param str clinical_analysis_id: Clinical Analysis id. :param str analyst_id: Analyst ID. - :param str method_name: Interpretation method name. + :param str method_name: 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 str panels: Interpretation panels. :param str primary_findings: Interpretation primary findings. :param str secondary_findings: Interpretation secondary findings. @@ -606,11 +621,16 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Clinical Analysis IDs up to a - maximum of 100. + 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 str uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. :param str type: Clinical Analysis type. - :param str disorder: Clinical Analysis disorder. + :param str 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 str files: Clinical Analysis files. :param str sample: Sample associated to the proband or any member of a family. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py index fef4cafa48d..4b1be07e92a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -121,9 +121,13 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of cohort IDs up to a maximum of - 100. + 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 str name: Comma separated list of cohort names up to a maximum - of 100. + 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 str uuid: Comma separated list of cohort IDs up to a maximum of 100. :param str type: Cohort type. @@ -166,6 +170,9 @@ def generate(self, data=None, **options): :param str internal_status: Filter by internal status. :param str status: Filter by status. :param str 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 str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. @@ -200,9 +207,13 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of cohort IDs up to a maximum of - 100. + 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 str name: Comma separated list of cohort names up to a maximum - of 100. + 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 str uuid: Comma separated list of cohort IDs up to a maximum of 100. :param str type: Cohort type. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py index 8382900c307..a6fe0e432a5 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -67,19 +67,42 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of panel IDs up to a maximum of - 100. + 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 str uuid: Comma separated list of panel UUIDs up to a maximum of 100. :param str name: Comma separated list of panel names up to a maximum - of 100. + 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 str internal_status: Filter by internal status. :param str disorders: Comma separated list of disorder ids or names. - :param str variants: Comma separated list of variant ids. - :param str 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.. 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 str 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 str 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 str source: Comma separated list of source ids or names. - :param str regions: Comma separated list of regions. - :param str categories: Comma separated list of category names. - :param str tags: Panel tags. + :param str 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 str 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 str 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 bool deleted: Boolean to retrieve deleted entries. :param str status: Filter by status. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. @@ -133,19 +156,42 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of panel IDs up to a maximum of - 100. + 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 str uuid: Comma separated list of panel UUIDs up to a maximum of 100. :param str name: Comma separated list of panel names up to a maximum - of 100. + 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 str internal_status: Filter by internal status. :param str disorders: Comma separated list of disorder ids or names. - :param str variants: Comma separated list of variant ids. - :param str 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.. 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 str 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 str 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 str source: Comma separated list of source ids or names. - :param str regions: Comma separated list of regions. - :param str categories: Comma separated list of category names. - :param str tags: Panel tags. + :param str 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 str 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 str 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 bool deleted: Boolean to retrieve deleted entries. :param str status: Filter by status. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py index 0637f728a08..1d41d4a8488 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -124,8 +124,13 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str 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 str name: Comma separated list family names up to a maximum of - 100. + 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 str uuid: Comma separated list family UUIDs up to a maximum of 100. :param str members: Comma separated list of family members. @@ -133,7 +138,13 @@ def distinct(self, field, **options): members). :param str samples: Comma separated list of member's samples. :param str 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 str 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 str creation_date: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str modification_date: Modification date. Format: @@ -174,8 +185,13 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str 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 str name: Comma separated list family names up to a maximum of - 100. + 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 str uuid: Comma separated list family UUIDs up to a maximum of 100. :param str members: Comma separated list of family members. @@ -183,7 +199,13 @@ def search(self, **options): members). :param str samples: Comma separated list of member's samples. :param str 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 str 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 str creation_date: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str modification_date: Modification date. Format: diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py index 816cdf83c0b..e3a5a9b8988 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -129,12 +129,23 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of file IDs up to a maximum of - 100. + 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 str uuid: Comma separated list file UUIDs up to a maximum of 100. - :param str name: Comma separated list of file names. - :param str path: Comma separated list of paths. - :param str uri: Comma separated list of uris. + :param str 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 str 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 str 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 str type: File type, either FILE or DIRECTORY. :param str bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. @@ -154,7 +165,9 @@ def distinct(self, field, **options): :param str modification_date: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str description: Description. - :param str tags: Tags. + :param str 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 str size: File size. :param str sample_ids: Comma separated list sample IDs or UUIDs up to a maximum of 100. @@ -269,12 +282,23 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of file IDs up to a maximum of - 100. + 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 str uuid: Comma separated list file UUIDs up to a maximum of 100. - :param str name: Comma separated list of file names. - :param str path: Comma separated list of paths. - :param str uri: Comma separated list of uris. + :param str 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 str 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 str 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 str type: File type, either FILE or DIRECTORY. :param str bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. @@ -294,7 +318,9 @@ def search(self, **options): :param str modification_date: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str description: Description. - :param str tags: Tags. + :param str 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 str size: File size. :param str sample_ids: Comma separated list sample IDs or UUIDs up to a maximum of 100. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py index 6f62ec62786..0b077f4a7c6 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/individual_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py index 3982f010208..e8213458d7b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -132,23 +132,42 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list individual IDs up to a maximum of - 100. + 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 str uuid: Comma separated list individual UUIDs up to a maximum of 100. :param str name: Comma separated list individual names up to a maximum - of 100. + 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 str family_ids: Comma separated list of family ids the individuals may belong to. :param str father: Father ID, name or UUID. :param str mother: Mother ID, name or UUID. :param str samples: Sample ID, name or UUID. :param str sex: Individual sex. - :param str ethnicity: Individual ethnicity. + :param str 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 str date_of_birth: Individual date of birth. :param str 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 str phenotypes: Comma separated list of phenotype ids or names. - :param str population_name: Population name. - :param str population_subpopulation: 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 str population_name: 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 str population_subpopulation: 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 str karyotypic_sex: Individual karyotypic sex. :param str life_status: Individual life status. :param str internal_status: Filter by internal status. @@ -191,11 +210,15 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list individual IDs up to a maximum of - 100. + 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 str uuid: Comma separated list individual UUIDs up to a maximum of 100. :param str name: Comma separated list individual names up to a maximum - of 100. + 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 str father: Father ID, name or UUID. :param str mother: Mother ID, name or UUID. :param str samples: Sample ID, name or UUID. @@ -203,11 +226,26 @@ def search(self, **options): individuals may belong to. :param str sex: Individual sex. :param str date_of_birth: Individual date of birth. - :param str ethnicity: Individual ethnicity. + :param str 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 str 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 str phenotypes: Comma separated list of phenotype ids or names. - :param str population_name: Population name. - :param str population_subpopulation: 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 str population_name: 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 str population_subpopulation: 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 str karyotypic_sex: Individual karyotypic sex. :param str life_status: Individual life status. :param str internal_status: Filter by internal status. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py index 313cf0df796..fd4ac0a9386 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -92,9 +92,15 @@ def distinct(self, field, **options): :param bool other_studies: Flag indicating the entries being queried can belong to any related study, not just the primary one. :param str 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 str uuid: Comma separated list of job UUIDs up to a maximum of 100. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: 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 str tool_type: Tool type executed by the job [OPERATION, ANALYSIS]. :param str user_id: User that created the job. @@ -157,9 +163,15 @@ def search(self, **options): :param bool other_studies: Flag indicating the entries being queried can belong to any related study, not just the primary one. :param str 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 str uuid: Comma separated list of job UUIDs up to a maximum of 100. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: 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 str tool_type: Tool type executed by the job [OPERATION, ANALYSIS]. :param str user_id: User that created the job. @@ -196,7 +208,10 @@ def top(self, **options): :param str internal_status: Filter by internal status. :param str priority: Priority of the job. :param str user_id: User that created the job. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: 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. """ return self._get(category='jobs', resource='top', **options) diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py index 189a5ab62ea..d9f841bb69d 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/project_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py index 0784b20594c..b5eac020645 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/sample_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py index 258189685ef..dbd8d313d8a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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. @@ -122,6 +122,9 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str 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 str uuid: Comma separated list sample UUIDs up to a maximum of 100. :param bool somatic: Somatic sample. @@ -143,6 +146,9 @@ def distinct(self, field, **options): :param str collection_type: Collection type. :param str collection_method: Collection method. :param str 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 str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. @@ -215,6 +221,9 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str 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 str uuid: Comma separated list sample UUIDs up to a maximum of 100. :param bool somatic: Somatic sample. @@ -236,6 +245,9 @@ def search(self, **options): :param str collection_type: Collection type. :param str collection_method: Collection method. :param str 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 str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py index 3726c1e0a3a..82c241c0eb2 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/user_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py index 80ac433566b..e7de326420c 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/variant_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py index 32dfa804648..9e447940a11 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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/python/pyopencga/rest_clients/variant_operation_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py index 4070484d219..87b0d72a7d2 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-08-30 + Autogenerated on: 2023-09-01 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-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java index a34b818924a..10cd2f3cdf2 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java @@ -68,9 +68,9 @@ public class ParamConstants { public static final String DISTINCT_FIELD_PARAM = "field"; public static final String DISTINCT_FIELD_DESCRIPTION = "Comma separated list of fields for which to obtain the distinct values"; public static final String PHENOTYPES_PARAM = "phenotypes"; - public static final String PHENOTYPES_DESCRIPTION = "Comma separated list of phenotype ids or names"; + public static final String PHENOTYPES_DESCRIPTION = "Comma separated list of phenotype ids or names" + REGEX_SUPPORT; public static final String DISORDERS_PARAM = "disorders"; - public static final String DISORDERS_DESCRIPTION = "Comma separated list of disorder ids or names"; + public static final String DISORDERS_DESCRIPTION = "Comma separated list of disorder ids or names" + REGEX_SUPPORT; public static final String BODY_PARAM = "body"; public static final String OVERWRITE = "overwrite"; @@ -320,8 +320,8 @@ public class ParamConstants { public static final String INDIVIDUAL_SEX_DESCRIPTION = "Individual sex"; public static final String INDIVIDUAL_ETHNICITY_DESCRIPTION = "Individual ethnicity" + REGEX_SUPPORT; public static final String INDIVIDUAL_DATE_OF_BIRTH_DESCRIPTION = "Individual date of birth"; - public static final String INDIVIDUAL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; - public static final String INDIVIDUAL_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION + REGEX_SUPPORT; + public static final String INDIVIDUAL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; + public static final String INDIVIDUAL_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION; public static final String INDIVIDUAL_POPULATION_NAME_DESCRIPTION = "Population name" + REGEX_SUPPORT; public static final String INDIVIDUAL_POPULATION_SUBPOPULATION_DESCRIPTION = "Subpopulation name" + REGEX_SUPPORT; public static final String INDIVIDUAL_KARYOTYPIC_SEX_DESCRIPTION = "Individual karyotypic sex"; @@ -360,8 +360,8 @@ public class ParamConstants { public static final String FAMILY_MEMBERS_DESCRIPTION = "Comma separated list of family members"; public static final String FAMILY_SAMPLES_DESCRIPTION = "Comma separated list of member's samples"; public static final String FAMILY_EXPECTED_SIZE_DESCRIPTION = "Expected size of the family (number of members)"; - public static final String FAMILY_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION + REGEX_SUPPORT; - public static final String FAMILY_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; + public static final String FAMILY_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION; + public static final String FAMILY_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; public static final String FAMILY_CREATION_DATE_DESCRIPTION = CREATION_DATE_DESCRIPTION; public static final String FAMILY_MODIFICATION_DATE_DESCRIPTION = MODIFICATION_DATE_DESCRIPTION; public static final String FAMILY_DELETED_DESCRIPTION = DELETED_DESCRIPTION; @@ -1480,7 +1480,7 @@ public class ParamConstants { public static final String FILES_ID_DESCRIPTION = "Comma separated list of file IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String FILES_UUID_DESCRIPTION = "Comma separated list file UUIDs" + UP_TO_100; public static final String SAMPLES_DESCRIPTION = "Comma separated list sample IDs or UUIDs" + UP_TO_100; - public static final String SAMPLES_ID_DESCRIPTION = "Comma separated list sample IDs" + UP_TO_100; + public static final String SAMPLES_ID_DESCRIPTION = "Comma separated list sample IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String SAMPLES_UUID_DESCRIPTION = "Comma separated list sample UUIDs" + UP_TO_100; public static final String INDIVIDUALS_DESCRIPTION = "Comma separated list of individual IDs, names or UUIDs" + UP_TO_100; public static final String INDIVIDUALS_ID_DESCRIPTION = "Comma separated list individual IDs" + UP_TO_100 + REGEX_SUPPORT; From cf6c1f136519b50629146f53bbe242f55c79bc90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Wed, 30 Aug 2023 17:38:03 +0100 Subject: [PATCH 65/70] core: Do not validate empty string tokens. #TASK-4913 --- .../org/opencb/opencga/core/cellbase/CellBaseValidator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 43da58f396a..d1738dedf02 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -194,7 +194,9 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException } } } - if (getToken() != null) { + if (StringUtils.isEmpty(getToken())) { + cellBaseConfiguration.setToken(null); + } else { // Check it's supported if (!supportsToken(serverVersion)) { throw new IllegalArgumentException("Token not supported for cellbase " From b54ca18149aea527546f90261d0d0b96c05159e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Thu, 31 Aug 2023 10:05:31 +0100 Subject: [PATCH 66/70] core: Improve exception message #TASK-4913 --- .../opencga/analysis/variant/manager/VariantStorageManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..cf5164f727a 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 @@ -1225,7 +1225,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()); From ba9e611655319bd6452113578a438a636dfd2009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Coll=20Morag=C3=B3n?= Date: Thu, 31 Aug 2023 11:15:12 +0100 Subject: [PATCH 67/70] core: Fix validation test #TASK-4913 --- .../analysis/variant/manager/VariantStorageManager.java | 8 +++++++- .../opencb/opencga/core/cellbase/CellBaseValidator.java | 5 +++-- .../opencga/core/cellbase/CellBaseValidatorTest.java | 8 ++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) 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 cf5164f727a..48b5cf87114 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<>()); @@ -1237,6 +1241,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-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index d1738dedf02..467dabf7b75 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -194,7 +194,8 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException } } } - if (StringUtils.isEmpty(getToken())) { + String token = getToken(); + if (StringUtils.isEmpty(token)) { cellBaseConfiguration.setToken(null); } else { // Check it's supported @@ -207,7 +208,7 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException // Check it's an actual token DataAccessTokenManager tokenManager = new DataAccessTokenManager(); try { - tokenManager.decode(getToken()); + tokenManager.decode(token); } catch (JwtException e) { throw new IllegalArgumentException("Malformed token for cellbase " + "url: '" + getURL() + "'" diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java index 38d91dd0fc8..36026700237 100644 --- a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java +++ b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java @@ -85,10 +85,18 @@ public void testToken() throws IOException { public void testTokenNotSupported() throws IOException { String token = System.getenv("CELLBASE_HGMD_TOKEN"); Assume.assumeTrue(StringUtils.isNotEmpty(token)); + thrown.expectMessage("Token not supported"); CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, token), "hsapiens", "grch38", true); Assert.assertNotNull(validated.getToken()); } + @Test + public void testTokenEmpty() throws IOException { + String token = ""; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, token), "hsapiens", "grch38", true); + Assert.assertNull(validated.getToken()); + } + @Test public void testMalformedToken() throws IOException { thrown.expectMessage("Malformed token for cellbase"); From 7e29141346bf4153eff9d13c8f4dbe8de947f237 Mon Sep 17 00:00:00 2001 From: JuanfeSanahuja Date: Mon, 4 Sep 2023 12:31:29 +0200 Subject: [PATCH 68/70] Prepare merge --- opencga-analysis/pom.xml | 2 +- opencga-app/pom.xml | 2 +- opencga-catalog/pom.xml | 2 +- opencga-client/pom.xml | 2 +- opencga-clinical/pom.xml | 2 +- opencga-core/pom.xml | 2 +- opencga-master/pom.xml | 2 +- opencga-server/pom.xml | 2 +- opencga-storage/opencga-storage-app/pom.xml | 2 +- opencga-storage/opencga-storage-benchmark/pom.xml | 2 +- opencga-storage/opencga-storage-core/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml | 2 +- .../opencga-storage-hadoop-deps-emr6.1/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp2.6/pom.xml | 2 +- .../opencga-storage-hadoop-deps-hdp3.1/pom.xml | 2 +- .../opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml | 2 +- opencga-storage/opencga-storage-hadoop/pom.xml | 2 +- opencga-storage/opencga-storage-server/pom.xml | 2 +- opencga-storage/pom.xml | 2 +- opencga-test/pom.xml | 2 +- pom.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/opencga-analysis/pom.xml b/opencga-analysis/pom.xml index 260955d38c6..adcb53e2d0e 100644 --- a/opencga-analysis/pom.xml +++ b/opencga-analysis/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-app/pom.xml b/opencga-app/pom.xml index 4d18a6476ca..b787e5d11d2 100644 --- a/opencga-app/pom.xml +++ b/opencga-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-catalog/pom.xml b/opencga-catalog/pom.xml index a0ea06ca14c..fac7d8e548a 100644 --- a/opencga-catalog/pom.xml +++ b/opencga-catalog/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-client/pom.xml b/opencga-client/pom.xml index 191a5319867..22a563296b0 100644 --- a/opencga-client/pom.xml +++ b/opencga-client/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-clinical/pom.xml b/opencga-clinical/pom.xml index a9630add90e..de52a8ef4e1 100644 --- a/opencga-clinical/pom.xml +++ b/opencga-clinical/pom.xml @@ -5,7 +5,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/opencga-core/pom.xml b/opencga-core/pom.xml index 508d50cede8..e2d8fc127e4 100644 --- a/opencga-core/pom.xml +++ b/opencga-core/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-master/pom.xml b/opencga-master/pom.xml index d45f901844c..2d6fd5a8da6 100644 --- a/opencga-master/pom.xml +++ b/opencga-master/pom.xml @@ -22,7 +22,7 @@ opencga org.opencb.opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-server/pom.xml b/opencga-server/pom.xml index 0d66c9f3a74..65cebaebdda 100644 --- a/opencga-server/pom.xml +++ b/opencga-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-app/pom.xml b/opencga-storage/opencga-storage-app/pom.xml index 9d41b4d028d..cafb6d1c2ac 100644 --- a/opencga-storage/opencga-storage-app/pom.xml +++ b/opencga-storage/opencga-storage-app/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-benchmark/pom.xml b/opencga-storage/opencga-storage-benchmark/pom.xml index 89d8c6c9d7e..aa79ec720fd 100644 --- a/opencga-storage/opencga-storage-benchmark/pom.xml +++ b/opencga-storage/opencga-storage-benchmark/pom.xml @@ -22,7 +22,7 @@ opencga-storage org.opencb.opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-core/pom.xml b/opencga-storage/opencga-storage-core/pom.xml index 3b2f329ccb0..b97d0472984 100644 --- a/opencga-storage/opencga-storage-core/pom.xml +++ b/opencga-storage/opencga-storage-core/pom.xml @@ -25,7 +25,7 @@ org.opencb.opencga opencga-storage - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml index bd7a7c7baa4..97db69b63b9 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/pom.xml @@ -23,7 +23,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml index f64c1bc25ba..1c27bd10350 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-emr6.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml index a5852716f29..f1f99b70468 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp2.6/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml index cbbfa9c0e83..03561e6c93d 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/opencga-storage-hadoop-deps-hdp3.1/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage-hadoop-deps - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml index 3dc7eedf5dc..c0e60a63db5 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps/pom.xml @@ -50,7 +50,7 @@ org.opencb.opencga opencga-storage-hadoop - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-hadoop/pom.xml b/opencga-storage/opencga-storage-hadoop/pom.xml index 202510b2e48..1ea5e5a91d1 100644 --- a/opencga-storage/opencga-storage-hadoop/pom.xml +++ b/opencga-storage/opencga-storage-hadoop/pom.xml @@ -28,7 +28,7 @@ org.opencb.opencga opencga-storage - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/opencga-storage-server/pom.xml b/opencga-storage/opencga-storage-server/pom.xml index bbe30f1aa3b..c9a6b5604a3 100644 --- a/opencga-storage/opencga-storage-server/pom.xml +++ b/opencga-storage/opencga-storage-server/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga-storage - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-storage/pom.xml b/opencga-storage/pom.xml index ab93e1a8071..49b680170d0 100644 --- a/opencga-storage/pom.xml +++ b/opencga-storage/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/opencga-test/pom.xml b/opencga-test/pom.xml index 8f13ebd49ab..caa613c03e2 100644 --- a/opencga-test/pom.xml +++ b/opencga-test/pom.xml @@ -24,7 +24,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index a91ad02aa54..6cdcc114b77 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.opencb.opencga opencga - 2.8.3 + 2.11.0-SNAPSHOT pom OpenCGA OenCGA projects implements a big data platform for genomic data analysis From 92558f56ec8f5c243385da948796d374a4875517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Thu, 7 Sep 2023 15:26:26 +0200 Subject: [PATCH 69/70] core: rename token to apiKey in some functions, #TASK-4898, #TASK-4641 --- .../opencb/opencga/core/cellbase/CellBaseValidator.java | 8 ++++---- .../annotators/AbstractCellBaseVariantAnnotator.java | 4 ++-- .../annotators/CellBaseRestVariantAnnotator.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 61f718dd785..edf5e3e50bc 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -198,7 +198,7 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException cellBaseConfiguration.setApiKey(null); } else { // Check it's supported - if (!supportsToken(serverVersion)) { + if (!supportsApiKey(serverVersion)) { throw new IllegalArgumentException("API key not supported for cellbase " + "url: '" + getURL() + "'" + ", version: '" + inputVersion + "'"); @@ -270,8 +270,8 @@ public static boolean supportsDataReleaseActiveByDefaultIn(String serverVersion) return VersionUtils.isMinVersion("5.5.0", serverVersion, true); } - public static boolean supportsToken(String serverVersion) { - // Tokens support starts at version 5.4.0 + public static boolean supportsApiKey(String serverVersion) { + // API keys support starts at version 5.4.0 return VersionUtils.isMinVersion("5.4.0", serverVersion); } @@ -325,7 +325,7 @@ public String toString() { + "species '" + getSpecies() + "', " + "assembly '" + getAssembly() + "', " + "dataRelease '" + getDataRelease() + "', " - + "token '" + getApiKey() + "'"; + + "apiKey '" + getApiKey() + "'"; } } diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java index fc743b13a76..da8d44b05b5 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java @@ -56,7 +56,7 @@ public abstract class AbstractCellBaseVariantAnnotator extends VariantAnnotator protected final String assembly; protected final String cellbaseVersion; protected final String cellbaseDataRelease; - protected final String cellbaseToken; + protected final String cellbaseApiKey; protected final QueryOptions queryOptions; protected final boolean supportImpreciseVariants; protected final boolean supportStarAlternate; @@ -72,7 +72,7 @@ public AbstractCellBaseVariantAnnotator(StorageConfiguration storageConfiguratio assembly = projectMetadata.getAssembly(); cellbaseVersion = storageConfiguration.getCellbase().getVersion(); cellbaseDataRelease = storageConfiguration.getCellbase().getDataRelease(); - cellbaseToken = storageConfiguration.getCellbase().getApiKey(); + cellbaseApiKey = storageConfiguration.getCellbase().getApiKey(); queryOptions = new QueryOptions(); if (StringUtils.isNotEmpty(params.getString(VariantStorageOptions.ANNOTATOR_CELLBASE_INCLUDE.key()))) { diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java index 85ee3b0810c..a589a21e1a4 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java @@ -67,7 +67,7 @@ public CellBaseRestVariantAnnotator(StorageConfiguration storageConfiguration, P VariantStorageOptions.ANNOTATION_TIMEOUT.defaultValue()); clientConfiguration.getRest().setTimeout(timeoutMillis); - cellBaseClient = new CellBaseClient(species, assembly, cellbaseDataRelease, cellbaseToken, clientConfiguration); + cellBaseClient = new CellBaseClient(species, assembly, cellbaseDataRelease, cellbaseApiKey, clientConfiguration); cellBaseUtils = new CellBaseUtils(cellBaseClient); logger.info("Annotating with Cellbase REST. {}", cellBaseUtils); From 9b9ee1c44a9c4ce6e34a3f600d1e4ebc62080ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Fri, 8 Sep 2023 08:29:43 +0200 Subject: [PATCH 70/70] analysis: use the project API key before using the storage API key, #TASK-4898, #TASK-4641 --- .../analysis/variant/manager/VariantStorageManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 e62528b6d28..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 @@ -1021,7 +1021,8 @@ 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.getApiKey()) || storageConfiguration.getCellbase() != null) { + // 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);