// virology.sy -- All major human pathogenic viruses as native Scyla.
//
// Sources:
//   Fields BN et al. Fields Virology, 7th ed, Lippincott, 2021.
//   Murray PR et al. Medical Microbiology, 9th ed, Elsevier, 2021.
//   Knipe DM, Howley PM. Fields Virology, 6th ed, Lippincott, 2013.
//   Flint SJ et al. Principles of Virology, 4th ed, ASM Press, 2015.
//   De Clercq E, Li G. Clin Microbiol Rev 29:695-747, 2016 (antivirals).
//
// Marjorie McCubbins + Aether, April 2026
// Patent pending: 64/034,536


// ═══════════════════════════════════════════════════════════════
// STRUCTS
// ═══════════════════════════════════════════════════════════════

struct Virus {
    address: Int,
    name: String,
    abbreviation: String,
    family: String,
    subfamily: String,
    genus: String,
    genome_type: String,
    genome_size_kb: Float,
    baltimore_class: Int,
    envelope: Bool,
    capsid_symmetry: String,
    tropism: String,
    replication_site: String,
    transmission: String,
    incubation_days_min: Int,
    incubation_days_max: Int,
    diseases: String,
    diagnostics: String,
    treatment: String,
    vaccine_available: Bool,
    bsl_level: Int,
    notifiable: Bool,
    citation: String,
}

struct Antiviral {
    name: String,
    drug_class: String,
    mechanism: String,
    molecular_target: String,
    spectrum: String,
    route: String,
    fda_approved: Bool,
    citation: String,
}

struct ReplicationStep {
    step_number: Int,
    phase: String,
    description: String,
}

struct BaltimoreClass {
    class_number: Int,
    genome_description: String,
    replication_strategy: String,
    examples: String,
}


// ═══════════════════════════════════════════════════════════════
// CONSTRUCTOR HELPERS
// ═══════════════════════════════════════════════════════════════

fn vr(addr: Int, nm: String, abbr: String, fam: String, subfam: String, gen: String, gt: String, gs: Float, bc: Int, env: Bool, cap: String, trop: String, rep: String, trans: String, imin: Int, imax: Int, dis: String, diag: String, tx: String, vax: Bool, bsl: Int, notif: Bool, cite: String) -> Virus {
    return Virus { address: addr, name: nm, abbreviation: abbr, family: fam, subfamily: subfam, genus: gen, genome_type: gt, genome_size_kb: gs, baltimore_class: bc, envelope: env, capsid_symmetry: cap, tropism: trop, replication_site: rep, transmission: trans, incubation_days_min: imin, incubation_days_max: imax, diseases: dis, diagnostics: diag, treatment: tx, vaccine_available: vax, bsl_level: bsl, notifiable: notif, citation: cite }
}

fn av(nm: String, dc: String, mech: String, tgt: String, spec: String, rt: String, fda: Bool, cite: String) -> Antiviral {
    return Antiviral { name: nm, drug_class: dc, mechanism: mech, molecular_target: tgt, spectrum: spec, route: rt, fda_approved: fda, citation: cite }
}

fn rstep(sn: Int, ph: String, desc: String) -> ReplicationStep {
    return ReplicationStep { step_number: sn, phase: ph, description: desc }
}

fn bclass(cn: Int, gd: String, rs: String, ex: String) -> BaltimoreClass {
    return BaltimoreClass { class_number: cn, genome_description: gd, replication_strategy: rs, examples: ex }
}

fn unknown_virus() -> Virus {
    return vr(0, "Unknown", "", "", "", "", "", 0.0, 0, false, "", "", "", "", 0, 0, "", "", "", false, 0, false, "")
}

fn unknown_antiviral() -> Antiviral {
    return av("Unknown", "", "", "", "", "", false, "")
}


// ═══════════════════════════════════════════════════════════════
// SECTION ONE: DNA VIRUSES -- HERPESVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Herpesviridae: large dsDNA viruses, enveloped, icosahedral capsid.
// All establish lifelong latency. Eight human herpesviruses (HHV-1
// through HHV-8). Replication in nucleus. Encode their own DNA
// polymerase (target for acyclovir and ganciclovir).
//
// Fields Virology 7th ed, Chapters 62-70.
// Murray Medical Microbiology 9th ed, Chapter 46.

fn virus_hsv1() -> Virus {
    return vr(1, "Herpes Simplex Virus type 1", "HSV-1", "Herpesviridae", "Alphaherpesvirinae", "Simplexvirus", "dsDNA", 152.0, 1, true, "icosahedral", "mucosal epithelial cells and sensory neurons (trigeminal ganglion latency)", "nucleus", "direct contact with oral secretions; vertical transmission rare", 2, 12, "oral herpes (cold sores), herpes keratitis, herpes encephalitis (temporal lobe), herpetic whitlow, erythema multiforme", "PCR of CSF or lesion swab (gold standard); Tzanck smear (multinucleated giant cells); viral culture; type-specific IgG serology (HSV-1 gG-1)", "acyclovir, valacyclovir, famciclovir; IV acyclovir for encephalitis; foscarnet for resistant strains", true, 2, false, "Fields Virology 7th ed Ch 62; Whitley RJ. N Engl J Med 313:749-756, 1986")
}

fn virus_hsv2() -> Virus {
    return vr(2, "Herpes Simplex Virus type 2", "HSV-2", "Herpesviridae", "Alphaherpesvirinae", "Simplexvirus", "dsDNA", 155.0, 1, true, "icosahedral", "genital mucosal epithelium and sacral dorsal root ganglia (S2-S5 latency)", "nucleus", "sexual contact; vertical transmission during delivery (neonatal herpes)", 2, 12, "genital herpes (recurrent ulcerative lesions), neonatal herpes (disseminated/CNS/skin-eye-mouth), aseptic meningitis (Mollaret recurrent meningitis)", "PCR of lesion; viral culture; type-specific IgG (HSV-2 gG-2); Western blot confirmatory", "acyclovir, valacyclovir, famciclovir; suppressive therapy reduces transmission ~50%; IV acyclovir for neonatal herpes", false, 2, false, "Fields Virology 7th ed Ch 62; Corey L et al. N Engl J Med 350:11-20, 2004")
}

fn virus_vzv() -> Virus {
    return vr(3, "Varicella-Zoster Virus", "VZV", "Herpesviridae", "Alphaherpesvirinae", "Varicellovirus", "dsDNA", 125.0, 1, true, "icosahedral", "respiratory epithelium, T cells (viremia), skin keratinocytes, dorsal root and cranial nerve ganglia (latency)", "nucleus", "airborne (aerosol) and direct contact with vesicular fluid; highly contagious (R0 ~10-12)", 10, 21, "varicella (chickenpox: vesicular rash in different stages), herpes zoster (shingles: dermatomal vesicular rash), postherpetic neuralgia, Ramsay Hunt syndrome (CN VII), disseminated zoster in immunocompromised", "PCR of vesicle fluid; DFA of lesion scraping; IgM/IgG serology; viral culture (slow)", "acyclovir, valacyclovir, famciclovir; IV acyclovir for severe/disseminated; gabapentin/pregabalin for postherpetic neuralgia", true, 2, true, "Fields Virology 7th ed Ch 63; Arvin AM. Clin Microbiol Rev 9:361-381, 1996")
}

fn virus_ebv() -> Virus {
    return vr(4, "Epstein-Barr Virus", "EBV", "Herpesviridae", "Gammaherpesvirinae", "Lymphocryptovirus", "dsDNA", 172.0, 1, true, "icosahedral", "B lymphocytes (CD21/CR2 receptor) and nasopharyngeal epithelium; latency in memory B cells", "nucleus", "oral secretions (saliva); rarely blood transfusion", 30, 50, "infectious mononucleosis (fever, pharyngitis, lymphadenopathy, splenomegaly, atypical lymphocytes), Burkitt lymphoma (endemic), nasopharyngeal carcinoma, Hodgkin lymphoma, PTLD, oral hairy leukoplakia", "heterophile antibody (Monospot); EBV serology (VCA IgM/IgG, EA IgG, EBNA IgG); quantitative PCR for viral load", "supportive for mononucleosis (avoid contact sports); rituximab plus reduced immunosuppression for PTLD; no approved antiviral", false, 2, false, "Fields Virology 7th ed Ch 66; Thorley-Lawson DA. Nat Rev Immunol 1:75-82, 2001")
}

fn virus_cmv() -> Virus {
    return vr(5, "Cytomegalovirus", "CMV", "Herpesviridae", "Betaherpesvirinae", "Cytomegalovirus", "dsDNA", 236.0, 1, true, "icosahedral", "monocytes/macrophages, endothelial cells, epithelial cells; latency in CD34+ hematopoietic progenitors", "nucleus", "bodily fluids (saliva, urine, breast milk, blood); transplacental (most common congenital infection); organ transplant", 28, 60, "congenital CMV (SNHL, microcephaly, periventricular calcifications, hepatosplenomegaly), mononucleosis-like in adults, CMV retinitis in AIDS (CD4 <50), CMV colitis/esophagitis, CMV pneumonitis (transplant), owl-eye intranuclear inclusions", "quantitative PCR; shell vial culture; pp65 antigenemia assay; histology (owl-eye inclusions); CMV IgM/IgG for screening", "ganciclovir/valganciclovir (first-line); foscarnet (second-line); cidofovir (third-line); letermovir (prophylaxis in transplant); maribavir (refractory)", false, 2, false, "Fields Virology 7th ed Ch 64; Griffiths P et al. J Pathol 235:288-297, 2015")
}

fn virus_hhv6() -> Virus {
    return vr(6, "Human Herpesvirus 6", "HHV-6", "Herpesviridae", "Betaherpesvirinae", "Roseolovirus", "dsDNA", 160.0, 1, true, "icosahedral", "CD4+ T lymphocytes, monocytes, neural cells; HHV-6A neurotropic, HHV-6B ubiquitous; ciHHV-6 in 1% of population", "nucleus", "saliva; nearly universal infection by age 2", 5, 15, "exanthem subitum (roseola infantum): high fever 3-5 days then maculopapular rash as fever breaks, febrile seizures, encephalitis (post-transplant), DRESS syndrome reactivation", "PCR (distinguish from ciHHV-6 by quantitative threshold); serology less useful due to universal seropositivity", "ganciclovir or foscarnet for severe reactivation/encephalitis; supportive for roseola", false, 2, false, "Fields Virology 7th ed Ch 65; De Bolle L et al. Clin Microbiol Rev 18:217-245, 2005")
}

fn virus_hhv7() -> Virus {
    return vr(7, "Human Herpesvirus 7", "HHV-7", "Herpesviridae", "Betaherpesvirinae", "Roseolovirus", "dsDNA", 145.0, 1, true, "icosahedral", "CD4+ T lymphocytes; latency in T cells", "nucleus", "saliva; nearly universal by age 5", 5, 15, "roseola-like illness, pityriasis rosea (debated), febrile seizures; may trigger HHV-6 reactivation", "PCR; serology", "none established; foscarnet for severe cases", false, 2, false, "Fields Virology 7th ed Ch 65; Black JB, Pellett PE. Rev Med Virol 9:245-262, 1999")
}

fn virus_hhv8() -> Virus {
    return vr(8, "Human Herpesvirus 8 / Kaposi Sarcoma Herpesvirus", "HHV-8/KSHV", "Herpesviridae", "Gammaherpesvirinae", "Rhadinovirus", "dsDNA", 165.0, 1, true, "icosahedral", "endothelial cells, B lymphocytes; encodes vFLIP and viral cyclin D oncoproteins", "nucleus", "saliva (endemic areas); sexual contact; organ transplant", 14, 180, "Kaposi sarcoma (vascular tumor, AIDS-defining), primary effusion lymphoma, multicentric Castleman disease", "PCR of blood/tissue; LANA immunohistochemistry on biopsy; LANA IgG serology", "ART restores immune control (AIDS-KS); liposomal doxorubicin, paclitaxel; pomalidomide; rituximab for MCD", false, 2, false, "Fields Virology 7th ed Ch 67; Chang Y et al. Science 266:1865-1869, 1994")
}


// ═══════════════════════════════════════════════════════════════
// SECTION TWO: DNA VIRUSES -- PAPILLOMAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Small non-enveloped dsDNA. Icosahedral (72 pentamers of L1).
// >200 genotypes. Tropism for squamous epithelium. High-risk
// types encode E6 (degrades p53) and E7 (inactivates Rb).
//
// Fields Virology 7th ed, Chapter 71.

fn virus_hpv16() -> Virus {
    return vr(9, "Human Papillomavirus type 16", "HPV-16", "Papillomaviridae", "Firstpapillomavirinae", "Alphapapillomavirus", "dsDNA", 7.9, 1, false, "icosahedral", "basal keratinocytes of stratified squamous epithelium (cervical transformation zone)", "nucleus (episomal, integrates in cancer)", "sexual contact (most common STI); vertical rare", 30, 730, "cervical intraepithelial neoplasia (CIN), invasive cervical carcinoma (~50%), oropharyngeal SCC (p16+), anal cancer, penile cancer, vaginal/vulvar cancer", "Pap smear; HPV DNA testing (cobas, Hybrid Capture 2); p16/Ki-67 dual stain; genotyping; colposcopy with biopsy", "CIN: LEEP/LLETZ, cryotherapy, conization; cancer: surgery plus cisplatin chemoradiation; pembrolizumab for recurrent; no antiviral clears infection", true, 2, false, "Fields Virology 7th ed Ch 71; Munoz N et al. N Engl J Med 348:518-527, 2003")
}

fn virus_hpv18() -> Virus {
    return vr(10, "Human Papillomavirus type 18", "HPV-18", "Papillomaviridae", "Firstpapillomavirinae", "Alphapapillomavirus", "dsDNA", 7.9, 1, false, "icosahedral", "basal keratinocytes; preferentially causes cervical adenocarcinoma", "nucleus (integrates in cancer)", "sexual contact", 30, 730, "cervical adenocarcinoma (~20% of cervical cancers), other anogenital cancers", "HPV genotyping; Pap smear; HPV DNA testing; p16 immunohistochemistry", "LEEP for precancer; surgery plus chemoradiation for invasive; Gardasil 9 covers HPV-18", true, 2, false, "Fields Virology 7th ed Ch 71; de Sanjose S et al. Lancet Oncol 11:1048-1056, 2010")
}

fn virus_hpv6_11() -> Virus {
    return vr(11, "Human Papillomavirus types 6 and 11", "HPV-6/11", "Papillomaviridae", "Firstpapillomavirinae", "Alphapapillomavirus", "dsDNA", 7.9, 1, false, "icosahedral", "basal keratinocytes of anogenital and laryngeal epithelium", "nucleus (episomal, does not integrate)", "sexual contact; vertical (recurrent respiratory papillomatosis in children)", 30, 180, "anogenital warts (condylomata acuminata, >90% by HPV-6/11), recurrent respiratory papillomatosis (laryngeal papillomas)", "clinical diagnosis of warts; biopsy if atypical; HPV typing not routine for warts", "cryotherapy, imiquimod (TLR7 agonist), podophyllotoxin, trichloroacetic acid, surgical excision; cidofovir intralesional for RRP", true, 2, false, "Fields Virology 7th ed Ch 71; Greer CE et al. J Clin Microbiol 33:2058-2063, 1995")
}


// ═══════════════════════════════════════════════════════════════
// SECTION THREE: DNA VIRUSES -- ADENOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Non-enveloped dsDNA, icosahedral with fibers. >50 serotypes.
// Extremely stable on surfaces. Used as vaccine vectors (J&J).
//
// Fields Virology 7th ed, Chapter 56.

fn virus_adenovirus() -> Virus {
    return vr(12, "Human Adenovirus", "HAdV", "Adenoviridae", "", "Mastadenovirus", "dsDNA", 36.0, 1, false, "icosahedral", "respiratory epithelium (types 1-7), conjunctival epithelium (types 8,19,37), intestinal epithelium (types 40,41), bladder (type 11)", "nucleus", "respiratory droplets, fecal-oral, fomites, contaminated water", 2, 14, "acute respiratory disease (pharyngitis, pneumonia, croup), pharyngoconjunctival fever, epidemic keratoconjunctivitis, gastroenteritis (types 40/41 in children), hemorrhagic cystitis in transplant", "PCR; viral culture; rapid antigen detection; serology (complement fixation)", "supportive (self-limiting in immunocompetent); cidofovir or brincidofovir for severe disease in immunocompromised", true, 2, false, "Fields Virology 7th ed Ch 56; Lion T. Clin Microbiol Rev 27:441-462, 2014")
}


// ═══════════════════════════════════════════════════════════════
// SECTION FOUR: DNA VIRUSES -- HEPADNAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// HBV: partially dsDNA with reverse transcriptase (Baltimore VII).
// Enveloped. Hepatocyte tropism via NTCP receptor. cccDNA persists
// in nucleus as minichromosome enabling chronic infection.
//
// Fields Virology 7th ed, Chapter 73.

fn virus_hbv() -> Virus {
    return vr(13, "Hepatitis B Virus", "HBV", "Hepadnaviridae", "", "Orthohepadnavirus", "partially_dsDNA_RT", 3.2, 7, true, "icosahedral", "hepatocytes via NTCP/SLC10A1 receptor; cccDNA persists in nucleus as minichromosome", "nucleus (cccDNA) and cytoplasm (reverse transcription)", "blood/body fluids: percutaneous (needlestick, IVDU), sexual, vertical (perinatal, 90% chronicity); NOT fecal-oral", 45, 180, "acute hepatitis B (jaundice, fatigue), chronic hepatitis B (>6 months HBsAg+), cirrhosis, hepatocellular carcinoma (even without cirrhosis via HBx integration), membranous nephropathy, polyarteritis nodosa", "HBsAg, anti-HBs, HBeAg, anti-HBe, anti-HBc IgM/IgG, HBV DNA viral load (PCR), FibroScan for fibrosis", "tenofovir (TDF/TAF) or entecavir (first-line NAs); pegylated IFN-alpha (finite course); goal: functional cure (HBsAg loss); HCC surveillance q6mo", true, 2, true, "Fields Virology 7th ed Ch 73; Dienstag JL. N Engl J Med 359:1486-1500, 2008")
}


// ═══════════════════════════════════════════════════════════════
// SECTION FIVE: DNA VIRUSES -- POXVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Largest DNA viruses. Brick-shaped. Unique: replicate in
// cytoplasm (encode own DNA-dependent RNA polymerase). Variola
// eradicated 1980. Mpox: endemic Africa, global outbreak 2022.
//
// Fields Virology 7th ed, Chapter 80.

