Skip to content

Commit c8a834e

Browse files
authored
Merge branch 'stage' into SCRUM-phenotypeAnnotations
2 parents e6889e7 + 9773268 commit c8a834e

File tree

9 files changed

+161
-9
lines changed

9 files changed

+161
-9
lines changed

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -381,14 +381,6 @@ private JsonResultResponse<GeneDiseaseAnnotationDocument> getDiseaseAnnotationLi
381381
ret.setTotal((int) searchResponse.getHits().getTotalHits().value);
382382

383383
List<GeneDiseaseAnnotationDocument> list = new ArrayList<>();
384-
ObjectMapper mapper2 = new ObjectMapper();
385-
JavaTimeModule module = new JavaTimeModule();
386-
mapper2.registerModule(module);
387-
mapper2.registerModule(new Jdk8Module());
388-
389-
mapper2.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
390-
mapper2.setSerializationInclusion(JsonInclude.Include.NON_NULL);
391-
mapper2.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
392384

393385
for (SearchHit searchHit : searchResponse.getHits().getHits()) {
394386
try {

agr_indexer/src/main/java/org/alliancegenome/indexer/config/IndexerConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.alliancegenome.indexer.indexers.*;
44
import org.alliancegenome.indexer.indexers.curation.DiseaseAnnotationCurationIndexer;
5+
import org.alliancegenome.indexer.indexers.curation.GeneExpressionAnnotationIndexer;
56
import org.alliancegenome.indexer.indexers.curation.GeneGeneticInteractionCurationIndexer;
67
import org.alliancegenome.indexer.indexers.curation.GeneMolecularInteractionCurationIndexer;
78
import org.alliancegenome.indexer.indexers.curation.PhenotypeAnnotationCurationIndexer;
@@ -21,6 +22,7 @@ public enum IndexerConfig {
2122
GoIndexer("go", GoIndexer.class, 4, 914, 914, 8, 1), // (44087, 262, 460247, 1093)
2223
ModelIndexer("model", ModelIndexer.class, 4, 1426, 1426, 8, 1), // (132447, 314, 18593, 701)
2324
DiseaseAnnotationMlIndexer("diseaseAnnotation", DiseaseAnnotationCurationIndexer.class, 1, 1426, 1426, 2, 1),
25+
GeneExpressionAnnotationIndexer("geneExpressionAnnotation", GeneExpressionAnnotationIndexer.class, 4, 1500, 1500, 2, 1),
2426
GeneGeneticInteractionIndexers("geneGeneticInteraction", GeneGeneticInteractionCurationIndexer.class, 4, 1500, 1500, 2, 1),
2527
GeneMolecularInteractionIndexers("geneMolecularInteraction", GeneMolecularInteractionCurationIndexer.class, 4, 1500, 1500, 2, 1),
2628
//PhenotypeAnnotationMlIndexer("phenotypeAnnotation", PhenotypeCurationIndexer.class, 1, 1426, 1426, 2, 1),

agr_indexer/src/main/java/org/alliancegenome/indexer/indexers/Indexer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ public void run() {
213213
protected abstract void startSingleThread(LinkedBlockingDeque<String> queue);
214214

215215
protected ObjectMapper customizeObjectMapper(ObjectMapper objectMapper) {
216-
objectMapper.registerModule(new JavaTimeModule());
217216
return objectMapper;
218217
}
219218
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package org.alliancegenome.indexer.indexers.curation;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import lombok.extern.slf4j.Slf4j;
5+
import org.alliancegenome.api.entity.GeneExpressionAnnotationDocument;
6+
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
7+
import org.alliancegenome.curation_api.response.SearchResponse;
8+
import org.alliancegenome.indexer.RestConfig;
9+
import org.alliancegenome.indexer.config.IndexerConfig;
10+
import org.alliancegenome.indexer.indexers.Indexer;
11+
import org.alliancegenome.indexer.indexers.curation.service.GeneExpressionAnnotationService;
12+
import org.apache.commons.collections.CollectionUtils;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
import java.util.concurrent.LinkedBlockingDeque;
17+
18+
@Slf4j
19+
public class GeneExpressionAnnotationIndexer extends Indexer {
20+
21+
GeneExpressionAnnotationService geneExpressionAnnotationService = new GeneExpressionAnnotationService();
22+
23+
public GeneExpressionAnnotationIndexer(IndexerConfig indexerConfig) {
24+
super(indexerConfig);
25+
}
26+
27+
@Override
28+
protected void index() {
29+
try {
30+
SearchResponse<GeneExpressionAnnotation> response = geneExpressionAnnotationService.getGeneExpressionAnnotations(0, 0);
31+
log.info("GeneExpressionAnnotation count: " + response.getTotalResults());
32+
int totalPages = (int) (response.getTotalResults() / indexerConfig.getBufferSize());
33+
LinkedBlockingDeque<String> queue = new LinkedBlockingDeque<>();
34+
for (int i = 0; i <= totalPages; i++) {
35+
queue.add(String.valueOf(i));
36+
}
37+
initiateThreading(queue);
38+
} catch (InterruptedException e) {
39+
e.printStackTrace();
40+
}
41+
}
42+
43+
@Override
44+
protected void startSingleThread(LinkedBlockingDeque<String> queue) {
45+
while (true) {
46+
try {
47+
if (queue.isEmpty()) {
48+
return;
49+
}
50+
51+
String page = queue.takeFirst();
52+
log.debug(queue.size() + " pages to process " + Thread.currentThread().getName() + " starting page: " + page);
53+
SearchResponse<GeneExpressionAnnotation> response = geneExpressionAnnotationService.getGeneExpressionAnnotations(Integer.valueOf(page), indexerConfig.getBufferSize());
54+
if (response == null || CollectionUtils.isEmpty(response.getResults())) {
55+
return;
56+
}
57+
List<GeneExpressionAnnotationDocument> documentsToIndex = new ArrayList<>();
58+
for (GeneExpressionAnnotation gea : response.getResults()) {
59+
GeneExpressionAnnotationDocument geneExpressionAnnotationDocument = new GeneExpressionAnnotationDocument();
60+
geneExpressionAnnotationDocument.setGeneExpressionAnnotation(gea);
61+
documentsToIndex.add(geneExpressionAnnotationDocument);
62+
}
63+
indexDocuments(documentsToIndex);
64+
} catch (Exception e) {
65+
log.error("Error while indexing...", e);
66+
System.exit(-1);
67+
return;
68+
}
69+
}
70+
}
71+
72+
@Override
73+
protected ObjectMapper customizeObjectMapper(ObjectMapper objectMapper) {
74+
return RestConfig.config.getJacksonObjectMapperFactory().createObjectMapper();
75+
}
76+
}
77+
78+

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
import org.alliancegenome.api.entity.GeneGeneticInteractionDocument;
88
import org.alliancegenome.curation_api.model.entities.GeneGeneticInteraction;
99
import org.alliancegenome.curation_api.response.SearchResponse;
10+
import org.alliancegenome.indexer.RestConfig;
1011
import org.alliancegenome.indexer.config.IndexerConfig;
1112
import org.alliancegenome.indexer.indexers.Indexer;
1213
import org.alliancegenome.indexer.indexers.curation.service.GeneGeneticInteractionService;
1314
import org.alliancegenome.indexer.indexers.curation.service.helpers.GeneInteractionHelper;
1415
import org.apache.commons.collections.CollectionUtils;
1516

17+
import com.fasterxml.jackson.databind.ObjectMapper;
18+
1619
import lombok.extern.slf4j.Slf4j;
1720

1821
@Slf4j
@@ -46,6 +49,11 @@ protected void index() {
4649
}
4750
}
4851

52+
@Override
53+
protected ObjectMapper customizeObjectMapper(ObjectMapper objectMapper) {
54+
return RestConfig.config.getJacksonObjectMapperFactory().createObjectMapper();
55+
}
56+
4957
@Override
5058
protected void startSingleThread(LinkedBlockingDeque<String> queue) {
5159
while (true) {

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
import org.alliancegenome.api.entity.GeneMolecularInteractionDocument;
88
import org.alliancegenome.curation_api.model.entities.GeneMolecularInteraction;
99
import org.alliancegenome.curation_api.response.SearchResponse;
10+
import org.alliancegenome.indexer.RestConfig;
1011
import org.alliancegenome.indexer.config.IndexerConfig;
1112
import org.alliancegenome.indexer.indexers.Indexer;
1213
import org.alliancegenome.indexer.indexers.curation.service.GeneMolecularInteractionService;
1314
import org.alliancegenome.indexer.indexers.curation.service.helpers.GeneInteractionHelper;
1415
import org.apache.commons.collections.CollectionUtils;
1516

17+
import com.fasterxml.jackson.databind.ObjectMapper;
18+
1619
import lombok.extern.slf4j.Slf4j;
1720

1821
@Slf4j
@@ -46,6 +49,11 @@ protected void index() {
4649
}
4750
}
4851

52+
@Override
53+
protected ObjectMapper customizeObjectMapper(ObjectMapper objectMapper) {
54+
return RestConfig.config.getJacksonObjectMapperFactory().createObjectMapper();
55+
}
56+
4957
@Override
5058
protected void startSingleThread(LinkedBlockingDeque<String> queue) {
5159
while (true) {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.alliancegenome.indexer.indexers.curation.interfaces;
2+
3+
import com.fasterxml.jackson.annotation.JsonView;
4+
import jakarta.ws.rs.*;
5+
import org.alliancegenome.curation_api.interfaces.base.BaseIdCrudInterface;
6+
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
7+
import org.alliancegenome.curation_api.response.SearchResponse;
8+
import org.alliancegenome.curation_api.view.View;
9+
10+
import java.util.HashMap;
11+
12+
@Path("/gene-expression-annotation")
13+
@Produces({"application/json"})
14+
@Consumes({"application/json"})
15+
public interface GeneExpressionAnnotationInterface extends BaseIdCrudInterface<GeneExpressionAnnotation> {
16+
@POST
17+
@Path("/findForPublic")
18+
@JsonView({View.ForPublic.class})
19+
SearchResponse<GeneExpressionAnnotation> find(
20+
@DefaultValue("0") @QueryParam("page") Integer page,
21+
@DefaultValue("10") @QueryParam("limit") Integer limit,
22+
HashMap<String, Object> params
23+
);
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.alliancegenome.indexer.indexers.curation.service;
2+
3+
import org.alliancegenome.core.config.ConfigHelper;
4+
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
5+
import org.alliancegenome.curation_api.response.SearchResponse;
6+
import org.alliancegenome.indexer.RestConfig;
7+
import org.alliancegenome.indexer.indexers.curation.interfaces.GeneExpressionAnnotationInterface;
8+
import si.mazi.rescu.RestProxyFactory;
9+
10+
import java.util.HashMap;
11+
12+
public class GeneExpressionAnnotationService {
13+
14+
private GeneExpressionAnnotationInterface geneExpressionAnnotationClient = RestProxyFactory.createProxy(GeneExpressionAnnotationInterface.class, ConfigHelper.getCurationApiUrl(), RestConfig.config);
15+
16+
public SearchResponse<GeneExpressionAnnotation> getGeneExpressionAnnotations(Integer page, Integer limit) {
17+
HashMap<String, Object> params = new HashMap<>();
18+
params.put("internal", false);
19+
params.put("obsolete", false);
20+
return geneExpressionAnnotationClient.find(page, limit, params);
21+
}
22+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.alliancegenome.api.entity;
2+
3+
import lombok.Data;
4+
import lombok.EqualsAndHashCode;
5+
import org.alliancegenome.curation_api.model.entities.GeneExpressionAnnotation;
6+
import org.alliancegenome.es.index.ESDocument;
7+
8+
@Data
9+
@EqualsAndHashCode(callSuper = true)
10+
public class GeneExpressionAnnotationDocument extends ESDocument {
11+
12+
String category = "gene_expression_annotation";
13+
GeneExpressionAnnotation geneExpressionAnnotation;
14+
15+
@Override
16+
public String getType() {
17+
return category;
18+
}
19+
}

0 commit comments

Comments
 (0)