Which paper of biochemistry is easy according to knurhs

Searching the Web

knurhs biochemistry paper easy

Searching the Web

KNURHS university biochemistry exam papers

"KNRUHS" stands for Kaloji Narayana Rao University of Health Sciences, Warangal, Telangana (you likely meant "KNRUHS" - the extra 'h' was a typo). It is the university that conducts MBBS exams for medical colleges in Telangana, India.
Here is what is known about the two Biochemistry papers for KNRUHS 1st MBBS:

KNRUHS Biochemistry - Paper I vs Paper II

Paper I (MB2019101)

Covers topics like:
  • Carbohydrate metabolism (glycolysis, TCA cycle, glycogen metabolism)
  • Lipid metabolism (fatty acid oxidation, ketone bodies, lipoproteins)
  • Enzymes (classification, kinetics, regulation)
  • Vitamins and coenzymes
  • Bioenergetics

Paper II (MB2019102)

Covers topics like:
  • Protein and amino acid metabolism
  • Nucleic acid metabolism (DNA replication, transcription, translation)
  • Molecular biology (gene expression, recombinant DNA)
  • Clinical biochemistry (liver function tests, renal function tests, acid-base balance)
  • Cancer biomarkers, hormones

Which Paper Is Considered "Easier"?

Based on student feedback and the nature of topics:
  • Paper I is generally considered more scoring and relatively more predictable, because topics like carbohydrate/lipid metabolism and enzymes have well-defined pathways with repeating question patterns in previous years.
  • Paper II is often found harder because molecular biology (DNA, RNA, transcription) requires more conceptual understanding, and clinical biochemistry topics can be tricky.
However, this varies by student - those strong in molecular biology may find Paper II easier.
Tip: Look at the KNRUHS previous year papers on FirstRanker to analyze repeating questions - that is the most reliable way to judge which paper suits you better.
Also note: For KNRUHS August 2026 exams, Biochemistry Paper I is on 13 Aug and Paper II on 14 Aug.

How to get 50% in paper 1 in 2 days

Searching the Web

KNRUHS biochemistry paper 1 most repeated questions high yield topics

Reading Web Page

https://www.scribd.com/document/880125864/KNRUHS-Biochemistr…

You have 2 days (Aug 5-6 night) before Paper I on Aug 13. Actually that's 7-8 days - use every one of them. But if you mean you only have 2 days to study, here's the most efficient plan:

KNRUHS Biochemistry Paper I - Score 50% in 2 Days

Exam Pattern (Paper I)

  • 1 LAQ (10 marks), Short Answer Questions (SAQs ~5 marks each), VSAQs (2 marks each)
  • Pass = 40% minimum in theory (50% cumulative with practical)
  • You need roughly 40-50 marks out of 100

Strategy: Hit Only High-Yield Chapters

Paper I covers: Enzymes, Carbohydrate Metabolism, Lipid Metabolism, Biological Oxidation, Vitamins, Minerals, Nutrition, Cell & Organelles, Lab Tests
Focus on just 5 chapters - these alone can get you 50%+.

DAY 1 (Focus: Metabolism - the heaviest chapters)

πŸ”΄ Enzymes (Very high repeat rate)

  • Definition, classification (6 classes with examples)
  • Enzyme kinetics - Km, Vmax, Michaelis-Menten equation (draw the curve)
  • Competitive vs non-competitive inhibition
  • Allosteric enzymes (feedback regulation)
  • Isoenzymes - especially LDH, CK (clinical use in MI)
  • Most asked LAQ: Write about enzyme inhibition OR isoenzymes

πŸ”΄ Carbohydrate Metabolism

  • Glycolysis - 10 steps (at least know the 3 regulated/irreversible steps: Hexokinase, PFK-1, Pyruvate kinase), net yield (2 ATP aerobic, net)
  • TCA cycle - 8 steps, substrates, energy yield (1 NADH = 2.5 ATP, 1 FADH2 = 1.5 ATP), total = 10 ATP per Acetyl-CoA
  • Glycogen synthesis vs glycogenolysis - key enzymes (glycogen synthase, phosphorylase)
  • Diabetes mellitus - biochemical basis, HbA1c significance
  • Gluconeogenesis - key precursors (lactate, alanine, glycerol), bypass steps

πŸ”΄ Biological Oxidation (Electron Transport Chain)

  • ETC complexes I-IV
  • ATP synthase (Complex V), chemiosmotic theory
  • Total ATP yield from 1 glucose = 30-32 ATP
  • Uncouplers (DNP)

DAY 2 (Focus: Lipids + Vitamins + Enzyme Lab Tests)

πŸ”΄ Lipid Metabolism

  • Beta oxidation of fatty acids - activation, steps, ATP yield from palmitate (129 ATP)
  • Ketone body synthesis - where (liver), why (starvation/DM), can't use in liver
  • Lipoproteins - VLDL, LDL, HDL - composition and function (very high yield SAQ)
  • Cholesterol synthesis - HMG-CoA reductase (rate-limiting), statins

πŸ”΄ Vitamins (Easy marks, very predictable)

