Give me 10 hsv 1 and hsv 2 microbiology mcq based on pyqs of neet pg and inicet
HSV 1 HSV 2 herpes simplex microbiology NEET PG INICET MCQ previous year questions
| Topic | HSV-1 | HSV-2 |
|---|---|---|
| Primary site | Oral/orofacial | Genital |
| Latency site | Trigeminal ganglion | Sacral (S2-S3) ganglia |
| Encephalitis | Yes (temporal lobe, adults) | Neonatal/meningitis |
| Recurrence | Less frequent (genital) | More frequent (genital) |
| Neonatal herpes | 25% | 75% |
| Lab diagnosis | Tzanck smear, PCR, culture | Same |
| Treatment | Acyclovir (TK-dependent) | Acyclovir (TK-dependent) |
| Inclusion body | Cowdry type A (intranuclear) | Cowdry type A (intranuclear) |
Give me 10 ebv virus microbiology mcq based on pyqs of neet pg and inicet
| Feature | Key Fact |
|---|---|
| Virus type | HHV-4 (gamma-herpesvirus), dsDNA |
| Cell receptor | CD21 (CR2) on B cells |
| Infected cell | B lymphocytes (and epithelial cells) |
| Atypical lymphocytes | Activated CD8+ T cells (NOT infected B cells) |
| Heterophile antibody | Agglutinates sheep/horse/bovine RBCs; NOT absorbed by guinea pig kidney |
| Acute infection markers | VCA-IgM (+), VCA-IgG (+), EBNA (-) |
| Past infection markers | VCA-IgG (+), EBNA (+) |
| Ampicillin rash | 15-30%; drug-virus interaction, not true allergy |
| Latency site | Memory B cells (EBNA-1 maintains episome) |
| Burkitt lymphoma | t(8;14); c-MYC overexpression; jaw in African children |
| Nasopharyngeal Ca | Epithelial origin; endemic in SE Asia/China |
| HOL | Lateral tongue; AIDS patients; non-scrapable |
| Kaposi sarcoma | HHV-8, NOT EBV |
| Treatment | No vaccine; acyclovir reduces shedding but not disease |
Create a detailed PDF guide on all herpesviruses (HSV, VZV, CMV, EBV)
mkdir -p /home/daytona/workspace/herpesvirus-guide && ls /home/daytona/workspace/herpesvirus-guide
~/herpesvirus-guide/build_pdf.py
#!/usr/bin/env python3
"""
Comprehensive Herpesviruses PDF Guide Builder
Uses reportlab for rich, styled PDF output
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
from reportlab.lib.colors import HexColor
import os
OUTPUT_PATH = "/home/daytona/workspace/herpesvirus-guide/Herpesviruses_Complete_Guide.pdf"
# ── Colour palette ─────────────────────────────────────────────────────────────
C_DARK_BLUE = HexColor("#1A3A5C")
C_MED_BLUE = HexColor("#2E6DA4")
C_LIGHT_BLUE = HexColor("#D6E8F7")
C_ACCENT = HexColor("#E84B3A") # red-orange for warnings / key facts
C_GOLD = HexColor("#D4A017")
C_GREEN = HexColor("#2A7A4B")
C_LIGHT_GREEN = HexColor("#D9F0E3")
C_ORANGE = HexColor("#E07B2A")
C_LIGHT_ORANGE= HexColor("#FDE8D0")
C_PURPLE = HexColor("#6A3FA0")
C_LIGHT_PURPLE= HexColor("#EDE4F8")
C_GREY_BG = HexColor("#F5F5F5")
C_TABLE_HDR = HexColor("#1A3A5C")
C_TABLE_ALT = HexColor("#EBF3FA")
C_WHITE = colors.white
C_BLACK = colors.black
PAGE_W, PAGE_H = A4
MARGIN = 1.8 * cm
# ── Style definitions ──────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def make_style(name, parent="Normal", **kwargs):
s = ParagraphStyle(name, parent=styles[parent], **kwargs)
return s
# Cover / display styles
cover_title = make_style("CoverTitle",
fontSize=32, textColor=C_WHITE, alignment=TA_CENTER,
fontName="Helvetica-Bold", spaceAfter=8, leading=40)
cover_sub = make_style("CoverSub",
fontSize=16, textColor=HexColor("#BDD9F2"), alignment=TA_CENTER,
fontName="Helvetica", spaceAfter=6, leading=22)
cover_author = make_style("CoverAuthor",
fontSize=11, textColor=HexColor("#90B8D8"), alignment=TA_CENTER,
fontName="Helvetica-Oblique")
# Section headers
chapter_title = make_style("ChapterTitle",
fontSize=22, textColor=C_WHITE, fontName="Helvetica-Bold",
spaceAfter=6, spaceBefore=4, leading=28, alignment=TA_LEFT,
leftIndent=0)
section_h1 = make_style("SectionH1",
fontSize=15, textColor=C_DARK_BLUE, fontName="Helvetica-Bold",
spaceAfter=4, spaceBefore=10, leading=20,
borderPad=4)
section_h2 = make_style("SectionH2",
fontSize=12, textColor=C_MED_BLUE, fontName="Helvetica-Bold",
spaceAfter=3, spaceBefore=7, leading=16)
section_h3 = make_style("SectionH3",
fontSize=11, textColor=C_GREEN, fontName="Helvetica-Bold",
spaceAfter=2, spaceBefore=5, leading=14)
# Body text
body = make_style("Body",
fontSize=9.5, textColor=C_BLACK, fontName="Helvetica",
spaceAfter=4, spaceBefore=2, leading=14, alignment=TA_JUSTIFY)
bullet = make_style("Bullet",
fontSize=9.5, textColor=C_BLACK, fontName="Helvetica",
spaceAfter=2, spaceBefore=1, leading=13,
leftIndent=14, firstLineIndent=-10)
sub_bullet = make_style("SubBullet",
fontSize=9, textColor=HexColor("#333333"), fontName="Helvetica",
spaceAfter=1, spaceBefore=1, leading=12,
leftIndent=26, firstLineIndent=-10)
key_fact = make_style("KeyFact",
fontSize=9.5, textColor=HexColor("#7B1A10"), fontName="Helvetica-Bold",
spaceAfter=3, spaceBefore=3, leading=14,
leftIndent=10, rightIndent=10,
backColor=HexColor("#FFF0EE"), borderPad=5)
note_style = make_style("Note",
fontSize=9, textColor=HexColor("#2A5F2A"), fontName="Helvetica-Oblique",
spaceAfter=3, spaceBefore=3, leading=13,
leftIndent=10, backColor=C_LIGHT_GREEN, borderPad=4)
footer_style = make_style("Footer",
fontSize=8, textColor=HexColor("#888888"), fontName="Helvetica",
alignment=TA_CENTER)
toc_title = make_style("TOCTitle",
fontSize=18, textColor=C_DARK_BLUE, fontName="Helvetica-Bold",
spaceAfter=10, spaceBefore=4, alignment=TA_CENTER)
toc_item = make_style("TOCItem",
fontSize=10.5, textColor=C_DARK_BLUE, fontName="Helvetica",
spaceAfter=4, spaceBefore=1, leading=14, leftIndent=10)
toc_sub = make_style("TOCSub",
fontSize=9.5, textColor=HexColor("#444444"), fontName="Helvetica",
spaceAfter=2, spaceBefore=1, leading=13, leftIndent=25)
# ── Helper builders ────────────────────────────────────────────────────────────
def b(text): return f"<b>{text}</b>"
def i(text): return f"<i>{text}</i>"
def c(text, col): return f'<font color="{col}">{text}</font>'
def chapter_banner(title, color=C_DARK_BLUE):
"""Returns a Table that mimics a coloured chapter banner."""
tbl = Table([[Paragraph(title, chapter_title)]], colWidths=[PAGE_W - 2*MARGIN])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
("ROUNDEDCORNERS", [6]),
]))
return tbl
def section_box(title, color=C_MED_BLUE):
tbl = Table([[Paragraph(f'<font color="white"><b>{title}</b></font>',
make_style("TmpH", fontSize=12, textColor=C_WHITE,
fontName="Helvetica-Bold", leading=16,
alignment=TA_LEFT))]],
colWidths=[PAGE_W - 2*MARGIN])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return tbl
def data_table(headers, rows, col_widths=None, alt_color=C_TABLE_ALT):
"""Styled data table."""
data = [[Paragraph(b(h), make_style("TH", fontSize=9, textColor=C_WHITE,
fontName="Helvetica-Bold", leading=12,
alignment=TA_CENTER)) for h in headers]]
for i_r, row in enumerate(rows):
data.append([Paragraph(str(cell),
make_style("TD", fontSize=8.5, textColor=C_BLACK,
fontName="Helvetica", leading=12,
alignment=TA_LEFT)) for cell in row])
w = col_widths or [(PAGE_W - 2*MARGIN) / len(headers)] * len(headers)
tbl = Table(data, colWidths=w, repeatRows=1)
ts = TableStyle([
("BACKGROUND", (0,0), (-1,0), C_TABLE_HDR),
("ROWBACKGROUNDS", (0,1), (-1,-1), [C_WHITE, alt_color]),
("GRID", (0,0), (-1,-1), 0.4, HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("WORDWRAP", (0,0), (-1,-1), "CJK"),
])
tbl.setStyle(ts)
return tbl
def hr(color=C_MED_BLUE, thickness=1.2):
return HRFlowable(width="100%", thickness=thickness,
color=color, spaceAfter=6, spaceBefore=6)
def sp(h=6):
return Spacer(1, h)
def P(text, style=body):
return Paragraph(text, style)
def BP(text):
return Paragraph(f"• {text}", bullet)
def SBP(text):
return Paragraph(f"◦ {text}", sub_bullet)
def KF(text):
return Paragraph(f"★ {text}", key_fact)
def NOTE(text):
return Paragraph(f"ⓘ {text}", note_style)
# ── Page template with header/footer ──────────────────────────────────────────
def on_page(canvas, doc):
canvas.saveState()
# Header bar
canvas.setFillColor(C_DARK_BLUE)
canvas.rect(MARGIN, PAGE_H - MARGIN + 2*mm, PAGE_W - 2*MARGIN, 6*mm, fill=1, stroke=0)
canvas.setFillColor(C_WHITE)
canvas.setFont("Helvetica-Bold", 8)
canvas.drawString(MARGIN + 4, PAGE_H - MARGIN + 5*mm, "HERPESVIRUSES: COMPLETE MICROBIOLOGY GUIDE")
canvas.setFont("Helvetica", 8)
canvas.drawRightString(PAGE_W - MARGIN - 4, PAGE_H - MARGIN + 5*mm,
"NEET PG | INICET | Medical Microbiology")
# Footer
canvas.setFillColor(HexColor("#888888"))
canvas.setFont("Helvetica", 7.5)
canvas.drawCentredString(PAGE_W / 2, MARGIN - 8*mm,
f"Page {doc.page} | Herpesviruses Microbiology Guide | For Educational Use Only")
canvas.setStrokeColor(HexColor("#CCCCCC"))
canvas.line(MARGIN, MARGIN - 3*mm, PAGE_W - MARGIN, MARGIN - 3*mm)
canvas.restoreState()
def on_first_page(canvas, doc):
pass # Cover page has no header/footer
# ── CONTENT BUILDERS ──────────────────────────────────────────────────────────
def cover_page():
"""Build the cover page as a table."""
elems = []
# Big coloured background block via table
cov = Table([[""]], colWidths=[PAGE_W - 2*MARGIN], rowHeights=[PAGE_H - 4*MARGIN])
cov.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_DARK_BLUE),
]))
# Inner cover content
inner = [
sp(40),
Paragraph("HERPESVIRUSES", make_style("CT1", fontSize=42, textColor=C_WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, leading=50, spaceAfter=4)),
Paragraph("Complete Microbiology Guide", make_style("CT2", fontSize=22, textColor=HexColor("#BDD9F2"),
fontName="Helvetica", alignment=TA_CENTER, leading=28, spaceAfter=12)),
hr(color=C_GOLD, thickness=2),
sp(10),
Paragraph("HSV-1 & HSV-2 | VZV | EBV | CMV",
make_style("CT3", fontSize=15, textColor=C_GOLD,
fontName="Helvetica-Bold", alignment=TA_CENTER, leading=22, spaceAfter=8)),
sp(20),
Paragraph("Classification • Structure • Pathogenesis • Clinical Features",
make_style("CT4", fontSize=11, textColor=HexColor("#90B8D8"),
fontName="Helvetica", alignment=TA_CENTER, leading=18, spaceAfter=4)),
Paragraph("Laboratory Diagnosis • Treatment • NEET PG High-Yield Facts",
make_style("CT5", fontSize=11, textColor=HexColor("#90B8D8"),
fontName="Helvetica", alignment=TA_CENTER, leading=18, spaceAfter=4)),
sp(40),
hr(color=HexColor("#3A6A9C"), thickness=1),
sp(6),
Paragraph("Based on Jawetz Medical Microbiology | Sherris & Ryan | Robbins Pathology | Harrison's",
make_style("CT6", fontSize=9, textColor=HexColor("#7AABCC"),
fontName="Helvetica-Oblique", alignment=TA_CENTER, leading=13, spaceAfter=4)),
Paragraph("Medical Microbiology 9e | Goldman-Cecil Medicine | Fitzpatrick's Dermatology",
make_style("CT7", fontSize=9, textColor=HexColor("#7AABCC"),
fontName="Helvetica-Oblique", alignment=TA_CENTER, leading=13)),
]
return inner + [PageBreak()]
def toc():
elems = [
P("TABLE OF CONTENTS", toc_title),
hr(color=C_DARK_BLUE, thickness=1.5),
sp(8),
]
toc_entries = [
("1", "HERPESVIRUS OVERVIEW & CLASSIFICATION", [
"Family characteristics", "Subfamily classification", "Shared properties"]),
("2", "HERPES SIMPLEX VIRUS (HSV-1 & HSV-2)", [
"Structure & Genome", "Pathogenesis & Tropism", "Clinical Manifestations",
"Latency & Reactivation", "Laboratory Diagnosis", "Treatment & Antiviral Agents"]),
("3", "VARICELLA-ZOSTER VIRUS (VZV / HHV-3)", [
"Primary Infection: Varicella (Chickenpox)", "Latency & Reactivation: Herpes Zoster",
"Congenital VZV Syndrome", "Laboratory Diagnosis", "Vaccines & Treatment"]),
("4", "EPSTEIN-BARR VIRUS (EBV / HHV-4)", [
"Structure & Classification", "Cell Receptor & Entry",
"Infectious Mononucleosis: Clinical Features", "Serologic Profile (VCA/EA/EBNA)",
"EBV-Associated Malignancies", "Hairy Oral Leukoplakia", "Treatment"]),
("5", "CYTOMEGALOVIRUS (CMV / HHV-5)", [
"Structure & Properties", "Congenital CMV (TORCH)", "CMV in Immunocompromised",
"Owl-Eye Inclusion Bodies", "Laboratory Diagnosis", "Ganciclovir & Treatment"]),
("6", "COMPARISON TABLES", [
"All 4 viruses: Classification, Latency, Diseases",
"Antiviral Drug Summary", "Inclusion Bodies", "Serologic Markers"]),
("7", "HIGH-YIELD NEET PG / INICET FACTS", [
"Top 50 Exam Points", "Common MCQ Traps"]),
]
chapter_colors = [C_DARK_BLUE, C_MED_BLUE, C_GREEN, C_PURPLE, C_ORANGE, C_DARK_BLUE, C_ACCENT]
for (num, title, subs), col in zip(toc_entries, chapter_colors):
elems.append(P(
f'<font color="{col}"><b>{num}. {title}</b></font>',
make_style(f"TOC{num}", fontSize=11, textColor=col, fontName="Helvetica-Bold",
spaceAfter=3, spaceBefore=6, leading=15, leftIndent=5)))
for sub in subs:
elems.append(P(f"• {sub}", toc_sub))
elems.append(PageBreak())
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 1: Overview
# ────────────────────────────────────────────────────────────────────────────────
def chapter1():
elems = [
chapter_banner("CHAPTER 1: HERPESVIRUS OVERVIEW & CLASSIFICATION", C_DARK_BLUE),
sp(10),
P("""The <b>Herpesviridae</b> family comprises large, enveloped, double-stranded DNA viruses
that establish lifelong <b>latent infections</b> in the host. They are among the most
successful human pathogens, with seroprevalence reaching >90% for some members. All
herpesviruses share four key structural layers and a common replication strategy.""", body),
sp(6),
P("1.1 FAMILY CHARACTERISTICS", section_h1),
hr(C_MED_BLUE),
]
chars = [
("Genome", "Linear double-stranded DNA (dsDNA); 125-240 kbp"),
("Capsid", "Icosahedral capsid; 162 capsomeres"),
("Tegument", "Amorphous protein layer between capsid and envelope (unique to herpesviruses)"),
("Envelope", "Lipid bilayer with viral glycoproteins; derived from host nuclear membrane"),
("Size", "150-200 nm diameter (largest DNA viruses affecting humans)"),
("Replication site", "Nucleus (DNA replication and capsid assembly occur in nucleus)"),
("Key property", "Establish LATENCY - persist lifelong in host cells; reactivate with stimuli"),
("Cell killing", "Alpha-herpesviruses: short cytolytic cycle; Beta/Gamma: longer, lymphoproliferative"),
]
elems.append(data_table(
["Property", "Detail"],
chars,
col_widths=[5*cm, PAGE_W - 2*MARGIN - 5*cm]
))
elems.append(sp(10))
elems.append(P("1.2 SUBFAMILY CLASSIFICATION (Jawetz Table 33-2)", section_h1))
elems.append(hr(C_MED_BLUE))
class_rows = [
("Alpha\n(Alphaherpesvirinae)", "Short, cytolytic", "Neurons (sensory ganglia)",
"Simplexvirus\nVaricellovirus",
"HHV-1: HSV-1\nHHV-2: HSV-2\nHHV-3: VZV"),
("Beta\n(Betaherpesvirinae)", "Long; cytomegalic / lymphoproliferative",
"Glands, kidneys, lymphoid tissue",
"Cytomegalovirus\nRoseolovirus",
"HHV-5: CMV\nHHV-6 (A&B)\nHHV-7"),
("Gamma\n(Gammaherpesvirinae)", "Variable; lymphoproliferative",
"Lymphoid tissue (B & T cells)",
"Lymphocryptovirus\nRhadinovirus",
"HHV-4: EBV\nHHV-8: KSHV\n(Kaposi sarcoma)"),
]
elems.append(data_table(
["Subfamily", "Growth Cycle", "Latency Site", "Genus", "Human Members"],
class_rows,
col_widths=[3.2*cm, 3.5*cm, 3.5*cm, 3.2*cm, 3.6*cm]
))
elems.append(sp(8))
elems.append(KF("NEET PG KEY: Alpha = neurons; Beta = glands/kidneys; Gamma = lymphoid tissue"))
elems.append(sp(8))
elems.append(P("1.3 SHARED PROPERTIES OF ALL HERPESVIRUSES", section_h1))
elems.append(hr(C_MED_BLUE))
shared = [
"All are <b>enveloped dsDNA viruses</b> - inactivated by lipid solvents (ether, detergents)",
"All establish <b>lifelong latency</b> after primary infection - no complete cure possible",
"Reactivation is triggered by <b>immunosuppression, stress, UV light, fever, trauma</b>",
"All replicate in the <b>nucleus</b> and produce characteristic <b>intranuclear inclusion bodies</b>",
"All can cause <b>more severe disease in immunocompromised hosts</b> (HIV, transplants, neonates)",
"Primary and reactivation disease may involve <b>different cell types</b> and clinical presentations",
"<b>No herpesvirus can be completely eliminated</b> - antiviral drugs suppress but do not eradicate",
"Herpesviruses encode <b>microRNAs</b> that regulate latency and evade host immunity",
]
for s in shared:
elems.append(BP(s))
elems.append(sp(10))
elems.append(NOTE("The tegument layer is unique to herpesviruses among DNA viruses and plays key roles in viral entry and immune evasion."))
elems.append(PageBreak())
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 2: HSV
# ────────────────────────────────────────────────────────────────────────────────
def chapter2():
elems = [
chapter_banner("CHAPTER 2: HERPES SIMPLEX VIRUS (HSV-1 & HSV-2)", C_MED_BLUE),
sp(10),
P("""Herpes simplex viruses (HSV-1 and HSV-2) are the prototypical alpha-herpesviruses.
They infect epithelial cells and establish latency in sensory neurons. Primary infection
is often mild or subclinical; reactivation causes the well-known 'cold sore' or
genital herpes lesions. Both viruses share ~50% DNA homology.""", body),
sp(8),
P("2.1 HSV-1 vs HSV-2: KEY DIFFERENCES", section_h1),
hr(C_MED_BLUE),
data_table(
["Feature", "HSV-1", "HSV-2"],
[
("Primary site", "Orofacial (above waist)", "Genital (below waist) - increasing HSV-1 overlap"),
("Transmission", "Oral secretions, direct contact", "Sexual contact, birth canal"),
("Primary lesion", "Gingivostomatitis, pharyngitis", "Genital ulcers, cervicitis"),
("Recurrent lesion", "Herpes labialis (cold sore)", "Genital herpes"),
("Latency site", "Trigeminal (Gasserian) ganglion", "Sacral dorsal root ganglia (S2-S3)"),
("Recurrence rate (genital)", "Lower", "Higher"),
("Encephalitis (adults)", "Yes - HSV-1 most common sporadic", "Less common (meningitis)"),
("Neonatal herpes", "25%", "75% of cases"),
("Tumor association", "None proven in humans", "None proven in humans"),
],
col_widths=[4.5*cm, 6.5*cm, 6.5*cm]
),
sp(8),
KF("EXAM TRAP: Atypical lymphocytes (Downey cells) seen on blood smear = NOT HSV. These are seen in EBV IM."),
sp(8),
P("2.2 PATHOGENESIS & TROPISM", section_h1),
hr(C_MED_BLUE),
P("""HSV infects <b>mucoepithelial cells</b> at the portal of entry, causing lytic
infection with cell death, vesicle formation, and local inflammation. Virus then
travels <b>retrogradely</b> along sensory axons to the dorsal root or trigeminal
ganglion, where it establishes latency.""", body),
sp(4),
P("<b>Steps in pathogenesis:</b>", section_h3),
BP("<b>Step 1</b> - Viral attachment: HSV glycoproteins (gB, gC, gD) bind heparan sulfate on epithelial cells"),
BP("<b>Step 2</b> - Entry: Fusion of viral envelope with cell membrane; capsid released into cytoplasm"),
BP("<b>Step 3</b> - Replication: Nucleus - immediate early (alpha) → early (beta) → late (gamma) gene cascade"),
BP("<b>Step 4</b> - Lytic cycle: Cell death, formation of vesicles containing infectious virions"),
BP("<b>Step 5</b> - Neuronal spread: Retrograde axonal transport to sensory ganglion"),
BP("<b>Step 6</b> - Latency: Circular episomal DNA in neurons; only LAT (Latency-Associated Transcript) expressed"),
BP("<b>Step 7</b> - Reactivation: Triggered by UV, fever, stress, immunosuppression; anterograde transport back to skin"),
sp(8),
P("2.3 LATENCY: KEY CONCEPTS (Sherris & Ryan)", section_h1),
hr(C_MED_BLUE),
data_table(
["Concept", "HSV-1", "HSV-2"],
[
("Latency site", "Trigeminal, superior cervical, vagal ganglia", "Sacral (S2-S3) dorsal sensory root ganglia"),
("Form of viral DNA", "Circular episome (not integrated)", "Circular episome"),
("Viral proteins expressed", "NONE (only LAT transcript)", "NONE (only LAT transcript)"),
("LAT function", "miRNAs that inhibit ICP0 (immediate early protein); prevent lytic replication", "Same"),
("Drug effect on latency", "Acyclovir CANNOT eliminate latent virus - no TK expressed, no DNA polymerase active", "Same"),
("Reactivation triggers", "UV light, sunburn, fever, stress, trauma, menstruation, immunosuppression", "Same"),
],
col_widths=[4.5*cm, 6*cm, 6.5*cm]
),
sp(6),
NOTE("Latency site is determined by the LOCATION of primary infection, not the virus TYPE. Genital HSV-1 latency → sacral ganglia; oral HSV-2 → trigeminal ganglion."),
sp(8),
P("2.4 CLINICAL MANIFESTATIONS", section_h1),
hr(C_MED_BLUE),
P("<b>Orofacial HSV (mainly HSV-1):</b>", section_h2),
BP("<b>Primary gingivostomatitis</b> - Most common primary manifestation; children 1-3 years; painful vesicles on buccal mucosa, gingiva, tongue; high fever; lasts 2-3 weeks"),
BP("<b>Pharyngitis/tonsillitis</b> - Common primary presentation in adolescents/young adults"),
BP("<b>Herpes labialis (cold sore)</b> - Most common RECURRENT lesion; painful vesicles on lip vermilion; self-limited 7-10 days"),
BP("<b>Herpetic whitlow</b> - HSV infection of finger; often in healthcare workers or thumb-sucking children"),
BP("<b>Herpes gladiatorum (mat herpes)</b> - Direct skin contact in wrestlers; caused by HSV-1"),
sp(4),
P("<b>Genital HSV (mainly HSV-2, increasing HSV-1):</b>", section_h2),
BP("<b>Primary genital herpes</b> - Painful vesicles/ulcers on genitalia, inguinal lymphadenopathy, fever; lasts 2-3 weeks; more severe than recurrent"),
BP("<b>Recurrent genital herpes</b> - HSV-2 recurs more often; prodromal tingling/burning before lesions; shorter, milder than primary"),
BP("<b>Asymptomatic shedding</b> - Virus shed without visible lesions; major source of transmission"),
sp(4),
P("<b>CNS HSV Disease:</b>", section_h2),
BP("<b>HSV Encephalitis</b> - HSV-1 in adults; most common fatal sporadic encephalitis; hemorrhagic necrosis of TEMPORAL LOBE; fever, behavioral change, focal neuro signs; MRI shows temporal lobe FLAIR hyperintensity; CSF PCR is gold standard; treat with IV acyclovir immediately"),
BP("<b>HSV Meningitis</b> - Mainly HSV-2; recurrent aseptic meningitis (Mollaret's meningitis); self-limited"),
BP("<b>Neonatal HSV</b> - 85% peripartum; HSV-2 75%; disseminated/CNS disease has >70% mortality if untreated; treat with IV acyclovir"),
sp(4),
P("<b>HSV in Immunocompromised:</b>", section_h2),
BP("Severe, extensive, chronic ulcerating lesions; may disseminate to viscera (pneumonitis, hepatitis, esophagitis); treat with IV acyclovir"),
sp(8),
P("2.5 HISTOPATHOLOGY", section_h1),
hr(C_MED_BLUE),
data_table(
["Feature", "Description"],
[
("Cowdry type A inclusion", "Light purple, homogeneous INTRANUCLEAR inclusion surrounded by clear halo; seen in both HSV and CMV"),
("Multinucleated syncytia", "Infected cells fuse to form giant multinucleated cells (seen on Tzanck smear)"),
("Tzanck smear", "Scraping from vesicle base; multinucleated giant cells (~60-75% sensitivity); positive for HSV AND VZV; negative for molluscum"),
("Ballooning degeneration", "Characteristic cytopathic effect in infected cells"),
],
col_widths=[5*cm, PAGE_W - 2*MARGIN - 5*cm]
),
sp(6),
KF("EXAM TRAP: Tzanck smear CANNOT differentiate HSV from VZV. For type differentiation, use PCR or type-specific monoclonal antibody immunofluorescence."),
sp(8),
P("2.6 LABORATORY DIAGNOSIS", section_h1),
hr(C_MED_BLUE),
data_table(
["Test", "Method", "Notes"],
[
("PCR (CSF)", "Detects HSV DNA", "Gold standard for HSV encephalitis; highly sensitive/specific"),
("Viral culture", "Cytopathic effect in cell lines", "Gold standard for skin/mucosal lesions; takes 2-5 days"),
("Direct IF", "Monoclonal antibody staining", "Rapid; can differentiate HSV-1 vs HSV-2"),
("Tzanck smear", "Multinucleated giant cells", "Rapid bedside test; 60-75% sensitive; cannot distinguish HSV/VZV"),
("Serology (type-specific)", "IgG to gG-1 or gG-2", "gG-1 = HSV-1 specific; gG-2 = HSV-2 specific; used for epidemiology"),
("EIA/ELISA", "Antigen detection", "Rapid; less sensitive than culture/PCR"),
],
col_widths=[4*cm, 4.5*cm, PAGE_W - 2*MARGIN - 8.5*cm]
),
sp(8),
P("2.7 TREATMENT & ANTIVIRAL AGENTS", section_h1),
hr(C_MED_BLUE),
data_table(
["Drug", "Mechanism", "Activation", "Indications", "Key Points"],
[
("Acyclovir", "Inhibits viral DNA polymerase after phosphorylation; chain terminator",
"Step 1: HSV thymidine kinase (TK) → monophosphate\nSteps 2-3: Host kinases → triphosphate",
"Primary/recurrent HSV; HSV encephalitis (IV); neonatal HSV (IV); VZV",
"SELECTIVE - only active in HSV-infected cells; TK-deficient mutants = resistant; cannot eliminate latent virus"),
("Valacyclovir", "Prodrug of acyclovir; better oral bioavailability",
"Converted to acyclovir in gut/liver", "Genital herpes, herpes labialis, VZV",
"3-5x better oral bioavailability than acyclovir"),
("Famciclovir", "Prodrug of penciclovir; nucleoside analog",
"Viral TK → phosphorylation", "HSV, VZV",
"Competitive inhibitor of viral DNA polymerase"),
("Foscarnet", "Pyrophosphate analog; directly inhibits DNA polymerase",
"NOT phosphorylated; no TK needed",
"Acyclovir-resistant HSV/CMV in immunocompromised",
"Nephrotoxic; used when TK-deficient resistant HSV"),
],
col_widths=[2.8*cm, 4*cm, 3.2*cm, 3.5*cm, 4*cm]
),
sp(6),
NOTE("Acyclovir resistance mechanism: Most common = mutation/deletion of viral thymidine kinase gene. Less common = altered DNA polymerase. Resistant strains treated with foscarnet or cidofovir."),
PageBreak(),
]
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 3: VZV
# ────────────────────────────────────────────────────────────────────────────────
def chapter3():
elems = [
chapter_banner("CHAPTER 3: VARICELLA-ZOSTER VIRUS (VZV / HHV-3)", C_GREEN),
sp(10),
P("""VZV (HHV-3) is an alpha-herpesvirus that causes two distinct clinical syndromes:
<b>varicella (chickenpox)</b> on primary infection, and <b>herpes zoster (shingles)</b>
upon reactivation. It is one of the most contagious human viruses and establishes
latency in dorsal root and cranial nerve ganglia after primary infection.""", body),
sp(8),
P("3.1 PRIMARY INFECTION: VARICELLA (CHICKENPOX)", section_h1),
hr(C_GREEN),
data_table(
["Feature", "Details"],
[
("Transmission", "Highly contagious via respiratory droplets AND direct contact with vesicles; airborne spread"),
("Incubation", "14-16 days (range 10-21 days)"),
("Contagious period", "2 days BEFORE rash to 5 days AFTER appearance (until all lesions crusted)"),
("Rash characteristics", "CENTRIPETAL distribution (face, trunk >> extremities); lesions in ALL stages simultaneously (macule → papule → vesicle → pustule → crust)"),
("Classic description", "'Dewdrop on a rose petal' - clear vesicle on erythematous base"),
("Fever", "Low-grade fever coincides with rash"),
("Prodrome", "1-2 days of fever, malaise before rash in adults"),
("Complications", "Secondary bacterial infection (most common); pneumonia (adults, pregnant); encephalitis; cerebellar ataxia; Reye syndrome (aspirin use)"),
("Severity", "Milder in children; more severe in adults, immunocompromised, neonates, pregnant women"),
],
col_widths=[4.5*cm, PAGE_W - 2*MARGIN - 4.5*cm]
),
sp(6),
KF("EXAM KEY: VZV rash = centripetal (trunk-first); Smallpox rash = centrifugal (extremities-first, same stage). This distinguishes them!"),
sp(8),
P("3.2 COMPLICATIONS OF VARICELLA", section_h1),
hr(C_GREEN),
BP("<b>Bacterial superinfection</b> - Most common complication; Group A Streptococcus and S. aureus; impetigo, cellulitis, fasciitis"),
BP("<b>Varicella pneumonia</b> - Most serious in adults (especially pregnant women); chest X-ray shows diffuse bilateral nodular/miliary pattern; treat with IV acyclovir"),
BP("<b>Reye syndrome</b> - Encephalopathy + fatty liver degeneration; associated with <b>aspirin use</b> during viral illness (varicella, influenza); avoid aspirin in children with viral illness"),
BP("<b>Cerebellar ataxia</b> - Post-infectious; self-limited; most common neurological complication in children"),
BP("<b>Congenital varicella syndrome</b> - Infection in first 20 weeks of pregnancy: limb hypoplasia, skin scarring, chorioretinitis, cataracts, microcephaly; risk ~2%"),
BP("<b>Neonatal varicella</b> - Mother develops chickenpox within 5 days before to 2 days after delivery: severe disseminated disease in neonate (no maternal antibodies transferred); treat with VZIG + acyclovir"),
sp(8),
P("3.3 REACTIVATION: HERPES ZOSTER (SHINGLES)", section_h1),
hr(C_GREEN),
P("""After primary varicella, VZV establishes latency in <b>dorsal root ganglia</b> and
<b>cranial nerve ganglia</b> along the entire neuraxis. Reactivation occurs when
cell-mediated immunity wanes (advancing age, immunosuppression) and causes
herpes zoster.""", body),
sp(4),
data_table(
["Feature", "Details"],
[
("Prodrome", "Pain, burning, tingling, hyperesthesia in affected dermatome 2-4 days BEFORE rash; fever, malaise"),
("Rash", "Vesicular rash in a UNILATERAL dermatomal distribution; does NOT cross midline"),
("Most common dermatomes", "Thoracic (T3-L2) most common; V1 (ophthalmic) = herpes zoster ophthalmicus"),
("Duration", "Crusting in 7-10 days; complete healing 2-4 weeks"),
("Complication: PHN", "Postherpetic neuralgia - persistent pain >1 month after rash healing; most common in elderly (>60 yrs)"),
("Complication: HZO", "Herpes zoster ophthalmicus - V1 involvement; Hutchinson's sign (tip of nose lesion) = risk of eye involvement; can cause keratitis, uveitis, blindness"),
("Complication: Ramsay Hunt", "VZV reactivation in geniculate ganglion (facial nerve); ear vesicles + ipsilateral facial palsy + tinnitus/vertigo"),
("Motor zoster", "Weakness/paralysis in myotome corresponding to affected dermatome"),
("Disseminated zoster", "In immunocompromised; >3 dermatomes; visceral involvement"),
],
col_widths=[4.5*cm, PAGE_W - 2*MARGIN - 4.5*cm]
),
sp(6),
KF("EXAM: Ramsay Hunt syndrome = VZV in geniculate ganglion = ear pain/vesicles + LMN facial palsy (NOT Bell's palsy which is idiopathic)"),
sp(8),
P("3.4 LABORATORY DIAGNOSIS", section_h1),
hr(C_GREEN),
BP("<b>Clinical diagnosis</b> - Usually sufficient based on rash distribution and morphology"),
BP("<b>Tzanck smear</b> - Multinucleated giant cells; positive for VZV AND HSV; cannot differentiate"),
BP("<b>PCR</b> - Gold standard; detects VZV DNA in vesicle fluid, CSF, or tissue; best for CNS/disseminated disease"),
BP("<b>Direct IF</b> - VZV-specific monoclonal antibodies; differentiates VZV from HSV"),
BP("<b>Serology</b> - Rise in VZV IgM/IgG; less useful for acute diagnosis; used for immune status assessment"),
BP("<b>Viral culture</b> - Difficult; VZV is highly cell-associated and labile"),
sp(8),
P("3.5 TREATMENT", section_h1),
hr(C_GREEN),
data_table(
["Indication", "Drug", "Route", "Notes"],
[
("Normal child with varicella", "Symptomatic only (no antivirals needed)", "-", "Avoid aspirin (Reye syndrome)"),
("Adults/adolescents with varicella", "Acyclovir 800mg 5x/day x 5-7 days", "Oral", "Reduces severity if started within 24h"),
("Varicella pneumonia", "Acyclovir", "IV", "High-dose; hospitalize"),
("Herpes zoster (immunocompetent)", "Acyclovir / Valacyclovir / Famciclovir", "Oral", "Start within 72h of rash; reduces PHN risk"),
("Severe/disseminated zoster", "Acyclovir 10mg/kg q8h", "IV", "Immunocompromised patients"),
("Postherpetic neuralgia", "Gabapentin, pregabalin, tricyclic antidepressants, lidocaine patch", "Oral/topical", "Antivirals do not help established PHN"),
],
col_widths=[4*cm, 4.5*cm, 2*cm, PAGE_W - 2*MARGIN - 10.5*cm]
),
sp(8),
P("3.6 VACCINES", section_h1),
hr(C_GREEN),
data_table(
["Vaccine", "Type", "Strain", "Schedule", "Key Facts"],
[
("Varivax (Varicella)", "Live attenuated VZV", "Oka strain", "2 doses: 12-15 months + 4-6 years", "Licensed 1995 in USA; 98% effective against varicella; CONTRAINDICATED in pregnancy and immunocompromised"),
("Zostavax (Zoster)", "High-dose live attenuated VZV", "Oka/Merck strain", "Single dose ≥60 years", "Prevents shingles ~51%; reduces PHN ~67%; older adults with waning immunity"),
("Shingrix (recombinant)", "Recombinant VZV glycoprotein E + adjuvant", "Non-live", "2 doses: 2-6 months apart, ≥50 years", ">90% effective; preferred over Zostavax; can use in immunocompromised"),
],
col_widths=[3*cm, 3.5*cm, 2.5*cm, 3*cm, PAGE_W - 2*MARGIN - 12*cm]
),
sp(6),
NOTE("VZIG (Varicella-Zoster Immune Globulin) is used for post-exposure prophylaxis in susceptible high-risk individuals: immunocompromised, neonates, pregnant women, premature infants. Give within 10 days of exposure."),
PageBreak(),
]
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 4: EBV
# ────────────────────────────────────────────────────────────────────────────────
def chapter4():
elems = [
chapter_banner("CHAPTER 4: EPSTEIN-BARR VIRUS (EBV / HHV-4)", C_PURPLE),
sp(10),
P("""EBV (HHV-4) is a <b>gamma-herpesvirus</b> and the causative agent of
<b>infectious mononucleosis (IM)</b>. It is also the first identified human
oncovirus, associated with Burkitt lymphoma, nasopharyngeal carcinoma,
Hodgkin lymphoma, and several other malignancies. EBV has near-universal
seroprevalence in adults worldwide.""", body),
sp(8),
P("4.1 STRUCTURE & CLASSIFICATION", section_h1),
hr(C_PURPLE),
BP("Subfamily: <b>Gammaherpesvirinae</b>, Genus: <b>Lymphocryptovirus</b>"),
BP("Linear dsDNA genome encoding >70 proteins (different sets expressed in different infection types)"),
BP("Encodes viral microRNAs important for immune evasion and latency regulation"),
BP("<b>Cell receptor</b>: Binds CD21 (CR2, Complement Receptor 2) on B lymphocytes via glycoprotein gp350/220"),
BP("Also infects nasopharyngeal and oropharyngeal epithelial cells"),
BP("First human oncovirus identified; isolated from Burkitt lymphoma cells (1964)"),
sp(8),
P("4.2 INFECTIOUS MONONUCLEOSIS (IM): CLINICAL FEATURES", section_h1),
hr(C_PURPLE),
data_table(
["Feature", "Details"],
[
("Typical age", "Adolescents and young adults (15-25 years); 'kissing disease'"),
("Transmission", "Oropharyngeal secretions (saliva); blood (transfusions); sexual contact"),
("Incubation", "30-50 days"),
("Classic triad", "1. Fever 2. Exudative pharyngitis/tonsillitis 3. Cervical lymphadenopathy (posterior > anterior)"),
("Splenomegaly", "~50% of cases; risk of splenic rupture - AVOID CONTACT SPORTS for ≥3-4 weeks"),
("Hepatomegaly/hepatitis", "~10-15%; elevated transaminases in ~90%"),
("Rash", "Faint maculopapular rash in ~5-10%; dramatically worsens to pruritic maculopapular rash in 15-30% given AMPICILLIN/AMOXICILLIN"),
("Atypical lymphocytosis", ">10% Downey cells (CD8+ T cells, NOT infected B cells) on blood smear"),
("Heterophile antibodies", "IgM antibodies agglutinating sheep, horse, bovine RBCs; detected by Monospot test"),
("Age paradox", "Primary infection in early childhood = usually mild/subclinical; in adolescents/young adults = classic IM presentation"),
],
col_widths=[4.5*cm, PAGE_W - 2*MARGIN - 4.5*cm]
),
sp(6),
KF("EXAM TRAP: Atypical lymphocytes (Downey cells) = ACTIVATED CD8+ T cells responding to EBV-infected B cells - NOT the infected cells themselves!"),
sp(8),
P("4.3 SEROLOGIC PROFILE OF EBV INFECTION (Medical Microbiology 9e, Table 43.4)", section_h1),
hr(C_PURPLE),
data_table(
["Stage", "Heterophile Ab", "VCA-IgM", "VCA-IgG", "EA", "EBNA", "Interpretation"],
[
("Susceptible (no prior infection)", "-", "-", "-", "-", "-", "No prior exposure"),
("ACUTE primary infection", "+", "+", "+", "+/-", "ABSENT", "KEY: EBNA absent in acute disease"),
("Recent/convalescent", "+/-", "-", "+", "+/-", "+", "EBNA appears in convalescence"),
("Past infection", "-", "-", "+", "-", "+", "VCA-IgG + EBNA = past infection"),
("Reactivation", "-", "-", "+", "+", "+", "Elevated EA with existing VCA/EBNA"),
("Burkitt lymphoma", "-", "-", "+", "+", "+", "High VCA/EA antibody titers"),
("Nasopharyngeal carcinoma", "-", "-", "+", "+", "+", "Very high VCA/EA titers diagnostically useful"),
],
col_widths=[3.5*cm, 2.2*cm, 2*cm, 2*cm, 1.5*cm, 2*cm, PAGE_W - 2*MARGIN - 13.2*cm]
),
sp(6),
NOTE("EBNA (Epstein-Barr Nuclear Antigen) antibody appears ONLY after lysis of infected cells by CD8+ T cells. Its ABSENCE = acute/recent infection; PRESENCE = past infection. This is the single most important serologic fact for NEET PG."),
sp(8),
P("<b>Heterophile Antibody (Paul-Bunnell Test):</b>", section_h2),
BP("IgM antibody produced by nonspecific mitogen-like activation of B cells by EBV"),
BP("Agglutinates <b>sheep, horse, and bovine</b> red blood cells"),
BP("<b>NOT absorbed</b> by guinea pig kidney cells (distinguishes from Forssman antibodies)"),
BP("<b>Monospot test</b> uses horse RBCs - rapid slide agglutination; detects heterophile antibody"),
BP("Appears end of week 1; peaks week 2-3; persists several months"),
BP("Sensitivity: ~85% in older children/adults in week 2; LESS reliable in young children (<4 years)"),
SP("Negative Monospot</b> in IM = consider: (1) too early <1 week, (2) child <4 years, (3) CMV mononucleosis (heterophile-negative IM)"),
sp(8),
P("4.4 EBV-ASSOCIATED MALIGNANCIES", section_h1),
hr(C_PURPLE),
data_table(
["Malignancy", "EBV Association", "Pathogenesis", "Key Features"],
[
("Burkitt Lymphoma (BL)", "Endemic African BL: ~100%; Sporadic BL: ~15-30%",
"t(8;14) translocation: c-MYC gene (chr 8) → IgH locus (chr 14); also t(8;22) and t(2;8)",
"Endemic: jaw/facial mass in African children in malaria belt; B-cell lymphoma; 'starry sky' histology"),
("Nasopharyngeal Carcinoma", "~100% in endemic form",
"EBV DNA in epithelial tumor cells; unlike BL, cells are EPITHELIAL not lymphoid",
"Endemic in SE Asia (China, Southeast Asia); adults; elevated VCA and EA antibodies diagnostically useful"),
("Hodgkin Lymphoma", "Mixed cellularity subtype ~50-70%",
"EBV in Reed-Sternberg cells; LMP-1 oncogene mimics constitutive CD40 signaling",
"Reed-Sternberg cells (owl-eye nuclei) are EBV-positive in mixed cellularity HL"),
("Post-transplant lymphoproliferative disorder (PTLD)", "~90%",
"EBV-driven polyclonal/monoclonal B-cell proliferation due to T-cell immunosuppression",
"After solid organ or bone marrow transplant; range from benign hyperplasia to frank lymphoma"),
("Primary CNS Lymphoma (AIDS)", ">90%",
"EBV-driven B-cell lymphoma in profoundly immunocompromised",
"CD4 <50 cells/mm³; ring-enhancing brain lesion; differentiate from toxoplasmosis"),
],
col_widths=[3.5*cm, 3*cm, 4.5*cm, PAGE_W - 2*MARGIN - 11*cm]
),
sp(6),
KF("EXAM: Kaposi sarcoma = HHV-8 (NOT EBV). Primary effusion lymphoma = HHV-8 + EBV co-infection. Burkitt lymphoma hallmark = t(8;14)."),
sp(8),
P("4.5 EBV LATENCY PROGRAMS", section_h1),
hr(C_PURPLE),
data_table(
["Latency Program", "Viral Proteins Expressed", "Associated Disease"],
[
("Latency 0", "None (only EBER small RNAs)", "Memory B cells; true latency"),
("Latency I", "EBNA-1 only", "Burkitt Lymphoma"),
("Latency II", "EBNA-1, LMP-1, LMP-2", "Hodgkin Lymphoma, Nasopharyngeal Carcinoma"),
("Latency III", "All 9 EBNAs + LMPs", "Post-transplant lymphoproliferative disorder; Infectious mononucleosis"),
],
col_widths=[3.5*cm, 5.5*cm, PAGE_W - 2*MARGIN - 9*cm]
),
sp(6),
NOTE("EBNA-1 is expressed in ALL latency programs and is required for episomal maintenance during cell division. It anchors the EBV genome to host chromosomes."),
sp(8),
P("4.6 OTHER EBV MANIFESTATIONS", section_h1),
hr(C_PURPLE),
BP("<b>Hairy Oral Leukoplakia (HOL)</b> - White, corrugated, non-scrapable plaques on LATERAL BORDER of tongue; productive EBV infection of epithelial cells; almost exclusively in AIDS/immunocompromised; cf. oral candidiasis which IS scrapable"),
BP("<b>Chronic active EBV</b> - Rare; persistent EBV infection with hepatitis, pneumonitis, uveitis; elevated VCA antibodies; mainly in East Asia"),
BP("<b>X-linked lymphoproliferative syndrome (Duncan's disease)</b> - Boys with SAP (SLAM-associated protein) gene mutation; fatal IM or lymphoma after primary EBV infection"),
BP("<b>Hemophagocytic lymphohistiocytosis (HLH)</b> - EBV can trigger secondary HLH; life-threatening cytokine storm"),
sp(8),
P("4.7 TREATMENT", section_h1),
hr(C_PURPLE),
BP("No approved antiviral treatment for EBV IM; mainly <b>supportive care</b>"),
BP("Acyclovir reduces <b>viral shedding</b> (EBV uses its own protein kinase to activate acyclovir) but does NOT improve clinical disease in IM"),
BP("<b>Avoid contact sports</b> for ≥3-4 weeks (splenic rupture risk)"),
BP("<b>Avoid ampicillin/amoxicillin</b> (precipitates maculopapular rash)"),
BP("Corticosteroids used for severe pharyngeal edema (airway threat), thrombocytopenia, hemolytic anemia"),
BP("No licensed vaccine available"),
PageBreak(),
]
return elems
def SP(text): return sub_bullet_fix(text)
def sub_bullet_fix(text):
return Paragraph(f"◦ {text}", sub_bullet)
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 5: CMV
# ────────────────────────────────────────────────────────────────────────────────
def chapter5():
elems = [
chapter_banner("CHAPTER 5: CYTOMEGALOVIRUS (CMV / HHV-5)", C_ORANGE),
sp(10),
P("""CMV (HHV-5) is a <b>beta-herpesvirus</b> and has the largest genome of the
human herpesviruses (~240 kbp). It is the <b>most common congenital viral infection</b>
in the developed world and a major opportunistic pathogen in immunocompromised
patients (HIV/AIDS, transplant recipients). CMV infection is usually asymptomatic
in immunocompetent adults.""", body),
sp(8),
P("5.1 EPIDEMIOLOGY & TRANSMISSION", section_h1),
hr(C_ORANGE),
BP("<b>Seroprevalence</b>: 40-100% in adults worldwide (higher in developing countries)"),
BP("<b>Transmission routes</b>: Saliva, urine, breast milk, sexual contact, blood transfusions, organ transplantation, transplacental"),
BP("CMV is the <b>most common congenital infection</b> (1-2% of live births)"),
BP("Most common infectious cause of <b>congenital sensorineural hearing loss (SNHL)</b>"),
BP("Primary infection in healthy adults: Asymptomatic or mild heterophile-<b>negative</b> mononucleosis syndrome"),
BP("Virus persists lifelong in monocytes, macrophages, endothelial cells, and salivary glands"),
sp(8),
P("5.2 CONGENITAL CMV (TORCH)", section_h1),
hr(C_ORANGE),
P("""Congenital CMV occurs when a pregnant woman (especially with <b>primary</b> infection)
transmits CMV transplacentally. About 5-10% of congenitally infected infants are
symptomatic at birth.""", body),
sp(4),
data_table(
["Feature", "Details"],
[
("Severity gradient", "Primary maternal infection during pregnancy → most severe congenital disease"),
("Symptomatic at birth (5-10%)", "IUGR, hepatosplenomegaly, jaundice, petechiae/purpura (blueberry muffin), microcephaly, chorioretinitis, hearing loss"),
("Neuroimaging hallmark", "PERIVENTRICULAR calcifications (vs. toxoplasmosis which is diffuse/scattered)"),
("CNS pathology", "Periventricular necrosis → microcephaly; brain injury; intellectual disability"),
("Hearing loss", "Most common long-term sequela; may be progressive; 50-60% of symptomatic infants"),
("Asymptomatic at birth (90-95%)", "10-15% develop late-onset sequelae: SNHL (most common), neurological deficits"),
("Diagnosis (gold standard)", "CMV isolation/PCR from URINE within FIRST 3 WEEKS of life (later may reflect postnatal acquisition)"),
("Treatment", "IV ganciclovir (or oral valganciclovir) for symptomatic congenital CMV; reduces progressive hearing loss"),
],
col_widths=[4.5*cm, PAGE_W - 2*MARGIN - 4.5*cm]
),
sp(6),
KF("EXAM KEY: Periventricular calcifications = CMV. Diffuse/scattered calcifications (brain + liver + spleen) = Toxoplasmosis. Subependymal/periventricular = CMV."),
sp(8),
P("5.3 CMV IN IMMUNOCOMPROMISED PATIENTS", section_h1),
hr(C_ORANGE),
data_table(
["Setting", "CMV Disease", "Details"],
[
("HIV/AIDS (CD4 <50)", "CMV Retinitis", "Most common serious CMV manifestation in AIDS; painless, progressive visual loss; 'pizza pie' / 'brushfire' fundus appearance; MUST TREAT immediately with ganciclovir/valganciclovir"),
("HIV/AIDS", "CMV Colitis", "Abdominal pain, bloody diarrhea; colonoscopy shows ulcerations with owl-eye cells on biopsy"),
("HIV/AIDS", "CMV Encephalitis/Ventriculitis", "Periventricular enhancement on MRI; dementia; treated with ganciclovir + foscarnet"),
("HIV/AIDS", "CMV Esophagitis", "Odynophagia; large, single shallow ulcers in lower esophagus (cf. HSV = small multiple ulcers)"),
("Bone marrow transplant", "CMV Pneumonitis", "Most lethal CMV complication in BMT; bilateral interstitial infiltrates; ganciclovir + CMV immune globulin"),
("Solid organ transplant", "CMV Disease", "Fever, leukopenia, hepatitis, pneumonitis; prophylaxis/preemptive therapy with valganciclovir"),
("Immunocompetent adults", "Heterophile-negative mononucleosis", "Fever, malaise, lymphocytosis; self-limited; no EBV heterophile antibodies"),
],
col_widths=[4*cm, 3*cm, PAGE_W - 2*MARGIN - 7*cm]
),
sp(8),
P("5.4 HISTOPATHOLOGY: OWL-EYE INCLUSION BODIES", section_h1),
hr(C_ORANGE),
P("""The pathological hallmark of CMV infection is the <b>owl-eye inclusion body</b>
- a large intranuclear inclusion surrounded by a clear halo, with the nucleus
appearing like an owl's eye. CMV-infected cells are also enlarged (<i>cyto-megalo</i>-virus
literally means 'cell-enlarging virus').""", body),
sp(4),
data_table(
["Feature", "CMV Inclusion"],
[
("Nuclear inclusion", "Large, central, basophilic, surrounded by CLEAR HALO = OWL-EYE appearance"),
("Cytoplasmic inclusions", "Small granular cytoplasmic inclusions may also be present"),
("Cell size", "Dramatically enlarged (cytomegalic) cells - 2-3x normal size"),
("Tissues affected", "Salivary glands, lung, kidney, liver, GI tract, retina, brain"),
("vs. HSV/VZV", "Both HSV/VZV and CMV produce Cowdry type A intranuclear inclusions; CMV also causes cytomegaly and cytoplasmic inclusions"),
],
col_widths=[4.5*cm, PAGE_W - 2*MARGIN - 4.5*cm]
),
sp(6),
KF("OWL-EYE CELL = CMV. Large intranuclear inclusion with clear halo in an enlarged cell. This is on EVERY NEET PG exam."),
sp(8),
P("5.5 LABORATORY DIAGNOSIS", section_h1),
hr(C_ORANGE),
data_table(
["Test", "Method", "Use"],
[
("Shell vial culture + antigen detection", "Rapid culture; detect pp65 antigenemia", "Quantitative CMV monitoring in transplant patients"),
("CMV pp65 antigenemia assay", "IF staining of WBCs for CMV pp65 antigen", "Monitoring immunocompromised; semiquantitative"),
("CMV PCR (quantitative)", "PCR in blood/urine/CSF", "Gold standard for diagnosis and monitoring viral load; congenital CMV diagnosis from urine <3 weeks"),
("Serology (IgG/IgM)", "EIA/ELISA", "Used for pretransplant donor/recipient screening; IgM for acute infection"),
("Histology", "Owl-eye cells on biopsy", "Tissue diagnosis; CMV colitis/esophagitis/retinitis"),
("CMV avidity index", "IgG avidity", "High avidity = past infection; low avidity = recent primary infection in pregnancy"),
],
col_widths=[4*cm, 4*cm, PAGE_W - 2*MARGIN - 8*cm]
),
sp(8),
P("5.6 TREATMENT", section_h1),
hr(C_ORANGE),
data_table(
["Drug", "Mechanism", "Key Indications", "Toxicity"],
[
("Ganciclovir (IV)", "Nucleoside analog; activated by CMV-encoded UL97 kinase (not TK); inhibits viral DNA polymerase",
"CMV retinitis, colitis, esophagitis, pneumonitis in immunocompromised; congenital CMV; prophylaxis in transplants",
"MYELOSUPPRESSION (major: neutropenia, thrombocytopenia); teratogenic"),
("Valganciclovir (oral)", "Prodrug of ganciclovir; high oral bioavailability",
"CMV retinitis maintenance; prophylaxis in transplant; congenital CMV",
"Same as ganciclovir"),
("Foscarnet (IV)", "Pyrophosphate analog; directly inhibits viral DNA polymerase; NO phosphorylation required",
"Ganciclovir-resistant CMV; acyclovir-resistant HSV; CMV retinitis",
"NEPHROTOXIC (major); electrolyte abnormalities; penile ulcers"),
("Cidofovir (IV)", "Nucleotide analog; activated by HOST kinases (not viral); inhibits DNA polymerase",
"Ganciclovir/foscarnet-resistant CMV; CMV retinitis",
"NEPHROTOXIC (major); requires probenecid co-administration to reduce renal toxicity"),
("Letermovir", "Inhibits CMV terminase complex (UL56); novel mechanism",
"CMV prophylaxis in allogeneic bone marrow transplant recipients",
"Relatively well tolerated; drug interactions via CYP450"),
],
col_widths=[3.2*cm, 4*cm, 4*cm, PAGE_W - 2*MARGIN - 11.2*cm]
),
sp(6),
NOTE("CMV uses UL97 kinase for initial ganciclovir phosphorylation (NOT thymidine kinase like HSV). CMV resistance to ganciclovir most commonly involves UL97 mutations; less commonly UL54 (DNA polymerase) mutations."),
PageBreak(),
]
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 6: Comparison Tables
# ────────────────────────────────────────────────────────────────────────────────
def chapter6():
elems = [
chapter_banner("CHAPTER 6: MASTER COMPARISON TABLES", C_DARK_BLUE),
sp(10),
P("6.1 ALL 4 HERPESVIRUSES AT A GLANCE", section_h1),
hr(C_MED_BLUE),
data_table(
["Feature", "HSV-1 (HHV-1)", "HSV-2 (HHV-2)", "VZV (HHV-3)", "EBV (HHV-4)", "CMV (HHV-5)"],
[
("Subfamily", "Alpha", "Alpha", "Alpha", "Gamma", "Beta"),
("Genome size", "~152 kbp", "~155 kbp", "~125 kbp", "~172 kbp", "~240 kbp (largest)"),
("Latency site", "Trigeminal ganglion", "Sacral ganglia S2-S3", "All dorsal root + cranial ganglia", "Memory B lymphocytes", "Monocytes, macrophages, glands"),
("Primary disease", "Gingivostomatitis, pharyngitis", "Genital ulcers", "Chickenpox (varicella)", "Infectious mononucleosis", "Usually asymptomatic"),
("Reactivation disease", "Cold sore (herpes labialis)", "Recurrent genital herpes", "Shingles (herpes zoster)", "Lymphoma (immune-senescent)", "Retinitis, colitis (immunocomp.)"),
("Cell receptor", "Heparan sulfate + nectin", "Heparan sulfate + nectin", "VE-cadherin, various", "CD21 (CR2) on B cells", "CD13, Integrins, PDGFRα"),
("Encephalitis", "Yes (temporal lobe, adults)", "Rare (meningitis)", "Rare (cerebellar ataxia)", "Rare (complication of IM)", "Periventricular (AIDS, congenital)"),
("Neonatal disease", "25% of neonatal herpes", "75% of neonatal herpes", "Neonatal varicella", "Rare", "Most common congenital viral infection"),
("Malignancy", "None", "None", "None", "Burkitt lymphoma, NPC, HL, PTLD", "None (but associated with GI cancers)"),
("Antiviral", "Acyclovir (TK-dependent)", "Acyclovir", "Acyclovir/Valacyclovir", "None effective for IM", "Ganciclovir (UL97-dependent)"),
("Vaccine", "None", "None", "Varivax (Oka), Shingrix", "None", "None"),
("Inclusion body", "Cowdry A (intranuclear)", "Cowdry A (intranuclear)", "Cowdry A (intranuclear)", "None specific", "Owl-eye (intranuclear + cytoplasmic)"),
],
col_widths=[3*cm, 2.9*cm, 2.9*cm, 2.9*cm, 2.9*cm, 2.9*cm]
),
sp(10),
P("6.2 ANTIVIRAL DRUG COMPARISON", section_h1),
hr(C_MED_BLUE),
data_table(
["Drug", "Active Against", "Activation Kinase", "Mechanism", "Main Toxicity"],
[
("Acyclovir", "HSV-1, HSV-2, VZV (less active)", "Viral TK (HSV/VZV)", "Inhibits viral DNA polymerase; chain terminator", "Well tolerated; nephrotoxicity at high IV doses"),
("Valacyclovir", "HSV-1, HSV-2, VZV", "Viral TK (after conversion to ACV)", "Same as acyclovir", "Same; TTP/HUS at high doses in HIV"),
("Famciclovir", "HSV-1, HSV-2, VZV, HBV", "Viral TK (after conversion to penciclovir)", "Competitive inhibitor viral DNA pol", "Well tolerated"),
("Ganciclovir", "CMV >> HSV, VZV, EBV", "CMV UL97 kinase (NOT TK)", "Inhibits viral DNA polymerase", "Myelosuppression; teratogenic"),
("Foscarnet", "CMV, HSV, VZV, HIV", "NONE (direct pyrophosphate analog)", "Directly inhibits viral DNA pol at pyrophosphate binding site", "Nephrotoxic; electrolytes; seizures"),
("Cidofovir", "CMV, HSV, adenovirus, poxvirus", "Host cellular kinases (NOT viral)", "Inhibits viral DNA pol", "Severe nephrotoxicity"),
("Letermovir", "CMV only", "Not applicable", "Inhibits CMV terminase (UL56)", "Drug interactions; GI"),
],
col_widths=[3*cm, 3.5*cm, 3*cm, 4*cm, PAGE_W - 2*MARGIN - 13.5*cm]
),
sp(10),
P("6.3 INCLUSION BODIES & HISTOPATHOLOGY", section_h1),
hr(C_MED_BLUE),
data_table(
["Inclusion Body", "Virus", "Location", "Appearance", "Test Positive"],
[
("Cowdry type A", "HSV, VZV, CMV", "Intranuclear", "Homogeneous, eosinophilic/amphophilic; clear halo around it", "H&E stain; IF with virus-specific antibodies"),
("Owl-eye inclusion", "CMV", "Intranuclear + cytoplasmic", "Large, basophilic intranuclear inclusion with clear halo; cytomegalic cell", "H&E; IHC; CMV antigenemia"),
("Negri body", "Rabies (NOT herpesvirus)", "Cytoplasmic (neurons)", "Eosinophilic; in hippocampus/cerebellum", "Seller's stain; IF"),
("Henderson-Paterson body", "Molluscum contagiosum", "Cytoplasmic (epidermal cells)", "Large, pink viral inclusion bodies", "H&E"),
("Tzanck cell", "HSV, VZV", "Multinucleated giant cell", "Fusion product; multiple nuclei; eosinophilic nuclear inclusions", "Tzanck smear; Giemsa/Pap stain"),
],
col_widths=[3.5*cm, 3*cm, 2.5*cm, 4*cm, PAGE_W - 2*MARGIN - 13*cm]
),
sp(10),
P("6.4 CONGENITAL INFECTIONS (TORCH) COMPARISON", section_h1),
hr(C_MED_BLUE),
data_table(
["Pathogen", "Calcification Pattern", "Key Features", "Diagnosis"],
[
("Toxoplasma gondii", "DIFFUSE/SCATTERED (throughout brain parenchyma)", "Hydrocephalus, chorioretinitis, intracranial calcifications; cat exposure", "Serology (IgM/IgG avidity); PCR"),
("Rubella", "None typically", "CONGENITAL RUBELLA SYNDROME: PDA, pulmonary stenosis, cataracts, deafness, blueberry muffin rash; FIRST trimester worst", "Serology; viral culture"),
("CMV (HHV-5)", "PERIVENTRICULAR calcifications", "Most common congenital infection; SNHL (most common sequela); microcephaly; petechiae", "CMV PCR/culture from URINE <3 weeks"),
("HSV (HSV-2 mainly)", "No calcifications typically", "Neonatal HSV: skin/eye/mouth (SEM); CNS; disseminated; treated with IV acyclovir", "Viral culture; PCR"),
("Varicella (VZV)", "None typical", "Congenital varicella syndrome (<20 wks): limb hypoplasia, skin scars, eye defects, CNS; risk ~2%", "Clinical; PCR; serology"),
],
col_widths=[3.5*cm, 3.5*cm, 5*cm, PAGE_W - 2*MARGIN - 12*cm]
),
PageBreak(),
]
return elems
# ────────────────────────────────────────────────────────────────────────────────
# CHAPTER 7: High-Yield NEET PG Facts
# ────────────────────────────────────────────────────────────────────────────────
def chapter7():
elems = [
chapter_banner("CHAPTER 7: HIGH-YIELD NEET PG / INICET FACTS", C_ACCENT),
sp(10),
P("7.1 TOP 50 EXAM POINTS", section_h1),
hr(C_ACCENT),
sp(4),
]
facts = [
("HSV & LATENCY", [
"HSV latency site = NEURONS (trigeminal for orofacial; sacral S2-S3 for genital) - not determined by virus TYPE but by LOCATION of primary infection",
"During latency: NO viral proteins expressed; ONLY LAT (Latency-Associated Transcript) is transcribed",
"Acyclovir CANNOT eliminate latent HSV because viral TK is NOT expressed during latency",
"HSV encephalitis (adults) = HSV-1; temporal lobe hemorrhagic necrosis; CSF PCR = gold standard",
"Neonatal HSV: HSV-2 = 75%; transmitted peripartum; treat IV acyclovir even before PCR results",
"Herpes gladiatorum = HSV-1 in wrestlers via skin contact",
]),
("ACYCLOVIR MECHANISM", [
"Acyclovir activation STEP 1: Viral thymidine kinase (TK) → monophosphate (SELECTIVE - only in infected cells)",
"Steps 2+3: Host cell kinases → triphosphate → inhibits viral DNA polymerase (chain terminator, lacks 3'-OH)",
"Resistance: Most common = TK gene mutation/deletion; treat resistant strains with FOSCARNET or CIDOFOVIR",
"Foscarnet = pyrophosphate analog; does NOT need TK phosphorylation; treats TK-deficient resistant HSV/CMV",
]),
("VZV (CHICKENPOX & SHINGLES)", [
"Varicella rash = CENTRIPETAL (face→trunk); lesions in ALL stages simultaneously ('crops of lesions'); 'dewdrop on rose petal'",
"Smallpox vs Varicella: Smallpox = centrifugal (extremities first); ALL lesions in SAME stage",
"Reye syndrome = encephalopathy + fatty liver after ASPIRIN use in viral illness (varicella or influenza) in children",
"Ramsay Hunt syndrome = VZV in geniculate ganglion = ear vesicles + ipsilateral LMN facial palsy",
"Herpes zoster ophthalmicus: V1 (ophthalmic) branch; Hutchinson sign (tip of nose) = predict eye involvement",
"Varicella vaccine = live attenuated Oka strain (1995); contraindicated in pregnancy and immunocompromised",
"Shingrix (recombinant, non-live) = preferred zoster vaccine >50yrs; >90% effective; can use in immunocompromised",
"VZV diagnosis: Tzanck = multinucleated giant cells (same as HSV; cannot differentiate); use IF or PCR for differentiation",
]),
("EBV", [
"EBV receptor = CD21 (CR2, complement receptor 2) on B lymphocytes",
"Atypical lymphocytes (Downey cells) = ACTIVATED CD8+ T cells (NOT the infected B cells)",
"Paul-Bunnell test: Heterophile IgM agglutinates sheep/horse/bovine RBCs; NOT absorbed by guinea pig kidney",
"Monospot (rapid) = horse RBC agglutination; positive in week 2; unreliable in children <4 years",
"Serologic key: EBNA ABSENT = acute/recent infection; EBNA PRESENT = past infection (EBNA appears in convalescence)",
"Ampicillin/amoxicillin in EBV IM → pruritic maculopapular rash in 15-30%; NOT true penicillin allergy",
"Splenic rupture risk in IM: NO contact sports for ≥3-4 weeks until splenomegaly resolves",
"Burkitt lymphoma = t(8;14) c-MYC/IgH translocation; African jaw tumor in malaria belt",
"Nasopharyngeal carcinoma = EPITHELIAL cells (unlike Burkitt = B cells); endemic SE Asia/China",
"Kaposi sarcoma = HHV-8, NOT EBV. Primary effusion lymphoma = HHV-8 + EBV co-infection",
"Hairy oral leukoplakia = lateral tongue; AIDS patients; NON-scrapable (vs. oral candidiasis = scrapable)",
]),
("CMV", [
"CMV = MOST COMMON congenital viral infection; most common infectious cause of congenital SNHL",
"Congenital CMV calcifications = PERIVENTRICULAR (vs. Toxoplasma = diffuse/scattered)",
"CMV owl-eye inclusion = large intranuclear basophilic inclusion with clear halo; cytomegalic (enlarged) cell",
"CMV retinitis = CD4 <50 in AIDS; 'pizza pie fundus' / 'brushfire appearance'; vision-threatening",
"Ganciclovir activation: CMV UL97 kinase (NOT thymidine kinase like HSV)",
"Ganciclovir toxicity = MYELOSUPPRESSION (neutropenia + thrombocytopenia)",
"Foscarnet toxicity = NEPHROTOXICITY (major); Cidofovir toxicity = NEPHROTOXICITY",
"CMV congenital diagnosis: PCR/culture from URINE within FIRST 3 WEEKS of life",
"CMV heterophile-negative mononucleosis = mononucleosis syndrome WITHOUT Paul-Bunnell/Monospot positivity",
"Letermovir = CMV terminase inhibitor (UL56); newest CMV prophylactic in BMT",
]),
("QUICK COMPARISON TRAPS", [
"CMV vs HSV esophagitis: CMV = large single shallow ulcer (lower esophagus); HSV = multiple small vesicular ulcers (upper)",
"Tzanck smear positivity: HSV-1, HSV-2, VZV all positive. NEGATIVE in: molluscum, poxvirus, CMV",
"Most common cause of fatal sporadic encephalitis = HSV-1",
"Most common congenital infection = CMV",
"Most common infectious cause of congenital SNHL = CMV",
"Cowdry type A = HSV + CMV + VZV. Owl-eye = CMV specifically",
"Acyclovir spectrum: HSV-1 > HSV-2 > VZV (much less active); NOT active against CMV",
"Ganciclovir: Active against CMV >> HSV, VZV (backup only); EBV (reduces shedding)",
]),
]
colors_list = [C_MED_BLUE, C_ACCENT, C_GREEN, C_PURPLE, C_ORANGE, C_DARK_BLUE]
for (topic, pts), col in zip(facts, colors_list):
elems.append(KeepTogether([
section_box(topic, col),
sp(4),
]))
for i_p, pt in enumerate(pts, 1):
elems.append(P(f"<b>{i_p}.</b> {pt}", body))
elems.append(sp(8))
elems.append(hr(C_DARK_BLUE, 1.5))
elems.append(sp(6))
elems.append(P("7.2 COMMON MCQ TRAPS SUMMARY TABLE", section_h1))
elems.append(hr(C_DARK_BLUE))
elems.append(data_table(
["Question Stem / Trap", "Wrong Answer (Distractor)", "Correct Answer"],
[
("Atypical lymphocytes in EBV IM are...", "Infected B lymphocytes", "Activated CD8+ T cells (Downey cells)"),
("Site of HSV latency is determined by...", "The type of HSV (1 or 2)", "The LOCATION of primary infection"),
("Acyclovir is selective because...", "It binds viral surface receptors only", "Viral TK phosphorylates it ONLY in infected cells"),
("Tzanck smear distinguishes HSV from VZV?", "Yes", "NO - both give multinucleated giant cells; use IF/PCR"),
("Ampicillin rash in EBV IM is...", "A true penicillin allergy", "Drug-virus interaction; NOT true allergy"),
("Congenital CMV calcifications location", "Diffuse/scattered (toxoplasmosis pattern)", "PERIVENTRICULAR"),
("Kaposi sarcoma is caused by...", "EBV", "HHV-8 (KSHV)"),
("Ganciclovir is activated by...", "Viral thymidine kinase (like acyclovir)", "CMV UL97 protein kinase"),
("EBNA antibody absence indicates...", "Past infection", "ACUTE/RECENT infection"),
("Burkitt lymphoma translocation", "t(14;18) bcl-2", "t(8;14) c-MYC/IgH"),
("VZV rash distribution", "Centrifugal (like smallpox)", "CENTRIPETAL (face/trunk > extremities)"),
("Ramsay Hunt syndrome cause", "Bell's palsy (idiopathic)", "VZV in geniculate ganglion"),
],
col_widths=[6*cm, 4.5*cm, PAGE_W - 2*MARGIN - 10.5*cm]
))
elems.append(sp(12))
elems.append(hr(C_DARK_BLUE))
elems.append(P(
"<i>This guide is compiled from Jawetz Melnick & Adelberg's Medical Microbiology (28e), "
"Sherris & Ryan's Medical Microbiology (8e), Medical Microbiology 9e, Robbins & Kumar Pathology, "
"Harrison's Principles of Internal Medicine (22e), Goldman-Cecil Medicine, "
"and Fitzpatrick's Dermatology. For educational use only.</i>",
make_style("Disc", fontSize=8, textColor=HexColor("#666666"), fontName="Helvetica-Oblique",
alignment=TA_CENTER, leading=11, spaceBefore=4)))
return elems
# ── MAIN BUILD ─────────────────────────────────────────────────────────────────
def build():
doc = BaseDocTemplate(
OUTPUT_PATH,
pagesize=A4,
leftMargin=MARGIN,
rightMargin=MARGIN,
topMargin=MARGIN + 8*mm,
bottomMargin=MARGIN + 8*mm,
title="Herpesviruses Complete Microbiology Guide",
author="Orris Medical Education",
subject="NEET PG / INICET Microbiology - Herpesviruses",
)
frame_cover = Frame(0, 0, PAGE_W, PAGE_H, leftPadding=0, rightPadding=0,
topPadding=0, bottomPadding=0, id="cover")
frame_body = Frame(MARGIN, MARGIN + 8*mm, PAGE_W - 2*MARGIN,
PAGE_H - 2*MARGIN - 16*mm, id="body")
cover_template = PageTemplate(id="Cover", frames=[frame_cover], onPage=on_first_page)
body_template = PageTemplate(id="Content", frames=[frame_body], onPage=on_page)
doc.addPageTemplates([cover_template, body_template])
story = []
story += cover_page()
story += toc()
story += chapter1()
story += chapter2()
story += chapter3()
story += chapter4()
story += chapter5()
story += chapter6()
story += chapter7()
doc.build(story)
print(f"PDF created: {OUTPUT_PATH}")
import os
size = os.path.getsize(OUTPUT_PATH)
print(f"File size: {size/1024:.1f} KB")
if __name__ == "__main__":
build()
cd /home/daytona/workspace/herpesvirus-guide && python3 build_pdf.py 2>&1
~/herpesvirus-guide/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/herpesvirus-guide/build_pdf.py'
cd /home/daytona/workspace/herpesvirus-guide && python3 build_pdf.py 2>&1
Herpesviruses Complete Guide
PDF Document · PDF