protected void solveIntergenic(List<ConsequenceType> consequenceTypeList, boolean isIntergenic) { if (consequenceTypeList.size() == 0 && isIntergenic) { HashSet<String> intergenicName = new HashSet<>(); intergenicName.add(VariantAnnotationUtils.INTERGENIC_VARIANT); ConsequenceType consequenceType = new ConsequenceType(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(intergenicName)); consequenceTypeList.add(consequenceType); } }
protected void solveIntergenic(List<ConsequenceType> consequenceTypeList, boolean isIntergenic) { if (consequenceTypeList.size() == 0 && isIntergenic) { HashSet<String> intergenicName = new HashSet<>(); intergenicName.add(VariantAnnotationUtils.INTERGENIC_VARIANT); ConsequenceType consequenceType = new ConsequenceType(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(intergenicName)); consequenceTypeList.add(consequenceType); } }
ConsequenceType consequenceType = new ConsequenceType(); SequenceOntologyTerm sequenceOntologyTerm = newSequenceOntologyTerm(VariantAnnotationUtils.REGULATORY_REGION_VARIANT); consequenceType.setSequenceOntologyTerms(Collections.singletonList(sequenceOntologyTerm)); consequenceTypeList.add(consequenceType); if (overlapsRegulatoryRegion[1]) { consequenceType = new ConsequenceType(); sequenceOntologyTerm = newSequenceOntologyTerm(VariantAnnotationUtils.TF_BINDING_SITE_VARIANT); consequenceType.setSequenceOntologyTerms(Collections.singletonList(sequenceOntologyTerm)); consequenceTypeList.add(consequenceType);
ConsequenceType consequenceType = new ConsequenceType(); SequenceOntologyTerm sequenceOntologyTerm = newSequenceOntologyTerm(VariantAnnotationUtils.REGULATORY_REGION_VARIANT); consequenceType.setSequenceOntologyTerms(Collections.singletonList(sequenceOntologyTerm)); consequenceTypeList.add(consequenceType); if (overlapsRegulatoryRegion[1]) { consequenceType = new ConsequenceType(); sequenceOntologyTerm = newSequenceOntologyTerm(VariantAnnotationUtils.TF_BINDING_SITE_VARIANT); consequenceType.setSequenceOntologyTerms(Collections.singletonList(sequenceOntologyTerm)); consequenceTypeList.add(consequenceType);
case VariantAnnotationUtils.LRG_GENE: // LRG_gene solveCodingNegativeTranscript(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break; consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break;
case VariantAnnotationUtils.LRG_GENE: // LRG_gene solveCodingPositiveTranscript(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break; consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break;
case VariantAnnotationUtils.LRG_GENE: // LRG_gene solveCodingNegativeTranscript(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break; consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break;
case VariantAnnotationUtils.LRG_GENE: // LRG_gene solveCodingPositiveTranscript(); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break; consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); break;
private void parseRemainingFields(ConsequenceType consequenceType, String[] lineFields) { consequenceType.setEnsemblGeneId(lineFields[3]); // fill Ensembl gene id consequenceType.setEnsemblTranscriptId(lineFields[4]); // fill Ensembl transcript id ProteinVariantAnnotation proteinVariantAnnotation = new ProteinVariantAnnotation(); if(!lineFields[7].equals("-")) { consequenceType.setCdnaPosition(parseStringInterval(lineFields[7])); // fill cdna position } if(!lineFields[8].equals("-")) { consequenceType.setCdsPosition(parseStringInterval(lineFields[8])); // fill cds position } if(!lineFields[9].equals("-")) { proteinVariantAnnotation.setPosition(parseStringInterval(lineFields[9])); // fill aa position } if(!lineFields[10].equals("-")) { String parts[] = lineFields[10].split("/"); if(parts.length == 2) { proteinVariantAnnotation.setReference(parts[0]); // fill aa change proteinVariantAnnotation.setAlternate(parts[1]); // fill aa change } } consequenceType.setProteinVariantAnnotation(proteinVariantAnnotation); consequenceType.setCodon(lineFields[11]); // fill codon change if(!lineFields[6].equals("") && !lineFields.equals("-")) { // VEP may leave this field empty consequenceType.setSequenceOntologyTerms( getSequenceOntologyTerms(Arrays.asList(lineFields[6].split(",")))); // fill so terms // consequenceType.setSoTermsFromSoNames(Arrays.asList(lineFields[6].split(","))); // fill so terms } }
consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { VariantAnnotationUtils.DOWNSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (variantStart <= transcript.getStart() && variantEnd >= transcript.getEnd()) { // Deletion - whole trans. removed SoNames.add(VariantAnnotationUtils.TRANSCRIPT_ABLATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { VariantAnnotationUtils.UPSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
SoNames.add(VariantAnnotationUtils.TRANSCRIPT_ABLATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); SoNames.add(VariantAnnotationUtils.TRANSCRIPT_ABLATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
SoNames.add(VariantAnnotationUtils.TRANSCRIPT_ABLATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); SoNames.add(VariantAnnotationUtils.TRANSCRIPT_ABLATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { VariantAnnotationUtils.DOWNSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (variantStart <= transcript.getStart() && variantEnd >= transcript.getEnd()) { // whole trans. affected SoNames.add(VariantAnnotationUtils.TRANSCRIPT_AMPLIFICATION); consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); } else if (regionsOverlap(transcript.getStart(), transcript.getEnd(), variantStart, variantEnd)) { VariantAnnotationUtils.UPSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
VariantAnnotationUtils.DOWNSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
VariantAnnotationUtils.DOWNSTREAM_GENE_VARIANT); if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
if (SoNames.size() > 0) { // Variant does not overlap gene region, just may have upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType); if (SoNames.size() > 0) { // Variant does not overlap gene region, just has upstream/downstream annotations consequenceType.setSequenceOntologyTerms(getSequenceOntologyTerms(SoNames)); consequenceTypeList.add(consequenceType);
@Override public List<VariantAnnotation> annotate(List<Variant> variants) throws VariantAnnotatorException { if (fail) { throw new VariantAnnotatorException("Fail because reasons"); } return variants.stream().map(v -> { VariantAnnotation a = new VariantAnnotation(); a.setChromosome(v.getChromosome()); a.setStart(v.getStart()); a.setEnd(v.getEnd()); a.setReference(v.getReference()); a.setAlternate(v.getAlternate()); a.setId("an id -- " + key); ConsequenceType ct = new ConsequenceType(); ct.setGeneName("a gene"); ct.setSequenceOntologyTerms(Collections.emptyList()); ct.setExonOverlap(Collections.emptyList()); ct.setTranscriptAnnotationFlags(Collections.emptyList()); a.setConsequenceTypes(Collections.singletonList(ct)); a.setAdditionalAttributes( Collections.singletonMap(GROUP_NAME.key(), new AdditionalAttribute(Collections.singletonMap(VARIANT_ID.key(), v.toString())))); return a; }).collect(Collectors.toList()); }