private Document convertPopulationFrequencyToStorage(PopulationFrequency populationFrequency) { Document dbObject = new Document(POPULATION_FREQUENCY_STUDY_FIELD, populationFrequency.getStudy()); putNotNull(dbObject, POPULATION_FREQUENCY_POP_FIELD, populationFrequency.getPopulation()); putNotNull(dbObject, POPULATION_FREQUENCY_REFERENCE_FREQUENCY_FIELD, populationFrequency.getRefAlleleFreq()); putNotNull(dbObject, POPULATION_FREQUENCY_ALTERNATE_FREQUENCY_FIELD, populationFrequency.getAltAlleleFreq()); putNotNull(dbObject, POPULATION_FREQUENCY_REF_HOM_GT_FIELD, populationFrequency.getRefHomGenotypeFreq()); putNotNull(dbObject, POPULATION_FREQUENCY_HET_GT_FIELD, populationFrequency.getHetGenotypeFreq()); putNotNull(dbObject, POPULATION_FREQUENCY_ALT_HOM_GT_FIELD, populationFrequency.getAltHomGenotypeFreq()); return dbObject; }
private PopulationFrequency parsePopulationFrequency(String frequencyStrings, String study, String population) { PopulationFrequency populationFrequency = new PopulationFrequency(); populationFrequency.setStudy(study); populationFrequency.setPopulation(population); // populationFrequency.setSuperPopulation(population); populationFrequency.setRefAllele(currentAnnotation.getReference()); populationFrequency.setAltAllele(currentAnnotation.getAlternate()); for(String frequencyString : frequencyStrings.split(",")) { String[] parts = frequencyString.split(":"); if (parts[0].equals(currentAnnotation.getAlternate())) { populationFrequency.setAltAlleleFreq(Float.valueOf(parts[1])); } else { populationFrequency.setRefAlleleFreq(Float.valueOf(parts[1])); } } return populationFrequency; }
@Override protected Float featureValueOf(VariantAnnotation actual) { if (actual.getPopulationFrequencies() != null) { for (PopulationFrequency populationFrequency : actual.getPopulationFrequencies()) { if (populationFrequency.getStudy().equalsIgnoreCase(study) && populationFrequency.getPopulation().equalsIgnoreCase(population)) { return Math.min(populationFrequency.getAltAlleleFreq(), populationFrequency.getRefAlleleFreq()); } } } return 0F; } };
VariantAnnotationProto.PopulationFrequency.Builder popFreqBuilder = VariantAnnotationProto.PopulationFrequency.newBuilder() .setStudy(pf.getStudy()) .setPopulation(pf.getPopulation()) .setRefAllele(pf.getRefAllele()) .setAltAllele(pf.getAltAllele()) .setRefAlleleFreq(pf.getRefAlleleFreq()) .setAltAlleleFreq(pf.getAltAlleleFreq()) .setRefHomGenotypeFreq(pf.getRefHomGenotypeFreq()) .setHetGenotypeFreq(pf.getHetGenotypeFreq()) .setAltHomGenotypeFreq(pf.getAltHomGenotypeFreq()); builder.addPopulationFrequencies(popFreqBuilder.build());
@Override protected Float featureValueOf(VariantAnnotation actual) { if (actual.getPopulationFrequencies() != null) { for (PopulationFrequency populationFrequency : actual.getPopulationFrequencies()) { if (populationFrequency.getStudy().equalsIgnoreCase(study) && populationFrequency.getPopulation().equalsIgnoreCase(population)) { return populationFrequency.getAltAlleleFreq(); } } } return 0F; } };
@Override protected Float featureValueOf(VariantAnnotation actual) { if (actual.getPopulationFrequencies() != null) { for (PopulationFrequency populationFrequency : actual.getPopulationFrequencies()) { if (populationFrequency.getStudy().equalsIgnoreCase(study) && populationFrequency.getPopulation().equalsIgnoreCase(population)) { return populationFrequency.getRefAlleleFreq(); } } } return 0F; } };
if (populationFrequencies != null) { stringBuilder.append(populationFrequencies.stream() .map(t -> t.getPopulation() + ":" + t.getAltAlleleFreq()) .collect(Collectors.joining(",")));
for (PopulationFrequency populationFrequency: variant.getAnnotation().getPopulationFrequencies()) { if (populationFrequency.getAltAlleleFreq() != 0) { hasPopFreq = true; if ("EXAC".equals(populationFrequency.getStudy()) || "1kG_phase3".equals(populationFrequency.getStudy()) || "GNOMAD_EXOMES".equals(populationFrequency.getStudy())) { if (populationFrequency.getAltAlleleFreq() > 0.05) { above5 = true;
if (variantSearchModel.getPopFreq() != null && variantSearchModel.getPopFreq().size() > 0) { for (String key : variantSearchModel.getPopFreq().keySet()) { PopulationFrequency populationFrequency = new PopulationFrequency(); String[] fields = key.split(VariantSearchUtils.FIELD_SEPARATOR); populationFrequency.setStudy(fields[1]); populationFrequency.setPopulation(fields[2]); populationFrequency.setRefAlleleFreq(1 - variantSearchModel.getPopFreq().get(key)); populationFrequency.setAltAlleleFreq(variantSearchModel.getPopFreq().get(key)); populationFrequencies.add(populationFrequency);
map = new HashMap<>(); for (PopulationFrequency p : variant.getAnnotation().getPopulationFrequencies()) { map.put(p.getStudy() + ":" + p.getPopulation(), p); map = new HashMap<>(); for (PopulationFrequency p : variant.getAnnotation().getPopulationFrequencies()) { map.put(p.getStudy() + ":" + p.getPopulation(), p);
return new PopulationFrequency( study, population,
@Override public boolean write(Variant variant) { ArrayList<PopulationFrequency> frequencies = new ArrayList<>(); for (StudyEntry studyEntry : variant.getStudies()) { for (Map.Entry<String, VariantStats> cohortEntry : studyEntry.getStats().entrySet()) { String studyId = studyEntry.getStudyId(); studyId = studyId.substring(studyId.lastIndexOf(":") + 1); PopulationFrequency populationFrequency = converter.convert(studyId, cohortEntry.getKey(), cohortEntry.getValue(), variant.getReference(), variant.getAlternate()); // Write only frequencies non zero if (populationFrequency.getAltAlleleFreq() > 0 && !populationFrequency.getAltAlleleFreq().isNaN()) { frequencies.add(populationFrequency); } } } Variant newVar = new Variant(variant.toString()); VariantAnnotation annotation = new VariantAnnotation(); annotation.setPopulationFrequencies(frequencies); newVar.setAnnotation(annotation); try { sequenceWriter.write(newVar); outputStream.write('\n'); } catch (IOException e) { throw new UncheckedIOException(e); } return true; } }
dataOutputStream.print(frequency.getHetGenotypeFreq() + TAB + frequency.getAltHomGenotypeFreq()); } else { dataOutputStream.print(".\t.");
List<String> popFreqList = new ArrayList<>(); for (PopulationFrequency pf: populationFrequencies) { popFreqList.add(pf.getStudy() + "_" + pf.getPopulation() + ":" + DECIMAL_FORMAT_7.format(pf.getAltAlleleFreq()));
PhoenixHelper.Column column = VariantPhoenixHelper.getPopulationFrequencyColumn(pf.getStudy(), pf.getPopulation()); map.put(column, Arrays.asList(pf.getRefAlleleFreq(), pf.getAltAlleleFreq()));
if (populationFrequencies != null) { stringBuilder.append(populationFrequencies.stream() .map(t -> t.getPopulation() + ":" + t.getAltAlleleFreq()) .collect(Collectors.joining(",")));
List<Document> list = (List) object.get(POPULATION_FREQUENCIES_FIELD); for (Document dbObject : list) { populationFrequencies.add(new PopulationFrequency( getDefault(dbObject, POPULATION_FREQUENCY_STUDY_FIELD, ""), getDefault(dbObject, POPULATION_FREQUENCY_POP_FIELD, ""),
Map<String, Float> populationFrequencies = new HashMap<>(); for (PopulationFrequency populationFrequency : variantAnnotation.getPopulationFrequencies()) { populationFrequencies.put("popFreq" + VariantSearchUtils.FIELD_SEPARATOR + populationFrequency.getStudy() + VariantSearchUtils.FIELD_SEPARATOR + populationFrequency.getPopulation(), populationFrequency.getAltAlleleFreq());
@Test public void testGetAllVariants_populationFrequencyRef() { final PopulationFrequency defaultPopulation = new PopulationFrequency(null, null, null, null, 0F, 0F, 0F, 0F, 0F); Query query; query = new Query() .append(ANNOT_POPULATION_REFERENCE_FREQUENCY.key(), GENOMES_PHASE_3 + ":AFR<=0.05001"); queryResult = query(query, options); assertThat(queryResult, everyResult(allVariants, hasAnnotation(hasPopRefFreq(GENOMES_PHASE_3, "AFR", lte(0.05001))))); }
@Override public PopulationFrequency build() { try { PopulationFrequency record = new PopulationFrequency(); record.study = fieldSetFlags()[0] ? this.study : (java.lang.String) defaultValue(fields()[0]); record.population = fieldSetFlags()[1] ? this.population : (java.lang.String) defaultValue(fields()[1]); record.refAllele = fieldSetFlags()[2] ? this.refAllele : (java.lang.String) defaultValue(fields()[2]); record.altAllele = fieldSetFlags()[3] ? this.altAllele : (java.lang.String) defaultValue(fields()[3]); record.refAlleleFreq = fieldSetFlags()[4] ? this.refAlleleFreq : (java.lang.Float) defaultValue(fields()[4]); record.altAlleleFreq = fieldSetFlags()[5] ? this.altAlleleFreq : (java.lang.Float) defaultValue(fields()[5]); record.refHomGenotypeFreq = fieldSetFlags()[6] ? this.refHomGenotypeFreq : (java.lang.Float) defaultValue(fields()[6]); record.hetGenotypeFreq = fieldSetFlags()[7] ? this.hetGenotypeFreq : (java.lang.Float) defaultValue(fields()[7]); record.altHomGenotypeFreq = fieldSetFlags()[8] ? this.altHomGenotypeFreq : (java.lang.Float) defaultValue(fields()[8]); return record; } catch (Exception e) { throw new org.apache.avro.AvroRuntimeException(e); } } }