fn virus_variola() -> Virus {
    return vr(14, "Variola virus (Smallpox)", "VARV", "Poxviridae", "Chordopoxvirinae", "Orthopoxvirus", "dsDNA", 186.0, 1, true, "brick-shaped (complex)", "respiratory epithelium (initial), then macrophages/dendritic cells (viremia), skin (synchronous deep-seated pustular rash)", "cytoplasm (encodes own DNA-dependent RNA polymerase)", "respiratory droplets (close contact); fomites (crusted lesions on clothing/bedding); highly contagious", 7, 17, "smallpox: prodromal fever then synchronous centrifugal rash (macules to papules to vesicles to deep pustules to crusts), 30% case fatality (variola major), hemorrhagic smallpox (nearly 100% fatal)", "clinical (eradicated, any suspected case is emergency); electron microscopy (brick-shaped); PCR at CDC/USAMRIID only; Guarnieri bodies on histology", "tecovirimat (TPOXX, approved 2018); cidofovir; brincidofovir; vaccinia immune globulin (VIG); supportive care", true, 4, true, "Fields Virology 7th ed Ch 80; Henderson DA et al. Smallpox as a Biological Weapon. JAMA 281:2127-2137, 1999")
}

fn virus_mpox() -> Virus {
    return vr(15, "Monkeypox virus (Mpox)", "MPXV", "Poxviridae", "Chordopoxvirinae", "Orthopoxvirus", "dsDNA", 197.0, 1, true, "brick-shaped (complex)", "skin, lymph nodes, respiratory epithelium", "cytoplasm", "close/intimate contact with lesions or body fluids; respiratory (prolonged face-to-face); fomites; sexual contact (2022 outbreak, MSM disproportionately affected)", 5, 21, "fever, lymphadenopathy (distinguishes from smallpox), then rash (macules to papules to vesicles to pustules to crusts), genital/perianal lesions common in 2022 outbreak, proctitis", "PCR of lesion swab (orthopoxvirus then MPXV-specific); clinical; electron microscopy", "tecovirimat (TPOXX); supportive; cidofovir/brincidofovir for severe; vaccinia immune globulin", true, 3, true, "Fields Virology 7th ed Ch 80; WHO Mpox factsheet 2023")
}

// Parvovirus B19
fn virus_parvob19() -> Virus {
    return vr(16, "Parvovirus B19", "B19V", "Parvoviridae", "Parvovirinae", "Erythroparvovirus", "ssDNA", 5.6, 2, false, "icosahedral", "erythroid progenitor cells (P antigen/globoside receptor); requires actively dividing cells", "nucleus", "respiratory droplets; blood products; transplacental", 4, 14, "erythema infectiosum (fifth disease: slapped cheek rash in children), transient aplastic crisis (sickle cell patients), pure red cell aplasia (immunocompromised), hydrops fetalis (fetal infection), polyarthropathy (adults, especially women)", "B19 IgM/IgG serology; PCR (immunocompromised may not make antibodies); reticulocyte count", "supportive; IVIG for chronic infection in immunocompromised; transfusion for aplastic crisis; no antiviral", false, 2, false, "Fields Virology 7th ed Ch 58; Young NS, Brown KE. N Engl J Med 350:586-597, 2004")
}

// JC Virus
fn virus_jcv() -> Virus {
    return vr(17, "JC Polyomavirus", "JCPyV", "Polyomaviridae", "", "Betapolyomavirus", "dsDNA", 5.1, 1, false, "icosahedral", "kidney epithelium (latency), oligodendrocytes (PML)", "nucleus", "respiratory or fecal-oral; ~70% seropositive by adulthood; reactivation in immunosuppression", 0, 0, "progressive multifocal leukoencephalopathy (PML): demyelinating disease in severe immunosuppression (AIDS CD4 <200, natalizumab, rituximab), multifocal white matter lesions, no enhancement", "MRI (multifocal non-enhancing white matter lesions); CSF JCV PCR; brain biopsy (SV40 IHC)", "restore immune function (ART for HIV, stop natalizumab/rituximab); no proven antiviral; pembrolizumab (case reports); mirtazapine (debated)", false, 2, false, "Fields Virology 7th ed Ch 59; Tan CS, Koralnik IJ. Lancet Neurol 9:425-437, 2010")
}

// =========================================================
// RNA VIRUSES -- ORTHOMYXOVIRIDAE (Influenza)
// =========================================================

fn virus_influenza_a() -> Virus {
    return vr(18, "Influenza A virus", "IAV", "Orthomyxoviridae", "", "Alphainfluenzavirus", "negative-sense ssRNA (segmented, 8 segments)", 13.5, 5, true, "helical (internal)", "respiratory epithelium (sialic acid receptors: alpha-2,6 human upper, alpha-2,3 avian lower)", "nucleus (unique for RNA virus; requires host splicing)", "respiratory droplets and aerosols; fomites; zoonotic (avian, swine)", 1, 4, "influenza (sudden onset fever, myalgia, headache, dry cough, malaise), primary viral pneumonia, secondary bacterial pneumonia (S. aureus, S. pneumoniae), Reye syndrome (aspirin in children), myocarditis, encephalitis", "rapid antigen (low sensitivity); RT-PCR (gold standard); viral culture; rapid molecular (Xpert Flu)", "oseltamivir (Tamiflu), zanamivir (Relenza), peramivir, baloxavir marboxil (cap-dependent endonuclease inhibitor); within 48 hours of symptom onset", true, 2, true, "Fields Virology 7th ed Ch 41; Taubenberger JK, Morens DM. Annu Rev Pathol 3:499-522, 2008")
}

fn virus_influenza_b() -> Virus {
    return vr(19, "Influenza B virus", "IBV", "Orthomyxoviridae", "", "Betainfluenzavirus", "negative-sense ssRNA (8 segments)", 14.5, 5, true, "helical", "respiratory epithelium (human only, no animal reservoir)", "nucleus", "respiratory droplets; human-to-human only", 1, 4, "influenza (similar to Flu A but generally milder), more common in children, myositis more frequent than Flu A, two lineages (Victoria, Yamagata)", "RT-PCR; rapid antigen; viral culture", "oseltamivir, zanamivir, peramivir; baloxavir; amantadine NOT effective (only Flu A M2 target)", true, 2, true, "Fields Virology 7th ed Ch 41")
}

// =========================================================
// RNA VIRUSES -- PARAMYXOVIRIDAE
// =========================================================

fn virus_measles() -> Virus {
    return vr(20, "Measles morbillivirus", "MeV", "Paramyxoviridae", "", "Morbillivirus", "negative-sense ssRNA (non-segmented)", 15.9, 5, true, "helical", "respiratory epithelium (SLAM/CD150 receptor on immune cells, nectin-4 on epithelium)", "cytoplasm", "airborne (aerosolized, remains infectious 2 hours in closed space); extremely contagious (R0 12-18, highest known)", 10, 14, "measles: prodrome (cough, coryza, conjunctivitis, Koplik spots on buccal mucosa), then maculopapular rash (starts face, spreads caudally), immunosuppression (immune amnesia), pneumonia (leading cause of death), encephalitis, SSPE (years later)", "clinical (Koplik spots pathognomonic); measles IgM; RT-PCR of throat/urine; viral culture", "supportive; vitamin A (WHO: reduces mortality 50% in deficient children); ribavirin (investigational); no specific antiviral", true, 2, true, "Fields Virology 7th ed Ch 36; Moss WJ. Lancet 390:2490-2502, 2017")
}

fn virus_rsv() -> Virus {
    return vr(21, "Respiratory Syncytial Virus", "RSV", "Paramyxoviridae", "Pneumovirinae", "Orthopneumovirus", "negative-sense ssRNA", 15.2, 5, true, "helical", "respiratory epithelium (F protein mediates fusion, forming syncytia)", "cytoplasm", "respiratory droplets, fomites (survives hours on surfaces); highly contagious", 2, 8, "bronchiolitis (number one cause in infants <1 year), pneumonia in infants and elderly, wheezing, apnea in premature neonates, otitis media, reinfection throughout life (immunity wanes)", "RT-PCR (gold standard); rapid antigen (lower sensitivity); viral culture", "supportive (supplemental O2, hydration); palivizumab (anti-F mAb, prophylaxis for high-risk infants); nirsevimab (long-acting mAb, all infants); ribavirin (rarely used); NO role for bronchodilators or steroids in bronchiolitis", true, 2, false, "Fields Virology 7th ed Ch 38; Shi T et al. Lancet 390:946-958, 2017")
}

// =========================================================
// RNA VIRUSES -- FLAVIVIRIDAE
// =========================================================

fn virus_hcv() -> Virus {
    return vr(22, "Hepatitis C Virus", "HCV", "Flaviviridae", "", "Hepacivirus", "positive-sense ssRNA", 9.6, 4, true, "icosahedral", "hepatocytes (CD81, SR-BI, claudin-1, occludin entry factors)", "cytoplasm (ER-derived membranous web)", "blood-borne: IVDU (most common in US), needlestick, transfusion (pre-1992), sexual (rare), vertical (5%); NOT spread by casual contact", 14, 180, "acute hepatitis C (usually asymptomatic), chronic hepatitis C (75-85% chronicity), cirrhosis (20% over 20 years), hepatocellular carcinoma, cryoglobulinemia, membranoproliferative GN, porphyria cutanea tarda, non-Hodgkin lymphoma", "anti-HCV antibody (screening); HCV RNA PCR (confirms active infection); genotyping (guides treatment); FibroScan/FIB-4 for fibrosis staging", "DAAs (direct-acting antivirals): sofosbuvir/velpatasvir (Epclusa, pan-genotypic), glecaprevir/pibrentasvir (Mavyret, pan-genotypic), 8-12 weeks, >95% SVR (cure); no vaccine", false, 2, true, "Fields Virology 7th ed Ch 32; Chung RT, Baumert TF. N Engl J Med 370:2064-2074, 2014")
}

fn virus_dengue() -> Virus {
    return vr(23, "Dengue virus", "DENV", "Flaviviridae", "", "Flavivirus", "positive-sense ssRNA", 10.7, 4, true, "icosahedral", "dendritic cells, macrophages, monocytes (Fc receptor-mediated entry in secondary infection = ADE)", "cytoplasm", "Aedes aegypti and Aedes albopictus mosquitoes; urban tropical/subtropical", 3, 14, "dengue fever (breakbone fever: high fever, severe headache, retro-orbital pain, myalgia, arthralgia, rash), dengue hemorrhagic fever (plasma leakage, thrombocytopenia, hemorrhage), dengue shock syndrome; antibody-dependent enhancement (ADE) in secondary infection with different serotype", "NS1 antigen (early, days 1-7); dengue IgM/IgG; RT-PCR; CBC (leukopenia, thrombocytopenia, hemoconcentration)", "supportive (fluid resuscitation critical for DHF/DSS); NO NSAIDs (bleeding risk); NO aspirin; acetaminophen only; Dengvaxia vaccine (CYD-TDV, only for seropositive individuals)", true, 2, true, "Fields Virology 7th ed Ch 30; Bhatt S et al. Nature 496:504-507, 2013")
}

fn virus_zika() -> Virus {
    return vr(24, "Zika virus", "ZIKV", "Flaviviridae", "", "Flavivirus", "positive-sense ssRNA", 10.8, 4, true, "icosahedral", "neural progenitor cells (AXL receptor), placental cells, dermal fibroblasts", "cytoplasm", "Aedes mosquitoes; sexual transmission; vertical (transplacental); blood transfusion", 3, 14, "usually mild (fever, rash, conjunctivitis, arthralgia); congenital Zika syndrome (microcephaly, brain calcifications, ventriculomegaly, eye abnormalities), Guillain-Barre syndrome", "RT-PCR (serum/urine, first 2 weeks); Zika IgM (cross-reacts with dengue); PRNT for confirmation", "supportive; no antiviral; no vaccine approved; avoid travel to endemic areas during pregnancy", false, 2, true, "Fields Virology 7th ed Ch 30; Rasmussen SA et al. N Engl J Med 374:1981-1987, 2016")
}

// =========================================================
// RNA VIRUSES -- RETROVIRIDAE
// =========================================================

fn virus_hiv1() -> Virus {
    return vr(25, "Human Immunodeficiency Virus type 1", "HIV-1", "Retroviridae", "Orthoretrovirinae", "Lentivirus", "positive-sense ssRNA (diploid, 2 copies)", 9.7, 6, true, "conical capsid (p24)", "CD4+ T cells (CD4 + CCR5/CXCR4 coreceptors), macrophages, dendritic cells; latent reservoir in resting memory CD4+ T cells", "nucleus (integrase inserts proviral DNA into host genome)", "sexual (anal > vaginal > oral); blood (IVDU, transfusion, needlestick 0.3%); vertical (in utero, delivery, breastfeeding; <1% with ART)", 7, 28, "acute retroviral syndrome (mono-like, 2-4 weeks), clinical latency (years), AIDS (CD4 <200): opportunistic infections (PCP, toxoplasma, CMV, MAC, Cryptococcus, Candida), Kaposi sarcoma, lymphoma, wasting, dementia", "HIV-1/2 Ag/Ab combo (4th gen, p24+Ab); confirmatory HIV-1/2 differentiation; HIV RNA viral load (PCR); CD4 count; resistance genotyping", "ART (treat all regardless of CD4): bictegravir/emtricitabine/TAF (Biktarvy), dolutegravir/lamivudine (Dovato); PrEP: TDF/FTC or CAB-LA; PEP: 28 days ART within 72 hours; long-acting CAB+RPV (Cabenuva, q2mo injection)", false, 2, true, "Fields Virology 7th ed Ch 49; Barre-Sinoussi F et al. Science 220:868-871, 1983 (Nobel 2008)")
}

// =========================================================
// RNA VIRUSES -- FILOVIRIDAE
// =========================================================

fn virus_ebola() -> Virus {
    return vr(26, "Ebola virus (Zaire ebolavirus)", "EBOV", "Filoviridae", "", "Ebolavirus", "negative-sense ssRNA", 19.0, 5, true, "filamentous (shepherd crook)", "macrophages, dendritic cells, endothelial cells; NPC1 receptor for entry", "cytoplasm", "direct contact with blood/body fluids of symptomatic patients or corpses; fomites; bushmeat (fruit bats = reservoir)", 2, 21, "Ebola virus disease: sudden onset fever, severe headache, myalgia, then vomiting, diarrhea, rash, then hemorrhagic manifestations (DIC, multiorgan failure), 25-90% case fatality (average ~50%)", "RT-PCR (blood); rapid diagnostic tests (RDTs); antigen detection; IgM/IgG serology (convalescent)", "mAb cocktails: Inmazeb (atoltivimab/maftivimab/odesivimab, FDA 2020), Ebanga (ansuvimab); supportive (aggressive IV fluids, electrolytes); rVSV-ZEBOV vaccine (Ervebo, FDA 2019)", true, 4, true, "Fields Virology 7th ed Ch 34; Feldmann H et al. N Engl J Med 382:1832-1842, 2020")
}

// =========================================================
// RNA VIRUSES -- PICORNAVIRIDAE
// =========================================================

fn virus_rhinovirus() -> Virus {
    return vr(27, "Human Rhinovirus", "HRV", "Picornaviridae", "", "Enterovirus", "positive-sense ssRNA", 7.2, 4, false, "icosahedral", "upper respiratory epithelium (ICAM-1/CD54 receptor for major group, LDLR for minor group); optimal growth at 33C (nose temperature)", "cytoplasm", "respiratory droplets, fomites (survives hours on surfaces), hand-to-nose contact", 1, 3, "common cold (number one cause: rhinorrhea, sneezing, sore throat, cough, mild), asthma exacerbation trigger, sinusitis, otitis media", "clinical diagnosis; RT-PCR (multiplex respiratory panels); viral culture (33C)", "supportive (decongestants, antihistamines, NSAIDs); NO antibiotics; NO antivirals approved; hand hygiene for prevention", false, 1, false, "Fields Virology 7th ed Ch 19; Jacobs SE et al. Clin Microbiol Rev 26:135-162, 2013")
}

fn virus_poliovirus() -> Virus {
    return vr(28, "Poliovirus", "PV", "Picornaviridae", "", "Enterovirus", "positive-sense ssRNA", 7.4, 4, false, "icosahedral", "oropharyngeal and intestinal epithelium (CD155/PVR receptor), then motor neurons of anterior horn (spinal cord)", "cytoplasm", "fecal-oral (primary); respiratory (minor)", 3, 35, "asymptomatic (90-95%), abortive polio (minor illness), nonparalytic aseptic meningitis, paralytic poliomyelitis (asymmetric flaccid paralysis, 0.5-1%), bulbar polio (respiratory failure), post-polio syndrome (decades later)", "viral culture (stool, throat); RT-PCR; CSF (pleocytosis, normal glucose); intratypic differentiation (wild vs vaccine-derived)", "supportive (ventilatory support for bulbar); NO antiviral; IPV (Salk, inactivated) and OPV (Sabin, live attenuated); WHO Global Polio Eradication Initiative", true, 2, true, "Fields Virology 7th ed Ch 19; Nathanson N, Kew OM. Am J Epidemiol 172:1363-1370, 2010")
}

fn virus_hav() -> Virus {
    return vr(29, "Hepatitis A Virus", "HAV", "Picornaviridae", "", "Hepatovirus", "positive-sense ssRNA", 7.5, 4, false, "icosahedral", "hepatocytes (TIM-1/HAVCR1 receptor)", "cytoplasm", "fecal-oral: contaminated food (shellfish, produce) and water; person-to-person; MSM; travel to endemic areas", 15, 50, "acute hepatitis A (jaundice, dark urine, pale stool, fever, malaise, anorexia, RUQ pain), does NOT cause chronic hepatitis, fulminant hepatitis rare (<1%, higher in older adults and pre-existing liver disease), relapsing hepatitis (10%)", "HAV IgM (acute infection); HAV IgG (past infection/immunity); LFTs (ALT often >1000); no PCR needed clinically", "supportive; self-limiting; NO antiviral; Havrix/Vaqta vaccines (inactivated, 2-dose series); postexposure: vaccine within 2 weeks or IG", true, 2, true, "Fields Virology 7th ed Ch 18; Lemon SM et al. N Engl J Med 318:1682-1685, 2018")
}

// =========================================================
// RNA VIRUSES -- CALICIVIRIDAE / REOVIRIDAE
// =========================================================

fn virus_norovirus() -> Virus {
    return vr(30, "Norovirus", "NoV", "Caliciviridae", "", "Norovirus", "positive-sense ssRNA", 7.7, 4, false, "icosahedral", "intestinal epithelium (HBGA/histo-blood group antigens as attachment factors)", "cytoplasm", "fecal-oral, vomitus aerosols, contaminated food/water, fomites; extremely contagious (18 virions can infect); resistant to many disinfectants (non-enveloped)", 12, 48, "acute gastroenteritis (projectile vomiting, watery non-bloody diarrhea, abdominal cramps, low-grade fever, 24-72 hours duration), leading cause of foodborne illness outbreaks (cruise ships, restaurants, nursing homes), dehydration", "clinical diagnosis (acute onset vomiting + diarrhea in outbreak setting); RT-PCR of stool (gold standard); rapid antigen (lower sensitivity)", "supportive (oral rehydration, IV fluids if severe); NO antiviral; NO vaccine approved (in development); bleach for environmental decontamination (1000-5000 ppm)", false, 2, false, "Fields Virology 7th ed Ch 20; Patel MM et al. Emerg Infect Dis 14:1224-1231, 2008")
}

