attachment
attachment

Questions gulor ans reference book soho dau & English ans gula ektu shortly and easy ans dau Banglay ar ektu bujhay dau

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
এখন সব তথ্য আছে। সম্পূর্ণ উত্তর লিখছি।

Card 05 - Parasitology: Entamoeba histolytica (AMCB-08)

Reference: Medical Microbiology 9e (Murray), Jawetz Medical Microbiology 28e

Q1. Morphological forms and identifying characteristics of E. histolytica

Answer (Short): E. histolytica has 3 morphological forms:
FormSizeKey Features
Trophozoite12-50 µmMotile, ameboid; cytoplasm has outer hyaline + inner granular zone; contains ingested RBCs (pathognomonic); nucleus has central karyosome + fine peripheral chromatin
Cyst (mature)10-20 µm4 nuclei; chromatoid bars with rounded ends; glycogen vacuole
PrecystIntermediate1-2 nuclei; transitional form
বাংলায়: E. histolytica-র ৩টি রূপ আছে। Trophozoite হলো সক্রিয় রূপ - এটি মলের মধ্যে দেখা যায়, এর ভেতরে লাল রক্তকণিকা (RBC) থাকা এর সবচেয়ে বড় পরিচয়। Cyst হলো গোলাকার, ৪টি নিউক্লিয়াস আছে, chromatoid bar-এর মাথা গোল।

Q2. Which form is infective, pathogenic, and diagnostic? Why?

RoleFormReason
InfectiveMature Cyst (4-nucleated)Acid-resistant wall survives stomach, releases trophozoite in duodenum
PathogenicTrophozoiteInvades intestinal wall, causes ulcers and tissue destruction
DiagnosticCyst (in formed stool) / Trophozoite (in diarrheal stool)Trophozoite with RBC in liquid stool = pathognomonic of active disease
বাংলায়: Cyst হলো infective কারণ এটি পেটের এসিড থেকে বাঁচতে পারে। Trophozoite হলো pathogenic কারণ এটাই টিস্যু ক্ষতি করে। Diagnosis-এ cyst (formed stool) বা trophozoite (দাস্তের মল) দেখা যায়।

Q3. Definitive host, Intermediate host, Mode of infection

  • Definitive host: মানুষ (Human) - E. histolytica-র কোনো intermediate host নেই
  • Intermediate host: None (নেই)
  • Mode of infection: Feco-oral route - contaminated water/food-এ mature cyst গিলে ফেলা; মাছি ও তেলাপোকাও cyst বহন করে
বাংলায়: মানুষই একমাত্র host। দূষিত পানি বা খাবারের মাধ্যমে cyst খেয়ে ফেললে infection হয়।

Q4. Life cycle stages & how E. histolytica produces intestinal ulcer

Life Cycle:
  1. Ingestion of cyst (contaminated food/water)
  2. Cyst passes stomach → reaches duodenum
  3. Gastric acid triggers → excystation → quadrinucleated cyst → 4 trophozoites
  4. Trophozoites colonize large intestine (cecum, ascending colon)
  5. Trophozoites → form precystscysts → passed in feces (infective cycle continues)
How ulcer forms:
  • Trophozoite binds intestinal epithelium via galactose-inhibitable lectin
  • Releases cytotoxins and proteases
  • Lysis of epithelial cells → flask-shaped ulcer (small entry point, wide necrotic base in submucosa)
  • Flask shape = narrow neck through mucosa, expanded necrotic area in submucosa
বাংলায়: Cyst খাওয়ার পর পেটে acid-এ উদ্দীপিত হয়ে trophozoite বের হয়, বড় অন্ত্রে যায়, intestinal wall-এ আটকে cytotoxin ছাড়ে, কোষ নষ্ট করে। Flask আকৃতির ঘা তৈরি হয় - মুখ ছোট কিন্তু ভেতরে বড় necrotic এলাকা।

Q5. Virulence factors of E. histolytica

  1. Gal/GalNAc Lectin - host cell-এ attach করে
  2. Amebapores - pore-forming proteins, host cell membrane ফুটো করে
  3. Cysteine proteases - tissue degrade করে, complement inactivate করে
  4. Phospholipase A - membrane lipid ভাঙে
  5. Host cell lysis - neutrophil lysis করে তাদের toxic contents ছাড়িয়ে দেয়
বাংলায়: E. histolytica রোগ করে কারণ এর lectin দিয়ে কোষে ধরে, তারপর amebapore দিয়ে কোষ ফুটো করে, protease দিয়ে টিস্যু কাটে।

Q6. Lesions produced by E. histolytica + Pathogenesis of Amoebiasis

Lesions:
  • Flask-shaped ulcers - cecum ও ascending colon-এ বেশি
  • Secondary bacterial invasion → inflammatory cells, neutrophils
  • Coalescence of ulcers → large mucosal destruction
  • Ameboma - granulomatous tumor-like mass on intestinal wall
  • Liver abscess (most common extraintestinal) - right lobe
  • Lung, brain, spleen abscess (rare)
Pathogenesis:
  1. Cyst ingested → trophozoite released
  2. Trophozoite attaches via lectin
  3. Cytotoxin release → lytic necrosis
  4. Flask ulcer forms → spreads laterally under mucosa
  5. May penetrate muscularis → serosa → peritoneal perforation
  6. Portal circulation → liver abscess (anchovy paste pus)