Just memorize this table:
VitaminCoenzyme/FunctionDeficiency
B1 (Thiamine)TPP - pyruvate dehydrogenaseBeriberi, Wernicke
B2 (Riboflavin)FAD/FMN - ETCCheilosis, angular stomatitis
B3 (Niacin)NAD+/NADP+Pellagra (3 D's)
B5 (Pantothenic acid)CoABurning feet
B6 (Pyridoxine)PLP - transaminationSideroblastic anemia
B12MethylcobalaminMegaloblastic anemia
FolateTHFNeural tube defects
CCollagen synthesisScurvy
DCalcium metabolismRickets/Osteomalacia
KCoagulation factorsBleeding

πŸ”΄ Lab Tests / Clinical Biochemistry (Easy SAQ/VSAQ marks)

  • LFTs: ALT, AST, ALP, Bilirubin, Albumin - and what each indicates
  • Cardiac markers: Troponin, CK-MB, LDH (timing after MI)
  • Blood glucose estimation methods
  • Normal lab values (glucose, cholesterol, urea, creatinine)

What to SKIP (if time is short)

  • Minerals (read only Ca and Fe - 5 min each)
  • Nutrition (just remember BMR, caloric values: Carb=4, Fat=9, Protein=4 kcal/g)
  • Cell organelles (read only mitochondria and ER - 10 min)
  • AETCOM (usually easy/descriptive - read 15 min before exam)

Practical Tips

  1. Do 2-3 previous KNRUHS papers - questions repeat heavily year to year
  2. Write answers in points + diagrams - examiners reward structure
  3. For LAQ: Intro β†’ classification/steps β†’ diagram β†’ regulation β†’ clinical significance = full marks format
  4. Attempt ALL questions - no negative marking
You can comfortably pass with just Enzymes + Carbohydrate Metabolism + Lipids + Vitamins covered well. Good luck! 🎯

Create a quick reference PDF of high-yield Biochemistry Paper I topics

Reading File
Running Command

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

Writing File

~/biochem-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, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate

# ── Colour palette ──────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A3A5C")
MED_BLUE    = colors.HexColor("#2E6DA4")
LIGHT_BLUE  = colors.HexColor("#D6E8F8")
ACCENT      = colors.HexColor("#E74C3C")
GREEN       = colors.HexColor("#1E8449")
LIGHT_GREEN = colors.HexColor("#D5F5E3")
ORANGE      = colors.HexColor("#E67E22")
YELLOW_BG   = colors.HexColor("#FEF9E7")
PURPLE      = colors.HexColor("#6C3483")
LIGHT_PURPLE= colors.HexColor("#E8DAEF")
GREY_BG     = colors.HexColor("#F2F3F4")
WHITE       = colors.white
BLACK       = colors.black

OUTPUT = "/tmp/workspace/biochem-pdf/KNRUHS_Biochemistry_Paper1_QuickRef.pdf"

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

def S(name, **kw):
    return ParagraphStyle(name, **kw)

cover_title = S("CoverTitle", fontSize=28, fontName="Helvetica-Bold",
                textColor=WHITE, alignment=TA_CENTER, leading=34)
cover_sub   = S("CoverSub",   fontSize=14, fontName="Helvetica",
                textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=20)
cover_note  = S("CoverNote",  fontSize=11, fontName="Helvetica-Oblique",
                textColor=YELLOW_BG, alignment=TA_CENTER, leading=16)

ch_head  = S("ChHead",  fontSize=15, fontName="Helvetica-Bold",
             textColor=WHITE, alignment=TA_LEFT, leading=20,
             leftIndent=6, spaceAfter=2)
sec_head = S("SecHead", fontSize=12, fontName="Helvetica-Bold",
             textColor=DARK_BLUE, alignment=TA_LEFT, leading=16,
             spaceBefore=8, spaceAfter=3)
body     = S("Body",    fontSize=9.5, fontName="Helvetica",
             textColor=BLACK, leading=14, spaceAfter=2)
bullet   = S("Bullet",  fontSize=9.5, fontName="Helvetica",
             textColor=BLACK, leading=13, leftIndent=12,
             bulletIndent=3, spaceAfter=1)
small    = S("Small",   fontSize=8.5, fontName="Helvetica",
             textColor=colors.HexColor("#555555"), leading=12)
red_bold = S("RedBold", fontSize=9.5, fontName="Helvetica-Bold",
             textColor=ACCENT, leading=13)
green_bold=S("GreenBold",fontSize=9.5,fontName="Helvetica-Bold",
             textColor=GREEN, leading=13)
table_hdr= S("TblHdr",  fontSize=9, fontName="Helvetica-Bold",
             textColor=WHITE, alignment=TA_CENTER, leading=12)
table_cel= S("TblCel",  fontSize=8.5, fontName="Helvetica",
             textColor=BLACK, alignment=TA_LEFT, leading=12)
footer_s = S("Footer",  fontSize=7.5, fontName="Helvetica",
             textColor=colors.grey, alignment=TA_CENTER)

# ── Helper builders ──────────────────────────────────────────────────────────
def chapter_banner(title, color=DARK_BLUE):
    data = [[Paragraph(title, ch_head)]]
    t = Table(data, colWidths=[17.5*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("TOPPADDING",    (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("ROUNDEDCORNERS", [4,4,4,4]),
    ]))
    return t

def info_box(text, bg=LIGHT_BLUE, border=MED_BLUE):
    data = [[Paragraph(text, body)]]
    t = Table(data, colWidths=[17.5*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), bg),
        ("BOX",           (0,0), (-1,-1), 1, border),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ]))
    return t

def make_table(headers, rows, col_widths=None, hdr_color=DARK_BLUE):
    if col_widths is None:
        col_widths = [17.5*cm / len(headers)] * len(headers)
    hdr_row = [Paragraph(h, table_hdr) for h in headers]
    data = [hdr_row]
    for row in rows:
        data.append([Paragraph(str(c), table_cel) for c in row])
    t = Table(data, colWidths=col_widths)
    style = [
        ("BACKGROUND",    (0,0), (-1,0), hdr_color),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, GREY_BG]),
        ("BOX",           (0,0), (-1,-1), 0.5, MED_BLUE),
        ("INNERGRID",     (0,0), (-1,-1), 0.3, colors.HexColor("#AAAAAA")),
        ("TOPPADDING",    (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("LEFTPADDING",   (0,0), (-1,-1), 5),
        ("RIGHTPADDING",  (0,0), (-1,-1), 5),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ]
    t.setStyle(TableStyle(style))
    return t

def B(text): return f"<b>{text}</b>"
def I(text): return f"<i>{text}</i>"
def C(text, col="#E74C3C"): return f'<font color="{col}"><b>{text}</b></font>'

def bp(text):  return Paragraph("β€’ " + text, bullet)
def sp():      return Spacer(1, 5)
def spp():     return Spacer(1, 10)
def hr():      return HRFlowable(width="100%", thickness=0.5,
                                  color=colors.HexColor("#CCCCCC"))

# ── Page callbacks ────────────────────────────────────────────────────────────
def on_page(canvas, doc):
    if doc.page == 1:
        return  # Cover page - no header/footer
    w, h = A4
    canvas.saveState()
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, h - 22*mm, w, 22*mm, fill=1, stroke=0)
    canvas.setFillColor(WHITE)
    canvas.setFont("Helvetica-Bold", 9)
    canvas.drawString(15*mm, h - 13*mm, "KNRUHS Biochemistry Paper I - Quick Reference")
    canvas.setFont("Helvetica", 8)
    canvas.drawRightString(w - 15*mm, h - 13*mm, f"Page {doc.page}")
    canvas.setFillColor(ACCENT)
    canvas.rect(0, 0, w, 6*mm, fill=1, stroke=0)
    canvas.setFillColor(WHITE)
    canvas.setFont("Helvetica", 7)
    canvas.drawCentredString(w/2, 2*mm, "KNRUHS First MBBS | August 2026 Exam | High-Yield Reference")
    canvas.restoreState()

def on_cover(canvas, doc):
    w, h = A4
    canvas.saveState()
    canvas.setFillColor(DARK_BLUE)
    canvas.rect(0, 0, w, h, fill=1, stroke=0)
    # Top accent strip
    canvas.setFillColor(ACCENT)
    canvas.rect(0, h - 8*mm, w, 8*mm, fill=1, stroke=0)
    # Bottom strip
    canvas.setFillColor(MED_BLUE)
    canvas.rect(0, 0, w, 20*mm, fill=1, stroke=0)
    canvas.restoreState()

# ── Build document ────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=2.8*cm, bottomMargin=1.8*cm,
    title="KNRUHS Biochemistry Paper I - Quick Reference",
    author="Orris AI Study Guide",
)

story = []

# ════════════════════════════════════════════════════════════════════════════
# COVER PAGE
# ════════════════════════════════════════════════════════════════════════════
story.append(Spacer(1, 3*cm))
story.append(Paragraph("KNRUHS", cover_title))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Biochemistry Paper I", cover_title))
story.append(Spacer(1, 0.5*cm))
story.append(Paragraph("HIGH-YIELD QUICK REFERENCE", S("CT2", fontSize=18,
    fontName="Helvetica-Bold", textColor=ACCENT, alignment=TA_CENTER)))
