diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/operations/VariantFileIndexerOperationManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/operations/VariantFileIndexerOperationManager.java index 48ff94151d7..94bfada60d5 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/operations/VariantFileIndexerOperationManager.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/operations/VariantFileIndexerOperationManager.java @@ -100,6 +100,7 @@ public class VariantFileIndexerOperationManager extends OperationManager { private List filesToIndex; private CatalogStorageMetadataSynchronizer synchronizer; private boolean fullSynchronize = false; + private boolean force; public VariantFileIndexerOperationManager(VariantStorageManager variantStorageManager, VariantStorageEngine engine) { super(variantStorageManager, engine); @@ -138,6 +139,7 @@ private void check(String study, ObjectMap params, String token) throws Exceptio } resume = params.getBoolean(VariantStorageOptions.RESUME.key()); skipIndexedFiles = params.getBoolean(SKIP_INDEXED_FILES); + force = params.getBoolean(VariantStorageOptions.FORCE.key()); // Obtain the type of analysis (transform, load or index) step = getType(load, transform); @@ -589,6 +591,7 @@ private List filterTransformFiles(List fileList, boolean resume) thr break; case VariantIndexStatus.INDEXING: case VariantIndexStatus.TRANSFORMING: + case VariantIndexStatus.LOADING: if (resume) { filteredFiles.add(file); } else { @@ -603,14 +606,17 @@ private List filterTransformFiles(List fileList, boolean resume) thr } break; case VariantIndexStatus.TRANSFORMED: - case VariantIndexStatus.LOADING: case VariantIndexStatus.READY: default: String msg = "We can only " + step + " VCF files not transformed, the status is " + indexStatus; - if (skipIndexedFiles) { - logger.warn(msg); + if (force) { + filteredFiles.add(file); } else { - throw new StorageEngineException(msg); + if (skipIndexedFiles) { + logger.warn(msg); + } else { + throw new StorageEngineException(msg); + } } break; } diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/operations/VariantIndexOperationTool.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/operations/VariantIndexOperationTool.java index c4ba731b647..cce9fc91e8a 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/operations/VariantIndexOperationTool.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/operations/VariantIndexOperationTool.java @@ -90,6 +90,7 @@ protected void check() throws Exception { params.put(VariantStorageOptions.ANNOTATE.key(), indexParams.isAnnotate()); params.putIfNotEmpty(VariantStorageOptions.ANNOTATOR.key(), indexParams.getAnnotator()); params.put(VariantStorageOptions.ANNOTATION_OVERWEITE.key(), indexParams.isOverwriteAnnotations()); + params.put(VariantStorageOptions.FORCE.key(), indexParams.isForceReload()); params.put(VariantStorageOptions.RESUME.key(), indexParams.isResume()); params.put(VariantStorageOptions.NORMALIZATION_SKIP.key(), indexParams.getNormalizationSkip()); params.putIfNotEmpty(VariantStorageOptions.NORMALIZATION_REFERENCE_GENOME.key(), indexParams.getReferenceGenome()); diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/alignment/AlignmentAnalysisTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/alignment/AlignmentAnalysisTest.java index b855a379b08..71af17f701e 100644 --- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/alignment/AlignmentAnalysisTest.java +++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/alignment/AlignmentAnalysisTest.java @@ -18,6 +18,7 @@ import org.junit.AfterClass; import org.junit.Before; +import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @@ -95,6 +96,7 @@ public AlignmentAnalysisTest(String storageEngine) { private CatalogManager catalogManager; private VariantStorageManager variantStorageManager; + @ClassRule public static OpenCGATestExternalResource opencga = new OpenCGATestExternalResource(); public static HadoopVariantStorageTest.HadoopExternalResource hadoopExternalResource = new HadoopVariantStorageTest.HadoopExternalResource(); diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/rga/RgaSolrExtenalResource.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/rga/RgaSolrExtenalResource.java index f45e8e77ec2..e528a8156bc 100644 --- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/rga/RgaSolrExtenalResource.java +++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/rga/RgaSolrExtenalResource.java @@ -6,16 +6,20 @@ import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.core.NodeConfig; import org.junit.rules.ExternalResource; +import org.junit.runner.Description; +import org.junit.runners.model.Statement; import org.opencb.commons.datastore.solr.SolrManager; import org.opencb.opencga.core.common.GitRepositoryState; +import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.config.storage.StorageConfiguration; import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import static org.opencb.opencga.storage.core.variant.VariantStorageBaseTest.*; +import static org.opencb.opencga.storage.core.variant.VariantStorageBaseTest.getResourceUri; public class RgaSolrExtenalResource extends ExternalResource { @@ -23,6 +27,7 @@ public class RgaSolrExtenalResource extends ExternalResource { private SolrClient solrClient; protected boolean embeded = true; + private Class testClass; public RgaSolrExtenalResource() { this(true); @@ -32,16 +37,23 @@ public RgaSolrExtenalResource(boolean embeded) { this.embeded = embeded; } + @Override + public Statement apply(Statement base, Description description) { + testClass = description.getTestClass(); + return super.apply(base, description); + } + @Override protected void before() throws Throwable { super.before(); - Path rootDir = getTmpRootDir(); + Path rootDir = Paths.get("target/test-data", "junit-rga-solr-" + TimeUtils.getTimeMillis()); + Files.createDirectories(rootDir); String mainConfigSet = "opencga-rga-configset-" + GitRepositoryState.getInstance().getBuildVersion(); String auxConfigSet = "opencga-rga-aux-configset-" + GitRepositoryState.getInstance().getBuildVersion(); - copyConfigSetConfiguration(mainConfigSet, "managed-schema"); - copyConfigSetConfiguration(auxConfigSet, "aux-managed-schema"); + copyConfigSetConfiguration(mainConfigSet, "managed-schema", rootDir); + copyConfigSetConfiguration(auxConfigSet, "aux-managed-schema", rootDir); String solrHome = rootDir.resolve("solr").toString(); @@ -78,15 +90,15 @@ protected void after() { } } - private void copyConfigSetConfiguration(String configSet, String managedSchemaFile) throws IOException { + private void copyConfigSetConfiguration(String configSet, String managedSchemaFile, Path rootDir) throws IOException { // Copy configuration - getResourceUri("configsets/variantsCollection/solrconfig.xml", "configsets/" + configSet + "/solrconfig.xml"); - getResourceUri("rga/" + managedSchemaFile, "configsets/" + configSet + "/managed-schema"); - getResourceUri("configsets/variantsCollection/params.json", "configsets/" + configSet + "/params.json"); - getResourceUri("configsets/variantsCollection/protwords.txt", "configsets/" + configSet + "/protwords.txt"); - getResourceUri("configsets/variantsCollection/stopwords.txt", "configsets/" + configSet + "/stopwords.txt"); - getResourceUri("configsets/variantsCollection/synonyms.txt", "configsets/" + configSet + "/synonyms.txt"); - getResourceUri("configsets/variantsCollection/lang/stopwords_en.txt", "configsets/" + configSet + "/lang/stopwords_en.txt"); + getResourceUri("configsets/variantsCollection/solrconfig.xml", "configsets/" + configSet + "/solrconfig.xml", rootDir); + getResourceUri("rga/" + managedSchemaFile, "configsets/" + configSet + "/managed-schema", rootDir); + getResourceUri("configsets/variantsCollection/params.json", "configsets/" + configSet + "/params.json", rootDir); + getResourceUri("configsets/variantsCollection/protwords.txt", "configsets/" + configSet + "/protwords.txt", rootDir); + getResourceUri("configsets/variantsCollection/stopwords.txt", "configsets/" + configSet + "/stopwords.txt", rootDir); + getResourceUri("configsets/variantsCollection/synonyms.txt", "configsets/" + configSet + "/synonyms.txt", rootDir); + getResourceUri("configsets/variantsCollection/lang/stopwords_en.txt", "configsets/" + configSet + "/lang/stopwords_en.txt", rootDir); } public RgaEngine configure(StorageConfiguration storageConfiguration) { diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/manager/VariantOperationsTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/manager/VariantOperationsTest.java index 38ef6f98a21..13f07647b84 100644 --- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/manager/VariantOperationsTest.java +++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/manager/VariantOperationsTest.java @@ -38,6 +38,7 @@ import org.opencb.opencga.core.common.YesNoAuto; import org.opencb.opencga.core.config.storage.SampleIndexConfiguration; import org.opencb.opencga.core.config.storage.StorageConfiguration; +import org.opencb.opencga.core.exceptions.ToolException; import org.opencb.opencga.core.models.cohort.Cohort; import org.opencb.opencga.core.models.cohort.CohortCreateParams; import org.opencb.opencga.core.models.common.IndexStatus; @@ -57,6 +58,7 @@ import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.testclassification.duration.LongTests; import org.opencb.opencga.core.tools.result.ExecutionResult; +import org.opencb.opencga.storage.core.exceptions.StorageEngineException; import org.opencb.opencga.storage.core.metadata.models.VariantScoreMetadata; import org.opencb.opencga.storage.core.variant.VariantStorageEngine; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam; @@ -75,6 +77,7 @@ import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; @RunWith(Parameterized.class) @Category(LongTests.class) @@ -277,6 +280,29 @@ public void setUpCatalogManager() throws Exception { } + @Test + public void testVariantFileReload() throws Exception { + + try { + toolRunner.execute(VariantIndexOperationTool.class, STUDY, + new VariantIndexParams() + .setForceReload(false) + .setFile(file.getId()), + Paths.get(opencga.createTmpOutdir()), "index_reload", token); + fail("Should have thrown an exception"); + } catch (ToolException e) { + assertEquals(StorageEngineException.class, e.getCause().getClass()); + assertEquals("We can only INDEX VCF files not transformed, the status is READY", e.getCause().getMessage()); + } + + toolRunner.execute(VariantIndexOperationTool.class, STUDY, + new VariantIndexParams() + .setForceReload(true) + .setFile(file.getId()), + Paths.get(opencga.createTmpOutdir()), "index_reload", token); + + } + @Test public void testVariantSecondaryAnnotationIndex() throws Exception { diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java index 4bb045cb874..7d3f514a745 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java @@ -380,6 +380,7 @@ private void index() throws ToolException { cliOptions.genericVariantIndexOptions.family, cliOptions.genericVariantIndexOptions.somatic, cliOptions.genericVariantIndexOptions.load, + cliOptions.genericVariantIndexOptions.forceReload, cliOptions.genericVariantIndexOptions.loadSplitData, cliOptions.genericVariantIndexOptions.loadMultiFileData, cliOptions.genericVariantIndexOptions.loadSampleIndex, 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..85ed58cd595 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-07-28 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 c18998aabcc..67c39990330 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-07-28 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/AnalysisVariantCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java index 601ea3739bf..0bee10fa238 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java @@ -862,6 +862,7 @@ private RestResponse runIndex() throws Exception { putNestedIfNotNull(beanParams, "family",commandOptions.family, true); putNestedIfNotNull(beanParams, "somatic",commandOptions.somatic, true); putNestedIfNotNull(beanParams, "load",commandOptions.load, true); + putNestedIfNotNull(beanParams, "forceReload",commandOptions.forceReload, true); putNestedIfNotEmpty(beanParams, "loadSplitData",commandOptions.loadSplitData, true); putNestedIfNotNull(beanParams, "loadMultiFileData",commandOptions.loadMultiFileData, true); putNestedIfNotEmpty(beanParams, "loadSampleIndex",commandOptions.loadSampleIndex, true); 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..1c0b3cb7d13 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 @@ -530,6 +530,7 @@ private RestResponse indexVariant() throws Exception { putNestedIfNotNull(beanParams, "family",commandOptions.family, true); putNestedIfNotNull(beanParams, "somatic",commandOptions.somatic, true); putNestedIfNotNull(beanParams, "load",commandOptions.load, true); + putNestedIfNotNull(beanParams, "forceReload",commandOptions.forceReload, true); putNestedIfNotEmpty(beanParams, "loadSplitData",commandOptions.loadSplitData, true); putNestedIfNotNull(beanParams, "loadMultiFileData",commandOptions.loadMultiFileData, true); putNestedIfNotEmpty(beanParams, "loadSampleIndex",commandOptions.loadSampleIndex, true); @@ -600,6 +601,7 @@ private RestResponse launcherVariantIndex() throws Exception { putNestedIfNotNull(beanParams, "indexParams.family",commandOptions.indexParamsFamily, true); putNestedIfNotNull(beanParams, "indexParams.somatic",commandOptions.indexParamsSomatic, true); putNestedIfNotNull(beanParams, "indexParams.load",commandOptions.indexParamsLoad, true); + putNestedIfNotNull(beanParams, "indexParams.forceReload",commandOptions.indexParamsForceReload, true); putNestedIfNotEmpty(beanParams, "indexParams.loadSplitData",commandOptions.indexParamsLoadSplitData, true); putNestedIfNotNull(beanParams, "indexParams.loadMultiFileData",commandOptions.indexParamsLoadMultiFileData, true); putNestedIfNotEmpty(beanParams, "indexParams.loadSampleIndex",commandOptions.indexParamsLoadSampleIndex, true); 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..e8a55bf7981 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; @@ -1055,91 +1055,94 @@ public class RunIndexCommandOptions { @Parameter(names = {"--job-tags"}, description = "Job tags", required = false, arity = 1) public String jobTags; - @Parameter(names = {"--file"}, description = "The body web service file parameter", required = false, arity = 1) + @Parameter(names = {"--file"}, description = "List of files to be indexed.", required = false, arity = 1) public String file; - @Parameter(names = {"--resume"}, description = "The body web service resume parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--resume"}, description = "Resume a previously failed indexation", required = false, help = true, arity = 0) public boolean resume = false; - @Parameter(names = {"--outdir"}, description = "The body web service outdir parameter", required = false, arity = 1) + @Parameter(names = {"--outdir"}, description = "Output directory", required = false, arity = 1) public String outdir; - @Parameter(names = {"--transform"}, description = "The body web service transform parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--transform"}, description = "If present it only runs the transform stage, no load is executed", required = false, help = true, arity = 0) public boolean transform = false; - @Parameter(names = {"--gvcf"}, description = "The body web service gvcf parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--gvcf"}, description = "Hint to indicate that the input file is in gVCF format.", required = false, help = true, arity = 0) public boolean gvcf = false; - @Parameter(names = {"--normalization-skip"}, description = "The body web service normalizationSkip parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--normalization-skip"}, description = "Do not execute the normalization process. WARN: INDELs will be stored with the context base", required = false, help = true, arity = 0) public boolean normalizationSkip = false; - @Parameter(names = {"--reference-genome"}, description = "The body web service referenceGenome parameter", required = false, arity = 1) + @Parameter(names = {"--reference-genome"}, description = "Reference genome in FASTA format used during the normalization step for a complete left alignment", required = false, arity = 1) public String referenceGenome; - @Parameter(names = {"--fail-on-malformed-lines"}, description = "The body web service failOnMalformedLines parameter", required = false, arity = 1) + @Parameter(names = {"--fail-on-malformed-lines"}, description = "Fail when encountering malformed lines. (yes, no, auto) [auto]", required = false, arity = 1) public String failOnMalformedLines; - @Parameter(names = {"--family"}, description = "The body web service family parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--family"}, description = "Indicate that the files to be loaded are part of a family. This will set 'load-hom-ref' to YES if it was in AUTO and execute 'family-index' afterwards", required = false, help = true, arity = 0) public boolean family = false; - @Parameter(names = {"--somatic"}, description = "The body web service somatic parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--somatic"}, description = "Indicate that the files to be loaded contain somatic samples. This will set 'load-hom-ref' to YES if it was in AUTO.", required = false, help = true, arity = 0) public boolean somatic = false; - @Parameter(names = {"--load"}, description = "The body web service load parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--load"}, description = "If present only the load stage is executed, transformation is skipped", required = false, help = true, arity = 0) public boolean load = false; - @Parameter(names = {"--load-split-data"}, description = "The body web service loadSplitData parameter", required = false, arity = 1) + @Parameter(names = {"--force-reload"}, description = "If the file is already loaded, force a file reload", required = false, help = true, arity = 0) + public boolean forceReload = false; + + @Parameter(names = {"--load-split-data"}, description = "Indicate that the variants from a group of samples is split in multiple files, either by CHROMOSOME or by REGION. In either case, variants from different files must not overlap.", required = false, arity = 1) public String loadSplitData; - @Parameter(names = {"--load-multi-file-data"}, description = "The body web service loadMultiFileData parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--load-multi-file-data"}, description = "Indicate the presence of multiple files for the same sample. Each file could be the result of a different vcf-caller or experiment over the same sample.", required = false, help = true, arity = 0) public boolean loadMultiFileData = false; - @Parameter(names = {"--load-sample-index"}, description = "The body web service loadSampleIndex parameter", required = false, arity = 1) + @Parameter(names = {"--load-sample-index"}, description = "Build sample index while loading. (yes, no, auto) [auto]", required = false, arity = 1) public String loadSampleIndex; - @Parameter(names = {"--load-archive"}, description = "The body web service loadArchive parameter", required = false, arity = 1) + @Parameter(names = {"--load-archive"}, description = "Load archive data. (yes, no, auto) [auto]", required = false, arity = 1) public String loadArchive; - @Parameter(names = {"--load-hom-ref"}, description = "The body web service loadHomRef parameter", required = false, arity = 1) + @Parameter(names = {"--load-hom-ref"}, description = "Load HOM_REF genotypes. (yes, no, auto) [auto]", required = false, arity = 1) public String loadHomRef; - @Parameter(names = {"--post-load-check"}, description = "The body web service postLoadCheck parameter", required = false, arity = 1) + @Parameter(names = {"--post-load-check"}, description = "Execute post load checks over the database. (yes, no, auto) [auto]", required = false, arity = 1) public String postLoadCheck; - @Parameter(names = {"--include-genotypes"}, description = "The body web service includeGenotypes parameter", required = false, arity = 1) + @Parameter(names = {"--include-genotypes"}, description = "Load the genotype data for the current file. This only applies to the GT field from the FORMAT. All the rest of fields from the INFO and FORMAT will be loaded. Use this parameter skip load data when the GT field is not reliable, or its only value across the file is './.'. If 'auto', genotypes will be automatically excluded if all genotypes are either missing, ./. or 0/0. (yes, no, auto) [auto]", required = false, arity = 1) public String includeGenotypes; - @Parameter(names = {"--include-sample-data"}, description = "The body web service includeSampleData parameter", required = false, arity = 1) + @Parameter(names = {"--include-sample-data"}, description = "Index including other sample data fields (i.e. FORMAT fields). Use 'all', 'none', or CSV with the fields to load.", required = false, arity = 1) public String includeSampleData; - @Parameter(names = {"--merge"}, description = "The body web service merge parameter", required = false, arity = 1) + @Parameter(names = {"--merge"}, description = "Currently two levels of merge are supported: 'basic' mode merge genotypes of the same variants while 'advanced' merge multiallelic and overlapping variants.", required = false, arity = 1) public String merge; - @Parameter(names = {"--deduplication-policy"}, description = "The body web service deduplicationPolicy parameter", required = false, arity = 1) + @Parameter(names = {"--deduplication-policy"}, description = "Specify how duplicated variants should be handled. Available policies: 'discard', 'maxQual'", required = false, arity = 1) public String deduplicationPolicy; - @Parameter(names = {"--calculate-stats"}, description = "The body web service calculateStats parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--calculate-stats"}, description = "Calculate indexed variants statistics after the load step", required = false, help = true, arity = 0) public boolean calculateStats = false; - @Parameter(names = {"--aggregated"}, description = "The body web service aggregated parameter", required = false, arity = 1) + @Parameter(names = {"--aggregated"}, description = "Select the type of aggregated VCF file: none, basic, EVS or ExAC", required = false, arity = 1) public String aggregated; - @Parameter(names = {"--aggregation-mapping-file"}, description = "The body web service aggregationMappingFile parameter", required = false, arity = 1) + @Parameter(names = {"--aggregation-mapping-file"}, description = "File containing population names mapping in an aggregated VCF file", required = false, arity = 1) public String aggregationMappingFile; - @Parameter(names = {"--annotate"}, description = "The body web service annotate parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--annotate"}, description = "Annotate indexed variants after the load step", required = false, help = true, arity = 0) public boolean annotate = false; - @Parameter(names = {"--annotator"}, description = "The body web service annotator parameter", required = false, arity = 1) + @Parameter(names = {"--annotator"}, description = "Annotation source {cellbase_rest, cellbase_db_adaptor}", required = false, arity = 1) public String annotator; - @Parameter(names = {"--overwrite-annotations"}, description = "The body web service overwriteAnnotations parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--overwrite-annotations"}, description = "Overwrite annotations in variants already present", required = false, help = true, arity = 0) public boolean overwriteAnnotations = false; - @Parameter(names = {"--index-search"}, description = "The body web service indexSearch parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-search"}, description = "Add files to the secondary search index", required = false, help = true, arity = 0) public boolean indexSearch = false; - @Parameter(names = {"--skip-indexed-files"}, description = "The body web service skipIndexedFiles parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--skip-indexed-files"}, description = "Do not fail if any of the input files was already indexed.", required = false, help = true, arity = 0) public boolean skipIndexedFiles = false; } 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..8d94148fac3 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 @@ -449,91 +449,94 @@ public class IndexVariantCommandOptions { @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 = {"--file"}, description = "The body web service file parameter", required = false, arity = 1) + @Parameter(names = {"--file"}, description = "List of files to be indexed.", required = false, arity = 1) public String file; - @Parameter(names = {"--resume"}, description = "The body web service resume parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--resume"}, description = "Resume a previously failed indexation", required = false, help = true, arity = 0) public boolean resume = false; - @Parameter(names = {"--outdir"}, description = "The body web service outdir parameter", required = false, arity = 1) + @Parameter(names = {"--outdir"}, description = "Output directory", required = false, arity = 1) public String outdir; - @Parameter(names = {"--transform"}, description = "The body web service transform parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--transform"}, description = "If present it only runs the transform stage, no load is executed", required = false, help = true, arity = 0) public boolean transform = false; - @Parameter(names = {"--gvcf"}, description = "The body web service gvcf parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--gvcf"}, description = "Hint to indicate that the input file is in gVCF format.", required = false, help = true, arity = 0) public boolean gvcf = false; - @Parameter(names = {"--normalization-skip"}, description = "The body web service normalizationSkip parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--normalization-skip"}, description = "Do not execute the normalization process. WARN: INDELs will be stored with the context base", required = false, help = true, arity = 0) public boolean normalizationSkip = false; - @Parameter(names = {"--reference-genome"}, description = "The body web service referenceGenome parameter", required = false, arity = 1) + @Parameter(names = {"--reference-genome"}, description = "Reference genome in FASTA format used during the normalization step for a complete left alignment", required = false, arity = 1) public String referenceGenome; - @Parameter(names = {"--fail-on-malformed-lines"}, description = "The body web service failOnMalformedLines parameter", required = false, arity = 1) + @Parameter(names = {"--fail-on-malformed-lines"}, description = "Fail when encountering malformed lines. (yes, no, auto) [auto]", required = false, arity = 1) public String failOnMalformedLines; - @Parameter(names = {"--family"}, description = "The body web service family parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--family"}, description = "Indicate that the files to be loaded are part of a family. This will set 'load-hom-ref' to YES if it was in AUTO and execute 'family-index' afterwards", required = false, help = true, arity = 0) public boolean family = false; - @Parameter(names = {"--somatic"}, description = "The body web service somatic parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--somatic"}, description = "Indicate that the files to be loaded contain somatic samples. This will set 'load-hom-ref' to YES if it was in AUTO.", required = false, help = true, arity = 0) public boolean somatic = false; - @Parameter(names = {"--load"}, description = "The body web service load parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--load"}, description = "If present only the load stage is executed, transformation is skipped", required = false, help = true, arity = 0) public boolean load = false; - @Parameter(names = {"--load-split-data"}, description = "The body web service loadSplitData parameter", required = false, arity = 1) + @Parameter(names = {"--force-reload"}, description = "If the file is already loaded, force a file reload", required = false, help = true, arity = 0) + public boolean forceReload = false; + + @Parameter(names = {"--load-split-data"}, description = "Indicate that the variants from a group of samples is split in multiple files, either by CHROMOSOME or by REGION. In either case, variants from different files must not overlap.", required = false, arity = 1) public String loadSplitData; - @Parameter(names = {"--load-multi-file-data"}, description = "The body web service loadMultiFileData parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--load-multi-file-data"}, description = "Indicate the presence of multiple files for the same sample. Each file could be the result of a different vcf-caller or experiment over the same sample.", required = false, help = true, arity = 0) public boolean loadMultiFileData = false; - @Parameter(names = {"--load-sample-index"}, description = "The body web service loadSampleIndex parameter", required = false, arity = 1) + @Parameter(names = {"--load-sample-index"}, description = "Build sample index while loading. (yes, no, auto) [auto]", required = false, arity = 1) public String loadSampleIndex; - @Parameter(names = {"--load-archive"}, description = "The body web service loadArchive parameter", required = false, arity = 1) + @Parameter(names = {"--load-archive"}, description = "Load archive data. (yes, no, auto) [auto]", required = false, arity = 1) public String loadArchive; - @Parameter(names = {"--load-hom-ref"}, description = "The body web service loadHomRef parameter", required = false, arity = 1) + @Parameter(names = {"--load-hom-ref"}, description = "Load HOM_REF genotypes. (yes, no, auto) [auto]", required = false, arity = 1) public String loadHomRef; - @Parameter(names = {"--post-load-check"}, description = "The body web service postLoadCheck parameter", required = false, arity = 1) + @Parameter(names = {"--post-load-check"}, description = "Execute post load checks over the database. (yes, no, auto) [auto]", required = false, arity = 1) public String postLoadCheck; - @Parameter(names = {"--include-genotypes"}, description = "The body web service includeGenotypes parameter", required = false, arity = 1) + @Parameter(names = {"--include-genotypes"}, description = "Load the genotype data for the current file. This only applies to the GT field from the FORMAT. All the rest of fields from the INFO and FORMAT will be loaded. Use this parameter skip load data when the GT field is not reliable, or its only value across the file is './.'. If 'auto', genotypes will be automatically excluded if all genotypes are either missing, ./. or 0/0. (yes, no, auto) [auto]", required = false, arity = 1) public String includeGenotypes; - @Parameter(names = {"--include-sample-data"}, description = "The body web service includeSampleData parameter", required = false, arity = 1) + @Parameter(names = {"--include-sample-data"}, description = "Index including other sample data fields (i.e. FORMAT fields). Use 'all', 'none', or CSV with the fields to load.", required = false, arity = 1) public String includeSampleData; - @Parameter(names = {"--merge"}, description = "The body web service merge parameter", required = false, arity = 1) + @Parameter(names = {"--merge"}, description = "Currently two levels of merge are supported: 'basic' mode merge genotypes of the same variants while 'advanced' merge multiallelic and overlapping variants.", required = false, arity = 1) public String merge; - @Parameter(names = {"--deduplication-policy"}, description = "The body web service deduplicationPolicy parameter", required = false, arity = 1) + @Parameter(names = {"--deduplication-policy"}, description = "Specify how duplicated variants should be handled. Available policies: 'discard', 'maxQual'", required = false, arity = 1) public String deduplicationPolicy; - @Parameter(names = {"--calculate-stats"}, description = "The body web service calculateStats parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--calculate-stats"}, description = "Calculate indexed variants statistics after the load step", required = false, help = true, arity = 0) public boolean calculateStats = false; - @Parameter(names = {"--aggregated"}, description = "Enum param allowed values: NONE, BASIC, EVS, EXAC", required = false, arity = 1) + @Parameter(names = {"--aggregated"}, description = "Select the type of aggregated VCF file: none, basic, EVS or ExAC", required = false, arity = 1) public String aggregated; - @Parameter(names = {"--aggregation-mapping-file"}, description = "The body web service aggregationMappingFile parameter", required = false, arity = 1) + @Parameter(names = {"--aggregation-mapping-file"}, description = "File containing population names mapping in an aggregated VCF file", required = false, arity = 1) public String aggregationMappingFile; - @Parameter(names = {"--annotate"}, description = "The body web service annotate parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--annotate"}, description = "Annotate indexed variants after the load step", required = false, help = true, arity = 0) public boolean annotate = false; - @Parameter(names = {"--annotator"}, description = "The body web service annotator parameter", required = false, arity = 1) + @Parameter(names = {"--annotator"}, description = "Annotation source {cellbase_rest, cellbase_db_adaptor}", required = false, arity = 1) public String annotator; - @Parameter(names = {"--overwrite-annotations"}, description = "The body web service overwriteAnnotations parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--overwrite-annotations"}, description = "Overwrite annotations in variants already present", required = false, help = true, arity = 0) public boolean overwriteAnnotations = false; - @Parameter(names = {"--index-search"}, description = "The body web service indexSearch parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-search"}, description = "Add files to the secondary search index", required = false, help = true, arity = 0) public boolean indexSearch = false; - @Parameter(names = {"--skip-indexed-files"}, description = "The body web service skipIndexedFiles parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--skip-indexed-files"}, description = "Do not fail if any of the input files was already indexed.", required = false, help = true, arity = 0) public boolean skipIndexedFiles = false; } @@ -580,91 +583,94 @@ public class LauncherVariantIndexCommandOptions { @Parameter(names = {"--max-jobs"}, description = "The body web service maxJobs parameter", required = false, arity = 1) public Integer maxJobs; - @Parameter(names = {"--index-params-file"}, description = "The body web service file parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-file"}, description = "List of files to be indexed.", required = false, arity = 1) public String indexParamsFile; - @Parameter(names = {"--index-params-resume"}, description = "The body web service resume parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-resume"}, description = "Resume a previously failed indexation", required = false, help = true, arity = 0) public boolean indexParamsResume = false; - @Parameter(names = {"--index-params-outdir"}, description = "The body web service outdir parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-outdir"}, description = "Output directory", required = false, arity = 1) public String indexParamsOutdir; - @Parameter(names = {"--index-params-transform"}, description = "The body web service transform parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-transform"}, description = "If present it only runs the transform stage, no load is executed", required = false, help = true, arity = 0) public boolean indexParamsTransform = false; - @Parameter(names = {"--index-params-gvcf"}, description = "The body web service gvcf parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-gvcf"}, description = "Hint to indicate that the input file is in gVCF format.", required = false, help = true, arity = 0) public boolean indexParamsGvcf = false; - @Parameter(names = {"--index-params-normalization-skip"}, description = "The body web service normalizationSkip parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-normalization-skip"}, description = "Do not execute the normalization process. WARN: INDELs will be stored with the context base", required = false, help = true, arity = 0) public boolean indexParamsNormalizationSkip = false; - @Parameter(names = {"--index-params-reference-genome"}, description = "The body web service referenceGenome parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-reference-genome"}, description = "Reference genome in FASTA format used during the normalization step for a complete left alignment", required = false, arity = 1) public String indexParamsReferenceGenome; - @Parameter(names = {"--index-params-fail-on-malformed-lines"}, description = "The body web service failOnMalformedLines parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-fail-on-malformed-lines"}, description = "Fail when encountering malformed lines. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsFailOnMalformedLines; - @Parameter(names = {"--index-params-family"}, description = "The body web service family parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-family"}, description = "Indicate that the files to be loaded are part of a family. This will set 'load-hom-ref' to YES if it was in AUTO and execute 'family-index' afterwards", required = false, help = true, arity = 0) public boolean indexParamsFamily = false; - @Parameter(names = {"--index-params-somatic"}, description = "The body web service somatic parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-somatic"}, description = "Indicate that the files to be loaded contain somatic samples. This will set 'load-hom-ref' to YES if it was in AUTO.", required = false, help = true, arity = 0) public boolean indexParamsSomatic = false; - @Parameter(names = {"--index-params-load"}, description = "The body web service load parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-load"}, description = "If present only the load stage is executed, transformation is skipped", required = false, help = true, arity = 0) public boolean indexParamsLoad = false; - @Parameter(names = {"--index-params-load-split-data"}, description = "The body web service loadSplitData parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-force-reload"}, description = "If the file is already loaded, force a file reload", required = false, help = true, arity = 0) + public boolean indexParamsForceReload = false; + + @Parameter(names = {"--index-params-load-split-data"}, description = "Indicate that the variants from a group of samples is split in multiple files, either by CHROMOSOME or by REGION. In either case, variants from different files must not overlap.", required = false, arity = 1) public String indexParamsLoadSplitData; - @Parameter(names = {"--index-params-load-multi-file-data"}, description = "The body web service loadMultiFileData parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-load-multi-file-data"}, description = "Indicate the presence of multiple files for the same sample. Each file could be the result of a different vcf-caller or experiment over the same sample.", required = false, help = true, arity = 0) public boolean indexParamsLoadMultiFileData = false; - @Parameter(names = {"--index-params-load-sample-index"}, description = "The body web service loadSampleIndex parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-load-sample-index"}, description = "Build sample index while loading. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsLoadSampleIndex; - @Parameter(names = {"--index-params-load-archive"}, description = "The body web service loadArchive parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-load-archive"}, description = "Load archive data. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsLoadArchive; - @Parameter(names = {"--index-params-load-hom-ref"}, description = "The body web service loadHomRef parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-load-hom-ref"}, description = "Load HOM_REF genotypes. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsLoadHomRef; - @Parameter(names = {"--index-params-post-load-check"}, description = "The body web service postLoadCheck parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-post-load-check"}, description = "Execute post load checks over the database. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsPostLoadCheck; - @Parameter(names = {"--index-params-include-genotypes"}, description = "The body web service includeGenotypes parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-include-genotypes"}, description = "Load the genotype data for the current file. This only applies to the GT field from the FORMAT. All the rest of fields from the INFO and FORMAT will be loaded. Use this parameter skip load data when the GT field is not reliable, or its only value across the file is './.'. If 'auto', genotypes will be automatically excluded if all genotypes are either missing, ./. or 0/0. (yes, no, auto) [auto]", required = false, arity = 1) public String indexParamsIncludeGenotypes; - @Parameter(names = {"--index-params-include-sample-data"}, description = "The body web service includeSampleData parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-include-sample-data"}, description = "Index including other sample data fields (i.e. FORMAT fields). Use 'all', 'none', or CSV with the fields to load.", required = false, arity = 1) public String indexParamsIncludeSampleData; - @Parameter(names = {"--index-params-merge"}, description = "The body web service merge parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-merge"}, description = "Currently two levels of merge are supported: 'basic' mode merge genotypes of the same variants while 'advanced' merge multiallelic and overlapping variants.", required = false, arity = 1) public String indexParamsMerge; - @Parameter(names = {"--index-params-deduplication-policy"}, description = "The body web service deduplicationPolicy parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-deduplication-policy"}, description = "Specify how duplicated variants should be handled. Available policies: 'discard', 'maxQual'", required = false, arity = 1) public String indexParamsDeduplicationPolicy; - @Parameter(names = {"--index-params-calculate-stats"}, description = "The body web service calculateStats parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-calculate-stats"}, description = "Calculate indexed variants statistics after the load step", required = false, help = true, arity = 0) public boolean indexParamsCalculateStats = false; - @Parameter(names = {"--index-params-aggregated"}, description = "Enum param allowed values: NONE, BASIC, EVS, EXAC", required = false, arity = 1) + @Parameter(names = {"--index-params-aggregated"}, description = "Select the type of aggregated VCF file: none, basic, EVS or ExAC", required = false, arity = 1) public String indexParamsAggregated; - @Parameter(names = {"--index-params-aggregation-mapping-file"}, description = "The body web service aggregationMappingFile parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-aggregation-mapping-file"}, description = "File containing population names mapping in an aggregated VCF file", required = false, arity = 1) public String indexParamsAggregationMappingFile; - @Parameter(names = {"--index-params-annotate"}, description = "The body web service annotate parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-annotate"}, description = "Annotate indexed variants after the load step", required = false, help = true, arity = 0) public boolean indexParamsAnnotate = false; - @Parameter(names = {"--index-params-annotator"}, description = "The body web service annotator parameter", required = false, arity = 1) + @Parameter(names = {"--index-params-annotator"}, description = "Annotation source {cellbase_rest, cellbase_db_adaptor}", required = false, arity = 1) public String indexParamsAnnotator; - @Parameter(names = {"--index-params-overwrite-annotations"}, description = "The body web service overwriteAnnotations parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-overwrite-annotations"}, description = "Overwrite annotations in variants already present", required = false, help = true, arity = 0) public boolean indexParamsOverwriteAnnotations = false; - @Parameter(names = {"--index-params-index-search"}, description = "The body web service indexSearch parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-index-search"}, description = "Add files to the secondary search index", required = false, help = true, arity = 0) public boolean indexParamsIndexSearch = false; - @Parameter(names = {"--index-params-skip-indexed-files"}, description = "The body web service skipIndexedFiles parameter", required = false, help = true, arity = 0) + @Parameter(names = {"--index-params-skip-indexed-files"}, description = "Do not fail if any of the input files was already indexed.", required = false, help = true, arity = 0) public boolean indexParamsSkipIndexedFiles = false; } diff --git a/opencga-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R index 11b7d569372..d3e67c50d4a 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-07-28 # # 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 00be80c77b7..ea404509c2e 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-07-28 # # 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..a40c6414d76 100644 --- a/opencga-client/src/main/R/R/AllGenerics.R +++ b/opencga-client/src/main/R/R/AllGenerics.R @@ -10,42 +10,42 @@ 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, group, study, members, templateId, variableSet, studies, endpointName, params=NULL, ...) standardGeneric("studyClient")) # ############################################################################## ## FileClient -setGeneric("fileClient", function(OpencgaR, folder, file, members, files, annotationSet, endpointName, params=NULL, ...) +setGeneric("fileClient", function(OpencgaR, folder, file, files, annotationSet, members, endpointName, params=NULL, ...) standardGeneric("fileClient")) # ############################################################################## ## JobClient -setGeneric("jobClient", function(OpencgaR, members, jobs, job, endpointName, params=NULL, ...) +setGeneric("jobClient", function(OpencgaR, job, jobs, members, endpointName, params=NULL, ...) standardGeneric("jobClient")) # ############################################################################## ## SampleClient -setGeneric("sampleClient", function(OpencgaR, members, sample, samples, annotationSet, endpointName, params=NULL, ...) +setGeneric("sampleClient", function(OpencgaR, sample, annotationSet, samples, members, endpointName, params=NULL, ...) standardGeneric("sampleClient")) # ############################################################################## ## IndividualClient -setGeneric("individualClient", function(OpencgaR, members, individual, annotationSet, individuals, endpointName, params=NULL, ...) +setGeneric("individualClient", function(OpencgaR, annotationSet, individuals, individual, members, endpointName, params=NULL, ...) standardGeneric("individualClient")) # ############################################################################## ## FamilyClient -setGeneric("familyClient", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...) +setGeneric("familyClient", function(OpencgaR, annotationSet, families, family, members, endpointName, params=NULL, ...) standardGeneric("familyClient")) # ############################################################################## ## CohortClient -setGeneric("cohortClient", function(OpencgaR, members, cohort, annotationSet, cohorts, endpointName, params=NULL, ...) +setGeneric("cohortClient", function(OpencgaR, cohorts, cohort, annotationSet, members, endpointName, params=NULL, ...) standardGeneric("cohortClient")) # ############################################################################## ## PanelClient -setGeneric("panelClient", function(OpencgaR, members, panels, endpointName, params=NULL, ...) +setGeneric("panelClient", function(OpencgaR, panels, members, endpointName, params=NULL, ...) standardGeneric("panelClient")) # ############################################################################## @@ -60,7 +60,7 @@ setGeneric("variantClient", function(OpencgaR, endpointName, params=NULL, ...) # ############################################################################## ## ClinicalClient -setGeneric("clinicalClient", function(OpencgaR, clinicalAnalysis, members, interpretation, clinicalAnalyses, interpretations, endpointName, params=NULL, ...) +setGeneric("clinicalClient", function(OpencgaR, clinicalAnalyses, clinicalAnalysis, interpretation, members, interpretations, endpointName, params=NULL, ...) standardGeneric("clinicalClient")) # ############################################################################## diff --git a/opencga-client/src/main/R/R/Clinical-methods.R b/opencga-client/src/main/R/R/Clinical-methods.R index c590dab0b25..7866e702032 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-07-28 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -58,7 +58,7 @@ #' [*]: Required parameter #' @export -setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalysis, members, interpretation, clinicalAnalyses, interpretations, endpointName, params=NULL, ...) { +setMethod("clinicalClient", "OpencgaR", function(OpencgaR, clinicalAnalyses, clinicalAnalysis, interpretation, members, interpretations, 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..9dd4ad2e6d6 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-07-28 # # 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, cohorts, cohort, annotationSet, members, 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..6ca0bd513b6 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-07-28 # # 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, annotationSet, families, family, members, 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..7549cd691e3 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-07-28 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -54,7 +54,7 @@ #' [*]: Required parameter #' @export -setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, members, files, annotationSet, endpointName, params=NULL, ...) { +setMethod("fileClient", "OpencgaR", function(OpencgaR, folder, file, files, annotationSet, members, 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..27034fe69dd 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-07-28 # # 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..7f555edc455 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-07-28 # # 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, annotationSet, individuals, individual, members, 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..9384517c9f9 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-07-28 # # 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, job, jobs, members, 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..19b287d5b2f 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-07-28 # # 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..a0b91ca9d3d 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-07-28 # # 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..632307c3855 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-07-28 # # 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 @@ #' [*]: Required parameter #' @export -setMethod("panelClient", "OpencgaR", function(OpencgaR, members, panels, endpointName, params=NULL, ...) { +setMethod("panelClient", "OpencgaR", function(OpencgaR, panels, members, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/panels/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/Project-methods.R b/opencga-client/src/main/R/R/Project-methods.R index 88420d4beb6..920696ba716 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-07-28 # # 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..cf89f9d20e4 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-07-28 # # 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, sample, annotationSet, samples, members, 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 425059d2d03..eb488c2dc93 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-07-28 # # 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, group, study, members, templateId, variableSet, studies, 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..bc35c83200f 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-07-28 # # 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/Variant-methods.R b/opencga-client/src/main/R/R/Variant-methods.R index e9e2f67edeb..f2a6e83c060 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-07-28 # # 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..9f10cef3b6d 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 @@ -35,7 +35,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-04-18 +* Autogenerated on: 2023-07-28 * * 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 Admin webservices. - * Client version: 2.8.0-SNAPSHOT + * Client version: 2.8.3-SNAPSHOT * PATH: admin */ public class AdminClient extends AbstractParentClient { 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..6e7a1d2abd8 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-07-28 * * 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.8.3-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..f365c9d3306 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-07-28 * * 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.8.3-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..c1df8e2a1df 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-07-28 * * 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.8.3-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..fd9a2aa9367 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-07-28 * * 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.8.3-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..1d35c038da5 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-07-28 * * 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.8.3-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..189b2000caa 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-07-28 * * 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.8.3-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..cca31f9e791 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-07-28 * * 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.8.3-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..f5c8219fe2d 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-07-28 * * 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.8.3-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..f5d60864be5 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-07-28 * * 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.8.3-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..a2511aa7eb0 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-07-28 * * 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.8.3-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..4f25299d77f 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-07-28 * * 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.8.3-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..b75d1c759fb 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-07-28 * * 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.8.3-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..a8b5678c5ae 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-07-28 * * 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.8.3-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..8ca08bbd7e0 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-07-28 * * 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.8.3-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..812474e898f 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-07-28 * * 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.8.3-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..7a32525c569 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-07-28 * * 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.8.3-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..b0766ce818c 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-07-28 * * 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 bc3b7eb2c02..28d04b2b7b0 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-07-28 * * 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..a575404e2a1 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-07-28 * * 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..648bf8180d5 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-07-28 * * 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..b5050972e8b 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-07-28 * * 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..cc25019b2ff 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-07-28 * * 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..db267764fcd 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-07-28 * * 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..a7c03ec5c97 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-07-28 * * 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..af67213f129 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-07-28 * * 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..95dd1ecb855 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-07-28 * * 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..e59cac86214 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-07-28 * * 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..24f6d0500b4 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-07-28 * * 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..d932f90ee6a 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-07-28 * * 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..51c9fbad1b9 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-07-28 * * 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..101fe7beda7 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-07-28 * * 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..7baf84d27ef 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-07-28 * * 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..4883b0065a7 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-07-28 * * 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..74db25099bd 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-07-28 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.8.3-SNAPSHOT PATH: /{apiVersion}/admin """ 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..7618077ceaa 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-07-28 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.8.3-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..2eae0068cd3 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-07-28 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.8.3-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..84c65af11d1 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-07-28 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.8.3-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..867dd915d0f 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-07-28 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.8.3-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..3afc10da5c7 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-07-28 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.8.3-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..7477428ff83 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-07-28 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.8.3-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..8f23e653f21 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-07-28 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.8.3-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..5999c05f36d 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-07-28 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.8.3-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..7b625dc2aa6 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-07-28 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.8.3-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..975f72d31cf 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-07-28 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.8.3-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..60afa46fc33 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-07-28 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.8.3-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..34743081040 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-07-28 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.8.3-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..f9dcf2b22d4 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-07-28 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.8.3-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..d6409f5d40f 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-07-28 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.8.3-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..7424f289cd1 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-07-28 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.8.3-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..6c0906d553f 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-07-28 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.8.3-SNAPSHOT PATH: /{apiVersion}/operation """ diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java index aea655f6d9b..1e0cd7dac49 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/VariantIndexParams.java @@ -17,6 +17,8 @@ package org.opencb.opencga.core.models.variant; import org.opencb.biodata.models.variant.metadata.Aggregation; +import org.opencb.commons.annotations.DataField; +import org.opencb.opencga.core.api.ParamConstants; import org.opencb.opencga.core.tools.ToolParams; public class VariantIndexParams extends ToolParams { @@ -29,11 +31,14 @@ public VariantIndexParams(String file, boolean resume, String outdir, boolean transform, boolean gvcf, - boolean normalizationSkip, String referenceGenome, + boolean normalizationSkip, + String referenceGenome, String failOnMalformedLines, boolean family, boolean somatic, - boolean load, String loadSplitData, boolean loadMultiFileData, + boolean load, + boolean forceReload, + String loadSplitData, boolean loadMultiFileData, String loadSampleIndex, String loadArchive, String loadHomRef, @@ -53,6 +58,7 @@ public VariantIndexParams(String file, this.family = family; this.somatic = somatic; this.load = load; + this.forceReload = forceReload; this.loadSplitData = loadSplitData; this.loadMultiFileData = loadMultiFileData; this.loadSampleIndex = loadSampleIndex; @@ -73,43 +79,82 @@ public VariantIndexParams(String file, this.skipIndexedFiles = skipIndexedFiles; } + @DataField(description = "List of files to be indexed.") private String file; + @DataField(description = "Resume a previously failed index operation") private boolean resume; + @DataField(description = "Output directory") private String outdir; + @DataField(description = "If present it only runs the transform stage, no load is executed") private boolean transform; + @DataField(description = "Hint to indicate that the input file is in gVCF format.") private boolean gvcf; + @DataField(description = "Do not execute the normalization process. WARN: INDELs will be stored with the context base") private boolean normalizationSkip; + @DataField(description = "Reference genome in FASTA format used during the normalization step " + + "for a complete left alignment") private String referenceGenome; + @DataField(description = "Fail when encountering malformed lines. (yes, no, auto) [auto]") private String failOnMalformedLines; + @DataField(description = "Indicate that the files to be loaded are part of a family. " + + "This will set 'load-hom-ref' to YES if it was in AUTO and execute 'family-index' afterwards") private boolean family; + @DataField(description = "Indicate that the files to be loaded contain somatic samples. " + + "This will set 'load-hom-ref' to YES if it was in AUTO.") private boolean somatic; + @DataField(description = "If present only the load stage is executed, transformation is skipped") private boolean load; + @DataField(description = "If the file is already loaded, force a file reload") + private boolean forceReload; + @DataField(description = "Indicate that the variants from a group of samples is split in multiple files, either by CHROMOSOME or by REGION. In either case, variants from different files must not overlap.") private String loadSplitData; + @DataField(description = "Indicate the presence of multiple files for the same sample. Each file could be the result of a different vcf-caller or experiment over the same sample.") private boolean loadMultiFileData; + @DataField(description = "Build sample index while loading. (yes, no, auto) [auto]") private String loadSampleIndex; + @DataField(description = "Load archive data. (yes, no, auto) [auto]") private String loadArchive; + @DataField(description = "Load HOM_REF genotypes. (yes, no, auto) [auto]") private String loadHomRef; + @DataField(description = "Execute post load checks over the database. (yes, no, auto) [auto]") private String postLoadCheck; + @DataField(description = "Load the genotype data for the current file. " + + "This only applies to the GT field from the FORMAT. All the rest of fields from the INFO and FORMAT will be loaded. " + + "Use this parameter skip load data when the GT field is not reliable, or its only value across the file is \"./.\". " + + "If \"auto\", genotypes will be automatically excluded if all genotypes are either missing, ./. or 0/0. " + + "(yes, no, auto) [auto]") private String includeGenotypes; + @DataField(description = "Index including other sample data fields (i.e. FORMAT fields)." + + " Use \"" + ParamConstants.ALL + "\", \"" + ParamConstants.NONE + "\", or CSV with the fields to load.") private String includeSampleData; + @DataField(deprecated = true, description = "Currently two levels of merge are supported: \"basic\" mode merge genotypes of the same variants while \"advanced\" merge multiallelic and overlapping variants.") private String merge; + @DataField(description = "Specify how duplicated variants should be handled. Available policies: \"discard\", \"maxQual\"") private String deduplicationPolicy; + @DataField(description = "Calculate indexed variants statistics after the load step") private boolean calculateStats; + @DataField(description = "Select the type of aggregated VCF file: none, basic, EVS or ExAC") private Aggregation aggregated; + @DataField(description = "File containing population names mapping in an aggregated VCF file") private String aggregationMappingFile; + @DataField(description = "Annotate indexed variants after the load step") private boolean annotate; + @DataField(description = "Annotation source {cellbase_rest, cellbase_db_adaptor}") private String annotator; + @DataField(description = "Overwrite annotations in variants already present") private boolean overwriteAnnotations; + @DataField(description = "Add files to the secondary search index") private boolean indexSearch; + @DataField(description = "Do not fail if any of the input files was already indexed.") private boolean skipIndexedFiles; public String getFile() { @@ -211,6 +256,15 @@ public VariantIndexParams setLoad(boolean load) { return this; } + public boolean isForceReload() { + return forceReload; + } + + public VariantIndexParams setForceReload(boolean forceReload) { + this.forceReload = forceReload; + return this; + } + public String getLoadSplitData() { return loadSplitData; } diff --git a/opencga-storage/opencga-storage-app/src/main/java/org/opencb/opencga/storage/app/cli/client/options/StorageVariantCommandOptions.java b/opencga-storage/opencga-storage-app/src/main/java/org/opencb/opencga/storage/app/cli/client/options/StorageVariantCommandOptions.java index 2550d6f0592..398b7f775cd 100644 --- a/opencga-storage/opencga-storage-app/src/main/java/org/opencb/opencga/storage/app/cli/client/options/StorageVariantCommandOptions.java +++ b/opencga-storage/opencga-storage-app/src/main/java/org/opencb/opencga/storage/app/cli/client/options/StorageVariantCommandOptions.java @@ -94,6 +94,9 @@ public static class GenericVariantIndexOptions { @Parameter(names = {"--load"}, description = "If present only the load stage is executed, transformation is skipped") public boolean load; + @Parameter(names = {"--force-reload"}, description = "If the file is already loaded, force a file reload") + public boolean forceReload; + @Parameter(names = {"--merge"}, description = "Currently two levels of merge are supported: \"basic\" mode merge genotypes of the same variants while \"advanced\" merge multiallelic and overlapping variants.") public String merge; diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStoragePipeline.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStoragePipeline.java index 44c063cf17b..6ed8b85434b 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStoragePipeline.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStoragePipeline.java @@ -52,9 +52,9 @@ import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.common.UriUtils; import org.opencb.opencga.core.common.YesNoAuto; +import org.opencb.opencga.core.config.storage.StorageConfiguration; import org.opencb.opencga.core.models.common.mixins.GenericRecordAvroJsonMixin; import org.opencb.opencga.storage.core.StoragePipeline; -import org.opencb.opencga.core.config.storage.StorageConfiguration; import org.opencb.opencga.storage.core.exceptions.StorageEngineException; import org.opencb.opencga.storage.core.io.managers.IOConnectorProvider; import org.opencb.opencga.storage.core.io.plain.StringDataReader; @@ -172,6 +172,16 @@ public URI preTransform(URI input) throws StorageEngineException, IOException, F } return existingStudyMetadata; }); + if (options.getBoolean(FORCE.key())) { + Integer fileId = getMetadataManager().getFileId(studyMetadata.getId(), fileName, true); + if (fileId != null) { + // File is indexed. Mark as non indexed. + getMetadataManager().updateFileMetadata(studyMetadata.getId(), fileId, fileMetadata -> { + fileMetadata.setIndexStatus(TaskMetadata.Status.NONE); + }); + logger.info("File '{}' already loaded. Force reload!", fileName); + } + } if (VariantStorageEngine.SplitData.isPartial(options) && !options.getString(LOAD_VIRTUAL_FILE.key(), "").isEmpty()) { setFileId(smm.registerPartialFile(studyMetadata.getId(), input.getPath())); diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/VariantStorageBaseTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/VariantStorageBaseTest.java index e7ceeee7970..fe5313bdc80 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/VariantStorageBaseTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/VariantStorageBaseTest.java @@ -17,8 +17,11 @@ package org.opencb.opencga.storage.core.variant; import org.apache.commons.lang3.RandomStringUtils; +import org.junit.Test; import org.junit.*; import org.junit.rules.ExpectedException; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; import org.opencb.biodata.formats.io.FileFormatException; import org.opencb.biodata.models.variant.Variant; import org.opencb.commons.datastore.core.ObjectMap; @@ -37,6 +40,7 @@ import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Method; import java.net.URI; import java.net.URISyntaxException; import java.nio.file.Files; @@ -115,6 +119,10 @@ public abstract class VariantStorageBaseTest extends GenericTest implements Vari @Rule public ExpectedException thrown = ExpectedException.none(); + @ClassRule + public static TestClassNameWatcher testClassNameWatcher = new TestClassNameWatcher(); + + @BeforeClass public static void _beforeClass() throws Exception { // System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "debug"); @@ -191,7 +199,7 @@ public static URI getPlatinumFile(int fileId) throws IOException { private static void newRootDir() throws IOException { - rootDir = Paths.get("target/test-data", "junit-opencga-storage-" + TimeUtils.getTimeMillis() + "_" + RandomStringUtils.randomAlphabetic(3)); + rootDir = Paths.get("target/test-data", "junit-" + testClassNameWatcher.getTestClassSimpleName() + "-" + TimeUtils.getTimeMillis() + "_" + RandomStringUtils.randomAlphabetic(3)); Files.createDirectories(rootDir); } @@ -199,21 +207,33 @@ public static void setRootDir(Path rootDir) { VariantStorageBaseTest.rootDir = rootDir; } - public static URI newOutputUri() throws IOException { - return newOutputUri(1, outputUri); - } - - public static URI newOutputUri(int extraCalls) throws IOException { - return newOutputUri(1 + extraCalls, outputUri); - } - - public static URI newOutputUri(int extraCalls, URI outputUri) throws IOException { + protected static URI newOutputUri() throws IOException { + String dirName = null; StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - // stackTrace[0] = "Thread.currentThread" - // stackTrace[1] = "newOutputUri" - // stackTrace[2] = caller method - String testName = stackTrace[2 + extraCalls].getMethodName(); - return newOutputUri(testName, outputUri); + for (int i = 0; i < stackTrace.length; i++) { + StackTraceElement element = stackTrace[i]; + try { + Class aClass = Class.forName(element.getClassName()); + Method method = aClass.getMethod(element.getMethodName()); + if (method.isAnnotationPresent(Test.class) + || method.isAnnotationPresent(Before.class) + || method.isAnnotationPresent(BeforeClass.class) + || method.isAnnotationPresent(After.class) + || method.isAnnotationPresent(AfterClass.class)) { + dirName = element.getMethodName(); + break; + } + } catch (ClassNotFoundException | NoSuchMethodException ignore) { + } + } + if (dirName == null) { + // stackTrace[0] = "Thread.currentThread" + // stackTrace[1] = "newOutputUri" + // stackTrace[2] = caller method + dirName = stackTrace[2].getMethodName(); + } + + return newOutputUri(dirName, outputUri); } protected static URI newOutputUri(String testName) throws IOException { @@ -434,4 +454,18 @@ public void printActiveThreads() { } System.out.println("========================================="); } + + private static class TestClassNameWatcher extends TestWatcher { + + private String testClass; + + @Override + protected void starting(Description d) { + this.testClass = d.getTestClass().getSimpleName(); + } + + public String getTestClassSimpleName() { + return this.testClass; + } + } } diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/solr/VariantSolrExternalResource.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/solr/VariantSolrExternalResource.java index 031360d3298..7ae1991221d 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/solr/VariantSolrExternalResource.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/solr/VariantSolrExternalResource.java @@ -21,20 +21,22 @@ import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.core.NodeConfig; -import org.apache.solr.core.SolrResourceLoader; import org.junit.rules.ExternalResource; import org.opencb.commons.datastore.solr.SolrManager; import org.opencb.opencga.core.common.GitRepositoryState; +import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.storage.core.exceptions.StorageEngineException; import org.opencb.opencga.storage.core.variant.VariantStorageEngine; import org.opencb.opencga.storage.core.variant.search.solr.VariantSearchManager; import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import static org.opencb.opencga.storage.core.variant.VariantStorageBaseTest.*; +import static org.opencb.opencga.storage.core.variant.VariantStorageBaseTest.DB_NAME; +import static org.opencb.opencga.storage.core.variant.VariantStorageBaseTest.getResourceUri; /** * + @@ -61,18 +63,19 @@ public VariantSolrExternalResource(boolean embeded) { protected void before() throws Throwable { super.before(); - Path rootDir = getTmpRootDir(); + Path rootDir = Paths.get("target/test-data", "junit-variant-solr-" + TimeUtils.getTimeMillis()); + Files.createDirectories(rootDir); String configSet = "opencga-variant-configset-" + GitRepositoryState.getInstance().getBuildVersion(); // Copy configuration - getResourceUri("configsets/variantsCollection/solrconfig.xml", "configsets/" + configSet + "/solrconfig.xml"); - getResourceUri("managed-schema", "configsets/" + configSet + "/managed-schema"); - getResourceUri("configsets/variantsCollection/params.json", "configsets/" + configSet + "/params.json"); - getResourceUri("configsets/variantsCollection/protwords.txt", "configsets/" + configSet + "/protwords.txt"); - getResourceUri("configsets/variantsCollection/stopwords.txt", "configsets/" + configSet + "/stopwords.txt"); - getResourceUri("configsets/variantsCollection/synonyms.txt", "configsets/" + configSet + "/synonyms.txt"); - getResourceUri("configsets/variantsCollection/lang/stopwords_en.txt", "configsets/" + configSet + "/lang/stopwords_en.txt"); + getResourceUri("configsets/variantsCollection/solrconfig.xml", "configsets/" + configSet + "/solrconfig.xml", rootDir); + getResourceUri("managed-schema", "configsets/" + configSet + "/managed-schema", rootDir); + getResourceUri("configsets/variantsCollection/params.json", "configsets/" + configSet + "/params.json", rootDir); + getResourceUri("configsets/variantsCollection/protwords.txt", "configsets/" + configSet + "/protwords.txt", rootDir); + getResourceUri("configsets/variantsCollection/stopwords.txt", "configsets/" + configSet + "/stopwords.txt", rootDir); + getResourceUri("configsets/variantsCollection/synonyms.txt", "configsets/" + configSet + "/synonyms.txt", rootDir); + getResourceUri("configsets/variantsCollection/lang/stopwords_en.txt", "configsets/" + configSet + "/lang/stopwords_en.txt", rootDir); String solrHome = rootDir.resolve("solr").toString(); diff --git a/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG005_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG005_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz new file mode 100644 index 00000000000..798a4bf531f Binary files /dev/null and b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG005_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz differ diff --git a/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG006_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG006_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz new file mode 100644 index 00000000000..2206202e390 Binary files /dev/null and b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG006_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz differ diff --git a/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG007_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG007_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz new file mode 100644 index 00000000000..a2557925cdd Binary files /dev/null and b/opencga-storage/opencga-storage-core/src/test/resources/giab_chinesse/HG007_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz differ diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTask.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTask.java index a5a6e56ef14..4d3718a6250 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTask.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTask.java @@ -376,7 +376,7 @@ public boolean getOverlappingVariants(Variant variant, int fileId, List> overlappingRecords) { String chromosome = vcfSlice.getChromosome(); int position = vcfSlice.getPosition(); - Integer resetPosition = null; + Integer resetIteratorIndex = null; boolean isAlreadyPresent = false; int firstIndex = iterator.nextIndex(); // Assume sorted VcfRecords @@ -388,8 +388,8 @@ public boolean getOverlappingVariants(Variant variant, int fileId, String alternate = vcfRecord.getAlternate(); // If the VcfRecord starts after the variant, stop looking for variants if (overlapsWith(variant, chromosome, start, end)) { - if (resetPosition == null) { - resetPosition = Math.max(iterator.previousIndex() - 1, firstIndex); + if (resetIteratorIndex == null) { + resetIteratorIndex = Math.max(iterator.previousIndex() - 1, firstIndex); } // if (skipReferenceVariants && hasAllReferenceGenotype(vcfSlice, vcfRecord)) { @@ -406,8 +406,8 @@ public boolean getOverlappingVariants(Variant variant, int fileId, overlappingRecords.add(ImmutablePair.of(vcfSlice, vcfRecord)); } else if (isRegionAfterVariantStart(start, end, variant)) { - if (resetPosition == null) { - resetPosition = Math.max(iterator.previousIndex() - 1, firstIndex); + if (resetIteratorIndex == null) { + resetIteratorIndex = Math.max(iterator.previousIndex() - 1, firstIndex); } // Shouldn't happen that the first VcfRecord from the iterator is beyond the variant to process, // and is not the first VcfRecord from the slice. @@ -429,14 +429,15 @@ public boolean getOverlappingVariants(Variant variant, int fileId, } } } - if (resetPosition == null && !iterator.hasNext()) { + if (resetIteratorIndex == null && !iterator.hasNext()) { // If the iterator reaches the end without finding any point, reset the iterator - resetPosition = firstIndex; + resetIteratorIndex = firstIndex; } // Send back the iterator - if (resetPosition != null) { -// logger.info("Reset from " + iterator.nextIndex() + " to " + resetPosition + ". fileId : " + fileId + " variant " + variant); - while (iterator.nextIndex() > resetPosition) { + if (resetIteratorIndex != null) { +// logger.info("Reset from " + iterator.nextIndex() + " to " + resetIteratorIndex +// + ". fileId : " + fileId + " variant " + variant); + while (iterator.nextIndex() > resetIteratorIndex) { iterator.previous(); } } @@ -506,10 +507,19 @@ protected LinkedHashMap getSamplePosition(Integer fileId) { }); } + /** + * Checks if the given region is entirely or partially (overlapping) after the variant start. + * + * @param start Start of a region + * @param end End of a region (might be before the start if the region represented an insertion) + * @param variant Variant to check + * @return if the region is after the variant + */ public static boolean isRegionAfterVariantStart(int start, int end, Variant variant) { - int pos = Math.min(start, end); - int variantPos = Math.min(variant.getStart(), variant.getEnd()); - return pos > variantPos; + // Get region max position. In the region represents an insertion, the start might be after the end + int regionMaxPos = Math.max(start, end); + int variantMinPos = Math.min(variant.getStart(), variant.getEnd()); + return regionMaxPos > variantMinPos; } public static boolean overlapsWith(Variant variant, String chromosome, int start, int end) { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineBNDTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineBNDTest.java index 8285823ef2e..aea720d356a 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineBNDTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineBNDTest.java @@ -19,7 +19,7 @@ public class HadoopVariantStorageEngineBNDTest extends VariantStorageEngineBNDTe @Override protected void loadFiles() throws Exception { super.loadFiles(); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineDuplicatedTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineDuplicatedTest.java index f17dedc0b8f..0082e869319 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineDuplicatedTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/HadoopVariantStorageEngineDuplicatedTest.java @@ -15,6 +15,6 @@ public class HadoopVariantStorageEngineDuplicatedTest extends VariantStorageEngi public void testDuplicatedVariant() throws Exception { super.testDuplicatedVariant(); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopMultiSampleTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopMultiSampleTest.java index 673fe944ba7..e9e99cdb884 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopMultiSampleTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/VariantHadoopMultiSampleTest.java @@ -384,7 +384,7 @@ public void testMultipleFilesConcurrent(ObjectMap extraParams) throws Exception } studyMetadata = dbAdaptor.getMetadataManager().getStudyMetadata(studyMetadata.getId()); - printVariants(studyMetadata, dbAdaptor, newOutputUri(1)); + printVariants(studyMetadata, dbAdaptor, newOutputUri()); // checkLoadedVariants(expectedVariants, dbAdaptor, PLATINUM_SKIP_VARIANTS); @@ -406,7 +406,7 @@ public void testMultipleFilesConcurrent(ObjectMap extraParams) throws Exception assertNotNull(variantFileMetadata); } - printVariants(studyMetadata, dbAdaptor, newOutputUri(1)); + printVariants(studyMetadata, dbAdaptor, newOutputUri()); } @Test @@ -708,7 +708,7 @@ public StudyMetadata testPlatinumFilesOneByOne(ObjectMap otherParams, int maxFil } } - printVariants(studyMetadata, dbAdaptor, newOutputUri(1)); + printVariants(studyMetadata, dbAdaptor, newOutputUri()); for (Variant variant : dbAdaptor) { System.out.println("variant = " + variant); diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/adaptors/HadoopVariantDBAdaptorMultiFileTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/adaptors/HadoopVariantDBAdaptorMultiFileTest.java index 884f45f39ff..be47dd08890 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/adaptors/HadoopVariantDBAdaptorMultiFileTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/adaptors/HadoopVariantDBAdaptorMultiFileTest.java @@ -43,11 +43,11 @@ public void before() throws Exception { boolean wasLoaded = loaded; super.before(); if (loaded && !wasLoaded) { - VariantHbaseTestUtils.printVariants(((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor()), newOutputUri(getClass().getSimpleName())); + VariantHbaseTestUtils.printVariants(((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor()), newOutputUri()); // for (String study : variantStorageEngine.getDBAdaptor().getStudyConfigurationManager().getStudies(null).keySet()) { // variantStorageEngine.fillMissing(study, new ObjectMap(), false); // } -// VariantHbaseTestUtils.printVariants(((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor()), newOutputUri(getClass().getSimpleName())); +// VariantHbaseTestUtils.printVariants(((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor()), newOutputUri()); } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/analysis/gwas/FisherTestDriverTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/analysis/gwas/FisherTestDriverTest.java index b083abf3488..0052e805798 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/analysis/gwas/FisherTestDriverTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/analysis/gwas/FisherTestDriverTest.java @@ -39,7 +39,7 @@ public class FisherTestDriverTest extends VariantStorageBaseTest implements Hado @Before public void setUp() throws Exception { - localOut = newOutputUri(getClass().getSimpleName()); + localOut = newOutputUri(); } @After diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTaskTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTaskTest.java index 18692c8f77a..3d9db73719e 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTaskTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTaskTest.java @@ -159,18 +159,31 @@ public void testOverlapsWith() { @Test public void testIsRegionAfterVariantStart() { - assertTrue(FillGapsTask.isRegionAfterVariantStart(100, 100, new Variant("1:100:-:T"))); - assertFalse(FillGapsTask.isRegionAfterVariantStart(100, 100, new Variant("1:100:A:T"))); - assertTrue(FillGapsTask.isRegionAfterVariantStart(101, 101, new Variant("1:100:A:T"))); - - assertFalse(FillGapsTask.isRegionAfterVariantStart(99, 99, new Variant("1:100:AAA:GGG"))); - assertFalse(FillGapsTask.isRegionAfterVariantStart(100, 100, new Variant("1:100:AAA:GGG"))); - assertFalse(FillGapsTask.isRegionAfterVariantStart(101, 100, new Variant("1:100:AAA:GGG"))); - assertTrue(FillGapsTask.isRegionAfterVariantStart(101, 101, new Variant("1:100:AAA:GGG"))); - assertTrue(FillGapsTask.isRegionAfterVariantStart(102, 102, new Variant("1:100:AAA:GGG"))); - assertTrue(FillGapsTask.isRegionAfterVariantStart(103, 103, new Variant("1:100:AAA:GGG"))); + isRegionAfterVariantStart(100, 100, "1:100:-:T", true, false); + isRegionAfterVariantStart(101, 101, "1:100:A:T", true, false); + + isRegionAfterVariantStart(99, 99, "1:100:AAA:GGG", false, false); + isRegionAfterVariantStart(100, 100, "1:100:AAA:GGG", false, true); + isRegionAfterVariantStart(101, 100, "1:100:AAA:GGG", true, true); + isRegionAfterVariantStart(101, 101, "1:100:AAA:GGG", true, true); + isRegionAfterVariantStart(102, 102, "1:100:AAA:GGG", true, true); + isRegionAfterVariantStart(103, 103, "1:100:AAA:GGG", true, false); + + isRegionAfterVariantStart(100, 100, "1:101:-:TTT", false, false); + isRegionAfterVariantStart(101, 100, "1:100:A:T", true, false); + + // Overlapping positions + isRegionAfterVariantStart(100, 110, "1:105:A:T", true, true); + isRegionAfterVariantStart(100, 100, "1:100:A:T", false, true); } + private void isRegionAfterVariantStart(int start, int end, String variantString, boolean afterVariant, boolean overlaps) { + Variant variant = new Variant(variantString); + assertEquals("isRegionAfterVariantStart", afterVariant, FillGapsTask.isRegionAfterVariantStart(start, end, variant)); + assertEquals("overlapsWith", overlaps, FillGapsTask.overlapsWith(variant, variant.getChromosome(), start, end)); + } + + @Test public void fillGapsAlreadyPresent() { FillGapsTask task = new FillGapsTask(metadataManager, this.studyMetadata, true, false, GenotypeClass.UNKNOWN_GENOTYPE); diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTest.java index b23ca96b304..3ae2a36bfbc 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/gaps/FillGapsTest.java @@ -1,6 +1,8 @@ package org.opencb.opencga.storage.hadoop.variant.gaps; import com.google.common.collect.BiMap; +import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.util.Bytes; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -26,10 +28,13 @@ import org.opencb.opencga.storage.core.variant.adaptors.GenotypeClass; import org.opencb.opencga.storage.core.variant.adaptors.VariantDBAdaptor; import org.opencb.opencga.storage.core.variant.adaptors.VariantQuery; +import org.opencb.opencga.storage.hadoop.variant.GenomeHelper; import org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageEngine; import org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions; import org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageTest; import org.opencb.opencga.storage.hadoop.variant.adaptors.VariantHadoopDBAdaptor; +import org.opencb.opencga.storage.hadoop.variant.adaptors.phoenix.VariantPhoenixKeyFactory; +import org.opencb.opencga.storage.hadoop.variant.adaptors.phoenix.VariantPhoenixSchema; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexDBAdaptor; import org.opencb.opencga.storage.hadoop.variant.index.sample.SampleIndexSchema; @@ -79,7 +84,7 @@ public void testFillGapsVcfFiles() throws Exception { inputFiles.add(getResourceUri(fileName)); } - StudyMetadata studyMetadata = load(new ObjectMap(VariantStorageOptions.GVCF.key(), false), inputFiles, newOutputUri(1)); + StudyMetadata studyMetadata = load(new ObjectMap(VariantStorageOptions.GVCF.key(), false), inputFiles, newOutputUri()); // Do not check new missing genotypes, as the input files does not have missing genotype regions testFillGapsPlatinumFiles(studyMetadata, false); @@ -217,8 +222,10 @@ public void checkConflictingFiles(StudyMetadata studyMetadata) throws Exception sampleIds.sort(Integer::compareTo); List samples = sampleIds.stream().map(samplesMap::get).collect(Collectors.toList()); + printVariants(studyMetadata, dbAdaptor, newOutputUri()); + fillGaps(variantStorageEngine, studyMetadata, samples); - printVariants(studyMetadata, dbAdaptor, newOutputUri(1)); + printVariants(studyMetadata, dbAdaptor, newOutputUri()); checkFillGaps(studyMetadata, dbAdaptor, samples, Collections.singleton("1:10020:A:T")); checkSampleIndexTable(dbAdaptor); @@ -317,6 +324,62 @@ public void testFillGapsCorpasome() throws Exception { .setSamples(Arrays.asList("ISDBM322015", "ISDBM322016", "ISDBM322017", "ISDBM322018")), new ObjectMap()); printVariants((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor(), newOutputUri()); + load(new ObjectMap(VariantStorageOptions.STUDY.key(), STUDY_NAME_2), + Collections.singletonList(getResourceUri("quartet.variants.annotated.partial.vcf.gz"))); + + checkInputValuesAreUnmodified(STUDY_NAME, STUDY_NAME_2); + } + + @Test + public void testFillGapsGiabChinesse() throws Exception { + ObjectMap options = new ObjectMap(VariantStorageOptions.GVCF.key(), true) + .append(HadoopVariantStorageOptions.ARCHIVE_CHUNK_SIZE.key(), 1000000) + .append(VariantStorageOptions.STUDY.key(), STUDY_NAME); + loadGIAB(options); + printVariants((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor(), newOutputUri()); + + variantStorageEngine.aggregateFamily(STUDY_NAME, new VariantAggregateFamilyParams() + .setSamples(Arrays.asList("HG005", "HG006", "HG007")), new ObjectMap()); + printVariants((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor(), newOutputUri()); + + options.put(VariantStorageOptions.STUDY.key(), STUDY_NAME_2); + loadGIAB(options); + + checkInputValuesAreUnmodified(STUDY_NAME, STUDY_NAME_2); + } + + private void checkInputValuesAreUnmodified(String aggregatedStudy, String referenceStudy) throws Exception { + VariantHadoopDBAdaptor dbAdaptor = getVariantStorageEngine().getDBAdaptor(); + + int studyId1 = dbAdaptor.getMetadataManager().getStudyId(aggregatedStudy); + int studyId2 = dbAdaptor.getMetadataManager().getStudyId(referenceStudy); + + dbAdaptor.getHBaseManager().act(dbAdaptor.getVariantTable(), table -> { + table.getScanner(new Scan()).iterator().forEachRemaining(r -> { + byte[] row = r.getRow(); + Variant variant = VariantPhoenixKeyFactory.extractVariantFromVariantRowKey(row); + + NavigableMap cells = r.getFamilyMap(GenomeHelper.COLUMN_FAMILY_BYTES); + for (Map.Entry entry : cells.entrySet()) { + String columnKey = Bytes.toString(entry.getKey()); + Integer studyId = VariantPhoenixSchema.extractStudyId(columnKey, false); + if (studyId != null && studyId == studyId2) { + String otherColumnKey = columnKey.replaceFirst(VariantPhoenixSchema.buildStudyColumnsPrefix(studyId2), + VariantPhoenixSchema.buildStudyColumnsPrefix(studyId1)); + byte[] thisCell = entry.getValue(); + byte[] otherCell = cells.get(Bytes.toBytes(otherColumnKey)); + assertArrayEquals(variant.toString() + " study1ColumnKey " + otherColumnKey + ", study2ColumnKey " + columnKey, + thisCell, otherCell); + } + } + }); + }); + } + + private void loadGIAB(ObjectMap options) throws Exception { + load(options, Collections.singletonList(getResourceUri("giab_chinesse/HG005_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz")), newOutputUri(), false); + load(options, Collections.singletonList(getResourceUri("giab_chinesse/HG006_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz")), newOutputUri(), false); + load(options, Collections.singletonList(getResourceUri("giab_chinesse/HG007_GRCh38_1_22_v4.2.1_benchmark.partial.vcf.gz")), newOutputUri(), false); } @Test @@ -325,12 +388,12 @@ public void testFillGapsImpact() throws Exception { ObjectMap extraParams = new ObjectMap(VariantStorageOptions.LOAD_HOM_REF.key(), true); // extraParams.append(VariantStorageOptions.TRANSFORM_FORMAT.key(), "proto"); // extraParams.append(VariantStorageOptions.GVCF.key(), true); - StudyMetadata study = load(extraParams, Collections.singletonList(getResourceUri("impact/HG005_GRCh38_1_22_v4.2.1_benchmark.tuned.chr6-31.vcf.gz")), uri, false); + load(extraParams, Collections.singletonList(getResourceUri("impact/HG005_GRCh38_1_22_v4.2.1_benchmark.tuned.chr6-31.vcf.gz")), uri, false); load(extraParams, Collections.singletonList(getResourceUri("impact/HG006_GRCh38_1_22_v4.2.1_benchmark.tuned.chr6-31.vcf.gz")), uri, false); load(extraParams, Collections.singletonList(getResourceUri("impact/HG007_GRCh38_1_22_v4.2.1_benchmark.tuned.chr6-31.vcf.gz")), uri, false); printVariants((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor(), newOutputUri()); - variantStorageEngine.aggregateFamily(study.getName(), new VariantAggregateFamilyParams() + variantStorageEngine.aggregateFamily(STUDY_NAME, new VariantAggregateFamilyParams() .setSamples(Arrays.asList("HG005", "HG006", "HG007")), new ObjectMap()); printVariants((VariantHadoopDBAdaptor) variantStorageEngine.getDBAdaptor(), newOutputUri()); @@ -373,11 +436,11 @@ private StudyMetadata loadPlatinum(ObjectMap extraParams, int from, int to) thro inputFiles.add(getResourceUri(fileName)); } - return load(extraParams, inputFiles, newOutputUri(1)); + return load(extraParams, inputFiles, newOutputUri()); } private StudyMetadata load(ObjectMap extraParams, List inputFiles) throws Exception { - return load(extraParams, inputFiles, newOutputUri(1)); + return load(extraParams, inputFiles, newOutputUri()); } private StudyMetadata load(ObjectMap extraParams, List inputFiles, URI outputUri) throws Exception { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/io/HadoopVariantExporterTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/io/HadoopVariantExporterTest.java index d0c7fcfc95c..ddb7e993549 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/io/HadoopVariantExporterTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/io/HadoopVariantExporterTest.java @@ -235,7 +235,7 @@ public void exportFromSearchIndex() throws Exception { public URI getOutputUri(String fileName) throws IOException { if (exportToLocal) { - return newOutputUri(1).resolve(fileName); + return newOutputUri().resolve(fileName); } else { return URI.create("hdfs:///" + fileName); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerMultiFilesTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerMultiFilesTest.java index d63e4c9b6cc..3cce6445d52 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerMultiFilesTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerMultiFilesTest.java @@ -51,7 +51,7 @@ public void tearDown() throws Exception { public void calculateStatsMultiCohortsAfterFillMissingTest() throws Exception { VariantStorageEngine storageEngine = getVariantStorageEngine(); storageEngine.aggregate(studyMetadata.getName(), new VariantAggregateParams(false, false), new ObjectMap()); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); calculateStatsMultiCohortsTest(); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerTest.java index abebe1e78ab..c98505eeafa 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/HadoopVariantStatisticsManagerTest.java @@ -82,14 +82,14 @@ public void tearDown() throws Exception { public void calculateStatsMultiCohortsTest() throws Exception { super.calculateStatsMultiCohortsTest(); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); //delete all stats List cohorts = new ArrayList<>(); metadataManager.getCalculatedCohorts(studyMetadata.getId()).forEach(c -> cohorts.add(c.getName())); variantStorageEngine.deleteStats(studyMetadata.getName(), cohorts, new ObjectMap()); checkCohorts(dbAdaptor, studyMetadata); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); super.calculateStatsMultiCohortsTest(); } @@ -98,14 +98,14 @@ public void calculateStatsMultiCohortsTest() throws Exception { public void calculateStatsSeparatedCohortsTest() throws Exception { super.calculateStatsSeparatedCohortsTest(); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); //delete all stats List cohorts = new ArrayList<>(); metadataManager.getCalculatedCohorts(studyMetadata.getId()).forEach(c -> cohorts.add(c.getName())); variantStorageEngine.deleteStats(studyMetadata.getName(), cohorts, new ObjectMap()); checkCohorts(dbAdaptor, studyMetadata); - VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(getVariantStorageEngine().getDBAdaptor(), newOutputUri()); super.calculateStatsSeparatedCohortsTest(); } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/SampleVariantStatsTest.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/SampleVariantStatsTest.java index 1fa042eed74..5a3a0a1ea54 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/SampleVariantStatsTest.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/test/java/org/opencb/opencga/storage/hadoop/variant/stats/SampleVariantStatsTest.java @@ -69,7 +69,7 @@ public void before() throws Exception { engine.annotate(outputUri, new ObjectMap()); engine.aggregateFamily(study, new VariantAggregateFamilyParams(family, false), new ObjectMap()); - VariantHbaseTestUtils.printVariants(engine.getDBAdaptor(), newOutputUri(getTestName().getMethodName())); + VariantHbaseTestUtils.printVariants(engine.getDBAdaptor(), newOutputUri()); stats = computeSampleVariantStatsDirectly(); }