Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.alliancegenome.neo4j.view.HomologView;
import org.alliancegenome.neo4j.view.OrthologyFilter;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.*;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -291,6 +292,9 @@ public JsonResultResponse<GeneGeneticInteractionDocument> getGeneticInteractions
@Context UriInfo info) {
long startTime = System.currentTimeMillis();

if (StringUtils.isEmpty(sortBy)) {
sortBy = "geneGeneticInteraction.geneGeneAssociationObject.geneSymbol.displayText.keyword";
}
Pagination pagination = new Pagination(page, limit, sortBy, asc, new InteractionColumnFieldMapping());
pagination.addFilterOption("geneGeneticInteraction.geneGeneAssociationObject.geneSymbol.displayText", interactorGeneSymbol);
pagination.addFilterOption("geneGeneticInteraction.interactionId", source);
Expand Down Expand Up @@ -341,6 +345,9 @@ public Response getGeneticInteractionsDownload(String id, String sortBy, String
String phenotypes,
String interactionType
) {
if (StringUtils.isEmpty(sortBy)) {
sortBy = "geneGeneticInteraction.geneGeneAssociationObject.geneSymbol.displayText.keyword";
}
Pagination pagination = new Pagination(1, 150000, sortBy, asc);
pagination.addFilterOption("geneGeneticInteraction.geneGeneAssociationObject.geneSymbol.displayText", interactorGeneSymbol);
pagination.addFilterOption("geneGeneticInteraction.interactionId", source);
Expand Down Expand Up @@ -378,6 +385,9 @@ public JsonResultResponse<GeneMolecularInteractionDocument> getMolecularInteract
String reference,
@Context UriInfo info) {
long startTime = System.currentTimeMillis();
if (StringUtils.isEmpty(sortBy)) {
sortBy = "geneMolecularInteraction.geneGeneAssociationObject.geneSymbol.displayText.keyword";
}
Pagination pagination = new Pagination(page, limit, sortBy, asc, new InteractionColumnFieldMapping());
pagination.addFilterOption("geneMolecularInteraction.interactorAType.name.keyword", moleculeType);
pagination.addFilterOption("geneMolecularInteraction.geneGeneAssociationObject.geneSymbol.displayText", interactorGeneSymbol);
Expand Down Expand Up @@ -422,6 +432,9 @@ public Response getMolecularInteractionsDownload(String id, String sortBy, Strin
String source,
String reference
) {
if (StringUtils.isEmpty(sortBy)) {
sortBy = "geneMolecularInteraction.geneGeneAssociationObject.geneSymbol.displayText.keyword";
}
Pagination pagination = new Pagination(1, 150000, sortBy, asc);
pagination.addFilterOption("geneMolecularInteraction.interactorAType.name.keyword", moleculeType);
pagination.addFilterOption("geneMolecularInteraction.geneGeneAssociationObject.geneSymbol.displayText", interactorGeneSymbol);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
package org.alliancegenome.api.service;

import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Inject;
import static org.alliancegenome.cache.repository.helper.JsonResultResponse.DISTINCT_FIELD_VALUES;
import static org.elasticsearch.index.query.QueryBuilders.boolQuery;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import org.alliancegenome.api.entity.AlleleVariantSequence;
import org.alliancegenome.api.entity.GeneGeneticInteractionDocument;
import org.alliancegenome.api.entity.GeneMolecularInteractionDocument;
Expand All @@ -25,8 +34,6 @@
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation;
Expand All @@ -35,12 +42,10 @@
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.SortOrder;

import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import com.fasterxml.jackson.databind.ObjectMapper;

import static org.alliancegenome.cache.repository.helper.JsonResultResponse.DISTINCT_FIELD_VALUES;
import static org.elasticsearch.index.query.QueryBuilders.boolQuery;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Inject;

@RequestScoped
public class GeneService {
Expand Down Expand Up @@ -104,10 +109,20 @@ public JsonResultResponse<AlleleVariantSequence> getAllelesAndVariantInfo(String

public JsonResultResponse<GeneGeneticInteractionDocument> getGeneticInteractions(String geneId, Pagination pagination) {
BoolQueryBuilder query = boolQuery();
query.should(new MatchQueryBuilder("geneGeneticInteraction.geneAssociationSubject.curie.keyword", geneId));
query.should(new MatchQueryBuilder("geneGeneticInteraction.geneAssociationSubject.primaryExternalId.keyword", geneId));
query.should(new MatchQueryBuilder("geneGeneticInteraction.geneAssociationSubject.modInternalId.keyword", geneId));

String[] idFields = {
"geneGeneticInteraction.geneAssociationSubject.curie.keyword",
"geneGeneticInteraction.geneAssociationSubject.primaryExternalId.keyword",
"geneGeneticInteraction.geneAssociationSubject.modInternalId.keyword"
};
BoolQueryBuilder idQuery = boolQuery();
Arrays.stream(idFields).forEach(idField -> {
BoolQueryBuilder orClause = elasticSearchHelper.getBooleanAndedQueryBuilder(idField, geneId);
idQuery.should(orClause);
});

query.must(idQuery);

JsonResultResponse<GeneGeneticInteractionDocument> ret = new JsonResultResponse<>();
ret.setSupplementalData(getGeneticInteractionSupplementalData(query));

Expand Down Expand Up @@ -141,13 +156,19 @@ public JsonResultResponse<GeneGeneticInteractionDocument> getGeneticInteractions

public JsonResultResponse<GeneMolecularInteractionDocument> getMolecularInteractions(String geneId, Pagination pagination) {
BoolQueryBuilder query = boolQuery();
BoolQueryBuilder query2 = boolQuery();
query.must(query2);
query2.should(new MatchQueryBuilder("geneMolecularInteraction.geneAssociationSubject.curie.keyword", geneId));
query2.should(new MatchQueryBuilder("geneMolecularInteraction.geneAssociationSubject.primaryExternalId.keyword", geneId));
query2.should(new MatchQueryBuilder("geneMolecularInteraction.geneAssociationSubject.modInternalId.keyword", geneId));
String[] idFields = {
"geneMolecularInteraction.geneAssociationSubject.curie.keyword",
"geneMolecularInteraction.geneAssociationSubject.primaryExternalId.keyword",
"geneMolecularInteraction.geneAssociationSubject.modInternalId.keyword"
};
BoolQueryBuilder idQuery = boolQuery();
Arrays.stream(idFields).forEach(idField -> {
BoolQueryBuilder orClause = elasticSearchHelper.getBooleanAndedQueryBuilder(idField, geneId);
idQuery.should(orClause);
});

query.filter(new TermQueryBuilder("category", "gene_molecular_interaction"));
query.must(idQuery);

JsonResultResponse<GeneMolecularInteractionDocument> ret = new JsonResultResponse<>();
ret.setSupplementalData(getMolecularInteractionSupplementalData(query));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,12 @@ private void generateFilter(BoolQueryBuilder bool, String filterName, String fil
}
}
}
//Log.info(bool);
}

/*
* split filter values by white spaces and create and ANDed boolean query
*/
private BoolQueryBuilder getBooleanAndedQueryBuilder(String filterName, String filterValue) {
public BoolQueryBuilder getBooleanAndedQueryBuilder(String filterName, String filterValue) {
BoolQueryBuilder andClause = boolQuery();
String[] elements = escapeValue(filterValue).split(" ");
Arrays.stream(elements).forEach(element -> andClause.must(QueryBuilders.queryStringQuery("*" + element + "*").field(filterName)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import org.alliancegenome.api.entity.GeneGeneticInteractionDocument;
import org.alliancegenome.core.config.ConfigHelper;
import org.alliancegenome.curation_api.model.entities.InformationContentEntity;
import org.alliancegenome.curation_api.model.entities.Reference;
import org.apache.commons.collections.CollectionUtils;

public class GeneGeneticInteractionToTdfTranslator {
Expand Down Expand Up @@ -81,7 +83,10 @@ public String getAllRows(List<GeneGeneticInteractionDocument> interactions) {
String referenceCuries = "";
if (CollectionUtils.isNotEmpty(interaction.getGeneGeneticInteraction().getEvidence())) {
StringJoiner referenceJoiner = new StringJoiner(",");
interaction.getGeneGeneticInteraction().getEvidence().forEach(reference -> referenceJoiner.add(reference.getCurie()));
for (InformationContentEntity ice : interaction.getGeneGeneticInteraction().getEvidence()) {
Reference reference = (Reference) ice;
referenceJoiner.add(reference.getReferenceID());
}
referenceCuries = referenceJoiner.toString();
}
joiner.add(referenceCuries);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import org.alliancegenome.api.entity.GeneMolecularInteractionDocument;
import org.alliancegenome.core.config.ConfigHelper;
import org.alliancegenome.curation_api.model.entities.InformationContentEntity;
import org.alliancegenome.curation_api.model.entities.Reference;
import org.apache.commons.collections.CollectionUtils;

public class GeneMolecularInteractionToTdfTranslator {
Expand Down Expand Up @@ -100,7 +102,10 @@ public String getAllRows(List<GeneMolecularInteractionDocument> interactions) {
String referenceCuries = "";
if (CollectionUtils.isNotEmpty(interaction.getGeneMolecularInteraction().getEvidence())) {
StringJoiner referenceJoiner = new StringJoiner(",");
interaction.getGeneMolecularInteraction().getEvidence().forEach(reference -> referenceJoiner.add(reference.getCurie()));
for (InformationContentEntity ice : interaction.getGeneMolecularInteraction().getEvidence()) {
Reference reference = (Reference) ice;
referenceJoiner.add(reference.getReferenceID());
}
referenceCuries = referenceJoiner.toString();
}
joiner.add(referenceCuries);
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>${quarkus.version}</quarkus.platform.version>
<curation.version>v0.36.9</curation.version>
<curation.version>v0.36.12</curation.version>
<!-- <curation.version>0.0.0-SNAPSHOT</curation.version> -->
</properties>
<dependencyManagement>
Expand Down
Loading