diff --git a/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/admin/executors/ValidationCommandExecutor.java b/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/admin/executors/ValidationCommandExecutor.java index 81a2809bd..612e8d6a3 100644 --- a/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/admin/executors/ValidationCommandExecutor.java +++ b/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/admin/executors/ValidationCommandExecutor.java @@ -26,8 +26,10 @@ import org.opencb.cellbase.app.cli.admin.AdminCliOptionsParser; import org.opencb.cellbase.app.cli.admin.executors.validation.VEPVariant; import org.opencb.cellbase.core.exception.CellBaseException; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.lib.managers.CellBaseManagerFactory; +import org.opencb.cellbase.lib.managers.DataReleaseManager; import org.opencb.cellbase.lib.variant.annotation.VariantAnnotationCalculator; import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.commons.utils.FileUtils; @@ -44,7 +46,7 @@ public class ValidationCommandExecutor extends CommandExecutor { -// private MongoDBAdaptorFactory dbAdaptorFactory; + // private MongoDBAdaptorFactory dbAdaptorFactory; private AdminCliOptionsParser.ValidationCommandOptions validationCommandOptions; private ObjectMapper objectMapper; private String resultsFile; @@ -67,12 +69,15 @@ public ValidationCommandExecutor(AdminCliOptionsParser.ValidationCommandOptions public void execute() { checkFilesExist(); + VariantAnnotationCalculator variantAnnotationCalculator; CellBaseManagerFactory cellBaseManagerFactory = new CellBaseManagerFactory(configuration); -// dbAdaptorFactory = new MongoDBAdaptorFactory(configuration); - VariantAnnotationCalculator variantAnnotationCalculator = null; + try { + DataReleaseManager dataReleaseManager = cellBaseManagerFactory.getDataReleaseManager(validationCommandOptions.species, + validationCommandOptions.assembly); + DataRelease dataRelease = dataReleaseManager.get(validationCommandOptions.dataRelease); variantAnnotationCalculator = new VariantAnnotationCalculator(validationCommandOptions.species, - validationCommandOptions.assembly, validationCommandOptions.dataRelease, validationCommandOptions.apiKey, + validationCommandOptions.assembly, dataRelease, validationCommandOptions.apiKey, cellBaseManagerFactory); } catch (CellBaseException e) { e.printStackTrace(); @@ -241,7 +246,7 @@ private void compare(BufferedWriter mismatchWriter, BufferedWriter matchWriter, // skip proteins if we are only processing transcripts // skip transcripts if we are only processing proteins if (("transcript".equalsIgnoreCase(category) && entityId.startsWith("ENSP")) - || ("protein".equalsIgnoreCase(category) && entityId.startsWith("ENST"))) { + || ("protein".equalsIgnoreCase(category) && entityId.startsWith("ENST"))) { continue; } diff --git a/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/main/executors/VariantAnnotationCommandExecutor.java b/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/main/executors/VariantAnnotationCommandExecutor.java index c08ce2ed8..d2285d555 100644 --- a/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/main/executors/VariantAnnotationCommandExecutor.java +++ b/cellbase-app/src/main/java/org/opencb/cellbase/app/cli/main/executors/VariantAnnotationCommandExecutor.java @@ -44,10 +44,12 @@ import org.opencb.cellbase.client.config.ClientConfiguration; import org.opencb.cellbase.client.rest.CellBaseClient; import org.opencb.cellbase.core.exception.CellBaseException; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.lib.impl.core.MongoDBAdaptorFactory; import org.opencb.cellbase.lib.impl.core.VariantMongoDBAdaptor; import org.opencb.cellbase.lib.managers.CellBaseManagerFactory; +import org.opencb.cellbase.lib.managers.DataReleaseManager; import org.opencb.cellbase.lib.managers.GenomeManager; import org.opencb.cellbase.lib.managers.VariantManager; import org.opencb.cellbase.lib.variant.annotation.CellBaseNormalizerSequenceAdaptor; @@ -202,9 +204,10 @@ private boolean runAnnotation() throws Exception { List variants = Variant.parseVariants(variantAnnotationCommandOptions.variant); if (local) { CellBaseManagerFactory cellBaseManagerFactory = new CellBaseManagerFactory(configuration); - VariantAnnotationCalculator variantAnnotationCalculator = - new VariantAnnotationCalculator(this.species, this.assembly, variantAnnotationCommandOptions.dataRelease, - variantAnnotationCommandOptions.apiKey, cellBaseManagerFactory); + DataReleaseManager dataReleaseManager = cellBaseManagerFactory.getDataReleaseManager(species, assembly); + DataRelease dataRelease = dataReleaseManager.get(variantAnnotationCommandOptions.dataRelease); + VariantAnnotationCalculator variantAnnotationCalculator = new VariantAnnotationCalculator(species, assembly, + dataRelease, variantAnnotationCommandOptions.apiKey, cellBaseManagerFactory); List> annotationByVariantList = variantAnnotationCalculator.getAnnotationByVariantList(variants, serverQueryOptions); @@ -479,9 +482,10 @@ private VariantAnnotator createCellBaseAnnotator() throws CellBaseException { // corresponding *AnnotatorTask since the AnnotatorTasks need that the number of sent variants coincides // equals the number of returned annotations CellBaseManagerFactory cellBaseManagerFactory = new CellBaseManagerFactory(configuration); - return new CellBaseLocalVariantAnnotator(new VariantAnnotationCalculator(species, assembly, - variantAnnotationCommandOptions.dataRelease, variantAnnotationCommandOptions.apiKey, cellBaseManagerFactory), - serverQueryOptions); + DataReleaseManager dataReleaseManager = cellBaseManagerFactory.getDataReleaseManager(species, assembly); + DataRelease dataRelease = dataReleaseManager.get(variantAnnotationCommandOptions.dataRelease); + return new CellBaseLocalVariantAnnotator(new VariantAnnotationCalculator(species, assembly, dataRelease, + variantAnnotationCommandOptions.apiKey, cellBaseManagerFactory), serverQueryOptions); } else { try { ClientConfiguration clientConfiguration = ClientConfiguration.load(getClass() diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/DataReleaseManager.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/DataReleaseManager.java index d7c924afa..c768cb15d 100644 --- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/DataReleaseManager.java +++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/DataReleaseManager.java @@ -215,28 +215,28 @@ public String getMaintainerContact() { return configuration.getMaintainerContact(); } - public int checkDataRelease(int inRelease) throws CellBaseException { - int outRelease = inRelease; - if (outRelease < 0) { - throw new CellBaseException("Invalid data release " + outRelease + ". Data release must be greater or equal to 0"); + public DataRelease checkDataRelease(int inRelease) throws CellBaseException { + DataRelease outRelease; + if (inRelease < 0) { + throw new CellBaseException("Invalid data release " + inRelease + ". Data release must be greater or equal to 0"); } - if (outRelease == 0) { + if (inRelease == 0) { String[] split = GitRepositoryState.get().getBuildVersion().split("[.-]"); String version = "v" + split[0] + "." + split[1]; - outRelease = getDefault(version).getRelease(); - logger.info("Using data release 0: it means to take default data release '" + outRelease + "' for CellBase version '" - + version + "'"); + outRelease = getDefault(version); + logger.info("Using data release 0: it means to take default data release '" + outRelease.getRelease() + + "' for CellBase version '" + version + "'"); return outRelease; } List dataReleases = getReleases().getResults(); for (DataRelease dataRelease : dataReleases) { - if (outRelease == dataRelease.getRelease()) { - return outRelease; + if (inRelease == dataRelease.getRelease()) { + return dataRelease; } } - throw new CellBaseException("Invalid data release " + outRelease + " for species = " + species + ", assembly = " + assembly + throw new CellBaseException("Invalid data release " + inRelease + " for species = " + species + ", assembly = " + assembly + ". Valid data releases are: " + StringUtils.join(dataReleases.stream().map(dr -> dr.getRelease()) .collect(Collectors.toList()), ",")); } diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/VariantManager.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/VariantManager.java index 016544d55..28f5c70fa 100644 --- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/VariantManager.java +++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/managers/VariantManager.java @@ -32,6 +32,7 @@ import org.opencb.cellbase.core.api.query.QueryException; import org.opencb.cellbase.core.config.CellBaseConfiguration; import org.opencb.cellbase.core.exception.CellBaseException; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.core.variant.AnnotationBasedPhasedQueryManager; import org.opencb.cellbase.lib.impl.core.CellBaseCoreDBAdaptor; @@ -89,10 +90,10 @@ public CellBaseDataResult get(Query query, QueryOptions queryOptions, int dataRe return variantDBAdaptor.nativeGet(query, queryOptions, dataRelease); } - public List> getHgvsByVariant(String variants, int dataRelease) + public List> getHgvsByVariant(String variants, DataRelease dataRelease) throws CellBaseException, QueryException, IllegalAccessException { List variantList = parseVariants(variants); - HgvsCalculator hgvsCalculator = new HgvsCalculator(genomeManager, dataRelease); + HgvsCalculator hgvsCalculator = new HgvsCalculator(genomeManager, dataRelease.getRelease()); List> results = new ArrayList<>(); VariantAnnotationCalculator variantAnnotationCalculator = new VariantAnnotationCalculator(species, assembly, dataRelease, "", cellbaseManagerFactory); @@ -116,7 +117,7 @@ public List> getHgvsByVariant(String variants, int da * @throws CellBaseException if the species is incorrect */ public CellBaseDataResult getNormalizationByVariant(String variants, boolean decompose, boolean leftAlign, - int dataRelease) throws CellBaseException { + DataRelease dataRelease) throws CellBaseException { List variantList = parseVariants(variants); VariantAnnotationCalculator variantAnnotationCalculator = new VariantAnnotationCalculator(species, assembly, dataRelease, "", cellbaseManagerFactory); @@ -128,7 +129,7 @@ public CellBaseDataResult getNormalizationByVariant(String variants, bo // Set left alignment behaviour if (leftAlign) { variantAnnotationCalculator.getNormalizer().getConfig().enableLeftAlign(new CellBaseNormalizerSequenceAdaptor(genomeManager, - dataRelease)); + dataRelease.getRelease())); } else { variantAnnotationCalculator.getNormalizer().getConfig().disableLeftAlign(); } @@ -150,7 +151,7 @@ public List> getAnnotationByVariant(QueryO Integer cnvExtraPadding, Boolean checkAminoAcidChange, String consequenceTypeSource, - int dataRelease, + DataRelease dataRelease, String apiKey) throws ExecutionException, InterruptedException, CellBaseException, QueryException, IllegalAccessException { List variantList = parseVariants(variants); diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java index a16239e87..efddbe716 100644 --- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java +++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java @@ -34,7 +34,9 @@ import org.opencb.cellbase.core.api.query.LogicalList; import org.opencb.cellbase.core.api.query.QueryException; import org.opencb.cellbase.core.exception.CellBaseException; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResult; +import org.opencb.cellbase.lib.EtlCommons; import org.opencb.cellbase.lib.managers.*; import org.opencb.cellbase.lib.variant.VariantAnnotationUtils; import org.opencb.cellbase.lib.variant.annotation.futures.FuturePharmacogenomicsAnnotator; @@ -72,7 +74,7 @@ public class VariantAnnotationCalculator { private RepeatsManager repeatsManager; private ProteinManager proteinManager; private PharmacogenomicsManager pharmacogenomicsManager; - private int dataRelease; + private DataRelease dataRelease; private String apiKey; private Set annotatorSet; private List includeGeneFields; @@ -96,7 +98,7 @@ public class VariantAnnotationCalculator { private static final ExecutorService CACHED_THREAD_POOL = Executors.newCachedThreadPool(); private static Logger logger = LoggerFactory.getLogger(VariantAnnotationCalculator.class); - public VariantAnnotationCalculator(String species, String assembly, int dataRelease, String apiKey, + public VariantAnnotationCalculator(String species, String assembly, DataRelease dataRelease, String apiKey, CellBaseManagerFactory cellbaseManagerFactory) throws CellBaseException { this.genomeManager = cellbaseManagerFactory.getGenomeManager(species, assembly); this.variantManager = cellbaseManagerFactory.getVariantManager(species, assembly); @@ -107,16 +109,16 @@ public VariantAnnotationCalculator(String species, String assembly, int dataRele this.repeatsManager = cellbaseManagerFactory.getRepeatsManager(species, assembly); this.pharmacogenomicsManager = cellbaseManagerFactory.getPharmacogenomicsManager(species, assembly); - // Check data release - this.dataRelease = cellbaseManagerFactory.getDataReleaseManager(species, assembly).checkDataRelease(dataRelease); - logger.info("Variant annotation calculator using data release {}", this.dataRelease); + // Init data release and API key + this.dataRelease = dataRelease; + logger.info("Variant annotation calculator using data release {}", this.dataRelease.getRelease()); this.apiKey = apiKey; // Initialises normaliser configuration with default values. HEADS UP: configuration might be updated // at parseQueryParam this.normalizer = new VariantNormalizer(getNormalizerConfig()); - hgvsCalculator = new HgvsCalculator(genomeManager, this.dataRelease); + hgvsCalculator = new HgvsCalculator(genomeManager, this.dataRelease.getRelease()); logger.debug("VariantAnnotationMongoDBAdaptor: in 'constructor'"); } @@ -127,7 +129,7 @@ private VariantNormalizer.VariantNormalizerConfig getNormalizerConfig() { .setNormalizeAlleles(false) .setDecomposeMNVs(decompose); if (leftAlign) { - variantNormalizerConfig.enableLeftAlign(new CellBaseNormalizerSequenceAdaptor(genomeManager, dataRelease)); + variantNormalizerConfig.enableLeftAlign(new CellBaseNormalizerSequenceAdaptor(genomeManager, dataRelease.getRelease())); } else { variantNormalizerConfig.disableLeftAlign(); } @@ -144,7 +146,7 @@ public CellBaseDataResult getAllConsequenceTypesByVariant(Variant variant, Query List geneList = getAffectedGenes(batchGeneList, variant); // TODO the last 'true' parameter needs to be changed by annotatorSet.contains("regulatory") once is ready - List consequenceTypeList = getConsequenceTypeList(variant, geneList, true, queryOptions, dataRelease); + List consequenceTypeList = getConsequenceTypeList(variant, geneList, true, queryOptions, dataRelease.getRelease()); CellBaseDataResult cellBaseDataResult = new CellBaseDataResult(); cellBaseDataResult.setId(variant.toString()); @@ -431,7 +433,7 @@ private List getTargets(Gene mirna) throws QueryException, Ille } } GeneQuery geneQuery = new GeneQuery(); - geneQuery.setDataRelease(dataRelease); + geneQuery.setDataRelease(dataRelease.getRelease()); geneQuery.setAnnotationTargets(new LogicalList<>(mirnas, false)); List geneMirnaTargets = new ArrayList<>(); List genes = (geneManager.search(geneQuery)).getResults(); @@ -441,7 +443,7 @@ private List getTargets(Gene mirna) throws QueryException, Ille return geneMirnaTargets; } - private List runAnnotationProcess(List normalizedVariantList, int dataRelease) + private List runAnnotationProcess(List normalizedVariantList, DataRelease dataRelease) throws InterruptedException, ExecutionException, QueryException, IllegalAccessException, CellBaseException { long globalStartTime = System.currentTimeMillis(); @@ -459,14 +461,15 @@ private List runAnnotationProcess(List normalizedVar if (annotatorSet.contains("variation") || annotatorSet.contains("populationFrequencies")) { futureVariationAnnotator = new FutureVariationAnnotator(normalizedVariantList, new QueryOptions("include", "id,annotation.populationFrequencies,annotation.additionalAttributes.dgvSpecificAttributes") - .append("imprecise", imprecise), dataRelease); + .append("imprecise", imprecise), dataRelease.getRelease()); variationFuture = CACHED_THREAD_POOL.submit(futureVariationAnnotator); } FutureConservationAnnotator futureConservationAnnotator = null; Future>> conservationFuture = null; if (annotatorSet.contains("conservation")) { - futureConservationAnnotator = new FutureConservationAnnotator(normalizedVariantList, QueryOptions.empty(), dataRelease); + futureConservationAnnotator = new FutureConservationAnnotator(normalizedVariantList, QueryOptions.empty(), + dataRelease.getRelease()); conservationFuture = CACHED_THREAD_POOL.submit(futureConservationAnnotator); } @@ -474,7 +477,7 @@ private List runAnnotationProcess(List normalizedVar Future>> variantFunctionalScoreFuture = null; if (annotatorSet.contains("functionalScore")) { futureVariantFunctionalScoreAnnotator = new FutureVariantFunctionalScoreAnnotator(normalizedVariantList, QueryOptions.empty(), - dataRelease); + dataRelease.getRelease()); variantFunctionalScoreFuture = CACHED_THREAD_POOL.submit(futureVariantFunctionalScoreAnnotator); } @@ -493,29 +496,30 @@ private List runAnnotationProcess(List normalizedVar FutureRepeatsAnnotator futureRepeatsAnnotator = null; Future>> repeatsFuture = null; if (annotatorSet.contains("repeats")) { - futureRepeatsAnnotator = new FutureRepeatsAnnotator(normalizedVariantList, dataRelease); + futureRepeatsAnnotator = new FutureRepeatsAnnotator(normalizedVariantList, dataRelease.getRelease()); repeatsFuture = CACHED_THREAD_POOL.submit(futureRepeatsAnnotator); } FutureCytobandAnnotator futureCytobandAnnotator = null; Future>> cytobandFuture = null; if (annotatorSet.contains("cytoband")) { - futureCytobandAnnotator = new FutureCytobandAnnotator(normalizedVariantList, QueryOptions.empty(), dataRelease); + futureCytobandAnnotator = new FutureCytobandAnnotator(normalizedVariantList, QueryOptions.empty(), dataRelease.getRelease()); cytobandFuture = CACHED_THREAD_POOL.submit(futureCytobandAnnotator); } FutureSpliceScoreAnnotator futureSpliceScoreAnnotator = null; Future>> spliceScoreFuture = null; if (annotatorSet.contains("consequenceType")) { - futureSpliceScoreAnnotator = new FutureSpliceScoreAnnotator(normalizedVariantList, QueryOptions.empty(), dataRelease); + futureSpliceScoreAnnotator = new FutureSpliceScoreAnnotator(normalizedVariantList, QueryOptions.empty(), + dataRelease.getRelease()); spliceScoreFuture = CACHED_THREAD_POOL.submit(futureSpliceScoreAnnotator); } FuturePharmacogenomicsAnnotator futurePharmacogenomicsAnnotator = null; Future>> pharmacogenomicsFuture = null; - if (annotatorSet.contains("pharmacogenomics")) { - futurePharmacogenomicsAnnotator = new FuturePharmacogenomicsAnnotator(normalizedVariantList, QueryOptions.empty(), dataRelease, - pharmacogenomicsManager, logger); + if (annotatorSet.contains("pharmacogenomics") && dataRelease.getCollections().containsKey(EtlCommons.PHARMACOGENOMICS_DATA)) { + futurePharmacogenomicsAnnotator = new FuturePharmacogenomicsAnnotator(normalizedVariantList, QueryOptions.empty(), + dataRelease.getRelease(), pharmacogenomicsManager, logger); pharmacogenomicsFuture = CACHED_THREAD_POOL.submit(futurePharmacogenomicsAnnotator); } @@ -580,10 +584,10 @@ private List runAnnotationProcess(List normalizedVar if (annotatorSet.contains("consequenceType")) { try { List consequenceTypeList = getConsequenceTypeList(variant, affectedGenes, true, QueryOptions.empty(), - dataRelease); + dataRelease.getRelease()); variantAnnotation.setConsequenceTypes(consequenceTypeList); if (phased) { - checkAndAdjustPhasedConsequenceTypes(variant, variantBuffer, dataRelease); + checkAndAdjustPhasedConsequenceTypes(variant, variantBuffer, dataRelease.getRelease()); } variantAnnotation .setDisplayConsequenceType(getMostSevereConsequenceType(variant.getAnnotation().getConsequenceTypes())); @@ -626,7 +630,7 @@ private List runAnnotationProcess(List normalizedVar // Adjust phase of two last variants - if still anything remaining to adjust. This can happen if the two last // variants in the batch are phased and the distance between them < 3nts if (phased && variantBuffer.size() > 1) { - adjustPhasedConsequenceTypes(variantBuffer.toArray(), dataRelease); + adjustPhasedConsequenceTypes(variantBuffer.toArray(), dataRelease.getRelease()); } logger.debug("Main loop iteration annotation performance is {}ms for {} variants", System.currentTimeMillis() @@ -680,7 +684,7 @@ public List getBatchGeneList(List variantList) List geneList = new ArrayList<>(); GeneQuery geneQuery = new GeneQuery(); - geneQuery.setDataRelease(dataRelease); + geneQuery.setDataRelease(dataRelease.getRelease()); geneQuery.setIncludes(includeGeneFields); geneQuery.setRegions(regionList); @@ -732,7 +736,7 @@ private void parseQueryParam(QueryOptions queryOptions) { logger.debug("leftAlign = {}", leftAlign); // Must update normaliser configuration since normaliser was created on constructor if (leftAlign) { - normalizer.getConfig().enableLeftAlign(new CellBaseNormalizerSequenceAdaptor(genomeManager, dataRelease)); + normalizer.getConfig().enableLeftAlign(new CellBaseNormalizerSequenceAdaptor(genomeManager, dataRelease.getRelease())); } else { normalizer.getConfig().disableLeftAlign(); } @@ -1327,7 +1331,7 @@ private boolean[] getRegulatoryRegionOverlaps(String chromosome, Integer positio boolean[] overlapsRegulatoryRegion = {false, false}; RegulationQuery query = new RegulationQuery(); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); query.setIncludes(Collections.singletonList(REGULATORY_REGION_FEATURE_TYPE_ATTRIBUTE)); query.setRegions(Collections.singletonList(new Region(chromosome, position))); CellBaseDataResult cellBaseDataResult = regulationManager.search(query); @@ -1355,7 +1359,7 @@ private boolean[] getRegulatoryRegionOverlaps(String chromosome, Integer start, boolean[] overlapsRegulatoryRegion = {false, false}; RegulationQuery query = new RegulationQuery(); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); query.setExcludes(Collections.singletonList("_id")); query.setIncludes(Collections.singletonList("chromosome")); query.setLimit(1); @@ -1718,7 +1722,7 @@ class FutureClinicalAnnotator implements Callable> call() throws Exception { long startTime = System.currentTimeMillis(); List> clinicalCellBaseDataResultList = clinicalManager.getByVariant(variantList, batchGeneList, - queryOptions, dataRelease); + queryOptions, dataRelease.getRelease()); logger.debug("Clinical query performance is {}ms for {} variants", System.currentTimeMillis() - startTime, variantList.size()); return clinicalCellBaseDataResultList; } diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/GenericMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/GenericMongoDBAdaptorTest.java index b152e6ad6..1b217c671 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/GenericMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/GenericMongoDBAdaptorTest.java @@ -46,7 +46,6 @@ import static org.opencb.cellbase.lib.EtlCommons.PHARMACOGENOMICS_DATA; import static org.opencb.cellbase.lib.EtlCommons.PUBMED_DATA; -import static org.opencb.cellbase.lib.db.MongoDBManager.DBNAME_SEPARATOR; /** * Created by fjlopez on 18/09/15. @@ -54,7 +53,7 @@ public class GenericMongoDBAdaptorTest { private DataReleaseManager dataReleaseManager; - protected int dataRelease; + protected DataRelease dataRelease; protected String apiKey; protected String cellBaseName; @@ -118,7 +117,7 @@ protected void initDB() throws IOException, ExecutionException, ClassNotFoundExc } else if (dataReleaseList.size() != 1) { throw new CellBaseException("Something wrong with the CellBase dataset, it must contain only ONE data release"); } else { - dataRelease = dataReleaseList.get(0).getRelease(); + dataRelease = dataReleaseList.get(0); } } @@ -145,7 +144,7 @@ private void downloadAndPopulate() throws IOException, ExecutionException, Class } // Populate mongoDB from the downloaded dataset - dataRelease = dataReleaseManager.createRelease().getRelease(); + dataRelease = dataReleaseManager.createRelease(); // Genome: genome_sequence.json.gz, genome_info.json.gz loadData("genome_info", "genome_info", baseDir.resolve("genome_info.json.gz")); @@ -161,7 +160,7 @@ private void downloadAndPopulate() throws IOException, ExecutionException, Class loadData("conservation", "conservation", file.toPath(), true); } } - dataReleaseManager.update(dataRelease, "conservation", "conservation", Collections.emptyList()); + dataReleaseManager.update(dataRelease.getRelease(), "conservation", "conservation", Collections.emptyList()); // Regulatory regions: regulatory_region.json.gz loadData("regulatory_region", "regulatory_region", baseDir.resolve("regulatory_region.json.gz")); @@ -175,7 +174,7 @@ private void downloadAndPopulate() throws IOException, ExecutionException, Class loadData("protein_functional_prediction", "protein_functional_prediction", file.toPath(), true); } } - dataReleaseManager.update(dataRelease, "protein_functional_prediction", "protein_functional_prediction", Collections.emptyList()); + dataReleaseManager.update(dataRelease.getRelease(), "protein_functional_prediction", "protein_functional_prediction", Collections.emptyList()); // Variation: variation_chr_all.json.gz loadData("variation", "variation", baseDir.resolve("variation_chr_all.json.gz")); @@ -196,7 +195,7 @@ private void downloadAndPopulate() throws IOException, ExecutionException, Class // splice_score loadData("splice_score", "splice_score", baseDir.resolve("splice_score/spliceai/splice_score_all.json.gz"), true); loadData("splice_score", "splice_score", baseDir.resolve("splice_score/mmsplice/splice_score_all.json.gz"), true); - dataReleaseManager.update(dataRelease, "splice_score", "splice_score", Collections.emptyList()); + dataReleaseManager.update(dataRelease.getRelease(), "splice_score", "splice_score", Collections.emptyList()); // clinical_variants.full.json.gz loadData("clinical_variants", "clinical_variants", baseDir.resolve("clinical_variants.full.json.gz")); @@ -220,9 +219,9 @@ private void loadData(String collection, String data, Path filePath, boolean ski IllegalAccessException, LoaderException, CellBaseException { if (filePath.toFile().exists()) { logger.info("Loading (" + collection + ", " + data + ") from file " + filePath); - loadRunner.load(filePath, collection, dataRelease); + loadRunner.load(filePath, collection, dataRelease.getRelease()); if (!skipUpdate) { - dataReleaseManager.update(dataRelease, collection, data, Collections.emptyList()); + dataReleaseManager.update(dataRelease.getRelease(), collection, data, Collections.emptyList()); } } else { logger.error("(" + collection + ", " + data + ") not loading: file " + filePath + "does not exist"); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/CellBaseNormalizerSequenceAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/CellBaseNormalizerSequenceAdaptorTest.java index a58b07021..8b9bc28a9 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/CellBaseNormalizerSequenceAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/CellBaseNormalizerSequenceAdaptorTest.java @@ -31,7 +31,7 @@ public class CellBaseNormalizerSequenceAdaptorTest extends GenericMongoDBAdapto public CellBaseNormalizerSequenceAdaptorTest() throws CellBaseException { super(); cellBaseNormalizerSequenceAdaptor = new CellBaseNormalizerSequenceAdaptor( - cellBaseManagerFactory.getGenomeManager(SPECIES, ASSEMBLY), dataRelease); + cellBaseManagerFactory.getGenomeManager(SPECIES, ASSEMBLY), dataRelease.getRelease()); } @Test diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ClinicalMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ClinicalMongoDBAdaptorTest.java index a0dc6a3da..f5d7bd887 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ClinicalMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ClinicalMongoDBAdaptorTest.java @@ -16,11 +16,7 @@ package org.opencb.cellbase.lib.impl.core; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.MapperFeature; -import com.fasterxml.jackson.databind.ObjectMapper; import org.bson.conversions.Bson; -import org.eclipse.jetty.util.ajax.JSON; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,15 +34,10 @@ import org.opencb.cellbase.lib.managers.ClinicalManager; import org.opencb.commons.datastore.core.QueryOptions; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URISyntaxException; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.*; -import java.util.zip.GZIPInputStream; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; import static org.junit.jupiter.api.Assertions.*; @@ -116,7 +107,7 @@ public void phasedQueriesTest() throws Exception { List> variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); CellBaseDataResult variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("X", @@ -164,7 +155,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); variantCellBaseDataResult = variantCellBaseDataResultList.get(0); @@ -202,7 +193,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("X", @@ -250,7 +241,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); @@ -298,7 +289,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); @@ -347,7 +338,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("1", @@ -384,7 +375,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Collections.singletonList(variant), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(1, variantCellBaseDataResultList.size()); variantCellBaseDataResult = variantCellBaseDataResultList.get(0); @@ -409,7 +400,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Arrays.asList(variant, variant1), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("1", @@ -446,7 +437,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Collections.singletonList(variant), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(1, variantCellBaseDataResultList.size()); variantCellBaseDataResult = variantCellBaseDataResultList.get(0); @@ -460,7 +451,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Collections.singletonList(new Variant("14", 55369176, "G", "A")), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(1, variantCellBaseDataResultList.size()); variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("14", @@ -479,7 +470,7 @@ public void phasedQueriesTest() throws Exception { Arrays.asList(new Variant("1", 115256528, "T", "C"), new Variant("1", 115256529, "T", "A")), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, new Variant("1", @@ -507,7 +498,7 @@ public void phasedQueriesTest() throws Exception { variantCellBaseDataResultList = clinicalManager.getByVariant( Collections.singletonList(new Variant("1", 115256528, "T", "C")), Collections.emptyList(), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(1, variantCellBaseDataResultList.size()); variantCellBaseDataResult = variantCellBaseDataResultList.get(0); @@ -545,7 +536,7 @@ public void proteinChangeMatchTest() throws Exception { List> queryResultList = clinicalManager.getByVariant( Collections.singletonList(new Variant("2:170361068:G:C")), loadGeneList(), - new QueryOptions(ParamConstants.QueryParams.CHECK_AMINO_ACID_CHANGE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.CHECK_AMINO_ACID_CHANGE.key(), true), dataRelease.getRelease()); assertEquals(1, queryResultList.size()); CellBaseDataResult queryResult = queryResultList.get(0); @@ -556,7 +547,7 @@ public void proteinChangeMatchTest() throws Exception { private List loadGeneList() throws CellBaseException, QueryException, IllegalAccessException { GeneQuery geneQuery = new GeneQuery(); - geneQuery.setDataRelease(dataRelease); + geneQuery.setDataRelease(dataRelease.getRelease()); CellBaseDataResult results = cellBaseManagerFactory.getGeneManager(SPECIES, ASSEMBLY).search(geneQuery); return results.getResults(); // ObjectMapper jsonObjectMapper = new ObjectMapper(); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GeneMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GeneMongoDBAdaptorTest.java index d09f458ab..e412174a4 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GeneMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GeneMongoDBAdaptorTest.java @@ -53,7 +53,7 @@ public void testQueryId() throws Exception { Map paramMap = new HashMap<>(); paramMap.put("id", "ENSG00000248746"); paramMap.put("include", "id,name,start,end"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); GeneQuery geneQuery = new GeneQuery(paramMap); geneQuery.setCount(Boolean.TRUE); @@ -73,7 +73,7 @@ public void testQuery() throws Exception { paramMap.put("annotation.expression.tissue", "brain"); paramMap.put("annotation.expression.value", "UP"); paramMap.put("include", "id,name"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); GeneQuery geneQuery = new GeneQuery(paramMap); geneQuery.setCount(Boolean.TRUE); @@ -97,7 +97,7 @@ public void testQuery() throws Exception { geneQuery.setIncludes(includes); geneQuery.setLimit(10); geneQuery.setCount(Boolean.TRUE); - geneQuery.setDataRelease(dataRelease); + geneQuery.setDataRelease(dataRelease.getRelease()); cellBaseDataResult = geneManager.search(geneQuery); boolean found = false; for (Gene gene : cellBaseDataResult.getResults()) { @@ -125,7 +125,7 @@ public void testConstraints() throws Exception { Map paramMap = new HashMap<>(); paramMap.put("constraints", "oe_lof<=0.85585"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); GeneQuery geneQuery = new GeneQuery(paramMap); CellBaseDataResult cellBaseDataResult = geneManager.search(geneQuery); assertEquals(12, cellBaseDataResult.getNumResults()); @@ -134,28 +134,28 @@ public void testConstraints() throws Exception { paramMap = new HashMap<>(); paramMap.put("constraints", "oe_mis>0.8"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); geneQuery = new GeneQuery(paramMap); cellBaseDataResult = geneManager.search(geneQuery); assertEquals(9, cellBaseDataResult.getNumResults()); paramMap = new HashMap<>(); paramMap.put("constraints", "oe_syn=0.91766"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); geneQuery = new GeneQuery(paramMap); cellBaseDataResult = geneManager.search(geneQuery); assertEquals(0, cellBaseDataResult.getNumResults()); paramMap = new HashMap<>(); paramMap.put("constraints", " exac_pLI<0.17633"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); geneQuery = new GeneQuery(paramMap); cellBaseDataResult = geneManager.search(geneQuery); assertEquals(0, cellBaseDataResult.getNumResults()); paramMap = new HashMap<>(); paramMap.put("constraints", "exac_oe_lof>=0.45091"); - paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease)); + paramMap.put(DATA_RELEASE_PARAM, String.valueOf(dataRelease.getRelease())); geneQuery = new GeneQuery(paramMap); cellBaseDataResult = geneManager.search(geneQuery); assertEquals(7, cellBaseDataResult.getNumResults()); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GenomeMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GenomeMongoDBAdaptorTest.java index dbc0362d3..63f203233 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GenomeMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/GenomeMongoDBAdaptorTest.java @@ -54,7 +54,7 @@ public GenomeMongoDBAdaptorTest() throws Exception { public void getChromosomeInfo() throws Exception { GenomeQuery query = new GenomeQuery(); query.setNames(Collections.singletonList("1")); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult cellBaseDataResult = genomeManager.search(query); logger.error("cellBaseDataResult.getResults().size() = " + cellBaseDataResult.getResults().size()); Chromosome chromosome = cellBaseDataResult.getResults().get(0); @@ -65,22 +65,23 @@ public void getChromosomeInfo() throws Exception { @Test public void getGenomicSequence() throws CellBaseException { CellBaseDataResult cellBaseDataResult = genomeManager.getGenomicSequence(new Query("region", "1:1-1999"), - new QueryOptions(), dataRelease); + new QueryOptions(), dataRelease.getRelease()); // Inter-genic regions are not stored in the test dataset (maybe in the future should be stored) assertEquals(0, cellBaseDataResult.getNumResults()); - cellBaseDataResult = genomeManager.getGenomicSequence(new Query("region", "11:65497100-65497110"), new QueryOptions(), dataRelease); + cellBaseDataResult = genomeManager.getGenomicSequence(new Query("region", "11:65497100-65497110"), new QueryOptions(), + dataRelease.getRelease()); assertEquals("GGTCATTGCTT", cellBaseDataResult.getResults().get(0).getSequence()); cellBaseDataResult = genomeManager.getGenomicSequence(new Query("region", "9:126426800-126426815"), new QueryOptions(), - dataRelease); + dataRelease.getRelease()); assertEquals("TAAGAGAGAAACAAGC", cellBaseDataResult.getResults().get(0).getSequence()); } @Test public void testGenomicSequenceChromosomeNotPresent() throws CellBaseException { CellBaseDataResult cellBaseDataResult = genomeManager.getSequence(new Region("1234:1-1999"), - new QueryOptions(), dataRelease); + new QueryOptions(), dataRelease.getRelease()); assertEquals(0, cellBaseDataResult.getNumResults()); } @@ -88,18 +89,18 @@ public void testGenomicSequenceChromosomeNotPresent() throws CellBaseException { public void testGenomicSequenceQueryOutOfBounds() throws CellBaseException, QueryException, IllegalAccessException { // Both start & end out of the right bound CellBaseDataResult cellBaseDataResult = genomeManager - .getSequence(new Region("17", 43044999, 43045999), new QueryOptions(), dataRelease); + .getSequence(new Region("17", 43044999, 43045999), new QueryOptions(), dataRelease.getRelease()); assertEquals(0, cellBaseDataResult.getNumResults()); // start within the bounds, end out of the right bound. Should return last 10 nts. - cellBaseDataResult = genomeManager.getSequence(new Region("17", 43043989, 43045999), new QueryOptions(), dataRelease); + cellBaseDataResult = genomeManager.getSequence(new Region("17", 43043989, 43045999), new QueryOptions(), dataRelease.getRelease()); assertEquals(1, cellBaseDataResult.getNumResults()); assertEquals("ACAGGGATCTT", cellBaseDataResult.getResults().get(0).getSequence()); // Start out of the left bound, end in bound. should return nts. QueryOptions queryOptions = new QueryOptions(); queryOptions.add("count", "true"); - cellBaseDataResult = genomeManager.getSequence(new Region("17", 7650000, 7660010), queryOptions, dataRelease); + cellBaseDataResult = genomeManager.getSequence(new Region("17", 7650000, 7660010), queryOptions, dataRelease.getRelease()); assertEquals(1, cellBaseDataResult.getNumResults()); } @@ -107,7 +108,7 @@ public void testGenomicSequenceQueryOutOfBounds() throws CellBaseException, Quer @Test public void testGetCytoband() throws CellBaseException { List regions = Arrays.asList(new Region("19:55799900-55803000"), new Region("11:121300000-124030001")); - List> cellBaseDataResultList = genomeManager.getCytobands(regions, dataRelease); + List> cellBaseDataResultList = genomeManager.getCytobands(regions, dataRelease.getRelease()); assertEquals(2, cellBaseDataResultList.size()); CellBaseDataResult result = cellBaseDataResultList.get(0); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/PharmacogenomicsMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/PharmacogenomicsMongoDBAdaptorTest.java index 99a0776f7..13547a599 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/PharmacogenomicsMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/PharmacogenomicsMongoDBAdaptorTest.java @@ -74,7 +74,7 @@ public void testQuery() throws Exception { PharmaChemicalQuery chemicalQuery = new PharmaChemicalQuery(); chemicalQuery.setGeneNames(Collections.singletonList("PRKCE")); - chemicalQuery.setDataRelease(dataRelease); + chemicalQuery.setDataRelease(dataRelease.getRelease()); chemicalQuery.setCount(Boolean.TRUE); CellBaseDataResult cellBaseDataResult = pharmacogenomicsManager.search(chemicalQuery); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ProteinMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ProteinMongoDBAdaptorTest.java index 3bc9bd661..7bc6668fe 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ProteinMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/ProteinMongoDBAdaptorTest.java @@ -48,14 +48,14 @@ public void testQuery() throws Exception { query.setLimit(3); query.setIncludes(new ArrayList<>(Arrays.asList("accession", "name"))); query.setCount(Boolean.TRUE); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult CellBaseDataResult = proteinManager.search(query); assertEquals(3, CellBaseDataResult.getResults().size()); assertEquals(17, CellBaseDataResult.getNumMatches()); query = new ProteinQuery(); query.setAccessions(new ArrayList<>(Arrays.asList("P02649","Q86VF7","Q16535"))); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult = proteinManager.search(query); assertTrue(CellBaseDataResult.getResults().get(0).getAccession().contains("P02649")); assertTrue(CellBaseDataResult.getResults().get(1).getAccession().contains("Q86VF7")); @@ -63,7 +63,7 @@ public void testQuery() throws Exception { query = new ProteinQuery(); query.setNames(new ArrayList<>(Collections.singletonList("FMR1_HUMAN"))); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult = proteinManager.search(query); assertTrue(CellBaseDataResult.getResults().get(0).getName().contains("FMR1_HUMAN")); } diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/TranscriptMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/TranscriptMongoDBAdaptorTest.java index 2cbb237b6..a3f2021b1 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/TranscriptMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/TranscriptMongoDBAdaptorTest.java @@ -46,7 +46,7 @@ public void testQuery() throws Exception { Region region = Region.parseRegion("19:44905791-44906393"); query.setRegions(new ArrayList<>(Arrays.asList(region))); query.setCount(Boolean.TRUE); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult cellBaseDataResult = transcriptManager.search(query); assertEquals(5, cellBaseDataResult.getNumResults()); @@ -57,7 +57,7 @@ public void testQuery() throws Exception { query = new TranscriptQuery(); query.setCount(Boolean.TRUE); query.setRegions(Collections.singletonList(region)); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); cellBaseDataResult = transcriptManager.search(query); assertEquals(5, cellBaseDataResult.getNumResults()); assertTrue(transcriptIdEquals(cellBaseDataResult, Arrays.asList("ENST00000446996", "ENST00000485628", "ENST00000252486", @@ -67,7 +67,7 @@ public void testQuery() throws Exception { query.setTranscriptsXrefs(Collections.singletonList("A0A087WSZ2")); query.setCount(Boolean.TRUE); query.setIncludes(Collections.singletonList("id")); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); cellBaseDataResult = transcriptManager.search(query); assertEquals(1, cellBaseDataResult.getNumResults()); @@ -78,7 +78,7 @@ public void testQuery() throws Exception { query.setTranscriptsBiotype(Collections.singletonList("protein_coding")); query.setTranscriptsXrefs(Collections.singletonList("BRCA1")); query.setIncludes(Collections.singletonList("transcripts.id")); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); cellBaseDataResult = transcriptManager.search(query); assertEquals(27, cellBaseDataResult.getNumResults()); } diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/VariantMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/VariantMongoDBAdaptorTest.java index fdf7e7a0e..5a47e04d4 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/VariantMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/VariantMongoDBAdaptorTest.java @@ -16,7 +16,6 @@ package org.opencb.cellbase.lib.impl.core; -import org.hamcrest.CoreMatchers; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.opencb.biodata.models.variant.Variant; @@ -30,20 +29,14 @@ import org.opencb.cellbase.core.exception.CellBaseException; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.lib.GenericMongoDBAdaptorTest; -import org.opencb.cellbase.lib.managers.GeneManager; import org.opencb.cellbase.lib.managers.VariantManager; -import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; -import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -67,7 +60,7 @@ public VariantMongoDBAdaptorTest() throws Exception { public void testGetFunctionalScoreVariant() throws Exception { // VariantMongoDBAdaptor variationDBAdaptor = dbAdaptorFactory.getVariationDBAdaptor("hsapiens", "GRCh37"); CellBaseDataResult functionalScoreVariant = variantManager.getFunctionalScoreVariant(Variant.parseVariant("10:130862563:A:G"), - new QueryOptions(), dataRelease); + new QueryOptions(), dataRelease.getRelease()); System.out.println("Num. of results: " + functionalScoreVariant.getNumResults()); } @@ -95,7 +88,7 @@ public void getPhasedPopulationFrequencyByVariant() throws Exception { List> variantCellBaseDataResultList = variantManager.getPopulationFrequencyByVariant(Arrays.asList(variant, variant1), - new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease); + new QueryOptions(ParamConstants.QueryParams.PHASE.key(), true), dataRelease.getRelease()); assertEquals(2, variantCellBaseDataResultList.size()); CellBaseDataResult variantCellBaseDataResult = getByVariant(variantCellBaseDataResultList, @@ -269,7 +262,7 @@ public void testGet() throws CellBaseException, QueryException, IllegalAccessExc // geneManager.search() VariantQuery variantQuery = new VariantQuery(); variantQuery.setGenes(new LogicalList<>(Collections.singletonList("BRCA1"))); - variantQuery.setDataRelease(dataRelease); + variantQuery.setDataRelease(dataRelease.getRelease()); CellBaseDataResult result = variantManager.search(variantQuery); for (Variant variant : result.getResults()) { System.out.println(variant.getId()); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/XRefMongoDBAdaptorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/XRefMongoDBAdaptorTest.java index 942176b7b..36c27fc26 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/XRefMongoDBAdaptorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/impl/core/XRefMongoDBAdaptorTest.java @@ -43,7 +43,7 @@ public void queryTest() throws Exception { XrefManager xrefManager = cellBaseManagerFactory.getXrefManager(SPECIES, ASSEMBLY); XrefQuery query = new XrefQuery(); query.setIds(Collections.singletonList("BRCA1")); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); List> resultList = xrefManager.search(Collections.singletonList(query)); CellBaseDataResult result = resultList.get(0); boolean found = false; diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/indexer/IndexManagerTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/indexer/IndexManagerTest.java index c27db8803..bdc6f3e0b 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/indexer/IndexManagerTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/indexer/IndexManagerTest.java @@ -54,7 +54,7 @@ public void testIndexes() throws IOException, CellBaseException, QueryException, GeneManager geneManager = cellBaseManagerFactory.getGeneManager(SPECIES, ASSEMBLY); GeneQuery query = new GeneQuery(); query.setNames(Collections.singletonList("BRCA1")); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult result = geneManager.search(query); assertEquals(1, result.getNumResults()); assertEquals("BRCA1", result.getResults().get(0).getName()); diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/managers/DataReleaseManagerTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/managers/DataReleaseManagerTest.java index 3e95ad3b1..5c0f687e6 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/managers/DataReleaseManagerTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/managers/DataReleaseManagerTest.java @@ -146,11 +146,13 @@ public void testRemoveMultipleAddActiveByDefaultIn() throws JsonProcessingExcept @Test @Disabled - public void testAnnotationWithDR0() throws CellBaseException, QueryException, ExecutionException, InterruptedException, + public void testAnnotation() throws CellBaseException, QueryException, ExecutionException, InterruptedException, IllegalAccessException { dataReleaseManager.update(1, Arrays.asList("v5.5")); - VariantAnnotationCalculator annotator = new VariantAnnotationCalculator(SPECIES, ASSEMBLY, 0, apiKey, cellBaseManagerFactory); + DataRelease dataRelease = dataReleaseManager.get(1); + VariantAnnotationCalculator annotator = new VariantAnnotationCalculator(SPECIES, ASSEMBLY, dataRelease, apiKey, + cellBaseManagerFactory); Variant variant = new Variant("10", 113588287, "G", "A"); CellBaseDataResult cellBaseDataResult = annotator.getAnnotationByVariant(variant, QueryOptions.empty()); @@ -161,27 +163,4 @@ public void testAnnotationWithDR0() throws CellBaseException, QueryException, Ex assertEquals(variant.getReference(), variantAnnotation.getReference()); assertEquals(variant.getAlternate(), variantAnnotation.getAlternate()); } - - @Test - @Disabled - public void testAnnotationWithInvalidDR() { - CellBaseException thrown = Assertions.assertThrows(CellBaseException.class, () -> { - VariantAnnotationCalculator annotator = new VariantAnnotationCalculator(SPECIES, ASSEMBLY, -1, apiKey, cellBaseManagerFactory); - Variant variant = new Variant("10", 113588287, "G", "A"); - CellBaseDataResult cellBaseDataResult = annotator.getAnnotationByVariant(variant, QueryOptions.empty()); - }); - Assertions.assertTrue(thrown.getMessage().contains("Data release must be greater or equal to 0")); - } - - @Test - @Disabled - public void testAnnotationWithInvalidDR_1() { - int dr = 12; - CellBaseException thrown = Assertions.assertThrows(CellBaseException.class, () -> { - VariantAnnotationCalculator annotator = new VariantAnnotationCalculator(SPECIES, ASSEMBLY, dr, apiKey, cellBaseManagerFactory); - Variant variant = new Variant("10", 113588287, "G", "A"); - CellBaseDataResult cellBaseDataResult = annotator.getAnnotationByVariant(variant, QueryOptions.empty()); - }); - Assertions.assertTrue(thrown.getMessage().contains("data release "+ dr + ". Valid data releases are:")); - } } \ No newline at end of file diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/ClinicalManagerTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/ClinicalManagerTest.java index 1957cf2e6..2ba6f3925 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/ClinicalManagerTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/ClinicalManagerTest.java @@ -63,7 +63,7 @@ public void testLicensedHGMD() throws CellBaseException, QueryException, Illegal List regions = new ArrayList<>(); regions.add(Region.parseRegion("10:113588287-113588287")); query.setRegions(regions); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); query.setApiKey(HGMD_ACCESS_API_KEY); CellBaseDataResult results = clinicalManager.search(query); @@ -79,7 +79,7 @@ public void testNotLicensed() throws CellBaseException, QueryException, IllegalA List regions = new ArrayList<>(); regions.add(Region.parseRegion("10:113588287-113588287")); query.setRegions(regions); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseDataResult results = clinicalManager.search(query); Assert.assertEquals(1, results.getResults().size()); @@ -99,7 +99,7 @@ public void testIteratorOnlyClinvar() throws CellBaseException, QueryException, List regions = new ArrayList<>(); regions.add(Region.parseRegion("10:113588287-113588287")); query.setRegions(regions); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); CellBaseIterator iterator = clinicalManager.iterator(query); int count = 0; @@ -119,7 +119,7 @@ public void testIteratorLicensedHGMD() throws CellBaseException { List regions = new ArrayList<>(); regions.add(Region.parseRegion("10:113588287-113588287")); query.setRegions(regions); - query.setDataRelease(dataRelease); + query.setDataRelease(dataRelease.getRelease()); query.setApiKey(HGMD_ACCESS_API_KEY); int count = 0; diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsCalculatorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsCalculatorTest.java index d834a5115..9311317bf 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsCalculatorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsCalculatorTest.java @@ -1,7 +1,6 @@ package org.opencb.cellbase.lib.variant.hgvs; import org.hamcrest.CoreMatchers; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @@ -14,13 +13,8 @@ import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.lib.GenericMongoDBAdaptorTest; import org.opencb.cellbase.lib.impl.core.GeneMongoDBAdaptor; -import org.opencb.cellbase.lib.managers.CellBaseManagerFactory; -import org.opencb.cellbase.lib.managers.DataReleaseManager; import org.opencb.cellbase.lib.managers.GeneManager; -import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.Collections; import java.util.List; @@ -40,7 +34,7 @@ public class HgvsCalculatorTest extends GenericMongoDBAdaptorTest { public HgvsCalculatorTest() throws CellBaseException { super(); geneManager = cellBaseManagerFactory.getGeneManager(SPECIES, ASSEMBLY); - hgvsCalculator = new HgvsCalculator(cellBaseManagerFactory.getGenomeManager(SPECIES, ASSEMBLY), dataRelease); + hgvsCalculator = new HgvsCalculator(cellBaseManagerFactory.getGenomeManager(SPECIES, ASSEMBLY), dataRelease.getRelease()); } // @BeforeAll diff --git a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsTranscriptCalculatorTest.java b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsTranscriptCalculatorTest.java index c40fd75ce..4519a1c10 100644 --- a/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsTranscriptCalculatorTest.java +++ b/cellbase-lib/src/test/java/org/opencb/cellbase/lib/variant/hgvs/HgvsTranscriptCalculatorTest.java @@ -4,27 +4,21 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.BeforeAll; +import org.eclipse.jetty.util.ajax.JSON; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; -import org.eclipse.jetty.util.ajax.JSON; import org.opencb.biodata.models.core.Gene; import org.opencb.biodata.models.core.Transcript; import org.opencb.biodata.models.variant.Variant; -import org.opencb.cellbase.core.config.CellBaseConfiguration; import org.opencb.cellbase.core.exception.CellBaseException; import org.opencb.cellbase.lib.GenericMongoDBAdaptorTest; -import org.opencb.cellbase.lib.impl.core.GenomeMongoDBAdaptor; -import org.opencb.cellbase.lib.impl.core.MongoDBAdaptorFactory; -import org.opencb.cellbase.lib.managers.CellBaseManagerFactory; import org.opencb.cellbase.lib.managers.GenomeManager; import org.opencb.commons.utils.FileUtils; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -105,7 +99,7 @@ public void testArrayOutOfBounds() throws Exception { "-", "CCCTGTCCAGCCAGCCCATTGACCACGAAGACAGCACCATGCAGGCCGGACAGGGAGGCGATCCAGATCTCGG"); - HgvsTranscriptCalculator predictor = new HgvsTranscriptCalculator(genomeManager, dataRelease, variant, transcript,"ENSG00000179364"); + HgvsTranscriptCalculator predictor = new HgvsTranscriptCalculator(genomeManager, dataRelease.getRelease(), variant, transcript,"ENSG00000179364"); assertEquals("ENST00000447393(ENSG00000179364):c.566_567ins73", predictor.calculate()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java index a8daf4fa6..bc834070f 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java @@ -32,6 +32,7 @@ import org.opencb.cellbase.core.api.key.ApiKeyManager; import org.opencb.cellbase.core.config.CellBaseConfiguration; import org.opencb.cellbase.core.exception.CellBaseException; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResponse; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.cellbase.core.utils.SpeciesUtils; @@ -68,8 +69,9 @@ public class GenericRestWSServer implements IWSServer { protected String version; - protected int defaultDataRelease = 0; + protected DataRelease defaultDataRelease = null; protected String species; + protected String assembly; protected Query query; // protected QueryOptions queryOptions; @@ -95,18 +97,20 @@ public class GenericRestWSServer implements IWSServer { protected static org.opencb.cellbase.lib.monitor.Monitor monitor; private static final String ERROR = "error"; private static final String OK = "ok"; - // this webservice has no species, do not validate + // this webservice has no species or assembly, do not validate private static final String DONT_CHECK_SPECIES = "do not validate species"; + private static final String DONT_CHECK_ASSEMBLY = "do not validate assembly"; protected static String defaultApiKey; protected static ApiKeyManager apiKeyManager; public GenericRestWSServer(@PathParam("version") String version, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - this(version, DONT_CHECK_SPECIES, uriInfo, hsr); + this(version, DONT_CHECK_SPECIES, DONT_CHECK_ASSEMBLY, uriInfo, hsr); } - public GenericRestWSServer(@PathParam("version") String version, @PathParam("species") String species, @Context UriInfo uriInfo, + public GenericRestWSServer(@PathParam("version") String version, @PathParam("species") String species, + @PathParam("assembly") String assembly, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { @@ -114,8 +118,13 @@ public GenericRestWSServer(@PathParam("version") String version, @PathParam("spe this.uriInfo = uriInfo; this.httpServletRequest = hsr; this.species = species; + this.assembly = assembly; try { + if (this.assembly == null && !DONT_CHECK_SPECIES.equals(species)) { + this.assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); + } + init(); initQuery(); } catch (Exception e) { @@ -197,14 +206,14 @@ private void initQuery() throws CellBaseException { checkVersion(); // Set default data release if necessary - if (!DONT_CHECK_SPECIES.equals(species) && defaultDataRelease < 1) { + if (!DONT_CHECK_SPECIES.equals(species) && defaultDataRelease == null) { // As the assembly may not be presented in the query, we have to be sure to get it from the CellBase configuration assembly = SpeciesUtils.getSpecies(cellBaseConfiguration, this.species, assembly).getAssembly(); if (StringUtils.isNotEmpty(assembly)) { DataReleaseManager releaseManager = cellBaseManagerFactory.getDataReleaseManager(species, assembly); // getDefault launches an exception if no data release is found for that CellBase version - defaultDataRelease = releaseManager.getDefault(version).getRelease(); + defaultDataRelease = releaseManager.getDefault(version); } } @@ -218,9 +227,9 @@ protected int getDataRelease() throws CellBaseException { int dataRelease = Integer.parseInt(uriParams.get(DATA_RELEASE_PARAM)); // If data release is 0, then use the default data release if (dataRelease == 0) { - logger.info("Using data release 0 in query: using the default data release '" + defaultDataRelease + "' for CellBase" - + " version '" + version + "'"); - return defaultDataRelease; + logger.info("Using data release 0 in query: using the default data release '" + defaultDataRelease.getRelease() + + "' for CellBase version '" + version + "'"); + return defaultDataRelease.getRelease(); } else { return dataRelease; } @@ -233,7 +242,22 @@ protected int getDataRelease() throws CellBaseException { logger.info("No data release present in query: using the default data release '" + defaultDataRelease + "' for CellBase version" + " '" + version + "'"); } - return defaultDataRelease; + return defaultDataRelease.getRelease(); + } + + protected DataRelease getDataRelease(int dataRelease, String species, String assembly) throws CellBaseException { + DataRelease output; + if (dataRelease == defaultDataRelease.getRelease()) { + output = defaultDataRelease; + } else { + DataReleaseManager releaseManager = cellBaseManagerFactory.getDataReleaseManager(species, assembly); + // Get data release + output = releaseManager.get(dataRelease); + if (output == null) { + throw new CellBaseException("Unknown data release number '" + dataRelease + "'; it does not exist."); + } + } + return output; } protected String getApiKey() { diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/OntologyWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/OntologyWSServer.java index 42e6c5b71..7004ced3d 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/OntologyWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/OntologyWSServer.java @@ -17,12 +17,9 @@ package org.opencb.cellbase.server.rest; import io.swagger.annotations.*; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.opencb.biodata.models.core.OntologyTerm; import org.opencb.cellbase.core.api.OntologyQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.OntologyManager; import org.opencb.cellbase.server.exception.CellBaseServerException; @@ -54,17 +51,9 @@ public OntologyWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - List assemblies = uriInfo.getQueryParameters().get("assembly"); - if (CollectionUtils.isNotEmpty(assemblies)) { - assembly = assemblies.get(0); - } - if (StringUtils.isEmpty(assembly)) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - ontologyManager = cellBaseManagerFactory.getOntologyManager(species, assembly); + ontologyManager = cellBaseManagerFactory.getOntologyManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/SpeciesWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/SpeciesWSServer.java index 9f75bf964..692f61e2a 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/SpeciesWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/SpeciesWSServer.java @@ -52,9 +52,9 @@ public SpeciesWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", v @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - genomeManager = cellBaseManagerFactory.getGenomeManager(species, assembly); + genomeManager = cellBaseManagerFactory.getGenomeManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/ClinicalWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/ClinicalWSServer.java index c7d4b60fc..7e68b03d2 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/ClinicalWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/ClinicalWSServer.java @@ -20,7 +20,6 @@ import org.opencb.biodata.models.variant.Variant; import org.opencb.cellbase.core.api.ClinicalVariantQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.ClinicalManager; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -52,13 +51,9 @@ public ClinicalWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - clinicalManager = cellBaseManagerFactory.getClinicalManager(species, assembly); + clinicalManager = cellBaseManagerFactory.getClinicalManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/PharmacogenomicsWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/PharmacogenomicsWSServer.java index 58377de0d..d49c540ab 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/PharmacogenomicsWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/clinical/PharmacogenomicsWSServer.java @@ -20,7 +20,6 @@ import org.opencb.biodata.models.pharma.PharmaChemical; import org.opencb.cellbase.core.api.PharmaChemicalQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.ClinicalManager; import org.opencb.cellbase.lib.managers.PharmacogenomicsManager; import org.opencb.cellbase.server.exception.CellBaseServerException; @@ -57,14 +56,10 @@ public PharmacogenomicsWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVe String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - clinicalManager = cellBaseManagerFactory.getClinicalManager(species, assembly); - pharmacogenomicsManager = cellBaseManagerFactory.getPharmacogenomicsManager(species, assembly); + clinicalManager = cellBaseManagerFactory.getClinicalManager(this.species, this.assembly); + pharmacogenomicsManager = cellBaseManagerFactory.getPharmacogenomicsManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/GeneWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/GeneWSServer.java index 0f8719ec3..ae7cb8820 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/GeneWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/GeneWSServer.java @@ -17,7 +17,6 @@ package org.opencb.cellbase.server.rest.feature; import io.swagger.annotations.*; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.opencb.biodata.formats.protein.uniprot.v202003jaxb.Entry; import org.opencb.biodata.models.core.Gene; @@ -31,7 +30,6 @@ import org.opencb.cellbase.core.api.VariantQuery; import org.opencb.cellbase.core.api.query.LogicalList; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.GeneManager; import org.opencb.cellbase.lib.managers.ProteinManager; import org.opencb.cellbase.lib.managers.TranscriptManager; @@ -72,20 +70,12 @@ public GeneWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", valu int dataRelease, @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - List assemblies = uriInfo.getQueryParameters().get("assembly"); - if (CollectionUtils.isNotEmpty(assemblies)) { - assembly = assemblies.get(0); - } - if (StringUtils.isEmpty(assembly)) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - geneManager = cellBaseManagerFactory.getGeneManager(species, assembly); - transcriptManager = cellBaseManagerFactory.getTranscriptManager(species, assembly); - variantManager = cellBaseManagerFactory.getVariantManager(species, assembly); - proteinManager = cellBaseManagerFactory.getProteinManager(species, assembly); + geneManager = cellBaseManagerFactory.getGeneManager(this.species, this.assembly); + transcriptManager = cellBaseManagerFactory.getTranscriptManager(this.species, this.assembly); + variantManager = cellBaseManagerFactory.getVariantManager(this.species, this.assembly); + proteinManager = cellBaseManagerFactory.getProteinManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/IdWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/IdWSServer.java index b6a36fc01..7a3972f83 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/IdWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/IdWSServer.java @@ -22,7 +22,6 @@ import org.opencb.cellbase.core.api.GeneQuery; import org.opencb.cellbase.core.api.XrefQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.GeneManager; import org.opencb.cellbase.lib.managers.XrefManager; import org.opencb.cellbase.server.exception.CellBaseServerException; @@ -59,14 +58,10 @@ public IdWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", value int dataRelease, @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - xrefManager = cellBaseManagerFactory.getXrefManager(species, assembly); - geneManager = cellBaseManagerFactory.getGeneManager(species, assembly); + xrefManager = cellBaseManagerFactory.getXrefManager(this.species, this.assembly); + geneManager = cellBaseManagerFactory.getGeneManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/ProteinWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/ProteinWSServer.java index 5adec4c39..d9d51abf8 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/ProteinWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/ProteinWSServer.java @@ -22,7 +22,6 @@ import org.opencb.cellbase.core.api.TranscriptQuery; import org.opencb.cellbase.core.api.query.QueryException; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.ProteinManager; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -56,13 +55,9 @@ public ProteinWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", v @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - proteinManager = cellBaseManagerFactory.getProteinManager(species, assembly); + proteinManager = cellBaseManagerFactory.getProteinManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/TranscriptWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/TranscriptWSServer.java index 3e586cbd3..50d6274bc 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/TranscriptWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/feature/TranscriptWSServer.java @@ -24,7 +24,6 @@ import org.opencb.cellbase.core.api.ProteinQuery; import org.opencb.cellbase.core.api.TranscriptQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.GeneManager; import org.opencb.cellbase.lib.managers.ProteinManager; import org.opencb.cellbase.lib.managers.TranscriptManager; @@ -63,15 +62,11 @@ public TranscriptWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion" @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - transcriptManager = cellBaseManagerFactory.getTranscriptManager(species, assembly); - geneManager = cellBaseManagerFactory.getGeneManager(species, assembly); - proteinManager = cellBaseManagerFactory.getProteinManager(species, assembly); + transcriptManager = cellBaseManagerFactory.getTranscriptManager(this.species, this.assembly); + geneManager = cellBaseManagerFactory.getGeneManager(this.species, this.assembly); + proteinManager = cellBaseManagerFactory.getProteinManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/ChromosomeWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/ChromosomeWSServer.java index ba9387cdf..cf1f9f2c6 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/ChromosomeWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/ChromosomeWSServer.java @@ -17,12 +17,9 @@ package org.opencb.cellbase.server.rest.genomic; import io.swagger.annotations.*; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.opencb.biodata.models.core.Chromosome; import org.opencb.cellbase.core.api.GenomeQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.GenomeManager; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -57,17 +54,9 @@ public ChromosomeWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion" @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - List assemblies = uriInfo.getQueryParameters().get("assembly"); - if (CollectionUtils.isNotEmpty(assemblies)) { - assembly = assemblies.get(0); - } - if (StringUtils.isEmpty(assembly)) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - genomeManager = cellBaseManagerFactory.getGenomeManager(species, assembly); + genomeManager = cellBaseManagerFactory.getGenomeManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/RegionWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/RegionWSServer.java index ffa110056..7da822211 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/RegionWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/RegionWSServer.java @@ -24,7 +24,6 @@ import org.opencb.cellbase.core.api.*; import org.opencb.cellbase.core.exception.CellBaseException; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.*; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -65,19 +64,15 @@ public RegionWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", va @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - geneManager = cellBaseManagerFactory.getGeneManager(species, assembly); - variantManager = cellBaseManagerFactory.getVariantManager(species, assembly); - genomeManager = cellBaseManagerFactory.getGenomeManager(species, assembly); - transcriptManager = cellBaseManagerFactory.getTranscriptManager(species, assembly); - clinicalManager = cellBaseManagerFactory.getClinicalManager(species, assembly); - regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(species, assembly); - repeatsManager = cellBaseManagerFactory.getRepeatsManager(species, assembly); + geneManager = cellBaseManagerFactory.getGeneManager(this.species, this.assembly); + variantManager = cellBaseManagerFactory.getVariantManager(this.species, this.assembly); + genomeManager = cellBaseManagerFactory.getGenomeManager(this.species, this.assembly); + transcriptManager = cellBaseManagerFactory.getTranscriptManager(this.species, this.assembly); + clinicalManager = cellBaseManagerFactory.getClinicalManager(this.species, this.assembly); + regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(this.species, this.assembly); + repeatsManager = cellBaseManagerFactory.getRepeatsManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/VariantWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/VariantWSServer.java index a7d59fd46..eba949398 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/VariantWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/genomic/VariantWSServer.java @@ -21,8 +21,8 @@ import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.VariantAnnotation; import org.opencb.cellbase.core.api.VariantQuery; +import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.VariantManager; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -56,13 +56,9 @@ public VariantWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", v @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - variantManager = cellBaseManagerFactory.getVariantManager(species, assembly); + variantManager = cellBaseManagerFactory.getVariantManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } @@ -83,7 +79,8 @@ public Response getModel() { public Response getHgvs(@PathParam("variants") @ApiParam(name = "variants", value = RS_IDS, required = true) String id) { try { - List> queryResults = variantManager.getHgvsByVariant(id, getDataRelease()); + DataRelease dataRelease = getDataRelease(getDataRelease(), species, assembly); + List> queryResults = variantManager.getHgvsByVariant(id, dataRelease); return createOkResponse(queryResults); } catch (Exception e) { return createErrorResponse(e); @@ -110,8 +107,9 @@ public Response getNormalization(@PathParam("variants") @ApiParam(name = "varian defaultValue = "false") Boolean leftAlign) { try { + DataRelease dataRelease = getDataRelease(getDataRelease(), species, assembly); CellBaseDataResult queryResults = variantManager.getNormalizationByVariant(id, Boolean.TRUE.equals(decompose), - Boolean.TRUE.equals(leftAlign), getDataRelease()); + Boolean.TRUE.equals(leftAlign), dataRelease); return createOkResponse(queryResults); } catch (Exception e) { return createErrorResponse(e); @@ -349,9 +347,10 @@ private Response getAnnotationByVariant(String variants, // use the processed value, as there may be more than one "consequenceTypeSource" in the URI String consequenceTypeSources = (StringUtils.isEmpty(uriParams.get("consequenceTypeSource")) ? consequenceTypeSource : uriParams.get("consequenceTypeSource")); + DataRelease dataRelease = getDataRelease(getDataRelease(), species, assembly); List> queryResults = variantManager.getAnnotationByVariant(query.toQueryOptions(), variants, normalize, decompose, leftAlign, ignorePhase, phased, imprecise, svExtraPadding, cnvExtraPadding, - checkAminoAcidChange, consequenceTypeSources, getDataRelease(), getApiKey()); + checkAminoAcidChange, consequenceTypeSources, dataRelease, getApiKey()); return createOkResponse(queryResults); } catch (Exception e) { diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServer.java index 1f8bbbcb8..8a72a175e 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServer.java @@ -34,7 +34,7 @@ public class PathwayWSServer extends GenericRestWSServer { public PathwayWSServer(@PathParam("version") String version, @PathParam("species") String species, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(version, species, uriInfo, hsr); + super(version, species, null, uriInfo, hsr); } /* diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServerMongo.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServerMongo.java index a7e80d1ec..f3d892895 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServerMongo.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/PathwayWSServerMongo.java @@ -34,7 +34,7 @@ public class PathwayWSServerMongo extends GenericRestWSServer { public PathwayWSServerMongo(@PathParam("version") String version, @PathParam("species") String species, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(version, species, uriInfo, hsr); + super(version, species, null, uriInfo, hsr); } // @GET diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/ProteinProteinInteractionWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/ProteinProteinInteractionWSServer.java index 2de99433f..d110bd81e 100644 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/ProteinProteinInteractionWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/network/ProteinProteinInteractionWSServer.java @@ -44,7 +44,7 @@ public class ProteinProteinInteractionWSServer extends GenericRestWSServer { public ProteinProteinInteractionWSServer(@PathParam("version") String version, @PathParam("species") String species, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(version, species, uriInfo, hsr); + super(version, species, null, uriInfo, hsr); } @GET diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/RegulatoryWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/RegulatoryWSServer.java index d33ed6553..e9bc6d58f 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/RegulatoryWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/RegulatoryWSServer.java @@ -20,7 +20,6 @@ import org.opencb.biodata.models.core.RegulatoryFeature; import org.opencb.cellbase.core.api.RegulationQuery; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.utils.SpeciesUtils; import org.opencb.cellbase.lib.managers.RegulatoryManager; import org.opencb.cellbase.server.exception.CellBaseServerException; import org.opencb.cellbase.server.rest.GenericRestWSServer; @@ -50,13 +49,9 @@ public RegulatoryWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion" @ApiParam(name = "apiKey", value = API_KEY_DESCRIPTION) @DefaultValue("") @QueryParam("apiKey") String apiKey, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(apiVersion, species, uriInfo, hsr); + super(apiVersion, species, assembly, uriInfo, hsr); try { - if (assembly == null) { - assembly = SpeciesUtils.getDefaultAssembly(cellBaseConfiguration, species).getName(); - } - - regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(species, assembly); + regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/TfWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/TfWSServer.java index 1c740afb2..bb69416b9 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/TfWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/regulatory/TfWSServer.java @@ -61,9 +61,9 @@ public TfWSServer(@PathParam("apiVersion") @ApiParam(name = "apiVersion", value throws CellBaseServerException { super(apiVersion, species, assembly, dataRelease, apiKey, uriInfo, hsr); try { - regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(species, assembly); - tfbsManager = cellBaseManagerFactory.getTFManager(species, assembly); - geneManager = cellBaseManagerFactory.getGeneManager(species, assembly); + regulatoryManager = cellBaseManagerFactory.getRegulatoryManager(this.species, this.assembly); + tfbsManager = cellBaseManagerFactory.getTFManager(this.species, this.assembly); + geneManager = cellBaseManagerFactory.getGeneManager(this.species, this.assembly); } catch (Exception e) { throw new CellBaseServerException(e.getMessage()); } diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/utils/UtilsWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/utils/UtilsWSServer.java index 9e5062a6a..aa20eb43d 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/utils/UtilsWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/utils/UtilsWSServer.java @@ -32,6 +32,6 @@ public class UtilsWSServer extends GenericRestWSServer { public UtilsWSServer(@PathParam("version") String version, @PathParam("species") String species, @Context UriInfo uriInfo, @Context HttpServletRequest hsr) throws CellBaseServerException { - super(version, species, uriInfo, hsr); + super(version, species, null, uriInfo, hsr); } }