private void addNewEntry(VariantAnnotation variantAnnotation, EvidenceEntry evidenceEntry) { List<EvidenceEntry> evidenceEntryList = variantAnnotation.getTraitAssociation(); // There are cosmic records which share all the fields but the bibliography. In some occassions (COSM12600) // the redundancy is such that the document becomes much bigger than 16MB and cannot be loaded into MongoDB. // This merge reduces redundancy. int i = 0; boolean merged = false; while (i < evidenceEntryList.size() && !merged) { if (sameSomaticDocument(evidenceEntryList.get(i), evidenceEntry)) { if (evidenceEntryList.get(i).getBibliography() != null) { if (evidenceEntry.getBibliography() != null) { Set<String> bibliographySet = new HashSet<>(evidenceEntryList.get(i).getBibliography()); bibliographySet.addAll(new HashSet<>(evidenceEntry.getBibliography())); evidenceEntryList.get(i).setBibliography(new ArrayList<>(bibliographySet)); } } else { evidenceEntryList.get(i).setBibliography(evidenceEntry.getBibliography()); } merged = true; } i++; } if (!merged) { evidenceEntryList.add(evidenceEntry); } }
variantAnnotationResults.get(i).getResult().get(0) .setTraitAssociation(clinicalQueryResult.getResult().get(0).getAnnotation() .getTraitAssociation()); .get(0) .getAnnotation() .getTraitAssociation()));
variantAnnotationResults.get(i).getResult().get(0) .setTraitAssociation(clinicalQueryResult.getResult().get(0).getAnnotation() .getTraitAssociation()); .get(0) .getAnnotation() .getTraitAssociation()));
null, additionalProperties, Collections.emptyList()); variantAnnotation.getTraitAssociation().add(evidenceEntry);
private boolean updateRocksDB(SequenceLocation sequenceLocation, List<EvidenceEntry> evidenceEntryList) throws RocksDBException, IOException { byte[] key = getNormalisedKey(sequenceLocation.getChromosome(), sequenceLocation.getStart(), sequenceLocation.getReference(), sequenceLocation.getAlternate()); if (key != null) { VariantAnnotation variantAnnotation = getVariantAnnotation(key); // List<EvidenceEntry> existingEvidenceEntryList = getVariantAnnotation(key); variantAnnotation.getTraitAssociation().addAll(evidenceEntryList); rdb.put(key, jsonObjectWriter.writeValueAsBytes(variantAnnotation)); return true; } return false; }
if (variantAnnotation.getTraitAssociation() == null) { variantAnnotation.setTraitAssociation(Collections.emptyList()); } else { for (EvidenceEntry evidenceEntry : variantAnnotation.getTraitAssociation()) { if (evidenceEntry.getSubmissions() == null) { evidenceEntry.setSubmissions(Collections.emptyList()); && CollectionUtils.isEmpty(variantAnnotation.getTraitAssociation())) { List<EvidenceEntry> evidenceEntries = traitAssociationConverter.convert(variantAnnotation.getVariantTraitAssociation()); variantAnnotation.setTraitAssociation(evidenceEntries);
private boolean updateRocksDB(Variant variant) throws RocksDBException, IOException { byte[] key = getNormalisedKey(variant.getChromosome(), variant.getStart(), variant.getReference(), variant.getAlternate()); if (key != null) { VariantAnnotation variantAnnotation = getVariantAnnotation(key); // Add EvidenceEntry objects variantAnnotation.getTraitAssociation().addAll(variant.getAnnotation().getTraitAssociation()); // Check if drug info is available if (variant.getAnnotation().getDrugs() != null && !variant.getAnnotation().getDrugs().isEmpty()) { // Drug info is stored at the VariantAnnotation root if (variantAnnotation.getDrugs() == null) { variantAnnotation.setDrugs(variant.getAnnotation().getDrugs()); } else { variantAnnotation.getDrugs().addAll(variant.getAnnotation().getDrugs()); } } rdb.put(key, jsonObjectWriter.writeValueAsBytes(variantAnnotation)); return true; } return false; }
@Test public void testGetAllVariants_clinicalSignificance() { for (ClinicalSignificance clinicalSignificance : ClinicalSignificance.values()) { if (ClinicalSignificance.uncertain_significance.equals(clinicalSignificance)) { continue; } Query query = new Query(ANNOT_CLINICAL_SIGNIFICANCE.key(), clinicalSignificance); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, hasAnnotation(with("clinicalSignificance", va -> va == null || va.getTraitAssociation() == null ? Collections.emptyList() : va.getTraitAssociation() .stream() .map(EvidenceEntry::getVariantClassification) .filter(Objects::nonNull) .map(VariantClassification::getClinicalSignificance) .filter(Objects::nonNull) .collect(Collectors.toList()), hasItem(clinicalSignificance))))); } }
null, additionalProperties, bibliography); variantAnnotation.getTraitAssociation().add(evidenceEntry);
for (EvidenceEntry evidenceEntry : variant.getAnnotation().getTraitAssociation()) { if ("clinvar".equals(evidenceEntry.getSource().getName()) && (evidenceEntry.getVariantClassification().getClinicalSignificance() == org.opencb.biodata.models.variant.avro.ClinicalSignificance.pathogenic for (EvidenceEntry evidenceEntry : variant.getAnnotation().getTraitAssociation()) { if ("clinvar".equals(evidenceEntry.getSource().getName()) && (evidenceEntry.getVariantClassification().getClinicalSignificance() == org.opencb.biodata.models.variant.avro.ClinicalSignificance.benign
if (variantAnnotation.getVariantTraitAssociation() != null && CollectionUtils.isEmpty(variantAnnotation.getTraitAssociation())) { List<EvidenceEntry> evidenceEntries = evidenceEntryConverter.convert(variantAnnotation.getVariantTraitAssociation()); variantAnnotation.setTraitAssociation(evidenceEntries); if (CollectionUtils.isNotEmpty(variantAnnotation.getTraitAssociation())) { for (EvidenceEntry evidenceEntry : variantAnnotation.getTraitAssociation()) { if (evidenceEntry.getVariantClassification() != null) { ClinicalSignificance clinicalSignificance = evidenceEntry.getVariantClassification().getClinicalSignificance();
if (annotation.getTraitAssociation() != null) { for (EvidenceEntry evidenceEntry : annotation.getTraitAssociation()) { if (evidenceEntry.getSubmissions() == null) { evidenceEntry.setSubmissions(Collections.emptyList());
if (annotation.getTraitAssociation() != null) { for (EvidenceEntry evidenceEntry : annotation.getTraitAssociation()) { if (evidenceEntry.getSubmissions() == null) { evidenceEntry.setSubmissions(Collections.emptyList());