pub mod gene_impact {
#[derive(Debug, serde::Deserialize, serde::Serialize, PartialEq, Eq, Hash)]
pub enum Impact {
#[serde(rename = "3_prime_UTR_variant")]
ThreePrimeUtrVariant,
#[serde(rename = "5_prime_UTR_variant")]
FivePrimeUtrVariant,
#[serde(rename = "downstream_gene_variant")]
DownstreamGeneVariant,
#[serde(rename = "frameshift_variant")]
FrameshiftVariant,
#[serde(rename = "inframe_indel")]
InframeIndel,
#[serde(rename = "start_lost")]
StartLost,
#[serde(rename = "intron_variant")]
IntronVariant,
#[serde(rename = "missense_variant")]
MissenseVariant,
#[serde(rename = "non_coding_transcript_variant")]
NonCodingTranscriptVariant,
#[serde(rename = "stop_gained")]
StopGained,
#[serde(rename = "no_sequence_alteration")]
NoSequenceAlteration,
#[serde(rename = "splice_acceptor_variant")]
SpliceAcceptorVariant,
#[serde(rename = "splice_donor_variant")]
SpliceDonorVariant,
#[serde(rename = "stop_lost")]
StopLost,
#[serde(rename = "synonymous_variant")]
SyonymousVariant,
#[serde(rename = "upstream_gene_variant")]
UpstreamGeneVariant,
}
impl From<Impact> for crate::clinvar_genes::pbs::Impact {
fn from(val: Impact) -> Self {
match val {
Impact::ThreePrimeUtrVariant => {
crate::clinvar_genes::pbs::Impact::ThreePrimeUtrVariant
}
Impact::FivePrimeUtrVariant => {
crate::clinvar_genes::pbs::Impact::FivePrimeUtrVariant
}
Impact::DownstreamGeneVariant => {
crate::clinvar_genes::pbs::Impact::DownstreamTranscriptVariant
}
Impact::FrameshiftVariant => crate::clinvar_genes::pbs::Impact::FrameshiftVariant,
Impact::InframeIndel => crate::clinvar_genes::pbs::Impact::InframeIndel,
Impact::StartLost => crate::clinvar_genes::pbs::Impact::StartLost,
Impact::IntronVariant => crate::clinvar_genes::pbs::Impact::IntronVariant,
Impact::MissenseVariant => crate::clinvar_genes::pbs::Impact::MissenseVariant,
Impact::NonCodingTranscriptVariant => {
crate::clinvar_genes::pbs::Impact::NonCodingTranscriptVariant
}
Impact::StopGained => crate::clinvar_genes::pbs::Impact::StopGained,
Impact::NoSequenceAlteration => {
crate::clinvar_genes::pbs::Impact::NoSequenceAlteration
}
Impact::SpliceAcceptorVariant => {
crate::clinvar_genes::pbs::Impact::SpliceAcceptorVariant
}
Impact::SpliceDonorVariant => crate::clinvar_genes::pbs::Impact::SpliceDonorVariant,
Impact::StopLost => crate::clinvar_genes::pbs::Impact::StopLost,
Impact::SyonymousVariant => crate::clinvar_genes::pbs::Impact::SynonymousVariant,
Impact::UpstreamGeneVariant => {
crate::clinvar_genes::pbs::Impact::UpstreamTranscriptVariant
}
}
}
}
#[derive(Debug, serde::Deserialize, serde::Serialize, PartialEq, Eq, Hash)]
pub enum ClinicalSignificance {
#[serde(rename = "benign")]
Benign,
#[serde(rename = "likely benign")]
LikelyBenign,
#[serde(rename = "uncertain significance")]
UncertainSignificance,
#[serde(rename = "likely pathogenic")]
LikelyPathogenic,
#[serde(rename = "pathogenic")]
Pathogenic,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct Record {
pub hgnc: String,
pub counts: indexmap::IndexMap<Impact, Vec<u32>>,
}
}
pub mod counts_by_freq {
#[derive(Debug, serde::Deserialize, serde::Serialize, PartialEq, Eq, Hash)]
pub enum CoarseClinicalSignificance {
#[serde(rename = "benign")]
Benign,
#[serde(rename = "uncertain")]
Uncertain,
#[serde(rename = "pathogenic")]
Pathogenic,
}
impl From<CoarseClinicalSignificance> for crate::clinvar_genes::pbs::CoarseClinicalSignificance {
fn from(val: CoarseClinicalSignificance) -> Self {
match val {
CoarseClinicalSignificance::Benign => {
crate::clinvar_genes::pbs::CoarseClinicalSignificance::CoarseBenign
}
CoarseClinicalSignificance::Uncertain => {
crate::clinvar_genes::pbs::CoarseClinicalSignificance::CoarseUncertain
}
CoarseClinicalSignificance::Pathogenic => {
crate::clinvar_genes::pbs::CoarseClinicalSignificance::CoarsePathogenic
}
}
}
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct Record {
pub hgnc: String,
pub counts: indexmap::IndexMap<CoarseClinicalSignificance, Vec<u32>>,
}
}