story.append(Spacer(1, 1.2*cm))
story.append(Paragraph("First MBBS | August 2026 Exam", cover_sub))
story.append(Spacer(1, 0.4*cm))
story.append(Paragraph("Kaloji Narayana Rao University of Health Sciences", cover_sub))
story.append(Spacer(1, 2*cm))

# Topics covered box
topics_data = [[
    Paragraph("Topics Covered", S("TCH", fontSize=11, fontName="Helvetica-Bold",
              textColor=DARK_BLUE, alignment=TA_CENTER)),
]]
topics_body = [
    ["1. Enzymes", "2. Carbohydrate Metabolism"],
    ["3. Biological Oxidation / ETC", "4. Lipid Metabolism"],
    ["5. Vitamins", "6. Lab Tests & Clinical Values"],
]
cover_table_data = [[Paragraph(a, S("ct", fontSize=10, fontName="Helvetica",
                                     textColor=WHITE, leading=14)),
                      Paragraph(b, S("ct2", fontSize=10, fontName="Helvetica",
                                      textColor=WHITE, leading=14))]
                    for a, b in topics_body]
ct = Table(cover_table_data, colWidths=[8.5*cm, 8.5*cm])
ct.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), MED_BLUE),
    ("BOX",        (0,0), (-1,-1), 1, LIGHT_BLUE),
    ("INNERGRID",  (0,0), (-1,-1), 0.5, LIGHT_BLUE),
    ("TOPPADDING", (0,0), (-1,-1), 7),
    ("BOTTOMPADDING",(0,0),(-1,-1), 7),
    ("LEFTPADDING",(0,0), (-1,-1), 10),
]))
story.append(ct)
story.append(Spacer(1, 1.5*cm))
story.append(Paragraph(
    "Pass criteria: 40% in theory β€’ Focus on LAQ + SAQ high-repeats β€’ Exam: 13 August 2026",
    cover_note))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 1: ENZYMES
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 1: ENZYMES  (Most Repeated - High LAQ Potential)"))
story.append(sp())

story.append(Paragraph(B("Definition & Properties"), sec_head))
story.append(bp("Enzymes are biological catalysts (mostly proteins) that speed up reactions without being consumed"))
story.append(bp("Properties: specific, efficient, regulated, work at mild temp/pH, saturable (Km concept)"))
story.append(spp())

story.append(Paragraph(B("IUB Classification (6 Classes) - Must Know"), sec_head))
story.append(make_table(
    ["Class", "Reaction Type", "Key Example"],
    [
        ["1. Oxidoreductases", "Oxidation-reduction (redox)", "LDH, succinate dehydrogenase"],
        ["2. Transferases", "Transfer functional groups", "Transaminases (ALT, AST), kinases"],
        ["3. Hydrolases", "Hydrolysis reactions", "Lipase, amylase, peptidases"],
        ["4. Lyases", "Add/remove groups (non-hydrolysis)", "Pyruvate decarboxylase, aldolase"],
        ["5. Isomerases", "Interconvert isomers", "Phosphoglucose isomerase, triose phosphate isomerase"],
        ["6. Ligases", "Join molecules using ATP", "Acetyl-CoA carboxylase, DNA ligase"],
    ],
    col_widths=[3.5*cm, 6.5*cm, 7.5*cm],
    hdr_color=MED_BLUE,
))
story.append(spp())

story.append(Paragraph(B("Enzyme Kinetics - Michaelis-Menten"), sec_head))
story.append(info_box(
    B("Key formula: ") + "v = Vmax Γ— [S] / (Km + [S])<br/>"
    + B("Km") + " = substrate concentration at half Vmax. "
    + B("Low Km") + " = high affinity. "
    + B("Vmax") + " = maximum velocity (all enzyme sites occupied).<br/>"
    + "Lineweaver-Burk plot: double reciprocal (1/v vs 1/[S]) β€” x-intercept = -1/Km, y-intercept = 1/Vmax",
    bg=LIGHT_BLUE
))
story.append(spp())

story.append(Paragraph(B("Enzyme Inhibition - Most Asked SAQ/LAQ"), sec_head))
story.append(make_table(
    ["Type", "Effect on Km", "Effect on Vmax", "Example", "Reversal"],
    [
        ["Competitive", "Increased (↑)", "Unchanged", "Statins inhibit HMG-CoA reductase; Methotrexate inhibits DHFR", "Yes (excess substrate)"],
        ["Non-competitive", "Unchanged", "Decreased (↓)", "Heavy metals (Hg, Pb) on -SH groups; Cyanide on cytochrome oxidase", "No"],
        ["Uncompetitive", "Decreased (↓)", "Decreased (↓)", "Binds only enzyme-substrate complex", "No"],
        ["Irreversible", "β€”", "β€”", "Organophosphates inhibit acetylcholinesterase", "No"],
    ],
    col_widths=[3*cm, 2.5*cm, 2.5*cm, 6*cm, 3.5*cm],
    hdr_color=ACCENT,
))
story.append(spp())

story.append(Paragraph(B("Isoenzymes"), sec_head))
story.append(info_box(
    B("Definition:") + " Multiple forms of same enzyme, same reaction, different structure/properties.<br/>"
    + B("LDH isoenzymes:") + " LDH-1 (heart) predominates after MI β€” most important clinically.<br/>"
    + B("CK isoenzymes:") + " CK-MM (muscle), CK-MB (heart - best early MI marker), CK-BB (brain).<br/>"
    + B("Alkaline Phosphatase (ALP):") + " Bone ALP↑ in Paget's; Liver ALP↑ in cholestasis.",
    bg=LIGHT_GREEN
))
story.append(spp())

story.append(Paragraph(B("Allosteric Enzymes"), sec_head))
story.append(bp("Have regulatory (allosteric) sites separate from active site"))
story.append(bp("Sigmoidal kinetics (NOT Michaelis-Menten hyperbola)"))
story.append(bp("Positive effectors: activate enzyme (e.g., AMP activates PFK-1)"))
story.append(bp("Negative effectors: inhibit enzyme (e.g., ATP inhibits PFK-1, citrate inhibits PFK-1)"))
story.append(bp(B("Key allosteric enzyme: Phosphofructokinase-1 (PFK-1)") + " β€” rate-limiting step of glycolysis"))
story.append(spp())

