diff --git a/agr_api/src/main/java/org/alliancegenome/api/controller/GeneController.java b/agr_api/src/main/java/org/alliancegenome/api/controller/GeneController.java index 50b89254c..c78b8b43e 100644 --- a/agr_api/src/main/java/org/alliancegenome/api/controller/GeneController.java +++ b/agr_api/src/main/java/org/alliancegenome/api/controller/GeneController.java @@ -105,12 +105,12 @@ public JsonResultResponse getAllelesPerGene(String id, Integer limit Pagination pagination = new Pagination(page, limit, sortBy, asc); pagination.addFilterOption("symbol", symbol); pagination.addFilterOption("allele.alleleSynonyms.displayText", synonym); - pagination.addFilterOption("variants.curatedVariantGenomicLocations.hgvs", variant); + pagination.addFilterOption("variantList.curatedVariantGenomicLocations.hgvs", variant); pagination.addFilterOption("alterationType.keyword", category); - pagination.addFilterOption("variants.variantType.name.keyword", variantType); + pagination.addFilterOption("variantList.variantType.name.keyword", variantType); pagination.addFilterOption("hasDisease", hasDisease); pagination.addFilterOption("hasPhenotype", hasPhenotype); - pagination.addFilterOption("variants.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.keyword", molecularConsequence); + pagination.addFilterOption("variantList.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.keyword", molecularConsequence); if (pagination.hasErrors()) { RestErrorMessage message = new RestErrorMessage(); diff --git a/agr_api/src/main/java/org/alliancegenome/api/service/AlleleESService.java b/agr_api/src/main/java/org/alliancegenome/api/service/AlleleESService.java index 6a69fe4be..e21f88a26 100644 --- a/agr_api/src/main/java/org/alliancegenome/api/service/AlleleESService.java +++ b/agr_api/src/main/java/org/alliancegenome/api/service/AlleleESService.java @@ -41,13 +41,13 @@ public class AlleleESService extends ESService { }}; LinkedHashMap variantTypeSortMap = new LinkedHashMap<>() {{ - put("variants.variantType.name.sort", SortOrder.ASC); + put("variantList.variantType.name.sort", SortOrder.ASC); put("symbol.sort", SortOrder.ASC); }}; LinkedHashMap molecualarConsequenceSortMap = new LinkedHashMap<>() {{ - put("variants.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.sort", SortOrder.ASC); - put("variants.variantType.name.sort", SortOrder.ASC); + put("variantList.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.sort", SortOrder.ASC); + put("variantList.variantType.name.sort", SortOrder.ASC); put("symbol.sort", SortOrder.ASC); }}; @@ -171,8 +171,8 @@ private Map getAlleleSupplementalData(BoolQueryBuilder unfiltere Map aggregationFields = new HashMap<>(); aggregationFields.put("alterationType.keyword", "alleleCategory"); - aggregationFields.put("variants.variantType.name.keyword", "variantType"); - aggregationFields.put("variants.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.keyword", "molecularConsequence"); + aggregationFields.put("variantList.variantType.name.keyword", "variantType"); + aggregationFields.put("variantList.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name.keyword", "molecularConsequence"); Map> distinctFieldValueMap = getAggregations(unfilteredQuery, aggregationFields, null, false, false); Map supplementalData = new LinkedHashMap<>(); diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/TestSynonyms.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/TestSynonyms.java index fb23b236b..c04e9380c 100644 --- a/agr_indexer/src/main/java/org/alliancegenome/indexer/TestSynonyms.java +++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/TestSynonyms.java @@ -37,9 +37,9 @@ public static void main(String[] args) throws Exception { System.out.println("=== Step 1: AlleleSummaryDocument from API ==="); for (AlleleSummaryDocument doc : response.getResults()) { System.out.println("Allele symbol: " + (doc.getAllele() != null && doc.getAllele().getAlleleSymbol() != null ? doc.getAllele().getAlleleSymbol().getDisplayText() : "null")); - System.out.println("Variants: " + (doc.getVariants() != null ? doc.getVariants().size() : "null")); - if (doc.getVariants() != null) { - for (Variant v : doc.getVariants()) { + System.out.println("Variants: " + (doc.getVariantList() != null ? doc.getVariantList().size() : "null")); + if (doc.getVariantList() != null) { + for (Variant v : doc.getVariantList()) { System.out.println(" Variant type: " + (v.getVariantType() != null ? v.getVariantType().getName() : "null")); if (v.getCuratedVariantGenomicLocations() != null) { for (CuratedVariantGenomicLocationAssociation loc : v.getCuratedVariantGenomicLocations()) { diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/config/IndexerConfig.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/config/IndexerConfig.java index 8505b7be7..bc0e6e7e2 100644 --- a/agr_indexer/src/main/java/org/alliancegenome/indexer/config/IndexerConfig.java +++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/config/IndexerConfig.java @@ -21,7 +21,6 @@ import org.alliancegenome.indexer.indexers.curation.ReleaseInfoIndexer; import org.alliancegenome.indexer.indexers.curation.SiteMapAccessionCurationIndexer; import org.alliancegenome.indexer.indexers.curation.TransgenicAlleleCurationIndexer; -import org.alliancegenome.indexer.indexers.curation.VariantSummaryCurationIndexer; public enum IndexerConfig { @@ -39,7 +38,7 @@ public enum IndexerConfig { AffectedGenomicModelAnnotationIndexer("agmAnnotation", AGMAnnotationCurationIndexer.class, 4, 1500, 1500, 8, 1, true), GeneSearchResultCurationIndexer("geneSearchResult", GeneSearchResultCurationIndexer.class, 4, 1000, 1500, 4, 1, true), GeneSummaryIndexer("geneSummary", GeneSummaryCurationIndexer.class, 4, 1500, 1500, 4, 1, true), - VariantSummaryIndexer("variantSummary", VariantSummaryCurationIndexer.class, 1, 3000, 1500, 8, 1, true), + //VariantSummaryIndexer("variantSummary", VariantSummaryCurationIndexer.class, 1, 3000, 1500, 8, 1, true), GeneGeneticInteractionIndexers("geneGeneticInteraction", GeneGeneticInteractionCurationIndexer.class, 4, 1500, 1500, 2, 1, true), HTPDatasetSearchResultCurationIndexer("htpDatasetSearchResult", HTPDatasetSearchResultCurationIndexer.class, 4, 1500, 1500, 4, 1, true), LiteratureIndexer("literature", LiteratureIndexer.class, 4, 5000, 5000, 1, 1, true), diff --git a/agr_java_core/src/main/java/org/alliancegenome/core/translators/tdf/AlleleToTdfTranslator.java b/agr_java_core/src/main/java/org/alliancegenome/core/translators/tdf/AlleleToTdfTranslator.java index 013997130..31d08ae05 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/core/translators/tdf/AlleleToTdfTranslator.java +++ b/agr_java_core/src/main/java/org/alliancegenome/core/translators/tdf/AlleleToTdfTranslator.java @@ -64,8 +64,8 @@ public List getAlleleDownloadRowsForGenes(List an private List getVariants(AVSParentDocument doc) { return switch (doc) { - case AlleleSummaryDocument asd -> asd.getVariants(); - case VariantSummaryDocument vsd -> vsd.getVariants(); + case AlleleSummaryDocument asd -> asd.getVariantList(); + case VariantSummaryDocument vsd -> vsd.getVariantList(); default -> null; }; } @@ -252,7 +252,7 @@ public List getVariantDownloadRowsForAlleles(List convert(List alle searchDoc.setModCrossRefCompleteUrl(doc.getCrossReference().getReferencedCurie()); } + Set crossRefs = new HashSet<>(); + crossRefs.add(allele.getPrimaryExternalId()); + if (doc.getAlleleOfGene() != null && doc.getAlleleOfGene().getPrimaryExternalId() != null) { + crossRefs.add(doc.getAlleleOfGene().getPrimaryExternalId()); + } + searchDoc.setCrossReferences(crossRefs); + if (allele.getPopularity() != null) { searchDoc.setPopularity(allele.getPopularity()); } else { @@ -103,6 +110,10 @@ public List convert(List alle searchDoc.setDiseasesWithParents(new ArrayList<>(doc.getDiseasesWithParents())); } + if (doc.getPhenotypeStatements() != null && !doc.getPhenotypeStatements().isEmpty()) { + searchDoc.setPhenotypeStatements(new ArrayList<>(doc.getPhenotypeStatements())); + } + if (doc.getConstructExpressedComponents() != null && !doc.getConstructExpressedComponents().isEmpty()) { searchDoc.setConstructExpressedComponent(doc.getConstructExpressedComponents()); } @@ -115,8 +126,8 @@ public List convert(List alle searchDoc.setConstructKnockdownComponent(doc.getConstructKnockdownComponents()); } - if (CollectionUtils.isNotEmpty(doc.getVariants())) { - List variantTypes = doc.getVariants().stream() + if (CollectionUtils.isNotEmpty(doc.getVariantList())) { + List variantTypes = doc.getVariantList().stream() .filter(v -> v.getVariantType() != null && v.getVariantType().getName() != null) .map(v -> v.getVariantType().getName()) .distinct() @@ -126,11 +137,15 @@ public List convert(List alle } Set consequences = new HashSet<>(); - for (var variant : doc.getVariants()) { + Set variantHgvs = new HashSet<>(); + for (var variant : doc.getVariantList()) { if (variant.getCuratedVariantGenomicLocations() == null) { continue; } for (var location : variant.getCuratedVariantGenomicLocations()) { + if (location.getHgvs() != null) { + variantHgvs.add(location.getHgvs()); + } if (location.getPredictedVariantConsequences() == null) { continue; } @@ -149,6 +164,9 @@ public List convert(List alle if (!consequences.isEmpty()) { searchDoc.setMolecularConsequence(consequences); } + if (!variantHgvs.isEmpty()) { + searchDoc.setVariants(variantHgvs); + } } result.add(searchDoc); diff --git a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/AlleleSequenceSummaryConverter.java b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/AlleleSequenceSummaryConverter.java index f7fecc79d..c1d3657ea 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/AlleleSequenceSummaryConverter.java +++ b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/AlleleSequenceSummaryConverter.java @@ -17,7 +17,7 @@ public List convert(List alleleD List result = new ArrayList<>(); for (AlleleSummaryDocument doc : alleleDocs) { - if (CollectionUtils.isEmpty(doc.getVariants())) { + if (CollectionUtils.isEmpty(doc.getVariantList())) { continue; } @@ -26,7 +26,7 @@ public List convert(List alleleD geneIds.add(doc.getAlleleOfGene().getPrimaryExternalId()); } - for (Variant variant : doc.getVariants()) { + for (Variant variant : doc.getVariantList()) { if (CollectionUtils.isEmpty(variant.getCuratedVariantGenomicLocations())) { continue; } diff --git a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/SequenceSummaryConverter.java b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/SequenceSummaryConverter.java index afa403ac0..e01de4fb9 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/SequenceSummaryConverter.java +++ b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/SequenceSummaryConverter.java @@ -21,7 +21,7 @@ public List convertToSequenceSummary(List result = new ArrayList<>(); for (VariantSummaryDocument doc : docs) { - CuratedVariantGenomicLocationAssociation variantLocation = doc.getVariants().get(0).getCuratedVariantGenomicLocations().get(0); + CuratedVariantGenomicLocationAssociation variantLocation = doc.getVariantList().getFirst().getCuratedVariantGenomicLocations().get(0); if (variantLocation == null || variantLocation.getPredictedVariantConsequences() == null) { continue; } @@ -31,7 +31,7 @@ public List convertToSequenceSummary(List convertToVariantSearchDocument(List result = new ArrayList<>(); for (VariantSummaryDocument doc : variantSummaryDocuments) { - CuratedVariantGenomicLocationAssociation variantLocation = doc.getVariants().get(0).getCuratedVariantGenomicLocations().get(0); + CuratedVariantGenomicLocationAssociation variantLocation = doc.getVariantList().get(0).getCuratedVariantGenomicLocations().get(0); if (variantLocation == null) { continue; } diff --git a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSummaryConverter.java b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSummaryConverter.java index 6aec54429..c9ee5d451 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSummaryConverter.java +++ b/agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSummaryConverter.java @@ -275,7 +275,7 @@ public List convertContextToDocument(VariantContext ctx, variantWrapper.setTaxon(taxon); variantWrapper.setCuratedVariantGenomicLocations(List.of(cvgla)); variantWrapper.setCrossReferences(variant.getCrossReferences()); - doc.setVariants(List.of(variantWrapper)); + doc.setVariantList(List.of(variantWrapper)); doc.setGeneIds(resultPair.getRight()); returnDocuments.add(doc); } diff --git a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/dao/VariantESDAO.java b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/dao/VariantESDAO.java index 94ff229b7..d87512ab3 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/dao/VariantESDAO.java +++ b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/dao/VariantESDAO.java @@ -143,7 +143,7 @@ public VariantSummaryDocument getVariant(String id) { BoolQueryBuilder bool = boolQuery(); bool.filter(new TermQueryBuilder("category", "variant_summary")); - bool.must(new TermQueryBuilder("variants.curatedVariantGenomicLocations.hgvs.keyword", id)); + bool.must(new TermQueryBuilder("variantList.curatedVariantGenomicLocations.hgvs.keyword", id)); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(bool); @@ -167,7 +167,7 @@ public VariantSummaryDocument getVariant(String id) { for (SearchHit hit : searchHits) { try { VariantSummaryDocument summaryDoc = mapper.readValue(hit.getSourceAsString(), VariantSummaryDocument.class); - if (summaryDoc != null && summaryDoc.getVariants() != null && !summaryDoc.getVariants().isEmpty()) { + if (summaryDoc != null && summaryDoc.getVariantList() != null && !summaryDoc.getVariantList().isEmpty()) { return summaryDoc; } } catch (IOException e) { diff --git a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Mapping.java b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Mapping.java index 38f82fc12..6f8f598a6 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Mapping.java +++ b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Mapping.java @@ -98,9 +98,8 @@ protected void buildSharedSearchableDocumentMappings() throws IOException { new FieldBuilder(builder, "molecularConsequence", "text").keyword().build(); // allele new FieldBuilder(builder, "symbolText", "text").keyword().standardText().build(); // allele - //new FieldBuilder(builder, "variants", "text").keyword().standardText().build(); // allele + new FieldBuilder(builder, "variants", "text").keyword().standardText().build(); // allele - HGVS notation new FieldBuilder(builder, "variantType", "text").keyword().build(); // variant search result - //new FieldBuilder(builder, "variantSynonyms", "text").keyword().standardText().build(); // allele // Gene Only Fields new FieldBuilder(builder, "biologicalProcessAgrSlim", "text").keyword().build(); // gene @@ -286,13 +285,13 @@ protected void buildSharedSearchableDocumentMappings() throws IOException { builder.endObject(); new FieldBuilder(builder, "geneIds", "keyword").build(); - builder.startObject("variants"); + builder.startObject("variantList"); builder.field("type", "object"); builder.field("dynamic", false); builder.endObject(); - new FieldBuilder(builder, "variants.variantType.name", "text").keyword().sortSmartAlpha().build(); - new FieldBuilder(builder, "variants.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name", "text").keyword().sortSmartAlpha().build(); - new FieldBuilder(builder, "variants.curatedVariantGenomicLocations.hgvs", "text").keyword().sortSmartAlpha().build(); + new FieldBuilder(builder, "variantList.variantType.name", "text").keyword().sortSmartAlpha().build(); + new FieldBuilder(builder, "variantList.curatedVariantGenomicLocations.predictedVariantConsequences.vepConsequences.name", "text").keyword().sortSmartAlpha().build(); + new FieldBuilder(builder, "variantList.curatedVariantGenomicLocations.hgvs", "text").keyword().sortSmartAlpha().build(); builder.startObject("crossReference"); builder.field("type", "object"); builder.field("dynamic", false); diff --git a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/VariantMapping.java b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/VariantMapping.java index 2ea64066f..2eeffb65e 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/VariantMapping.java +++ b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/VariantMapping.java @@ -38,7 +38,7 @@ public void buildMapping() { builder.endObject(); builder.endObject(); - builder.startObject("variants"); + builder.startObject("variantList"); builder.field("dynamic", false); builder.startObject("properties"); new FieldBuilder(builder, "variantType.name", "text").keyword().sortLowercase().build(); diff --git a/agr_java_core/src/main/java/org/alliancegenome/es/model/AlleleSearchResultDocument.java b/agr_java_core/src/main/java/org/alliancegenome/es/model/AlleleSearchResultDocument.java index a62b69c70..c5c4f38a8 100644 --- a/agr_java_core/src/main/java/org/alliancegenome/es/model/AlleleSearchResultDocument.java +++ b/agr_java_core/src/main/java/org/alliancegenome/es/model/AlleleSearchResultDocument.java @@ -27,9 +27,11 @@ public AlleleSearchResultDocument() { private String alterationType; private List variantType; private Set molecularConsequence; + private Set variants; private Set constructExpressedComponent; private Set constructRegulatoryRegion; private Set constructKnockdownComponent; + private Set crossReferences; private List synonyms; private Set geneSynonyms; private List secondaryIds; diff --git a/pom.xml b/pom.xml index fe3502d0d..2885d2399 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 3.3.1 10.17.0 UTF-8 - v0.47.33 + v0.47.36