বাংলায়: প্রথমে cecum-এ ঘা হয়, এরপর ছড়িয়ে পড়ে। গুরুতর হলে liver-এ abscess হয় যেখানে "anchovy sauce" ধরনের তরল থাকে।

Q7. What is E. dispar? Differentiation from E. coli and E. dispar

E. dispar:
  • E. histolytica-র morphologically identical non-pathogenic species
  • Commensal - intestinal tissue invade করে না
  • RBC contains করে না cytoplasm-এ
  • PCR বা isoenzyme (zymodeme) analysis দিয়ে আলাদা করতে হয়
E. histolytica vs E. coli vs E. dispar:
FeatureE. histolyticaE. coliE. dispar
Trophozoite size12-50 µm20-30 µmSame as E.h
KaryosomeCentral, sharpEccentric, coarseCentral
Peripheral chromatinFine, evenCoarse, irregularFine, even
RBC in cytoplasmYesNoNo
Cyst nuclei1-41-81-4
Chromatoid barsRounded endsSplintered/frayedRounded
PathogenicYesNoNo
বাংলায়: E. dispar দেখতে একদম E. histolytica-র মতো, কিন্তু রোগ করে না, RBC খায় না। E. coli-র cyst-এ ৮টা পর্যন্ত নিউক্লিয়াস হয়, chromatoid bar-এর মাথা ভাঙা থাকে।

Q8. Amoeboma + Extraintestinal sites + Diagnosis of Hepatic Amoebiasis

Amoeboma:
  • Intestinal wall-এ granulomatous inflammatory tumor-like mass
  • Large bowel lumen block করতে পারে
  • X-ray তে carcinoma-র মতো দেখায়
Extraintestinal sites:
  1. Liver (most common) - right lobe abscess
  2. Lungs - pleuropulmonary amoebiasis
  3. Brain - cerebral abscess
  4. Spleen
  5. Skin/perineum - cutaneous amoebiasis
Diagnosis of Hepatic Amoebiasis:
  • Imaging: Ultrasound / CT scan / MRI - right lobe abscess (elevation of right diaphragm)
  • Serology: EIA (Enzyme Immunoassay) - strongly positive
  • Aspiration: "Anchovy paste/sauce" colored pus - but amebae rarely found in pus (only at abscess wall)
  • Stool exam: Cyst/trophozoite in stool
বাংলায়: Amoeboma মানে অন্ত্রের দেয়ালে tumor-এর মতো গোটা। Liver abscess diagnose করতে ultrasound + blood test (serology) করা হয়। Abscess-এর পুঁজ anchovy sauce-এর মতো দেখতে।

Q9. "Anchovy Sauce Pus" - কী, কোন parasite, কি isolate করা যায়?

  • Anchovy sauce pus = হেপাটিক amoebiasis-এ liver abscess থেকে drain করা পুঁজ যা চকলেট/অ্যাঞ্চোভি সস-এর মতো গাঢ় বাদামী রঙের
  • Parasite: Entamoeba histolytica
  • Isolate করা যাবে কি? - সাধারণত না। কারণ:
    • Trophozoites abscess-এর wall-এ থাকে, center-এ না
    • Abscess-এর ভেতরের necrotic material ব্যাকটেরিওলজিক্যালি sterile
    • সরাসরি pus-এ ameba পাওয়া যায় না / খুব কম পাওয়া যায়
    • Wall থেকে নেওয়া biopsy-তে পাওয়া সম্ভব
বাংলায়: Anchovy sauce পুঁজ হলো liver abscess-এর বৈশিষ্ট্যপূর্ণ তরল। কিন্তু এই পুঁজ থেকে E. histolytica isolate করা যায় না, কারণ ameba পুঁজের মাঝখানে না থেকে abscess-এর দেয়ালে থাকে।

Q10. Amoebic vs Bacillary Dysentery (Macroscopy + Microscopy)

FeatureAmoebic DysenteryBacillary Dysentery (Shigella)
Macroscopy
StoolScanty, blood-stained mucus; no pusCopious, mucus + pus + blood
OdourOffensive (foul)Less offensive
Ulcer shapeFlask-shaped, discreteSuperficial, diffuse
Microscopy
ExudateMainly RBCs, few pus cellsPus cells (neutrophils) predominant
Charcot-Leyden crystalsPresentAbsent
OrganismE. histolytica trophozoites with RBCShigella bacilli
WBC in stoolFewMany (neutrophils)
Most reliable finding: Microscopic - finding of E. histolytica trophozoites containing RBCs in stool is pathognomonic for amoebic dysentery. এটা সবচেয়ে reliable কারণ এটি specific - শুধু E. histolytica-র তে দেখা যায়।
বাংলায়: Amoebic dysentery-তে মলে বেশি RBC থাকে, পুঁজ কম। Bacillary dysentery-তে মলে পুঁজ (neutrophil) বেশি। কিন্তু সবচেয়ে নির্ভরযোগ্য পরীক্ষা হলো microscope-এ মলে E. histolytica trophozoite দেখা যেখানে RBC আছে - এটা দেখলেই নিশ্চিত।