story.append(Paragraph(B("Coenzymes - Quick Reference"), sec_head))
story.append(make_table(
    ["Coenzyme", "Derived from", "Function"],
    [
        ["NAD+/NADH", "Niacin (B3)", "Accepts H in oxidation reactions (ETC, glycolysis, TCA)"],
        ["FAD/FADH2", "Riboflavin (B2)", "Accepts H in oxidation (succinate DH, beta-oxidation)"],
        ["CoA (Coenzyme A)", "Pantothenic acid (B5)", "Acyl group carrier (acetyl-CoA, succinyl-CoA)"],
        ["TPP (Thiamine pyrophosphate)", "Thiamine (B1)", "Decarboxylation (pyruvate DH, alpha-KG DH)"],
        ["PLP (Pyridoxal phosphate)", "Pyridoxine (B6)", "Transamination, decarboxylation of amino acids"],
        ["Biotin", "Biotin (B7)", "CO2 fixation/carboxylation (pyruvate carboxylase, ACC)"],
        ["THF (Tetrahydrofolate)", "Folate (B9)", "One-carbon transfer (nucleotide synthesis)"],
    ],
    col_widths=[5*cm, 4.5*cm, 8*cm],
))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 2: CARBOHYDRATE METABOLISM
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 2: CARBOHYDRATE METABOLISM", color=GREEN))
story.append(sp())

story.append(Paragraph(B("Glycolysis - 10 Steps (Embden-Meyerhof Pathway)"), sec_head))
story.append(info_box(
    B("Location:") + " Cytoplasm (cytosol) | "
    + B("Net yield:") + " 2 ATP + 2 NADH + 2 Pyruvate (per glucose)<br/>"
    + B("Total aerobic yield:") + " 2 ATP (substrate level) + 2 NADH Γ— 2.5 = 5 ATP β†’ Total ~7 ATP from glycolysis alone",
    bg=LIGHT_GREEN
))
story.append(make_table(
    ["Step", "Substrate β†’ Product", "Enzyme", "Notes"],
    [
        ["1", "Glucose β†’ Glucose-6-P", "Hexokinase (Glucokinase in liver)", C("Irreversible, uses 1 ATP")],
        ["3", "Fructose-6-P β†’ Fructose-1,6-bisP", "Phosphofructokinase-1 (PFK-1)", C("RATE-LIMITING STEP β€” irreversible")],
        ["4", "Fructose-1,6-bisP β†’ DHAP + GAP", "Aldolase", "Splits 6C into two 3C"],
        ["6", "GAP β†’ 1,3-bisPG", "GAP dehydrogenase", "Generates NADH"],
        ["7", "1,3-bisPG β†’ 3-PG", "Phosphoglycerate kinase", "Generates 1 ATP (substrate level)"],
        ["10", "PEP β†’ Pyruvate", "Pyruvate kinase", C("Irreversible, generates ATP")],
    ],
    col_widths=[1.2*cm, 5.3*cm, 5*cm, 6*cm],
))
story.append(spp())

story.append(Paragraph(B("TCA Cycle (Krebs Cycle)"), sec_head))
story.append(info_box(
    B("Location:") + " Mitochondrial matrix | "
    + B("Input:") + " 1 Acetyl-CoA (2C) + Oxaloacetate (4C) β†’ Citrate (6C)<br/>"
    + B("Per turn yield:") + " 3 NADH + 1 FADH2 + 1 GTP + 2 CO2<br/>"
    + B("ATP yield per Acetyl-CoA:") + " 3Γ—2.5 (NADH) + 1Γ—1.5 (FADH2) + 1 = 10 ATP",
    bg=LIGHT_BLUE
))
story.append(make_table(
    ["Step", "Enzyme", "Coenzyme", "Clinical Note"],
    [
        ["Pyruvate β†’ Acetyl-CoA", "Pyruvate dehydrogenase complex", "TPP, CoA, FAD, NAD+, Lipoate", "Deficient in B1 deficiency β†’ Lactic acidosis"],
        ["Isocitrate β†’ Ξ±-KG", "Isocitrate dehydrogenase", "NAD+", "Rate-limiting step of TCA"],
        ["Ξ±-KG β†’ Succinyl-CoA", "Ξ±-KG dehydrogenase", "TPP, CoA, NAD+", "Similar to pyruvate DH; requires B1"],
        ["Succinate β†’ Fumarate", "Succinate dehydrogenase", "FAD", "Only TCA enzyme in inner mitochondrial membrane"],
        ["Malate β†’ OAA", "Malate dehydrogenase", "NAD+", "Regenerates OAA for next turn"],
    ],
    col_widths=[4*cm, 4.5*cm, 3.5*cm, 5.5*cm],
))
story.append(spp())

story.append(Paragraph(B("Gluconeogenesis"), sec_head))
story.append(bp(B("Location:") + " Liver (main) + kidney cortex"))
story.append(bp(B("Substrates:") + " Lactate, Alanine, Glycerol, Glutamine (remember: LAGG)"))
story.append(bp(B("3 irreversible bypass enzymes") + " (reverse glycolysis at 3 irreversible steps):"))
story.append(bp("&nbsp;&nbsp;1. Pyruvate β†’ OAA β†’ PEP: Pyruvate carboxylase + PEPCK"))
story.append(bp("&nbsp;&nbsp;2. Fructose-1,6-bisP β†’ Fructose-6-P: Fructose-1,6-bisphosphatase"))
story.append(bp("&nbsp;&nbsp;3. Glucose-6-P β†’ Glucose: Glucose-6-phosphatase (absent in muscle)"))
story.append(bp(B("Stimulated by:") + " Glucagon, Cortisol | " + B("Inhibited by:") + " Insulin"))
story.append(spp())

story.append(Paragraph(B("Glycogen Metabolism"), sec_head))
story.append(make_table(
    ["Pathway", "Key Enzyme", "Regulator", "Location"],
    [
        ["Glycogen Synthesis", "Glycogen synthase (rate-limiting)", "Activated by insulin", "Liver + muscle"],
        ["Glycogenolysis", "Glycogen phosphorylase (rate-limiting)", "Activated by glucagon/epinephrine", "Liver β†’ releases glucose to blood"],
        ["Branching", "Branching enzyme", "β€”", "Creates Ξ±-1,6 branches"],
        ["Debranching", "Debranching enzyme", "β€”", "Required for complete breakdown"],
    ],
    col_widths=[4.5*cm, 4.5*cm, 4*cm, 4.5*cm],
))
story.append(spp())

story.append(Paragraph(B("Glycogen Storage Diseases - High Yield"), sec_head))
story.append(make_table(
    ["Disease", "Deficient Enzyme", "Organ", "Feature"],
    [
        ["Von Gierke (Type I)", "Glucose-6-phosphatase", "Liver, kidney", "Hepatomegaly, severe hypoglycemia, lactic acidosis"],
        ["Pompe (Type II)", "Lysosomal acid maltase (Ξ±-1,4 glucosidase)", "Heart, muscle", "Cardiomegaly, myopathy β€” only lysosomal GSD"],
        ["Cori (Type III)", "Debranching enzyme", "Liver, muscle", "Milder than Von Gierke"],
        ["McArdle (Type V)", "Muscle phosphorylase", "Muscle only", "Exercise-induced cramps, myoglobinuria"],
        ["Her's (Type VI)", "Liver phosphorylase", "Liver", "Mild hepatomegaly"],
    ],
    col_widths=[3.8*cm, 4.5*cm, 3*cm, 6.2*cm],
    hdr_color=PURPLE,
))
story.append(spp())

