use of com.hartwig.hmftools.common.variant.VariantConsequence in project hmftools by hartwigmedical.
the class ConsequenceDeterminerTest method worksAsExpected.
@Test
public void worksAsExpected() {
final SortedSetMultimap<String, GenomeRegion> regionMap = TreeMultimap.create();
GenomeRegion testRegion = GenomeRegionFactory.create(CHROMOSOME, POSITION - 10, POSITION + 10);
regionMap.put(testRegion.chromosome(), testRegion);
final Slicer slicer = SlicerFactory.fromRegions(regionMap);
final Map<String, HmfGenomeRegion> transcriptMap = Maps.newHashMap();
transcriptMap.put(TRANSCRIPT, hmfRegion());
final ConsequenceDeterminer determiner = new ConsequenceDeterminer(slicer, transcriptMap);
final VariantConsequence rightConsequence = VariantConsequence.MISSENSE_VARIANT;
final VariantConsequence wrongConsequence = VariantConsequence.OTHER;
final ImmutableVariantAnnotation.Builder annotationBuilder = createVariantAnnotationBuilder().featureID(TRANSCRIPT).featureType(ConsequenceDeterminer.FEATURE_TYPE_TRANSCRIPT).gene(GENE).hgvsCoding(HGVS_CODING).hgvsProtein(HGVS_PROTEIN);
final VariantAnnotation rightAnnotation = annotationBuilder.consequences(Lists.newArrayList(rightConsequence)).build();
final VariantAnnotation wrongAnnotation = annotationBuilder.consequences(Lists.newArrayList(wrongConsequence)).build();
final ImmutableSomaticVariantImpl.Builder variantBuilder = SomaticVariantTestBuilderFactory.create().chromosome(CHROMOSOME).ref(REF).alt(ALT).cosmicID(COSMIC_ID).totalReadCount(TOTAL_READ_COUNT).alleleReadCount(ALLELE_READ_COUNT);
final SomaticVariant rightVariant = variantBuilder.position(POSITION).annotations(Lists.newArrayList(rightAnnotation)).build();
final SomaticVariant wrongConsequenceVariant = variantBuilder.position(POSITION).annotations(Lists.newArrayList(wrongAnnotation)).build();
final SomaticVariant wrongPositionVariant = variantBuilder.position(WRONG_POSITION).annotations(Lists.newArrayList(rightAnnotation)).build();
final List<VariantReport> findings = determiner.run(Lists.newArrayList(rightVariant, wrongConsequenceVariant, wrongPositionVariant)).findings();
assertEquals(1, findings.size());
final VariantReport report = findings.get(0);
assertEquals(GENE, report.gene());
assertEquals(CHROMOSOME + ":" + POSITION, report.variant().chromosomePosition());
assertEquals(REF, report.variant().ref());
assertEquals(ALT, report.variant().alt());
assertEquals(TRANSCRIPT + "." + TRANSCRIPT_VERSION, report.transcript());
assertEquals(HGVS_CODING, report.hgvsCoding());
assertEquals(HGVS_PROTEIN, report.hgvsProtein());
assertEquals(rightConsequence.readableSequenceOntologyTerm(), report.consequence());
assertEquals(COSMIC_ID, report.cosmicID());
assertEquals(TOTAL_READ_COUNT, report.totalReadCount());
assertEquals(ALLELE_READ_COUNT, report.alleleReadCount());
}
use of com.hartwig.hmftools.common.variant.VariantConsequence in project hmftools by hartwigmedical.
the class VariantAnnotationFactory method toConsequences.
@NotNull
private static List<VariantConsequence> toConsequences(@NotNull final List<String> effects) {
final List<VariantConsequence> consequences = Lists.newArrayList();
for (final String part : effects) {
boolean found = false;
for (final VariantConsequence consequence : VariantConsequence.values()) {
if (consequence.isParentTypeOf(part)) {
found = true;
consequences.add(consequence);
}
}
if (!found) {
LOGGER.warn("Could not resolve consequence: " + part);
consequences.add(VariantConsequence.OTHER);
}
}
return consequences;
}
Aggregations