References:

Create a quick reference PDF on E. histolytica pathology

Reading File
Running Command

mkdir -p /tmp/workspace/entamoeba-pdf && ls /tmp/workspace/

Writing File

~/entamoeba-pdf/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/tmp/workspace/entamoeba-pdf/Entamoeba_histolytica_Quick_Reference.pdf"

# ── Colors ──────────────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A3A5C")
MED_BLUE    = colors.HexColor("#2E6DA4")
LIGHT_BLUE  = colors.HexColor("#D6E8F7")
ACCENT_RED  = colors.HexColor("#C0392B")
ACCENT_GRN  = colors.HexColor("#1E8449")
ACCENT_ORG  = colors.HexColor("#D35400")
PALE_YELLOW = colors.HexColor("#FFFDE7")
PALE_GREEN  = colors.HexColor("#E8F5E9")
PALE_RED    = colors.HexColor("#FDEDEC")
PALE_GREY   = colors.HexColor("#F4F6F7")
WHITE       = colors.white
BLACK       = colors.black
DARK_GREY   = colors.HexColor("#2C3E50")

# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def make_style(name, parent="Normal", **kwargs):
    return ParagraphStyle(name, parent=styles[parent], **kwargs)

TITLE_ST = make_style("TITLE_ST", fontSize=22, textColor=WHITE,
                       fontName="Helvetica-Bold", alignment=TA_CENTER,
                       leading=28, spaceAfter=2)
SUBTITLE_ST = make_style("SUBTITLE_ST", fontSize=11, textColor=LIGHT_BLUE,
                          fontName="Helvetica", alignment=TA_CENTER,
                          leading=16)
SECTION_ST = make_style("SECTION_ST", fontSize=12, textColor=WHITE,
                          fontName="Helvetica-Bold", alignment=TA_LEFT,
                          leading=16, leftIndent=6)
BODY_ST = make_style("BODY_ST", fontSize=9, textColor=DARK_GREY,
                      fontName="Helvetica", leading=13, spaceAfter=3)
BODY_B_ST = make_style("BODY_B_ST", fontSize=9, textColor=DARK_GREY,
                        fontName="Helvetica-Bold", leading=13)
BULLET_ST = make_style("BULLET_ST", fontSize=9, textColor=DARK_GREY,
                        fontName="Helvetica", leading=13,
                        leftIndent=12, firstLineIndent=-8, spaceAfter=2)
SMALL_ST = make_style("SMALL_ST", fontSize=8, textColor=colors.HexColor("#555555"),
                       fontName="Helvetica", leading=11)
TH_ST = make_style("TH_ST", fontSize=8.5, textColor=WHITE,
                    fontName="Helvetica-Bold", alignment=TA_CENTER, leading=11)
TD_ST = make_style("TD_ST", fontSize=8, textColor=DARK_GREY,
                    fontName="Helvetica", alignment=TA_CENTER, leading=11)
TD_L_ST = make_style("TD_L_ST", fontSize=8, textColor=DARK_GREY,
                      fontName="Helvetica", alignment=TA_LEFT, leading=11)
WARN_ST = make_style("WARN_ST", fontSize=8.5, textColor=ACCENT_RED,
                      fontName="Helvetica-Bold", leading=12)
KEY_ST = make_style("KEY_ST", fontSize=9, textColor=ACCENT_RED,
                     fontName="Helvetica-Bold", leading=13)

# ── Helpers ───────────────────────────────────────────────────────────────────
def section_header(title, color=DARK_BLUE):
    tbl = Table([[Paragraph(title, SECTION_ST)]], colWidths=[17.6*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
        ("ROUNDEDCORNERS", [4,4,4,4]),
    ]))
    return tbl

def bullet(text, bold_prefix=None):
    if bold_prefix:
        return Paragraph(f"<bullet>&#x2022;</bullet> <b>{bold_prefix}</b> {text}", BULLET_ST)
    return Paragraph(f"<bullet>&#x2022;</bullet> {text}", BULLET_ST)

def kv_row(k, v, bg=WHITE):
    return [Paragraph(f"<b>{k}</b>", TD_L_ST), Paragraph(v, TD_L_ST)]

def hr():
    return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#BDC3C7"), spaceAfter=4, spaceBefore=4)

# ── Page template ─────────────────────────────────────────────────────────────
def add_page_decorations(canvas, doc):
    canvas.saveState()
    w, h = A4
    # Header bar
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, h - 18*mm, w, 18*mm, fill=1, stroke=0)
    canvas.setFont("Helvetica-Bold", 8)
    canvas.setFillColor(WHITE)
    canvas.drawString(15*mm, h - 12*mm, "Entamoeba histolytica  |  Quick Reference")
    canvas.drawRightString(w - 15*mm, h - 12*mm, "Parasitology  |  AMCB-08")
    # Footer bar
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, 0, w, 10*mm, fill=1, stroke=0)
    canvas.setFont("Helvetica", 7)
    canvas.setFillColor(LIGHT_BLUE)
    canvas.drawString(15*mm, 3.5*mm, "Reference: Murray's Medical Microbiology 9e  |  Jawetz Medical Microbiology 28e")
    canvas.drawRightString(w - 15*mm, 3.5*mm, f"Page {doc.page}")
    canvas.restoreState()

