answer everything in aspect of vet biochemistry without missing any imp. point
Which vet biochemistry topic would you like me to cover? · What level of detail do you need?
kcat= Vmax/ [Et] (total enzyme concentration) OR kcat= Vmax/ St(total number of active sites)
Specific Activity = Vmax/ mg of total protein OR Specific Activity = Units of enzyme activity / mg total protein
| Parameter | Formula | Use |
|---|---|---|
| Total activity | Units × total volume | Total enzyme in prep |
| Specific activity | Units / mg protein | Purity indicator |
| Turnover number | V | Intrinsic enzyme speed |
| Term | Meaning |
|---|---|
| Apoenzyme | Inactive protein portion of enzyme alone |
| Cofactor | Nonprotein component (metal ion or coenzyme) |
| Holoenzyme | Apoenzyme + cofactor = ACTIVE enzyme |
| Coenzyme | Small organic cofactor (transiently associated) |
| Prosthetic group | Coenzyme permanently/tightly bound to enzyme |
| Type | Example | Mechanism |
|---|---|---|
| ETC inhibitor | Cyanide, CO | Block Complex IV |
| ETC inhibitor | Rotenone (insecticide) | Block Complex I |
| ATP synthase inhibitor | Oligomycin | Block F₀ unit of ATP synthase |
| Uncoupler | DNP (2,4-dinitrophenol), Thermogenin | Dissipate proton gradient without ATP synthesis |
| Term | One-line Definition | Key Number/Fact |
|---|---|---|
| Intermediary metabolism | Interconversions of metabolites between carbohydrate, lipid & protein pathways | Hub = Acetyl-CoA & TCA cycle |
| Turnover number (k | Substrate molecules converted per enzyme per second at V | Carbonic anhydrase = 4×10⁵ s⁻¹ |
| Specific activity | Enzyme activity per mg total protein | Increases as enzyme is purified |
| Coenzymes | Small organic nonprotein molecules essential for catalysis; carry chemical groups/electrons | Mostly derived from B-vitamins |
| Oxidative phosphorylation | ATP synthesis coupled to electron transport chain in mitochondria | ~30-32 ATP per glucose |
Vet Exam Tip: In vet biochemistry papers, always link definitions to a clinical/species example - e.g., ruminants for intermediary metabolism, organophosphate poisoning for turnover number, cyanide toxicity for oxidative phosphorylation - it scores extra marks.
(2.5x 2=5) (5x3=15) III. IV. VMuilive phosphorylation Q. No.6. Write short notes on (Any Two) Represent diagrammatically the Cori cycle Deamination reactions of amino acids Effects of temperature and pH on enzyme activity Q. No.7. Describe briefly (Any Three) Discuss the steps of B-oxidation of fatty acids Discuss the steps of TCA cycle including energy production from each cycle. Discuss in brief about Glycogenolysis Discuss enzyme-substrate complex formation
MUSCLE / RBC / Peripheral Tissues
──────────────────────────────────
Glucose (from blood)
↓ [Glycolysis - anaerobic]
Pyruvate
↓ [Lactate dehydrogenase (LDH)]
↓ NADH → NAD+
LACTATE ────────────────────────→ (bloodstream)
↓
──────────────────────────────────────────────────
LIVER
──────────────────────────────────────────────────
LACTATE (arrives)
↓ [LDH]
↓ NAD+ → NADH
Pyruvate
↓ [Gluconeogenesis - energy costly]
↓ (2 ATP used)
GLUCOSE ──────────→ (bloodstream → back to muscle)
┌─────────────────────────────────────────────────────────────┐
│ CORI CYCLE │
│ │
│ MUSCLE/RBC LIVER │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Glucose │◄───────────────│ Glucose │ │
│ │ ↓ Glycol │ │ ↑ Gluconeo│ │
│ │ Pyruvate │ │ Pyruvate │ │
│ │ ↓ LDH │ │ ↑ LDH │ │
│ │ LACTATE ────┼────────────────┼► LACTATE │ │
│ └──────────────┘ └──────────────┘ │
│ │
│ Net ATP: Muscle uses 2 ATP (net from glycolysis) │
│ Liver uses 6 ATP (gluconeogenesis costs more) │
└─────────────────────────────────────────────────────────────┘
| Feature | Detail |
|---|---|
| Sites | Muscle/RBC → Liver |
| Carriers | Lactate (via blood) |
| Muscle enzyme | LDH (pyruvate → lactate) |
| Liver enzymes | LDH + gluconeogenic enzymes |
| ATP balance | Muscle gains 2 ATP; liver spends 6 ATP (net loss of 4 ATP overall) |
| Function | Recycles lactate; prevents lactic acidosis; maintains blood glucose |
| Vet significance | In exercising horses/cattle - massive lactate production during sprinting; Cori cycle keeps blood glucose stable |
Alanine + α-ketoglutarate ──[ALT/GPT]──► Pyruvate + Glutamate
Aspartate + α-ketoglutarate ──[AST/GOT]──► Oxaloacetate + Glutamate
ALT and AST are clinically important in vet diagnostics - elevated in liver disease (hepatitis) in dogs, cats, horses.
Glutamate + NAD⁺ ──[GDH]──► α-Ketoglutarate + NH₃ + NADH + H⁺
Amino Acid
│
▼ Transamination (ALT, AST - with PLP)
├──── α-Keto acid (enters TCA or gluconeogenesis)
└──── Glutamate
│
▼ Oxidative Deamination (GDH - NAD⁺)
├──── α-Ketoglutarate (re-enters TCA)
└──── NH₃ ────► Urea Cycle ────► Urea (excreted in urine)
Enzyme
Activity
│ ╭─────╮ ← Optimum temperature (~37°C for most mammalian enzymes)
│ ╭─╯ ╰─╮
│ ╭─╯ ╰──────────
│ ╭─╯ (denaturation)
└───┴────────────────────────► Temperature
10°C 25°C 37°C 50°C+
| Phase | What happens |
|---|---|
| Rising phase (< optimum) | ↑ Kinetic energy → more enzyme-substrate collisions → ↑ activity. Every 10°C rise roughly doubles reaction rate (Q₁₀ = 2) |
| Optimum temperature | Maximum activity; for most mammalian/vet enzymes ~37-40°C |
| Above optimum | Heat breaks hydrogen bonds and hydrophobic interactions → protein denaturation → loss of 3D shape → loss of active site → rapid ↓ activity |
Enzyme
Activity
│ ╭─╮ ← Optimum pH (varies per enzyme)
│ ╭─╯ ╰─╮
│ ╭─╯ ╰─╮
│ ╭─╯ ╰───
└────────┴──────────────────► pH
1 3 5 7 9 11
| Enzyme | Optimum pH | Location |
|---|---|---|
| Pepsin (stomach protease) | ~2.0 | Stomach |
| Trypsin (pancreatic protease) | ~7.5-8.0 | Small intestine |
| Salivary amylase | ~6.8-7.0 | Oral cavity |
| Alkaline phosphatase | ~9-10 | Intestine/bone |
| Arginase | ~9.5 | Liver (urea cycle) |
| Acid phosphatase | ~5.0 | Lysosomes/prostate |
Fatty acid + CoA + ATP ──[Acyl-CoA synthetase]──► Fatty acyl-CoA + AMP + PPi
Fatty acyl-CoA + FAD ──[Acyl-CoA dehydrogenase]──► trans-Δ²-Enoyl-CoA + FADH₂
trans-Δ²-Enoyl-CoA + H₂O ──[Enoyl-CoA hydratase]──► L-3-Hydroxyacyl-CoA
L-3-Hydroxyacyl-CoA + NAD⁺ ──[3-Hydroxyacyl-CoA dehydrogenase]──► 3-Ketoacyl-CoA + NADH + H⁺
3-Ketoacyl-CoA + CoA ──[β-Ketothiolase / thiolase]──► Acetyl-CoA + Fatty acyl-CoA (2C shorter)
| Step | Enzyme | Product |
|---|---|---|
| 1. Oxidation | Acyl-CoA dehydrogenase | FADH₂ |
| 2. Hydration | Enoyl-CoA hydratase | L-3-Hydroxyacyl-CoA |
| 3. Oxidation | 3-Hydroxyacyl-CoA dehydrogenase | NADH |
| 4. Thiolysis | β-Ketothiolase | Acetyl-CoA + shortened acyl-CoA |
| Stage | Cycles/Moles | ATP per unit | Total ATP |
|---|---|---|---|
| Activation | - | -2 | -2 |
| β-Oxidation (7 cycles) | 7 FADH₂ | × 1.5 | +10.5 |
| β-Oxidation (7 cycles) | 7 NADH | × 2.5 | +17.5 |
| TCA cycle (8 Acetyl-CoA) | 8 × 10 | 10 | +80 |
| NET TOTAL | 106 ATP |
| # | Reaction | Enzyme | Products | Energy |
|---|---|---|---|---|
| 1 | Oxaloacetate (4C) + Acetyl-CoA (2C) → Citrate (6C) | Citrate synthase | Citrate | - |
| 2 | Citrate → Isocitrate | Aconitase (via cis-Aconitate) | Isocitrate | - |
| 3 | Isocitrate → α-Ketoglutarate (5C) + CO₂ | Isocitrate dehydrogenase | NADH, CO₂ | 1 NADH |
| 4 | α-Ketoglutarate (5C) → Succinyl-CoA (4C) + CO₂ | α-Ketoglutarate dehydrogenase complex (needs TPP, Lipoate, FAD, NAD⁺, CoA) | NADH, CO₂ | 1 NADH |
| 5 | Succinyl-CoA → Succinate | Succinyl-CoA synthetase | GTP (= 1 ATP) | 1 GTP |
| 6 | Succinate → Fumarate | Succinate dehydrogenase (Complex II of ETC!) | FADH₂ | 1 FADH₂ |
| 7 | Fumarate + H₂O → L-Malate | Fumarase | Malate | - |
| 8 | L-Malate → Oxaloacetate | Malate dehydrogenase | NADH | 1 NADH |
Acetyl-CoA (2C)
↓ [Citrate synthase]
Oxaloacetate (4C) → Citrate (6C)
↑ ↓ [Aconitase]
NADH (Step 8) Isocitrate (6C)
↑ ↓ [Isocitrate DH] → CO₂ + NADH
L-Malate (4C) α-Ketoglutarate (5C)
↑ ↓ [α-KG DH complex] → CO₂ + NADH
Fumarate (4C) Succinyl-CoA (4C)
↑ FADH₂ ↓ [Succinyl-CoA synthetase] → GTP
Succinate (4C) ◄──────┘
[Succinate DH → FADH₂]
| Molecule | No. Produced | ATP Equivalent |
|---|---|---|
| NADH | 3 | 3 × 2.5 = 7.5 ATP |
| FADH₂ | 1 | 1 × 1.5 = 1.5 ATP |
| GTP | 1 | 1 ATP |
| Total per turn | ~10 ATP |
| Enzyme | Activated by | Inhibited by |
|---|---|---|
| Citrate synthase | ADP, low energy | ATP, NADH, Citrate |
| Isocitrate DH | ADP, Ca²⁺ | ATP, NADH |
| α-KG DH complex | Ca²⁺, ADP | ATP, NADH, Succinyl-CoA |
It is NOT the reverse of glycogen synthesis - uses completely different enzymes.
Glycogen (n glucose units) + Pᵢ ──[Glycogen phosphorylase]──► Glucose-1-phosphate + Glycogen (n-1 units)
Branch glucose ──[α-1,6-glucosidase]──► Free Glucose (enters bloodstream directly in liver)
Glucose-1-phosphate ──[Phosphoglucomutase]──► Glucose-6-phosphate
Glucose-6-phosphate ──[Glucose-6-phosphatase]──► Free Glucose + Pᵢ
Glucagon (liver) ──► cAMP ──► PKA ──► Phosphorylase kinase (active) ──► Glycogen phosphorylase (active)
Epinephrine (muscle + liver) ─┘ → GLYCOGENOLYSIS ↑
→ Glycogen synthase ↓ (phosphorylated = inactive)
| Signal | Tissue | Effect |
|---|---|---|
| Glucagon | Liver | Activates glycogenolysis (low blood glucose) |
| Epinephrine | Liver + Muscle | Activates glycogenolysis (fight-or-flight) |
| Ca²⁺ (contraction) | Muscle | Directly activates phosphorylase kinase |
| AMP (high) | Muscle | Allosterically activates phosphorylase b |
| Insulin | Both | Inhibits glycogenolysis; activates glycogen synthesis |
| Tissue | Final product of glycogenolysis | Fate |
|---|---|---|
| Liver | Free glucose (via G-6-Phosphatase) | Released to blood |
| Muscle | Glucose-6-phosphate (no G-6-Pase) | Enters glycolysis → ATP |
E + S ⇌ ES → E + P
k₁ / k₋₁ k₂(k_cat)
Enzyme (rigid shape) + Substrate (exact fit) → ES complex → Products
[Lock] [Key]
Enzyme (open/flexible) + Substrate → Enzyme changes shape → Perfect-fit ES complex → Products
| Topic | Key Enzyme(s) | Key Product(s) | Vet Relevance |
|---|---|---|---|
| Cori Cycle | LDH, Gluconeogenic enzymes | Glucose ↔ Lactate | Exercising horses; lactic acidosis |
| Deamination | ALT, AST, GDH, D-amino acid oxidase | α-Keto acids + NH₃ → Urea | Liver disease (elevated ALT/AST in dogs) |
| Temp & pH on enzymes | Concept-based | Activity bell-curve vs optimum | Rumen acidosis; fever; heat stroke |
| β-Oxidation | Acyl-CoA DH, Enoyl hydratase, Hydroxyacyl DH, Thiolase | Acetyl-CoA, NADH, FADH₂ | Ketosis in dairy cows; carnitine deficiency |
| TCA Cycle | Citrate synthase, Isocitrate DH, α-KG DH, etc. | 3 NADH, 1 FADH₂, 1 GTP, 2 CO₂ per turn | Acetonaemia in cattle |
| Glycogenolysis | Glycogen phosphorylase, Debranching enzyme, G-6-Pase | Glucose (liver), G-6-P (muscle) | Hypoglycemia in neonates; GSD in Brahman cattle |
| ES Complex | Enzyme-specific | Transition state complex | Organophosphate poisoning |
give me actual diagram

Key read: Liver spends 6 ATP on gluconeogenesis; muscle/RBC gains only 2 ATP from glycolysis. Net cost = 4 ATP. Cycle prevents lactic acidosis and recycles carbon back to blood glucose.


Key read: Panel A = catabolism (deamination, releases free NH₃). Panel B = anabolism (reductive amination, incorporates NH₃ into amino acids). GDH sits at the junction and is bidirectional.



Key read: Each full turn produces 3 NADH, 1 FADH₂, 1 ATP (as GTP), and 2 CO₂. Note the inhibitors shown in red (Fluoroacetate, Arsenite, Malonate) - important for vet toxicology (fluoroacetate = 1080 rodenticide → fatal in livestock).




| Topic | What the Diagram Shows | Key Exam Point |
|---|---|---|
| Cori Cycle | Liver ↔ RBC/Muscle glucose-lactate shuttle | Liver costs 6 ATP; muscle gains 2 ATP |
| Transamination | ALT: Ala→Pyr + Glu; AST: Asp→OAA + Glu | Both need PLP (Vit B6) |
| Oxidative Deamination | GDH: Glutamate → α-KG + NH₃ (NAD⁺) | Bidirectional; GTP inhibits, ADP activates |
| β-Oxidation | 4-step cycle: FAD-oxidation → Hydration → NAD-oxidation → Thiolysis | Each cycle: 1 FADH₂ + 1 NADH + 1 Acetyl-CoA |
| TCA Cycle | 8 enzyme-catalyzed steps; circular | 3 NADH + 1 FADH₂ + 1 GTP + 2 CO₂ per turn |
| Oxidative Phosphorylation | ETC (Complex I→IV) + ATP Synthase (V) | H⁺ gradient drives ATP synthesis (Mitchell's chemiosmosis) |
| ES Complex / Induced Fit | Glucokinase cleft opens → glucose enters → cleft closes | Enzyme changes shape on substrate binding |
again
What would you like me to show again?
answer everything in aspect of vet biochemistry without missing any imp. point(2.5x 2=5) (5x3=15) III. IV. VMuilive phosphorylation Q. No.6. Write short notes on (Any Two) Represent diagrammatically the Cori cycle Deamination reactions of amino acids Effects of temperature and pH on enzyme activity Q. No.7. Describe briefly (Any Three) Discuss the steps of B-oxidation of fatty acids Discuss the steps of TCA cycle including energy production from each cycle. Discuss in brief about Glycogenolysis Discuss enzyme-substrate complex formationgive me actual diagramagain



Two scientific graphs side by side for a veterinary biochemistry exam. Left graph: "Effect of Temperature on Enzyme Activity" - x-axis labeled "Temperature (°C)" with values 0, 10, 20, 30, 37, 40, 50, 60. Y-axis labeled "Enzyme Activity". Bell-shaped curve peaking at 37-40°C labeled "Optimum temperature (37-40°C for mammalian enzymes)". Rising phase labeled "Q10 effect: rate doubles per 10°C rise". Falling phase after peak labeled "Denaturation - H-bonds break, active site lost". Right graph: "Effect of pH on Enzyme Activity" - x-axis labeled "pH" with values 1-12. Y-axis labeled "Enzyme Activity". Three separate bell curves: one peaking at pH 2 labeled "Pepsin (stomach)", one peaking at pH 6.8-7 labeled "Salivary amylase", one peaking at pH 7.5-8 labeled "Trypsin (pancreas)". Title at top: "Effects of Temperature and pH on Enzyme Activity". Clean white background, professional style, clear labels, bold axes.



| Step | Yield | ATP |
|---|---|---|
| Activation | -2 ATP used | -2 |
| 7 cycles × FADH₂ | 7 × 1.5 | +10.5 |
| 7 cycles × NADH | 7 × 2.5 | +17.5 |
| 8 Acetyl-CoA → TCA | 8 × 10 | +80 |
| NET | 106 ATP |

| Product | Number | ATP equivalent |
|---|---|---|
| NADH | 3 | 3 × 2.5 = 7.5 |
| FADH₂ | 1 | 1 × 1.5 = 1.5 |
| GTP/ATP | 1 | 1.0 |
| Total | ~10 ATP |
Vet point: Note Fluoroacetate (1080 rodenticide - toxic to dogs, cats, livestock) blocks Aconitase → TCA stops → no ATP → cardiac arrest. Arsenite blocks α-KG dehydrogenase. Malonate competitively inhibits Succinate dehydrogenase.

Glucagon/Epinephrine → cAMP → PKA → Phosphorylase kinase (active)
↓
Glycogen phosphorylase b → a (ACTIVE)
↓
GLYCOGENOLYSIS ↑



| Model | Concept | Status |
|---|---|---|
| Lock & Key (Fischer 1894) | Rigid enzyme, substrate fits pre-formed site | Outdated but still tested |
| Induced Fit (Koshland 1958) | Enzyme changes shape when substrate binds | Currently accepted model |

| # | Topic | Source |
|---|---|---|
| 1 | Cori Cycle | Basic Medical Biochemistry, 6e |
| 2 | Transamination (ALT/AST) | Lippincott Biochemistry, 8th ed |
| 3 | Oxidative Deamination (GDH) | Lippincott Biochemistry, 8th ed |
| 4 | Temp & pH effect on enzymes | Generated |
| 5 | β-Oxidation full pathway | Harper's Biochemistry, 32nd ed |
| 6 | β-Oxidation chemical equations | Guyton & Hall Physiology |
| 7 | TCA Cycle complete | Harper's Biochemistry, 32nd ed |
| 8 | Glycogenolysis steps | Harper's Biochemistry, 32nd ed |
| 9 | ES complex - H-bond active site | Basic Medical Biochemistry, 6e |
| 10 | ES complex - Induced fit (before) | Basic Medical Biochemistry, 6e |
| 11 | ES complex - Induced fit (after) | Basic Medical Biochemistry, 6e |
| 12 | Oxidative Phosphorylation | Lippincott Biochemistry, 8th ed |
Create a PDF summary of all diagrams with clinical vet applications
mkdir -p /home/daytona/workspace/vet-biochem-pdf/images && cd /home/daytona/workspace/vet-biochem-pdf/images && curl -s -o cori_cycle.png "https://cdn.orris.care/cdss_images/7c7602e0b4c7a145fd47852ff50752e459d5c1b65d3a92292c254c67735b225f.png" && curl -s -o transamination.png "https://cdn.orris.care/cdss_images/14d3204942c79439a8fc5c4e607cc2449e17e3e2f4a141b9b4f744503dee0864.png" && curl -s -o oxidative_deamination.png "https://cdn.orris.care/cdss_images/32215401426a4898a53b518ec0f765f96ece62927e478ea991132670add96941.png" && curl -s -o beta_oxidation_pathway.png "https://cdn.orris.care/cdss_images/9fbb04505324de89db91f4214d25d1e8bd9cbe822cbadf5463f83bc68f80652e.png" && curl -s -o beta_oxidation_equations.png "https://cdn.orris.care/cdss_images/f7e0b737aeec21f7eb23c7a5d2051c814a00ea4f92d2c6dcfb7946ae8b7eb878.png" && curl -s -o tca_cycle.png "https://cdn.orris.care/cdss_images/bbe2aec2fd0fa039ac47a20b42ffb328cbf0f0131480ba5c6ac0791e5628d872.png" && curl -s -o glycogenolysis.png "https://cdn.orris.care/cdss_images/d6eac9d3223a9317dd636fc00bc5ba6f47020e8d8c871a5b74b503c167cc281c.png" && curl -s -o es_hbonds.png "https://cdn.orris.care/cdss_images/993ae0be00374c404144ab5794ac42b3c3a0469fc47da0b960e5a78c974e52ea.png" && curl -s -o es_before.png "https://cdn.orris.care/cdss_images/b6645ef759a275b541ffe7b3f0b0d0ba341e93f54c23ac7062ebf1fab59cf4a3.png" && curl -s -o es_after.png "https://cdn.orris.care/cdss_images/a51e1b71746e84e0c85cf33dc33081a8f5a9f05943acdfcb5b68d841ce9eac54.png" && curl -s -o oxphos.png "https://cdn.orris.care/cdss_images/59d1f6cd79a2759682178191a657e4a202083a3514af04c4214cf6ab9b97b729.png" && curl -s -o temp_ph.png "https://cdn.orris.care/image-gen/be4cb605666144d980894b67ac61f5e0.png" && echo "All images downloaded" && ls -lh
~/vet-biochem-pdf/build_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image,
Table, TableStyle, PageBreak, HRFlowable,
KeepTogether)
from reportlab.platypus.flowables import BalancedColumns
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor
import os
IMG_DIR = "/home/daytona/workspace/vet-biochem-pdf/images"
OUT_PATH = "/home/daytona/workspace/vet-biochem-pdf/Vet_Biochemistry_Diagrams_Clinical.pdf"
W, H = A4
# ── Colour palette ────────────────────────────────────────────────
DARK_BLUE = HexColor("#1a3a5c")
MED_BLUE = HexColor("#2e6da4")
LIGHT_BLUE = HexColor("#dce8f5")
ACCENT_GOLD = HexColor("#c8860a")
VET_GREEN = HexColor("#2d6a2d")
LIGHT_GREEN = HexColor("#e6f4e6")
WARN_RED = HexColor("#b22222")
LIGHT_RED = HexColor("#fde8e8")
LIGHT_GRAY = HexColor("#f5f5f5")
MID_GRAY = HexColor("#888888")
styles = getSampleStyleSheet()
def S(name, **kw):
"""Create a ParagraphStyle inheriting from base."""
base = styles.get(name, styles["Normal"])
return ParagraphStyle(name + "_custom_" + str(id(kw)), parent=base, **kw)
# Custom styles
TITLE_STYLE = S("Title", fontSize=26, textColor=DARK_BLUE, spaceAfter=4,
alignment=TA_CENTER, fontName="Helvetica-Bold")
SUBTITLE_STYLE = S("Normal", fontSize=13, textColor=MED_BLUE, spaceAfter=2,
alignment=TA_CENTER, fontName="Helvetica")
DATE_STYLE = S("Normal", fontSize=9, textColor=MID_GRAY, spaceAfter=0,
alignment=TA_CENTER, fontName="Helvetica-Oblique")
SECTION_STYLE = S("Heading1", fontSize=14, textColor=colors.white,
spaceBefore=6, spaceAfter=4,
fontName="Helvetica-Bold", leading=18)
SUBSEC_STYLE = S("Heading2", fontSize=11, textColor=DARK_BLUE,
spaceBefore=4, spaceAfter=3,
fontName="Helvetica-Bold", leading=14)
BODY_STYLE = S("Normal", fontSize=9, textColor=colors.black,
spaceBefore=2, spaceAfter=2, leading=13,
fontName="Helvetica", alignment=TA_JUSTIFY)
BULLET_STYLE = S("Normal", fontSize=9, textColor=colors.black,
spaceBefore=1, spaceAfter=1, leading=12,
leftIndent=12, bulletIndent=0,
fontName="Helvetica")
CAPTION_STYLE = S("Normal", fontSize=8, textColor=MID_GRAY,
alignment=TA_CENTER, fontName="Helvetica-Oblique",
spaceBefore=2, spaceAfter=6)
VET_BOX_STYLE = S("Normal", fontSize=9, textColor=VET_GREEN,
leading=13, fontName="Helvetica", alignment=TA_JUSTIFY)
WARN_BOX_STYLE = S("Normal", fontSize=9, textColor=WARN_RED,
leading=13, fontName="Helvetica", alignment=TA_JUSTIFY)
TABLE_HEADER = S("Normal", fontSize=8, textColor=colors.white,
fontName="Helvetica-Bold", alignment=TA_CENTER)
TABLE_CELL = S("Normal", fontSize=8, textColor=colors.black,
fontName="Helvetica", alignment=TA_LEFT, leading=11)
def img(filename, width_cm=14, height_cm=None):
path = os.path.join(IMG_DIR, filename)
if not os.path.exists(path):
return Paragraph(f"[Image not found: {filename}]", BODY_STYLE)
w = width_cm * cm
from PIL import Image as PILImage
pil = PILImage.open(path)
iw, ih = pil.size
ratio = ih / iw
h = height_cm * cm if height_cm else w * ratio
# clamp height
max_h = 17 * cm
if h > max_h:
h = max_h
w = h / ratio
return Image(path, width=w, height=h, hAlign="CENTER")
def section_header(text, color=DARK_BLUE):
"""Returns a coloured banner paragraph."""
tbl = Table([[Paragraph(text, SECTION_STYLE)]], colWidths=[W - 4*cm])
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),
("ROUNDEDCORNERS", [4]),
]))
return tbl
def vet_box(title, *lines, color=LIGHT_GREEN, border=VET_GREEN, title_color=VET_GREEN):
content = [Paragraph(f"<b>{title}</b>", S("Normal", fontSize=9,
textColor=title_color, fontName="Helvetica-Bold", leading=13))]
for line in lines:
content.append(Paragraph(f"• {line}", VET_BOX_STYLE))
tbl = Table([[content]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("BOX", (0,0), (-1,-1), 1.5, border),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
return tbl
def warn_box(title, *lines):
return vet_box(title, *lines, color=LIGHT_RED, border=WARN_RED, title_color=WARN_RED)
def key_table(headers, rows):
data = [[Paragraph(h, TABLE_HEADER) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), TABLE_CELL) for c in row])
col_w = (W - 4*cm) / len(headers)
tbl = Table(data, colWidths=[col_w]*len(headers), repeatRows=1)
style = [
("BACKGROUND", (0,0), (-1,0), MED_BLUE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.white, LIGHT_BLUE]),
("GRID", (0,0), (-1,-1), 0.5, HexColor("#aaaaaa")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
tbl.setStyle(TableStyle(style))
return tbl
def divider():
return HRFlowable(width="100%", thickness=0.5, color=LIGHT_BLUE, spaceAfter=4, spaceBefore=4)
# ── Page numbering canvas ─────────────────────────────────────────
class NumberedCanvas(canvas.Canvas):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._saved_page_states = []
def showPage(self):
self._saved_page_states.append(dict(self.__dict__))
self._startPage()
def save(self):
num_pages = len(self._saved_page_states)
for state in self._saved_page_states:
self.__dict__.update(state)
self.draw_page_number(num_pages)
canvas.Canvas.showPage(self)
canvas.Canvas.save(self)
def draw_page_number(self, page_count):
page_num = self._saved_page_states.index(
{k: v for k, v in self.__dict__.items()
if k in self._saved_page_states[0]}) + 1
self.setFont("Helvetica", 8)
self.setFillColor(MID_GRAY)
self.drawRightString(W - 2*cm, 1.2*cm,
f"Page {page_num} of {page_count}")
self.drawString(2*cm, 1.2*cm, "Vet Biochemistry — Diagrams & Clinical Applications")
self.setStrokeColor(LIGHT_BLUE)
self.setLineWidth(0.5)
self.line(2*cm, 1.5*cm, W - 2*cm, 1.5*cm)
# ── Build story ───────────────────────────────────────────────────
story = []
# ── COVER PAGE ───────────────────────────────────────────────────
story.append(Spacer(1, 3*cm))
story.append(Paragraph("VET BIOCHEMISTRY", TITLE_STYLE))
story.append(Paragraph("Diagrams & Clinical Applications", SUBTITLE_STYLE))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="60%", thickness=2, color=ACCENT_GOLD,
hAlign="CENTER", spaceBefore=4, spaceAfter=4))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Complete Illustrated Reference for Exam Preparation", SUBTITLE_STYLE))
story.append(Spacer(1, 0.5*cm))
# topic list on cover
topics = [
("Q.6", "Short Notes"),
("1.", "Cori Cycle"),
("2.", "Deamination Reactions of Amino Acids"),
("3.", "Effects of Temperature & pH on Enzyme Activity"),
("Q.7", "Brief Descriptions"),
("4.", "Beta-Oxidation of Fatty Acids"),
("5.", "TCA (Krebs) Cycle — Energy Production"),
("6.", "Glycogenolysis"),
("7.", "Enzyme-Substrate Complex Formation"),
("Bonus", "Oxidative Phosphorylation"),
]
cover_data = [[Paragraph(f"<b>{n}</b>", S("Normal", fontSize=10,
textColor=MED_BLUE, fontName="Helvetica-Bold")),
Paragraph(t, S("Normal", fontSize=10, fontName="Helvetica"))]
for n, t in topics]
cover_tbl = Table(cover_data, colWidths=[2.5*cm, 12*cm])
cover_tbl.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [colors.white, LIGHT_BLUE]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 1, MED_BLUE),
("LINEBELOW", (0,0), (-1,-2), 0.3, LIGHT_BLUE),
]))
story.append(cover_tbl)
story.append(Spacer(1, 1*cm))
story.append(Paragraph("Sources: Lippincott Illustrated Reviews Biochemistry 8e • Harper's Illustrated Biochemistry 32e •<br/>Basic Medical Biochemistry 6e • Guyton & Hall Medical Physiology • Harper's 32e", DATE_STYLE))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 1 — CORI CYCLE
# ════════════════════════════════════════════════════════════════
story.append(section_header("Q.6 — SHORT NOTES", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))
story.append(section_header("1. Cori Cycle (Lactic Acid Cycle)", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> The Cori cycle is the metabolic pathway by which lactate "
"produced by anaerobic glycolysis in peripheral tissues (muscle, RBCs) is "
"transported to the liver, reconverted to glucose via gluconeogenesis, and "
"returned to blood for re-use.", BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(img("cori_cycle.png", width_cm=14))
story.append(Paragraph(
"Fig 1. Cori Cycle — Basic Medical Biochemistry 6e, Fig. 22.12",
CAPTION_STYLE))
story.append(key_table(
["Feature", "Detail"],
[
["Tissues involved", "Muscle, RBCs (anaerobic) → Liver (aerobic)"],
["Key enzymes - Muscle", "LDH: Pyruvate → Lactate (uses NADH)"],
["Key enzymes - Liver", "LDH + Gluconeogenic enzymes (PCK, FBPase, G6Pase)"],
["ATP balance", "Muscle gains 2 ATP; Liver spends 6 ATP → Net loss of 4 ATP"],
["Function", "Recycles lactate carbon; prevents lactic acidosis; maintains blood glucose"],
]
))
story.append(Spacer(1, 0.3*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"Racing horses / greyhounds: Massive lactate production during sprint exercise; "
"Cori cycle keeps blood glucose from crashing post-race",
"Capture myopathy (wild deer, zebra, kangaroo): Extreme exertion → lactic acidosis when "
"Cori cycle is overwhelmed → pH drops → muscle necrosis → death if untreated",
"Cattle with dystocia (prolonged difficult birth): Calf undergoes anaerobic glycolysis "
"→ elevated blood lactate at birth; correction with IV glucose + bicarbonate",
"Exertional rhabdomyolysis ('tying-up') in horses: Pyruvate/lactate accumulation → "
"muscle damage; serum CK and AST markedly elevated",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 2 — DEAMINATION
# ════════════════════════════════════════════════════════════════
story.append(section_header("2. Deamination Reactions of Amino Acids", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> Deamination is the removal of the amino (−NH₂) group from "
"an amino acid, yielding an α-keto acid and releasing nitrogen. There are "
"three main types: transamination, oxidative deamination, and non-oxidative "
"deamination.", BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("<b>Step 1 — Transamination (ALT & AST):</b>", SUBSEC_STYLE))
story.append(img("transamination.png", width_cm=9))
story.append(Paragraph(
"Fig 2a. Transamination reactions — ALT (top) and AST (bottom). "
"Both require PLP (Vitamin B6). — Lippincott Biochemistry 8e, Fig. 19.8",
CAPTION_STYLE))
story.append(Paragraph("<b>Step 2 — Oxidative Deamination (Glutamate Dehydrogenase):</b>", SUBSEC_STYLE))
story.append(img("oxidative_deamination.png", width_cm=9))
story.append(Paragraph(
"Fig 2b. Panel A: Disposal of amino acids via transamination + oxidative "
"deamination → free NH₃. Panel B: Reductive amination (synthesis). "
"— Lippincott Biochemistry 8e, Fig. 19.12",
CAPTION_STYLE))
story.append(key_table(
["Type", "Enzyme", "Coenzyme", "Product"],
[
["Transamination", "ALT (GPT), AST (GOT)", "PLP (Vit B6)", "α-Keto acid + Glutamate"],
["Oxidative Deamination", "Glutamate Dehydrogenase (GDH)", "NAD⁺ (catabolism)", "α-KG + NH₃ + NADH"],
["Non-oxidative Deamination", "Serine dehydratase", "PLP", "Pyruvate + NH₃"],
["D-amino acid oxidase", "DAO (peroxisomal)", "FAD", "α-Keto acid + NH₃ + H₂O₂"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"ALT (SGPT): Liver-specific in dogs & cats. Elevated in hepatitis, hepatic lipidosis "
"(fatty liver in obese cats), toxin ingestion (xylitol, aflatoxin). Normal dog ALT: 10-100 U/L",
"AST (SGOT): Elevated in both liver AND muscle disease in horses and ruminants. "
"Must interpret with CK to differentiate; if CK normal → liver origin",
"GDH: Liver-specific in cattle and sheep. Best single enzyme marker of "
"hepatocellular necrosis in ruminants (e.g., ragwort toxicity, aflatoxicosis)",
"Ammonia toxicity: When GDH is impaired (liver failure) → NH₃ accumulates → "
"hepatic encephalopathy in dogs, horses (head pressing, ataxia, seizures)",
"Thiamin (B6) deficiency → PLP deficiency → transamination impaired → "
"polioencephalomalacia in cattle/sheep (cerebrocortical necrosis)",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 3 — TEMP & pH
# ════════════════════════════════════════════════════════════════
story.append(section_header("3. Effects of Temperature & pH on Enzyme Activity", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(img("temp_ph.png", width_cm=15))
story.append(Paragraph(
"Fig 3. Left: Bell-curve effect of temperature (optimum 37-40°C for mammalian enzymes; "
"denaturation above). Right: pH optima vary per enzyme — Pepsin (pH 2), "
"Salivary amylase (pH 6.8), Trypsin (pH 7.5-8).",
CAPTION_STYLE))
story.append(key_table(
["Enzyme", "Optimum pH", "Location / Species Relevance"],
[
["Pepsin", "~2.0", "Stomach (monogastrics — dog, cat, pig, horse)"],
["Salivary amylase", "6.8–7.0", "Oral cavity (absent in cats; present in dogs, horses)"],
["Trypsin / Chymotrypsin", "7.5–8.0", "Pancreas → small intestine (all species)"],
["Alkaline Phosphatase (ALP)", "9–10", "Bone, liver, intestine — elevated in cholestasis"],
["Arginase", "~9.5", "Liver (urea cycle) — ruminants, dogs"],
["Acid Phosphatase", "~5.0", "Lysosomes, prostate"],
["Rumen microbial enzymes", "6.2–6.8", "Rumen — optimal for cellulolytic bacteria"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications — Temperature",
"Fever (pyrexia) in animals: Moderate fever (39-40°C) initially enhances immune enzyme "
"reactions. Hyperthermia >42°C (heat stroke in brachycephalic dogs, horses) denatures "
"enzymes → multi-organ failure",
"Hypothermia in neonates: Newborn lambs, piglets, foals in cold environments → "
"metabolic enzyme rates halved per 10°C drop (Q10 effect) → hypoglycemia, bradycardia",
"Thermostable enzymes: Rumen microbes have enzymes stable over wider temperature ranges; "
"important in tropical veterinary nutrition",
"Cold storage of blood/serum samples: Enzyme activity preserved at 4°C for clinical assays",
))
story.append(vet_box(
"Veterinary Clinical Applications — pH",
"Rumen acidosis (grain overload) in cattle/sheep: Rumen pH drops to 4.5-5.5 → "
"inhibits cellulolytic bacteria enzymes → fermentation stops → D-lactic acidosis → "
"ataxia ('drunken cow syndrome'), recumbency, death",
"Abomasal displacement / volvulus in cows: Disrupts HCl production → enzyme pH disrupted",
"Pancreatitis in dogs/cats: Trypsin activated prematurely within pancreas at wrong pH "
"→ autodigestion of pancreatic tissue",
"Alkalosis in milk fever (hypocalcaemia, parturient paresis): Systemic pH shift affects "
"enzyme function; IV calcium gluconate treatment",
"Clinical enzyme assays (ALT, ALP, CK): Must be run at controlled pH (phosphate "
"buffer) and temperature (37°C) for accurate results",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 4 — BETA OXIDATION
# ════════════════════════════════════════════════════════════════
story.append(section_header("Q.7 — BRIEF DESCRIPTIONS", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))
story.append(section_header("4. β-Oxidation of Fatty Acids", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> β-Oxidation is the stepwise degradation of fatty acids in the "
"<b>mitochondrial matrix</b> by sequential removal of 2-carbon (acetyl-CoA) units, "
"producing NADH and FADH₂ per cycle.", BODY_STYLE))
story.append(Paragraph("<b>Full Pathway (activation + transport + 4 steps):</b>", SUBSEC_STYLE))
story.append(img("beta_oxidation_pathway.png", width_cm=9))
story.append(Paragraph(
"Fig 4a. Complete β-oxidation pathway: activation → carnitine transport across "
"inner mitochondrial membrane → 4-step repeating cycle → Acetyl-CoA → TCA cycle. "
"— Harper's Illustrated Biochemistry 32e, Fig. 22-3",
CAPTION_STYLE))
story.append(Paragraph("<b>Chemical equations for each step:</b>", SUBSEC_STYLE))
story.append(img("beta_oxidation_equations.png", width_cm=15))
story.append(Paragraph(
"Fig 4b. β-oxidation reactions: (1) Activation by Thiokinase; (2) FAD-oxidation "
"by Acyl dehydrogenase → FADH₂; (3) Hydration by Enoyl hydrase → β-OH-acyl-CoA; "
"(4) NAD⁺-oxidation by β-Hydroxyacyl DH → NADH; (5) Thiolysis by Thiolase → "
"Acetyl-CoA + shortened acyl-CoA. — Guyton & Hall Physiology",
CAPTION_STYLE))
story.append(key_table(
["Step", "Enzyme", "Cofactor", "Product"],
[
["0a. Activation", "Acyl-CoA synthetase (Thiokinase)", "ATP, CoA", "Fatty acyl-CoA + AMP + PPi (−2 ATP)"],
["0b. Transport", "CPT-I, CACT, CPT-II (Carnitine shuttle)", "Carnitine", "Acyl-CoA in mitochondrial matrix"],
["1. Oxidation", "Acyl-CoA dehydrogenase", "FAD", "trans-Δ²-Enoyl-CoA + FADH₂"],
["2. Hydration", "Enoyl-CoA hydratase", "H₂O", "L-3-Hydroxyacyl-CoA"],
["3. Oxidation", "L-3-Hydroxyacyl-CoA DH", "NAD⁺", "3-Ketoacyl-CoA + NADH"],
["4. Thiolysis", "β-Ketothiolase (Thiolase)", "CoA", "Acetyl-CoA + (n−2) Acyl-CoA"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(key_table(
["Palmitate (C16) Energy", "Cycles/Moles", "ATP/unit", "Total ATP"],
[
["Activation cost", "—", "−2", "−2"],
["β-Oxidation FADH₂", "7", "×1.5", "+10.5"],
["β-Oxidation NADH", "7", "×2.5", "+17.5"],
["TCA (8 Acetyl-CoA)", "8", "×10", "+80"],
["NET TOTAL", "", "", "106 ATP"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"Ketosis / Acetonaemia in dairy cows (early lactation negative energy balance): "
"Excess β-oxidation → Acetyl-CoA cannot enter TCA (OAA depleted) → ketone bodies "
"(BOHB, acetoacetate, acetone). Blood BOHB >3 mmol/L = clinical ketosis. "
"Treatment: IV glucose, propylene glycol, glucocorticoids",
"Pregnancy toxaemia in ewes (twin-lamb disease): Same mechanism — twin fetuses "
"consume glucose → ewe mobilises fat → ketosis. High mortality if untreated",
"Feline hepatic lipidosis: Obese cats on starvation diet → massive fat mobilisation "
"→ overwhelms hepatic β-oxidation → fat accumulates in liver → jaundice, liver failure",
"CPT-I deficiency (dogs): Carnitine shuttle impaired → long-chain fatty acids cannot "
"enter mitochondria → lipid myopathy, cardiomyopathy (seen in Boxers, Dobermans)",
"L-carnitine supplementation: Used in dogs with dilated cardiomyopathy to improve "
"fatty acid transport into cardiac mitochondria",
))
story.append(warn_box(
"Exam Alert",
"Remember: Activation uses 2 high-energy phosphates (ATP → AMP + PPi, equivalent to −2 ATP)",
"FADH₂ from β-oxidation feeds directly into Complex II of ETC (bypasses Complex I) → 1.5 ATP each",
"Odd-chain fatty acids (propionyl-CoA → succinyl-CoA via Vit B12) — glucogenic, "
"important in ruminants (propionate from rumen)",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 5 — TCA CYCLE
# ════════════════════════════════════════════════════════════════
story.append(section_header("5. TCA (Krebs / Citric Acid) Cycle", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> The TCA cycle is a series of 8 enzyme-catalysed reactions in "
"the <b>mitochondrial matrix</b> that completely oxidise <b>Acetyl-CoA</b> to CO₂, "
"capturing energy as NADH, FADH₂, and GTP.", BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(img("tca_cycle.png", width_cm=13))
story.append(Paragraph(
"Fig 5. Complete TCA (Krebs) Cycle showing all 8 steps, enzymes, cofactors, and "
"inhibitors (red lines: Fluoroacetate blocks Aconitase; Arsenite blocks α-KG DH; "
"Malonate blocks Succinate DH). — Harper's Illustrated Biochemistry 32e, Fig. 16-3",
CAPTION_STYLE))
story.append(key_table(
["Step", "Reaction", "Enzyme", "Energy"],
[
["1", "OAA (4C) + Acetyl-CoA (2C) → Citrate (6C)", "Citrate synthase", "—"],
["2", "Citrate → cis-Aconitate → Isocitrate", "Aconitase (Fe²⁺)", "—"],
["3", "Isocitrate → Oxalosuccinate → α-KG + CO₂", "Isocitrate DH (Mn²⁺)", "1 NADH"],
["4", "α-KG (5C) → Succinyl-CoA (4C) + CO₂", "α-KG DH complex (TPP, Lipoate, FAD)", "1 NADH"],
["5", "Succinyl-CoA → Succinate", "Succinyl-CoA synthetase (Mg²⁺)", "1 GTP"],
["6", "Succinate → Fumarate", "Succinate DH (Complex II of ETC)", "1 FADH₂"],
["7", "Fumarate + H₂O → L-Malate", "Fumarase", "—"],
["8", "L-Malate → OAA", "Malate dehydrogenase", "1 NADH"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(key_table(
["Product per turn", "Number", "ATP equivalent", "Cumulative"],
[
["NADH (Steps 3,4,8)", "3", "× 2.5 = 7.5 ATP", "7.5"],
["FADH₂ (Step 6)", "1", "× 1.5 = 1.5 ATP", "9.0"],
["GTP (Step 5)", "1", "= 1 ATP", "10.0"],
["TOTAL per turn", "", "", "~10 ATP"],
["CO₂ released", "2", "—", "Metabolic waste"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"Acetonaemia/ketosis in dairy cattle: Negative energy balance → OAA diverted to "
"gluconeogenesis → TCA cycle slows → Acetyl-CoA accumulates → ketogenesis. "
"Blood glucose <2.2 mmol/L + BOHB >3 mmol/L = diagnosis",
"Fluoroacetate (compound 1080) poisoning: Used as rodenticide; highly toxic to dogs, "
"cats, foxes, livestock. Fluoroacetate → fluorocitrate → irreversibly blocks Aconitase "
"→ citrate accumulates → TCA stops → cardiac arrest. No antidote; supportive care only",
"Arsenite toxicity (arsenic poisoning in livestock from dipping vats, pasture): "
"Inhibits α-KG dehydrogenase → TCA blocked → energy failure in heart and nervous system",
"Thiamin (Vit B1) deficiency: α-KG DH complex requires TPP (thiamin pyrophosphate). "
"Deficiency in ruminants (polioencephalomalacia) and horses (bracken fern toxicity) "
"→ TCA impaired → brain energy failure. Treatment: IV thiamin",
"Succinate dehydrogenase is Complex II of ETC — important junction between TCA and OXPHOS",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 6 — GLYCOGENOLYSIS
# ════════════════════════════════════════════════════════════════
story.append(section_header("6. Glycogenolysis", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> Glycogenolysis is the enzymatic <b>degradation of stored glycogen</b> "
"to yield glucose (liver) or glucose-6-phosphate (muscle). It is NOT the reverse of "
"glycogen synthesis — it uses entirely different enzymes.", BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(img("glycogenolysis.png", width_cm=13))
story.append(Paragraph(
"Fig 6. Steps in Glycogenolysis: Phosphorylase cleaves α-1,4 bonds → Glucan transferase "
"moves trisaccharide to expose branch → Debranching enzyme cleaves α-1,6 bond releasing "
"free glucose. Blue = α-1,4 linked glucose; Orange = branch glucose; "
"Branch point = α-1,6 bond. — Harper's Illustrated Biochemistry 32e, Fig. 18-4",
CAPTION_STYLE))
story.append(key_table(
["Step", "Enzyme", "Bond cleaved", "Product"],
[
["1. Chain shortening", "Glycogen phosphorylase (needs PLP)", "α-1,4 (phosphorolysis)", "Glucose-1-phosphate"],
["2. Branch transfer", "Glucan transferase (part of debranching enzyme)", "Transfers 3 units", "Exposed α-1,6 branch"],
["3. Branch removal", "α-1,6-Glucosidase (debranching enzyme)", "α-1,6 (hydrolysis)", "Free glucose (unphosphorylated!)"],
["4. Isomerisation", "Phosphoglucomutase", "—", "Glucose-6-phosphate"],
["5. Liver only", "Glucose-6-phosphatase (ER membrane)", "—", "Free glucose → blood"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(key_table(
["Hormone/Signal", "Mechanism", "Tissue", "Effect"],
[
["Glucagon (low blood glucose)", "↑cAMP → PKA → Phosphorylase kinase → Phosphorylase b→a", "Liver", "↑ Glycogenolysis; glucose released to blood"],
["Epinephrine (stress/exercise)", "Same cAMP cascade + Ca²⁺", "Liver + Muscle", "↑ Glycogenolysis for fight-or-flight"],
["Ca²⁺ (muscle contraction)", "Directly activates phosphorylase kinase", "Muscle", "↑ Glycogenolysis during exercise"],
["AMP (low ATP)", "Allosteric activation of phosphorylase b", "Muscle", "↑ Glycogenolysis when energy low"],
["Insulin (fed state)", "Activates phosphatase → dephosphorylates phosphorylase", "Both", "↓ Glycogenolysis; ↑ Glycogen synthesis"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"Neonatal hypoglycaemia (piglets, lambs, foals): At birth, umbilical cord clamped → "
"maternal glucose supply cut → epinephrine + glucagon activate glycogenolysis to restore "
"blood glucose. Neonates with limited glycogen stores → fatal hypoglycaemia within hours. "
"Rx: Oral or IV glucose",
"Glycogen Storage Diseases (GSD) — Pompe disease (GSD Type II) in Brahman cattle: "
"Acid maltase (lysosomal α-glucosidase) deficiency → glycogen accumulates in muscle "
"and heart → cardiomyopathy, muscle weakness, respiratory failure",
"GSD Type III (Debranching enzyme deficiency): Reported in German Shepherds → "
"cannot debranch → glycogen accumulates → hypoglycaemia + hepatomegaly",
"Capture myopathy in wild animals: Epinephrine surge → rapid glycogenolysis → "
"glucose used for intense muscle work → lactate + glycogen depletion → muscle necrosis",
"Hypoglycaemia in toy breed dogs (Chihuahuas, Yorkshire Terriers): "
"Limited hepatic glycogen stores; stress → rapid glycogen depletion → seizures",
"Diabetes mellitus in dogs/cats: Glucagon dominance → unregulated glycogenolysis "
"→ persistent hyperglycaemia despite glucose excess",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# SECTION 7 — ENZYME-SUBSTRATE COMPLEX
# ════════════════════════════════════════════════════════════════
story.append(section_header("7. Enzyme-Substrate Complex Formation", MED_BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> The enzyme-substrate (ES) complex is the transient molecular "
"association formed when a substrate binds to the <b>active site</b> of an enzyme, "
"preceding catalysis: <b>E + S ⇌ ES → E + P</b>", BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("<b>Active site hydrogen bonding (basis of specificity):</b>", SUBSEC_STYLE))
story.append(img("es_hbonds.png", width_cm=11))
story.append(Paragraph(
"Fig 7a. Glucose binding site in glucokinase — each -OH of glucose (red) is held by "
"specific H-bonds (dashed) to Asp-205, Asn-204, Asn-231, Glu-256, Glu-290, Gly-229. "
"Panel B: Galactose (differs by one -OH) is NOT phosphorylated → explains enzyme "
"specificity. — Basic Medical Biochemistry 6e, Fig. 8.5",
CAPTION_STYLE))
story.append(Paragraph("<b>Induced Fit Model — Before and After substrate binding:</b>", SUBSEC_STYLE))
# side by side images
before_img = img("es_before.png", width_cm=7)
after_img = img("es_after.png", width_cm=7)
side_tbl = Table([[before_img, after_img]], colWidths=[8*cm, 8*cm])
side_tbl.setStyle(TableStyle([
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
]))
story.append(side_tbl)
story.append(Paragraph(
"Fig 7b (left): Glucokinase BEFORE binding — open cleft, substrate approaching. "
"Fig 7c (right): AFTER binding — cleft closes around glucose (red sphere) "
"= Induced Fit. — Basic Medical Biochemistry 6e, Fig. 8.6",
CAPTION_STYLE))
story.append(key_table(
["Model", "Proposed by", "Concept", "Status"],
[
["Lock and Key", "Emil Fischer, 1894",
"Enzyme has rigid pre-formed active site; substrate fits exactly like key in lock",
"Outdated — does not explain enzyme flexibility"],
["Induced Fit", "Daniel Koshland, 1958",
"Substrate binding induces conformational change in enzyme; cleft closes, "
"improving catalysis, improving co-substrate binding, excluding water",
"Currently accepted model"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(key_table(
["Stabilising Force", "Example in Glucokinase ES complex"],
[
["Hydrogen bonds", "Each -OH of glucose H-bonds to Asp, Asn, Glu, Gly residues"],
["Electrostatic interactions", "Charged Asp/Glu attract polar glucose -OH groups"],
["Hydrophobic interactions", "Non-polar regions of substrate near hydrophobic pockets"],
["Van der Waals forces", "Short-range attractive forces at close contact"],
["Transient covalent bonds", "Serine proteases (trypsin) — acyl-enzyme intermediate"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications",
"Organophosphate (OP) poisoning (cattle, dogs, sheep from pesticide/dip tank exposure): "
"OP covalently binds Serine in active site of acetylcholinesterase (AChE) → ES complex "
"permanently blocked → ACh accumulates at synapses → SLUD signs "
"(Salivation, Lacrimation, Urination, Defaecation) + bradycardia, miosis, seizures. "
"Treatment: Atropine (competitive blocker) + Pralidoxime/2-PAM (reactivates AChE if given early)",
"Competitive enzyme inhibitors: Many drugs work by mimicking substrate to occupy active "
"site — e.g., allopurinol (xanthine oxidase inhibitor) used in Dalmatians for urate urolithiasis",
"Substrate specificity explained by ES complex: Glucokinase phosphorylates glucose but "
"NOT galactose (differs by one -OH) → explains galactosaemia pathology in calves",
"Km and Vmax: Derived from ES complex kinetics. High Km = weak substrate binding. "
"Low Km = tight binding = high affinity. Clinically, enzyme Km determines drug dosing "
"interactions in liver metabolism",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# BONUS — OXIDATIVE PHOSPHORYLATION
# ════════════════════════════════════════════════════════════════
story.append(section_header("BONUS: Oxidative Phosphorylation (OXPHOS)", HexColor("#5a1e82")))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Definition:</b> Oxidative phosphorylation is the process by which ATP is synthesised "
"from ADP + Pi, driven by the energy of electron flow through the mitochondrial electron "
"transport chain (ETC) coupled to the proton-motive force (Mitchell's chemiosmotic theory).",
BODY_STYLE))
story.append(Spacer(1, 0.2*cm))
story.append(img("oxphos.png", width_cm=15))
story.append(Paragraph(
"Fig 8. Complete Oxidative Phosphorylation concept map and ETC diagram. "
"TCA + β-oxidation → NADH/FADH₂ → ETC (Complexes I-IV) → H⁺ pumped out → "
"gradient drives ATP synthase (Complex V). — Lippincott Biochemistry 8e, Fig. 6.18",
CAPTION_STYLE))
story.append(key_table(
["Complex", "Name", "Electron carrier", "H⁺ pumped", "Inhibitor"],
[
["I", "NADH-CoQ reductase", "NADH → FMN → Fe-S → CoQ", "4 H⁺", "Rotenone (insecticide); Amytal"],
["II", "Succinate-CoQ reductase", "FADH₂ → Fe-S → CoQ", "0 H⁺", "Malonate (competitive)"],
["III", "CoQ-Cyt c reductase", "CoQ → Cyt b → Fe-S → Cyt c₁ → Cyt c", "4 H⁺", "Antimycin A"],
["IV", "Cytochrome c oxidase", "Cyt c → CuA → Haem a → CuB/Haem a3 → O₂", "2 H⁺", "Cyanide, CO, Azide"],
["V", "ATP synthase (F₀F₁)", "H⁺ flows back in", "—", "Oligomycin (blocks F₀)"],
["Uncouplers", "Dissipate gradient without ATP", "DNP, Thermogenin (UCP1)", "—", "Heat produced instead of ATP"],
]
))
story.append(Spacer(1, 0.2*cm))
story.append(vet_box(
"Veterinary Clinical Applications — Oxidative Phosphorylation",
"Cyanide toxicity (cattle from sorghum/sudangrass/wild cherry leaves; dogs from "
"smoke inhalation): CN⁻ binds Complex IV (cytochrome oxidase) → blocks O₂ reduction "
"→ OXPHOS stops → histotoxic hypoxia → bright red venous blood (oxyHb not used). "
"Treatment: Sodium nitrite + sodium thiosulphate (cattle); hydroxocobalamin (dogs)",
"Carbon monoxide (CO) poisoning (animals in barn fires, faulty heaters): CO blocks "
"Complex IV + binds Hb → double impairment of O₂ delivery and utilisation",
"Rotenone: Natural insecticide/piscicide, inhibits Complex I. Toxic to fish and "
"insects; used in aquaculture. Toxic to dogs and cats if ingested",
"Thermogenin (UCP1) in brown adipose tissue: Present in neonatal lambs, piglets, "
"foals, calves — uncouples OXPHOS to generate heat instead of ATP. "
"Critical for thermoregulation at birth in cold environments",
"Mitochondrial myopathies in horses and dogs: Defects in ETC complexes → exercise "
"intolerance, lactic acidosis, muscle weakness",
"ATP yield summary: NADH=2.5 ATP, FADH₂=1.5 ATP; 1 glucose → ~30-32 ATP total",
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════════
# QUICK REVISION TABLE (last page)
# ════════════════════════════════════════════════════════════════
story.append(section_header("QUICK REVISION — Complete Summary Table", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))
story.append(key_table(
["Topic", "Key Enzyme(s)", "Key Product(s)", "ATP Yield", "Vet Relevance"],
[
["Cori Cycle",
"LDH, Glucokinase, G6Pase",
"Glucose ↔ Lactate",
"Net −4 ATP",
"Exercise lactate; capture myopathy; neonatal asphyxia"],
["Transamination",
"ALT (GPT), AST (GOT)",
"Glutamate + α-keto acid",
"—",
"ALT elevated in dog/cat liver disease; AST in horse muscle/liver"],
["Oxidative Deamination",
"GDH (mitochondrial)",
"α-KG + NH₃ + NADH",
"+1 NADH",
"GDH elevated in ruminant hepatocellular necrosis; hepatic encephalopathy"],
["Temp/pH effects",
"All enzymes",
"Optimum bell curve",
"—",
"Rumen acidosis; heat stroke; pancreatitis in dogs"],
["β-Oxidation",
"Acyl-CoA DH, Enoyl hydratase, HADH, Thiolase",
"Acetyl-CoA + NADH + FADH₂",
"106 ATP (palmitate)",
"Ketosis (cows/ewes); feline hepatic lipidosis; carnitine deficiency"],
["TCA Cycle",
"Citrate synthase, Isocitrate DH, α-KG DH, Succinate DH, Malate DH",
"3NADH + 1FADH₂ + 1GTP + 2CO₂",
"~10 ATP/turn",
"Ketosis; fluoroacetate poisoning; thiamin deficiency; arsenic toxicity"],
["Glycogenolysis",
"Glycogen phosphorylase, Debranching enzyme, G6Pase",
"Glucose (liver) / G-6-P (muscle)",
"No ATP cost",
"Neonatal hypoglycaemia; GSD in Brahman cattle; diabetes mellitus"],
["ES Complex",
"Enzyme-specific",
"Transition state complex",
"—",
"OP poisoning (AChE inhibition); allopurinol in Dalmatians; drug interactions"],
["Oxidative Phosphorylation",
"Complexes I-IV + ATP Synthase (V)",
"ATP + H₂O",
"~30-32 ATP/glucose",
"Cyanide poisoning; CO toxicity; thermogenin in neonates; mitochondrial myopathy"],
]
))
story.append(Spacer(1, 0.5*cm))
story.append(Paragraph(
"<b>Sources:</b> Lippincott Illustrated Reviews Biochemistry 8e • "
"Harper's Illustrated Biochemistry 32e • Basic Medical Biochemistry 6e • "
"Guyton & Hall Textbook of Medical Physiology • Goldman-Cecil Medicine",
DATE_STYLE))
# ── BUILD ─────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUT_PATH,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2.5*cm,
title="Vet Biochemistry — Diagrams & Clinical Applications",
author="Orris AI",
subject="Veterinary Biochemistry Exam Reference",
)
doc.build(story, canvasmaker=NumberedCanvas)
print(f"PDF created: {OUT_PATH}")
cd /home/daytona/workspace/vet-biochem-pdf && python build_pdf.py 2>&1
NumberedCanvas class.~/vet-biochem-pdf/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/vet-biochem-pdf/build_pdf.py'
cd /home/daytona/workspace/vet-biochem-pdf && python build_pdf.py 2>&1
ls -lh /home/daytona/workspace/vet-biochem-pdf/Vet_Biochemistry_Diagrams_Clinical.pdf
Vet Biochemistry Diagrams Clinical
PDF Document · PDF
| Section | Content |
|---|---|
| Cover page | Colour-coded topic index with all Q.6 and Q.7 headings |
| 1. Cori Cycle | Textbook diagram + ATP balance table + 4 vet clinical cases |
| 2. Deamination | Transamination (ALT/AST) diagram + GDH oxidative deamination diagram + enzyme table + vet cases (ALT/GDH in liver disease) |
| 3. Temp & pH | Custom dual-graph diagram + enzyme pH optimum table + rumen acidosis, pancreatitis, heat stroke cases |
| 4. β-Oxidation | Full pathway diagram + chemical equations diagram + step table + energy yield table + ketosis/hepatic lipidosis/carnitine deficiency cases |
| 5. TCA Cycle | Complete Krebs cycle diagram (with inhibitor sites) + 8-step table + energy table + fluoroacetate/thiamin/arsenite poisoning cases |
| 6. Glycogenolysis | Step-by-step glycogen debranching diagram + enzyme table + hormonal regulation table + neonatal hypoglycaemia/GSD/diabetes cases |
| 7. ES Complex | Active site H-bond diagram + before/after induced fit diagrams side by side + Lock-and-Key vs Induced Fit table + OP poisoning/allopurinol cases |
| Bonus: OXPHOS | Full ETC concept map + Complex I-V table with inhibitors + cyanide/CO/thermogenin/rotenone vet cases |
| Last page | Master quick-revision table — all 9 topics in one view |
give me the pdf again
Vet Biochemistry Diagrams Clinical
PDF Document · PDF
Create a second PDF with all answer for all questions mwntioned above with diagram if there
ls -lh /home/daytona/workspace/vet-biochem-pdf/images/ && echo "---" && ls /home/daytona/workspace/vet-biochem-pdf/
~/vet-biochem-pdf/build_answers_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Image,
Table, TableStyle, PageBreak, HRFlowable)
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor
from PIL import Image as PILImage
import os
IMG_DIR = "/home/daytona/workspace/vet-biochem-pdf/images"
OUT_PATH = "/home/daytona/workspace/vet-biochem-pdf/Vet_Biochem_Complete_Answers.pdf"
W, H = A4
# ── Palette ──────────────────────────────────────────────────────
DARK_BLUE = HexColor("#1a3a5c")
MED_BLUE = HexColor("#2e6da4")
LIGHT_BLUE = HexColor("#dce8f5")
DARK_GREEN = HexColor("#1a5c2a")
MED_GREEN = HexColor("#2e8a42")
LIGHT_GREEN = HexColor("#e0f4e4")
GOLD = HexColor("#b8860b")
LIGHT_GOLD = HexColor("#fdf6dc")
PURPLE = HexColor("#5a1e82")
LIGHT_PURP = HexColor("#f0e6fa")
WARN_RED = HexColor("#b22222")
LIGHT_RED = HexColor("#fde8e8")
MID_GRAY = HexColor("#777777")
LIGHT_GRAY = HexColor("#f8f8f8")
styles = getSampleStyleSheet()
def PS(base="Normal", **kw):
return ParagraphStyle("x"+str(hash(str(kw))), parent=styles.get(base, styles["Normal"]), **kw)
# ── Styles ───────────────────────────────────────────────────────
TITLE_S = PS("Title", fontSize=28, textColor=DARK_BLUE, alignment=TA_CENTER,
fontName="Helvetica-Bold", spaceAfter=6)
SUB_S = PS("Normal", fontSize=12, textColor=MED_BLUE, alignment=TA_CENTER,
fontName="Helvetica", spaceAfter=4)
DATE_S = PS("Normal", fontSize=8, textColor=MID_GRAY, alignment=TA_CENTER,
fontName="Helvetica-Oblique")
Q_HEAD_S = PS("Normal", fontSize=13, textColor=colors.white, fontName="Helvetica-Bold",
leading=18, spaceAfter=0)
ANS_HEAD_S= PS("Normal", fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold",
spaceBefore=6, spaceAfter=3, leading=15)
SUBHEAD_S = PS("Normal", fontSize=10, textColor=MED_BLUE, fontName="Helvetica-Bold",
spaceBefore=4, spaceAfter=2, leading=13)
BODY_S = PS("Normal", fontSize=9, textColor=colors.black, fontName="Helvetica",
leading=13, spaceBefore=2, spaceAfter=2, alignment=TA_JUSTIFY)
BULLET_S = PS("Normal", fontSize=9, textColor=colors.black, fontName="Helvetica",
leading=12, spaceBefore=1, spaceAfter=1, leftIndent=14)
FORMULA_S = PS("Normal", fontSize=9, textColor=DARK_GREEN, fontName="Helvetica-Bold",
leading=13, spaceBefore=2, spaceAfter=2, leftIndent=10)
CAPTION_S = PS("Normal", fontSize=7.5,textColor=MID_GRAY, fontName="Helvetica-Oblique",
alignment=TA_CENTER, spaceBefore=1, spaceAfter=5)
TH_S = PS("Normal", fontSize=8, textColor=colors.white, fontName="Helvetica-Bold",
alignment=TA_CENTER)
TD_S = PS("Normal", fontSize=8, textColor=colors.black, fontName="Helvetica",
alignment=TA_LEFT, leading=11)
TD_C_S = PS("Normal", fontSize=8, textColor=colors.black, fontName="Helvetica",
alignment=TA_CENTER, leading=11)
MARK_S = PS("Normal", fontSize=9, textColor=GOLD, fontName="Helvetica-Bold",
alignment=TA_CENTER)
# ── Helpers ──────────────────────────────────────────────────────
def get_img(fname, max_w_cm=14, max_h_cm=16):
path = os.path.join(IMG_DIR, fname)
if not os.path.exists(path):
return Paragraph(f"[Image missing: {fname}]", BODY_S)
pil = PILImage.open(path)
iw, ih = pil.size
ratio = ih / iw
w = max_w_cm * cm
h = w * ratio
if h > max_h_cm * cm:
h = max_h_cm * cm
w = h / ratio
return Image(path, width=w, height=h, hAlign="CENTER")
def q_banner(text, bg=DARK_BLUE):
row = [Paragraph(text, Q_HEAD_S)]
t = Table([row], colWidths=[W - 4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 7),
("BOTTOMPADDING", (0,0),(-1,-1), 7),
("LEFTPADDING", (0,0),(-1,-1), 12),
]))
return t
def marks_tag(marks):
return Paragraph(f"[{marks}]", MARK_S)
def info_box(title, lines, bg=LIGHT_BLUE, border=MED_BLUE, tc=DARK_BLUE):
content = [Paragraph(f"<b>{title}</b>",
PS("Normal", fontSize=9, textColor=tc, fontName="Helvetica-Bold", leading=13))]
for l in lines:
content.append(Paragraph(f"• {l}", PS("Normal", fontSize=8.5, textColor=colors.black,
fontName="Helvetica", leading=12)))
t = Table([[content]], colWidths=[W - 4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("BOX", (0,0),(-1,-1), 1.5, border),
("TOPPADDING", (0,0),(-1,-1), 6),
("BOTTOMPADDING", (0,0),(-1,-1), 6),
("LEFTPADDING", (0,0),(-1,-1), 8),
("RIGHTPADDING", (0,0),(-1,-1), 8),
]))
return t
def vet_box(title, *lines):
return info_box(f"🐾 Vet Relevance — {title}", list(lines),
bg=LIGHT_GREEN, border=MED_GREEN, tc=DARK_GREEN)
def warn_box(title, *lines):
return info_box(f"⚠ Exam Tip — {title}", list(lines),
bg=LIGHT_RED, border=WARN_RED, tc=WARN_RED)
def def_box(title, defn):
return info_box(f"Definition: {title}", [defn],
bg=LIGHT_GOLD, border=GOLD, tc=GOLD)
def make_table(headers, rows, col_widths=None):
data = [[Paragraph(h, TH_S) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), TD_S) for c in row])
cw = col_widths if col_widths else [(W - 4*cm)/len(headers)]*len(headers)
t = Table(data, colWidths=cw, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), MED_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1), [colors.white, LIGHT_BLUE]),
("GRID", (0,0),(-1,-1), 0.4, HexColor("#bbbbbb")),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING", (0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 5),
("VALIGN", (0,0),(-1,-1), "TOP"),
]))
return t
def sp(h=0.25): return Spacer(1, h*cm)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=LIGHT_BLUE,
spaceBefore=4, spaceAfter=4)
def pb(): return PageBreak()
# ── Numbered canvas ───────────────────────────────────────────────
class NC(canvas.Canvas):
def __init__(self, *a, **kw):
super().__init__(*a, **kw)
self._pages = []
self._pn = 0
def showPage(self):
self._pn += 1
self._pages.append(dict(self.__dict__))
self._startPage()
def save(self):
n = len(self._pages)
for i, st in enumerate(self._pages):
self.__dict__.update(st)
self._draw_footer(i+1, n)
canvas.Canvas.showPage(self)
canvas.Canvas.save(self)
def _draw_footer(self, pn, total):
self.setFont("Helvetica", 7.5)
self.setFillColor(MID_GRAY)
self.drawString(2*cm, 1.1*cm, "Vet Biochemistry — Complete Answers | Q.5, Q.6, Q.7")
self.drawRightString(W-2*cm, 1.1*cm, f"Page {pn} of {total}")
self.setStrokeColor(LIGHT_BLUE)
self.setLineWidth(0.5)
self.line(2*cm, 1.4*cm, W-2*cm, 1.4*cm)
# ═════════════════════════════════════════════════════════════════
# BUILD STORY
# ═════════════════════════════════════════════════════════════════
story = []
# ── COVER ────────────────────────────────────────────────────────
story += [sp(3)]
story.append(Paragraph("VET BIOCHEMISTRY", TITLE_S))
story.append(Paragraph("Complete Exam Answers with Diagrams", SUB_S))
story += [sp(0.3)]
story.append(HRFlowable(width="55%", thickness=2.5, color=GOLD, hAlign="CENTER",
spaceBefore=4, spaceAfter=4))
story += [sp(0.3)]
story.append(Paragraph("Q.No.5 | Q.No.6 | Q.No.7", SUB_S))
story += [sp(0.5)]
cover_rows = [
("Q.5", "Definitions (2 × 5 = 10 marks)",
"Intermediary Metabolism • Turnover Number • Specific Activity • Coenzymes • Oxidative Phosphorylation"),
("Q.6", "Short Notes — Any Two (2.5 × 2 = 5 marks)",
"Cori Cycle • Deamination of Amino Acids • Effects of Temperature & pH on Enzyme Activity"),
("Q.7", "Brief Descriptions — Any Three (5 × 3 = 15 marks)",
"β-Oxidation • TCA Cycle • Glycogenolysis • Enzyme-Substrate Complex Formation"),
]
for qn, title, topics in cover_rows:
story.append(Table([[
Paragraph(f"<b>{qn}</b>", PS("Normal", fontSize=11, textColor=colors.white,
fontName="Helvetica-Bold", alignment=TA_CENTER)),
[Paragraph(f"<b>{title}</b>", PS("Normal", fontSize=10, textColor=DARK_BLUE,
fontName="Helvetica-Bold")),
Paragraph(topics, PS("Normal", fontSize=8.5, textColor=MID_GRAY,
fontName="Helvetica-Oblique"))]
]], colWidths=[1.8*cm, W-5.8*cm],
style=TableStyle([
("BACKGROUND", (0,0),(0,-1), MED_BLUE),
("BACKGROUND", (1,0),(1,-1), LIGHT_GRAY),
("BOX", (0,0),(-1,-1), 1, MED_BLUE),
("TOPPADDING", (0,0),(-1,-1), 8),
("BOTTOMPADDING", (0,0),(-1,-1), 8),
("LEFTPADDING", (0,0),(-1,-1), 8),
("VALIGN", (0,0),(-1,-1), "MIDDLE"),
])))
story.append(sp(0.15))
story += [sp(1)]
story.append(Paragraph("Sources: Lippincott Illustrated Reviews Biochemistry 8e • Harper's Illustrated "
"Biochemistry 32e • Basic Medical Biochemistry 6e • Guyton & Hall Physiology",
DATE_S))
story.append(pb())
# ═════════════════════════════════════════════════════════════════
# Q.No.5 — DEFINITIONS
# ═════════════════════════════════════════════════════════════════
story.append(q_banner("Q.No.5 Define the following (2 × 5 = 10 marks)", DARK_BLUE))
story += [sp(0.3)]
# ── i. Intermediary Metabolism ────────────────────────────────────
story.append(ANS_HEAD_S and Paragraph("<b>i. Intermediary Metabolism</b>", ANS_HEAD_S))
story.append(def_box("Intermediary Metabolism",
"The totality of chemical reactions occurring in living cells that involve the "
"breakdown (catabolism) and synthesis (anabolism) of molecules, and the "
"interconversion of metabolic intermediates linking carbohydrate, lipid, and "
"amino acid metabolism."))
story += [sp(0.15)]
story.append(Paragraph(
"Intermediary metabolism refers to the reactions that connect the major metabolic pathways. "
"It is the 'metabolic crossroads' of the cell.", BODY_S))
story.append(Paragraph("<b>Key features:</b>", SUBHEAD_S))
for pt in [
"Occurs in all living cells; regulated by enzyme phosphorylation, allosteric control, and hormones",
"Central hub = <b>Acetyl-CoA</b>, which links glycolysis, fatty acid oxidation, and amino acid catabolism",
"Key intermediates: Pyruvate, Acetyl-CoA, Oxaloacetate, Glucose-6-phosphate, α-Ketoglutarate",
"Pathways are interconvertible: Glucose → Fatty acids; Amino acid carbons → TCA cycle intermediates",
"<b>Vet note:</b> In ruminants, intermediary metabolism revolves around propionate (from rumen fermentation) → gluconeogenesis, rather than dietary glucose as in monogastrics",
]:
story.append(Paragraph(f"• {pt}", BULLET_S))
story += [sp(0.3)]
story.append(hr())
# ── ii. Turnover Number ───────────────────────────────────────────
story.append(Paragraph("<b>ii. Turnover Number (k<sub>cat</sub>)</b>", ANS_HEAD_S))
story.append(def_box("Turnover Number (kcat)",
"The number of substrate molecules converted to product per enzyme molecule "
"(or per active site) per unit time (per second), when the enzyme is fully "
"saturated with substrate at Vmax."))
story += [sp(0.15)]
story.append(Paragraph("<b>Formula:</b>", SUBHEAD_S))
story.append(Paragraph("k<sub>cat</sub> = V<sub>max</sub> / [E<sub>t</sub>] "
"(where E<sub>t</sub> = total enzyme concentration)", FORMULA_S))
story.append(Paragraph("k<sub>cat</sub> = V<sub>max</sub> / S<sub>t</sub> "
"(where S<sub>t</sub> = total active sites)", FORMULA_S))
story += [sp(0.1)]
story.append(make_table(
["Parameter", "Value / Detail"],
[
["Units", "reactions per second (s⁻¹) or per minute (min⁻¹)"],
["Typical range (mammalian enzymes)", "10² to 10⁴ s⁻¹"],
["Carbonic anhydrase (fastest)", "~4 × 10⁵ s⁻¹ — one of the fastest known enzymes"],
["Lysozyme (slowest common)", "~0.5 s⁻¹ (2 seconds per reaction)"],
["Acetylcholinesterase", "~14,000 s⁻¹"],
["Catalytic efficiency", "kcat / Km — best measure of enzyme performance"],
["Diffusion-limited enzymes", "kcat/Km approaches 10⁸–10¹⁰ M⁻¹s⁻¹ (catalytically perfect)"],
],
col_widths=[7*cm, 9*cm]
))
story += [sp(0.15)]
story.append(vet_box("Turnover Number",
"Organophosphate poisoning in cattle, dogs, sheep: OP compounds covalently inhibit "
"acetylcholinesterase (AChE), reducing its effective kcat to near zero → ACh accumulates "
"→ SLUD syndrome. Treatment: Pralidoxime (2-PAM) reactivates AChE if given early",
"Measuring kcat helps evaluate enzyme deficiencies in Glycogen Storage Diseases "
"(e.g., low phosphorylase kcat in GSD Type V — McArdle disease in horses/dogs)",
))
story += [sp(0.3)]
story.append(hr())
# ── iii. Specific Activity ────────────────────────────────────────
story.append(Paragraph("<b>iii. Specific Activity</b>", ANS_HEAD_S))
story.append(def_box("Specific Activity",
"The enzyme activity (units of catalytic activity) per milligram of total protein "
"in a preparation. It is a measure of enzyme purity — the higher the specific "
"activity, the purer the enzyme."))
story += [sp(0.15)]
story.append(Paragraph("<b>Formula:</b>", SUBHEAD_S))
story.append(Paragraph("Specific Activity = V<sub>max</sub> (or enzyme units) / mg total protein",
FORMULA_S))
story.append(Paragraph("<b>Units:</b> μmol substrate/min/mg protein OR U/mg OR nmol/min/mg",
FORMULA_S))
story += [sp(0.1)]
story.append(make_table(
["Term", "Formula", "Meaning"],
[
["Total Activity", "Units × total volume (mL)", "Total enzyme present in whole preparation"],
["Specific Activity", "Units / mg total protein", "Purity indicator — rises as enzyme is purified"],
["Turnover Number", "Vmax / [Et]", "Speed of catalysis by pure enzyme"],
["Pure enzyme", "Highest possible specific activity", "All protein present is the enzyme of interest"],
],
col_widths=[4.5*cm, 5.5*cm, 6*cm]
))
story += [sp(0.15)]
story.append(Paragraph("<b>Purification steps and specific activity:</b>", SUBHEAD_S))
story.append(Paragraph(
"As enzyme is purified (e.g., ammonium sulfate precipitation → dialysis → "
"ion-exchange chromatography → affinity chromatography), total protein decreases "
"while enzyme activity is preserved → specific activity increases progressively.",
BODY_S))
story.append(vet_box("Specific Activity",
"Clinical enzyme assays in vet diagnostics (ALT, AST, ALP, CK, LDH, GGT, GDH) are "
"reported in U/L (units per litre of serum) — analogous to specific activity",
"Elevated ALT specific activity in dogs/cats → hepatocyte damage (hepatitis, lipidosis, toxins)",
"Elevated CK (creatine kinase) → muscle damage in horses (tying-up), cattle, dogs",
"GDH most specific for hepatocellular necrosis in ruminants (cattle, sheep)",
))
story += [sp(0.3)]
story.append(hr())
# ── iv. Coenzymes ─────────────────────────────────────────────────
story.append(Paragraph("<b>iv. Coenzymes</b>", ANS_HEAD_S))
story.append(def_box("Coenzymes",
"Small, nonprotein organic molecules that associate with certain enzymes and are "
"essential for their catalytic activity. They act as carriers of specific chemical "
"groups, electrons, hydrogen atoms, or atoms from one reaction to another."))
story += [sp(0.15)]
story.append(Paragraph("<b>Key terminology:</b>", SUBHEAD_S))
story.append(make_table(
["Term", "Definition"],
[
["Apoenzyme", "Inactive protein portion of an enzyme alone (without cofactor)"],
["Cofactor", "Nonprotein component required for activity (metal ion OR organic molecule)"],
["Holoenzyme", "Apoenzyme + Cofactor = ACTIVE, functional enzyme"],
["Coenzyme", "Small organic cofactor; transiently associated; dissociates after reaction (e.g., NAD⁺)"],
["Prosthetic group", "Coenzyme permanently/covalently bound to enzyme (e.g., FAD, biotin)"],
],
col_widths=[4.5*cm, 11.5*cm]
))
story += [sp(0.2)]
story.append(Paragraph("<b>Classification of coenzymes:</b>", SUBHEAD_S))
story.append(make_table(
["Coenzyme", "Derived from", "Function", "Example enzyme"],
[
["NAD⁺/NADH", "Niacin (Vit B3)", "Oxidation-reduction (electron carrier)", "LDH, GDH, Malate DH"],
["FAD/FADH₂", "Riboflavin (Vit B2)", "Oxidation-reduction (electron carrier)", "Succinate DH, Acyl-CoA DH"],
["NADP⁺/NADPH", "Niacin (Vit B3)", "Anabolic redox reactions", "G6P-DH, Fatty acid synthase"],
["Coenzyme A (CoA)", "Pantothenic acid (Vit B5)", "Acyl group transfer", "Citrate synthase, Thiolase"],
["Thiamin PPi (TPP)", "Thiamin (Vit B1)", "Aldehyde/ketone transfer; decarboxylation", "Pyruvate DH, α-KG DH"],
["Pyridoxal phosphate (PLP)", "Pyridoxine (Vit B6)", "Amino group transfer (transamination)", "ALT, AST"],
["Biotin", "Biotin (Vit B7)", "CO₂ transfer (carboxylation)", "Pyruvate carboxylase"],
["Tetrahydrofolate (THF)", "Folic acid (Vit B9)", "One-carbon group transfer", "Thymidylate synthase"],
["Cobalamin (Vit B12)", "Cobalamin", "Methyl group transfer; rearrangements", "Methylmalonyl-CoA mutase"],
],
col_widths=[3.8*cm, 3.2*cm, 4.5*cm, 4.5*cm]
))
story += [sp(0.15)]
story.append(vet_box("Coenzymes",
"Thiamin (Vit B1 / TPP) deficiency in ruminants → Polioencephalomalacia (PEM / "
"cerebrocortical necrosis): Pyruvate DH and α-KG DH require TPP → blocked → "
"brain energy failure → blindness, opisthotonus, seizures. Treat: IV thiamin",
"Riboflavin (Vit B2 / FAD) deficiency: Rare but causes dermatitis, peripheral "
"neuropathy in poultry; reduced β-oxidation and TCA cycle activity",
"Niacin (Vit B3 / NAD⁺) deficiency: 'Black tongue' in dogs (= pellagra equivalent); "
"Tryptophan can be converted to niacin in liver (cats cannot do this efficiently)",
"Vit B12 (cobalamin) deficiency in cobalt-deficient pastures: Methylmalonyl-CoA "
"mutase impaired → propionate metabolism blocked in ruminants → 'pine' disease in sheep",
))
story += [sp(0.3)]
story.append(hr())
# ── v. Oxidative Phosphorylation ──────────────────────────────────
story.append(Paragraph("<b>v. Oxidative Phosphorylation</b>", ANS_HEAD_S))
story.append(def_box("Oxidative Phosphorylation (OXPHOS)",
"The metabolic process by which ATP is synthesised from ADP and inorganic phosphate (Pi), "
"driven by the energy released during the transfer of electrons along the mitochondrial "
"electron transport chain (ETC) to molecular oxygen, coupled to the pumping of protons "
"across the inner mitochondrial membrane (Mitchell's Chemiosmotic Theory)."))
story += [sp(0.2)]
story.append(Paragraph("<b>Diagram — Oxidative Phosphorylation:</b>", SUBHEAD_S))
story.append(get_img("oxphos.png", max_w_cm=15, max_h_cm=13))
story.append(Paragraph(
"Fig. Oxidative Phosphorylation — ETC Complexes I–IV pump H⁺ from matrix to "
"intermembrane space; H⁺ re-enters via ATP synthase (Complex V) → ATP synthesis. "
"Source: Lippincott Illustrated Reviews Biochemistry 8e", CAPTION_S))
story += [sp(0.1)]
story.append(make_table(
["ETC Complex", "Name", "Inhibitor (Vet toxicology)"],
[
["Complex I", "NADH-CoQ reductase", "Rotenone (insecticide; toxic to fish, cats)"],
["Complex II", "Succinate-CoQ reductase", "Malonate (competitive inhibitor)"],
["Complex III","CoQ-Cyt c reductase", "Antimycin A"],
["Complex IV", "Cytochrome c oxidase", "Cyanide (CN⁻), Carbon monoxide (CO), Azide"],
["Complex V", "ATP synthase (F₀F₁)", "Oligomycin (blocks F₀ proton channel)"],
["Uncouplers", "Dissipate H⁺ gradient → heat instead of ATP",
"DNP (2,4-dinitrophenol); Thermogenin/UCP1 in neonatal brown fat"],
],
col_widths=[2.5*cm, 5.5*cm, 8*cm]
))
story += [sp(0.15)]
story.append(vet_box("Oxidative Phosphorylation",
"Cyanide toxicity (cattle/horses from sorghum, sudangrass, wild cherry): CN⁻ blocks "
"Complex IV → OXPHOS stops → bright red venous blood (oxyHb cannot unload O₂ as cells "
"cannot use it). Rx: Sodium nitrite + sodium thiosulphate",
"CO poisoning (barn fires, faulty heaters): Blocks Complex IV AND binds haemoglobin "
"→ dual impairment. Animals found dead or unconscious",
"Thermogenin (UCP1) in neonatal lambs, piglets, foals, calves: Uncouples OXPHOS "
"→ heat generation for thermoregulation at birth. Hypothermic neonates lack this reserve",
"ATP yield: NADH → 2.5 ATP; FADH₂ → 1.5 ATP; 1 glucose → ~30–32 ATP total",
))
story.append(pb())
# ═════════════════════════════════════════════════════════════════
# Q.No.6 — SHORT NOTES
# ═════════════════════════════════════════════════════════════════
story.append(q_banner("Q.No.6 Write short notes on Any TWO (2.5 × 2 = 5 marks)", MED_BLUE))
story += [sp(0.3)]
# ── 1. Cori Cycle ─────────────────────────────────────────────────
story.append(Paragraph("<b>1. Cori Cycle — Diagrammatic Representation</b>", ANS_HEAD_S))
story.append(def_box("Cori Cycle (Lactic Acid Cycle)",
"The metabolic cycle in which lactate produced by anaerobic glycolysis in peripheral "
"tissues (muscle, RBCs) is transported to the liver, reconverted to glucose by "
"gluconeogenesis, and returned to the blood — completing the cycle."))
story += [sp(0.2)]
story.append(get_img("cori_cycle.png", max_w_cm=14, max_h_cm=10))
story.append(Paragraph(
"Fig. Cori Cycle — RBCs/Muscle: Glucose → Glycolysis → 2 Lactate (+ 2 ATP); "
"Blood carries lactate to Liver: Lactate → Gluconeogenesis → Glucose (uses 6 ATP). "
"Source: Basic Medical Biochemistry 6e, Fig. 22.12", CAPTION_S))
story += [sp(0.1)]
story.append(Paragraph("<b>Steps:</b>", SUBHEAD_S))
for step in [
"<b>1.</b> Glucose delivered from liver via blood to muscle/RBC",
"<b>2.</b> Anaerobic glycolysis in muscle/RBC: Glucose → Pyruvate → Lactate (LDH, uses NADH)",
"<b>3.</b> Lactate transported via blood to <b>liver</b>",
"<b>4.</b> In liver: Lactate → Pyruvate (LDH, NAD⁺ used) → Glucose (gluconeogenesis — needs 6 ATP)",
"<b>5.</b> New glucose released back into blood → cycle repeats",
]:
story.append(Paragraph(step, BULLET_S))
story += [sp(0.1)]
story.append(make_table(
["Feature", "Muscle/RBC", "Liver"],
[
["Process", "Anaerobic glycolysis", "Gluconeogenesis"],
["ATP", "+2 ATP produced", "−6 ATP consumed"],
["Key enzyme", "LDH (Lactate DH)", "LDH + PEPCK, FBPase, G6Pase"],
["Net for cycle", "—", "Net energy cost = 4 ATP"],
],
col_widths=[5*cm, 5.5*cm, 5.5*cm]
))
story.append(vet_box("Cori Cycle",
"Exercising horses/greyhounds: Massive lactate production → Cori cycle recycles it",
"Capture myopathy: Overwhelmed Cori cycle → fatal lactic acidosis in wild animals",
"Neonatal asphyxia in calves (dystocia): Anaerobic metabolism → elevated blood lactate; Rx: IV glucose + NaHCO₃",
))
story += [sp(0.3)]
story.append(hr())
# ── 2. Deamination Reactions ──────────────────────────────────────
story.append(Paragraph("<b>2. Deamination Reactions of Amino Acids</b>", ANS_HEAD_S))
story.append(def_box("Deamination",
"The removal of the amino (−NH₂) group from an amino acid, resulting in production "
"of an α-keto acid and release of nitrogen, chiefly as ammonia (NH₃)."))
story += [sp(0.2)]
story.append(Paragraph("<b>Step 1 — Transamination (ALT & AST reactions):</b>", SUBHEAD_S))
story.append(get_img("transamination.png", max_w_cm=9, max_h_cm=8))
story.append(Paragraph(
"Fig. A: ALT — Alanine + α-KG → Pyruvate + Glutamate (coenzyme: PLP/Vit B6). "
"B: AST — Aspartate + α-KG ↔ OAA + Glutamate (coenzyme: PLP). "
"Source: Lippincott Biochemistry 8e, Fig. 19.8", CAPTION_S))
story += [sp(0.15)]
story.append(Paragraph("<b>Step 2 — Oxidative Deamination (Glutamate Dehydrogenase):</b>", SUBHEAD_S))
story.append(get_img("oxidative_deamination.png", max_w_cm=10, max_h_cm=9))
story.append(Paragraph(
"Fig. Panel A: Disposal — NH₂ groups → Transamination → Glutamate → Oxidative "
"Deamination (GDH + NAD⁺) → free NH₃ + NADH + α-KG. "
"Panel B: Synthesis — Reverse via Reductive Amination (GDH + NADPH). "
"Source: Lippincott Biochemistry 8e, Fig. 19.12", CAPTION_S))
story += [sp(0.1)]
story.append(make_table(
["Type", "Enzyme", "Coenzyme", "Products"],
[
["Transamination", "ALT (SGPT), AST (SGOT)", "PLP (Vit B6)", "α-Keto acid + Glutamate"],
["Oxidative deamination", "Glutamate DH (GDH)", "NAD⁺ (catabolism)", "α-KG + NH₃ + NADH"],
["Non-oxidative deamination", "Serine dehydratase", "PLP", "Pyruvate + NH₃ (Serine)"],
["D-amino acid oxidase (DAO)", "DAO (peroxisomal, FAD-dep.)", "FAD", "α-Keto acid + NH₃ + H₂O₂"],
],
col_widths=[4*cm, 4.5*cm, 3.5*cm, 4*cm]
))
story += [sp(0.1)]
story.append(Paragraph(
"<b>Fate of NH₃:</b> Toxic → rapidly converted to <b>Urea</b> (liver urea cycle) "
"for safe excretion. In birds/reptiles → uric acid.", BODY_S))
story.append(vet_box("Deamination",
"ALT (SGPT): Liver-specific in dogs & cats. Reference range dog: 10–100 U/L. "
"Elevated in hepatitis, hepatic lipidosis, aflatoxin/xylitol toxicity",
"AST (SGOT): Elevated in both liver AND muscle disease in horses & ruminants. "
"Always interpret alongside CK to differentiate source",
"GDH: Best hepatocellular marker in cattle/sheep — elevated in ragwort toxicity, "
"aflatoxicosis; hepatic encephalopathy when NH₃ accumulates",
))
story.append(pb())
# ── 3. Temperature and pH effects ────────────────────────────────
story.append(q_banner("Q.No.6 continued", MED_BLUE))
story += [sp(0.3)]
story.append(Paragraph("<b>3. Effects of Temperature and pH on Enzyme Activity</b>", ANS_HEAD_S))
story += [sp(0.2)]
story.append(get_img("temp_ph.png", max_w_cm=15, max_h_cm=9))
story.append(Paragraph(
"Fig. Left: Effect of temperature — bell-shaped curve; optimum 37–40°C for mammalian enzymes; "
"above optimum → denaturation. Right: Effect of pH — different enzymes have different "
"optima (Pepsin pH 2; Salivary amylase pH 6.8; Trypsin pH 7.5–8).", CAPTION_S))
story += [sp(0.2)]
story.append(Paragraph("<b>A. Effect of Temperature:</b>", SUBHEAD_S))
story.append(make_table(
["Phase", "Mechanism", "Effect on Activity"],
[
["Rising (below optimum)", "↑ kinetic energy → more frequent enzyme-substrate collisions; Q₁₀ = 2 (rate doubles per 10°C rise)",
"Activity increases"],
["Optimum (~37–40°C)", "Maximum collision frequency + enzyme still properly folded",
"Maximum activity"],
["Above optimum (>40–42°C)", "Heat breaks H-bonds, disrupts hydrophobic interactions → protein denaturation → active site lost",
"Rapid, often irreversible decrease"],
],
col_widths=[3.5*cm, 8.5*cm, 4*cm]
))
story += [sp(0.2)]
story.append(Paragraph("<b>B. Effect of pH:</b>", SUBHEAD_S))
story.append(make_table(
["Enzyme", "Optimum pH", "Location"],
[
["Pepsin", "~2.0", "Stomach (monogastrics — dog, cat, pig, horse)"],
["Salivary amylase", "6.8–7.0", "Oral cavity (absent in cats; present in dogs, horses)"],
["Trypsin / Chymotrypsin", "7.5–8.0", "Pancreas → small intestine (all species)"],
["Alkaline Phosphatase (ALP)", "9–10", "Bone, liver, intestinal mucosa"],
["Arginase", "~9.5", "Liver (urea cycle)"],
["Acid Phosphatase", "~5.0", "Lysosomes, prostate"],
["Rumen cellulases", "6.2–6.8", "Rumen microbiota — cellulose digestion in cattle/sheep"],
],
col_widths=[5*cm, 2.5*cm, 8.5*cm]
))
story += [sp(0.1)]
story.append(Paragraph(
"<b>Why pH affects activity:</b> Changes ionisation state of active site amino acids "
"(His, Asp, Glu, Lys, Cys) → alters substrate binding and catalytic mechanism. "
"Extreme pH denatures the enzyme by breaking ionic bonds and H-bonds.", BODY_S))
story.append(vet_box("Temperature & pH Effects",
"Rumen acidosis (grain overload) in cattle/sheep: pH 4.5–5.5 → inactivates cellulolytic "
"enzymes → bloat, ataxia, death. Rx: NaHCO₃ + rumen transfaunation",
"Heat stroke in brachycephalic dogs (Bulldogs, Pugs) and horses: Core temp >42°C → "
"enzyme denaturation → multi-organ failure. Immediate cooling is life-saving",
"Pancreatitis in dogs/cats: Premature trypsinogen activation at wrong pH within "
"pancreas → autodigestion → acute abdomen, peritonitis",
"Hypothermia in neonatal piglets/lambs in cold: Metabolic enzyme activity halved → "
"hypoglycaemia, failure to thrive. Provide supplemental heat and colostrum",
"Clinical assay quality control: ALT, ALP, CK assays run at 37°C in phosphate buffer "
"(pH 7.4) for accurate results",
))
story.append(pb())
# ═════════════════════════════════════════════════════════════════
# Q.No.7 — BRIEF DESCRIPTIONS
# ═════════════════════════════════════════════════════════════════
story.append(q_banner("Q.No.7 Describe briefly Any THREE (5 × 3 = 15 marks)", DARK_GREEN))
story += [sp(0.3)]
# ── 1. Beta Oxidation ─────────────────────────────────────────────
story.append(Paragraph("<b>1. Steps of β-Oxidation of Fatty Acids</b>", ANS_HEAD_S))
story.append(def_box("β-Oxidation",
"The stepwise degradation of fatty acids in the mitochondrial matrix by sequential "
"removal of 2-carbon acetyl-CoA units, producing NADH and FADH₂ per cycle, "
"with the acetyl-CoA entering the TCA cycle for complete oxidation."))
story += [sp(0.15)]
story.append(Paragraph("<b>Pre-steps: Activation and Transport</b>", SUBHEAD_S))
story.append(Paragraph(
"<b>Step 0a — Activation (cytoplasm / outer mitochondrial membrane):</b>", BODY_S))
story.append(Paragraph(
"Fatty acid + CoA + ATP ──[Acyl-CoA synthetase/Thiokinase]──▶ "
"Fatty acyl-CoA + AMP + PPi (costs 2 ATP equivalents)", FORMULA_S))
story.append(Paragraph(
"<b>Step 0b — Carnitine shuttle (transport across inner mitochondrial membrane):</b>", BODY_S))
for pt in [
"Long-chain acyl-CoA cannot cross inner mitochondrial membrane alone",
"Transferred to <b>carnitine</b> by CPT-I (carnitine palmitoyltransferase-I) on outer membrane → acylcarnitine",
"Acylcarnitine crosses via <b>CACT</b> (carnitine-acylcarnitine translocase)",
"Reconverted to acyl-CoA inside by CPT-II; free carnitine returns",
]:
story.append(Paragraph(f"• {pt}", BULLET_S))
story += [sp(0.2)]
story.append(Paragraph("<b>The 4 Repeating Steps of β-Oxidation:</b>", SUBHEAD_S))
story.append(get_img("beta_oxidation_pathway.png", max_w_cm=9, max_h_cm=13))
story.append(Paragraph(
"Fig. β-Oxidation pathway: activation → carnitine transport → 4-step repeating cycle "
"→ Acetyl-CoA → TCA cycle → 2CO₂. Each cycle shortens fatty acid chain by 2C. "
"Source: Harper's Illustrated Biochemistry 32e, Fig. 22-3", CAPTION_S))
story += [sp(0.15)]
story.append(get_img("beta_oxidation_equations.png", max_w_cm=15, max_h_cm=5))
story.append(Paragraph(
"Fig. Chemical equations for each step: (1) Activation; (2) FAD-oxidation → FADH₂; "
"(3) Hydration → β-hydroxy intermediate; (4) NAD⁺-oxidation → NADH; "
"(5) Thiolysis → Acetyl-CoA. Source: Guyton & Hall Medical Physiology, Fig. 69.3",
CAPTION_S))
story += [sp(0.1)]
story.append(make_table(
["Step", "Enzyme", "Cofactor", "Product"],
[
["1. FAD-dependent oxidation", "Acyl-CoA dehydrogenase", "FAD", "trans-Δ²-Enoyl-CoA + FADH₂"],
["2. Hydration", "Enoyl-CoA hydratase", "H₂O", "L-3-Hydroxyacyl-CoA"],
["3. NAD⁺-dependent oxidation","L-3-Hydroxyacyl-CoA DH", "NAD⁺", "3-Ketoacyl-CoA + NADH"],
["4. Thiolysis", "β-Ketothiolase (Thiolase)", "CoA", "Acetyl-CoA + (n−2) Acyl-CoA"],
],
col_widths=[4.5*cm, 5*cm, 2*cm, 4.5*cm]
))
story += [sp(0.15)]
story.append(Paragraph("<b>Energy yield for Palmitate (C16):</b>", SUBHEAD_S))
story.append(make_table(
["Stage", "Moles formed", "ATP per mole", "Total ATP"],
[
["Activation (cost)", "—", "−2", "−2"],
["β-Oxidation: FADH₂ (7 cycles)", "7", "× 1.5", "+10.5"],
["β-Oxidation: NADH (7 cycles)", "7", "× 2.5", "+17.5"],
["TCA cycle: 8 Acetyl-CoA", "8", "× 10", "+80"],
["NET TOTAL", "", "", "106 ATP"],
],
col_widths=[7*cm, 3*cm, 3*cm, 3*cm]
))
story.append(vet_box("β-Oxidation",
"Ketosis/Acetonaemia in dairy cows (periparturient): Negative energy balance → "
"excess β-oxidation → acetyl-CoA cannot enter TCA (OAA depleted) → ketone bodies "
"(BOHB, acetoacetate, acetone). Blood BOHB >3 mmol/L = clinical ketosis. "
"Rx: IV 50% glucose, propylene glycol, dexamethasone",
"Pregnancy toxaemia in ewes (twin-lamb disease): Same mechanism; high twin fetal "
"demand depletes ewe's glucose → ketosis → CNS signs, recumbency, death",
"Feline hepatic lipidosis: Obese cat anorexia → fat mobilisation overwhelms "
"hepatic β-oxidation → fat accumulation → jaundice, liver failure",
"CPT-I deficiency: Carnitine shuttle impaired → long-chain FA cannot enter "
"mitochondria → lipid myopathy + dilated cardiomyopathy (Boxers, Dobermans)",
))
story.append(warn_box("β-Oxidation Exam Points",
"Activation COSTS 2 high-energy phosphates (ATP → AMP + PPi); NOT just 1 ATP",
"Odd-chain FA → propionyl-CoA → succinyl-CoA (requires Vit B12) → TCA; glucogenic; "
"important in ruminants (propionate from rumen fermentation)",
"Unsaturated FA: Require additional enzymes (isomerase / reductase); yield slightly less ATP",
))
story.append(pb())
# ── 2. TCA Cycle ──────────────────────────────────────────────────
story.append(Paragraph("<b>2. Steps of TCA Cycle including Energy Production</b>", ANS_HEAD_S))
story.append(def_box("TCA Cycle (Krebs / Citric Acid Cycle)",
"A cyclic series of 8 enzyme-catalysed reactions in the mitochondrial matrix that "
"completely oxidise acetyl-CoA (2C) to CO₂, capturing energy as NADH (3), "
"FADH₂ (1), and GTP (1) per turn, yielding ~10 ATP per acetyl-CoA."))
story += [sp(0.2)]
story.append(get_img("tca_cycle.png", max_w_cm=13, max_h_cm=14))
story.append(Paragraph(
"Fig. Complete TCA (Krebs) Cycle — all 8 steps with enzymes, cofactors, and inhibitor "
"sites (red lines): Fluoroacetate → blocks Aconitase; Arsenite → blocks α-KG DH complex; "
"Malonate → competitively inhibits Succinate DH. "
"Source: Harper's Illustrated Biochemistry 32e, Fig. 16-3", CAPTION_S))
story += [sp(0.15)]
story.append(make_table(
["#", "Reaction", "Enzyme", "Cofactors", "Energy"],
[
["1", "OAA (4C) + Acetyl-CoA (2C) → Citrate (6C)", "Citrate synthase", "CoA-SH, H₂O", "—"],
["2", "Citrate → cis-Aconitate → Isocitrate (6C)", "Aconitase", "Fe²⁺, H₂O", "—"],
["3", "Isocitrate → Oxalosuccinate → α-KG (5C) + CO₂", "Isocitrate dehydrogenase", "NAD⁺, Mn²⁺", "1 NADH"],
["4", "α-KG (5C) → Succinyl-CoA (4C) + CO₂", "α-KG dehydrogenase complex", "TPP, Lipoate, FAD, NAD⁺, CoA", "1 NADH"],
["5", "Succinyl-CoA → Succinate", "Succinyl-CoA synthetase", "Mg²⁺, GDP/ADP", "1 GTP"],
["6", "Succinate → Fumarate", "Succinate dehydrogenase (Complex II)", "FAD", "1 FADH₂"],
["7", "Fumarate + H₂O → L-Malate", "Fumarase", "H₂O", "—"],
["8", "L-Malate → Oxaloacetate", "Malate dehydrogenase", "NAD⁺", "1 NADH"],
],
col_widths=[0.5*cm, 5.2*cm, 4*cm, 3.3*cm, 1.8*cm]
))
story += [sp(0.15)]
story.append(Paragraph("<b>Energy production per turn of TCA cycle:</b>", SUBHEAD_S))
story.append(make_table(
["Product", "Number per turn", "ATP equivalent", "Total ATP"],
[
["NADH (steps 3, 4, 8)", "3", "× 2.5 ATP each", "7.5 ATP"],
["FADH₂ (step 6)", "1", "× 1.5 ATP each", "1.5 ATP"],
["GTP (step 5)", "1", "= 1 ATP", "1.0 ATP"],
["CO₂ released", "2", "—", "Metabolic waste"],
["TOTAL per turn", "", "", "~10 ATP"],
],
col_widths=[5.5*cm, 3.5*cm, 3.5*cm, 3.5*cm]
))
story += [sp(0.1)]
story.append(Paragraph("<b>Regulation — Key allosteric enzymes:</b>", SUBHEAD_S))
story.append(make_table(
["Enzyme", "Activated by", "Inhibited by"],
[
["Citrate synthase", "ADP, low [NADH], low [Acetyl-CoA]", "ATP, NADH, Succinyl-CoA, Citrate"],
["Isocitrate DH", "ADP, Ca²⁺ (muscle/heart)", "ATP, NADH"],
["α-KG DH complex", "Ca²⁺, ADP", "ATP, NADH, Succinyl-CoA"],
],
col_widths=[5*cm, 5.5*cm, 5.5*cm]
))
story.append(vet_box("TCA Cycle",
"Ketosis in dairy cows: Negative energy balance → OAA diverted to gluconeogenesis "
"→ TCA cycle slows → acetyl-CoA excess → ketogenesis. BOHB, acetoacetate, acetone "
"elevated. 'Sweet/acetone breath' in affected cows",
"Fluoroacetate (compound 1080) poisoning: Dogs, foxes, native wildlife especially "
"vulnerable. Fluoroacetate → fluorocitrate → blocks Aconitase (Step 2) → citrate "
"accumulates → TCA stops → cardiac arrhythmia, seizures, death. No antidote",
"Thiamin (Vit B1) deficiency: α-KG DH complex requires TPP. Polioencephalomalacia "
"in cattle/sheep (bracken fern in horses) → brain energy failure → seizures, "
"blindness. IV thiamin 10–20 mg/kg is curative if given early",
"Arsenite/arsenic poisoning (old sheep dip vats): Binds lipoate in α-KG DH → TCA "
"block → energy failure. Chelation with DMSA or BAL",
))
story.append(pb())
# ── 3. Glycogenolysis ─────────────────────────────────────────────
story.append(Paragraph("<b>3. Glycogenolysis</b>", ANS_HEAD_S))
story.append(def_box("Glycogenolysis",
"The enzymatic degradation of stored glycogen to yield glucose (in liver, for blood "
"glucose maintenance) or glucose-6-phosphate (in muscle, for ATP synthesis via "
"glycolysis). It is NOT the reverse of glycogen synthesis."))
story += [sp(0.2)]
story.append(get_img("glycogenolysis.png", max_w_cm=13, max_h_cm=10))
story.append(Paragraph(
"Fig. Steps in Glycogenolysis: Phosphorylase cleaves α-1,4 bonds → Glucan transferase "
"moves 3 glucose units to expose branch → Debranching enzyme (α-1,6-glucosidase) "
"releases free glucose at branch point. Blue circles = α-1,4 linked glucose; "
"Orange = branch chain glucose; branch point = α-1,6 bond. "
"Source: Harper's Illustrated Biochemistry 32e, Fig. 18-4", CAPTION_S))
story += [sp(0.15)]
story.append(Paragraph("<b>Steps of Glycogenolysis:</b>", SUBHEAD_S))
story.append(make_table(
["Step", "Enzyme", "Bond", "Product"],
[
["1. Chain removal", "Glycogen phosphorylase (PLP cofactor, Vit B6)",
"Cleaves α-1,4 (phosphorolysis)", "Glucose-1-phosphate"],
["2. Branch transfer (debranching)", "Glucan transferase (part of debranching enzyme)",
"Transfers 3 glucose units to main chain", "Exposed α-1,6 branch"],
["3. Branch cleavage", "α-1,6-Glucosidase (debranching enzyme)",
"Cleaves α-1,6 (hydrolysis)", "Free glucose (only unphosphorylated product!)"],
["4. Isomerisation", "Phosphoglucomutase",
"Isomerisation", "Glucose-6-phosphate"],
["5. Liver only", "Glucose-6-phosphatase (ER lumen)",
"Hydrolysis", "Free glucose → released to blood"],
],
col_widths=[3*cm, 5*cm, 4*cm, 4*cm]
))
story += [sp(0.15)]
story.append(Paragraph("<b>Hormonal Regulation:</b>", SUBHEAD_S))
story.append(Paragraph(
"Glucagon/Epinephrine → adenylate cyclase → ↑ cAMP → "
"Protein Kinase A (PKA) → phosphorylates Phosphorylase kinase (active) → "
"phosphorylates Glycogen phosphorylase b → <b>Phosphorylase a (ACTIVE)</b> → "
"Glycogenolysis ↑", FORMULA_S))
story += [sp(0.1)]
story.append(make_table(
["Signal", "Tissue", "Mechanism", "Result"],
[
["Glucagon (low blood glucose)", "Liver", "↑cAMP → PKA cascade", "Glycogenolysis ↑; glucose → blood"],
["Epinephrine (stress/exercise)","Liver + Muscle","↑cAMP + Ca²⁺ cascade", "Glycogenolysis ↑ (fight-or-flight)"],
["Ca²⁺ (muscle contraction)", "Muscle", "Direct activation of Phos. kinase","Glycogenolysis ↑ during exercise"],
["AMP (energy depletion)", "Muscle", "Allosteric activation of Phos. b","Glycogenolysis ↑ when ATP low"],
["Insulin (fed state)", "Both", "Activates phosphatase", "Glycogenolysis ↓; glycogen synthesis ↑"],
],
col_widths=[4*cm, 2.5*cm, 4*cm, 5.5*cm]
))
story += [sp(0.1)]
story.append(make_table(
["Tissue", "Final product", "Fate"],
[
["Liver", "Free glucose (via Glucose-6-phosphatase)", "Released to blood → maintains blood glucose ~80 mg/dL"],
["Muscle", "Glucose-6-phosphate (NO G-6-Pase)", "Enters glycolysis → ATP for muscle contraction"],
],
col_widths=[2.5*cm, 6*cm, 7.5*cm]
))
story.append(vet_box("Glycogenolysis",
"Neonatal hypoglycaemia (piglets, lambs, foals): After birth cord is clamped → "
"epinephrine + glucagon activate hepatic glycogenolysis to restore blood glucose. "
"Neonates with limited stores → fatal hypoglycaemia within hours. Rx: Oral/IV glucose",
"GSD Type II (Pompe disease) in Brahman cattle: Acid maltase deficiency → glycogen "
"accumulates in muscle/heart → cardiomyopathy, progressive muscle weakness",
"GSD Type III (Debranching enzyme deficiency) in German Shepherds: Cannot debranch "
"→ glycogen accumulates → hypoglycaemia + hepatomegaly",
"Capture myopathy in deer, zebra, kangaroo: Epinephrine surge → rapid glycogenolysis "
"+ lactate accumulation → muscle necrosis → fatal rhabdomyolysis",
"Diabetes mellitus in dogs/cats: Glucagon dominance → uncontrolled glycogenolysis "
"→ hyperglycaemia despite adequate glucose. Insulin therapy required",
))
story.append(pb())
# ── 4. Enzyme-Substrate Complex Formation ────────────────────────
story.append(Paragraph("<b>4. Enzyme-Substrate Complex Formation</b>", ANS_HEAD_S))
story.append(def_box("Enzyme-Substrate (ES) Complex",
"The transient non-covalent molecular complex formed when a substrate molecule "
"binds to the specific active site of an enzyme, preceding catalytic conversion "
"to product. General equation: E + S ⇌ ES → E + P"))
story += [sp(0.2)]
story.append(Paragraph("<b>Nature of the Active Site:</b>", SUBHEAD_S))
for pt in [
"A 3-dimensional cleft or pocket formed by a small number of specific amino acid residues",
"Contains a <b>binding site</b> (holds substrate in correct orientation) and a <b>catalytic site</b> (performs chemical transformation)",
"Key residues: Ser, His, Asp, Cys, Lys, Glu — vary by enzyme type",
"Represents only ~10–15% of total enzyme surface area",
]:
story.append(Paragraph(f"• {pt}", BULLET_S))
story += [sp(0.15)]
story.append(Paragraph("<b>Active site H-bond interactions (basis of substrate specificity):</b>",
SUBHEAD_S))
story.append(get_img("es_hbonds.png", max_w_cm=11, max_h_cm=8))
story.append(Paragraph(
"Fig. Glucose binding site in glucokinase — each -OH of glucose (red) is held by "
"multiple H-bonds (dashed lines) to specific amino acid residues: Asp-205, Asn-204, "
"Asn-231, Glu-256, Glu-290, Gly-229. Panel B: Galactose (one -OH differs) is NOT "
"phosphorylated — demonstrates exquisite enzyme specificity. "
"Source: Basic Medical Biochemistry 6e, Fig. 8.5", CAPTION_S))
story += [sp(0.15)]
story.append(Paragraph("<b>Two Models of ES Complex Formation:</b>", SUBHEAD_S))
story.append(make_table(
["Model", "Proposed", "Key Concept", "Status"],
[
["Lock and Key", "Emil Fischer, 1894",
"Enzyme has rigid, pre-formed active site; substrate fits exactly like key in lock; "
"no conformational change occurs",
"Outdated — cannot explain enzyme flexibility or allosteric effects"],
["Induced Fit", "Daniel Koshland, 1958",
"Substrate binding induces conformational change in enzyme; active site cleft "
"closes around substrate; improves co-substrate binding; excludes water from active site",
"Currently accepted model"],
],
col_widths=[2.5*cm, 2.5*cm, 7*cm, 4*cm]
))
story += [sp(0.15)]
story.append(Paragraph("<b>Induced Fit — Before and After substrate binding:</b>", SUBHEAD_S))
before = get_img("es_before.png", max_w_cm=7.2, max_h_cm=7)
after = get_img("es_after.png", max_w_cm=7.2, max_h_cm=7)
side = Table([[before, after]], colWidths=[8.2*cm, 8.2*cm])
side.setStyle(TableStyle([
("ALIGN", (0,0),(-1,-1), "CENTER"),
("VALIGN", (0,0),(-1,-1), "MIDDLE"),
("LEFTPADDING", (0,0),(-1,-1), 3),
("RIGHTPADDING", (0,0),(-1,-1), 3),
]))
story.append(side)
story.append(Paragraph(
"Fig. Left (Before): Glucokinase in open conformation; D-glucose (red) approaching. "
"Right (After): Cleft closes completely around glucose = Induced Fit. Conformational "
"change improves ATP binding site and excludes water. "
"Source: Basic Medical Biochemistry 6e, Fig. 8.6", CAPTION_S))
story += [sp(0.1)]
story.append(Paragraph("<b>Forces stabilising the ES complex:</b>", SUBHEAD_S))
story.append(make_table(
["Force", "Description"],
[
["Hydrogen bonds", "Between -OH, -NH₂ of substrate and enzyme Asp, Asn, Glu, Gly residues"],
["Electrostatic/ionic", "Charged groups on substrate ↔ oppositely charged enzyme residues"],
["Hydrophobic interactions","Nonpolar substrate regions fit into hydrophobic pockets in active site"],
["Van der Waals forces", "Short-range attractive forces at very close contact distances"],
["Transient covalent bonds","E.g., acyl-enzyme intermediate in serine proteases (trypsin, chymotrypsin)"],
],
col_widths=[4*cm, 12*cm]
))
story += [sp(0.1)]
story.append(Paragraph(
"<b>Significance of ES complex:</b> Lowers activation energy (Ea) by correctly "
"orienting substrate and stressing key bonds; explains substrate specificity and "
"competitive inhibition (inhibitor occupies active site).", BODY_S))
story.append(vet_box("ES Complex",
"Organophosphate (OP) poisoning (cattle from dips, dogs/cats from sprays): OP forms "
"covalent bond with Ser in AChE active site → ES complex permanently blocked → "
"ACh accumulates → SLUD syndrome (salivation, lacrimation, urination, defaecation) + "
"bradycardia, miosis, seizures, bronchospasm. "
"Rx: Atropine (competitive ACh blocker) + Pralidoxime/2-PAM (reactivates AChE if early)",
"Competitive inhibition in vet pharmacy: Allopurinol blocks xanthine oxidase active "
"site (competitive) → used in Dalmatians for urate urolithiasis",
"Substrate specificity explained: Glucokinase phosphorylates only glucose (not galactose) "
"→ basis of galactosaemia in calves (congenital galactose-1-phosphate uridyltransferase deficiency)",
"Drug-enzyme Km: High Km = weak binding = lower drug efficacy at physiological "
"substrate concentrations; important for antimicrobial target selection",
))
story.append(pb())
# ── MASTER REVISION TABLE ─────────────────────────────────────────
story.append(q_banner("COMPLETE QUICK REVISION — All Questions Summary", PURPLE))
story += [sp(0.3)]
story.append(make_table(
["Question", "Topic", "Key Enzyme(s)", "Key Product(s)", "ATP", "Vet Relevance"],
[
["Q5-i", "Intermediary metabolism", "All metabolic enzymes",
"Acetyl-CoA, OAA, α-KG", "—",
"Ruminant propionate metabolism; ketosis"],
["Q5-ii", "Turnover number (kcat)", "Any enzyme",
"Reactions/sec at Vmax", "—",
"OP poisoning reduces AChE kcat to zero"],
["Q5-iii","Specific activity", "Any enzyme",
"Units/mg protein", "—",
"ALT, AST, ALP, CK in serum biochemistry"],
["Q5-iv", "Coenzymes", "ALT (PLP), LDH (NAD⁺), Succinate DH (FAD)",
"Varied (NADH, FADH₂, etc.)", "—",
"B-vitamin deficiencies; PEM, black tongue, B12 deficiency"],
["Q5-v", "Oxidative phosphorylation", "Complex I–IV + ATP synthase",
"ATP + H₂O", "30–32 ATP/glucose",
"Cyanide poisoning; CO toxicity; thermogenin in neonates"],
["Q6-1", "Cori cycle", "LDH, G6Pase", "Glucose ↔ Lactate", "Net −4 ATP",
"Capture myopathy; exercising horses; neonatal asphyxia"],
["Q6-2", "Deamination", "ALT, AST, GDH, DAO",
"α-Keto acids + NH₃ → Urea", "+1 NADH (GDH)",
"Liver enzyme panels in dogs/cats; hepatic encephalopathy"],
["Q6-3", "Temp & pH on enzymes", "All enzymes",
"Bell-shaped activity curve", "—",
"Rumen acidosis; heat stroke; pancreatitis; hypothermic neonates"],
["Q7-1", "β-Oxidation", "Acyl-CoA DH, Enoyl hydratase, HADH, Thiolase",
"Acetyl-CoA + NADH + FADH₂", "106 ATP (C16)",
"Ketosis in cows/ewes; hepatic lipidosis in cats; CPT deficiency"],
["Q7-2", "TCA cycle", "Citrate synthase, Isocitrate DH, α-KG DH, Succinate DH, Malate DH",
"3NADH + 1FADH₂ + 1GTP + 2CO₂", "~10 ATP/turn",
"Acetonaemia; fluoroacetate poisoning; thiamin deficiency"],
["Q7-3", "Glycogenolysis", "Glycogen phosphorylase, Debranching enzyme, G6Pase",
"Glucose (liver) / G-6-P (muscle)", "None",
"Neonatal hypoglycaemia; GSD in Brahman cattle; DM in dogs"],
["Q7-4", "ES Complex", "Glucokinase (example)",
"Transition state complex → Product", "—",
"OP poisoning; allopurinol in Dalmatians; substrate specificity"],
],
col_widths=[1.2*cm, 3*cm, 4*cm, 3.2*cm, 1.8*cm, 3*cm]
))
story += [sp(0.5)]
story.append(Paragraph(
"<b>Sources:</b> Lippincott Illustrated Reviews Biochemistry 8e • "
"Harper's Illustrated Biochemistry 32e • Basic Medical Biochemistry 6e • "
"Guyton & Hall Textbook of Medical Physiology • Goldman-Cecil Medicine",
DATE_S))
# ── BUILD ─────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUT_PATH,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2.5*cm,
title="Vet Biochemistry — Complete Exam Answers with Diagrams",
author="Orris AI",
subject="Veterinary Biochemistry Q5 Q6 Q7 Complete Answers",
)
doc.build(story, canvasmaker=NC)
print(f"PDF created: {OUT_PATH}")
import os
size = os.path.getsize(OUT_PATH)
print(f"File size: {size/1024/1024:.1f} MB")
cd /home/daytona/workspace/vet-biochem-pdf && python build_answers_pdf.py 2>&1
Vet Biochem Complete Answers
PDF Document · PDF
| Pages | Content |
|---|---|
| Cover | Colour-coded index of Q.5, Q.6, Q.7 topics |
| Q.5 — Definitions (5 definitions, full answers) | i. Intermediary Metabolism · ii. Turnover Number (with formula + table) · iii. Specific Activity (formula + purification table) · iv. Coenzymes (full classification table: NAD, FAD, TPP, PLP, CoA, Biotin, THF, B12) · v. Oxidative Phosphorylation (with ETC diagram + Complex I–V inhibitor table) |
| Q.6 — Short Notes | 1. Cori Cycle (diagram + ATP balance table + vet cases) · 2. Deamination (transamination diagram + GDH diagram + enzyme table) · 3. Temperature & pH effects (dual graph + pH optimum table + vet cases) |
| Q.7 — Brief Descriptions | 1. β-Oxidation (full pathway diagram + chemical equations diagram + step table + energy yield table) · 2. TCA Cycle (complete Krebs cycle diagram + 8-step table + energy table + regulation table) · 3. Glycogenolysis (debranching diagram + step table + hormonal regulation table) · 4. ES Complex (H-bond diagram + before/after induced fit diagrams side by side + model comparison table) |
| Last page | Master 12-row revision table covering all questions with key enzymes, products, ATP yield, and vet relevance |