Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SCRUM-3872 Bump curation library to v0.31.0 #1175

Merged
merged 4 commits into from
Apr 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.alliancegenome.core.translators.tdf.DownloadHeader;
import org.alliancegenome.curation_api.model.entities.ExperimentalCondition;
import org.alliancegenome.curation_api.model.entities.*;
import org.alliancegenome.curation_api.model.entities.base.CurieAuditedObject;
import org.alliancegenome.curation_api.model.entities.base.SubmittedObject;
import org.alliancegenome.neo4j.entity.DiseaseAnnotation;
import org.alliancegenome.neo4j.entity.PrimaryAnnotatedEntity;
import org.alliancegenome.neo4j.entity.node.CrossReference;
Expand Down Expand Up @@ -193,13 +193,13 @@ private static void extracted(DiseaseAnnotationDocument annotation, org.alliance
row.setMainEntitySymbol(subjectSymbol);
// needs better generics or have subject attribute on the parent class (DiseaseAnnotation)
if (primaryAnnotation instanceof AGMDiseaseAnnotation pAnnotation) {
row.setGeneticEntityID(pAnnotation.getSubject().getCurie());
row.setGeneticEntityName(pAnnotation.getSubject().getName());
row.setGeneticEntityType(pAnnotation.getSubject().getSubtype().getName());
row.setGeneticEntityID(pAnnotation.getDiseaseAnnotationSubject().getIdentifier());
row.setGeneticEntityName(pAnnotation.getDiseaseAnnotationSubject().getName());
row.setGeneticEntityType(pAnnotation.getDiseaseAnnotationSubject().getSubtype().getName());
List<org.alliancegenome.curation_api.model.entities.Gene> assertedGenes = pAnnotation.getAssertedGenes();
if (CollectionUtils.isNotEmpty(assertedGenes)) {
row.setAssertedGeneID(assertedGenes.stream().filter(gene -> !gene.getCurie().equals(subjectCurie))
.map(CurieAuditedObject::getCurie).collect(Collectors.joining("|")));
.map(SubmittedObject::getIdentifier).collect(Collectors.joining("|")));
row.setAssertedGeneName(assertedGenes.stream().filter(gene -> !gene.getCurie().equals(subjectCurie))
.map(gene -> gene.getGeneSymbol().getDisplayText()).collect(Collectors.joining("|")));
}
Expand All @@ -211,17 +211,17 @@ private static void extracted(DiseaseAnnotationDocument annotation, org.alliance
row.setGeneticEntityType("gene");
} else {
if (primaryAnnotation instanceof GeneDiseaseAnnotation pAnnotation) {
row.setGeneticEntityID(pAnnotation.getSubject().getCurie());
row.setGeneticEntityName(pAnnotation.getSubject().getGeneSymbol().getDisplayText());
row.setGeneticEntityID(pAnnotation.getDiseaseAnnotationSubject().getIdentifier());
row.setGeneticEntityName(pAnnotation.getDiseaseAnnotationSubject().getGeneSymbol().getDisplayText());
if (pAnnotation.getSgdStrainBackground() != null) {
row.setStrainBackgroundID(pAnnotation.getSgdStrainBackground().getCurie());
row.setStrainBackgroundName(pAnnotation.getSgdStrainBackground().getName());
}
row.setGeneticEntityType("gene");
}
if (primaryAnnotation instanceof AlleleDiseaseAnnotation pAnnotation) {
row.setGeneticEntityID(pAnnotation.getSubject().getCurie());
row.setGeneticEntityName(pAnnotation.getSubject().getAlleleSymbol().getDisplayText());
row.setGeneticEntityID(pAnnotation.getDiseaseAnnotationSubject().getIdentifier());
row.setGeneticEntityName(pAnnotation.getDiseaseAnnotationSubject().getAlleleSymbol().getDisplayText());
row.setGeneticEntityType("Allele");
}
}
Expand All @@ -245,7 +245,7 @@ private static void extracted(DiseaseAnnotationDocument annotation, org.alliance
row.setDateAssigned(primaryAnnotation.getDateCreated().toString());
}
if (CollectionUtils.isNotEmpty(primaryAnnotation.getWith())) {
row.setBasedOnID(primaryAnnotation.getWith().stream().map(CurieAuditedObject::getCurie).collect(Collectors.joining("|")));
row.setBasedOnID(primaryAnnotation.getWith().stream().map(SubmittedObject::getIdentifier).collect(Collectors.joining("|")));
row.setBasedOnName(primaryAnnotation.getWith().stream().map(gene -> gene.getGeneSymbol().getDisplayText()).collect(Collectors.joining("|")));
}
if (primaryAnnotation.getGeneticSex() != null) {
Expand All @@ -272,7 +272,7 @@ private static void extracted(DiseaseAnnotationDocument annotation, org.alliance
}
List<BiologicalEntity> diseaseGeneticModifiers = primaryAnnotation.getDiseaseGeneticModifiers();
if (CollectionUtils.isNotEmpty(diseaseGeneticModifiers)) {
row.setDiseaseGeneticModifierID(diseaseGeneticModifiers.stream().map(CurieAuditedObject::getCurie).collect(Collectors.joining("|")));
row.setDiseaseGeneticModifierID(diseaseGeneticModifiers.stream().map(SubmittedObject::getIdentifier).collect(Collectors.joining("|")));
StringJoiner joiner = new StringJoiner("|");
diseaseGeneticModifiers.forEach(entity -> {
if (entity instanceof org.alliancegenome.curation_api.model.entities.Gene gene) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.alliancegenome.api.entity.AlleleDiseaseAnnotationDocument;
import org.alliancegenome.api.entity.GeneDiseaseAnnotationDocument;
import org.alliancegenome.curation_api.model.entities.*;
import org.alliancegenome.curation_api.model.entities.base.CurieAuditedObject;
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;
import org.alliancegenome.curation_api.model.entities.ontology.OntologyTerm;
Expand Down Expand Up @@ -120,7 +120,7 @@ private List<GeneDiseaseAnnotationDocument> createGeneDiseaseAnnotationViaOrthol
// Group By:
// Disease, association type, Disease qualifiers, BasedOn Gene List (names),
Map<DOTerm, Map<VocabularyTerm, Map<String, Map<String, List<DiseaseAnnotation>>>>> groupedByAnnotations = diseaseAnnotations.stream()
.collect(groupingBy(DiseaseAnnotation::getObject,
.collect(groupingBy(DiseaseAnnotation::getDiseaseAnnotationObject,
groupingBy(DiseaseAnnotation::getRelation,
groupingBy(diseaseAnnotation -> {
List<VocabularyTerm> terms = diseaseAnnotation.getDiseaseQualifiers();
Expand Down Expand Up @@ -148,7 +148,7 @@ private List<GeneDiseaseAnnotationDocument> createGeneDiseaseAnnotationViaOrthol
String generatedRelationString = getGeneratedRelationString(gdad.getRelation().getName(), diseaseAnnotation.getNegated());
gdad.setGeneratedRelationString(generatedRelationString);
gdad.setObject(diseaseTerm);
gdad.setParentSlimIDs(closureMap.get(diseaseAnnotation.getObject().getCurie()));
gdad.setParentSlimIDs(closureMap.get(diseaseAnnotation.getDiseaseAnnotationObject().getCurie()));

// create distinct and sorted list of ECOTerm objects
Set<ECOTerm> ecoTerms = diseaseAnnotations1.stream().map(DiseaseAnnotation::getEvidenceCodes).flatMap(Collection::stream).collect(Collectors.toSet());
Expand All @@ -163,7 +163,7 @@ private List<GeneDiseaseAnnotationDocument> createGeneDiseaseAnnotationViaOrthol

// create distinct list of basedOn Genes
Set<Gene> basedOnGenes = diseaseAnnotations1.stream().map(DiseaseAnnotation::getWith).flatMap(Collection::stream).collect(Collectors.toSet());
List<String> ids = basedOnGenes.stream().map(CurieAuditedObject::getCurie).toList();
List<String> ids = basedOnGenes.stream().map(SubmittedObject::getIdentifier).toList();
gdad.setBasedOnGenes(new ArrayList<>(basedOnGenes));

gdad.addReference(diseaseAnnotation.getSingleReference());
Expand Down Expand Up @@ -207,7 +207,7 @@ private List<GeneDiseaseAnnotationDocument> createGeneDiseaseAnnotationDocuments
addCreatedDiseaseAnnotationsImplicatedToMap(generatedAnnotation, gene);
}

String key = relation.getName() + "_" + da.getObject().getName() + "_" + da.getNegated();
String key = relation.getName() + "_" + da.getDiseaseAnnotationObject().getName() + "_" + da.getNegated();

if (da.getDiseaseQualifiers() != null) {
key += "_" + da.getDiseaseQualifiers().stream().map(VocabularyTerm::getName).sorted().collect(Collectors.joining("_"));
Expand All @@ -227,8 +227,8 @@ private List<GeneDiseaseAnnotationDocument> createGeneDiseaseAnnotationDocuments
gdad.setRelation(relation);
String generatedRelationString = getGeneratedRelationString(gdad.getRelation().getName(), da.getNegated());
gdad.setGeneratedRelationString(generatedRelationString);
gdad.setObject(da.getObject());
gdad.setParentSlimIDs(closureMap.get(da.getObject().getCurie()));
gdad.setObject(da.getDiseaseAnnotationObject());
gdad.setParentSlimIDs(closureMap.get(da.getDiseaseAnnotationObject().getCurie()));
lookup.put(key, gdad);
}

Expand Down Expand Up @@ -273,15 +273,15 @@ private DiseaseAnnotation createImplicatedDA(DiseaseAnnotation da) {
DiseaseAnnotation implicatedDA = null;
if (da instanceof AGMDiseaseAnnotation agmAnnotation) {
AGMDiseaseAnnotation agmAnno = new AGMDiseaseAnnotation();
agmAnno.setSubject(agmAnnotation.getSubject());
agmAnno.setDiseaseAnnotationSubject(agmAnnotation.getDiseaseAnnotationSubject());
implicatedDA = agmAnno;
} else if (da instanceof AlleleDiseaseAnnotation alleleAnno) {
AlleleDiseaseAnnotation alleleDA = new AlleleDiseaseAnnotation();
alleleDA.setSubject(alleleAnno.getSubject());
alleleDA.setDiseaseAnnotationSubject(alleleAnno.getDiseaseAnnotationSubject());
implicatedDA = alleleDA;
}
implicatedDA.setRelation(da.getRelation());
implicatedDA.setObject(da.getObject());
implicatedDA.setDiseaseAnnotationObject(da.getDiseaseAnnotationObject());
implicatedDA.setDiseaseQualifiers(da.getDiseaseQualifiers());
implicatedDA.setDiseaseQualifiers(da.getDiseaseQualifiers());
implicatedDA.setSingleReference(da.getSingleReference());
Expand Down Expand Up @@ -327,7 +327,7 @@ private List<AlleleDiseaseAnnotationDocument> createAlleleDiseaseAnnotationDocum
relation = da.getRelation();
}

String key = relation.getName() + "_" + da.getObject().getName() + "_" + da.getNegated();
String key = relation.getName() + "_" + da.getDiseaseAnnotationObject().getName() + "_" + da.getNegated();
AlleleDiseaseAnnotationDocument adad = lookup.get(key);

if (adad == null) {
Expand All @@ -338,15 +338,15 @@ private List<AlleleDiseaseAnnotationDocument> createAlleleDiseaseAnnotationDocum
adad.setRelation(relation);
String generatedRelationString = getGeneratedRelationString(relation.getName(), da.getNegated());
adad.setGeneratedRelationString(generatedRelationString);
adad.setObject(da.getObject());
adad.setObject(da.getDiseaseAnnotationObject());
lookup.put(key, adad);
}
adad.setEvidenceCodes(da.getEvidenceCodes());
if (CollectionUtils.isNotEmpty(da.getDiseaseQualifiers())) {
Set<String> diseaseQualifiers = da.getDiseaseQualifiers().stream().map(term -> term.getName().replace("_", " ")).collect(Collectors.toSet());
adad.setDiseaseQualifiers(diseaseQualifiers);
}
adad.setParentSlimIDs(closureMap.get(da.getObject().getCurie()));
adad.setParentSlimIDs(closureMap.get(da.getDiseaseAnnotationObject().getCurie()));

// gdad.setDataProvider(da.getDataProvider());
adad.addReference(da.getSingleReference());
Expand Down Expand Up @@ -375,7 +375,7 @@ private List<AGMDiseaseAnnotationDocument> createAGMDiseaseAnnotationDocuments()
HashMap<String, AGMDiseaseAnnotationDocument> lookup = new HashMap<>();

for (DiseaseAnnotation da : entry.getValue().getRight()) {
String key = da.getRelation().getName() + "_" + da.getObject().getName() + "_" + da.getNegated();
String key = da.getRelation().getName() + "_" + da.getDiseaseAnnotationObject().getName() + "_" + da.getNegated();
AGMDiseaseAnnotationDocument adad = lookup.get(key);

if (adad == null) {
Expand All @@ -384,7 +384,7 @@ private List<AGMDiseaseAnnotationDocument> createAGMDiseaseAnnotationDocuments()
adad.setSpeciesOrder(order);
adad.setSubject(entry.getValue().getLeft());
adad.setRelation(da.getRelation());
adad.setObject(da.getObject());
adad.setObject(da.getDiseaseAnnotationObject());
lookup.put(key, adad);
}
adad.setEvidenceCodes(da.getEvidenceCodes());
Expand All @@ -407,7 +407,7 @@ private void indexGenes() {
private void addDiseaseAnnotationsToLGlobalMap(List<GeneDiseaseAnnotation> geneDiseaseAnnotations) {
log.info("Filtered Genes: " + geneDiseaseAnnotations.size());
for (GeneDiseaseAnnotation da : geneDiseaseAnnotations) {
Gene gene = da.getSubject();
Gene gene = da.getDiseaseAnnotationSubject();
Pair<Gene, ArrayList<DiseaseAnnotation>> pair = geneMap.computeIfAbsent(gene.getCurie(), geneCurie -> Pair.of(gene, new ArrayList<>()));
pair.getRight().add(da);
}
Expand All @@ -423,7 +423,7 @@ private void indexAlleles() {
List<AlleleDiseaseAnnotation> alleleDiseaseAnnotations = alleleService.getFiltered();
log.info("Filtered Alleles: " + alleleDiseaseAnnotations.size());
for (AlleleDiseaseAnnotation da : alleleDiseaseAnnotations) {
Allele allele = da.getSubject();
Allele allele = da.getDiseaseAnnotationSubject();
Pair<Allele, ArrayList<DiseaseAnnotation>> allelePair = alleleMap.computeIfAbsent(allele.getCurie(), alleleCurie -> Pair.of(allele, new ArrayList<>()));
allelePair.getRight().add(da);

Expand Down Expand Up @@ -458,7 +458,7 @@ private void indexAGMs() {
log.info("Filtered AGMs: " + agmDiseaseAnnotations.size());

for (AGMDiseaseAnnotation da : agmDiseaseAnnotations) {
AffectedGenomicModel genomicModel = da.getSubject();
AffectedGenomicModel genomicModel = da.getDiseaseAnnotationSubject();
Pair<AffectedGenomicModel, ArrayList<DiseaseAnnotation>> allelePair = agmMap.computeIfAbsent(genomicModel.getCurie(), agmCurie -> Pair.of(genomicModel, new ArrayList<>()));
allelePair.getRight().add(da);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,17 +110,17 @@ public Map<Gene, List<DiseaseAnnotation>> getOrthologousGeneDiseaseAnnotations(M
DiseaseAnnotation gda = null;
if (focusDiseaseAnnotation instanceof AGMDiseaseAnnotation agmda) {
AGMDiseaseAnnotation da = new AGMDiseaseAnnotation();
da.setSubject(agmda.getSubject());
da.setDiseaseAnnotationSubject(agmda.getDiseaseAnnotationSubject());
gda = da;
}
if (focusDiseaseAnnotation instanceof AlleleDiseaseAnnotation ada) {
AlleleDiseaseAnnotation da = new AlleleDiseaseAnnotation();
da.setSubject(ada.getSubject());
da.setDiseaseAnnotationSubject(ada.getDiseaseAnnotationSubject());
gda = da;
}
if (focusDiseaseAnnotation instanceof GeneDiseaseAnnotation gdann) {
GeneDiseaseAnnotation da = new GeneDiseaseAnnotation();
da.setSubject(gdann.getSubject());
da.setDiseaseAnnotationSubject(gdann.getDiseaseAnnotationSubject());
gda = da;
}

Expand All @@ -136,7 +136,7 @@ public Map<Gene, List<DiseaseAnnotation>> getOrthologousGeneDiseaseAnnotations(M
gda.setDataProvider(dataProvider);
gda.setWith(List.of(geneGeneOrthology.getSubjectGene()));
gda.setSingleReference(allianceReference);
gda.setObject(focusDiseaseAnnotation.getObject());
gda.setDiseaseAnnotationObject(focusDiseaseAnnotation.getDiseaseAnnotationObject());
gda.setEvidenceCodes(List.of(ecoTermIEA));
gda.setDiseaseQualifiers(focusDiseaseAnnotation.getDiseaseQualifiers());
List<DiseaseAnnotation> geneAnnotations = newDAMap.computeIfAbsent(orthologousGene, k -> new ArrayList<>());
Expand All @@ -149,7 +149,7 @@ public Map<Gene, List<DiseaseAnnotation>> getOrthologousGeneDiseaseAnnotations(M
// consolidating DAs:
// by: disease, relation and disease qualifier
newDAMap.forEach((gene, diseaseAnnotations) -> {
Map<String, Map<String, Map<String, List<DiseaseAnnotation>>>> groupedDAs = diseaseAnnotations.stream().collect(groupingBy(da1 -> da1.getObject().getCurie(),
Map<String, Map<String, Map<String, List<DiseaseAnnotation>>>> groupedDAs = diseaseAnnotations.stream().collect(groupingBy(da1 -> da1.getDiseaseAnnotationObject().getCurie(),
groupingBy(da -> da.getRelation().getName(), groupingBy(da -> {
List<VocabularyTerm> diseaseQualifiers = da.getDiseaseQualifiers();
// allow for grouping by missing based-on genes
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>${quarkus.version}</quarkus.platform.version>
<curation.version>v0.30.0</curation.version>
<curation.version>v0.31.0</curation.version>
<!-- <curation.version>0.0.0-SNAPSHOT</curation.version> -->
</properties>
<dependencyManagement>
Expand Down
Loading