# ── Build content ─────────────────────────────────────────────────────────────
story = []

# ===== COVER / TITLE BLOCK =====
cover_data = [[
    Paragraph("Entamoeba histolytica", TITLE_ST),
], [
    Paragraph("Quick Reference Guide  |  Parasitology (AMCB-08)  |  Rhizopoda", SUBTITLE_ST),
]]
cover_tbl = Table(cover_data, colWidths=[17.6*cm])
cover_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DARK_BLUE),
    ("TOPPADDING",    (0,0), (-1,-1), 14),
    ("BOTTOMPADDING", (0,0), (-1,-1), 14),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
story.append(cover_tbl)
story.append(Spacer(1, 8))

# ===== Q1 — MORPHOLOGICAL FORMS =====
story.append(section_header("1.  Morphological Forms of E. histolytica"))
story.append(Spacer(1, 4))

morph_data = [
    [Paragraph("Form", TH_ST), Paragraph("Size", TH_ST), Paragraph("Key Identifying Features", TH_ST)],
    [Paragraph("Trophozoite\n(Vegetative)", TD_ST),
     Paragraph("12–50 µm", TD_ST),
     Paragraph("Motile ameboid form; outer hyaline ectoplasm + inner granular endoplasm; "
               "nucleus with CENTRAL karyosome + fine even peripheral chromatin; "
               "RBCs in cytoplasm (PATHOGNOMONIC)", TD_L_ST)],
    [Paragraph("Pre-cyst", TD_ST),
     Paragraph("10–20 µm", TD_ST),
     Paragraph("Transitional form; glycogen vacuoles present; chromatoid bars appear; "
               "1–2 nuclei; loses motility", TD_L_ST)],
    [Paragraph("Mature Cyst\n(Quadrinucleate)", TD_ST),
     Paragraph("10–20 µm", TD_ST),
     Paragraph("Spherical, thick wall; 4 nuclei (each with central karyosome); "
               "chromatoid bars with ROUNDED ends; glycogen vacuole disappears when mature", TD_L_ST)],
]
morph_tbl = Table(morph_data, colWidths=[2.8*cm, 1.8*cm, 13*cm])
morph_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("BACKGROUND",    (0,1), (-1,1), PALE_YELLOW),
    ("BACKGROUND",    (0,2), (-1,2), PALE_GREEN),
    ("BACKGROUND",    (0,3), (-1,3), PALE_BLUE := colors.HexColor("#EBF5FB")),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("ROWBACKGROUNDS",(0,0), (-1,-1), [None]),
]))
story.append(morph_tbl)
story.append(Spacer(1, 6))

# ===== Q2 — INFECTIVE / PATHOGENIC / DIAGNOSTIC =====
story.append(section_header("2.  Infective, Pathogenic & Diagnostic Forms", MED_BLUE))
story.append(Spacer(1, 4))

ipd_data = [
    [Paragraph("Role", TH_ST), Paragraph("Form", TH_ST), Paragraph("Reason", TH_ST)],
    [Paragraph("INFECTIVE", TD_ST), Paragraph("Mature Cyst (4-nucleated)", TD_ST),
     Paragraph("Acid-resistant cyst wall survives gastric acid; excystation occurs in duodenum releasing trophozoites", TD_L_ST)],
    [Paragraph("PATHOGENIC", TD_ST), Paragraph("Trophozoite", TD_ST),
     Paragraph("Only form that invades intestinal wall; produces cytotoxins, proteases; causes flask-shaped ulcers and tissue destruction", TD_L_ST)],
    [Paragraph("DIAGNOSTIC", TD_ST), Paragraph("Cyst (formed stool)\nTrophozoite (diarrheal stool)", TD_ST),
     Paragraph("Trophozoite with RBC in liquid stool = pathognomonic for active invasive disease; cyst in formed stool = carrier state", TD_L_ST)],
]
ipd_tbl = Table(ipd_data, colWidths=[2.6*cm, 4.5*cm, 10.5*cm])
ipd_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("BACKGROUND",    (0,1), (0,1), colors.HexColor("#FDEDEC")),
    ("BACKGROUND",    (0,2), (0,2), colors.HexColor("#FEF9E7")),
    ("BACKGROUND",    (0,3), (0,3), colors.HexColor("#E8F8F5")),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,1), (0,1), ACCENT_RED),
    ("TEXTCOLOR",     (0,2), (0,2), ACCENT_ORG),
    ("TEXTCOLOR",     (0,3), (0,3), ACCENT_GRN),
]))
story.append(ipd_tbl)
story.append(Spacer(1, 6))

# ===== Q3 — HOST & MODE =====
story.append(section_header("3.  Host & Mode of Infection", ACCENT_GRN))
story.append(Spacer(1, 4))