story.append(Paragraph(B("Pentose Phosphate Pathway (HMP Shunt)"), sec_head))
story.append(bp(B("Location:") + " Cytosol | " + B("Main products:") + " NADPH + Ribose-5-phosphate"))
story.append(bp(B("NADPH uses:") + " Fatty acid synthesis, cholesterol synthesis, glutathione reduction (antioxidant)"))
story.append(bp(B("Rate-limiting enzyme:") + " Glucose-6-phosphate dehydrogenase (G6PD)"))
story.append(bp(B("G6PD deficiency:") + " X-linked, Hemolytic anemia on oxidant stress (primaquine, fava beans), Heinz bodies"))
story.append(spp())

story.append(Paragraph(B("Diabetes Mellitus - Biochemical Basis"), sec_head))
story.append(make_table(
    ["Feature", "Type 1 DM", "Type 2 DM"],
    [
        ["Mechanism", "Autoimmune destruction of Ξ²-cells β†’ absolute insulin deficiency", "Insulin resistance + relative insulin deficiency"],
        ["Ketoacidosis", "Common (DKA)", "Rare"],
        ["HbA1c", "Reflects 3-month avg blood glucose (glycated Hb)", "Same β€” used to monitor control"],
        ["Diagnosis", "FBG β‰₯126 mg/dL; OGTT β‰₯200 mg/dL; HbA1c β‰₯6.5%", "Same criteria"],
        ["Hyperglycemia cause", "No glucose entry into cells (no insulin)", "Glucose entry impaired (receptor resistance)"],
    ],
    col_widths=[3.5*cm, 7*cm, 7*cm],
    hdr_color=ACCENT,
))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 3: BIOLOGICAL OXIDATION / ETC
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 3: BIOLOGICAL OXIDATION & ETC", color=PURPLE))
story.append(sp())

story.append(Paragraph(B("Electron Transport Chain (ETC)"), sec_head))
story.append(info_box(
    B("Location:") + " Inner mitochondrial membrane<br/>"
    + B("Flow of electrons:") + " NADH β†’ Complex I β†’ CoQ β†’ Complex III β†’ Cyt c β†’ Complex IV β†’ O2<br/>"
    + "FADH2 β†’ Complex II β†’ CoQ (bypasses Complex I β†’ 1.5 ATP instead of 2.5 ATP)",
    bg=LIGHT_PURPLE
))
story.append(make_table(
    ["Complex", "Name", "Accepts/Donates", "Protons pumped"],
    [
        ["Complex I", "NADH-CoQ oxidoreductase", "NADH β†’ CoQ", "4 H+ pumped"],
        ["Complex II", "Succinate-CoQ oxidoreductase", "FADH2 β†’ CoQ", "0 (no pumping)"],
        ["Complex III", "CoQ-Cyt c oxidoreductase", "CoQ β†’ Cyt c", "4 H+ pumped"],
        ["Complex IV", "Cyt c oxidase", "Cyt c β†’ O2", "2 H+ pumped"],
        ["Complex V", "ATP synthase (F0F1 ATPase)", "Proton gradient β†’ ATP", "3 H+ per ATP"],
    ],
    col_widths=[2.5*cm, 5.5*cm, 4.5*cm, 5*cm],
    hdr_color=PURPLE,
))
story.append(spp())

story.append(Paragraph(B("ATP Yield Summary"), sec_head))
story.append(make_table(
    ["Source", "Units", "ATP per unit", "Total ATP"],
    [
        ["NADH (from glycolysis, cytosolic)", "2", "1.5 (malate-aspartate) or 1.5", "3.0"],
        ["Pyruvate dehydrogenase NADH", "2", "2.5", "5.0"],
        ["TCA cycle NADH", "6", "2.5", "15.0"],
        ["TCA cycle FADH2", "2", "1.5", "3.0"],
        ["Substrate level phosphorylation", "4 (2 from glycolysis + 2 GTP from TCA)", "1", "4.0"],
        [B("TOTAL"), "", "", B("~30-32 ATP per glucose")],
    ],
    col_widths=[7*cm, 2.5*cm, 3*cm, 5*cm],
    hdr_color=MED_BLUE,
))
story.append(spp())

story.append(Paragraph(B("Inhibitors & Uncouplers - Important for Exams"), sec_head))
story.append(make_table(
    ["Agent", "Site of Action", "Effect"],
    [
        ["Rotenone, Amytal", "Complex I", "Block electron flow from NADH β†’ CoQ"],
        ["Antimycin A", "Complex III", "Block CoQ β†’ Cyt c"],
        ["Cyanide (CN-), CO, Azide", "Complex IV", "Block Cyt c β†’ O2 (most toxic β€” inhibit O2 use)"],
        ["Oligomycin", "Complex V (F0)", "Block proton channel β†’ no ATP synthesis"],
        ["DNP (Dinitrophenol)", "Inner membrane uncoupler", "Dissipates proton gradient β†’ heat, no ATP (used in weight loss β€” dangerous)"],
        ["Thermogenin (UCP1)", "Brown adipose tissue", "Natural uncoupler β†’ heat generation (non-shivering thermogenesis)"],
    ],
    col_widths=[4*cm, 4.5*cm, 9*cm],
    hdr_color=ACCENT,
))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 4: LIPID METABOLISM
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 4: LIPID METABOLISM", color=ORANGE))
story.append(sp())

story.append(Paragraph(B("Beta-Oxidation of Fatty Acids"), sec_head))
story.append(info_box(
    B("Location:") + " Mitochondrial matrix | "
    + B("Activation:") + " Fatty acid β†’ Acyl-CoA (in cytosol, uses 2 ATP equivalents)<br/>"
    + B("Entry into mitochondria:") + " Carnitine shuttle (rate-limiting: carnitine acyltransferase I) β€” inhibited by Malonyl-CoA<br/>"
    + B("Per cycle yields:") + " 1 NADH + 1 FADH2 + 1 Acetyl-CoA",
    bg=YELLOW_BG
))
story.append(Paragraph(B("ATP from Palmitate (C16:0) - Exam Favourite"), sec_head))
story.append(make_table(
    ["Step", "Calculation", "ATP"],
    [
        ["Activation", "Palmitate β†’ Palmitoyl-CoA", "-2 ATP"],
        ["Beta-oxidation cycles", "7 cycles β†’ 7 NADH + 7 FADH2 + 8 Acetyl-CoA", "7Γ—2.5 + 7Γ—1.5 = 17.5 + 10.5 = 28 ATP"],
        ["Acetyl-CoA via TCA", "8 Acetyl-CoA Γ— 10 ATP each", "80 ATP"],
        [B("NET TOTAL"), "", B("106 ATP (or ~129 using older P/O ratios)")],
    ],
    col_widths=[5*cm, 7.5*cm, 5*cm],
    hdr_color=ORANGE,
))
story.append(spp())