fn virus_rotavirus() -> Virus {
    return vr(31, "Rotavirus", "RV", "Reoviridae", "Sedoreovirinae", "Rotavirus", "dsRNA (11 segments)", 18.5, 3, false, "icosahedral (triple-layered, wheel-shaped)", "mature enterocytes of small intestinal villi (NSP4 = first viral enterotoxin described)", "cytoplasm (viroplasms)", "fecal-oral; fomites; extremely stable; nearly universal infection by age 5", 1, 3, "acute watery diarrhea in infants/young children (leading cause of severe childhood diarrhea worldwide pre-vaccine), vomiting, fever, dehydration; 200,000 deaths/year globally pre-vaccine (mostly developing countries)", "rapid antigen detection (stool EIA); RT-PCR; electron microscopy (wheel-shaped); latex agglutination", "supportive (oral/IV rehydration); NO antiviral; RotaTeq (pentavalent, 3-dose) and Rotarix (monovalent, 2-dose) live oral vaccines; small risk of intussusception (1-5 per 100,000)", true, 2, false, "Fields Virology 7th ed Ch 45; Tate JE et al. Clin Infect Dis 62:S96-S105, 2016")
}

// =========================================================
// RNA VIRUSES -- RHABDOVIRIDAE
// =========================================================

fn virus_rabies() -> Virus {
    return vr(32, "Rabies lyssavirus", "RABV", "Rhabdoviridae", "", "Lyssavirus", "negative-sense ssRNA", 12.0, 5, true, "bullet-shaped (helical nucleocapsid)", "peripheral nerves (nAChR, NCAM, p75NTR receptors), then CNS neurons (retrograde axonal transport ~50-100 mm/day), then salivary glands (centrifugal spread)", "cytoplasm", "bite of rabid animal (dog worldwide, bats/raccoons/skunks/foxes in US); rare: aerosol (bat caves), transplant", 20, 90, "prodrome (paresthesia at bite site), then furious rabies (80%: hydrophobia, aerophobia, agitation, autonomic dysfunction, encephalitis) or paralytic rabies (20%: ascending paralysis like GBS); once symptomatic, nearly 100% fatal; Negri bodies in neurons (Purkinje cells)", "DFA of nuchal skin biopsy; saliva RT-PCR; serum/CSF rabies antibodies; postmortem brain DFA (Negri bodies)", "postexposure prophylaxis (PEP): wound washing + rabies vaccine (4 doses: days 0,3,7,14) + rabies immune globulin (RIG, infiltrate wound); pre-exposure: 3-dose vaccine; Milwaukee protocol (experimental, rarely successful); once symptomatic = no proven treatment", true, 3, true, "Fields Virology 7th ed Ch 35; Hemachudha T et al. Lancet Neurol 12:498-513, 2013")
}


// ═══════════════════════════════════════════════════════════════
// SECTION SIX: DNA VIRUSES -- PARVOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Smallest DNA viruses (~5 kb ssDNA). Non-enveloped icosahedral.
// B19 tropism for erythroid progenitors (globoside/P antigen
// receptor). Replicates in actively dividing cells.
//
// Fields Virology 7th ed, Chapter 77.

fn virus_b19() -> Virus {
    return vr(16, "Parvovirus B19", "B19V", "Parvoviridae", "Parvovirinae", "Erythroparvovirus", "ssDNA", 5.6, 2, false, "icosahedral", "erythroid progenitor cells in bone marrow (globoside/P blood group antigen receptor); requires actively dividing cells for replication", "nucleus", "respiratory droplets; blood products; vertical (transplacental, risk of hydrops fetalis)", 4, 14, "erythema infectiosum (fifth disease: slapped-cheek rash in children), transient aplastic crisis (in sickle cell and chronic hemolytic anemias), pure red cell aplasia (in immunocompromised, persistent infection), hydrops fetalis (fetal infection, severe anemia), polyarthropathy (adults, especially women)", "B19 IgM (acute), IgG (immunity); PCR (essential in immunocompromised and fetal infection); reticulocyte count (absent in aplastic crisis)", "supportive; IVIG for chronic infection in immunocompromised; intrauterine transfusion for hydrops fetalis; no specific antiviral", false, 2, false, "Fields Virology 7th ed Ch 77; Young NS, Brown KE. N Engl J Med 350:586-597, 2004")
}


// ═══════════════════════════════════════════════════════════════
// SECTION SEVEN: DNA VIRUSES -- POLYOMAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Small non-enveloped dsDNA. JC virus causes PML in
// immunosuppressed (natalizumab, AIDS). BK virus causes
// nephropathy in kidney transplant.
//
// Fields Virology 7th ed, Chapter 72.

fn virus_jcv() -> Virus {
    return vr(17, "JC Polyomavirus", "JCPyV", "Polyomaviridae", "", "Betapolyomavirus", "dsDNA", 5.1, 1, false, "icosahedral", "oligodendrocytes (CNS demyelination), renal tubular epithelium (latent reservoir); enters via 5-HT2A serotonin receptor on glial cells", "nucleus", "respiratory (primary infection in childhood, asymptomatic); reactivation in immunosuppression", 0, 0, "progressive multifocal leukoencephalopathy (PML): rapidly progressive demyelination of white matter, cognitive decline, motor deficits, visual loss; associated with AIDS (CD4 <200), natalizumab (MS therapy), rituximab, transplant immunosuppression", "PCR of CSF (JC viral DNA); MRI (multifocal non-enhancing white matter lesions); brain biopsy (definitive: viral inclusions in oligodendrocytes)", "no specific antiviral; immune reconstitution (ART for HIV, discontinue natalizumab with plasma exchange); checkpoint inhibitors (pembrolizumab) investigational for PML", false, 2, false, "Fields Virology 7th ed Ch 72; Berger JR. N Engl J Med 369:1883-1885, 2013")
}

fn virus_bkv() -> Virus {
    return vr(18, "BK Polyomavirus", "BKPyV", "Polyomaviridae", "", "Betapolyomavirus", "dsDNA", 5.1, 1, false, "icosahedral", "renal tubular epithelium and urothelium; latent in kidney after primary childhood infection", "nucleus", "respiratory (primary); reactivation in immunosuppression (especially kidney transplant)", 0, 0, "BK polyomavirus-associated nephropathy (BKVAN: leading cause of kidney allograft loss due to viral nephropathy), hemorrhagic cystitis (in bone marrow transplant), ureteral stenosis", "quantitative PCR of blood (BK viremia >10000 copies/mL significant) and urine (BK viruria); decoy cells in urine cytology; kidney biopsy (SV40 immunostaining)", "reduction of immunosuppression (primary treatment); no approved antiviral; cidofovir and leflunomide used off-label with limited evidence; IVIG adjunctive", false, 2, false, "Fields Virology 7th ed Ch 72; Hirsch HH et al. N Engl J Med 347:488-491, 2002")
}


// ═══════════════════════════════════════════════════════════════
// SECTION EIGHT: RNA VIRUSES -- ORTHOMYXOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Influenza: segmented negative-sense ssRNA. Enveloped.
// Eight segments (A and B). Hemagglutinin (HA) binds sialic acid.
// Neuraminidase (NA) cleaves sialic acid for release. Antigenic
// drift (point mutations) vs antigenic shift (segment reassortment,
// type A only, pandemic potential).
//
// Fields Virology 7th ed, Chapters 41-43.

fn virus_influenza_a() -> Virus {
    return vr(19, "Influenza A virus", "IAV", "Orthomyxoviridae", "", "Alphainfluenzavirus", "negative_ssRNA_segmented", 13.5, 5, true, "helical (RNP) inside spherical/filamentous virion", "respiratory epithelium (sialic acid alpha-2,6 in humans, alpha-2,3 in birds); alveolar macrophages; pneumocytes", "nucleus (unique for RNA virus: requires host RNA pol II for cap-snatching)", "respiratory droplets and aerosols; fomites; zoonotic (avian, swine reservoirs); pandemic potential via antigenic shift", 1, 4, "seasonal influenza (fever, myalgia, cough, headache), influenza pneumonia (primary viral or secondary bacterial), ARDS, myocarditis, encephalitis, Reye syndrome (with aspirin in children), pandemic influenza (H1N1 2009, H5N1 avian)", "rapid antigen detection (low sensitivity); RT-PCR (gold standard); viral culture (research); rapid molecular assays (Xpert Flu)", "oseltamivir (Tamiflu, NA inhibitor), zanamivir (inhaled NA inhibitor), peramivir (IV NA inhibitor), baloxavir marboxil (cap-dependent endonuclease inhibitor); start within 48h of symptom onset", true, 2, true, "Fields Virology 7th ed Ch 41-43; Taubenberger JK, Morens DM. Annu Rev Pathol 3:499-522, 2008")
}

fn virus_influenza_b() -> Virus {
    return vr(20, "Influenza B virus", "IBV", "Orthomyxoviridae", "", "Betainfluenzavirus", "negative_ssRNA_segmented", 14.5, 5, true, "helical (RNP)", "respiratory epithelium (humans only reservoir, no animal reservoir)", "nucleus (cap-snatching)", "respiratory droplets; human-to-human only (no zoonotic reservoir, no antigenic shift, no pandemic potential)", 1, 4, "seasonal influenza (clinically indistinguishable from type A), can cause severe disease in children; two lineages: B/Yamagata and B/Victoria", "RT-PCR; rapid antigen; viral culture", "oseltamivir, zanamivir, peramivir; baloxavir marboxil; same treatment as influenza A", true, 2, true, "Fields Virology 7th ed Ch 41; Glezen WP et al. J Infect Dis 187:1038-1046, 2003")
}

fn virus_influenza_c() -> Virus {
    return vr(21, "Influenza C virus", "ICV", "Orthomyxoviridae", "", "Gammainfluenzavirus", "negative_ssRNA_segmented", 12.9, 5, true, "helical", "respiratory epithelium; hemagglutinin-esterase-fusion (HEF) protein instead of separate HA and NA", "nucleus", "respiratory droplets; mild upper respiratory illness; most infections in childhood", 1, 4, "mild upper respiratory infection in children; rarely causes lower respiratory disease; no epidemic potential", "RT-PCR (rarely tested clinically); serology", "supportive care; not targeted by standard influenza antivirals", false, 2, false, "Fields Virology 7th ed Ch 41; Matsuzaki Y et al. J Clin Microbiol 44:3564-3569, 2006")
}


// ═══════════════════════════════════════════════════════════════
// SECTION NINE: RNA VIRUSES -- PARAMYXOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Non-segmented negative-sense ssRNA. Enveloped. Helical
// nucleocapsid. Encode fusion (F) protein and attachment protein
// (HN, H, or G depending on genus). Replicate in cytoplasm.
//
// Fields Virology 7th ed, Chapters 36-40.

fn virus_measles() -> Virus {
    return vr(22, "Measles virus (Rubeola)", "MeV", "Paramyxoviridae", "Orthoparamyxovirinae", "Morbillivirus", "negative_ssRNA", 15.9, 5, true, "helical", "respiratory epithelium (initial via nectin-4), immune cells (CD150/SLAM receptor on T/B lymphocytes and macrophages for systemic spread); causes immune amnesia by depleting memory lymphocytes", "cytoplasm", "airborne (aerosol); most contagious human virus (R0 14-18); can persist in air for 2h after infected person leaves", 7, 21, "measles: prodrome (cough, coryza, conjunctivitis, Koplik spots on buccal mucosa), then maculopapular rash (head to toe), fever up to 40.6C; complications: pneumonia (#1 cause of death), encephalitis (1 in 1000), SSPE (subacute sclerosing panencephalitis, years later), otitis media, immune amnesia lasting months-years", "clinical (Koplik spots pathognomonic); IgM serology; RT-PCR of throat swab or urine; viral culture", "supportive; vitamin A supplementation (WHO: reduces mortality by 50% in malnourished children); ribavirin experimental for SSPE; no specific antiviral", true, 2, true, "Fields Virology 7th ed Ch 38; Moss WJ. Lancet 390:2490-2502, 2017; Mina MJ et al. Science 366:599-606, 2019 (immune amnesia)")
}

fn virus_mumps() -> Virus {
    return vr(23, "Mumps virus", "MuV", "Paramyxoviridae", "Orthoparamyxovirinae", "Orthorubulavirus", "negative_ssRNA", 15.4, 5, true, "helical", "respiratory epithelium (initial), parotid salivary gland (tropism via viremia), testes, ovaries, pancreas, CNS", "cytoplasm", "respiratory droplets; direct contact with saliva", 12, 25, "mumps: bilateral (or unilateral) parotitis (painful swollen parotid glands), orchitis (20-30% of postpubertal males, rarely causes sterility), oophoritis, aseptic meningitis (common but mild), encephalitis (rare), pancreatitis, sensorineural hearing loss (rare, usually unilateral)", "clinical (parotitis); IgM serology (can be negative in vaccinated); RT-PCR of buccal swab or saliva; viral culture", "supportive only; NSAIDs for pain/swelling; no antiviral; MMR vaccine (two doses)", true, 2, true, "Fields Virology 7th ed Ch 37; Hviid A et al. N Engl J Med 350:1379-1387, 2004")
}

fn virus_rsv() -> Virus {
    return vr(24, "Respiratory Syncytial Virus", "RSV", "Paramyxoviridae", "Pneumovirinae", "Orthopneumovirus", "negative_ssRNA", 15.2, 5, true, "helical", "respiratory epithelium (ciliated cells of small airways); F protein mediates fusion creating characteristic syncytia", "cytoplasm", "respiratory droplets; fomites (survives hours on surfaces); hand-to-eye/nose inoculation; seasonal (winter)", 2, 8, "bronchiolitis (#1 cause in infants <1 year), pneumonia in infants, upper respiratory infection in older children/adults, severe LRTI in elderly and immunocompromised; wheezing, hypoxia, apnea in neonates", "rapid antigen detection (nasopharyngeal); RT-PCR; viral culture; DFA", "supportive (oxygen, hydration, nasal suctioning); ribavirin (aerosolized, rarely used, controversial); palivizumab (anti-F monoclonal, prophylaxis for high-risk infants); nirsevimab (long-acting anti-F mAb, single dose prophylaxis)", true, 2, false, "Fields Virology 7th ed Ch 39; Hall CB. N Engl J Med 344:1917-1928, 2001; Hammitt LL et al. N Engl J Med 386:837-846, 2022 (nirsevimab)")
}

fn virus_parainfluenza() -> Virus {
    return vr(25, "Human Parainfluenza Viruses", "HPIV", "Paramyxoviridae", "Orthoparamyxovirinae", "Respirovirus/Rubulavirus", "negative_ssRNA", 15.5, 5, true, "helical", "respiratory epithelium; HPIV-1 and HPIV-2 (larynx/trachea, cause croup), HPIV-3 (lower respiratory, bronchiolitis/pneumonia)", "cytoplasm", "respiratory droplets; fomites; seasonal (HPIV-1/2 fall, HPIV-3 spring/summer)", 2, 6, "croup (laryngotracheobronchitis, HPIV-1 is #1 cause: barking cough, stridor, steeple sign on X-ray), bronchiolitis (HPIV-3), pneumonia in immunocompromised", "RT-PCR (multiplex respiratory panels); DFA; viral culture; rapid antigen", "supportive; dexamethasone or nebulized epinephrine for croup; no approved antiviral; DAS181 (sialidase fusion protein) investigational", false, 2, false, "Fields Virology 7th ed Ch 36; Henrickson KJ. Clin Microbiol Rev 16:242-264, 2003")
}

fn virus_nipah() -> Virus {
    return vr(26, "Nipah virus", "NiV", "Paramyxoviridae", "Orthoparamyxovirinae", "Henipavirus", "negative_ssRNA", 18.2, 5, true, "helical", "endothelial cells (ephrinB2 and ephrinB3 receptors), respiratory epithelium, neurons; causes vasculitis and encephalitis", "cytoplasm", "bat-to-human (Pteropus fruit bats, date palm sap), pig-to-human, human-to-human (close contact, nosocomial); outbreaks in Bangladesh, India, Malaysia, Singapore", 4, 14, "Nipah encephalitis (40-75% case fatality rate): fever, headache, drowsiness, disorientation, seizures, coma; respiratory illness; relapsing encephalitis months-years after acute infection", "RT-PCR; IgM/IgG ELISA; virus isolation (BSL-4 only); immunohistochemistry on biopsy", "supportive care (intensive care, mechanical ventilation); ribavirin showed some benefit in observational studies; monoclonal antibody m102.4 (experimental); remdesivir (in vitro activity)", false, 4, true, "Fields Virology 7th ed Ch 40; Chua KB et al. Science 288:1432-1435, 2000; WHO R&D Blueprint priority pathogen")
}

fn virus_hendra() -> Virus {
    return vr(27, "Hendra virus", "HeV", "Paramyxoviridae", "Orthoparamyxovirinae", "Henipavirus", "negative_ssRNA", 18.2, 5, true, "helical", "endothelial cells (ephrinB2 receptor), respiratory epithelium, neurons; closely related to Nipah", "cytoplasm", "horse-to-human (Pteropus fruit bats infect horses, horses infect humans); no confirmed human-to-human transmission; Australia only", 5, 16, "Hendra virus infection: influenza-like illness progressing to pneumonia and/or encephalitis; high case fatality (57%, 4/7 known human cases)", "RT-PCR; serology; virus isolation (BSL-4); immunohistochemistry", "supportive; monoclonal antibody m102.4 (experimental, same as Nipah); equine vaccine available (Equivac HeV)", false, 4, true, "Fields Virology 7th ed Ch 40; Murray K et al. Science 268:94-97, 1995")
}


// ═══════════════════════════════════════════════════════════════
// SECTION TEN: RNA VIRUSES -- FLAVIVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Positive-sense ssRNA, enveloped, icosahedral. Replicate in
// cytoplasm. Arthropod-borne (arboviruses): Aedes and Culex
// mosquitoes, ticks. HCV is bloodborne (not arthropod).
// Single polyprotein cleaved by viral and host proteases.
//
// Fields Virology 7th ed, Chapters 30-35.