host_data = [
    [Paragraph("<b>Definitive Host</b>", TD_L_ST), Paragraph("Humans only — no animal reservoir needed for life cycle", TD_L_ST)],
    [Paragraph("<b>Intermediate Host</b>", TD_L_ST), Paragraph("NONE", TD_L_ST)],
    [Paragraph("<b>Mode of Infection</b>", TD_L_ST), Paragraph("Feco-oral route — ingestion of mature cysts via contaminated water, food, vegetables; mechanical vectors: flies, cockroaches; oral-anal sexual contact", TD_L_ST)],
    [Paragraph("<b>Infective Dose</b>", TD_L_ST), Paragraph("As few as 1 cyst can cause infection", TD_L_ST)],
]
host_tbl = Table(host_data, colWidths=[4*cm, 13.6*cm])
host_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), PALE_GREEN),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("ROWBACKGROUNDS",(0,0), (-1,-1), [PALE_GREEN, WHITE, PALE_GREEN, WHITE]),
]))
story.append(host_tbl)
story.append(Spacer(1, 6))

# ===== Q4 — LIFE CYCLE =====
story.append(section_header("4.  Life Cycle & Flask-Shaped Ulcer Formation", DARK_BLUE))
story.append(Spacer(1, 4))

lc_steps = [
    ("1", "Cyst ingested", "Contaminated food/water; cyst survives gastric acid"),
    ("2", "Excystation", "In duodenum; gastric acid stimulates release of trophozoites; quadrinucleate cyst → 4 trophozoites"),
    ("3", "Colonization", "Trophozoites reach large intestine (cecum, ascending colon); multiply by binary fission"),
    ("4", "Invasion", "Trophozoite attaches via Gal/GalNAc lectin → releases cytotoxins → lytic necrosis of epithelium"),
    ("5", "Flask Ulcer", "Small entry point → narrow neck through mucosa → expanded necrotic area in SUBMUCOSA (flask shape)"),
    ("6", "Spread", "Lateral spread under mucosa; may penetrate muscularis → serosa → peritoneal cavity; portal vein → LIVER"),
    ("7", "Encystation", "Trophozoites → precysts → mature cysts → excreted in feces → complete cycle"),
]
lc_data = [[Paragraph(s, TH_ST), Paragraph(n, TH_ST), Paragraph(d, TH_ST)] for s,n,d in [("Step","Stage","Details")]]
for step, name, detail in lc_steps:
    bg = PALE_YELLOW if int(step) % 2 == 0 else WHITE
    lc_data.append([
        Paragraph(f"<b>{step}</b>", TD_ST),
        Paragraph(f"<b>{name}</b>", TD_L_ST),
        Paragraph(detail, TD_L_ST),
    ])
lc_tbl = Table(lc_data, colWidths=[1*cm, 3*cm, 13.6*cm])
lc_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("BACKGROUND",    (0,4), (-1,4), colors.HexColor("#FEF9E7")),
    ("TEXTCOLOR",     (0,4), (1,4), ACCENT_RED),
]))
story.append(lc_tbl)
story.append(Spacer(1, 8))

# ===== Q5 — VIRULENCE FACTORS =====
story.append(section_header("5.  Virulence Factors", ACCENT_RED))
story.append(Spacer(1, 4))

vf_data = [
    [Paragraph("Factor", TH_ST), Paragraph("Mechanism", TH_ST)],
    [Paragraph("Gal/GalNAc Lectin", TD_L_ST), Paragraph("Mediates attachment to host colonic epithelium; essential for cytolysis to occur", TD_L_ST)],
    [Paragraph("Amebapores", TD_L_ST), Paragraph("Pore-forming proteins that insert into host cell membranes → ion leakage → cell death", TD_L_ST)],
    [Paragraph("Cysteine Proteases", TD_L_ST), Paragraph("Degrade extracellular matrix (collagen, fibronectin); inactivate complement; cleave IgA", TD_L_ST)],
    [Paragraph("Phospholipase A", TD_L_ST), Paragraph("Degrades membrane phospholipids contributing to tissue damage", TD_L_ST)],
    [Paragraph("Neutrophil Lysis", TD_L_ST), Paragraph("Trophozoites kill neutrophils → release toxic granule contents → amplifies tissue destruction", TD_L_ST)],
    [Paragraph("Ca²⁺ Dysregulation", TD_L_ST), Paragraph("Irreversible increase in intracellular calcium → host cell membrane permeability changes → cell death", TD_L_ST)],
]
vf_tbl = Table(vf_data, colWidths=[4.5*cm, 13.1*cm])
vf_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), ACCENT_RED),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [PALE_RED, WHITE]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Bold"),
]))
story.append(vf_tbl)
story.append(Spacer(1, 8))

# ===== PAGE BREAK =====
story.append(PageBreak())

# ===== Q6 — LESIONS & PATHOGENESIS =====
story.append(section_header("6.  Lesions & Pathogenesis of Amoebiasis", DARK_BLUE))
story.append(Spacer(1, 4))