story.append(Paragraph(B("Ketone Body Metabolism"), sec_head))
story.append(make_table(
    ["Aspect", "Detail"],
    [
        ["Synthesis site", "Liver (mitochondria) β€” ONLY liver synthesizes ketones"],
        ["Utilization", "All tissues EXCEPT liver (brain uses during starvation)"],
        ["Conditions causing ketosis", "Starvation, DM Type 1, prolonged fasting, high-fat diet"],
        ["Three ketone bodies", "Acetoacetate, Ξ²-hydroxybutyrate (most abundant), Acetone (exhaled)"],
        ["Rate-limiting enzyme", "HMG-CoA synthase (mitochondrial)"],
        ["Key enzyme step", "HMG-CoA β†’ Acetoacetate by HMG-CoA lyase"],
        ["Clinical: DKA", "Acetone breath (fruity), Kussmaul breathing, anion gap acidosis"],
    ],
    col_widths=[5*cm, 12.5*cm],
    hdr_color=ORANGE,
))
story.append(spp())

story.append(Paragraph(B("Fatty Acid Synthesis"), sec_head))
story.append(bp(B("Location:") + " Cytosol (opposite of beta-oxidation which is mitochondrial)"))
story.append(bp(B("Starting material:") + " Acetyl-CoA (must be transported out of mitochondria via citrate shuttle)"))
story.append(bp(B("Rate-limiting enzyme:") + " Acetyl-CoA Carboxylase (ACC) β€” converts Acetyl-CoA β†’ Malonyl-CoA"))
story.append(bp(B("Requires:") + " NADPH (from HMP shunt), Biotin (for ACC), ACP (acyl carrier protein)"))
story.append(bp(B("Inhibits beta-oxidation:") + " Malonyl-CoA inhibits carnitine acyltransferase I (prevents FA entry into mitochondria)"))
story.append(spp())

story.append(Paragraph(B("Cholesterol Metabolism"), sec_head))
story.append(info_box(
    B("Synthesis:") + " All nucleated cells; liver is main site<br/>"
    + B("Rate-limiting enzyme:") + " HMG-CoA reductase (3-hydroxy-3-methylglutaryl CoA reductase)<br/>"
    + B("Statins") + " (atorvastatin, rosuvastatin) competitively inhibit HMG-CoA reductase β†’ ↓cholesterol<br/>"
    + B("Regulation:") + " Inhibited by cholesterol, bile salts; Activated when cholesterol is low",
    bg=YELLOW_BG
))
story.append(spp())

story.append(Paragraph(B("Lipoproteins - Very High Yield SAQ"), sec_head))
story.append(make_table(
    ["Lipoprotein", "Origin", "Main Lipid", "Function", "Apolipoprotein"],
    [
        ["Chylomicrons", "Intestine", "Dietary TG (88%)", "Transport dietary fat to tissues", "Apo B-48, C-II, E"],
        ["VLDL", "Liver", "Endogenous TG (55%)", "Transport liver TG to tissues", "Apo B-100, C-II, E"],
        ["IDL", "From VLDL", "TG + Cholesterol", "Intermediate (to LDL)", "Apo B-100, E"],
        ["LDL", "From IDL/VLDL", "Cholesterol (45%) β€” 'bad'", "Deliver cholesterol to cells", "Apo B-100"],
        ["HDL", "Liver + intestine", "Protein + Phospholipid β€” 'good'", "Reverse cholesterol transport", "Apo A-I, A-II"],
    ],
    col_widths=[2.5*cm, 2.5*cm, 3*cm, 5.5*cm, 4*cm],
    hdr_color=MED_BLUE,
))
story.append(spp())
story.append(info_box(
    B("Remember:") + " Lipoprotein lipase (LPL) is activated by Apo C-II β€” hydrolyzes TG in chylomicrons/VLDL. "
    + "LCAT (lecithin-cholesterol acyltransferase) esterifies cholesterol in HDL. "
    + B("Abetalipoproteinemia:") + " Absence of Apo B β†’ no chylomicrons/VLDL β†’ fat malabsorption, acanthocytosis.",
    bg=LIGHT_BLUE
))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 5: VITAMINS
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 5: VITAMINS", color=colors.HexColor("#117A65")))
story.append(sp())

story.append(Paragraph(B("Water-Soluble Vitamins (B-complex + Vitamin C)"), sec_head))
story.append(make_table(
    ["Vitamin", "Coenzyme", "Key Function", "Deficiency", "Clinical Features"],
    [
        ["B1 Thiamine", "TPP (thiamine pyrophosphate)", "Pyruvate DH, Ξ±-KG DH, Transketolase", "Beriberi, Wernicke-Korsakoff", "Wet beriberi (heart failure), Dry beriberi (neuropathy), Wernicke's (confusion, ataxia, ophthalmoplegia)"],
        ["B2 Riboflavin", "FMN, FAD", "ETC (Complex I, II), beta-oxidation", "Ariboflavinosis", "Cheilosis, angular stomatitis, glossitis, corneal vascularization"],
        ["B3 Niacin", "NAD+, NADP+", ">400 enzymes; glycolysis, TCA, ETC", "Pellagra", "3 Ds: Dermatitis, Diarrhea, Dementia (4th D = Death)"],
        ["B5 Pantothenic acid", "CoA, ACP", "Acyl group transfer, fatty acid synthesis", "Burning feet syndrome", "Very rare; burning sensation in feet"],
        ["B6 Pyridoxine", "PLP (pyridoxal phosphate)", "Transamination, decarboxylation, glycogen phosphorylase", "Sideroblastic anemia", "Peripheral neuropathy; deficiency in INH therapy (give B6 supplement)"],
        ["B7 Biotin", "Biocytin", "Carboxylation (ACC, pyruvate carboxylase)", "Raw egg white ingestion (avidin binds biotin)", "Dermatitis, alopecia, neurological symptoms"],
        ["B9 Folate", "THF (tetrahydrofolate)", "One-carbon transfer, nucleotide synthesis, amino acid metabolism", "Megaloblastic anemia, Neural tube defects", "Macrocytic anemia; NTD (spina bifida) in pregnancy; give folate supplements periconceptionally"],
        ["B12 Cobalamin", "Methylcobalamin, Adenosylcobalamin", "Methionine synthesis, odd-chain FA oxidation (propionyl-CoA)", "Pernicious anemia, Subacute combined degeneration", "Megaloblastic anemia + neurological symptoms (posterior/lateral column); requires IF for absorption"],
        ["C Ascorbic acid", "β€”", "Collagen synthesis (hydroxylation of Pro & Lys), antioxidant, Fe absorption", "Scurvy", "Perifollicular hemorrhages, corkscrew hairs, gum bleeding, poor wound healing"],
    ],
    col_widths=[2.2*cm, 2.8*cm, 4*cm, 3.5*cm, 5*cm],
    hdr_color=colors.HexColor("#117A65"),
))
story.append(spp())