fn virus_dengue() -> Virus {
    return vr(28, "Dengue virus", "DENV", "Flaviviridae", "", "Flavivirus", "positive_ssRNA", 10.7, 4, true, "icosahedral", "monocytes, macrophages, dendritic cells (Fc receptor-mediated entry enhances infection in secondary infection = ADE); endothelial cells", "cytoplasm (ER-derived replication complexes)", "Aedes aegypti and Aedes albopictus mosquito bite; no human-to-human direct transmission; four serotypes (DENV-1 through DENV-4)", 3, 14, "dengue fever (break-bone fever: high fever, severe headache, retro-orbital pain, myalgia, arthralgia, maculopapular rash), dengue hemorrhagic fever (plasma leakage, thrombocytopenia, hemorrhage), dengue shock syndrome (circulatory failure); secondary infection with different serotype = higher risk (ADE)", "NS1 antigen (early, days 1-5); IgM/IgG serology (IgM after day 5); RT-PCR (viremia days 1-5); CBC (leukopenia, thrombocytopenia, hemoconcentration)", "supportive (fluid resuscitation is critical, avoid NSAIDs due to bleeding risk, avoid aspirin); no approved antiviral; Dengvaxia vaccine (CYD-TDV, only for seropositive individuals due to ADE risk); TAK-003/Qdenga (live attenuated)", true, 2, true, "Fields Virology 7th ed Ch 30; Guzman MG et al. Lancet 385:453-465, 2015")
}

fn virus_zika() -> Virus {
    return vr(29, "Zika virus", "ZIKV", "Flaviviridae", "", "Flavivirus", "positive_ssRNA", 10.8, 4, true, "icosahedral", "neural progenitor cells (tropism for developing fetal brain), placental trophoblasts, dermal fibroblasts; AXL receptor implicated", "cytoplasm", "Aedes mosquito bite; sexual transmission (persists in semen for months); vertical (transplacental, causes congenital Zika syndrome); blood transfusion", 3, 14, "usually asymptomatic or mild (low-grade fever, maculopapular rash, conjunctivitis, arthralgia); Guillain-Barre syndrome; congenital Zika syndrome (microcephaly, intracranial calcifications, arthrogryposis, ocular abnormalities)", "RT-PCR (serum and urine, first 2 weeks); IgM ELISA (cross-reacts with dengue); plaque reduction neutralization test (PRNT) for confirmation", "supportive; no approved antiviral; no approved vaccine (multiple candidates in trials); avoid pregnancy for 2-3 months after infection/travel", false, 2, true, "Fields Virology 7th ed Ch 30; Rasmussen SA et al. N Engl J Med 374:1981-1987, 2016")
}

fn virus_wnv() -> Virus {
    return vr(30, "West Nile virus", "WNV", "Flaviviridae", "", "Flavivirus", "positive_ssRNA", 11.0, 4, true, "icosahedral", "dendritic cells (initial), macrophages, neurons (CNS tropism), renal tubular epithelium; bird-mosquito cycle (Culex spp.)", "cytoplasm", "Culex mosquito bite (bird-mosquito-human cycle); blood transfusion; organ transplant; vertical (rare)", 2, 14, "~80% asymptomatic; West Nile fever (20%: fever, headache, fatigue, rash); neuroinvasive disease (<1%: encephalitis, meningitis, acute flaccid paralysis resembling polio); long-term fatigue and cognitive impairment common in survivors", "IgM in serum or CSF (persists months); plaque reduction neutralization test; RT-PCR (low sensitivity, brief viremia); blood donor screening by NAT", "supportive (ICU for neuroinvasive disease); no approved antiviral; no human vaccine (equine vaccine exists); IVIG with high WNV antibody titers (investigational)", false, 3, true, "Fields Virology 7th ed Ch 30; Petersen LR et al. JAMA 310:308-315, 2013")
}

fn virus_yellow_fever() -> Virus {
    return vr(31, "Yellow Fever virus", "YFV", "Flaviviridae", "", "Flavivirus", "positive_ssRNA", 10.9, 4, true, "icosahedral", "hepatocytes (primary target, causes Councilman bodies = eosinophilic apoptotic hepatocytes), Kupffer cells, splenic macrophages, renal tubular cells", "cytoplasm", "Aedes aegypti mosquito bite; sylvatic cycle (monkeys to mosquitoes) and urban cycle (humans to mosquitoes); endemic in tropical Africa and South America", 3, 6, "yellow fever: three phases. Infection (fever, headache, myalgia), remission (apparent recovery), intoxication (20% of cases: jaundice, hemorrhage, black vomit/hematemesis, hepatorenal failure, DIC); 20-50% mortality in intoxication phase", "RT-PCR (early); IgM serology; liver biopsy (Councilman bodies, midzonal necrosis, but contraindicated due to bleeding risk); plaque reduction neutralization", "supportive (ICU, fresh frozen plasma, dialysis); no approved antiviral; YF-17D live attenuated vaccine (one of most effective vaccines ever made, lifelong immunity from single dose)", true, 3, true, "Fields Virology 7th ed Ch 30; Monath TP. N Engl J Med 369:1369-1370, 2013")
}

fn virus_hcv() -> Virus {
    return vr(32, "Hepatitis C Virus", "HCV", "Flaviviridae", "", "Hepacivirus", "positive_ssRNA", 9.6, 4, true, "icosahedral", "hepatocytes (CD81, SR-BI, claudin-1, occludin as co-receptors); no animal reservoir except chimpanzee", "cytoplasm (ER-derived membranous web)", "blood-borne: IVDU (#1 risk in developed countries), needlestick, blood transfusion (pre-1992), sexual (low efficiency), vertical (5%); NOT spread by casual contact", 14, 180, "acute HCV (usually asymptomatic, 15-25% spontaneous clearance), chronic HCV (75-85% progress to chronic), hepatic fibrosis and cirrhosis (20-30% over 20-30 years), hepatocellular carcinoma (1-4% per year once cirrhotic), extrahepatic: cryoglobulinemia, membranoproliferative GN, porphyria cutanea tarda, non-Hodgkin lymphoma", "anti-HCV antibody (screening); HCV RNA PCR (confirms active infection); genotyping (guides treatment, 6 major genotypes); FibroScan or APRI/FIB-4 for fibrosis staging", "direct-acting antivirals (DAAs): sofosbuvir/velpatasvir (Epclusa, pangenotypic), glecaprevir/pibrentasvir (Mavyret, pangenotypic), sofosbuvir/ledipasvir (Harvoni, GT1/4); >95% cure rate (SVR12) in 8-12 weeks; DAAs are one of greatest achievements in antiviral therapy", false, 2, true, "Fields Virology 7th ed Ch 35; Chung RT, Baumert TF. N Engl J Med 370:2362-2363, 2014; Falade-Nwulia O et al. Ann Intern Med 166:637-648, 2017")
}


// ═══════════════════════════════════════════════════════════════
// SECTION ELEVEN: RNA VIRUSES -- TOGAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Positive-sense ssRNA, enveloped, icosahedral. Alphaviruses
// are arthropod-borne. Rubella is in a separate family
// (Matonaviridae) since 2019 reclassification but included
// here for clinical completeness.
//
// Fields Virology 7th ed, Chapters 28-29.

fn virus_chikungunya() -> Virus {
    return vr(33, "Chikungunya virus", "CHIKV", "Togaviridae", "", "Alphavirus", "positive_ssRNA", 11.8, 4, true, "icosahedral", "macrophages, fibroblasts, endothelial cells; replicates in synovial tissue (explains chronic arthralgia); muscle satellite cells", "cytoplasm", "Aedes aegypti and Aedes albopictus mosquito bite; no human-to-human; occasional vertical transmission", 2, 12, "chikungunya fever: abrupt high fever with severe bilateral symmetric polyarthralgia (especially small joints of hands, wrists, ankles), maculopapular rash, headache; chronic arthralgia persists months-years in 30-40% of patients (debilitating)", "RT-PCR (first week); IgM (after day 5); plaque reduction neutralization test; CBC (lymphopenia)", "supportive (NSAIDs for joint pain, NOT aspirin, exclude dengue first); no approved antiviral; no approved vaccine (IXCHIQ live attenuated approved FDA 2023); methotrexate for chronic arthritis", true, 2, true, "Fields Virology 7th ed Ch 28; Weaver SC, Lecuit M. N Engl J Med 372:1231-1239, 2015")
}

fn virus_rubella() -> Virus {
    return vr(34, "Rubella virus", "RUBV", "Matonaviridae", "", "Rubivirus", "positive_ssRNA", 9.8, 4, true, "icosahedral", "respiratory epithelium (initial), lymphocytes (viremia), skin, placental trophoblasts (fetal infection)", "cytoplasm", "respiratory droplets; vertical transplacental (congenital rubella syndrome); moderately contagious", 14, 21, "rubella (German measles): mild in children/adults (low-grade fever, maculopapular rash spreading head to toe in 3 days, posterior auricular and postoccipital lymphadenopathy, arthralgia in adults); CONGENITAL RUBELLA SYNDROME (CRS): sensorineural deafness, cataracts, patent ductus arteriosus/pulmonary stenosis, microcephaly, intellectual disability, blueberry muffin rash (dermal erythropoiesis)", "IgM serology (rubella IgM); IgG seroconversion or 4-fold rise; RT-PCR of throat swab or urine; prenatal diagnosis by amniocentesis PCR", "supportive for postnatal rubella; NO treatment reverses CRS; prevention is key: MMR vaccine (two doses, do NOT give in pregnancy, wait 28 days before conception); rubella eliminated from Americas 2015", true, 2, true, "Fields Virology 7th ed Ch 29; Reef SE et al. J Infect Dis 204 Suppl 1:S24-S32, 2011")
}


// ═══════════════════════════════════════════════════════════════
// SECTION TWELVE: RNA VIRUSES -- RETROVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Diploid positive-sense ssRNA with reverse transcriptase.
// Baltimore class VI. Integrase inserts proviral DNA into host
// genome. HIV: targets CD4+ T cells (tropism via CD4, CCR5/CXCR4).
// HTLV-1: associated with ATL and TSP/HAM.
//
// Fields Virology 7th ed, Chapters 49-55.

fn virus_hiv1() -> Virus {
    return vr(35, "Human Immunodeficiency Virus type 1", "HIV-1", "Retroviridae", "Orthoretrovirinae", "Lentivirus", "positive_ssRNA_diploid_RT", 9.7, 6, true, "conical capsid (p24)", "CD4+ T lymphocytes (primary), macrophages, dendritic cells; gp120 binds CD4, then co-receptor CCR5 (R5-tropic, early) or CXCR4 (X4-tropic, late); destroys CD4 cells leading to AIDS", "cytoplasm (reverse transcription) then nucleus (integration into host genome as provirus)", "sexual (most common globally), blood (IVDU, transfusion), vertical (in utero, delivery, breastfeeding); not transmitted by casual contact", 7, 28, "acute retroviral syndrome (mononucleosis-like: fever, lymphadenopathy, pharyngitis, rash, 2-4 weeks post-exposure), clinical latency (years, gradual CD4 decline), AIDS (CD4 <200): opportunistic infections (PCP, CMV retinitis, MAC, toxoplasmosis, cryptococcal meningitis, Kaposi sarcoma), AIDS-defining malignancies, wasting, dementia", "4th gen Ag/Ab combo test (p24 antigen + HIV-1/2 antibodies, screening); HIV-1/2 differentiation immunoassay; HIV-1 RNA PCR (viral load); CD4 count; genotypic resistance testing; Western blot (legacy confirmatory)", "ART (antiretroviral therapy): INSTI-based regimens preferred (bictegravir/emtricitabine/TAF = Biktarvy; dolutegravir/lamivudine = Dovato); NRTIs (tenofovir, emtricitabine); NNRTIs (efavirenz, doravirine); PIs (darunavir/ritonavir); PrEP (emtricitabine/TDF or cabotegravir LA for prevention); goal: undetectable = untransmittable (U=U)", false, 3, true, "Fields Virology 7th ed Ch 49-52; Barre-Sinoussi F et al. Science 220:868-871, 1983; DHHS Guidelines for Use of Antiretroviral Agents 2024")
}

fn virus_hiv2() -> Virus {
    return vr(36, "Human Immunodeficiency Virus type 2", "HIV-2", "Retroviridae", "Orthoretrovirinae", "Lentivirus", "positive_ssRNA_diploid_RT", 9.7, 6, true, "conical capsid", "CD4+ T cells, macrophages; same receptors as HIV-1 (CD4, CCR5/CXCR4) but lower replicative fitness", "cytoplasm then nucleus (proviral integration)", "sexual, blood, vertical; primarily West Africa; less efficiently transmitted than HIV-1", 7, 28, "same spectrum as HIV-1 but slower progression to AIDS; lower viral loads; many remain long-term non-progressors; cross-reactive immunity may partially protect against HIV-1", "4th gen combo test detects both HIV-1 and HIV-2; HIV-1/2 differentiation assay (critical: NNRTIs do not work against HIV-2); HIV-2 proviral DNA PCR", "ART: NNRTIs are NOT effective against HIV-2 (intrinsic resistance); use INSTI-based or boosted PI-based regimens; otherwise similar principles to HIV-1", false, 3, true, "Fields Virology 7th ed Ch 53; Clavel F et al. Science 233:343-346, 1986; Campbell-Yesufu OT, Gandhi RT. Clin Infect Dis 52:780-787, 2011")
}

fn virus_htlv1() -> Virus {
    return vr(37, "Human T-lymphotropic Virus type 1", "HTLV-1", "Retroviridae", "Orthoretrovirinae", "Deltaretrovirus", "positive_ssRNA_diploid_RT", 9.0, 6, true, "icosahedral/spherical", "CD4+ T lymphocytes; Tax and HBZ oncoproteins drive proliferation; cell-to-cell transmission via virological synapse (not free virion)", "cytoplasm then nucleus (proviral integration)", "breast milk (prolonged breastfeeding >6 months is primary route in endemic areas), sexual, blood (IVDU, transfusion); vertical; endemic in Japan, Caribbean, sub-Saharan Africa, South America", 0, 0, "most carriers are asymptomatic lifelong (95%); adult T-cell leukemia/lymphoma (ATL, 2-5% lifetime risk after decades of latency: acute/lymphoma/chronic/smoldering subtypes, flower cells), HTLV-associated myelopathy / tropical spastic paraparesis (HAM/TSP, progressive spastic paraparesis), HTLV-associated uveitis, infective dermatitis in children, strongyloides hyperinfection (impaired Th2 response)", "HTLV-1/2 antibody screening (ELISA/CLIA); Western blot or line immunoassay (confirmation); HTLV-1 proviral load PCR (correlates with disease risk)", "ATL: chemotherapy (VCAP-AMP-VECP), mogamulizumab (anti-CCR4 mAb), AZT plus IFN-alpha (smoldering/chronic), allogeneic stem cell transplant; HAM/TSP: corticosteroids, danazol, no curative therapy; no vaccine", false, 2, false, "Fields Virology 7th ed Ch 54; Poiesz BJ et al. Proc Natl Acad Sci 77:7415-7419, 1980; Matsuoka M, Jeang KT. Nat Rev Cancer 7:270-280, 2007")
}


// ═══════════════════════════════════════════════════════════════
// SECTION THIRTEEN: RNA VIRUSES -- FILOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Negative-sense ssRNA, enveloped, filamentous (thread-like,
// hence filo-). BSL-4 pathogens. Fruit bat reservoir.
// Cause viral hemorrhagic fever with high CFR.
//
// Fields Virology 7th ed, Chapter 32.

fn virus_ebola() -> Virus {
    return vr(38, "Ebola virus (Zaire ebolavirus)", "EBOV", "Filoviridae", "", "Ebolavirus", "negative_ssRNA", 18.9, 5, true, "filamentous (helical nucleocapsid)", "monocytes/macrophages and dendritic cells (initial targets via GP-mediated entry through NPC1 endosomal receptor), then hepatocytes, endothelial cells, adrenal cortex; causes massive cytokine storm, DIC, vascular leak", "cytoplasm", "direct contact with blood/body fluids of infected or deceased persons; bush meat (fruit bat reservoir); nosocomial (needlesticks); NOT airborne; virus persists in semen for months post-recovery", 2, 21, "Ebola virus disease: abrupt fever, headache, myalgia, then severe GI symptoms (vomiting, diarrhea), hemorrhagic manifestations (petechiae, ecchymoses, mucosal bleeding), multiorgan failure, shock; case fatality 25-90% (average ~50% Zaire species); West Africa 2013-2016 outbreak: 28,616 cases, 11,310 deaths", "RT-PCR of blood (gold standard); rapid diagnostic tests (RDTs, antigen-based); IgM/IgG ELISA; virus isolation (BSL-4 only)", "supportive (aggressive fluid resuscitation, electrolyte replacement, ICU care); mAb cocktails: Inmazeb (atoltivimab/maftivimab/odesivimab, FDA approved 2020) and Ebanga (ansuvimab); rVSV-ZEBOV vaccine (Ervebo, ring vaccination strategy, FDA 2019); Ad26.ZEBOV/MVA-BN-Filo (Zabdeno/Mvabea)", true, 4, true, "Fields Virology 7th ed Ch 32; Feldmann H et al. Nat Rev Dis Primers 6:13, 2020; Mulangu S et al. N Engl J Med 381:2293-2303, 2019 (PALM trial)")
}

fn virus_marburg() -> Virus {
    return vr(39, "Marburg virus", "MARV", "Filoviridae", "", "Marburgvirus", "negative_ssRNA", 19.1, 5, true, "filamentous (helical nucleocapsid)", "monocytes/macrophages, dendritic cells, hepatocytes, endothelial cells; same pathogenesis as Ebola (NPC1 receptor, cytokine storm, DIC)", "cytoplasm", "direct contact with blood/body fluids; cave exposure (Egyptian fruit bat Rousettus aegyptiacus is reservoir); nosocomial", 2, 21, "Marburg virus disease: clinically indistinguishable from Ebola (hemorrhagic fever, multiorgan failure); massive hemorrhage more prominent; case fatality 23-90%; 2005 Angola outbreak: 252 cases, 227 deaths (90% CFR)", "RT-PCR; antigen ELISA; IgM/IgG serology; virus isolation (BSL-4)", "supportive (same as Ebola); remdesivir (investigational); no FDA-approved specific therapeutic; cAd3-Marburg vaccine (investigational, Phase 2)", false, 4, true, "Fields Virology 7th ed Ch 32; Towner JS et al. PLoS Pathog 5:e1000536, 2009")
}


// ═══════════════════════════════════════════════════════════════
// SECTION FOURTEEN: RNA VIRUSES -- CORONAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Positive-sense ssRNA, enveloped, helical nucleocapsid. Largest
// RNA virus genomes (~27-32 kb). Named for crown-like spike
// projections. See sars_cov2.sy for detailed SARS-CoV-2 biology.
//
// Fields Virology 7th ed, Chapters 36-37.

