diff --git a/agr_indexer/pom.xml b/agr_indexer/pom.xml
index 9e6ecf2ba..be2573273 100644
--- a/agr_indexer/pom.xml
+++ b/agr_indexer/pom.xml
@@ -32,6 +32,19 @@
process-display
1.0.12
+
+
+
+ org.apache.logging.log4j
+ log4j-to-slf4j
+ 2.20.0
+
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+
${project.artifactId}
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 199155cf5..346e69e1d 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
@@ -30,7 +30,7 @@ public enum IndexerConfig {
GeneGeneticInteractionIndexers("geneGeneticInteraction", GeneGeneticInteractionCurationIndexer.class, 4, 1500, 1500, 2, 1),
GeneMolecularInteractionIndexers("geneMolecularInteraction", GeneMolecularInteractionCurationIndexer.class, 4, 1500, 1500, 2, 1),
ParalogyIndexer("paralogy", GeneToGeneParalogyIndexer.class, 4, 5000, 5000, 8, 1),
- PhenotypeAnnotationIndexer("phenotypeAnnotation", PhenotypeAnnotationCurationIndexer.class, 1, 1500, 1500, 2, 1),
+ PhenotypeAnnotationIndexer("phenotypeAnnotation", PhenotypeAnnotationCurationIndexer.class, 4, 1500, 1500, 2, 1),
ReleaseInfoIndexer("release", ReleaseInfoIndexer.class, 1, 1, 1, 1, 1),
;
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/GoIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/GoIndexer.java
index e6c4a42f1..e10c9b583 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/GoIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/GoIndexer.java
@@ -13,8 +13,8 @@
@Slf4j
public class GoIndexer extends Indexer {
- private final GoRepository goRepo = new GoRepository();
- private final GoTranslator goTrans = new GoTranslator();
+ private GoRepository goRepo;
+ private GoTranslator goTrans;
public GoIndexer(IndexerConfig config) {
super(config);
@@ -22,6 +22,9 @@ public GoIndexer(IndexerConfig config) {
@Override
public void index() {
+
+ goRepo = new GoRepository();
+ goTrans = new GoTranslator();
log.info("Pulling All Terms");
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/DiseaseAnnotationCurationIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/DiseaseAnnotationCurationIndexer.java
index 58d9dba6a..602753312 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/DiseaseAnnotationCurationIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/DiseaseAnnotationCurationIndexer.java
@@ -1,13 +1,36 @@
package org.alliancegenome.indexer.indexers.curation;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.extern.slf4j.Slf4j;
+import static java.util.stream.Collectors.groupingBy;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.stream.Collectors;
+
import org.alliancegenome.api.entity.AGMDiseaseAnnotationDocument;
import org.alliancegenome.api.entity.AlleleDiseaseAnnotationDocument;
import org.alliancegenome.api.entity.DiseaseAnnotationDocument;
import org.alliancegenome.api.entity.GeneDiseaseAnnotationDocument;
import org.alliancegenome.core.helpers.DiseaseAnnotationHelper;
-import org.alliancegenome.curation_api.model.entities.*;
+import org.alliancegenome.curation_api.model.entities.AGMDiseaseAnnotation;
+import org.alliancegenome.curation_api.model.entities.AffectedGenomicModel;
+import org.alliancegenome.curation_api.model.entities.Allele;
+import org.alliancegenome.curation_api.model.entities.AlleleDiseaseAnnotation;
+import org.alliancegenome.curation_api.model.entities.BiologicalEntity;
+import org.alliancegenome.curation_api.model.entities.ConditionRelation;
+import org.alliancegenome.curation_api.model.entities.DiseaseAnnotation;
+import org.alliancegenome.curation_api.model.entities.ExperimentalCondition;
+import org.alliancegenome.curation_api.model.entities.Gene;
+import org.alliancegenome.curation_api.model.entities.GeneDiseaseAnnotation;
+import org.alliancegenome.curation_api.model.entities.Reference;
+import org.alliancegenome.curation_api.model.entities.VocabularyTerm;
import org.alliancegenome.curation_api.model.entities.base.SubmittedObject;
import org.alliancegenome.curation_api.model.entities.ontology.DOTerm;
import org.alliancegenome.curation_api.model.entities.ontology.ECOTerm;
@@ -19,31 +42,28 @@
import org.alliancegenome.indexer.indexers.curation.service.AGMDiseaseAnnotationService;
import org.alliancegenome.indexer.indexers.curation.service.AlleleDiseaseAnnotationService;
import org.alliancegenome.indexer.indexers.curation.service.GeneDiseaseAnnotationService;
-import org.alliancegenome.indexer.indexers.curation.service.VocabularyService;
+import org.alliancegenome.indexer.indexers.curation.service.VocabularyTermService;
import org.alliancegenome.neo4j.entity.SpeciesType;
import org.alliancegenome.neo4j.repository.DiseaseRepository;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.concurrent.LinkedBlockingDeque;
-import java.util.stream.Collectors;
+import com.fasterxml.jackson.databind.ObjectMapper;
-import static java.util.stream.Collectors.groupingBy;
+import lombok.extern.slf4j.Slf4j;
@Slf4j
public class DiseaseAnnotationCurationIndexer extends Indexer {
- private GeneDiseaseAnnotationService geneService = new GeneDiseaseAnnotationService();
- private AlleleDiseaseAnnotationService alleleService = new AlleleDiseaseAnnotationService();
- private AGMDiseaseAnnotationService agmService = new AGMDiseaseAnnotationService();
- private VocabularyService vocabService = new VocabularyService();
+ private GeneDiseaseAnnotationService geneService;
+ private AlleleDiseaseAnnotationService alleleService;
+ private AGMDiseaseAnnotationService agmService;
+ private VocabularyTermService vocabTermService;
private DiseaseRepository diseaseRepository;
private Map> closureMap;
private Map>> geneMap = new HashMap<>();
- Map>> generatedImplicatedGeneMap = new HashMap<>();
+ private Map>> generatedImplicatedGeneMap = new HashMap<>();
private Map>> alleleMap = new HashMap<>();
private Map>> agmMap = new HashMap<>();
@@ -66,8 +86,12 @@ protected void startSingleThread(LinkedBlockingDeque queue) {
@Override
protected void index() {
-
+ geneService = new GeneDiseaseAnnotationService();
+ alleleService = new AlleleDiseaseAnnotationService();
+ agmService = new AGMDiseaseAnnotationService();
+ vocabTermService = new VocabularyTermService();
diseaseRepository = new DiseaseRepository();
+
closureMap = diseaseRepository.getDOClosureChildMapping();
indexGenes();
@@ -185,7 +209,7 @@ private List createGeneDiseaseAnnotationDocuments
ProcessDisplayHelper ph = new ProcessDisplayHelper(10000);
ph.startProcess("Creating Gene Disease Annotations", geneMap.size());
- final VocabularyTerm relationIsImplicatedIn = vocabService.getDiseaseRelationTerms().get("is_implicated_in");
+ final VocabularyTerm relationIsImplicatedIn = vocabTermService.getDiseaseRelationTerms().get("is_implicated_in");
for (Entry>> entry : geneMap.entrySet()) {
HashMap lookup = new HashMap<>();
@@ -287,7 +311,7 @@ private List createAlleleDiseaseAnnotationDocum
ProcessDisplayHelper ph = new ProcessDisplayHelper(10000);
ph.startProcess("Creating Allele Disease Annotations", alleleMap.size());
- VocabularyTerm relation = vocabService.getDiseaseRelationTerms().get("is_implicated_in");
+ VocabularyTerm relation = vocabTermService.getDiseaseRelationTerms().get("is_implicated_in");
for (Entry>> entry : alleleMap.entrySet()) {
HashMap lookup = new HashMap<>();
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneExpressionAnnotationIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneExpressionAnnotationIndexer.java
index 3f031a89f..ac97ef33a 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneExpressionAnnotationIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneExpressionAnnotationIndexer.java
@@ -1,7 +1,9 @@
package org.alliancegenome.indexer.indexers.curation;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.extern.slf4j.Slf4j;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.LinkedBlockingDeque;
+
import org.alliancegenome.api.entity.GeneExpressionAnnotationDocument;
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
@@ -11,14 +13,14 @@
import org.alliancegenome.indexer.indexers.curation.service.GeneExpressionAnnotationService;
import org.apache.commons.collections.CollectionUtils;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.LinkedBlockingDeque;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import lombok.extern.slf4j.Slf4j;
@Slf4j
public class GeneExpressionAnnotationIndexer extends Indexer {
- GeneExpressionAnnotationService geneExpressionAnnotationService = new GeneExpressionAnnotationService();
+ GeneExpressionAnnotationService geneExpressionAnnotationService;
public GeneExpressionAnnotationIndexer(IndexerConfig indexerConfig) {
super(indexerConfig);
@@ -27,6 +29,7 @@ public GeneExpressionAnnotationIndexer(IndexerConfig indexerConfig) {
@Override
protected void index() {
try {
+ geneExpressionAnnotationService = new GeneExpressionAnnotationService();
SearchResponse response = geneExpressionAnnotationService.getGeneExpressionAnnotations(0, 0);
log.info("GeneExpressionAnnotation count: " + response.getTotalResults());
int totalPages = (int) (response.getTotalResults() / indexerConfig.getBufferSize());
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneGeneticInteractionCurationIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneGeneticInteractionCurationIndexer.java
index 85dd2b47e..db7a1f42a 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneGeneticInteractionCurationIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneGeneticInteractionCurationIndexer.java
@@ -20,7 +20,8 @@
@Slf4j
public class GeneGeneticInteractionCurationIndexer extends Indexer {
- private GeneGeneticInteractionService geneGeneticInteractionService = new GeneGeneticInteractionService();
+
+ private GeneGeneticInteractionService geneGeneticInteractionService;
public GeneGeneticInteractionCurationIndexer(IndexerConfig config) {
super(config);
@@ -28,7 +29,7 @@ public GeneGeneticInteractionCurationIndexer(IndexerConfig config) {
@Override
protected void index() {
-
+ geneGeneticInteractionService = new GeneGeneticInteractionService();
try {
SearchResponse interactionResponse = geneGeneticInteractionService.getGeneGeneticInteractions(0, 0);
log.info("GeneGeneticInteraction count: " + interactionResponse.getTotalResults());
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneMolecularInteractionCurationIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneMolecularInteractionCurationIndexer.java
index 935eb75dd..e6d57640c 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneMolecularInteractionCurationIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneMolecularInteractionCurationIndexer.java
@@ -20,7 +20,7 @@
@Slf4j
public class GeneMolecularInteractionCurationIndexer extends Indexer {
- private GeneMolecularInteractionService geneMolecularInteractionService = new GeneMolecularInteractionService();
+ private GeneMolecularInteractionService geneMolecularInteractionService;
public GeneMolecularInteractionCurationIndexer(IndexerConfig config) {
super(config);
@@ -28,7 +28,7 @@ public GeneMolecularInteractionCurationIndexer(IndexerConfig config) {
@Override
protected void index() {
-
+ geneMolecularInteractionService = new GeneMolecularInteractionService();
try {
SearchResponse interactionResponse = geneMolecularInteractionService.getGeneMolecularInteractions(0, 0);
log.info("GeneMolecularInteraction count: " + interactionResponse.getTotalResults());
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneToGeneParalogyIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneToGeneParalogyIndexer.java
index 1b821b397..caccd2bf5 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneToGeneParalogyIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/GeneToGeneParalogyIndexer.java
@@ -11,13 +11,15 @@
import org.alliancegenome.indexer.config.IndexerConfig;
import org.alliancegenome.indexer.indexers.Indexer;
import org.alliancegenome.indexer.indexers.curation.service.GeneToGeneParalogyService;
+
import com.fasterxml.jackson.databind.ObjectMapper;
+
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class GeneToGeneParalogyIndexer extends Indexer {
- GeneToGeneParalogyService service = new GeneToGeneParalogyService();
+ GeneToGeneParalogyService service;
public GeneToGeneParalogyIndexer(IndexerConfig indexerConfig) {
super(indexerConfig);
@@ -25,6 +27,7 @@ public GeneToGeneParalogyIndexer(IndexerConfig indexerConfig) {
@Override
protected void index() {
+ service = new GeneToGeneParalogyService();
try {
SearchResponse paralogyResponse = service.getGeneToGeneParalogy(0, 0);
//log.info("GeneToGeneParalogy count: " + paralogyResponse.getTotalResults());
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/PhenotypeAnnotationCurationIndexer.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/PhenotypeAnnotationCurationIndexer.java
index 6438a9f0c..9ad10a6ae 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/PhenotypeAnnotationCurationIndexer.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/PhenotypeAnnotationCurationIndexer.java
@@ -1,33 +1,51 @@
package org.alliancegenome.indexer.indexers.curation;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.extern.slf4j.Slf4j;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.concurrent.LinkedBlockingDeque;
+
import org.alliancegenome.api.entity.AllelePhenotypeAnnotationDocument;
import org.alliancegenome.api.entity.GenePhenotypeAnnotationDocument;
import org.alliancegenome.api.entity.PhenotypeAnnotationDocument;
-import org.alliancegenome.curation_api.model.entities.*;
-import org.alliancegenome.es.util.ProcessDisplayHelper;
+import org.alliancegenome.curation_api.model.entities.AGMPhenotypeAnnotation;
+import org.alliancegenome.curation_api.model.entities.AffectedGenomicModel;
+import org.alliancegenome.curation_api.model.entities.Allele;
+import org.alliancegenome.curation_api.model.entities.AllelePhenotypeAnnotation;
+import org.alliancegenome.curation_api.model.entities.BiologicalEntity;
+import org.alliancegenome.curation_api.model.entities.CrossReference;
+import org.alliancegenome.curation_api.model.entities.Gene;
+import org.alliancegenome.curation_api.model.entities.GenePhenotypeAnnotation;
+import org.alliancegenome.curation_api.model.entities.PhenotypeAnnotation;
+import org.alliancegenome.curation_api.model.entities.Reference;
+import org.alliancegenome.curation_api.model.entities.VocabularyTerm;
+import org.alliancegenome.curation_api.util.ProcessDisplayHelper;
import org.alliancegenome.indexer.RestConfig;
import org.alliancegenome.indexer.config.IndexerConfig;
import org.alliancegenome.indexer.indexers.Indexer;
import org.alliancegenome.indexer.indexers.curation.service.AGMPhenotypeAnnotationService;
import org.alliancegenome.indexer.indexers.curation.service.AllelePhenotypeAnnotationService;
import org.alliancegenome.indexer.indexers.curation.service.GenePhenotypeAnnotationService;
-import org.alliancegenome.indexer.indexers.curation.service.VocabularyService;
+import org.alliancegenome.indexer.indexers.curation.service.VocabularyTermService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.concurrent.LinkedBlockingDeque;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import lombok.extern.slf4j.Slf4j;
+
@Slf4j
public class PhenotypeAnnotationCurationIndexer extends Indexer {
- private GenePhenotypeAnnotationService geneService = new GenePhenotypeAnnotationService();
- private AllelePhenotypeAnnotationService alleleService = new AllelePhenotypeAnnotationService();
- private AGMPhenotypeAnnotationService agmService = new AGMPhenotypeAnnotationService();
- private VocabularyService vocabService = new VocabularyService();
+ private GenePhenotypeAnnotationService geneService;
+ private AllelePhenotypeAnnotationService alleleService;
+ private AGMPhenotypeAnnotationService agmService;
+ private VocabularyTermService vocabTermService;
+
private Map>> geneMap = new HashMap<>();
private Map>> alleleMap = new HashMap<>();
private Map>> agmMap = new HashMap<>();
@@ -49,6 +67,11 @@ protected void startSingleThread(LinkedBlockingDeque queue) {
@Override
protected void index() {
+ geneService = new GenePhenotypeAnnotationService();
+ alleleService = new AllelePhenotypeAnnotationService();
+ agmService = new AGMPhenotypeAnnotationService();
+ vocabTermService = new VocabularyTermService();
+
indexGenes();
indexAlleles();
indexAGMs();
@@ -70,7 +93,7 @@ private List createGenePhenotypeAnnotationDocum
ProcessDisplayHelper ph = new ProcessDisplayHelper(10000);
ph.startProcess("Creating Gene Phenotype Annotations", geneMap.size());
- final VocabularyTerm relationIsImplicatedIn = vocabService.getDiseaseRelationTerms().get("is_implicated_in");
+ VocabularyTerm relationIsImplicatedIn = vocabTermService.getDiseaseRelationTerms().get("is_implicated_in");
for (Entry>> pairMap : geneMap.entrySet()) {
HashMap lookup = new HashMap<>();
@@ -130,7 +153,7 @@ private static String getConsolidationKey(PhenotypeAnnotation da) {
}
private void indexGenes() {
- List genePhenotypeAnnotations = geneService.getFiltered();
+ List genePhenotypeAnnotations = geneService.getFiltered(indexerConfig.getThreadCount(), indexerConfig.getBufferSize());
addPhenotypeAnnotationsToLGlobalMap(genePhenotypeAnnotations);
}
@@ -145,8 +168,8 @@ private void addPhenotypeAnnotationsToLGlobalMap(List g
private void indexAlleles() {
- List allelePhenotypeAnnotations = alleleService.getFiltered();
- log.info("Filtered Alleles: " + allelePhenotypeAnnotations.size());
+ List allelePhenotypeAnnotations = alleleService.getFiltered(indexerConfig.getThreadCount(), indexerConfig.getBufferSize());
+ log.info("Filtered Alleles: " + String.format("%,d", allelePhenotypeAnnotations.size()));
for (AllelePhenotypeAnnotation da : allelePhenotypeAnnotations) {
Allele allele = da.getPhenotypeAnnotationSubject();
Pair> allelePair = alleleMap.computeIfAbsent(allele.getIdentifier(), alleleCurie -> Pair.of(allele, new ArrayList<>()));
@@ -172,7 +195,7 @@ private void extractGenePhenotypeAnnotations(PhenotypeAnnotation da, Gene inferr
private void indexAGMs() {
- List agmDiseaseAnnotations = agmService.getFiltered();
+ List agmDiseaseAnnotations = agmService.getFiltered(indexerConfig.getThreadCount(), indexerConfig.getBufferSize());
log.info("Filtered AGM PAs: " + String.format("%,d", agmDiseaseAnnotations.size()));
for (AGMPhenotypeAnnotation da : agmDiseaseAnnotations) {
@@ -209,7 +232,7 @@ private List createAllelePhenotypeAnnotationD
ProcessDisplayHelper ph = new ProcessDisplayHelper(10000);
ph.startProcess("Creating Allele Disease Annotations", alleleMap.size());
- VocabularyTerm relation = vocabService.getDiseaseRelationTerms().get("is_implicated_in");
+ VocabularyTerm relation = vocabTermService.getDiseaseRelationTerms().get("is_implicated_in");
for (Entry>> pairMap : alleleMap.entrySet()) {
HashMap lookup = new HashMap<>();
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMDiseaseAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMDiseaseAnnotationInterface.java
index e33ef8011..3c188c932 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMDiseaseAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMDiseaseAnnotationInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.AGMDiseaseAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/agm-disease-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface AGMDiseaseAnnotationInterface extends BaseIdCrudInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface AGMDiseaseAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
@JsonView({View.ForPublic.class})
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMPhenotypeAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMPhenotypeAnnotationInterface.java
index 3a1070c1b..d9df14b18 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMPhenotypeAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AGMPhenotypeAnnotationInterface.java
@@ -1,22 +1,28 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
-import com.fasterxml.jackson.annotation.JsonView;
-import jakarta.ws.rs.*;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
+import java.util.HashMap;
+
import org.alliancegenome.curation_api.model.entities.AGMPhenotypeAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
-import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonView;
-@Path("/agm-phenotype-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface AGMPhenotypeAnnotationInterface extends BaseIdCrudInterface {
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+@Path("/agm-phenotype-annotation")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface AGMPhenotypeAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.PhenotypeAnnotationView.class})
+ @JsonView({ View.PhenotypeAnnotationView.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AlleleDiseaseAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AlleleDiseaseAnnotationInterface.java
index a232214e9..33f2815cc 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AlleleDiseaseAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AlleleDiseaseAnnotationInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.AlleleDiseaseAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/allele-disease-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface AlleleDiseaseAnnotationInterface extends BaseIdCrudInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface AlleleDiseaseAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.ForPublic.class})
+ @JsonView({ View.ForPublic.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AllelePhenotypeAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AllelePhenotypeAnnotationInterface.java
index dd2de4cbe..102d36d9b 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AllelePhenotypeAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/AllelePhenotypeAnnotationInterface.java
@@ -1,22 +1,28 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
-import com.fasterxml.jackson.annotation.JsonView;
-import jakarta.ws.rs.*;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
+import java.util.HashMap;
+
import org.alliancegenome.curation_api.model.entities.AllelePhenotypeAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
-import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonView;
-@Path("/allele-phenotype-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface AllelePhenotypeAnnotationInterface extends BaseIdCrudInterface {
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+@Path("/allele-phenotype-annotation")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface AllelePhenotypeAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.PhenotypeAnnotationView.class})
+ @JsonView({ View.PhenotypeAnnotationView.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/EcoTermRESTInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/EcoTermRESTInterface.java
index 3cbf11191..3eeac43e5 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/EcoTermRESTInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/EcoTermRESTInterface.java
@@ -1,25 +1,16 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
+import org.alliancegenome.curation_api.interfaces.base.crud.BaseReadCurieControllerInterface;
import org.alliancegenome.curation_api.model.entities.ontology.ECOTerm;
-import org.alliancegenome.curation_api.response.ObjectResponse;
-import org.alliancegenome.curation_api.view.View;
-
-import com.fasterxml.jackson.annotation.JsonView;
import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
@Path("/ecoterm")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface EcoTermRESTInterface {
-
- @GET
- @Path("/{curie}")
- @JsonView({View.FieldsAndLists.class})
- ObjectResponse find(@PathParam("curie") String curie);
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface EcoTermRESTInterface extends BaseReadCurieControllerInterface {
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ForPublicFindInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ForPublicFindInterface.java
new file mode 100644
index 000000000..5d6d9ca19
--- /dev/null
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ForPublicFindInterface.java
@@ -0,0 +1,33 @@
+package org.alliancegenome.indexer.indexers.curation.interfaces;
+
+import java.util.HashMap;
+
+import org.alliancegenome.curation_api.response.SearchResponse;
+import org.alliancegenome.curation_api.view.View;
+
+import com.fasterxml.jackson.annotation.JsonView;
+
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.QueryParam;
+
+public interface ForPublicFindInterface {
+
+ @POST
+ @Path("/findForPublic")
+ SearchResponse findForPublic(
+ @DefaultValue("0") @QueryParam("page") Integer page,
+ @DefaultValue("10") @QueryParam("limit") Integer limit,
+ @DefaultValue("ForPublic") @QueryParam("view") String view,
+ HashMap params);
+
+ @POST
+ @Path("/findForPublic")
+ @JsonView({ View.ForPublic.class })
+ SearchResponse findForPublic(
+ @DefaultValue("0") @QueryParam("page") Integer page,
+ @DefaultValue("10") @QueryParam("limit") Integer limit,
+ HashMap params);
+
+}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneDiseaseAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneDiseaseAnnotationInterface.java
index 232a03b68..9c99b54da 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneDiseaseAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneDiseaseAnnotationInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.GeneDiseaseAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/gene-disease-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneDiseaseAnnotationInterface extends BaseIdCrudInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneDiseaseAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.ForPublic.class})
+ @JsonView({ View.ForPublic.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneExpressionAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneExpressionAnnotationInterface.java
index 754a26d22..d934e8175 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneExpressionAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneExpressionAnnotationInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,17 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/gene-expression-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneExpressionAnnotationInterface extends BaseIdCrudInterface {
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneExpressionAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.ForPublic.class})
- SearchResponse findForPublic(
- @DefaultValue("0") @QueryParam("page") Integer page,
- @DefaultValue("10") @QueryParam("limit") Integer limit,
- HashMap params
- );
+ @JsonView({ View.ForPublic.class })
+ SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneGeneticInteractionInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneGeneticInteractionInterface.java
index 7b8b90854..a34cdefdb 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneGeneticInteractionInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneGeneticInteractionInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.GeneGeneticInteraction;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/gene-genetic-interaction")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneGeneticInteractionInterface extends BaseIdCrudInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneGeneticInteractionInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.ForPublic.class})
+ @JsonView({ View.ForPublic.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneMolecularInteractionInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneMolecularInteractionInterface.java
index a2aada415..17316f235 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneMolecularInteractionInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneMolecularInteractionInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.GeneMolecularInteraction;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,15 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/gene-molecular-interaction")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneMolecularInteractionInterface extends BaseIdCrudInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneMolecularInteractionInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.ForPublic.class})
+ @JsonView({ View.ForPublic.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GenePhenotypeAnnotationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GenePhenotypeAnnotationInterface.java
index 7cef74d04..9174c8aa6 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GenePhenotypeAnnotationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GenePhenotypeAnnotationInterface.java
@@ -1,22 +1,28 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
-import com.fasterxml.jackson.annotation.JsonView;
-import jakarta.ws.rs.*;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
+import java.util.HashMap;
+
import org.alliancegenome.curation_api.model.entities.GenePhenotypeAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
-import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonView;
-@Path("/gene-phenotype-annotation")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GenePhenotypeAnnotationInterface extends BaseIdCrudInterface {
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+@Path("/gene-phenotype-annotation")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GenePhenotypeAnnotationInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
- @JsonView({View.PhenotypeAnnotationView.class})
+ @JsonView({ View.PhenotypeAnnotationView.class })
SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
-
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneOrthologyGeneratedInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneOrthologyGeneratedInterface.java
index b065048ad..1b79620a8 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneOrthologyGeneratedInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneOrthologyGeneratedInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.orthology.GeneToGeneOrthologyGenerated;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,15 +14,17 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/orthologygenerated")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneToGeneOrthologyGeneratedInterface extends BaseIdCrudInterface {
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneToGeneOrthologyGeneratedInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
@JsonView({View.ForPublic.class})
- SearchResponse find(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
+ SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneParalogyInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneParalogyInterface.java
index 1cd3475df..1b22a4d02 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneParalogyInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/GeneToGeneParalogyInterface.java
@@ -2,7 +2,6 @@
import java.util.HashMap;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.GeneToGeneParalogy;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.curation_api.view.View;
@@ -15,18 +14,16 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/paralogy")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface GeneToGeneParalogyInterface extends BaseIdCrudInterface {
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GeneToGeneParalogyInterface extends ForPublicFindInterface {
+ @Override
@POST
@Path("/findForPublic")
@JsonView({View.ForPublic.class})
- SearchResponse find(
- @DefaultValue("0") @QueryParam("page") Integer page,
- @DefaultValue("10") @QueryParam("limit") Integer limit,
- HashMap params
- );
+ SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/OrganizationInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/OrganizationInterface.java
index 38bb69218..c27aa6989 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/OrganizationInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/OrganizationInterface.java
@@ -1,30 +1,15 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
-import java.util.HashMap;
-
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
import org.alliancegenome.curation_api.model.entities.Organization;
-import org.alliancegenome.curation_api.response.SearchResponse;
-import org.alliancegenome.curation_api.view.View;
-
-import com.fasterxml.jackson.annotation.JsonView;
import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.DefaultValue;
-import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/organization")
-@Produces({ "application/json" })
-@Consumes({ "application/json" })
-public interface OrganizationInterface extends BaseIdCrudInterface {
-
- @Override
- @POST
- @Path("/find")
- @JsonView({ View.FieldsAndLists.class })
- SearchResponse find(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface OrganizationInterface extends ForPublicFindInterface {
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ReferenceInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ReferenceInterface.java
index 22ef663eb..5de917ab6 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ReferenceInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/ReferenceInterface.java
@@ -1,26 +1,16 @@
package org.alliancegenome.indexer.indexers.curation.interfaces;
-import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
+import org.alliancegenome.curation_api.interfaces.base.crud.BaseReadCurieControllerInterface;
import org.alliancegenome.curation_api.model.entities.Reference;
-import org.alliancegenome.curation_api.response.ObjectResponse;
-import org.alliancegenome.curation_api.view.View;
-
-import com.fasterxml.jackson.annotation.JsonView;
import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
@Path("/reference")
-@Produces({"application/json"})
-@Consumes({"application/json"})
-public interface ReferenceInterface extends BaseIdCrudInterface {
-
- @GET
- @Path("/{curie}")
- @JsonView({View.FieldsAndLists.class})
- ObjectResponse get(@PathParam("curie") String curie);
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface ReferenceInterface extends BaseReadCurieControllerInterface {
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyRESTInterface.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyTermRESTInterface.java
similarity index 53%
rename from agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyRESTInterface.java
rename to agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyTermRESTInterface.java
index c5ca43bc4..2ed3926bd 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyRESTInterface.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/interfaces/VocabularyTermRESTInterface.java
@@ -14,15 +14,17 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
@Path("/vocabularyterm")
-@Produces({ "application/json" })
-@Consumes({ "application/json" })
-public interface VocabularyRESTInterface {
-
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface VocabularyTermRESTInterface extends ForPublicFindInterface {
+
+ @Override
@POST
- @Path("/find")
- @JsonView({ View.FieldsAndLists.class })
- SearchResponse find(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
+ @Path("/findForPublic")
+ @JsonView({View.ForPublic.class})
+ SearchResponse findForPublic(@DefaultValue("0") @QueryParam("page") Integer page, @DefaultValue("10") @QueryParam("limit") Integer limit, HashMap params);
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMDiseaseAnnotationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMDiseaseAnnotationService.java
index d675c4da4..2332de5d5 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMDiseaseAnnotationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMDiseaseAnnotationService.java
@@ -46,8 +46,8 @@ public List getFiltered() {
SearchResponse response = agmApi.findForPublic(page, batchSize, params);
for (AGMDiseaseAnnotation da: response.getResults()) {
- if (isValidNeoEntity(allNeoModelIDs, da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
- if (hasValidEntities(da, allNeoGeneIDs, allNeoAlleleIDs, allNeoModelIDs)) {
+ if (isValidNeoEntity(getAllNeoModelIDs(), da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
+ if (hasValidEntities(da, getAllNeoGeneIDs(), getAllNeoAlleleIDs(), getAllNeoModelIDs())) {
if (da.getInferredGene() != null && da.getInferredGene().getConstructGenomicEntityAssociations() != null) {
da.getInferredGene().getConstructGenomicEntityAssociations().clear();
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMPhenotypeAnnotationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMPhenotypeAnnotationService.java
index 5b22ff38b..a14b08978 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMPhenotypeAnnotationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AGMPhenotypeAnnotationService.java
@@ -1,17 +1,20 @@
package org.alliancegenome.indexer.indexers.curation.service;
-import lombok.extern.log4j.Log4j2;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.TimeUnit;
+
import org.alliancegenome.core.config.ConfigHelper;
import org.alliancegenome.curation_api.model.entities.AGMPhenotypeAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
-import org.alliancegenome.es.util.ProcessDisplayHelper;
+import org.alliancegenome.curation_api.util.ProcessDisplayHelper;
import org.alliancegenome.indexer.RestConfig;
import org.alliancegenome.indexer.indexers.curation.interfaces.AGMPhenotypeAnnotationInterface;
-import si.mazi.rescu.RestProxyFactory;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+import lombok.extern.log4j.Log4j2;
+import si.mazi.rescu.RestProxyFactory;
@Log4j2
public class AGMPhenotypeAnnotationService extends BaseDiseaseAnnotationService {
@@ -19,7 +22,7 @@ public class AGMPhenotypeAnnotationService extends BaseDiseaseAnnotationService
private final AGMPhenotypeAnnotationInterface agmApi = RestProxyFactory.createProxy(AGMPhenotypeAnnotationInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
private final String cacheFileName = "agm_phenotype_annotation.json.gz";
- public List getFiltered() {
+ public List getFiltered(int threadCount, int bufferSize) {
List ret = readFromCache(cacheFileName, List.class);
if (ret != null && ret.size() > 0) {
return ret;
@@ -28,36 +31,93 @@ public List getFiltered() {
}
ProcessDisplayHelper display = new ProcessDisplayHelper(2000);
- int batchSize = 1000;
- int page = 0;
- int pages;
-
- HashMap params = new HashMap<>();
- params.put("internal", false);
- params.put("obsolete", false);
- //params.put("phenotypeAnnotationSubject.primaryExternalId", "ZFIN:ZDB-FISH-210325-47");
- //params.put("phenotypeAnnotationSubject.modEntityId", "MGI:4829791");
-
- do {
- SearchResponse response = agmApi.findForPublic(page, batchSize, params);
- for (AGMPhenotypeAnnotation da : response.getResults()) {
- if (isValidNeoEntity(allNeoModelIDs, da.getPhenotypeAnnotationSubject().getIdentifier())) {
- ret.add(da);
- }
+ LinkedBlockingDeque queue = new LinkedBlockingDeque<>();
+ LinkedBlockingDeque fullList = new LinkedBlockingDeque<>();
+
+ SearchResponse response = agmApi.findForPublic(0, 0, null);
+
+ int totalPages = (int) (response.getTotalResults() / bufferSize);
+
+ display.startProcess("Pulling AGM PA's from curation", response.getTotalResults());
+
+ for (int i = 0; i <= totalPages; i++) {
+ // log.info("page: " + i + " limit: " + indexerConfig.getBufferSize());
+ queue.add(String.valueOf(i));
+ }
+
+ List threads = new ArrayList();
+ for (int i = 0; i < threadCount; i++) {
+ WorkerThread thread = new WorkerThread(bufferSize, queue, fullList, display);
+ threads.add(thread);
+ thread.start();
+ }
+
+ try {
+ while (queue.size() > 0) {
+ TimeUnit.SECONDS.sleep(10);
}
- if (page == 0) {
- display.startProcess("Pulling AGM PA's from curation", response.getTotalResults());
+ for (Thread t : threads) {
+ t.join();
}
- display.progressProcess(response.getReturnedRecords().longValue());
- pages = (int) (response.getTotalResults() / batchSize);
- page++;
- } while (page <= pages);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(-1);
+ }
display.finishProcess();
+ ret = new ArrayList<>(fullList);
+
writeToCache(cacheFileName, ret);
return ret;
+
+ }
+
+ public class WorkerThread extends Thread {
+ private int bufferSize;
+ private LinkedBlockingDeque queue;
+ private LinkedBlockingDeque fullList;
+ private ProcessDisplayHelper display;
+
+ public WorkerThread(int bufferSize, LinkedBlockingDeque queue, LinkedBlockingDeque fullList, ProcessDisplayHelper display) {
+ this.bufferSize = bufferSize;
+ this.queue = queue;
+ this.fullList = fullList;
+ this.display = display;
+ }
+
+ @Override
+ public void run() {
+
+ HashMap params = new HashMap<>();
+ params.put("internal", false);
+ params.put("obsolete", false);
+ // params.put("phenotypeAnnotationSubject.primaryExternalId", "SGD:S000001240");
+
+ while (true) {
+ if (queue.isEmpty()) {
+ return;
+ }
+
+ try {
+ int page = Integer.parseInt(queue.takeFirst());
+
+ SearchResponse response = agmApi.findForPublic(page, bufferSize, params);
+ for (AGMPhenotypeAnnotation pa : response.getResults()) {
+ if (isValidNeoEntity(getAllNeoModelIDs(), pa.getPhenotypeAnnotationSubject().getIdentifier())) {
+ fullList.offer(pa);
+ }
+ display.progressProcess();
+ }
+
+ } catch (NumberFormatException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
}
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AlleleDiseaseAnnotationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AlleleDiseaseAnnotationService.java
index 635c09d9f..a417c7145 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AlleleDiseaseAnnotationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AlleleDiseaseAnnotationService.java
@@ -44,8 +44,8 @@ public List getFiltered() {
SearchResponse response = alleleApi.findForPublic(page, batchSize, params);
for (AlleleDiseaseAnnotation da: response.getResults()) {
- if (isValidNeoEntity(allNeoAlleleIDs, da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
- if (hasValidEntities(da, allNeoGeneIDs, allNeoAlleleIDs, allNeoModelIDs)) {
+ if (isValidNeoEntity(getAllNeoAlleleIDs(), da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
+ if (hasValidEntities(da, getAllNeoGeneIDs(), getAllNeoAlleleIDs(), getAllNeoModelIDs())) {
if (da.getInferredGene() != null && da.getInferredGene().getConstructGenomicEntityAssociations() != null) {
da.getInferredGene().getConstructGenomicEntityAssociations().clear();
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AllelePhenotypeAnnotationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AllelePhenotypeAnnotationService.java
index 642b67748..3d44e80c1 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AllelePhenotypeAnnotationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/AllelePhenotypeAnnotationService.java
@@ -1,17 +1,20 @@
package org.alliancegenome.indexer.indexers.curation.service;
-import lombok.extern.log4j.Log4j2;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.TimeUnit;
+
import org.alliancegenome.core.config.ConfigHelper;
import org.alliancegenome.curation_api.model.entities.AllelePhenotypeAnnotation;
import org.alliancegenome.curation_api.response.SearchResponse;
-import org.alliancegenome.es.util.ProcessDisplayHelper;
+import org.alliancegenome.curation_api.util.ProcessDisplayHelper;
import org.alliancegenome.indexer.RestConfig;
import org.alliancegenome.indexer.indexers.curation.interfaces.AllelePhenotypeAnnotationInterface;
-import si.mazi.rescu.RestProxyFactory;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+import lombok.extern.log4j.Log4j2;
+import si.mazi.rescu.RestProxyFactory;
@Log4j2
public class AllelePhenotypeAnnotationService extends BaseDiseaseAnnotationService {
@@ -20,7 +23,7 @@ public class AllelePhenotypeAnnotationService extends BaseDiseaseAnnotationServi
private final String cacheFileName = "allele_phenotype_annotation.json.gz";
- public List getFiltered() {
+ public List getFiltered(int threadCount, int bufferSize) {
List ret = readFromCache(cacheFileName, List.class);
if (ret != null && ret.size() > 0) {
return ret;
@@ -29,36 +32,92 @@ public List getFiltered() {
}
ProcessDisplayHelper display = new ProcessDisplayHelper(2000);
- int batchSize = 1000;
- int page = 0;
- int pages;
-
- HashMap params = new HashMap<>();
- params.put("internal", false);
- params.put("obsolete", false);
- //params.put("phenotypeAnnotationSubject.primaryExternalId", "SGD:S000286812");
- //params.put("phenotypeAnnotationSubject.modEntityId", "MGI:4829791");
-
- do {
- SearchResponse response = alleleApi.findForPublic(page, batchSize, params);
- for (AllelePhenotypeAnnotation da : response.getResults()) {
- if (isValidNeoEntity(allNeoAlleleIDs, da.getPhenotypeAnnotationSubject().getIdentifier())) {
- ret.add(da);
- }
+ LinkedBlockingDeque queue = new LinkedBlockingDeque<>();
+ LinkedBlockingDeque fullList = new LinkedBlockingDeque<>();
+
+ SearchResponse response = alleleApi.findForPublic(0, 0, null);
+
+ int totalPages = (int) (response.getTotalResults() / bufferSize);
+
+ display.startProcess("Pulling Allele PA's from curation", response.getTotalResults());
+
+ for (int i = 0; i <= totalPages; i++) {
+ // log.info("page: " + i + " limit: " + indexerConfig.getBufferSize());
+ queue.add(String.valueOf(i));
+ }
+
+ List threads = new ArrayList();
+ for (int i = 0; i < threadCount; i++) {
+ WorkerThread thread = new WorkerThread(bufferSize, queue, fullList, display);
+ threads.add(thread);
+ thread.start();
+ }
+
+ try {
+ while (queue.size() > 0) {
+ TimeUnit.SECONDS.sleep(10);
}
- if (page == 0) {
- display.startProcess("Pulling Allele PA's from curation", response.getTotalResults());
+ for (Thread t : threads) {
+ t.join();
}
- display.progressProcess(response.getReturnedRecords().longValue());
- pages = (int) (response.getTotalResults() / batchSize);
- page++;
- } while (page <= pages);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(-1);
+ }
display.finishProcess();
+ ret = new ArrayList<>(fullList);
+
writeToCache(cacheFileName, ret);
return ret;
+
}
+ public class WorkerThread extends Thread {
+ private int bufferSize;
+ private LinkedBlockingDeque queue;
+ private LinkedBlockingDeque fullList;
+ private ProcessDisplayHelper display;
+
+ public WorkerThread(int bufferSize, LinkedBlockingDeque queue, LinkedBlockingDeque fullList, ProcessDisplayHelper display) {
+ this.bufferSize = bufferSize;
+ this.queue = queue;
+ this.fullList = fullList;
+ this.display = display;
+ }
+
+ @Override
+ public void run() {
+
+ HashMap params = new HashMap<>();
+ params.put("internal", false);
+ params.put("obsolete", false);
+ // params.put("phenotypeAnnotationSubject.primaryExternalId", "SGD:S000001240");
+
+ while (true) {
+ if (queue.isEmpty()) {
+ return;
+ }
+
+ try {
+ int page = Integer.parseInt(queue.takeFirst());
+
+ SearchResponse response = alleleApi.findForPublic(page, bufferSize, params);
+ for (AllelePhenotypeAnnotation pa : response.getResults()) {
+ if (isValidNeoEntity(getAllNeoAlleleIDs(), pa.getPhenotypeAnnotationSubject().getIdentifier())) {
+ fullList.offer(pa);
+ }
+ display.progressProcess();
+ }
+
+ } catch (NumberFormatException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ }
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseInteractionService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseInteractionService.java
index b7dbf0056..2f9fdb22d 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseInteractionService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseInteractionService.java
@@ -40,12 +40,12 @@ protected boolean hasNoObsoletedOrInternalEntities(E
protected boolean hasInteractingGenesInNeo(E interaction) {
if (interaction.getGeneAssociationSubject() != null) {
- if (!isValidNeoEntity(allNeoGeneIDs, interaction.getGeneAssociationSubject().getIdentifier())) {
+ if (!isValidNeoEntity(getAllNeoGeneIDs(), interaction.getGeneAssociationSubject().getIdentifier())) {
return false;
}
}
if (interaction.getGeneGeneAssociationObject() != null) {
- if (!isValidNeoEntity(allNeoGeneIDs, interaction.getGeneGeneAssociationObject().getIdentifier())) {
+ if (!isValidNeoEntity(getAllNeoGeneIDs(), interaction.getGeneGeneAssociationObject().getIdentifier())) {
return false;
}
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseService.java
index 1797a2b32..b40960794 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/BaseService.java
@@ -17,47 +17,61 @@
@Log4j2
public class BaseService {
- protected HashSet allNeoAlleleIDs;
- protected HashSet allNeoGeneIDs;
- protected HashSet allNeoModelIDs;
-
- public BaseService() {
- AlleleRepository alleleRepository = new AlleleRepository();
- GeneRepository geneRepository = new GeneRepository();
-
- String alleleIdsFileName = "allele_ids.gz";
- List alleleList = readFromCache(alleleIdsFileName, List.class);
-
- if (CollectionUtils.isNotEmpty(alleleList)) {
- allNeoAlleleIDs = new HashSet<>(alleleList);
- } else {
- allNeoAlleleIDs = new HashSet<>(alleleRepository.getAllAlleleIDs());
- writeToCache(alleleIdsFileName, new ArrayList<>(allNeoAlleleIDs));
+ private static HashSet allNeoAlleleIDs;
+ private static HashSet allNeoGeneIDs;
+ private static HashSet allNeoModelIDs;
+
+ protected HashSet getAllNeoAlleleIDs() {
+ if (allNeoAlleleIDs == null) {
+ String alleleIdsFileName = "allele_ids.gz";
+ List alleleList = readFromCache(alleleIdsFileName, List.class);
+
+ if (CollectionUtils.isNotEmpty(alleleList)) {
+ allNeoAlleleIDs = new HashSet<>(alleleList);
+ } else {
+ AlleleRepository alleleRepository = new AlleleRepository();
+ allNeoAlleleIDs = new HashSet<>(alleleRepository.getAllAlleleIDs());
+ alleleRepository.close();
+ writeToCache(alleleIdsFileName, new ArrayList<>(allNeoAlleleIDs));
+ }
}
+ return allNeoAlleleIDs;
+ }
- String geneIdsFileName = "gene_ids.gz";
- List geneList = readFromCache(geneIdsFileName, List.class);
+ protected HashSet getAllNeoGeneIDs() {
- if (CollectionUtils.isNotEmpty(geneList)) {
- allNeoGeneIDs = new HashSet<>(geneList);
- } else {
- allNeoGeneIDs = new HashSet<>(geneRepository.getAllGeneKeys());
- writeToCache(geneIdsFileName, new ArrayList<>(allNeoGeneIDs));
+ if (allNeoGeneIDs == null) {
+ String geneIdsFileName = "gene_ids.gz";
+ List geneList = readFromCache(geneIdsFileName, List.class);
+
+ if (CollectionUtils.isNotEmpty(geneList)) {
+ allNeoGeneIDs = new HashSet<>(geneList);
+ } else {
+ GeneRepository geneRepository = new GeneRepository();
+ allNeoGeneIDs = new HashSet<>(geneRepository.getAllGeneKeys());
+ geneRepository.close();
+ writeToCache(geneIdsFileName, new ArrayList<>(allNeoGeneIDs));
+ }
}
- log.info("Number of all Gene IDs from Neo4j: " + allNeoGeneIDs.size());
- String modelIdsFileName = "model_ids.gz";
- List modelList = readFromCache(modelIdsFileName, List.class);
+ return allNeoGeneIDs;
+ }
- if (CollectionUtils.isNotEmpty(modelList)) {
- allNeoModelIDs = new HashSet<>(modelList);
- } else {
- allNeoModelIDs = new HashSet<>(alleleRepository.getAllModelKeys());
- writeToCache(modelIdsFileName, new ArrayList<>(allNeoModelIDs));
+ protected HashSet getAllNeoModelIDs() {
+ if (allNeoModelIDs == null) {
+ String modelIdsFileName = "model_ids.gz";
+ List modelList = readFromCache(modelIdsFileName, List.class);
+
+ if (CollectionUtils.isNotEmpty(modelList)) {
+ allNeoModelIDs = new HashSet<>(modelList);
+ } else {
+ AlleleRepository alleleRepository = new AlleleRepository();
+ allNeoModelIDs = new HashSet<>(alleleRepository.getAllModelKeys());
+ alleleRepository.close();
+ writeToCache(modelIdsFileName, new ArrayList<>(allNeoModelIDs));
+ }
}
-
- alleleRepository.close();
- geneRepository.close();
+ return allNeoModelIDs;
}
protected E readFromCache(String fileName, Class clazz) {
@@ -81,10 +95,10 @@ protected void writeToCache(String fileName, E object) {
e.printStackTrace();
}
}
-
+
protected boolean hasNoExcludedEntities(List entitiesToBeValidated) {
AtomicBoolean hasNoExcludedEntities = new AtomicBoolean(true);
- for (AuditedObject auditedObject: entitiesToBeValidated) {
+ for (AuditedObject auditedObject : entitiesToBeValidated) {
if (auditedObject.getObsolete()) {
hasNoExcludedEntities.set(false);
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/EcoTermService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/EcoTermService.java
index cdbba8fcc..3970f36d3 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/EcoTermService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/EcoTermService.java
@@ -13,7 +13,7 @@ public class EcoTermService {
private EcoTermRESTInterface ecoTermApi = RestProxyFactory.createProxy(EcoTermRESTInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
public ECOTerm getEcoTerm(String curie) {
- ObjectResponse response = ecoTermApi.find(curie);
+ ObjectResponse response = ecoTermApi.getByCurie(curie);
return response.getEntity();
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneDiseaseAnnotationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneDiseaseAnnotationService.java
index 4e216aa2b..c3f9b314c 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneDiseaseAnnotationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneDiseaseAnnotationService.java
@@ -13,10 +13,10 @@
import org.alliancegenome.core.config.ConfigHelper;
import org.alliancegenome.curation_api.model.entities.AGMDiseaseAnnotation;
import org.alliancegenome.curation_api.model.entities.AlleleDiseaseAnnotation;
-import org.alliancegenome.curation_api.model.entities.Organization;
import org.alliancegenome.curation_api.model.entities.DiseaseAnnotation;
import org.alliancegenome.curation_api.model.entities.Gene;
import org.alliancegenome.curation_api.model.entities.GeneDiseaseAnnotation;
+import org.alliancegenome.curation_api.model.entities.Organization;
import org.alliancegenome.curation_api.model.entities.Reference;
import org.alliancegenome.curation_api.model.entities.VocabularyTerm;
import org.alliancegenome.curation_api.model.entities.ontology.ECOTerm;
@@ -38,7 +38,7 @@ public class GeneDiseaseAnnotationService extends BaseDiseaseAnnotationService {
private final GeneDiseaseAnnotationInterface geneApi = RestProxyFactory.createProxy(GeneDiseaseAnnotationInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
private final GeneToGeneOrthologyGeneratedInterface orthologyApi = RestProxyFactory.createProxy(GeneToGeneOrthologyGeneratedInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
- private VocabularyService vocabService = new VocabularyService();
+ private VocabularyTermService vocabularyTermService = new VocabularyTermService();
private EcoTermService ecoTermService = new EcoTermService();
private OrganizationService orgService = new OrganizationService();
private ReferenceService referenceService = new ReferenceService();
@@ -67,8 +67,8 @@ public List getFiltered() {
do {
SearchResponse response = geneApi.findForPublic(page, batchSize, params);
for (GeneDiseaseAnnotation da : response.getResults()) {
- if (isValidNeoEntity(allNeoGeneIDs, da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
- if (hasValidGeneticModifiers(da, allNeoGeneIDs, allNeoAlleleIDs, allNeoModelIDs)) {
+ if (isValidNeoEntity(getAllNeoGeneIDs(), da.getDiseaseAnnotationSubject().getIdentifier()) && hasNoObsoletedOrInternalEntities(da)) {
+ if (hasValidGeneticModifiers(da, getAllNeoGeneIDs(), getAllNeoAlleleIDs(), getAllNeoModelIDs())) {
ret.add(da);
}
}
@@ -108,8 +108,8 @@ public Map> getOrthologousGeneDiseaseAnnotations(M
params.put("obsolete", false);
params.put("strictFilter", true);
- VocabularyTerm isMarkerViaOrthology = vocabService.getDiseaseRelationTerms().get("is_marker_via_orthology");
- VocabularyTerm isImplicatedViaOrthology = vocabService.getDiseaseRelationTerms().get("is_implicated_via_orthology");
+ VocabularyTerm isMarkerViaOrthology = vocabularyTermService.getDiseaseRelationTerms().get("is_marker_via_orthology");
+ VocabularyTerm isImplicatedViaOrthology = vocabularyTermService.getDiseaseRelationTerms().get("is_implicated_via_orthology");
ECOTerm ecoTermIEA = ecoTermService.getEcoTerm("ECO:0000501");
// hard code MGI:6194238 with corresponding AGRKB ID
Reference allianceReference = referenceService.getReference("AGRKB:101000000828456");
@@ -126,10 +126,10 @@ public Map> getOrthologousGeneDiseaseAnnotations(M
for (String geneID : geneIDs) {
List focusDiseaseAnnotations = geneMap.get(geneID).getRight();
params.put("subjectGene.primaryExternalId", geneID);
- SearchResponse response = orthologyApi.find(0, 500, params);
+ SearchResponse response = orthologyApi.findForPublic(0, 500, params);
for (GeneToGeneOrthologyGenerated geneGeneOrthology : response.getResults()) {
Gene orthologousGene = geneGeneOrthology.getObjectGene();
- if (!isValidNeoEntity(allNeoGeneIDs, orthologousGene.getIdentifier()) || orthologousGene.getObsolete() || orthologousGene.getInternal()) {
+ if (!isValidNeoEntity(getAllNeoGeneIDs(), orthologousGene.getIdentifier()) || orthologousGene.getObsolete() || orthologousGene.getInternal()) {
continue;
}
// create orthologous DAs for each focus DA
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneGeneticInteractionService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneGeneticInteractionService.java
index 7384dcb2d..08003fb29 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneGeneticInteractionService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneGeneticInteractionService.java
@@ -52,12 +52,12 @@ public List getFilteredAndReversedInteractions(List getFiltered() {
+ public List getFiltered(int threadCount, int bufferSize) {
List ret = readFromCache(cacheFileName, List.class);
if (ret != null && ret.size() > 0) {
return ret;
@@ -29,34 +32,93 @@ public List getFiltered() {
ProcessDisplayHelper display = new ProcessDisplayHelper(2000);
- int batchSize = 1000;
- int page = 0;
- int pages;
-
- HashMap params = new HashMap<>();
- params.put("internal", false);
- params.put("obsolete", false);
- //params.put("phenotypeAnnotationSubject.primaryExternalId", "SGD:S000001240");
- do {
- SearchResponse response = geneApi.findForPublic(page, batchSize, params);
- for (GenePhenotypeAnnotation pa : response.getResults()) {
- if (isValidNeoEntity(allNeoGeneIDs, pa.getPhenotypeAnnotationSubject().getIdentifier())) {
- ret.add(pa);
- }
+ LinkedBlockingDeque queue = new LinkedBlockingDeque<>();
+ LinkedBlockingDeque fullList = new LinkedBlockingDeque<>();
+
+ SearchResponse response = geneApi.findForPublic(0, 0, null);
+
+ int totalPages = (int) (response.getTotalResults() / bufferSize);
+
+ display.startProcess("Pulling Gene PA's from curation", response.getTotalResults());
+
+ for (int i = 0; i <= totalPages; i++) {
+ // log.info("page: " + i + " limit: " + indexerConfig.getBufferSize());
+ queue.add(String.valueOf(i));
+ }
+
+ List threads = new ArrayList();
+ for (int i = 0; i < threadCount; i++) {
+ WorkerThread thread = new WorkerThread(bufferSize, queue, fullList, display);
+ threads.add(thread);
+ thread.start();
+ }
+
+ try {
+ while (queue.size() > 0) {
+ TimeUnit.SECONDS.sleep(10);
}
- if (page == 0) {
- display.startProcess("Pulling Gene PA's from curation", response.getTotalResults());
+ for (Thread t : threads) {
+ t.join();
}
- display.progressProcess(response.getReturnedRecords().longValue());
- pages = (int) (response.getTotalResults() / batchSize);
- page++;
- } while (page <= pages);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(-1);
+ }
display.finishProcess();
+ ret = new ArrayList<>(fullList);
+
writeToCache(cacheFileName, ret);
return ret;
+
+ }
+
+ public class WorkerThread extends Thread {
+ private int bufferSize;
+ private LinkedBlockingDeque queue;
+ private LinkedBlockingDeque fullList;
+ private ProcessDisplayHelper display;
+
+ public WorkerThread(int bufferSize, LinkedBlockingDeque queue, LinkedBlockingDeque fullList, ProcessDisplayHelper display) {
+ this.bufferSize = bufferSize;
+ this.queue = queue;
+ this.fullList = fullList;
+ this.display = display;
+ }
+
+ @Override
+ public void run() {
+
+ HashMap params = new HashMap<>();
+ params.put("internal", false);
+ params.put("obsolete", false);
+ // params.put("phenotypeAnnotationSubject.primaryExternalId", "SGD:S000001240");
+
+ while (true) {
+ if (queue.isEmpty()) {
+ return;
+ }
+
+ try {
+ int page = Integer.parseInt(queue.takeFirst());
+
+ SearchResponse response = geneApi.findForPublic(page, bufferSize, params);
+ for (GenePhenotypeAnnotation pa : response.getResults()) {
+ if (isValidNeoEntity(getAllNeoGeneIDs(), pa.getPhenotypeAnnotationSubject().getIdentifier())) {
+ fullList.offer(pa);
+ }
+ display.progressProcess();
+ }
+
+ } catch (NumberFormatException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
}
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneToGeneParalogyService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneToGeneParalogyService.java
index 754b2cacc..11e647d5d 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneToGeneParalogyService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/GeneToGeneParalogyService.java
@@ -18,6 +18,6 @@ public SearchResponse getGeneToGeneParalogy(Integer page, In
HashMap params = new HashMap<>();
params.put("internal", false);
params.put("obsolete", false);
- return paralogyApi.find(page, limit, params);
+ return paralogyApi.findForPublic(page, limit, params);
}
}
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/OrganizationService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/OrganizationService.java
index 67c7e39b3..36cfa56be 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/OrganizationService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/OrganizationService.java
@@ -26,7 +26,7 @@ public Organization getOrganization(String abbreviation) {
}
HashMap params = new HashMap<>();
params.put("abbreviation", abbreviation);
- SearchResponse response = organizationApi.find(0, 1000, params);
+ SearchResponse response = organizationApi.findForPublic(0, 1000, params);
List list = response.getResults();
if (CollectionUtils.isEmpty(list) || list.size() > 1) {
throw new RuntimeException("Could not find organization by abbreviation " + abbreviation);
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/ReferenceService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/ReferenceService.java
index c44cf454d..f9be92acc 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/ReferenceService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/ReferenceService.java
@@ -22,7 +22,7 @@ public Reference getReference(String curie) {
if (ref != null) {
return ref;
}
- ObjectResponse objectRef = referenceApi.get(curie);
+ ObjectResponse objectRef = referenceApi.getByCurie(curie);
Reference reference = objectRef.getEntity();
if (reference == null) {
throw new RuntimeException("Could not find Reference by curie " + curie);
diff --git a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyService.java b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyTermService.java
similarity index 71%
rename from agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyService.java
rename to agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyTermService.java
index 01895fd65..84923e679 100644
--- a/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyService.java
+++ b/agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/curation/service/VocabularyTermService.java
@@ -6,13 +6,13 @@
import org.alliancegenome.curation_api.model.entities.VocabularyTerm;
import org.alliancegenome.curation_api.response.SearchResponse;
import org.alliancegenome.indexer.RestConfig;
-import org.alliancegenome.indexer.indexers.curation.interfaces.VocabularyRESTInterface;
+import org.alliancegenome.indexer.indexers.curation.interfaces.VocabularyTermRESTInterface;
import si.mazi.rescu.RestProxyFactory;
-public class VocabularyService {
+public class VocabularyTermService {
- private VocabularyRESTInterface vocabularyApi = RestProxyFactory.createProxy(VocabularyRESTInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
+ private VocabularyTermRESTInterface vocabularyApi = RestProxyFactory.createProxy(VocabularyTermRESTInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
private HashMap terms;
@@ -23,7 +23,7 @@ public HashMap getDiseaseRelationTerms() {
HashMap params = new HashMap<>();
params.put("vocabulary.name", "Disease Relation");
- SearchResponse response = vocabularyApi.find(0, 1000, params);
+ SearchResponse response = vocabularyApi.findForPublic(0, 1000, params);
terms = new HashMap<>();
for (VocabularyTerm vt : response.getResults()) {
terms.put(vt.getName(), vt);
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 0f2af72cd..bcd9e44f0 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
@@ -20,155 +20,6 @@ public void buildMapping() {
}
}
- protected void buildSharedSearchableDocumentMappings() throws IOException {
- new FieldBuilder(builder, "alterationType", "text").keyword().build();
- new FieldBuilder(builder, "age", "text").keyword().build();
- new FieldBuilder(builder, "alleles", "text").keyword().autocomplete().build();
- new FieldBuilder(builder, "anatomicalExpression", "text").keyword().build();
- new FieldBuilder(builder, "assays", "text").keyword().build();
- new FieldBuilder(builder, "associatedSpecies", "text").keyword().synonym().sort().build();
- new FieldBuilder(builder, "associationType", "text").symbol().autocomplete().keyword().standardText().build();
- new FieldBuilder(builder, "biologicalProcess", "text").keyword().build();
- new FieldBuilder(builder, "biologicalProcessAgrSlim", "text").keyword().build();
- new FieldBuilder(builder, "biologicalProcessWithParents", "text").keyword().build();
- new FieldBuilder(builder, "biotype0", "text").keyword().build();
- new FieldBuilder(builder, "biotype1", "text").keyword().build();
- new FieldBuilder(builder, "biotype2", "text").keyword().build();
- new FieldBuilder(builder, "biotypes", "text").keyword().letterText().build();
- new FieldBuilder(builder, "branch", "text").keyword().build();
- new FieldBuilder(builder, "category", "keyword").symbol().autocomplete().keyword().build();
- new FieldBuilder(builder, "cellularComponent", "text").keyword().build();
- new FieldBuilder(builder, "cellularComponentAgrSlim", "text").keyword().build();
- new FieldBuilder(builder, "cellularComponentWithParents", "text").keyword().build();
- new FieldBuilder(builder, "cellularComponentExpression", "text").keyword().build();
- new FieldBuilder(builder, "cellularComponentExpressionWithParents", "text").keyword().build();
- new FieldBuilder(builder, "cellularComponentExpressionAgrSlim", "text").keyword().build();
- new FieldBuilder(builder, "chromosomes", "text").keyword().build();
- new FieldBuilder(builder, "constructs", "text").keyword().classicText().build();
- new FieldBuilder(builder, "constructExpressedComponent", "text").keyword().build();
- new FieldBuilder(builder, "constructKnockdownComponent", "text").keyword().build();
- new FieldBuilder(builder, "constructRegulatoryRegion", "text").keyword().build();
- new FieldBuilder(builder, "crossReferences", "text").keyword().classicText().build();
- new FieldBuilder(builder, "dataProvider", "text").keyword().build();
- new FieldBuilder(builder, "definition", "text").standardText().build();
- new FieldBuilder(builder, "description", "text").build();
- new FieldBuilder(builder, "diseases", "text").keyword().build();
- new FieldBuilder(builder, "diseasesAgrSlim", "text").keyword().build();
- new FieldBuilder(builder, "diseasesWithParents", "text").keyword().build();
- new FieldBuilder(builder, "expressionStages", "text").keyword().standardText().build();
- new FieldBuilder(builder, "external_ids", "text").analyzer("symbols");
- new FieldBuilder(builder, "genes", "text").keyword().autocomplete().keywordAutocomplete().build();
- new FieldBuilder(builder, "geneLiteratureUrl", "keyword").build();
- new FieldBuilder(builder, "geneSynopsis", "text").build();
- new FieldBuilder(builder, "geneSynopsisUrl", "keyword").build();
- new FieldBuilder(builder, "geneSynonyms", "text").keyword().build();
- new FieldBuilder(builder, "geneCrossReferences", "text").keyword().build();
- new FieldBuilder(builder, "href", "keyword");
- new FieldBuilder(builder, "id", "keyword");
- new FieldBuilder(builder, "models", "text").keyword().autocomplete().build();
- new FieldBuilder(builder, "molecularConsequence", "text").keyword().build();
- new FieldBuilder(builder, "molecularFunction", "text").keyword().build();
- new FieldBuilder(builder, "molecularFunctionAgrSlim", "text").keyword().build();
- new FieldBuilder(builder, "molecularFunctionWithParents", "text").keyword().build();
- new FieldBuilder(builder, "name", "text")
- .symbol()
- .autocomplete()
- .keyword()
- .keywordAutocomplete()
- .htmlSmoosh()
- .standardBigrams()
- .build();
- new FieldBuilder(builder, "nameText", "text").keyword().standardText().build();
- new FieldBuilder(builder, "name_key", "text").analyzer("symbols")
- .autocomplete()
- .keyword()
- .keywordAutocomplete()
- .htmlSmoosh()
- .standardBigrams()
- .build();
- new FieldBuilder(builder, "object.name", "text").keyword().sort().build();
- new FieldBuilder(builder, "object.curie", "text").keyword().sort().build();
- new FieldBuilder(builder, "subject.alleleSymbol.displayText", "text").keyword().sort().build();
- new FieldBuilder(builder, "subject.geneSymbol.displayText", "text").keyword().sort().build();
- new FieldBuilder(builder, "subject.name", "text").keyword().sort().build();
- new FieldBuilder(builder, "subject.primaryExternalId", "text").keyword().sort().build();
- new FieldBuilder(builder, "subject.modEntityId", "text").keyword().sort().build();
- new FieldBuilder(builder, "phenotypeStatement", "text").keyword().sort().build();
- new FieldBuilder(builder, "phenotypeStatements", "text")
- .keyword()
- .build();
- new FieldBuilder(builder, "popularity", "double").build();
- new FieldBuilder(builder, "primaryKey", "keyword").build();
-
- new FieldBuilder(builder, "references.crossReferences", "nested").build();
-
- new FieldBuilder(builder, "sampleIds", "keyword").build();
- new FieldBuilder(builder, "symbol", "text").analyzer("symbols")
- .autocomplete()
- .htmlSmoosh()
- .keyword()
- .keywordAutocomplete()
- .sort()
- .build();
- new FieldBuilder(builder, "searchSymbol", "text").analyzer("symbols")
- .autocomplete()
- .keyword()
- .keywordAutocomplete()
- .sort()
- .build();
- new FieldBuilder(builder, "sex", "text").keyword().build();
- new FieldBuilder(builder, "secondaryIds", "keyword").build();
- new FieldBuilder(builder, "soTermName", "text").keyword().letterText().build();
- new FieldBuilder(builder, "soTermId", "keyword").build();
- new FieldBuilder(builder, "species", "text").keyword().synonym().sort().build();
- new FieldBuilder(builder, "displayText", "text").keyword().sort().build();
-
- // speciesOrder will generate properly and it will be of type: long
-
- // new FieldBuilder(builder, "stage", "text").keyword().build();
- new FieldBuilder(builder, "strictOrthologySymbols", "text").keyword().autocomplete().build();
- new FieldBuilder(builder, "summary", "text").build();
- new FieldBuilder(builder, "symbolText", "text").keyword().standardText().build();
- new FieldBuilder(builder, "synonyms", "text").analyzer("symbols")
- .autocomplete()
- .keyword()
- .keywordAutocomplete()
- .htmlSmoosh()
- .standardBigrams()
- .build();
- new FieldBuilder(builder, "systematicName", "text").analyzer("symbols").build();
- new FieldBuilder(builder, "taxonId", "keyword").build();
- new FieldBuilder(builder, "variants", "text").keyword().standardText().build();
- new FieldBuilder(builder, "variantType", "text").keyword().build();
- new FieldBuilder(builder, "variantSynonyms", "text").keyword().standardText().build();
- new FieldBuilder(builder, "whereExpressed", "text").keyword().build();
-
- buildMetaDataField();
-
- }
-
- private void buildMetaDataField() throws IOException {
- builder.startObject("metaData");
- builder.startObject("properties");
- new FieldBuilder(builder, "dateProduced", "date").build();
- new FieldBuilder(builder, "dataProvider", "keyword").build();
- new FieldBuilder(builder, "release", "keyword").build();
- builder.endObject();
- builder.endObject();
- }
-
- private void buildCrossReferenceLinkField() throws IOException {
- builder.startObject("crossReferenceLinks");
- builder.startObject("properties");
- new FieldBuilder(builder, "name", "keyword").build();
- new FieldBuilder(builder, "displayName", "keyword").build();
- new FieldBuilder(builder, "url", "keyword").build();
- builder.endObject();
- builder.endObject();
- }
-
-
-
protected void buildNestedDocument(String name) throws IOException {
builder.startObject(name);
builder.startObject("properties");
@@ -178,6 +29,127 @@ protected void buildNestedDocument(String name) throws IOException {
builder.endObject();
}
+ protected void buildSharedSearchableDocumentMappings() throws IOException {
+ // Not used fields
+ //new FieldBuilder(builder, "age", "text").keyword().build();
+ //new FieldBuilder(builder, "associationType", "text").symbol().autocomplete().keyword().standardText().build();
+ //new FieldBuilder(builder, "biologicalProcess", "text").keyword().build();
+ //new FieldBuilder(builder, "cellularComponent", "text").keyword().build();
+ //new FieldBuilder(builder, "cellularComponentExpression", "text").keyword().build();
+ //new FieldBuilder(builder, "cellularComponentExpressionWithParents", "text").keyword().build();
+ //new FieldBuilder(builder, "cellularComponentExpressionAgrSlim", "text").keyword().build();
+ //new FieldBuilder(builder, "description", "text").build();
+ //new FieldBuilder(builder, "external_ids", "text").analyzer("symbols");
+ //new FieldBuilder(builder, "geneLiteratureUrl", "keyword").build();
+ //new FieldBuilder(builder, "id", "keyword");
+ //new FieldBuilder(builder, "molecularFunction", "text").keyword().build();
+ //new FieldBuilder(builder, "references.crossReferences", "nested").build();
+ //new FieldBuilder(builder, "searchSymbol", "text").analyzer("symbols").autocomplete().keyword().keywordAutocomplete().sort().build();
+ //new FieldBuilder(builder, "displayText", "text").keyword().sort().build();
+ //new FieldBuilder(builder, "stage", "text").keyword().build();
+ //new FieldBuilder(builder, "systematicName", "text").analyzer("symbols").build();
+ //new FieldBuilder(builder, "taxonId", "keyword").build();
+
+
+ // Allele Only Fields
+ new FieldBuilder(builder, "alterationType", "text").keyword().build(); // Allele
+ new FieldBuilder(builder, "constructs", "text").keyword().classicText().build(); // allele
+ new FieldBuilder(builder, "constructExpressedComponent", "text").keyword().build(); // allele
+ new FieldBuilder(builder, "constructKnockdownComponent", "text").keyword().build(); // allele
+ new FieldBuilder(builder, "constructRegulatoryRegion", "text").keyword().build(); // allele
+ new FieldBuilder(builder, "geneSynonyms", "text").keyword().build(); // allele
+ new FieldBuilder(builder, "geneCrossReferences", "text").keyword().build(); // allele
+ 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, "variantType", "text").keyword().build(); // ??
+ new FieldBuilder(builder, "variantSynonyms", "text").keyword().standardText().build(); // allele
+
+ // Gene Only Fields
+ new FieldBuilder(builder, "biologicalProcessAgrSlim", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "biologicalProcessWithParents", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "biotype0", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "biotype1", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "biotype2", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "biotypes", "text").keyword().letterText().build(); // gene
+ new FieldBuilder(builder, "cellularComponentAgrSlim", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "cellularComponentWithParents", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "chromosomes", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "expressionStages", "text").keyword().standardText().build(); // gene
+ new FieldBuilder(builder, "geneSynopsis", "text").build(); // gene
+ new FieldBuilder(builder, "geneSynopsisUrl", "keyword").build(); // gene
+ new FieldBuilder(builder, "molecularFunctionAgrSlim", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "molecularFunctionWithParents", "text").keyword().build(); // gene
+ new FieldBuilder(builder, "soTermName", "text").keyword().letterText().build(); // gene
+ new FieldBuilder(builder, "soTermId", "keyword").build(); // gene
+ new FieldBuilder(builder, "strictOrthologySymbols", "text").keyword().autocomplete().build(); // gene
+
+ // Dataset Only Fields
+ new FieldBuilder(builder, "assays", "text").keyword().build(); // dataset
+ new FieldBuilder(builder, "dataProvider", "text").keyword().build(); // dataset
+ new FieldBuilder(builder, "sampleIds", "keyword").build(); // dataset
+ new FieldBuilder(builder, "sex", "text").keyword().build(); // dataset
+ new FieldBuilder(builder, "summary", "text").build(); // dataset
+
+ new FieldBuilder(builder, "diseases", "text").keyword().build(); // gene, allele, model
+ new FieldBuilder(builder, "diseasesAgrSlim", "text").keyword().build(); // gene, allele, model
+ new FieldBuilder(builder, "diseasesWithParents", "text").keyword().build(); // gene, allele, model
+ new FieldBuilder(builder, "phenotypeStatements", "text").keyword().build(); // gene, allele, model
+
+ new FieldBuilder(builder, "object.name", "text").keyword().sort().build(); // gene_disease_annotation, allele_disease_annotation, agm_disease_annotation
+ new FieldBuilder(builder, "object.curie", "text").keyword().sort().build(); // gene_disease_annotation, allele_disease_annotation, agm_disease_annotation
+ new FieldBuilder(builder, "subject.primaryExternalId", "text").keyword().sort().build(); // gene_disease_annotation, allele_disease_annotation, agm_disease_annotation
+
+ new FieldBuilder(builder, "anatomicalExpression", "text").keyword().build(); // gene, dataset
+ new FieldBuilder(builder, "whereExpressed", "text").keyword().build(); // gene, dataset
+
+ new FieldBuilder(builder, "associatedSpecies", "text").keyword().synonym().sort().build(); // go, disease
+ new FieldBuilder(builder, "definition", "text").standardText().build(); // go, disease
+
+ new FieldBuilder(builder, "models", "text").keyword().autocomplete().build(); // gene, disease
+ new FieldBuilder(builder, "secondaryIds", "keyword").build(); // gene, disease
+
+
+
+
+
+
+
+
+ new FieldBuilder(builder, "alleles", "text").keyword().autocomplete().build(); // model, gene, disease
+
+ new FieldBuilder(builder, "branch", "text").keyword().build(); // go
+ new FieldBuilder(builder, "category", "keyword").symbol().autocomplete().keyword().build(); // ALL document must have
+ new FieldBuilder(builder, "crossReferences", "text").keyword().classicText().build(); // allele, gene, dataset, disease
+
+
+ new FieldBuilder(builder, "genes", "text").keyword().autocomplete().keywordAutocomplete().build(); // allele, model, go, disease
+ new FieldBuilder(builder, "href", "keyword"); // go, dataset
+
+
+
+ new FieldBuilder(builder, "name", "text").symbol().autocomplete().keyword().keywordAutocomplete().htmlSmoosh().standardBigrams().build(); // allele, gene, model, go, dataset, disease
+ new FieldBuilder(builder, "nameText", "text").keyword().standardText().build(); // model
+ new FieldBuilder(builder, "name_key", "text").analyzer("symbols").autocomplete().keyword().keywordAutocomplete().htmlSmoosh().standardBigrams().build(); // allele, gene, model, go, dataset, disease
+
+
+
+ new FieldBuilder(builder, "subject.alleleSymbol.displayText", "text").keyword().sort().build(); // allele_disease_annotation
+ new FieldBuilder(builder, "subject.geneSymbol.displayText", "text").keyword().sort().build(); // gene_disease_annotation
+ new FieldBuilder(builder, "subject.name", "text").keyword().sort().build(); // agm_disease_annotation
+
+
+ new FieldBuilder(builder, "popularity", "double").build(); // gene, model, dataset, disease
+ new FieldBuilder(builder, "primaryKey", "keyword").build(); // allele, gene, model, go, dataset, disease
+ new FieldBuilder(builder, "symbol", "text").analyzer("symbols").autocomplete().htmlSmoosh().keyword().keywordAutocomplete().sort().build(); // allele, gene
+
+
+ new FieldBuilder(builder, "species", "text").keyword().synonym().sort().build(); // allele, gene, model, dataset
+ new FieldBuilder(builder, "synonyms", "text").analyzer("symbols").autocomplete().keyword().keywordAutocomplete().htmlSmoosh().standardBigrams().build(); // gene, go, disease, model
+
+
+ }
+
public static class FieldBuilder {
XContentBuilder builder;
String name;
diff --git a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Settings.java b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Settings.java
index 2b21901d8..8a444233d 100644
--- a/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Settings.java
+++ b/agr_java_core/src/main/java/org/alliancegenome/es/index/site/schema/Settings.java
@@ -6,8 +6,6 @@
import java.util.Set;
import java.util.stream.Collectors;
-import org.alliancegenome.neo4j.repository.indexer.GeneIndexerRepository;
-
public abstract class Settings extends Builder {
public Settings(Boolean pretty) {
@@ -119,11 +117,35 @@ public String[] getSpeciesSynonyms(Boolean skipSynonymFetching) {
if (skipSynonymFetching) {
return new String[0];
}
-
- GeneIndexerRepository geneIndexerRepository = new GeneIndexerRepository();
- Map> synonymMap = geneIndexerRepository.getSpeciesCommonNames();
+
+ // TODO remove this hardcoding due to getting rid of NEO
+ Map> synonymMap = Map.of(
+ "Caenorhabditis elegans", Set.of("worm", "cel"),
+ "Mus musculus", Set.of("mouse", "mmu"),
+ "SARS-CoV-2", Set.of(
+ "SARS-CoV-2",
+ "Severe acute respiratory syndrome coronavirus 2",
+ "SARS-CoV2",
+ "sars cov 2",
+ "SARS-2",
+ "SARS2",
+ "COVID",
+ "COVID19",
+ "COVID-19",
+ "COVID-19 virus", "2019-nCoV", "HCoV-19",
+ "Human coronavirus 2019"
+ ),
+ "Xenopus laevis", Set.of("African clawed frog", "xbxl", "X.laevis", "X. laevis", "Bufo laevis", "Common platanna", "Platanna", "African claw-toed frog"),
+ "Rattus norvegicus", Set.of("rat", "rno"),
+ "Danio rerio", Set.of("zebrafish", "fish", "dre"),
+ "Homo sapiens", Set.of("human", "hsa"),
+ "Xenopus tropicalis", Set.of("Western clawed frog", "xbxt", "X.tropicalis", "X. tropicalis", "Tropical clawed frog", "Silurana tropicalis"),
+ "Saccharomyces cerevisiae", Set.of("yeast", "sce"),
+ "Drosophila melanogaster", Set.of("fly", "fruit fly", "dme")
+ );
Set synonymMapping = new HashSet<>();
+
for (String speciesName : synonymMap.keySet()) {
StringBuilder sb = new StringBuilder();
sb.append(speciesName.toLowerCase());
@@ -137,7 +159,7 @@ public String[] getSpeciesSynonyms(Boolean skipSynonymFetching) {
);
synonymMapping.add(sb.toString());
}
- geneIndexerRepository.close();
+
return synonymMapping.toArray(new String[0]);
}
diff --git a/agr_java_core/src/main/java/org/alliancegenome/neo4j/entity/node/Variant.java b/agr_java_core/src/main/java/org/alliancegenome/neo4j/entity/node/Variant.java
index d1bc7fcbb..3e380c12f 100644
--- a/agr_java_core/src/main/java/org/alliancegenome/neo4j/entity/node/Variant.java
+++ b/agr_java_core/src/main/java/org/alliancegenome/neo4j/entity/node/Variant.java
@@ -70,7 +70,8 @@ public Variant() {
@Relationship(type = "ASSOCIATION") private GenomeLocation location;
@JsonView({ View.API.class })
- @Relationship(type = "ASSOCIATION", direction = Relationship.Direction.INCOMING) protected List transcriptList;
+ @Relationship(type = "ASSOCIATION", direction = Relationship.Direction.INCOMING)
+ protected List transcriptList;
@JsonView({ View.API.class, View.AlleleVariantSequenceConverterForES.class })
@Relationship(type = "ASSOCIATION") protected List transcriptLevelConsequence;
diff --git a/pom.xml b/pom.xml
index 72e964ce1..e56c4a321 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,17 +58,17 @@
org.elasticsearch
elasticsearch
- 7.17.14
+ 7.17.28
org.elasticsearch
elasticsearch-core
- 7.17.14
+ 7.17.28
org.elasticsearch.client
elasticsearch-rest-high-level-client
- 7.17.14
+ 7.17.28
com.github.mmazi