les_data = [
    [Paragraph("Site", TH_ST), Paragraph("Lesion", TH_ST), Paragraph("Notes", TH_ST)],
    [Paragraph("Cecum / Ascending colon", TD_L_ST), Paragraph("Flask-shaped ulcer (primary)", TD_L_ST),
     Paragraph("Most common primary site; small mucosal opening, wide submucosal necrosis", TD_L_ST)],
    [Paragraph("Sigmoid / Rectum", TD_L_ST), Paragraph("Secondary ulcers", TD_L_ST),
     Paragraph("Later lesions due to caudal spread", TD_L_ST)],
    [Paragraph("Intestinal wall", TD_L_ST), Paragraph("Ameboma", TD_L_ST),
     Paragraph("Granulomatous tumor-like mass; may obstruct bowel lumen; mimics carcinoma on imaging", TD_L_ST)],
    [Paragraph("Liver (right lobe)", TD_L_ST), Paragraph("Amebic liver abscess", TD_L_ST),
     Paragraph("Most common extraintestinal site; ANCHOVY SAUCE (chocolate) pus; via portal vein; serologically positive", TD_L_ST)],
    [Paragraph("Lung", TD_L_ST), Paragraph("Pleuropulmonary amoebiasis", TD_L_ST),
     Paragraph("Direct extension from liver abscess through diaphragm; right-sided", TD_L_ST)],
    [Paragraph("Brain / Spleen", TD_L_ST), Paragraph("Cerebral / Splenic abscess", TD_L_ST),
     Paragraph("Rare; haematogenous spread; high mortality", TD_L_ST)],
]
les_tbl = Table(les_data, colWidths=[4*cm, 4*cm, 9.6*cm])
les_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, PALE_GREY, WHITE, PALE_YELLOW, WHITE, PALE_GREY]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("BACKGROUND",    (0,4), (-1,4), colors.HexColor("#FEF9E7")),
    ("FONTNAME",      (0,4), (1,4), "Helvetica-Bold"),
]))
story.append(les_tbl)
story.append(Spacer(1, 6))

# ===== Q7 — DIFFERENTIATION =====
story.append(section_header("7.  E. histolytica vs E. coli vs E. dispar", DARK_BLUE))
story.append(Spacer(1, 4))

diff_data = [
    [Paragraph("Feature", TH_ST), Paragraph("E. histolytica", TH_ST), Paragraph("E. coli", TH_ST), Paragraph("E. dispar", TH_ST)],
    [Paragraph("Trophozoite size", TD_L_ST), Paragraph("12–50 µm", TD_ST), Paragraph("20–30 µm", TD_ST), Paragraph("12–50 µm", TD_ST)],
    [Paragraph("Karyosome", TD_L_ST), Paragraph("Central, SHARP", TD_ST), Paragraph("Eccentric, coarse", TD_ST), Paragraph("Central, sharp", TD_ST)],
    [Paragraph("Peripheral chromatin", TD_L_ST), Paragraph("Fine, even ring", TD_ST), Paragraph("Coarse, irregular/clumped", TD_ST), Paragraph("Fine, even ring", TD_ST)],
    [Paragraph("RBC in cytoplasm", TD_L_ST), Paragraph("YES ✓ (pathognomonic)", TD_ST), Paragraph("NO", TD_ST), Paragraph("NO", TD_ST)],
    [Paragraph("Cyst nuclei (max)", TD_L_ST), Paragraph("4", TD_ST), Paragraph("8", TD_ST), Paragraph("4", TD_ST)],
    [Paragraph("Chromatoid bars", TD_L_ST), Paragraph("ROUNDED ends", TD_ST), Paragraph("Splintered/frayed", TD_ST), Paragraph("Rounded ends", TD_ST)],
    [Paragraph("Pathogenic", TD_L_ST), Paragraph("YES", TD_ST), Paragraph("NO", TD_ST), Paragraph("NO", TD_ST)],
    [Paragraph("Differentiation from E. dispar", TD_L_ST), Paragraph("PCR, isoenzyme (zymodeme), EIA antigen detection", TD_L_ST), Paragraph("—", TD_ST), Paragraph("Morphologically identical to E.h.", TD_ST)],
]
diff_tbl = Table(diff_data, colWidths=[4.2*cm, 4.5*cm, 4.5*cm, 4.4*cm])
diff_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, PALE_GREY]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ("TEXTCOLOR",     (1,4), (1,4), ACCENT_GRN),
    ("FONTNAME",      (1,4), (1,4), "Helvetica-Bold"),
    ("TEXTCOLOR",     (1,7), (1,7), ACCENT_RED),
    ("FONTNAME",      (1,7), (1,7), "Helvetica-Bold"),
]))
story.append(diff_tbl)
story.append(Spacer(1, 6))

# ===== Q8 — AMOEBOMA & HEPATIC DIAGNOSIS =====
story.append(section_header("8.  Amoeboma + Extraintestinal Sites + Hepatic Amoebiasis Diagnosis", ACCENT_ORG))
story.append(Spacer(1, 4))

amoeboma_box = [
    [Paragraph("AMOEBOMA", TH_ST)],
    [Paragraph("• Granulomatous, tumor-like mass on intestinal wall\n"
               "• Due to chronic infection → fibrosis + inflammatory reaction\n"
               "• May block bowel lumen → intestinal obstruction\n"
               "• Mimics carcinoma on X-ray / colonoscopy → biopsy needed to differentiate", TD_L_ST)],
]
amoeboma_tbl = Table(amoeboma_box, colWidths=[17.6*cm])
amoeboma_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), ACCENT_ORG),
    ("BACKGROUND",    (0,1), (-1,1), colors.HexColor("#FEF5E7")),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
]))
story.append(amoeboma_tbl)
story.append(Spacer(1, 4))