fn virus_sars_cov2() -> Virus {
    return vr(40, "SARS-CoV-2", "SARS-CoV-2", "Coronaviridae", "Orthocoronavirinae", "Betacoronavirus", "positive_ssRNA", 29.9, 4, true, "helical", "respiratory epithelium (ACE2 receptor + TMPRSS2 protease), type II pneumocytes, intestinal epithelium, endothelium, cardiomyocytes; see sars_cov2.sy for full molecular detail", "cytoplasm (double-membrane vesicles from ER)", "respiratory droplets and aerosols; fomites; fecal-oral (possible); close contact", 2, 14, "COVID-19: asymptomatic to fatal. Mild (cough, fever, anosmia), moderate (pneumonia), severe (ARDS, cytokine storm, multiorgan failure, thrombosis). Long COVID (fatigue, brain fog, dysautonomia). See sars_cov2.sy for variants and detailed pathogenesis.", "RT-PCR (nasopharyngeal swab); rapid antigen test; anti-N serology for prior infection; see sars_cov2.sy", "nirmatrelvir/ritonavir (Paxlovid); remdesivir; molnupiravir; dexamethasone for hypoxic patients; tocilizumab/baricitinib for severe; see sars_cov2.sy for full drug targets", true, 3, true, "Wu F et al. Nature 579:265-269, 2020; see sars_cov2.sy for complete citations")
}

fn virus_sars_cov() -> Virus {
    return vr(41, "SARS-CoV (SARS-CoV-1)", "SARS-CoV", "Coronaviridae", "Orthocoronavirinae", "Betacoronavirus", "positive_ssRNA", 29.7, 4, true, "helical", "respiratory epithelium (ACE2 receptor), type II pneumocytes; civet cats as intermediate host from horseshoe bats", "cytoplasm", "respiratory droplets; nosocomial (superspreader events); fomites", 2, 10, "SARS (Severe Acute Respiratory Syndrome): fever, dry cough, dyspnea, bilateral pneumonia, ARDS; 2002-2003 outbreak: 8,096 cases, 774 deaths (9.6% CFR); NO known human circulation since 2004", "RT-PCR; viral culture (BSL-3); serology (IgM/IgG); chest X-ray (bilateral infiltrates)", "supportive (no approved antiviral at time of outbreak); ribavirin used empirically (no proven benefit); lopinavir/ritonavir tried; IFN-alpha; no vaccine (outbreak ended before development completed)", false, 3, true, "Fields Virology 7th ed; Drosten C et al. N Engl J Med 348:1967-1976, 2003; Ksiazek TG et al. N Engl J Med 348:1953-1966, 2003")
}

fn virus_mers() -> Virus {
    return vr(42, "MERS-CoV", "MERS-CoV", "Coronaviridae", "Orthocoronavirinae", "Betacoronavirus", "positive_ssRNA", 30.1, 4, true, "helical", "respiratory epithelium (DPP4/CD26 receptor, NOT ACE2), type II pneumocytes, renal tubular cells; dromedary camels as intermediate host from bats", "cytoplasm", "respiratory droplets (close contact); camel-to-human; limited human-to-human (mainly nosocomial); no sustained community transmission", 2, 14, "MERS (Middle East Respiratory Syndrome): severe pneumonia, ARDS, renal failure (unique among coronaviruses), diarrhea; 35% case fatality rate; 2012 to present: ~2,600 cases, ~900 deaths; endemic in Arabian Peninsula", "RT-PCR (lower respiratory specimens preferred); serology; virus isolation (BSL-3)", "supportive (ICU, mechanical ventilation); no approved antiviral or vaccine; lopinavir/ritonavir plus IFN-beta (limited evidence); remdesivir (in vitro activity); convalescent plasma (investigational)", false, 3, true, "Fields Virology 7th ed; Zaki AM et al. N Engl J Med 367:1814-1820, 2012")
}


// ═══════════════════════════════════════════════════════════════
// SECTION FIFTEEN: RNA VIRUSES -- RHABDOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Negative-sense ssRNA, enveloped, bullet-shaped (unique
// morphology). Rabies: neurotropic, travels retrograde along
// peripheral nerves to CNS. Nearly 100% fatal once symptomatic.
//
// Fields Virology 7th ed, Chapter 31.

fn virus_rabies() -> Virus {
    return vr(43, "Rabies virus", "RABV", "Rhabdoviridae", "", "Lyssavirus", "negative_ssRNA", 12.0, 5, true, "bullet-shaped (helical nucleocapsid)", "peripheral neurons (nicotinic AChR at neuromuscular junction for entry), then retrograde axonal transport to CNS (brain); replicates in neurons (Negri bodies = intracytoplasmic eosinophilic inclusions)", "cytoplasm", "bite from infected animal (dog, bat, raccoon, skunk, fox); scratches; rarely aerosolized bat guano (caves); organ transplant (documented cases)", 20, 90, "rabies encephalitis: prodrome (pain/paresthesia at bite site, fever, malaise), then furious rabies (80%: hydrophobia, aerophobia, agitation, autonomic instability, encephalitis) or paralytic rabies (20%: ascending paralysis resembling GBS); coma and death; nearly 100% fatal once clinical signs appear (only ~15 documented survivors, most with Milwaukee protocol, outcomes variable)", "direct fluorescent antibody (DFA) of nuchal skin biopsy or brain tissue (postmortem); RT-PCR of saliva, CSF, skin biopsy; rabies antibody in serum and CSF (in unvaccinated patient, diagnostic); Negri bodies on brain histology", "post-exposure prophylaxis (PEP): wound cleaning, rabies immune globulin (RIG) infiltrated at wound site, 4-dose rabies vaccine series (days 0, 3, 7, 14); PEP is nearly 100% effective if given before symptom onset; pre-exposure prophylaxis for high-risk groups (3 doses); no proven treatment once symptomatic (Milwaukee protocol: induced coma + antiviral cocktail, highly controversial)", true, 3, true, "Fields Virology 7th ed Ch 31; Hemachudha T et al. Lancet Neurol 12:498-513, 2013; WHO Expert Consultation on Rabies, 3rd report, 2018")
}


// ═══════════════════════════════════════════════════════════════
// SECTION SIXTEEN: RNA VIRUSES -- PICORNAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Positive-sense ssRNA, non-enveloped, icosahedral. Small
// (pico-RNA). Single polyprotein cleaved by viral proteases
// (2Apro, 3Cpro). >200 serotypes of rhinovirus alone.
//
// Fields Virology 7th ed, Chapters 17-22.

fn virus_poliovirus() -> Virus {
    return vr(44, "Poliovirus", "PV", "Picornaviridae", "", "Enterovirus", "positive_ssRNA", 7.5, 4, false, "icosahedral", "oropharyngeal and intestinal epithelium (initial via CD155/PVR receptor), then motor neurons of anterior horn of spinal cord and brainstem (paralytic disease)", "cytoplasm", "fecal-oral (primary); oral-oral (close contact); contaminated water", 3, 35, "poliomyelitis: 90-95% asymptomatic, 4-8% abortive (fever, malaise), 1-2% nonparalytic (aseptic meningitis), <1% paralytic (asymmetric acute flaccid paralysis, bulbar involvement can be fatal); post-polio syndrome (decades later: progressive muscle weakness and atrophy)", "viral culture (stool, throat swab, CSF); RT-PCR with genotyping (distinguish wild from vaccine-derived); CSF (lymphocytic pleocytosis, normal glucose); intrathecal antibodies", "supportive (ventilatory support for bulbar/respiratory paralysis); no antiviral; vaccines: IPV (Salk, inactivated, injection, used in developed countries), OPV (Sabin, live attenuated oral, used in eradication campaigns, rare vaccine-derived paralytic polio); nearing global eradication (wild type 1 still in Afghanistan/Pakistan)", true, 2, true, "Fields Virology 7th ed Ch 18; Nathanson N, Kew OM. Am J Epidemiol 172:1361-1369, 2010")
}

fn virus_rhinovirus() -> Virus {
    return vr(45, "Human Rhinovirus", "HRV", "Picornaviridae", "", "Enterovirus", "positive_ssRNA", 7.2, 4, false, "icosahedral", "nasal and pharyngeal epithelium (ICAM-1/CD54 receptor for major group, LDLR for minor group); optimal replication at 33C (nasal passages), not 37C (lower airways)", "cytoplasm", "respiratory droplets; fomites (rhinovirus survives hours on surfaces); hand-to-nose/eye inoculation (primary route)", 1, 3, "common cold (#1 cause: rhinorrhea, sneezing, sore throat, nasal congestion, mild cough); asthma exacerbations (major trigger in children and adults); exacerbations of COPD; rarely pneumonia in immunocompromised; >100 serotypes means repeated infections throughout life", "clinical diagnosis (no testing needed for typical cold); RT-PCR (multiplex respiratory panels when clinically indicated); viral culture (difficult, not routine)", "supportive (rest, fluids, decongestants, NSAIDs/acetaminophen for fever/pain); no antiviral (pleconaril showed modest effect, not approved); no vaccine (>100 serotypes makes vaccine development impractical); ipratropium nasal spray reduces rhinorrhea", false, 1, false, "Fields Virology 7th ed Ch 19; Jacobs SE et al. Clin Microbiol Rev 26:135-162, 2013")
}

fn virus_hav() -> Virus {
    return vr(46, "Hepatitis A Virus", "HAV", "Picornaviridae", "", "Hepatovirus", "positive_ssRNA", 7.5, 4, false, "icosahedral", "hepatocytes (via HAVCR1/TIM-1 receptor); does NOT cause chronic infection (unlike HBV/HCV)", "cytoplasm", "fecal-oral (contaminated food/water, shellfish, close contact); rare: blood transfusion (viremia precedes symptoms); sexual (MSM); travel to endemic areas", 15, 50, "hepatitis A: often asymptomatic in children; in adults: abrupt onset jaundice, dark urine, clay-colored stools, hepatomegaly, nausea, fatigue, fever; self-limiting (no chronicity); rarely fulminant hepatitis (0.1-0.3%, higher in elderly and those with chronic liver disease); does NOT cause cirrhosis or HCC", "anti-HAV IgM (acute, diagnostic); anti-HAV IgG (prior infection/immunity); liver enzymes (ALT/AST markedly elevated); HAV RNA PCR (research/outbreak investigation)", "supportive (rest, hydration, avoid hepatotoxins/alcohol); no antiviral; post-exposure prophylaxis with HAV vaccine (within 2 weeks of exposure) or immunoglobulin (for immunocompromised or infants)", true, 2, true, "Fields Virology 7th ed Ch 17; Lemon SM et al. N Engl J Med 318:1071-1078, 2018")
}

fn virus_evd68() -> Virus {
    return vr(47, "Enterovirus D68", "EV-D68", "Picornaviridae", "", "Enterovirus", "positive_ssRNA", 7.4, 4, false, "icosahedral", "respiratory epithelium (unusual for enterovirus: respiratory tropism like rhinovirus, optimal growth at 33C); motor neurons (in acute flaccid myelitis)", "cytoplasm", "respiratory droplets; fomites; seasonal (late summer/fall biennial pattern)", 1, 5, "respiratory illness (ranging from rhinitis to severe bronchiolitis and pneumonia, especially in children with asthma); acute flaccid myelitis (AFM: polio-like illness, asymmetric limb weakness, gray matter involvement on MRI); large US outbreak 2014 (1,153 cases + 120 AFM)", "RT-PCR of nasopharyngeal swab (upper respiratory specimens); RT-PCR of CSF (usually negative even in AFM); viral culture; sequencing for genotyping", "supportive (bronchodilators, supplemental oxygen for respiratory illness); no approved antiviral; fluoxetine showed in vitro activity (not clinically proven); IVIG and corticosteroids for AFM (not proven); physical rehabilitation for AFM", false, 2, true, "Midgley CM et al. Lancet Respir Med 3:879-887, 2015; Messacar K et al. MMWR 67:1233-1237, 2018")
}

fn virus_coxsackie() -> Virus {
    return vr(48, "Coxsackievirus", "CVA/CVB", "Picornaviridae", "", "Enterovirus", "positive_ssRNA", 7.4, 4, false, "icosahedral", "pharyngeal and intestinal epithelium, myocardium (CVB), meninges, skin; Group A (CAR receptor not required) and Group B (coxsackievirus-adenovirus receptor, CAR)", "cytoplasm", "fecal-oral; respiratory droplets; vertical (neonatal)", 3, 6, "hand-foot-and-mouth disease (CVA16, CVA6: vesicles on palms, soles, oral mucosa), herpangina (CVA: vesicular/ulcerative lesions on posterior pharynx), viral myocarditis (CVB3 #1 cause of infectious myocarditis), pericarditis (CVB), pleurodynia (Bornholm disease, CVB), aseptic meningitis, neonatal sepsis-like illness (fulminant, CVB)", "RT-PCR (throat, stool, CSF, vesicle fluid); viral culture; enterovirus-specific IgM (limited utility); troponin and echocardiogram for myocarditis", "supportive; pleconaril (investigational); IVIG for neonatal enterovirus infection and myocarditis (limited evidence); heart failure management for myocarditis; mechanical circulatory support if fulminant; no vaccine", false, 2, false, "Fields Virology 7th ed Ch 18; Romero JR. Pediatr Infect Dis J 27:677-678, 2008; Cooper LT. N Engl J Med 360:1526-1538, 2009 (myocarditis)")
}


// ═══════════════════════════════════════════════════════════════
// SECTION SEVENTEEN: RNA VIRUSES -- CALICIVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Positive-sense ssRNA, non-enveloped, icosahedral. Norovirus
// is the #1 cause of epidemic gastroenteritis worldwide.
// Extremely infectious (10-100 virions sufficient). Cannot be
// grown in standard cell culture.
//
// Fields Virology 7th ed, Chapter 20.

fn virus_norovirus() -> Virus {
    return vr(49, "Norovirus", "NoV", "Caliciviridae", "", "Norovirus", "positive_ssRNA", 7.7, 4, false, "icosahedral", "intestinal epithelial cells (enterocytes); histo-blood group antigens (HBGAs) as attachment factors; individuals with FUT2 nonsecretor genotype partially resistant to GII.4 strains", "cytoplasm", "fecal-oral, contaminated food/water (shellfish, salads), fomites (extremely stable), vomiting aerosols, person-to-person; extremely low infectious dose (18 virions); outbreaks in cruise ships, hospitals, schools, nursing homes", 1, 2, "acute viral gastroenteritis (projectile vomiting, watery non-bloody diarrhea, abdominal cramps, nausea, low-grade fever; duration 24-72 hours); dehydration can be severe in young children and elderly; chronic diarrhea in immunocompromised (transplant, HIV); #1 cause of foodborne illness outbreaks worldwide", "RT-PCR of stool (gold standard); multiplex GI panels; rapid antigen (EIA, moderate sensitivity); electron microscopy (historical); clinical diagnosis often sufficient in outbreak setting (Kaplan criteria)", "supportive (oral or IV rehydration, antiemetics); no approved antiviral; nitazoxanide (limited evidence in immunocompromised); no vaccine (multiple candidates in clinical trials including VLP-based)", false, 2, true, "Fields Virology 7th ed Ch 20; Patel MM et al. Emerg Infect Dis 14:1224-1231, 2008; Hall AJ et al. MMWR 63(RR-09):1-14, 2014")
}


// ═══════════════════════════════════════════════════════════════
// SECTION EIGHTEEN: RNA VIRUSES -- REOVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// dsRNA (double-stranded RNA), non-enveloped, icosahedral
// double-shelled capsid. Segmented genome (11 segments for
// rotavirus). Baltimore class III. Rotavirus was #1 cause of
// severe childhood diarrhea globally before vaccination.
//
// Fields Virology 7th ed, Chapter 44.

fn virus_rotavirus() -> Virus {
    return vr(50, "Rotavirus", "RV", "Reoviridae", "Sedoreovirinae", "Rotavirus", "dsRNA_segmented", 18.6, 3, false, "icosahedral (triple-layered particle)", "mature enterocytes of small intestinal villi (apical surface); NSP4 is a viral enterotoxin (first viral enterotoxin discovered, disrupts calcium homeostasis)", "cytoplasm (transcription within intact core particle, no dsRNA exposed to cytoplasm to avoid innate immune detection)", "fecal-oral; extremely stable in environment; very low infectious dose; winter seasonality in temperate climates; near-universal infection by age 5", 1, 3, "rotavirus gastroenteritis: severe watery diarrhea (no blood), vomiting, fever, dehydration in infants and young children (6-24 months peak); responsible for ~200,000 deaths/year globally (mostly developing countries); can cause neonatal necrotizing enterocolitis (debated); extraintestinal: febrile seizures, viremia, rarely encephalitis", "rapid antigen detection of stool (EIA/immunochromatography); RT-PCR; electron microscopy (wheel-shaped virion); genotyping (G and P types); stool is negative for leukocytes and blood", "oral rehydration therapy (ORS, cornerstone of treatment); IV fluids for severe dehydration; zinc supplementation (WHO: reduces duration and severity); no antiviral; vaccines: RotaTeq (RV5, pentavalent, 3 oral doses) and Rotarix (RV1, monovalent, 2 oral doses); vaccines have dramatically reduced hospitalization and mortality", true, 2, false, "Fields Virology 7th ed Ch 44; Tate JE et al. Lancet Infect Dis 12:136-141, 2012; Parashar UD et al. Emerg Infect Dis 12:304-306, 2006")
}


// ═══════════════════════════════════════════════════════════════
// SECTION NINETEEN: RNA VIRUSES -- BUNYAVIRALES
// ═══════════════════════════════════════════════════════════════
//
// Negative-sense ssRNA (segmented, 3 segments: L, M, S).
// Enveloped. Arthropod-borne or rodent-borne. Replicate in
// cytoplasm. Hantavirus: rodent-borne, causes HPS or HFRS.
// CCHF: tick-borne hemorrhagic fever.
//
// Fields Virology 7th ed, Chapters 45-48.

fn virus_hantavirus() -> Virus {
    return vr(51, "Hantavirus (Sin Nombre and related)", "SNV", "Hantaviridae", "", "Orthohantavirus", "negative_ssRNA_segmented", 12.0, 5, true, "spherical (no defined capsid symmetry)", "pulmonary endothelial cells (Sin Nombre, New World: HPS) or renal endothelium (Hantaan, Old World: HFRS); beta-3 integrin as receptor on endothelial cells", "cytoplasm", "inhalation of aerosolized rodent excreta (urine, feces, saliva); deer mouse (Sin Nombre), striped field mouse (Hantaan); NO person-to-person transmission (except Andes virus); occupational exposure (cleaning rodent-infested areas)", 7, 39, "Hantavirus Pulmonary Syndrome (HPS, New World: Sin Nombre, Andes): prodromal fever/myalgia, then rapid-onset bilateral pulmonary edema, ARDS, cardiogenic shock; 35-40% CFR. Hemorrhagic Fever with Renal Syndrome (HFRS, Old World: Hantaan, Seoul): fever, hemorrhage, renal failure (oliguria then polyuria); 1-15% CFR depending on species", "RT-PCR of blood; IgM/IgG serology (acute Hantavirus IgM); immunohistochemistry of lung biopsy; CBC (thrombocytopenia, left shift with immunoblasts on peripheral smear is characteristic of HPS)", "supportive (early ICU admission, careful fluid management, avoid over-hydration in HPS, ECMO for cardiogenic shock); ribavirin (IV, may benefit HFRS if given early, not proven for HPS); no FDA-approved antiviral; no vaccine (Hantavax used in South Korea/China, not FDA approved)", false, 3, true, "Fields Virology 7th ed Ch 47; Jonsson CB et al. Clin Microbiol Rev 23:412-441, 2010; Duchin JS et al. N Engl J Med 330:949-955, 1994")
}