story.append(Paragraph(B("Fat-Soluble Vitamins (A, D, E, K)"), sec_head))
story.append(make_table(
    ["Vitamin", "Active Form", "Key Function", "Deficiency", "Toxicity (if excess)"],
    [
        ["A (Retinol)", "Retinal (vision), Retinoic acid (gene expression)", "Night vision (rhodopsin), epithelial maintenance, immune function", "Night blindness, Bitot's spots, Xerophthalmia, Keratomalacia", "Teratogenic, Raised ICP, Liver damage"],
        ["D (Calciferol)", "1,25-(OH)2 D3 (Calcitriol) β€” activated in kidney", "Ca2+ and PO4 absorption; bone mineralization", "Rickets (children), Osteomalacia (adults)", "Hypercalcemia, Metastatic calcification"],
        ["E (Tocopherol)", "Ξ±-Tocopherol", "Antioxidant (protects PUFA in membranes)", "Hemolytic anemia in premature infants, Ataxia", "Generally non-toxic"],
        ["K (Phylloquinone)", "Menaquinone (K2 β€” gut bacteria)", "Carboxylation of clotting factors II, VII, IX, X (GFPC)", "Bleeding tendency, Prolonged PT", "Hemolytic anemia (K3/menadione in infants)"],
    ],
    col_widths=[2.2*cm, 3.8*cm, 4*cm, 4*cm, 3.5*cm],
    hdr_color=colors.HexColor("#148F77"),
))
story.append(spp())
story.append(info_box(
    B("Memory tip for fat-soluble vitamins toxicity:") + " A and D are toxic in excess. "
    + B("Vitamin D synthesis:") + " Skin (UV β†’ D3) β†’ Liver (25-OH-D3) β†’ Kidney (1,25-(OH)2-D3 = calcitriol, active form). "
    + B("Vitamin K and warfarin:") + " Warfarin inhibits Vitamin K epoxide reductase β†’ inhibits clotting factor synthesis.",
    bg=LIGHT_GREEN
))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# CHAPTER 6: LAB TESTS & CLINICAL BIOCHEMISTRY
# ════════════════════════════════════════════════════════════════════════════
story.append(chapter_banner("CHAPTER 6: LAB TESTS & CLINICAL BIOCHEMISTRY", color=colors.HexColor("#2C3E50")))
story.append(sp())

story.append(Paragraph(B("Liver Function Tests (LFTs)"), sec_head))
story.append(make_table(
    ["Test", "Normal Value", "Elevated in", "Significance"],
    [
        ["ALT (SGPT)", "0-40 U/L", "Hepatocellular damage", "Most specific for liver cell necrosis (viral hepatitis, NAFLD)"],
        ["AST (SGOT)", "0-40 U/L", "Liver, heart, muscle damage", "Less specific; AST:ALT >2:1 suggests alcoholic hepatitis"],
        ["ALP (Alkaline Phosphatase)", "30-120 U/L", "Cholestasis, bone disease, pregnancy", "↑↑ in obstructive jaundice; bone ALP in Paget's disease"],
        ["GGT (Ξ³-GT)", "0-30 U/L", "Alcohol abuse, cholestasis", "Sensitive marker for alcohol consumption"],
        ["Total Bilirubin", "<1.2 mg/dL", "Jaundice (>2.5 mg/dL visible)", "Total = Direct (conjugated) + Indirect (unconjugated)"],
        ["Direct Bilirubin", "<0.4 mg/dL", "Obstructive/hepatic jaundice", "Conjugated with glucuronic acid in liver"],
        ["Albumin", "3.5-5.0 g/dL", "Decreased in chronic liver disease", "Reflects synthetic function; TΒ½ = 20 days"],
        ["PT/INR", "12-16 sec (INR <1.2)", "Liver disease, Vit K deficiency", "Tests extrinsic pathway (factors II,V,VII,X)"],
    ],
    col_widths=[3.5*cm, 3*cm, 4*cm, 7*cm],
    hdr_color=colors.HexColor("#2C3E50"),
))
story.append(spp())

story.append(Paragraph(B("Cardiac Biomarkers"), sec_head))
story.append(make_table(
    ["Marker", "Rise", "Peak", "Return to Normal", "Significance"],
    [
        ["Troponin I/T", "3-6 hrs", "12-24 hrs", "5-14 days", "GOLD STANDARD for MI; most sensitive and specific"],
        ["CK-MB", "4-8 hrs", "12-24 hrs", "2-3 days", "Good for reinfarction (normalizes faster than Trop)"],
        ["LDH-1", "12-24 hrs", "2-3 days", "10-14 days", "Useful when patient presents late (>24 hrs)"],
        ["Myoglobin", "1-2 hrs", "4-8 hrs", "24 hrs", "Earliest marker but not specific (also in muscle injury)"],
    ],
    col_widths=[3*cm, 2.5*cm, 2.5*cm, 3.5*cm, 6*cm],
    hdr_color=ACCENT,
))
story.append(spp())

story.append(Paragraph(B("Blood Glucose & Diabetes Tests"), sec_head))
story.append(make_table(
    ["Test", "Normal", "Pre-diabetes", "Diabetes"],
    [
        ["Fasting Blood Glucose", "<100 mg/dL", "100-125 mg/dL", "β‰₯126 mg/dL (on 2 occasions)"],
        ["2-hr OGTT (75g glucose)", "<140 mg/dL", "140-199 mg/dL", "β‰₯200 mg/dL"],
        ["Random Blood Glucose", "β€”", "β€”", "β‰₯200 mg/dL + symptoms"],
        ["HbA1c", "<5.7%", "5.7-6.4%", "β‰₯6.5%"],
    ],
    col_widths=[5*cm, 3.5*cm, 3.5*cm, 5.5*cm],
    hdr_color=GREEN,
))
story.append(spp())

story.append(Paragraph(B("Renal Function Tests"), sec_head))
story.append(make_table(
    ["Test", "Normal Value", "Elevated in"],
    [
        ["Serum Creatinine", "0.6-1.2 mg/dL (male)", "Renal failure, muscle disease"],
        ["Blood Urea Nitrogen (BUN)", "10-20 mg/dL", "Renal failure, high protein diet, dehydration"],
        ["BUN:Creatinine ratio", "10:1 to 20:1", ">20: Pre-renal azotemia | <10: Liver disease"],
        ["Serum Uric Acid", "3.5-7.0 mg/dL (male)", "Gout, renal failure, tumor lysis syndrome"],
        ["GFR (eGFR)", ">90 mL/min/1.73m2", "Decreased in CKD (staging: G1-G5)"],
    ],
    col_widths=[4.5*cm, 4.5*cm, 8.5*cm],
    hdr_color=MED_BLUE,
))
story.append(spp())

story.append(Paragraph(B("Lipid Profile Normal Values"), sec_head))
story.append(make_table(
    ["Parameter", "Desirable", "Borderline High", "High Risk"],
    [
        ["Total Cholesterol", "<200 mg/dL", "200-239 mg/dL", "β‰₯240 mg/dL"],
        ["LDL Cholesterol", "<100 mg/dL (optimal)", "130-159 mg/dL", "β‰₯160 mg/dL"],
        ["HDL Cholesterol", ">60 mg/dL (protective)", "40-60 mg/dL", "<40 mg/dL (risk factor)"],
        ["Triglycerides", "<150 mg/dL", "150-199 mg/dL", "β‰₯200 mg/dL"],
    ],
    col_widths=[4.5*cm, 4*cm, 4*cm, 5*cm],
    hdr_color=MED_BLUE,
))
story.append(spp())