ext_col1 = [
    Paragraph("<b>Extraintestinal Sites</b>", BODY_B_ST),
    Paragraph("1. Liver (right lobe) — MOST COMMON", BULLET_ST),
    Paragraph("2. Lung — pleuropulmonary", BULLET_ST),
    Paragraph("3. Brain — cerebral abscess", BULLET_ST),
    Paragraph("4. Spleen — splenic abscess", BULLET_ST),
    Paragraph("5. Skin — cutaneous amoebiasis", BULLET_ST),
]
ext_col2 = [
    Paragraph("<b>Hepatic Amoebiasis Diagnosis</b>", BODY_B_ST),
    Paragraph("• Ultrasound / CT / MRI: right lobe abscess (elevation of right diaphragm)", BULLET_ST),
    Paragraph("• Serology (EIA): strongly positive in >90% cases", BULLET_ST),
    Paragraph("• Aspiration: ANCHOVY PASTE pus (bacteriologically sterile)", BULLET_ST),
    Paragraph("• Stool microscopy: cysts/trophozoites (often negative)", BULLET_ST),
    Paragraph("• Note: amebae are in abscess WALL, NOT in the pus", BULLET_ST),
]
ext_tbl = Table([[ext_col1, ext_col2]], colWidths=[8.5*cm, 9.1*cm])
ext_tbl.setStyle(TableStyle([
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING", (0,0), (-1,-1), 0),
    ("RIGHTPADDING", (0,0), (-1,-1), 4),
]))
story.append(ext_tbl)
story.append(Spacer(1, 6))

# ===== Q9 — ANCHOVY SAUCE PUS =====
story.append(section_header("9.  Anchovy Sauce Pus — Key Concepts", MED_BLUE))
story.append(Spacer(1, 4))

anch_data = [
    [Paragraph("What is it?", TD_L_ST),
     Paragraph("Chocolate-brown / dark reddish-brown pus from amebic liver abscess, resembling anchovy sauce in color and consistency", TD_L_ST)],
    [Paragraph("Caused by?", TD_L_ST),
     Paragraph("Entamoeba histolytica trophozoites — lytic necrosis of hepatic tissue produces liquefied necrotic material", TD_L_ST)],
    [Paragraph("Can you isolate parasite from pus?", TD_L_ST),
     Paragraph("NO — trophozoites are located at the WALL of the abscess, not in the central necrotic pus. Aspirated pus is bacteriologically sterile and ameba-free.", TD_L_ST)],
    [Paragraph("How to isolate?", TD_L_ST),
     Paragraph("Biopsy of abscess wall may demonstrate trophozoites; serology (EIA) is the practical diagnostic test", TD_L_ST)],
]
anch_tbl = Table(anch_data, colWidths=[4.5*cm, 13.1*cm])
anch_tbl.setStyle(TableStyle([
    ("ROWBACKGROUNDS",(0,0), (-1,-1), [LIGHT_BLUE, WHITE]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("FONTNAME",      (0,0), (0,-1), "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,2), (0,2), ACCENT_RED),
    ("FONTNAME",      (0,2), (0,2), "Helvetica-Bold"),
]))
story.append(anch_tbl)
story.append(Spacer(1, 6))

# ===== Q10 — AMOEBIC vs BACILLARY DYSENTERY =====
story.append(section_header("10.  Amoebic vs Bacillary Dysentery", DARK_BLUE))
story.append(Spacer(1, 4))

dys_data = [
    [Paragraph("Feature", TH_ST), Paragraph("Amoebic Dysentery\n(E. histolytica)", TH_ST), Paragraph("Bacillary Dysentery\n(Shigella)", TH_ST)],
    [Paragraph("MACROSCOPY", TH_ST), Paragraph("", TH_ST), Paragraph("", TH_ST)],
    [Paragraph("Stool volume", TD_L_ST), Paragraph("Scanty", TD_ST), Paragraph("Copious", TD_ST)],
    [Paragraph("Stool contents", TD_L_ST), Paragraph("Blood + mucus; little pus", TD_ST), Paragraph("Blood + mucus + PUS", TD_ST)],
    [Paragraph("Odour", TD_L_ST), Paragraph("Offensive (foul)", TD_ST), Paragraph("Less offensive", TD_ST)],
    [Paragraph("Ulcer shape", TD_L_ST), Paragraph("FLASK-shaped, discrete", TD_ST), Paragraph("Superficial, diffuse", TD_ST)],
    [Paragraph("MICROSCOPY", TH_ST), Paragraph("", TH_ST), Paragraph("", TH_ST)],
    [Paragraph("Predominant cells", TD_L_ST), Paragraph("RBCs > pus cells", TD_ST), Paragraph("Pus cells (neutrophils) predominant", TD_ST)],
    [Paragraph("Charcot-Leyden crystals", TD_L_ST), Paragraph("PRESENT", TD_ST), Paragraph("Absent", TD_ST)],
    [Paragraph("Organism seen", TD_L_ST), Paragraph("E. histolytica trophozoite with RBC", TD_ST), Paragraph("Shigella bacilli (Gram -ve)", TD_ST)],
    [Paragraph("WBC in stool", TD_L_ST), Paragraph("Few", TD_ST), Paragraph("Many (neutrophils)", TD_ST)],
    [Paragraph("MOST RELIABLE FINDING ★", TH_ST), Paragraph("Trophozoite with RBC in cytoplasm (PATHOGNOMONIC)", TH_ST), Paragraph("Culture of Shigella", TH_ST)],
]
dys_tbl = Table(dys_data, colWidths=[4.5*cm, 6.5*cm, 6.6*cm])
dys_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  MED_BLUE),
    ("BACKGROUND",    (0,1),  (-1,1),  DARK_BLUE),
    ("BACKGROUND",    (0,6),  (-1,6),  DARK_BLUE),
    ("BACKGROUND",    (0,11), (-1,11), ACCENT_GRN),
    ("ROWBACKGROUNDS",(0,2),  (-1,5),  [WHITE, PALE_GREY]),
    ("ROWBACKGROUNDS",(0,7),  (-1,10), [WHITE, PALE_GREY]),
    ("GRID",          (0,0),  (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",    (0,0),  (-1,-1), 4),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 4),
    ("LEFTPADDING",   (0,0),  (-1,-1), 5),
    ("VALIGN",        (0,0),  (-1,-1), "MIDDLE"),
    ("TEXTCOLOR",     (0,1),  (-1,1),  LIGHT_BLUE),
    ("TEXTCOLOR",     (0,6),  (-1,6),  LIGHT_BLUE),
    ("FONTNAME",      (0,1),  (-1,6),  "Helvetica-Bold"),
]))
story.append(dys_tbl)
story.append(Spacer(1, 8))