fn virus_cchf() -> Virus {
    return vr(52, "Crimean-Congo Hemorrhagic Fever virus", "CCHFV", "Nairoviridae", "", "Orthonairovirus", "negative_ssRNA_segmented", 19.2, 5, true, "spherical", "endothelial cells, hepatocytes, monocytes/macrophages; causes endothelial damage, DIC, hepatic necrosis", "cytoplasm", "Hyalomma tick bite (primary); crushing infected ticks; contact with blood/tissues of viremic livestock during slaughter; nosocomial (blood/body fluid contact); geographic: Africa, Balkans, Middle East, Central Asia", 1, 13, "CCHF: sudden fever, myalgia, headache, then hemorrhagic phase (petechiae, ecchymoses, epistaxis, hematemesis, melena, hepatic failure, DIC); case fatality 10-40%; thrombocytopenia and elevated liver enzymes prominent", "RT-PCR (early); IgM/IgG ELISA (after day 7); antigen detection ELISA; virus isolation (BSL-4 only)", "supportive (blood products, platelet transfusion); ribavirin (WHO recommends, some observational evidence of benefit); no approved vaccine (experimental candidates); strict infection control (BSL-4 pathogen)", false, 4, true, "Fields Virology 7th ed Ch 46; Ergonul O. Lancet Infect Dis 6:203-214, 2006; WHO R&D Blueprint priority pathogen")
}


// ═══════════════════════════════════════════════════════════════
// SECTION TWENTY: RNA VIRUSES -- ARENAVIRIDAE
// ═══════════════════════════════════════════════════════════════
//
// Ambisense ssRNA (Baltimore V), enveloped, segmented (2
// segments: L and S). Named for grainy appearance (ribosomes
// inside virion, non-functional). Rodent-borne. Old World
// (Lassa) and New World (Junin, Machupo).
//
// Fields Virology 7th ed, Chapter 33.

fn virus_lassa() -> Virus {
    return vr(53, "Lassa virus", "LASV", "Arenaviridae", "", "Mammarenavirus", "ambisense_ssRNA_segmented", 10.4, 5, true, "spherical (pleomorphic)", "macrophages, dendritic cells, endothelial cells, hepatocytes; alpha-dystroglycan as primary receptor; suppresses innate immunity (NP exonuclease degrades dsRNA to avoid RIG-I detection)", "cytoplasm", "contact with Mastomys natalensis (multimammate rat) excreta; person-to-person via body fluids (nosocomial); endemic in West Africa (Nigeria, Sierra Leone, Liberia, Guinea); 100,000-300,000 cases/year estimated", 6, 21, "Lassa fever: gradual onset fever, malaise, pharyngitis, retrosternal chest pain; severe cases (20%): facial edema, pleural effusion, hemorrhage, encephalitis; sensorineural hearing loss in 25% of survivors (8th cranial nerve); 1% overall CFR but 15-20% in hospitalized; very high CFR in pregnancy (especially third trimester)", "RT-PCR (gold standard); IgM/IgG ELISA (may not seroconvert until late); antigen detection; virus isolation (BSL-4)", "ribavirin (IV, must be given early within 6 days of onset for survival benefit; Lassa-specific treatment); supportive (fluid management, blood products); favipiravir (investigational); no approved vaccine (multiple candidates in development); WHO R&D Blueprint priority pathogen", false, 4, true, "Fields Virology 7th ed Ch 33; Ogbu O et al. J Vector Borne Dis 44:1-11, 2007; McCormick JB et al. N Engl J Med 314:20-26, 1986 (ribavirin trial)")
}

fn virus_lcmv() -> Virus {
    return vr(54, "Lymphocytic Choriomeningitis Virus", "LCMV", "Arenaviridae", "", "Mammarenavirus", "ambisense_ssRNA_segmented", 10.1, 5, true, "spherical (pleomorphic)", "macrophages, meningeal cells, ependymal cells, choroid plexus; alpha-dystroglycan receptor; key model organism for viral immunology (Zinkernagel and Doherty Nobel 1996: MHC restriction discovery)", "cytoplasm", "contact with house mouse (Mus musculus) excreta (urine, droppings); pet hamsters (documented outbreaks); NOT person-to-person except vertical (congenital) and organ transplant", 8, 13, "most infections asymptomatic or mild flu-like illness; aseptic meningitis (lymphocytic pleocytosis in CSF, hence name); meningoencephalitis (rarely severe); congenital LCMV (hydrocephalus, chorioretinitis, periventricular calcifications, developmental delay, mimics TORCH infections); fatal in transplant recipients (donor-derived infection)", "CSF analysis (lymphocytic pleocytosis, low glucose, elevated protein); IgM/IgG serology; RT-PCR; viral culture (BSL-3)", "supportive; ribavirin (investigational, limited data); no approved antiviral; no vaccine; prevention: rodent control; organ donor screening in cluster investigations", false, 3, false, "Fields Virology 7th ed Ch 33; Barton LL, Mets MB. Ann Neurol 49:6-14, 2001; Zinkernagel RM, Doherty PC. Nature 248:701-702, 1974 (Nobel)")
}


// ═══════════════════════════════════════════════════════════════
// MASTER LOOKUP BY ADDRESS
// ═══════════════════════════════════════════════════════════════

fn lookup_virus(addr: Int) -> Virus {
    // DNA viruses: Herpesviridae
    if addr == 1 { return virus_hsv1() }
    if addr == 2 { return virus_hsv2() }
    if addr == 3 { return virus_vzv() }
    if addr == 4 { return virus_ebv() }
    if addr == 5 { return virus_cmv() }
    if addr == 6 { return virus_hhv6() }
    if addr == 7 { return virus_hhv7() }
    if addr == 8 { return virus_hhv8() }
    // DNA viruses: Papillomaviridae
    if addr == 9 { return virus_hpv16() }
    if addr == 10 { return virus_hpv18() }
    if addr == 11 { return virus_hpv6_11() }
    // DNA viruses: Adenoviridae
    if addr == 12 { return virus_adenovirus() }
    // DNA viruses: Hepadnaviridae
    if addr == 13 { return virus_hbv() }
    // DNA viruses: Poxviridae
    if addr == 14 { return virus_variola() }
    if addr == 15 { return virus_mpox() }
    // DNA viruses: Parvoviridae
    if addr == 16 { return virus_b19() }
    // DNA viruses: Polyomaviridae
    if addr == 17 { return virus_jcv() }
    if addr == 18 { return virus_bkv() }
    // RNA viruses: Orthomyxoviridae
    if addr == 19 { return virus_influenza_a() }
    if addr == 20 { return virus_influenza_b() }
    if addr == 21 { return virus_influenza_c() }
    // RNA viruses: Paramyxoviridae
    if addr == 22 { return virus_measles() }
    if addr == 23 { return virus_mumps() }
    if addr == 24 { return virus_rsv() }
    if addr == 25 { return virus_parainfluenza() }
    if addr == 26 { return virus_nipah() }
    if addr == 27 { return virus_hendra() }
    // RNA viruses: Flaviviridae
    if addr == 28 { return virus_dengue() }
    if addr == 29 { return virus_zika() }
    if addr == 30 { return virus_wnv() }
    if addr == 31 { return virus_yellow_fever() }
    if addr == 32 { return virus_hcv() }
    // RNA viruses: Togaviridae / Matonaviridae
    if addr == 33 { return virus_chikungunya() }
    if addr == 34 { return virus_rubella() }
    // RNA viruses: Retroviridae
    if addr == 35 { return virus_hiv1() }
    if addr == 36 { return virus_hiv2() }
    if addr == 37 { return virus_htlv1() }
    // RNA viruses: Filoviridae
    if addr == 38 { return virus_ebola() }
    if addr == 39 { return virus_marburg() }
    // RNA viruses: Coronaviridae
    if addr == 40 { return virus_sars_cov2() }
    if addr == 41 { return virus_sars_cov() }
    if addr == 42 { return virus_mers() }
    // RNA viruses: Rhabdoviridae
    if addr == 43 { return virus_rabies() }
    // RNA viruses: Picornaviridae
    if addr == 44 { return virus_poliovirus() }
    if addr == 45 { return virus_rhinovirus() }
    if addr == 46 { return virus_hav() }
    if addr == 47 { return virus_evd68() }
    if addr == 48 { return virus_coxsackie() }
    // RNA viruses: Caliciviridae
    if addr == 49 { return virus_norovirus() }
    // RNA viruses: Reoviridae
    if addr == 50 { return virus_rotavirus() }
    // RNA viruses: Bunyavirales
    if addr == 51 { return virus_hantavirus() }
    if addr == 52 { return virus_cchf() }
    // RNA viruses: Arenaviridae
    if addr == 53 { return virus_lassa() }
    if addr == 54 { return virus_lcmv() }

    return unknown_virus()
}

fn virus_count() -> Int {
    return 54
}


// ═══════════════════════════════════════════════════════════════
// LOOKUP BY ABBREVIATION
// ═══════════════════════════════════════════════════════════════

fn lookup_virus_by_name(abbr: String) -> Virus {
    if abbr == "HSV-1" { return virus_hsv1() }
    if abbr == "HSV-2" { return virus_hsv2() }
    if abbr == "VZV" { return virus_vzv() }
    if abbr == "EBV" { return virus_ebv() }
    if abbr == "CMV" { return virus_cmv() }
    if abbr == "HHV-6" { return virus_hhv6() }
    if abbr == "HHV-7" { return virus_hhv7() }
    if abbr == "HHV-8" { return virus_hhv8() }
    if abbr == "KSHV" { return virus_hhv8() }
    if abbr == "HPV-16" { return virus_hpv16() }
    if abbr == "HPV-18" { return virus_hpv18() }
    if abbr == "HPV-6" { return virus_hpv6_11() }
    if abbr == "HPV-11" { return virus_hpv6_11() }
    if abbr == "HAdV" { return virus_adenovirus() }
    if abbr == "adenovirus" { return virus_adenovirus() }
    if abbr == "HBV" { return virus_hbv() }
    if abbr == "variola" { return virus_variola() }
    if abbr == "smallpox" { return virus_variola() }
    if abbr == "MPXV" { return virus_mpox() }
    if abbr == "mpox" { return virus_mpox() }
    if abbr == "B19" { return virus_b19() }
    if abbr == "B19V" { return virus_b19() }
    if abbr == "JCPyV" { return virus_jcv() }
    if abbr == "JC" { return virus_jcv() }
    if abbr == "BKPyV" { return virus_bkv() }
    if abbr == "BK" { return virus_bkv() }
    if abbr == "IAV" { return virus_influenza_a() }
    if abbr == "influenza_A" { return virus_influenza_a() }
    if abbr == "IBV" { return virus_influenza_b() }
    if abbr == "influenza_B" { return virus_influenza_b() }
    if abbr == "ICV" { return virus_influenza_c() }
    if abbr == "influenza_C" { return virus_influenza_c() }
    if abbr == "measles" { return virus_measles() }
    if abbr == "MeV" { return virus_measles() }
    if abbr == "mumps" { return virus_mumps() }
    if abbr == "MuV" { return virus_mumps() }
    if abbr == "RSV" { return virus_rsv() }
    if abbr == "HPIV" { return virus_parainfluenza() }
    if abbr == "parainfluenza" { return virus_parainfluenza() }
    if abbr == "NiV" { return virus_nipah() }
    if abbr == "nipah" { return virus_nipah() }
    if abbr == "HeV" { return virus_hendra() }
    if abbr == "hendra" { return virus_hendra() }
    if abbr == "DENV" { return virus_dengue() }
    if abbr == "dengue" { return virus_dengue() }
    if abbr == "ZIKV" { return virus_zika() }
    if abbr == "zika" { return virus_zika() }
    if abbr == "WNV" { return virus_wnv() }
    if abbr == "YFV" { return virus_yellow_fever() }
    if abbr == "yellow_fever" { return virus_yellow_fever() }
    if abbr == "HCV" { return virus_hcv() }
    if abbr == "CHIKV" { return virus_chikungunya() }
    if abbr == "chikungunya" { return virus_chikungunya() }
    if abbr == "RUBV" { return virus_rubella() }
    if abbr == "rubella" { return virus_rubella() }
    if abbr == "HIV-1" { return virus_hiv1() }
    if abbr == "HIV" { return virus_hiv1() }
    if abbr == "HIV-2" { return virus_hiv2() }
    if abbr == "HTLV-1" { return virus_htlv1() }
    if abbr == "HTLV" { return virus_htlv1() }
    if abbr == "EBOV" { return virus_ebola() }
    if abbr == "ebola" { return virus_ebola() }
    if abbr == "MARV" { return virus_marburg() }
    if abbr == "marburg" { return virus_marburg() }
    if abbr == "SARS-CoV-2" { return virus_sars_cov2() }
    if abbr == "COVID" { return virus_sars_cov2() }
    if abbr == "SARS-CoV" { return virus_sars_cov() }
    if abbr == "SARS" { return virus_sars_cov() }
    if abbr == "MERS-CoV" { return virus_mers() }
    if abbr == "MERS" { return virus_mers() }
    if abbr == "RABV" { return virus_rabies() }
    if abbr == "rabies" { return virus_rabies() }
    if abbr == "PV" { return virus_poliovirus() }
    if abbr == "poliovirus" { return virus_poliovirus() }
    if abbr == "polio" { return virus_poliovirus() }
    if abbr == "HRV" { return virus_rhinovirus() }
    if abbr == "rhinovirus" { return virus_rhinovirus() }
    if abbr == "HAV" { return virus_hav() }
    if abbr == "EV-D68" { return virus_evd68() }
    if abbr == "coxsackie" { return virus_coxsackie() }
    if abbr == "CVA" { return virus_coxsackie() }
    if abbr == "CVB" { return virus_coxsackie() }
    if abbr == "NoV" { return virus_norovirus() }
    if abbr == "norovirus" { return virus_norovirus() }
    if abbr == "RV" { return virus_rotavirus() }
    if abbr == "rotavirus" { return virus_rotavirus() }
    if abbr == "SNV" { return virus_hantavirus() }
    if abbr == "hantavirus" { return virus_hantavirus() }
    if abbr == "CCHFV" { return virus_cchf() }
    if abbr == "CCHF" { return virus_cchf() }
    if abbr == "LASV" { return virus_lassa() }
    if abbr == "lassa" { return virus_lassa() }
    if abbr == "LCMV" { return virus_lcmv() }

    return unknown_virus()
}


// ═══════════════════════════════════════════════════════════════
// REPLICATION CYCLES
// ═══════════════════════════════════════════════════════════════
//
// Three fundamental viral replication strategies:
// Lytic: immediate replication and cell lysis (productive).
// Lysogenic: integration/episomal maintenance, latency, can
//   reactivate to lytic (herpesviruses, HIV provirus).
// Budding: enveloped viruses acquire membrane at egress
//   without immediate lysis (influenza, HIV, paramyxo).
//
// Flint SJ et al. Principles of Virology, 4th ed, Ch 1-5.

fn lytic_cycle_steps(step: Int) -> ReplicationStep {
    if step == 1 { return rstep(1, "attachment", "Virion binds specific receptor(s) on host cell surface. Specificity of attachment determines tropism. Examples: HIV gp120 binds CD4, influenza HA binds sialic acid, rhinovirus binds ICAM-1.") }
    if step == 2 { return rstep(2, "penetration", "Virion or genome enters the cell. Mechanisms: receptor-mediated endocytosis (most non-enveloped), membrane fusion at cell surface (paramyxoviruses, HIV at neutral pH), endosomal fusion triggered by low pH (influenza).") }
    if step == 3 { return rstep(3, "uncoating", "Viral genome is released from capsid into cellular compartment appropriate for replication. For DNA viruses: genome enters nucleus. For most RNA viruses: genome released into cytoplasm. For retroviruses: reverse transcription occurs in cytoplasm, then proviral DNA enters nucleus.") }
    if step == 4 { return rstep(4, "genome_replication", "Viral genome is copied by viral or host polymerases. dsDNA viruses: host or viral DNA polymerase in nucleus. +ssRNA: viral RdRp copies via negative-sense intermediate. -ssRNA: viral RdRp transcribes to +mRNA and copies genome. Retroviruses: reverse transcriptase makes dsDNA, integrase inserts into host chromosome.") }
    if step == 5 { return rstep(5, "transcription_and_translation", "Viral mRNAs are produced and translated by host ribosomes. Some viruses (picornaviruses) use IRES for cap-independent translation. Polyproteins may be cleaved by viral proteases. Structural and non-structural proteins accumulate.") }
    if step == 6 { return rstep(6, "assembly", "New virions are assembled from viral genomes and structural proteins. Icosahedral viruses: self-assembly. Helical: nucleocapsid protein binds genome. Complex viruses (poxviruses): multi-step assembly in cytoplasmic factories. Genome packaging may involve specific packaging signals.") }
    if step == 7 { return rstep(7, "release", "Mature virions exit the cell. Non-enveloped: cell lysis (lytic release). Enveloped: budding through cellular membrane (see budding_steps). Some viruses use exocytosis. Cell death may be caused by shut-off of host protein synthesis, membrane disruption, or immune-mediated killing.") }

    return rstep(0, "", "")
}

fn lytic_cycle_step_count() -> Int {
    return 7
}

fn lysogenic_cycle_steps(step: Int) -> ReplicationStep {
    if step == 1 { return rstep(1, "attachment_and_entry", "Same as lytic cycle: virion binds receptor, penetrates cell, and delivers genome to appropriate compartment. The initial steps are identical regardless of whether lytic or lysogenic outcome follows.") }
    if step == 2 { return rstep(2, "integration_or_episome", "Viral genome integrates into host chromosome (retroviruses: integrase inserts proviral DNA; HPV: E6/E7 integration in cancer) or is maintained as episome (herpesviruses: circular episome in nucleus, tethered to host chromosomes via LANA for KSHV, EBNA1 for EBV). HIV: obligate integration.") }
    if step == 3 { return rstep(3, "latency_maintenance", "Viral gene expression is restricted to a minimal program. Herpesviruses: latency-associated transcripts (LATs for HSV, EBNA1 for EBV, LANA for KSHV). HIV: provirus is transcriptionally silent in resting memory CD4+ T cells (latent reservoir). Host cell divides and transmits viral genome to daughter cells.") }
    if step == 4 { return rstep(4, "reactivation_trigger", "Stimuli reactivate lytic replication from latent state. HSV/VZV: stress, UV exposure, immunosuppression, nerve damage. EBV: B cell activation. CMV: immunosuppression (transplant, AIDS). HIV: T cell activation (antigen stimulation, cytokines like TNF-alpha, NF-kB activation). Reactivation rate varies by virus.") }
    if step == 5 { return rstep(5, "lytic_replication_resumes", "Full lytic gene expression program activates. Viral genome amplification, structural protein synthesis, virion assembly and release. This produces infectious virus, potentially causing recurrent disease (HSV cold sores, VZV shingles) or opportunistic disease in immunosuppressed (CMV retinitis).") }

    return rstep(0, "", "")
}