# Last page: Quick Revision Summary
story.append(PageBreak())
story.append(chapter_banner("QUICK REVISION: KEY MNEMONICS & EXAM TIPS", color=colors.HexColor("#784212")))
story.append(sp())

story.append(Paragraph(B("Rate-Limiting Enzymes - Must Memorize"), sec_head))
story.append(make_table(
    ["Pathway", "Rate-Limiting Enzyme", "Regulated by"],
    [
        ["Glycolysis", "Phosphofructokinase-1 (PFK-1)", "AMP, ADP (activate); ATP, Citrate (inhibit)"],
        ["Gluconeogenesis", "Fructose-1,6-bisphosphatase", "Citrate (activates); AMP, Fructose-2,6-bisP (inhibit)"],
        ["TCA cycle", "Isocitrate dehydrogenase", "ADP, Ca2+ (activate); ATP, NADH (inhibit)"],
        ["Fatty acid synthesis", "Acetyl-CoA carboxylase (ACC)", "Citrate (activates); Palmitoyl-CoA (inhibit)"],
        ["Beta-oxidation", "Carnitine acyltransferase I", "Malonyl-CoA (inhibits)"],
        ["Ketone synthesis", "HMG-CoA synthase (mitochondrial)", "β€”"],
        ["Cholesterol synthesis", "HMG-CoA reductase", "Cholesterol, bile salts (inhibit); Insulin (activates)"],
        ["Glycogen synthesis", "Glycogen synthase", "Insulin (activates); Glucagon/Epinephrine (inhibit)"],
        ["Glycogenolysis", "Glycogen phosphorylase", "AMP, Ca2+, Epinephrine (activate); ATP, G-6-P (inhibit)"],
        ["HMP shunt", "G6PD (Glucose-6-phosphate DH)", "NADP+ (activates); NADPH (inhibits)"],
    ],
    col_widths=[4.5*cm, 6*cm, 7*cm],
    hdr_color=colors.HexColor("#784212"),
))
story.append(spp())

story.append(Paragraph(B("Mnemonics"), sec_head))
data = [
    [Paragraph(B("Fat-soluble vitamins"), table_hdr),
     Paragraph(B("Gluconeogenic substrates"), table_hdr),
     Paragraph(B("Pellagra 4 D's"), table_hdr)],
    [Paragraph("'Fat-soluble = ADEK'\nAbsorbed with fat, stored in liver/fat tissue, toxic in excess (A, D)", table_cel),
     Paragraph("'LAGG': Lactate, Alanine, Glycerol, Glutamine", table_cel),
     Paragraph("Dermatitis, Diarrhea, Dementia, Death\n(Niacin B3 deficiency)", table_cel)],
]
mnem_table = Table(data, colWidths=[5.8*cm, 5.8*cm, 5.9*cm])
mnem_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), colors.HexColor("#784212")),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [YELLOW_BG]),
    ("BOX",           (0,0), (-1,-1), 0.5, colors.HexColor("#784212")),
    ("INNERGRID",     (0,0), (-1,-1), 0.3, colors.grey),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(mnem_table)
story.append(spp())

story.append(Paragraph(B("Exam Strategy - Last Minute Tips"), sec_head))
story.append(info_box(
    B("LAQ (10 marks) format:") + " Introduction (2 lines) β†’ Classification/Steps (diagram) β†’ Regulation β†’ Clinical significance = Full marks<br/>"
    + B("SAQ (5 marks):") + " Define β†’ List key points in bullets β†’ 1 diagram if applicable β†’ Mention ONE clinical correlate<br/>"
    + B("VSAQ (2 marks):") + " 2 precise sentences; no waffle<br/>"
    + B("Attempt ALL questions") + " β€” partial marks are awarded; no negative marking<br/>"
    + B("Draw diagrams:") + " Glycolysis, TCA cycle, ETC, Beta-oxidation, Lipoprotein structure β€” even rough diagrams get marks",
    bg=LIGHT_GREEN
))
story.append(spp())
story.append(info_box(
    "πŸ“…  " + B("Exam: 13 August 2026 | 10:00 AM - 01:00 PM | Report by 09:00 AM") + "<br/>"
    + "Pass: 40% in theory (both papers aggregate) | Good luck!",
    bg=LIGHT_BLUE, border=DARK_BLUE
))

# ── Build ──────────────────────────────────────────────────────────────────
def make_frames(doc):
    from reportlab.platypus import Frame, PageTemplate
    cover_frame = Frame(0, 0, A4[0], A4[1], leftPadding=1.8*cm,
                        rightPadding=1.8*cm, topPadding=1.5*cm,
                        bottomPadding=1.5*cm, id="cover")
    inner_frame = Frame(1.8*cm, 1.8*cm, A4[0]-3.6*cm, A4[1]-4.6*cm,
                        id="inner")
    return [
        PageTemplate(id="Cover", frames=[cover_frame], onPage=on_cover),
        PageTemplate(id="Inner", frames=[inner_frame], onPage=on_page),
    ]

doc.addPageTemplates(make_frames(doc))

# Insert template switches
story.insert(0, doc.pageTemplates[0])
# After cover page break, switch to Inner
cover_end = None
for i, item in enumerate(story):
    if isinstance(item, PageBreak):
        cover_end = i
        break

from reportlab.platypus import NextPageTemplate
if cover_end is not None:
    story.insert(cover_end, NextPageTemplate("Inner"))

doc.build(story)
print("PDF created successfully:", OUTPUT)
Running Command

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

Editing File

~/biochem-pdf/generate_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/biochem-pdf/generate_pdf.py'
Running Command

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

Running Command

ls -lh /tmp/workspace/biochem-pdf/KNRUHS_Biochemistry_Paper1_QuickRef.pdf

Your quick reference PDF is ready! Download it here:

KNRUHS Biochemistry Paper1 QuickRef

PDF Document Β· PDF


What's inside the PDF (7 pages):

PageContent
CoverTopic overview + exam date + pass criteria
Ch 1 - EnzymesIUB classification table, Michaelis-Menten kinetics, Inhibition comparison table (Km/Vmax), Isoenzymes, Allosteric enzymes, Coenzymes table
Ch 2 - Carbohydrate MetabolismGlycolysis (key steps + enzymes), TCA cycle table, Gluconeogenesis, Glycogen diseases table (Von Gierke, Pompe, McArdle etc.), HMP shunt, DM biochemistry
Ch 3 - Biological OxidationETC complexes I-V table, ATP yield table, Inhibitors & Uncouplers table
Ch 4 - Lipid MetabolismBeta-oxidation, ATP from palmitate, Ketone bodies, Fatty acid synthesis, Cholesterol (statins), Lipoproteins table
Ch 5 - VitaminsFull water-soluble (B1-B12, C) table with coenzyme, function, deficiency, clinical features; Fat-soluble (ADEK) table
Ch 6 + RevisionLFTs, Cardiac markers, Blood glucose/HbA1c, Renal function tests, Lipid profile values, Rate-limiting enzymes master table, Mnemonics, Exam strategy tips
Print it out, stick it on your wall, and you're set for 13 August! πŸ’ͺ
This is a shared conversation. Sign in to Orris to start your own chat.