// Minimal ClinVar variant information for use in Mehari.

syntax = "proto3";

package annonars.clinvar.v1.minimal;

// Enumeration for ClinVar pathogenicity.
enum ClinicalSignificance {
    // Pathogenic.
    PATHOGENIC = 0;
    // Likely pathogenic.
    LIKELY_PATHOGENIC = 1;
    // Uncertain significance.
    UNCERTAIN_SIGNIFICANCE = 2;
    // Likely benign.
    LIKELY_BENIGN = 3;
    // Benign.
    BENIGN = 4;
}

/// Enumeration for ClinVar review status.
enum ReviewStatus {
    // "no assertion provided"
    NO_ASSERTION_PROVIDED = 0;
    // "no assertion criteria provided"
    NO_ASSERTION_CRITERIA_PROVIDED = 1;
    // "criteria provided, conflicting interpretations"
    CRITERIA_PROVIDED_CONFLICTING_INTERPRETATIONS = 2;
    // "criteria provided, single submitter"
    CRITERIA_PROVIDED_SINGLE_SUBMITTER = 3;
    // "criteria provided, multiple submitters, no conflicts"
    CRITERIA_PROVIDED_MULTIPLE_SUBMITTERS_NO_CONFLICTS = 4;
    // "reviewed by expert panel"
    REVIEWED_BY_EXPERT_PANEL = 5;
    // "practice guideline"
    PRACTICE_GUIDELINE = 6;
}

// Record for storing minimal information on ClinVar for Mehari.
message Record {
    // Genome release.
    string release = 1;
    // Chromosome name.
    string chromosome = 2;
    // 1-based start position.
    uint32 start = 3;
    // 1-based end position.
    uint32 stop = 4;
    // Reference allele bases in VCF notation.
    string reference = 5;
    // Alternative allele bases in VCF notation.
    string alternative = 6;
    // RCV accession identifier.
    string rcv = 7;
    // Clinical significance for variant.
    ClinicalSignificance clinical_significance = 8;
    // Review status.
    ReviewStatus review_status = 9;
}