fn lysogenic_cycle_step_count() -> Int {
    return 5
}

fn budding_steps(step: Int) -> ReplicationStep {
    if step == 1 { return rstep(1, "glycoprotein_transport", "Viral envelope glycoproteins (HA/NA for influenza, gp120/gp41 for HIV, F/HN for paramyxoviruses) are synthesized in ER, glycosylated in Golgi, and transported to the host cell plasma membrane (or other internal membrane). Glycoproteins cluster in lipid raft domains.") }
    if step == 2 { return rstep(2, "matrix_assembly", "Matrix proteins (M1 for influenza, MA/p17 for HIV, M for paramyxoviruses) line the inner face of the membrane beneath the glycoprotein-enriched domains. Matrix protein bridges the nucleocapsid to the cytoplasmic tails of envelope glycoproteins.") }
    if step == 3 { return rstep(3, "nucleocapsid_recruitment", "Assembled nucleocapsid (genome + capsid proteins) is recruited to the budding site by interactions with matrix protein. For HIV: Gag polyprotein drives both matrix and capsid assembly. Packaging signals on the genome ensure correct genome encapsidation.") }
    if step == 4 { return rstep(4, "membrane_curvature_and_bud_formation", "Membrane deforms outward as viral components accumulate. Many viruses hijack the host ESCRT (endosomal sorting complex required for transport) machinery for membrane scission. HIV: p6 Gag PTAP/YPXL motifs recruit ESCRT-I (TSG101) and ALIX. Influenza: M2 ion channel may substitute for ESCRT at the scission step.") }
    if step == 5 { return rstep(5, "scission_and_release", "Membrane pinches off, releasing the enveloped virion. For influenza: neuraminidase (NA) cleaves sialic acid on the cell surface to prevent self-aggregation and allow virus release (oseltamivir blocks this step). For HIV: protease cleaves Gag-Pol polyprotein during/after budding (maturation), producing infectious virion. Budding does not necessarily kill the cell immediately.") }

    return rstep(0, "", "")
}

fn budding_step_count() -> Int {
    return 5
}


// ═══════════════════════════════════════════════════════════════
// BALTIMORE CLASSIFICATION
// ═══════════════════════════════════════════════════════════════
//
// David Baltimore's classification system (Nobel 1975) organizes
// all viruses by how they produce mRNA from their genomes.
// Seven classes covering all possible genome strategies.
//
// Baltimore D. Bacteriol Rev 35:235-241, 1971.

fn baltimore_class(class_num: Int) -> BaltimoreClass {
    if class_num == 1 { return bclass(1, "dsDNA", "Host or viral DNA-dependent RNA polymerase transcribes mRNA directly from dsDNA genome. Most replicate in nucleus (using host RNA pol II) except Poxviridae (cytoplasm, encode own RNA pol).", "Herpesviridae, Adenoviridae, Papillomaviridae, Polyomaviridae, Poxviridae") }

    if class_num == 2 { return bclass(2, "ssDNA", "ssDNA genome is converted to dsDNA replicative form by host DNA polymerase, then transcribed to mRNA. Requires actively dividing host cells for S-phase DNA polymerase access.", "Parvoviridae (B19)") }

    if class_num == 3 { return bclass(3, "dsRNA", "Viral RNA-dependent RNA polymerase (RdRp, packaged in virion) transcribes mRNA from dsRNA segments within the intact core particle. dsRNA is never exposed to cytoplasm (avoids innate immune detection via RIG-I/MDA5).", "Reoviridae (Rotavirus)") }

    if class_num == 4 { return bclass(4, "+ssRNA (positive-sense)", "Genome IS the mRNA. Directly translated by host ribosomes upon entry. Viral RdRp (translated from genome) then copies genome via negative-sense intermediate. Single polyprotein cleaved by viral proteases (picorna, flavi) or subgenomic mRNAs produced (corona, toga).", "Picornaviridae, Flaviviridae, Togaviridae, Coronaviridae, Caliciviridae") }

    if class_num == 5 { return bclass(5, "-ssRNA (negative-sense)", "Genome is complementary to mRNA (anti-sense). Virion must carry its own RdRp to transcribe genome into mRNA upon entry. Cannot be directly translated. May be segmented (Orthomyxoviridae: 8 segments, Bunyavirales: 3 segments) or non-segmented (Paramyxoviridae, Filoviridae, Rhabdoviridae).", "Orthomyxoviridae, Paramyxoviridae, Rhabdoviridae, Filoviridae, Bunyavirales") }

    if class_num == 6 { return bclass(6, "+ssRNA with reverse transcriptase (retroviruses)", "Diploid +ssRNA genome is reverse-transcribed to dsDNA by viral reverse transcriptase (RT), then integrated into host chromosome by integrase. Proviral DNA is transcribed by host RNA pol II to produce mRNA and new genomic RNA. Unique: DNA intermediate integrates permanently.", "Retroviridae (HIV-1, HIV-2, HTLV-1)") }

    if class_num == 7 { return bclass(7, "dsDNA with reverse transcriptase (pararetroviruses)", "Partially dsDNA genome (gapped, relaxed circular DNA). In nucleus, repaired to covalently closed circular DNA (cccDNA). cccDNA transcribed by host RNA pol II to pregenomic RNA (pgRNA). pgRNA reverse-transcribed by viral RT back to DNA in cytoplasm (encapsidated). cccDNA persists as minichromosome, making cure extremely difficult.", "Hepadnaviridae (HBV)") }

    return bclass(0, "", "", "")
}

fn baltimore_class_count() -> Int {
    return 7
}


// ═══════════════════════════════════════════════════════════════
// ANTIVIRAL DRUG LOOKUP
// ═══════════════════════════════════════════════════════════════
//
// Major FDA-approved and clinically important antiviral agents.
// Each entry includes mechanism, target, and viral spectrum.
//
// De Clercq E, Li G. Clin Microbiol Rev 29:695-747, 2016.
// Richman DD et al. Clinical Virology, 4th ed, ASM Press, 2017.

fn antiviral(drug_name: String) -> Antiviral {

    // ─── Herpesvirus antivirals ─────────────────────────
    if drug_name == "acyclovir" { return av("Acyclovir", "nucleoside analog (guanosine)", "Phosphorylated by viral thymidine kinase (TK) to acyclovir monophosphate, then by cellular kinases to triphosphate. Acyclovir-TP incorporated by viral DNA polymerase, causes chain termination (lacks 3'-OH). Selective: requires viral TK for first phosphorylation, so minimal toxicity to uninfected cells.", "viral DNA polymerase (UL30 for HSV, ORF28 for VZV)", "HSV-1, HSV-2, VZV; some activity against EBV; minimal against CMV (CMV lacks TK, uses UL97 kinase instead)", "oral, IV, topical", true, "Elion GB et al. Proc Natl Acad Sci 74:5716-5720, 1977 (Nobel 1988)") }

    if drug_name == "valacyclovir" { return av("Valacyclovir", "nucleoside analog prodrug (L-valyl ester of acyclovir)", "Converted to acyclovir by intestinal and hepatic esterases. Achieves 3-5x higher oral bioavailability than acyclovir. Same mechanism as acyclovir (viral TK-dependent phosphorylation, chain termination).", "viral DNA polymerase", "HSV-1, HSV-2, VZV (preferred oral agent for zoster due to less frequent dosing)", "oral only", true, "Soul-Lawton J et al. Antimicrob Agents Chemother 39:2759-2764, 1995") }

    if drug_name == "ganciclovir" { return av("Ganciclovir", "nucleoside analog (guanosine analog with additional hydroxymethyl group)", "Phosphorylated by CMV UL97 kinase (not thymidine kinase) to monophosphate, then cellular kinases to triphosphate. Ganciclovir-TP competitively inhibits CMV DNA polymerase (UL54) and causes chain termination. More toxic than acyclovir (myelosuppression) because cellular kinases can partially phosphorylate it.", "CMV DNA polymerase (UL54)", "CMV (primary indication); also active against HSV, VZV, HHV-6, HHV-8", "IV; valganciclovir is oral prodrug", true, "Markham A, Faulds D. Drugs 48:455-484, 1994") }

    if drug_name == "foscarnet" { return av("Foscarnet", "pyrophosphate analog (phosphonoformic acid)", "Directly inhibits viral DNA polymerase by binding the pyrophosphate binding site. Does NOT require viral kinase activation (works against acyclovir-resistant TK-mutant HSV and ganciclovir-resistant UL97-mutant CMV). Does not get incorporated into DNA.", "viral DNA polymerase (pyrophosphate binding site)", "HSV (acyclovir-resistant), CMV (ganciclovir-resistant), VZV, HHV-6; second-line agent due to nephrotoxicity and electrolyte disturbances (hypocalcemia, hypomagnesemia)", "IV only", true, "Chrisp P, Clissold SP. Drugs 41:104-129, 1991") }

    if drug_name == "cidofovir" { return av("Cidofovir", "nucleotide analog (acyclic cytosine nucleotide phosphonate)", "Already has one phosphate group, so does NOT require viral kinase for initial phosphorylation. Cellular kinases convert to active diphosphate form. Inhibits viral DNA polymerase. Broad spectrum against DNA viruses. Nephrotoxic (requires probenecid co-administration and hydration).", "viral DNA polymerase", "CMV, adenovirus, BK virus, HPV (intralesional), poxviruses (smallpox, mpox); broad anti-DNA virus activity", "IV (with probenecid); intralesional for HPV/RRP", true, "Cundy KC et al. Antimicrob Agents Chemother 39:1247-1252, 1995") }

    // ─── HCV direct-acting antivirals ───────────────────
    if drug_name == "sofosbuvir" { return av("Sofosbuvir", "nucleotide analog (uridine analog phosphoramidate prodrug)", "Prodrug metabolized intracellularly to active uridine triphosphate analog (GS-461203). Incorporated by HCV NS5B RNA-dependent RNA polymerase, causes chain termination. Pangenotypic. High barrier to resistance. Backbone of all modern HCV regimens.", "HCV NS5B RdRp (active site)", "HCV (all genotypes); backbone of Sovaldi, Harvoni (with ledipasvir), Epclusa (with velpatasvir), Vosevi (with velpatasvir/voxilaprevir)", "oral", true, "Sofia MJ et al. J Med Chem 53:7202-7218, 2010; Lawitz E et al. N Engl J Med 368:1878-1887, 2013") }

    if drug_name == "ledipasvir" { return av("Ledipasvir", "NS5A inhibitor", "Inhibits HCV NS5A protein, which is essential for viral RNA replication and virion assembly. NS5A has no enzymatic activity but is a multifunctional phosphoprotein involved in membranous web formation. Used in combination with sofosbuvir (Harvoni).", "HCV NS5A protein", "HCV genotypes 1, 4, 5, 6 (with sofosbuvir)", "oral (in combination)", true, "Afdhal N et al. N Engl J Med 370:1889-1898, 2014") }

    // ─── HIV antiretrovirals ────────────────────────────
    if drug_name == "tenofovir" { return av("Tenofovir (TDF/TAF)", "nucleotide reverse transcriptase inhibitor (NtRTI, acyclic adenine nucleotide)", "Prodrug (TDF or TAF) metabolized to tenofovir diphosphate intracellularly. Competitively inhibits HIV-1 reverse transcriptase and causes chain termination after incorporation. Also active against HBV (dual indication). TAF has improved renal and bone safety profile vs TDF.", "HIV-1 reverse transcriptase; HBV reverse transcriptase", "HIV-1, HIV-2, HBV; component of PrEP regimens (Truvada = TDF/FTC; Descovy = TAF/FTC)", "oral", true, "Gallant JE et al. N Engl J Med 354:251-260, 2006") }

    if drug_name == "dolutegravir" { return av("Dolutegravir", "integrase strand transfer inhibitor (INSTI)", "Binds to HIV-1 integrase active site (chelates the two Mg2+ ions in the DDE motif), blocking strand transfer of viral DNA into host chromosome. Highest barrier to resistance among INSTIs. Once daily, unboosted.", "HIV-1 integrase (strand transfer step)", "HIV-1, HIV-2; preferred first-line component (WHO and DHHS guidelines); Dovato (DTG/3TC), Triumeq (DTG/ABC/3TC), Tivicay (DTG alone)", "oral", true, "Walmsley SL et al. N Engl J Med 369:1807-1818, 2013 (SINGLE trial)") }

    if drug_name == "bictegravir" { return av("Bictegravir", "integrase strand transfer inhibitor (INSTI)", "Same mechanism as dolutegravir: chelates catalytic Mg2+ ions in integrase active site, blocks strand transfer. Co-formulated with emtricitabine/TAF as Biktarvy (most prescribed ART regimen globally). High barrier to resistance. No food requirement.", "HIV-1 integrase", "HIV-1; Biktarvy (BIC/FTC/TAF) = most commonly prescribed single-tablet ART regimen", "oral", true, "Sax PE et al. Lancet 390:2073-2082, 2017") }

    if drug_name == "efavirenz" { return av("Efavirenz", "non-nucleoside reverse transcriptase inhibitor (NNRTI)", "Binds allosteric hydrophobic pocket near the active site of HIV-1 RT, inducing conformational change that impairs polymerase activity. Non-competitive inhibitor. Does NOT work against HIV-2 (intrinsic resistance). CNS side effects (vivid dreams, dizziness) in first weeks.", "HIV-1 reverse transcriptase (allosteric site)", "HIV-1 only (NOT HIV-2); formerly first-line (Atripla = EFV/TDF/FTC), now replaced by INSTIs in most guidelines", "oral", true, "Staszewski S et al. N Engl J Med 341:1865-1873, 1999") }

    if drug_name == "darunavir" { return av("Darunavir", "protease inhibitor (PI)", "Inhibits HIV-1 aspartyl protease, preventing cleavage of Gag-Pol polyprotein into functional structural proteins and enzymes. Without protease activity, released virions are immature and non-infectious. Must be boosted with ritonavir or cobicistat (CYP3A4 inhibitor) for adequate drug levels.", "HIV-1 protease (aspartyl protease)", "HIV-1 (highest barrier to resistance among PIs); Prezcobix (DRV/cobicistat), Symtuza (DRV/cobicistat/FTC/TAF)", "oral (boosted)", true, "Clotet B et al. Lancet 369:1169-1178, 2007") }

    // ─── Influenza antivirals ───────────────────────────
    if drug_name == "oseltamivir" { return av("Oseltamivir (Tamiflu)", "neuraminidase inhibitor", "Prodrug (oseltamivir phosphate) converted by hepatic esterases to oseltamivir carboxylate. Inhibits influenza neuraminidase (NA), preventing cleavage of sialic acid residues on host cell surface. Newly assembled virions cannot be released (aggregate on cell surface). Must be given within 48 hours of symptom onset for benefit.", "influenza neuraminidase (NA)", "influenza A and B (all subtypes); no activity against influenza C (uses HEF, not NA)", "oral", true, "Kim CU et al. J Am Chem Soc 119:681-690, 1997; Hayden FG et al. N Engl J Med 341:1336-1343, 1999") }

    if drug_name == "baloxavir" { return av("Baloxavir marboxil (Xofluza)", "cap-dependent endonuclease inhibitor", "Prodrug converted to baloxavir acid. Inhibits the cap-dependent endonuclease (CEN) activity of the PA subunit of influenza RNA polymerase. Blocks cap-snatching (influenza steals 5' caps from host mRNAs to prime viral mRNA synthesis). Single oral dose. Novel mechanism distinct from NA inhibitors.", "influenza RNA polymerase PA subunit (CEN domain)", "influenza A and B; active against oseltamivir-resistant strains; single dose treatment", "oral (single dose)", true, "Hayden FG et al. N Engl J Med 379:913-923, 2018; Noshi T et al. Antiviral Res 160:109-117, 2018") }

    // ─── COVID-19 antivirals ────────────────────────────
    if drug_name == "nirmatrelvir" { return av("Nirmatrelvir/Ritonavir (Paxlovid)", "protease inhibitor (peptidomimetic)", "Nirmatrelvir inhibits SARS-CoV-2 main protease (Mpro/3CLpro), blocking cleavage of viral polyprotein into functional nonstructural proteins. Ritonavir is a CYP3A4 inhibitor used as pharmacokinetic booster (does not directly inhibit SARS-CoV-2). Must be given within 5 days of symptom onset.", "SARS-CoV-2 Mpro (3CLpro)", "SARS-CoV-2; also active against other coronaviruses (conserved Mpro); drug interactions with ritonavir (CYP3A4)", "oral", true, "Owen DR et al. Science 374:1586-1593, 2021; Hammond J et al. N Engl J Med 386:1397-1408, 2022 (EPIC-HR trial)") }

    if drug_name == "remdesivir" { return av("Remdesivir (Veklury)", "nucleotide analog (adenosine analog phosphoramidate prodrug)", "Prodrug metabolized to active nucleoside triphosphate (GS-443902). Incorporated by viral RdRp, causes delayed chain termination (not immediate: allows addition of 3 more nucleotides before termination). Originally developed for Ebola. Broad-spectrum RNA virus activity in vitro.", "viral RNA-dependent RNA polymerase (RdRp)", "SARS-CoV-2 (FDA approved), Ebola (activity but inferior to mAb cocktails in PALM trial), broad in vitro activity against Nipah, MERS, RSV, Marburg", "IV only", true, "Beigel JH et al. N Engl J Med 383:1813-1826, 2020 (ACTT-1 trial); Eastman RT et al. ACS Cent Sci 6:672-683, 2020") }

    // ─── Broad-spectrum / other ─────────────────────────
    if drug_name == "ribavirin" { return av("Ribavirin", "nucleoside analog (guanosine analog)", "Multiple mechanisms: (a) inhibits IMP dehydrogenase (IMPDH), depleting GTP pools; (b) incorporated by viral RdRp causing lethal mutagenesis (error catastrophe); (c) directly inhibits some viral polymerases; (d) immunomodulatory (shifts Th2 to Th1). Teratogenic (Category X).", "IMPDH (host enzyme); viral RdRp (lethal mutagenesis)", "HCV (historical, with IFN, now replaced by DAAs); RSV (aerosolized, controversial); Lassa fever (IV, reduces mortality if given early); CCHF; hantavirus (HFRS); broad but modest activity", "oral, IV, inhaled", true, "Sidwell RW et al. Science 177:705-706, 1972; Tam RC et al. Antivir Chem Chemother 12:261-272, 2001") }

    if drug_name == "tecovirimat" { return av("Tecovirimat (TPOXX)", "viral egress inhibitor", "Inhibits orthopoxvirus VP37 protein (a major envelope protein required for production of extracellular enveloped virions). Blocks viral egress from cells, preventing cell-to-cell and systemic spread. Approved for smallpox under Animal Rule (efficacy in animal models, safety in humans). Used for mpox under expanded access.", "orthopoxvirus VP37 (p37) envelope wrapping protein", "orthopoxviruses: smallpox (variola), mpox (monkeypox), cowpox, vaccinia complications", "oral, IV", true, "Grosenbach DW et al. N Engl J Med 379:44-53, 2018; FDA approved 2018") }

    if drug_name == "interferon_alpha" { return av("Pegylated Interferon-alpha (PEG-IFN-alpha)", "immunomodulator (cytokine)", "Recombinant interferon-alpha conjugated with polyethylene glycol for extended half-life. Binds IFNAR1/2 receptor, activates JAK-STAT pathway, induces hundreds of interferon-stimulated genes (ISGs) that establish antiviral state: PKR (translational inhibition), OAS/RNase L (RNA degradation), Mx proteins (block viral replication). Also enhances NK cell activity and MHC I expression.", "host IFNAR receptor (JAK-STAT signaling)", "HBV (finite course, 48 weeks, ~30% HBeAg seroconversion), HCV (historical, replaced by DAAs), HPV (adjunct), HHV-8/KSHV; broad antiviral but significant side effects (flu-like symptoms, depression, cytopenias)", "subcutaneous injection (weekly)", true, "Isaacs A, Lindenmann J. Proc R Soc Lond B Biol Sci 147:258-267, 1957 (discovery); Manns MP et al. Lancet 358:958-965, 2001") }

    if drug_name == "molnupiravir" { return av("Molnupiravir (Lagevrio)", "nucleoside analog (cytidine analog prodrug, ribonucleoside)", "Prodrug metabolized to N-hydroxycytidine (NHC) triphosphate. Incorporated by viral RdRp, then causes lethal mutagenesis: NHC can pair with either G or A, introducing transition mutations (C-to-U and G-to-A) throughout the viral genome. Accumulation of mutations exceeds the error threshold, causing viral population collapse (error catastrophe).", "viral RdRp (lethal mutagenesis / error catastrophe)", "SARS-CoV-2 (EUA); broad in vitro activity against influenza, RSV, Ebola, Venezuelan equine encephalitis virus", "oral", true, "Jayk Bernal A et al. N Engl J Med 386:509-520, 2022 (MOVe-OUT trial); Kabinger F et al. Nat Struct Mol Biol 28:740-746, 2021") }

    if drug_name == "palivizumab" { return av("Palivizumab (Synagis)", "monoclonal antibody (humanized IgG1)", "Binds RSV F (fusion) protein A antigenic site, preventing viral fusion with host cell membrane and blocking cell-to-cell spread via syncytium formation. Prophylactic only (does not treat active infection). Given monthly during RSV season to high-risk infants.", "RSV F protein (antigenic site A)", "RSV (prophylaxis only); high-risk infants: premature (<29 weeks), chronic lung disease of prematurity, hemodynamically significant congenital heart disease", "IM injection (monthly, 5 doses during RSV season)", true, "The IMpact-RSV Study Group. Pediatrics 102:531-537, 1998") }

    if drug_name == "nirsevimab" { return av("Nirsevimab (Beyfortus)", "monoclonal antibody (long-acting, YTE Fc-modified IgG1)", "Binds prefusion conformation of RSV F protein (site zero) with high affinity, preventing conformational change required for membrane fusion. YTE modification in Fc region extends serum half-life to ~70 days (vs ~21 days for standard IgG), allowing single-dose protection for entire RSV season.", "RSV F protein (prefusion site zero)", "RSV (prophylaxis); all infants entering their first RSV season; replaced palivizumab for most indications due to single-dose convenience", "IM injection (single dose)", true, "Hammitt LL et al. N Engl J Med 386:837-846, 2022 (MELODY trial); Griffin MP et al. N Engl J Med 383:415-425, 2020") }

    return unknown_antiviral()
}