# ===== QUICK MEMORY AIDS =====
story.append(section_header("★  Quick Memory Aids", ACCENT_GRN))
story.append(Spacer(1, 4))

mem_data = [
    [Paragraph("Flask ulcer", BODY_B_ST), Paragraph("= small mucosal entry → narrow neck → wide submucosal necrosis", BODY_ST)],
    [Paragraph("RBC in trophozoite", BODY_B_ST), Paragraph("= pathognomonic for E. histolytica (E. coli & E. dispar do NOT eat RBCs)", BODY_ST)],
    [Paragraph("Cyst rule: 4 vs 8", BODY_B_ST), Paragraph("= E. histolytica max 4 nuclei; E. coli max 8 nuclei", BODY_ST)],
    [Paragraph("Chromatoid bars", BODY_B_ST), Paragraph("= E. histolytica ROUNDED ends; E. coli SPLINTERED/frayed ends", BODY_ST)],
    [Paragraph("Anchovy pus + no ameba", BODY_B_ST), Paragraph("= ameba at abscess WALL, not in the pus — cannot isolate from aspiration", BODY_ST)],
    [Paragraph("E. dispar vs E. histolytica", BODY_B_ST), Paragraph("= morphologically identical; differentiate by PCR / zymodeme / EIA antigen stool test", BODY_ST)],
    [Paragraph("Most reliable microscopy", BODY_B_ST), Paragraph("= trophozoite with ingested RBCs in diarrheal stool = pathognomonic for amoebic dysentery", BODY_ST)],
]
mem_tbl = Table(mem_data, colWidths=[4.2*cm, 13.4*cm])
mem_tbl.setStyle(TableStyle([
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [PALE_GREEN, WHITE]),
    ("GRID",           (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
    ("TOPPADDING",     (0,0), (-1,-1), 5),
    ("BOTTOMPADDING",  (0,0), (-1,-1), 5),
    ("LEFTPADDING",    (0,0), (-1,-1), 6),
    ("VALIGN",         (0,0), (-1,-1), "MIDDLE"),
]))
story.append(mem_tbl)
story.append(Spacer(1, 6))

# ===== BUILD =====
doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    topMargin=22*mm, bottomMargin=15*mm,
    leftMargin=15*mm, rightMargin=15*mm,
)
doc.build(story, onFirstPage=add_page_decorations, onLaterPages=add_page_decorations)
print(f"PDF created: {OUTPUT}")
Running Command

cd /tmp/workspace/entamoeba-pdf && python generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/entamoeba-pdf/Entamoeba_histolytica_Quick_Reference.pdf

Your PDF is ready! Download it here:

Entamoeba histolytica Quick Reference

PDF Document · PDF


PDF-এ কী কী আছে (2 pages, colour-coded):
SectionContent
Q1Morphological forms table (Trophozoite, Pre-cyst, Mature Cyst) with sizes & features
Q2Infective / Pathogenic / Diagnostic forms - colour coded
Q3Host & mode of infection
Q4Life cycle 7-step table + flask ulcer formation
Q5All 6 virulence factors (Lectin, Amebapores, Proteases etc.)
Q6All lesions table (flask ulcer → ameboma → liver abscess → lung/brain)
Q7E. histolytica vs E. coli vs E. dispar - full comparison table
Q8Amoeboma definition + extraintestinal sites + hepatic amoebiasis diagnosis
Q9Anchovy sauce pus - what it is, why ameba can't be isolated
Q10Amoebic vs Bacillary dysentery (Macro + Micro comparison)
★ Memory Aids7 key mnemonics for exam (flask ulcer, RBC rule, 4 vs 8 nuclei, etc.)
Blue/red/green colour-coding, header/footer with page numbers, and references from Murray's & Jawetz included.
This is a shared conversation. Sign in to Orris to start your own chat.