Skip to content

Commit d9c4fdf

Browse files
authored
Merge pull request #1546 from alliance-genome/SCRUM-5953
SCRUM-5953 Split allele_variant into separate allele and variant categories
2 parents 92fcadc + 0ae0963 commit d9c4fdf

File tree

7 files changed

+44
-48
lines changed

7 files changed

+44
-48
lines changed

agr_api/src/main/java/org/alliancegenome/api/service/SearchService.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ public BoolQueryBuilder buildQuery(String queryTerm, String category, Multivalue
242242

243243
// apply filters if a category has been set
244244
if (StringUtils.isNotEmpty(category)) {
245-
if (Category.ALLELE_VARIANT.getName().equals(category)) {
246-
bool.filter(termsQuery("category", Category.ALLELE_VARIANT.getName(), Category.VARIANT.getName()));
245+
if (Category.ALLELE.getName().equals(category)) {
246+
bool.filter(termsQuery("category", Category.ALLELE.getName(), Category.VARIANT.getName()));
247247
} else {
248248
bool.filter(new TermQueryBuilder("category", category));
249249
}
@@ -330,20 +330,21 @@ public void addRelatedDataLinks(Map<String, Object> result) {
330330

331331
if (StringUtils.equals(category, Category.GENE.getName())) {
332332
links.add(getRelatedDataLink(Category.DISEASE.getName(), "genes", nameKey));
333-
links.add(getRelatedDataLink(Category.ALLELE_VARIANT.getName(), "genes", nameKey));
333+
links.add(getRelatedDataLink(Category.ALLELE.getName(), "genes", nameKey));
334+
links.add(getRelatedDataLink(Category.VARIANT.getName(), "genes", nameKey));
334335
links.add(getRelatedDataLink(Category.GO.getName(), "genes", nameKey));
335336
links.add(getRelatedDataLink(Category.MODEL.getName(), "genes", nameKey));
336337
} else if (StringUtils.equals(category, Category.DISEASE.getName())) {
337338
links.add(getRelatedDataLink(Category.GENE.getName(), "diseasesWithParents", nameKey));
338-
links.add(getRelatedDataLink(Category.ALLELE_VARIANT.getName(), "diseasesWithParents", nameKey));
339+
links.add(getRelatedDataLink(Category.ALLELE.getName(), "diseasesWithParents", nameKey));
339340
links.add(getRelatedDataLink(Category.MODEL.getName(), "diseasesWithParents", nameKey));
340-
} else if (StringUtils.equals(category, Category.ALLELE_VARIANT.getName()) && StringUtils.equals((String) result.get("alterationType"), "allele")) {
341+
} else if (StringUtils.equals(category, Category.ALLELE.getName()) && StringUtils.equals((String) result.get("alterationType"), "allele")) {
341342
links.add(getRelatedDataLink(Category.DISEASE.getName(), "alleles", nameKey));
342343
links.add(getRelatedDataLink(Category.GENE.getName(), "alleles", nameKey));
343344
links.add(getRelatedDataLink(Category.MODEL.getName(), "alleles", nameKey));
344345
} else if (StringUtils.equals(category, Category.MODEL.getName())) {
345346
links.add(getRelatedDataLink(Category.GENE.getName(), "models", nameKey));
346-
links.add(getRelatedDataLink(Category.ALLELE_VARIANT.getName(), "models", nameKey));
347+
links.add(getRelatedDataLink(Category.ALLELE.getName(), "models", nameKey));
347348
links.add(getRelatedDataLink(Category.DISEASE.getName(), "models", nameKey));
348349
} else if (StringUtils.equals(category, Category.GO.getName())) {
349350
String goType = (String) result.get("branch");

agr_api/src/main/java/org/alliancegenome/api/service/helper/SearchHelper.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package org.alliancegenome.api.service.helper;
22

3-
import jakarta.ws.rs.core.UriInfo;
4-
import lombok.Getter;
5-
import lombok.extern.slf4j.Slf4j;
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.HashMap;
6+
import java.util.HashSet;
7+
import java.util.List;
8+
import java.util.Map;
9+
import java.util.Set;
10+
611
import org.alliancegenome.es.model.search.AggDocCount;
712
import org.alliancegenome.es.model.search.AggResult;
813
import org.alliancegenome.es.model.search.Category;
@@ -17,7 +22,9 @@
1722
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
1823
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
1924

20-
import java.util.*;
25+
import jakarta.ws.rs.core.UriInfo;
26+
import lombok.Getter;
27+
import lombok.extern.slf4j.Slf4j;
2128

2229
@Slf4j
2330
public class SearchHelper {
@@ -62,7 +69,7 @@ public class SearchHelper {
6269
add("associatedSpecies");
6370
}
6471
});
65-
put(Category.ALLELE_VARIANT.getName(), new ArrayList<>() {
72+
put(Category.ALLELE.getName(), new ArrayList<>() {
6673
{
6774
add("species");
6875
add("alterationType");
@@ -348,30 +355,31 @@ public ArrayList<AggResult> formatAggResults(String category, SearchResponse res
348355
}
349356

350357
/**
351-
* Merge the "allele_variant_search_results" and "variant_search_results" aggregation buckets into a single "allele_variant_search_results" bucket.
358+
* Merge the "allele_search_results" and "variant_search_results" aggregation buckets into a single "allele_search_results" bucket.
352359
*/
353360
private void mergeAlleleVariantBuckets(AggResult aggResult) {
354361
long combinedCount = 0;
355362
List<AggDocCount> toRemove = new ArrayList<>();
356363
for (AggDocCount bucket : aggResult.getValues()) {
357-
if (bucket.getKey().equals(Category.ALLELE_VARIANT.getName()) || bucket.getKey().equals(Category.VARIANT.getName())) {
364+
if (bucket.getKey().equals(Category.ALLELE.getName()) || bucket.getKey().equals(Category.VARIANT.getName())) {
358365
combinedCount += bucket.getTotal();
359366
toRemove.add(bucket);
360367
}
361368
}
362369
aggResult.getValues().removeAll(toRemove);
363370
if (combinedCount > 0) {
364-
aggResult.getValues().add(new AggDocCount(Category.ALLELE_VARIANT.getName(), combinedCount));
371+
aggResult.getValues().add(new AggDocCount(Category.ALLELE.getName(), combinedCount));
365372
}
366373
}
367374

368375
private static final List<String> CATEGORY_ORDER = List.of(
369-
Category.ALLELE_VARIANT.getName(),
376+
Category.ALLELE.getName(),
370377
Category.GENE.getName(),
371378
Category.GO.getName(),
372379
Category.DISEASE.getName(),
373380
Category.MODEL.getName(),
374-
Category.DATASET.getName()
381+
Category.DATASET.getName(),
382+
Category.VARIANT.getName()
375383
);
376384

377385
/**

agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/VariantSummaryCurationIndexer.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.alliancegenome.indexer.indexers.curation;
22

3-
import java.util.ArrayList;
43
import java.util.HashMap;
5-
import java.util.List;
64
import java.util.concurrent.LinkedBlockingDeque;
75

86
import org.alliancegenome.core.config.ConfigHelper;
@@ -14,7 +12,6 @@
1412
import org.alliancegenome.exceptional.client.ExceptionCatcher;
1513
import org.alliancegenome.indexer.config.IndexerConfig;
1614
import org.alliancegenome.indexer.indexers.Indexer;
17-
import org.apache.commons.collections4.CollectionUtils;
1815

1916
import com.fasterxml.jackson.databind.ObjectMapper;
2017

@@ -67,29 +64,10 @@ protected void startSingleThread(LinkedBlockingDeque<String> queue) {
6764
}
6865

6966
String page = queue.takeFirst();
70-
// log.info(queue.size() + " pages to process " +
71-
// Thread.currentThread().getName() + " starting page: " + page);
67+
7268
SearchResponse<VariantSummaryDocument> response = variantApi.findDocuments(Integer.valueOf(page), indexerConfig.getBufferSize(), params);
73-
74-
// log.info("Search Response: " + response);
75-
List<VariantSummaryDocument> results = response.getResults();
76-
if (response == null || CollectionUtils.isEmpty(results)) {
77-
return;
78-
}
79-
80-
List<VariantSummaryDocument> list = new ArrayList<>();
81-
for (VariantSummaryDocument document : results) {
82-
if (document == null) {
83-
continue;
84-
}
85-
document.setAlterationType("variant");
86-
document.setAlterationTypeSortOrder(4);
87-
document.setHasPhenotype(false);
88-
document.setHasDisease(false);
89-
list.add(document);
90-
}
91-
92-
indexDocuments(list);
69+
70+
indexDocuments(response.getResults());
9371
} catch (Exception e) {
9472
log.error("Error while indexing...", e);
9573
ExceptionCatcher.report(e);

agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSearchResultConverter.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,18 @@ public List<VariantSearchResultDocument> convertToVariantSearchDocument(List<Var
4848
.map(TranscriptGeneAssociation::getTranscriptGeneAssociationObject)
4949
.filter(Objects::nonNull)
5050
.map(gene -> {
51+
String name = null;
5152
if (gene.getGeneSymbol() != null && gene.getGeneSymbol().getDisplayText() != null) {
52-
return gene.getGeneSymbol().getDisplayText();
53+
name = gene.getGeneSymbol().getDisplayText();
54+
} else if (gene.getPrimaryExternalId() != null) {
55+
name = gene.getPrimaryExternalId();
56+
} else {
57+
name = gene.getCurie();
5358
}
54-
if (gene.getPrimaryExternalId() != null) {
55-
return gene.getPrimaryExternalId();
59+
if (name != null && gene.getTaxon() != null && gene.getTaxon().getSpecies() != null) {
60+
name = name + " (" + gene.getTaxon().getSpecies().getAbbreviation() + ")";
5661
}
57-
return gene.getCurie();
62+
return name;
5863
})
5964
.filter(Objects::nonNull)
6065
.distinct()

agr_java_core/src/main/java/org/alliancegenome/core/variant/converters/VariantSummaryConverter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.alliancegenome.curation_api.model.entities.Gene;
1818
import org.alliancegenome.curation_api.model.entities.GenomeAssembly;
1919
import org.alliancegenome.curation_api.model.entities.PredictedVariantConsequence;
20+
import org.alliancegenome.curation_api.model.entities.Species;
2021
import org.alliancegenome.curation_api.model.entities.Transcript;
2122
import org.alliancegenome.curation_api.model.entities.Variant;
2223
import org.alliancegenome.curation_api.model.entities.VocabularyTerm;
@@ -106,11 +107,15 @@ public List<VariantSummaryDocument> convertContextToDocument(VariantContext ctx,
106107

107108
List<VariantSummaryDocument> returnDocuments = new ArrayList<>();
108109

110+
// TODO remove speciesType altogether and use the correct Species class coming from curation
109111
// Initialize taxon if not already done
110112
if (taxon == null) {
111113
taxon = new NCBITaxonTerm();
112114
taxon.setName(speciesType.getName());
113115
taxon.setCurie(speciesType.getTaxonID());
116+
Species species = new Species();
117+
species.setAbbreviation(speciesType.getAbbreviation());
118+
taxon.setSpecies(species);
114119
}
115120

116121
// Create variant type

agr_java_core/src/main/java/org/alliancegenome/es/model/AlleleSearchResultDocument.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.Set;
55

66
import org.alliancegenome.curation_api.model.document.es.ESDocument;
7-
import org.alliancegenome.es.model.search.RelatedDataLink;
87

98
import lombok.Getter;
109
import lombok.Setter;
@@ -14,7 +13,7 @@
1413
public class AlleleSearchResultDocument extends ESDocument {
1514

1615
public AlleleSearchResultDocument() {
17-
category = "allele_variant_search_result";
16+
category = "allele_search_result";
1817
}
1918

2019
private boolean searchable;

agr_java_core/src/main/java/org/alliancegenome/es/model/search/Category.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public enum Category {
44

55
ALLELE_SUMMARY("allele_summary", false),
6-
ALLELE_VARIANT("allele_variant_search_result", true),
6+
ALLELE("allele_search_result", true),
77
VARIANT("variant_search_result", true),
88
SEQUENCE_SUMMARY("sequence_summary", false),
99
DISEASE("disease_search_result", true),

0 commit comments

Comments
 (0)