// ═══════════════════════════════════════════════════════════════
// FAMILY SUMMARY FUNCTIONS
// ═══════════════════════════════════════════════════════════════

fn family_summary(family_name: String) -> String {
    if family_name == "Herpesviridae" { return "Large dsDNA, enveloped, icosahedral. 8 human herpesviruses (HHV-1 through HHV-8). ALL establish lifelong latency. Replicate in nucleus. Encode own DNA polymerase (acyclovir/ganciclovir target). Alpha (HSV, VZV): neurotropic latency. Beta (CMV, HHV-6/7): myeloid/lymphoid latency. Gamma (EBV, HHV-8): B cell latency, oncogenic. Fields Virology 7th ed Ch 62-70." }

    if family_name == "Papillomaviridae" { return "Small dsDNA (~8 kb), non-enveloped, icosahedral. >200 genotypes. Tropism for stratified squamous epithelium. High-risk types (16, 18) encode E6 (degrades p53 via ubiquitin ligase E6AP) and E7 (binds and degrades Rb, releasing E2F). Cause cervical cancer, oropharyngeal cancer. Gardasil 9 vaccine covers types 6/11/16/18/31/33/45/52/58. Fields Virology 7th ed Ch 71." }

    if family_name == "Adenoviridae" { return "Medium dsDNA (~36 kb), non-enveloped, icosahedral with fiber proteins. >50 human serotypes. Very stable on surfaces. Cause respiratory, GI, ocular disease. Used as viral vectors for gene therapy (adeno-associated virus) and vaccines (J&J COVID vaccine uses Ad26). E1A/E1B oncoproteins can transform rodent cells. Fields Virology 7th ed Ch 56." }

    if family_name == "Hepadnaviridae" { return "Small partially dsDNA (3.2 kb) with RT (Baltimore VII). Enveloped, icosahedral. HBV only human member. Hepatocyte tropism via NTCP receptor. cccDNA minichromosome in nucleus enables chronic infection. HBx protein is oncogenic (integrates into host genome). Vaccine (recombinant HBsAg) is first anti-cancer vaccine. Fields Virology 7th ed Ch 73." }

    if family_name == "Poxviridae" { return "Very large dsDNA (130-375 kb), enveloped, brick-shaped (complex symmetry). UNIQUE: replicate entirely in cytoplasm (encode own DNA-dependent RNA polymerase, capping enzymes, poly-A polymerase). Variola eradicated 1980 by WHO vaccination campaign. Mpox endemic in Africa. Molluscum contagiosum common in children. Fields Virology 7th ed Ch 80." }

    if family_name == "Parvoviridae" { return "Smallest DNA viruses (~5 kb ssDNA), non-enveloped, icosahedral. Require S-phase cellular machinery for replication (only replicate in actively dividing cells). B19: erythroid progenitor tropism (globoside/P antigen receptor). AAV (adeno-associated virus): used as gene therapy vector (Luxturna, Zolgensma). Fields Virology 7th ed Ch 77." }

    if family_name == "Polyomaviridae" { return "Small dsDNA (~5 kb), non-enveloped, icosahedral. JC virus causes PML in immunosuppressed. BK virus causes nephropathy in kidney transplant. Merkel cell polyomavirus causes Merkel cell carcinoma. Large T antigen binds p53 and Rb (oncogenic potential). Nearly universal childhood infection. Fields Virology 7th ed Ch 72." }

    if family_name == "Orthomyxoviridae" { return "Segmented negative-sense ssRNA (8 segments for A/B, 7 for C). Enveloped, helical RNP. HA (attachment, 18 subtypes) and NA (release, 11 subtypes). Unique RNA virus: replicates in NUCLEUS (cap-snatching from host pre-mRNAs). Antigenic drift (point mutations, seasonal). Antigenic shift (segment reassortment, type A only, pandemic). Fields Virology 7th ed Ch 41-43." }

    if family_name == "Paramyxoviridae" { return "Non-segmented negative-sense ssRNA, enveloped, helical. F protein mediates fusion (can cause syncytia). Replicate in cytoplasm. Measles: most contagious (R0 14-18), causes immune amnesia. Mumps: parotitis, orchitis. RSV: #1 cause bronchiolitis in infants. Parainfluenza: #1 cause croup. Nipah/Hendra: BSL-4, high CFR. Fields Virology 7th ed Ch 36-40." }

    if family_name == "Flaviviridae" { return "Positive-sense ssRNA (~10-12 kb), enveloped, icosahedral. Arthropod-borne (Aedes/Culex mosquitoes) except HCV (bloodborne). Single ORF translated to polyprotein. Flavi = yellow (yellow fever). Dengue: 4 serotypes, ADE risk. Zika: congenital microcephaly. WNV: neuroinvasive. HCV: DAA revolution (>95% cure). Fields Virology 7th ed Ch 30-35." }

    if family_name == "Retroviridae" { return "Diploid positive-sense ssRNA with RT (Baltimore VI). Enveloped, conical (HIV) or icosahedral (HTLV). RT converts RNA to dsDNA, integrase inserts provirus into host genome permanently. HIV targets CD4+ T cells via gp120-CD4-CCR5/CXCR4 interaction. ART achieves viral suppression but cannot cure (latent reservoir in resting memory T cells). HTLV-1: ATL and HAM/TSP. Fields Virology 7th ed Ch 49-55." }

    if family_name == "Filoviridae" { return "Non-segmented negative-sense ssRNA, enveloped, filamentous (thread-like). BSL-4. Fruit bat reservoir. Cause viral hemorrhagic fever with massive cytokine storm, DIC, endothelial dysfunction. Ebola: 25-90% CFR; Inmazeb (triple mAb cocktail) FDA approved 2020; Ervebo vaccine. Marburg: similar disease, no approved therapeutics. Fields Virology 7th ed Ch 32." }

    if family_name == "Coronaviridae" { return "Largest RNA virus genomes (27-32 kb), positive-sense ssRNA, enveloped, helical nucleocapsid. Crown-like spike projections. Replicate in cytoplasm (DMVs from ER). nsp14 has proofreading exonuclease (unique among RNA viruses, explains large genome). SARS-CoV-2: ACE2 receptor. MERS-CoV: DPP4 receptor. See sars_cov2.sy for detailed SARS-CoV-2 biology. Fields Virology 7th ed Ch 36-37." }

    if family_name == "Rhabdoviridae" { return "Non-segmented negative-sense ssRNA, enveloped, bullet-shaped (unique morphology). Rabies: neurotropic, retrograde axonal transport from bite site to brain. Negri bodies (intracytoplasmic inclusions in neurons, especially Purkinje cells). Nearly 100% fatal once symptomatic. PEP (wound care + RIG + vaccine) is ~100% effective if given before symptoms. Fields Virology 7th ed Ch 31." }

    if family_name == "Picornaviridae" { return "Small positive-sense ssRNA (7-9 kb), non-enveloped, icosahedral. Pico + RNA = small RNA virus. Single polyprotein cleaved by 2Apro and 3Cpro. IRES-driven cap-independent translation. Enteroviruses: poliovirus (motor neuron destruction), coxsackie (myocarditis, HFMD), EV-D68 (AFM). Rhinovirus: #1 cause common cold. HAV: self-limiting hepatitis. Fields Virology 7th ed Ch 17-22." }

    if family_name == "Caliciviridae" { return "Positive-sense ssRNA, non-enveloped, icosahedral (calyx-shaped surface depressions). Norovirus: #1 cause epidemic gastroenteritis worldwide. Extremely contagious (10-100 virion infectious dose). Cannot be grown in standard cell culture. Resists alcohol-based hand sanitizers (non-enveloped). HBGAs as attachment factors. No vaccine yet. Fields Virology 7th ed Ch 20." }

    if family_name == "Reoviridae" { return "Segmented dsRNA (10-12 segments), non-enveloped, icosahedral double/triple-layered particle. Baltimore class III. Rotavirus: 11 segments, NSP4 viral enterotoxin, was #1 cause severe childhood diarrhea before vaccination. Genome never exposed as dsRNA (transcription within intact core avoids RIG-I/MDA5 detection). Fields Virology 7th ed Ch 44." }

    if family_name == "Bunyavirales" { return "Segmented negative-sense ssRNA (3 segments: L, M, S). Enveloped. Rodent-borne (hantaviruses) or arthropod-borne (CCHF, Rift Valley fever). Hantavirus: Sin Nombre (HPS, Americas) vs Hantaan (HFRS, Asia). CCHF: Hyalomma tick-borne, hemorrhagic fever, 10-40% CFR. Most are zoonotic with no sustained human-to-human transmission. Fields Virology 7th ed Ch 45-48." }

    if family_name == "Arenaviridae" { return "Ambisense ssRNA (2 segments: L and S), enveloped. Named for sandy/grainy appearance (host ribosomes inside virion, non-functional). Rodent-borne. Old World: Lassa (Mastomys rat, West Africa, ribavirin reduces mortality), LCMV (house mouse, aseptic meningitis, Nobel Prize model). New World: Junin, Machupo (South American hemorrhagic fevers). Fields Virology 7th ed Ch 33." }

    return "Unknown family"
}


// ═══════════════════════════════════════════════════════════════
// UTILITY FUNCTIONS
// ═══════════════════════════════════════════════════════════════

fn is_enveloped(addr: Int) -> Bool {
    // Non-enveloped (naked) viruses are resistant to detergents,
    // desiccation, and stomach acid. Enveloped viruses are fragile
    // outside the body but can fuse with host membranes for entry.
    if addr == 9 { return false }
    if addr == 10 { return false }
    if addr == 11 { return false }
    if addr == 12 { return false }
    if addr == 16 { return false }
    if addr == 17 { return false }
    if addr == 18 { return false }
    if addr == 44 { return false }
    if addr == 45 { return false }
    if addr == 46 { return false }
    if addr == 47 { return false }
    if addr == 48 { return false }
    if addr == 49 { return false }
    if addr == 50 { return false }
    return true
}

fn is_dna_virus(addr: Int) -> Bool {
    if addr >= 1 { if addr <= 18 { return true } }
    return false
}

fn is_rna_virus(addr: Int) -> Bool {
    if addr >= 19 { if addr <= 54 { return true } }
    return false
}

fn is_oncogenic(addr: Int) -> Bool {
    // Viruses with established roles in human cancer.
    // IARC Group 1 carcinogens (biological agents).
    if addr == 4 { return true }
    if addr == 8 { return true }
    if addr == 9 { return true }
    if addr == 10 { return true }
    if addr == 13 { return true }
    if addr == 32 { return true }
    if addr == 37 { return true }
    return false
}

fn is_arthropod_borne(addr: Int) -> Bool {
    // Arboviruses: transmitted by arthropod vectors (mosquitoes,
    // ticks, sandflies). Important for travel medicine and
    // geographic epidemiology.
    if addr == 28 { return true }
    if addr == 29 { return true }
    if addr == 30 { return true }
    if addr == 31 { return true }
    if addr == 33 { return true }
    if addr == 52 { return true }
    return false
}

fn is_bsl4(addr: Int) -> Bool {
    // BSL-4 pathogens: highest containment level. No treatment,
    // no vaccine, high mortality, aerosol transmission risk.
    if addr == 14 { return true }
    if addr == 26 { return true }
    if addr == 27 { return true }
    if addr == 38 { return true }
    if addr == 39 { return true }
    if addr == 52 { return true }
    if addr == 53 { return true }
    return false
}

fn requires_viral_kinase(drug: String) -> Bool {
    // Drugs requiring viral kinase for initial phosphorylation.
    // Resistance commonly arises from TK or UL97 mutations.
    if drug == "acyclovir" { return true }
    if drug == "valacyclovir" { return true }
    if drug == "famciclovir" { return true }
    if drug == "ganciclovir" { return true }
    return false
}

fn is_vaccine_preventable(addr: Int) -> Bool {
    if addr == 1 { return true }
    if addr == 3 { return true }
    if addr == 9 { return true }
    if addr == 10 { return true }
    if addr == 11 { return true }
    if addr == 12 { return true }
    if addr == 13 { return true }
    if addr == 14 { return true }
    if addr == 15 { return true }
    if addr == 19 { return true }
    if addr == 20 { return true }
    if addr == 22 { return true }
    if addr == 23 { return true }
    if addr == 24 { return true }
    if addr == 28 { return true }
    if addr == 31 { return true }
    if addr == 33 { return true }
    if addr == 34 { return true }
    if addr == 38 { return true }
    if addr == 40 { return true }
    if addr == 43 { return true }
    if addr == 44 { return true }
    if addr == 46 { return true }
    if addr == 50 { return true }
    return false
}


// ═══════════════════════════════════════════════════════════════
// QUICK ACCESS
// ═══════════════════════════════════════════════════════════════

fn dna_virus_count() -> Int {
    return 18
}

fn rna_virus_count() -> Int {
    return 36
}

fn oncogenic_virus_list() -> String {
    return "EBV (Burkitt, NPC, Hodgkin), HHV-8/KSHV (Kaposi sarcoma, PEL), HPV-16 (cervical/oropharyngeal), HPV-18 (cervical adenocarcinoma), HBV (HCC), HCV (HCC), HTLV-1 (ATL). Cited: IARC Monographs Vol 100B, Biological Agents, 2012."
}

fn torch_infections() -> String {
    return "TORCH: Toxoplasma (parasite, not in this module), Other (syphilis, VZV, parvovirus B19, LCMV, Zika), Rubella, CMV, HSV. All can cause congenital infections with overlapping features: microcephaly, chorioretinitis, intracranial calcifications, hepatosplenomegaly, thrombocytopenia, hearing loss."
}

fn vaccine_schedule_childhood() -> String {
    return "Routine childhood viral vaccines (US CDC schedule): HepB (birth), Rotavirus (2/4/6 mo), IPV-polio (2/4/6-18 mo/4-6 yr), MMR-measles/mumps/rubella (12-15 mo/4-6 yr), Varicella-VZV (12-15 mo/4-6 yr), HepA (12-23 mo), Influenza (annually from 6 mo), HPV-Gardasil9 (11-12 yr), COVID (per current guidelines)."
}

fn antiviral_drug_count() -> Int {
    return 18
}

fn citation_fields_virology() -> String {
    return "Fields BN, Knipe DM, Howley PM. Fields Virology, 7th ed. Philadelphia: Wolters Kluwer/Lippincott Williams & Wilkins, 2021."
}

fn citation_murray_microbiology() -> String {
    return "Murray PR, Rosenthal KS, Pfaller MA. Medical Microbiology, 9th ed. Philadelphia: Elsevier, 2021."
}
