Biochemistry pathways and cycles in short understanding way

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Loading Image
Here is a complete, concise guide to all major biochemistry pathways and cycles, sourced from Lippincott Illustrated Reviews: Biochemistry, Harper's Illustrated Biochemistry, Basic Medical Biochemistry, and Mulholland & Greenfield's Surgery.

Biochemistry Pathways & Cycles - Short Understanding Guide


1. Glycolysis

"Glucose → Pyruvate"
Location: Cytoplasm (all cells) Purpose: Generate ATP from glucose; works with or without oxygen
Two phases:
Glycolysis phases diagram
  • Phase I (Preparatory): Glucose → Fructose 1,6-bisphosphate. Spends 2 ATP
  • Phase II (ATP-generating): Fructose 1,6-bisphosphate → 2 Pyruvate. Generates 4 ATP + 2 NADH
  • Net yield: 2 ATP + 2 NADH per glucose
3 irreversible (rate-limiting) enzymes:
  1. Hexokinase/Glucokinase
  2. Phosphofructokinase-1 (PFK-1) - the KEY regulator
  3. Pyruvate kinase
Pyruvate fate:
  • With O₂ → acetyl-CoA (enters TCA cycle)
  • Without O₂ → Lactate (lactic acid fermentation; regenerates NAD⁺)

2. Citric Acid Cycle (TCA / Krebs Cycle)

"Acetyl-CoA → CO₂ + energy carriers"
Location: Mitochondrial matrix Purpose: Main ATP-generating hub; oxidizes acetyl-CoA completely
TCA cycle and respiratory chain diagram
The loop in simple terms:
  • Acetyl-CoA (2C) + Oxaloacetate (4C) → Citrate (6C)
  • Citrate is processed through 8 steps, releasing 2 CO₂
  • Oxaloacetate is regenerated to keep the cycle going
Per turn yields:
ProductAmount
NADH3
FADH₂1
GTP/ATP1
CO₂2
  • Total: ~10 ATP equivalents per turn (via oxidative phosphorylation)
  • The cycle also feeds gluconeogenesis, amino acid synthesis, heme synthesis, and fatty acid synthesis
Key concept - Anaplerosis: Adding carbon to the cycle (e.g., pyruvate → oxaloacetate). Cataplerosis: Removing carbon from the cycle. Both must be equal to sustain the cycle.

3. Oxidative Phosphorylation (Electron Transport Chain)

"NADH/FADH₂ → ATP"
Location: Inner mitochondrial membrane Purpose: Convert reducing equivalents (NADH, FADH₂) into ATP using oxygen
Flow: NADH/FADH₂ → Complex I/II → Ubiquinone (Q) → Complex III → Cytochrome c → Complex IV → O₂ → H₂O
  • NADH yields ~2.5 ATP
  • FADH₂ yields ~1.5 ATP
  • Total from 1 glucose (complete oxidation): ~30-32 ATP
Key concept: The proton gradient across the inner mitochondrial membrane drives ATP synthase (Complex V). This is called the chemiosmotic mechanism.
Important: If oxygen is absent (anaerobiosis), the chain stops and cells rely only on glycolysis.

4. Gluconeogenesis

"Non-glucose → Glucose"
Location: Mainly liver (also kidney, intestinal epithelium) Purpose: Maintain blood glucose during fasting when glycogen stores fall
Substrates (gluconeogenic precursors):
  • Lactate (from muscle)
  • Glycerol (from fat breakdown)
  • Amino acids (from protein, especially alanine and glutamine)
Key point: NOT the reverse of glycolysis. Three irreversible glycolysis steps are bypassed by different enzymes:
  1. Pyruvate carboxylase + PEPCK (bypass pyruvate kinase)
  2. Fructose-1,6-bisphosphatase (bypass PFK-1)
  3. Glucose-6-phosphatase (bypass hexokinase) - only in liver/kidney/intestine
Cost: Energy-expensive: uses 6 ATP equivalents per glucose made.

5. Glycogenesis & Glycogenolysis

"Glucose ↔ Glycogen (storage)"
Location: Liver and muscle

Glycogenesis (storage)

Glucose → Glucose-6-phosphate → Glucose-1-phosphate → UDP-glucose → Glycogen chain (via glycogen synthase)
  • Costs 1 ATP per glucose stored
  • Storage is ~97% efficient

Glycogenolysis (release)

Glycogen → Glucose-1-phosphate → Glucose-6-phosphate
  • Enzyme: Glycogen phosphorylase (activated by glucagon/epinephrine via cAMP cascade)
  • Glucose-6-phosphatase then releases free glucose (only in liver/kidney/intestine - NOT in muscle)
  • Triggered by low blood glucose, exercise, or stress

6. Beta-Oxidation of Fatty Acids

"Fatty acids → Acetyl-CoA"
Location: Mitochondrial matrix (peroxisomes for very long-chain FAs) Purpose: Break down fatty acids to fuel the TCA cycle; major energy source during fasting
Steps (per cycle, removes 2 carbons as acetyl-CoA):
  1. Activation: Fatty acid → Fatty acyl-CoA (costs 2 ATP)
  2. Transport into mitochondria via carnitine shuttle (rate-limiting step)
  3. Repeated cycles: each produces 1 acetyl-CoA + 1 NADH + 1 FADH₂
Example - Palmitate (16C): 7 rounds → 8 acetyl-CoA → ~106 ATP net Key regulation: Malonyl-CoA (the first intermediate of FA synthesis) inhibits the carnitine shuttle - so FA synthesis and oxidation don't run simultaneously.

7. Fatty Acid Synthesis

"Acetyl-CoA → Fatty acids"
Location: Cytoplasm (liver, adipose, mammary gland) Purpose: Store excess energy as fat
Key points:
  • Acetyl-CoA must first exit mitochondria as citrate (citrate shuttle)
  • Acetyl-CoA → Malonyl-CoA (by acetyl-CoA carboxylase - rate-limiting; activated by insulin)
  • Fatty acid synthase (FAS) adds 2C units at a time
  • Requires NADPH (supplied by pentose phosphate pathway)
  • End product: Palmitate (16:0)
Remember: Opposite of beta-oxidation but uses different enzymes, different location, different cofactors.

8. Urea Cycle

"NH₃ → Urea (detox)"
Location: Liver - partly mitochondria, partly cytosol Purpose: Convert toxic ammonia (from amino acid catabolism) into urea for urinary excretion
Urea cycle diagram
5 steps (mnemonic: "Ordinarily, Careless Crappers Are Also Frivolous About Urination"):
StepCompoundLocation
1NH₃ + HCO₃⁻ → Carbamoyl phosphateMitochondria
2Carbamoyl phosphate + Ornithine → CitrullineMitochondria
3Citrulline + Aspartate → ArgininosuccinateCytosol
4Argininosuccinate → Arginine + FumarateCytosol
5Arginine → Ornithine + UreaCytosol
Key facts:
  • 1 nitrogen from NH₃, 1 nitrogen from aspartate
  • Carbon and oxygen of urea come from CO₂ (as HCO₃⁻)
  • Rate-limited by CPS I (requires N-acetylglutamate as activator)
  • Ornithine regenerates - just like oxaloacetate in TCA
  • Defects cause hyperammonemia (toxic to brain)

9. Pentose Phosphate Pathway (HMP Shunt)

"Glucose-6-P → NADPH + Ribose-5-P"
Location: Cytoplasm (liver, RBCs, adrenal glands, mammary tissue) Purpose: Produce NADPH (for reductive biosynthesis and antioxidant defense) and ribose-5-phosphate (for nucleotide synthesis)
Two branches:
  • Oxidative branch: Produces NADPH (irreversible)
  • Non-oxidative branch: Produces ribose-5-phosphate; reversible, connects to glycolysis
Clinical link: G6PD deficiency → insufficient NADPH → can't regenerate glutathione → RBCs susceptible to oxidative hemolysis

10. Ketone Body Synthesis & Use (Ketogenesis)

"Excess acetyl-CoA → Ketone bodies"
Location: Liver mitochondria (synthesis); extrahepatic tissues (use) Purpose: Alternative fuel during prolonged fasting/starvation, especially for brain
Ketone bodies:
  • Acetoacetate
  • Beta-hydroxybutyrate (main form in blood)
  • Acetone (exhaled)
Key point: Liver makes ketones but CANNOT use them (lacks thiophorase/succinyl-CoA transferase). Brain, heart, and muscle use them instead.

Big Picture: How the Pathways Connect

Diet (glucose, fats, proteins)
        |
   GLYCOLYSIS
   Glucose → Pyruvate → Acetyl-CoA
                              |
        ┌────────────── TCA CYCLE ──────────────┐
        |         NADH / FADH₂ produced          |
        |                   ↓                    |
        |      OXIDATIVE PHOSPHORYLATION          |
        |              ATP !!!                   |
        └────────────────────────────────────────┘

Fasting state:
  Glycogen → Glucose (glycogenolysis)
  OAA, lactate, amino acids → Glucose (gluconeogenesis)
  Fatty acids → Acetyl-CoA (beta-oxidation) → TCA
  Excess acetyl-CoA → Ketone bodies (brain fuel)

Quick Reference Table

PathwayLocationMain InputMain OutputKey Enzyme
GlycolysisCytosolGlucosePyruvate, 2 ATPPFK-1
TCA CycleMitochondriaAcetyl-CoANADH, FADH₂, CO₂Isocitrate DH
Oxid. Phosph.Inner mito. membraneNADH/FADH₂~30 ATPATP synthase
GluconeogenesisLiver/KidneyLactate/AA/GlycerolGlucosePEPCK
GlycogenesisLiver/MuscleGlucoseGlycogenGlycogen synthase
GlycogenolysisLiver/MuscleGlycogenGlucoseGlycogen phosphorylase
Beta-oxidationMitochondriaFatty acidsAcetyl-CoAAcyl-CoA DH
FA SynthesisCytosolAcetyl-CoAPalmitateAcetyl-CoA carboxylase
Urea CycleLiver (mito+cytosol)NH₃, AspartateUreaCPS I
PPP (HMP shunt)CytosolGlucose-6-PNADPH, Ribose-5-PG6PD
KetogenesisLiver mitochondriaAcetyl-CoAKetone bodiesHMG-CoA synthase

Sources: Lippincott Illustrated Reviews: Biochemistry 8e; Harper's Illustrated Biochemistry 32e; Basic Medical Biochemistry - A Clinical Approach 6e; Mulholland & Greenfield's Surgery 7e

Make a flashcard deck (PDF) on key pathway intermediates and their fates

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /home/daytona/workspace/biochem-flashcards

Writing File

~/biochem-flashcards/make_flashcards.py

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

OUTPUT = "/home/daytona/workspace/biochem-flashcards/Biochemistry_Flashcards.pdf"

# ── colour palette ──────────────────────────────────────────────
C_NAVY      = colors.HexColor("#1A2F5A")
C_BLUE      = colors.HexColor("#2E5BA8")
C_LIGHT     = colors.HexColor("#EAF0FB")
C_ACCENT    = colors.HexColor("#F4A623")
C_GREEN     = colors.HexColor("#27AE60")
C_GREEN_LT  = colors.HexColor("#E8F8F0")
C_RED       = colors.HexColor("#C0392B")
C_RED_LT    = colors.HexColor("#FEF0EE")
C_PURPLE    = colors.HexColor("#6C3483")
C_PURPLE_LT = colors.HexColor("#F4EEF9")
C_ORANGE    = colors.HexColor("#D35400")
C_ORANGE_LT = colors.HexColor("#FEF5EC")
C_TEAL      = colors.HexColor("#117A65")
C_TEAL_LT   = colors.HexColor("#E8F6F3")
C_GRAY_LT   = colors.HexColor("#F7F9FC")
C_WHITE     = colors.white
C_BLACK     = colors.HexColor("#1A1A2E")

# category colours: (header_bg, card_bg)
CAT_COLOURS = {
    "Glycolysis":               (C_BLUE,   C_LIGHT),
    "TCA Cycle":                (C_GREEN,  C_GREEN_LT),
    "Oxidative Phosphorylation":(C_NAVY,   C_GRAY_LT),
    "Gluconeogenesis":          (C_RED,    C_RED_LT),
    "Glycogen Metabolism":      (C_PURPLE, C_PURPLE_LT),
    "Beta-Oxidation":           (C_ORANGE, C_ORANGE_LT),
    "Fatty Acid Synthesis":     (C_TEAL,   C_TEAL_LT),
    "Urea Cycle":               (C_RED,    C_RED_LT),
    "Pentose Phosphate Pathway":(C_GREEN,  C_GREEN_LT),
    "Ketone Body Metabolism":   (C_ORANGE, C_ORANGE_LT),
}

# ── flashcard data ───────────────────────────────────────────────
# Each card: (category, front_question, back_answer)
CARDS = [
    # ── GLYCOLYSIS ──────────────────────────────────────────────
    ("Glycolysis",
     "What is the fate of Glucose-6-Phosphate (G6P)?",
     "Three possible fates:\n"
     "1. Continue glycolysis → Fructose-6-P\n"
     "2. Glycogenesis → stored as glycogen\n"
     "3. Pentose phosphate pathway → NADPH + ribose-5-P\n\n"
     "Key: G6P is the first committed intermediate; cannot exit most cells (no G6Pase except liver/kidney/intestine)."),

    ("Glycolysis",
     "What is the fate of Fructose-1,6-Bisphosphate (F-1,6-BP)?",
     "Cleaved by aldolase into two 3-carbon triose phosphates:\n"
     "• DHAP (dihydroxyacetone phosphate)\n"
     "• Glyceraldehyde-3-phosphate (G3P)\n\n"
     "DHAP → G3P (by triose phosphate isomerase)\n"
     "Both G3P molecules feed into ATP-generating phase."),

    ("Glycolysis",
     "What is the fate of Pyruvate (the end product of glycolysis)?",
     "FOUR possible fates depending on conditions:\n"
     "1. With O₂ → Acetyl-CoA (pyruvate dehydrogenase) → TCA cycle\n"
     "2. Without O₂ → Lactate (LDH; regenerates NAD⁺)\n"
     "3. Gluconeogenesis → Oxaloacetate (pyruvate carboxylase, liver)\n"
     "4. Transamination → Alanine (nitrogen transport from muscle)\n\n"
     "Key enzyme: Pyruvate dehydrogenase (PDH) — irreversible, requires B1/B2/B3/B5/lipoic acid."),

    ("Glycolysis",
     "What is the fate of DHAP (Dihydroxyacetone Phosphate)?",
     "Three fates:\n"
     "1. → G3P via triose phosphate isomerase (continues glycolysis)\n"
     "2. → Glycerol-3-P → triacylglycerol synthesis (fat storage)\n"
     "3. → Glycerol-3-P → glycerophospholipid synthesis\n\n"
     "DHAP is the entry point for glycerol into both glycolysis and lipid synthesis."),

    ("Glycolysis",
     "What is the fate of 1,3-Bisphosphoglycerate (1,3-BPG)?",
     "Two fates:\n"
     "1. → 3-Phosphoglycerate + ATP (via phosphoglycerate kinase)\n"
     "   — substrate-level phosphorylation\n"
     "2. → 2,3-BPG (in RBCs, via bisphosphoglycerate mutase)\n"
     "   — 2,3-BPG allosterically reduces Hb-O₂ affinity → O₂ delivery to tissues"),

    ("Glycolysis",
     "What is the fate of Phosphoenolpyruvate (PEP)?",
     "Two fates:\n"
     "1. → Pyruvate + ATP (via pyruvate kinase) — glycolysis continues\n"
     "2. ← OAA (via PEPCK) — gluconeogenesis\n\n"
     "PEP is the highest-energy phosphate compound in glycolysis.\n"
     "Pyruvate kinase is inhibited by ATP and alanine (fed state signals)."),

    # ── TCA CYCLE ────────────────────────────────────────────────
    ("TCA Cycle",
     "What is the fate of Acetyl-CoA entering the TCA cycle?",
     "Condenses with Oxaloacetate (4C) → Citrate (6C)\n"
     "Enzyme: Citrate synthase\n\n"
     "Per turn, acetyl-CoA carbons are NOT directly released as CO₂;\n"
     "they become part of OAA in subsequent turns.\n\n"
     "Acetyl-CoA can also:\n"
     "→ FA synthesis (via citrate export to cytosol)\n"
     "→ Ketone body synthesis (if OAA is limiting)"),

    ("TCA Cycle",
     "What is the fate of Citrate (6C)?",
     "In mitochondria: → Isocitrate (aconitase)\n"
     "In cytosol (exported via citrate shuttle):\n"
     "→ Acetyl-CoA + OAA (by citrate lyase)\n"
     "→ Acetyl-CoA feeds fatty acid synthesis\n"
     "→ OAA feeds back or → NADPH via malic enzyme\n\n"
     "Citrate is an allosteric inhibitor of PFK-1 (slows glycolysis when TCA is full)."),

    ("TCA Cycle",
     "What is the fate of Isocitrate (6C)?",
     "→ α-Ketoglutarate (5C) + CO₂\n"
     "Enzyme: Isocitrate dehydrogenase (IDH)\n"
     "Cofactor: NAD⁺ → NADH produced\n\n"
     "This is the first CO₂-releasing step and a major\n"
     "regulatory point of the TCA cycle.\n"
     "IDH is activated by ADP/Ca²⁺ and inhibited by ATP/NADH."),

    ("TCA Cycle",
     "What is the fate of α-Ketoglutarate (5C)?",
     "→ Succinyl-CoA (4C) + CO₂\n"
     "Enzyme: α-Ketoglutarate dehydrogenase complex\n"
     "Cofactors: Same as PDH (B1, B2, B3, B5, lipoic acid)\n"
     "Produces: NADH\n\n"
     "Also: α-KG ↔ Glutamate (transamination)\n"
     "→ Entry point for glutamine/glutamate into TCA\n"
     "→ Key link between amino acid and carbohydrate metabolism"),

    ("TCA Cycle",
     "What is the fate of Succinyl-CoA (4C)?",
     "→ Succinate + GTP\n"
     "Enzyme: Succinyl-CoA synthetase\n"
     "→ Substrate-level phosphorylation (only in TCA)\n\n"
     "Also:\n"
     "→ Heme synthesis (condenses with glycine → ALA)\n"
     "→ Ketone body utilization (succinyl-CoA + acetoacetate → acetyl-CoA)"),

    ("TCA Cycle",
     "What is the fate of Oxaloacetate (OAA, 4C)?",
     "TCA: Condenses with Acetyl-CoA → Citrate (keeps cycle running)\n\n"
     "Also:\n"
     "1. → PEP (via PEPCK) — gluconeogenesis\n"
     "2. → Aspartate (via transamination) — urea cycle nitrogen donor\n"
     "3. → Malate (malate-aspartate shuttle) — NADH transfer\n"
     "4. Anaplerosis: Pyruvate → OAA (pyruvate carboxylase)\n\n"
     "OAA is the most metabolically connected TCA intermediate."),

    ("TCA Cycle",
     "What is the fate of Fumarate (4C)?",
     "TCA: → Malate (fumarase adds H₂O)\n\n"
     "Also appears in:\n"
     "• Urea cycle (product of argininosuccinate lyase step)\n"
     "• Purine synthesis (product of adenylosuccinate lyase)\n\n"
     "Clinical: Fumarate hydratase mutations → hereditary leiomyomatosis\n"
     "and renal cell carcinoma (HLRCC)."),

    # ── OXIDATIVE PHOSPHORYLATION ────────────────────────────────
    ("Oxidative Phosphorylation",
     "What is the fate of NADH produced in metabolism?",
     "→ Donates electrons to Complex I (NADH dehydrogenase) of ETC\n"
     "→ Electrons flow: Complex I → CoQ → Complex III → Cyt c → Complex IV → O₂\n"
     "→ Proton gradient drives ATP synthase (Complex V)\n"
     "→ Yields ~2.5 ATP per NADH\n\n"
     "Note: Cytoplasmic NADH uses malate-aspartate shuttle (2.5 ATP)\n"
     "or glycerol-3-P shuttle (1.5 ATP) to enter ETC."),

    ("Oxidative Phosphorylation",
     "What is the fate of FADH₂ produced in metabolism?",
     "→ Donates electrons to Complex II (succinate dehydrogenase) of ETC\n"
     "→ Bypasses Complex I → enters at CoQ\n"
     "→ Yields ~1.5 ATP per FADH₂\n\n"
     "Sources of FADH₂: TCA (succinate step), beta-oxidation\n"
     "FADH₂ yields less ATP than NADH because it bypasses one proton-pumping complex."),

    ("Oxidative Phosphorylation",
     "What is the fate of the proton gradient (Δψ) across inner mitochondrial membrane?",
     "Generated by: Complexes I, III, IV pumping H⁺ into intermembrane space\n\n"
     "Normally: H⁺ flows back through ATP synthase (Complex V) → ATP synthesis\n\n"
     "If uncoupled (e.g., by DNP, thermogenin/UCP1 in brown fat):\n"
     "→ H⁺ leaks back without making ATP → energy released as heat\n\n"
     "Clinical: Uncoupling is the mechanism of brown fat thermogenesis in neonates."),

    # ── GLUCONEOGENESIS ──────────────────────────────────────────
    ("Gluconeogenesis",
     "What is the fate of Lactate during fasting/exercise?",
     "→ Pyruvate (lactate dehydrogenase; oxidizes NADH → NAD⁺)\n"
     "→ Pyruvate → OAA (pyruvate carboxylase, mitochondria)\n"
     "→ OAA → PEP (PEPCK)\n"
     "→ PEP → Glucose (gluconeogenesis)\n\n"
     "This is the Cori cycle: liver converts muscle lactate → glucose;\n"
     "glucose returns to muscle for further use."),

    ("Gluconeogenesis",
     "What is the fate of Glycerol (from fat breakdown during fasting)?",
     "→ Glycerol-3-phosphate (glycerol kinase, liver)\n"
     "→ DHAP (glycerol-3-P dehydrogenase)\n"
     "→ Enters gluconeogenesis or glycolysis\n\n"
     "Glycerol provides ~5% of gluconeogenic substrate during prolonged fasting.\n"
     "Note: Most cells lack glycerol kinase; only liver/kidney can use glycerol."),

    ("Gluconeogenesis",
     "What is the fate of Alanine from muscle during fasting?",
     "→ Pyruvate + NH₃ (alanine aminotransferase, liver)\n"
     "→ NH₃ → Urea cycle\n"
     "→ Pyruvate → OAA → PEP → Glucose\n\n"
     "This is the Glucose-Alanine Cycle (Cahill cycle):\n"
     "Muscle: glucose → pyruvate + glutamate → alanine\n"
     "Liver: alanine → pyruvate → glucose (returned to muscle)"),

    # ── GLYCOGEN METABOLISM ──────────────────────────────────────
    ("Glycogen Metabolism",
     "What is the fate of UDP-Glucose?",
     "Main fate: → Glycogen chain (glycogen synthase adds it to non-reducing end)\n\n"
     "Also:\n"
     "→ UDP-Galactose (galactose-1-P uridyl transferase) — lactose synthesis\n"
     "→ Glucuronate formation — detoxification in liver\n"
     "→ Synthesis of glycoproteins and proteoglycans\n\n"
     "UDP-Glucose is the activated donor for glycogen synthesis."),

    ("Glycogen Metabolism",
     "What is the fate of Glucose-1-Phosphate released from glycogen?",
     "→ Glucose-6-phosphate (phosphoglucomutase)\n"
     "Then:\n"
     "• Liver/kidney: G6P → Glucose (glucose-6-phosphatase) → blood glucose\n"
     "• Muscle: G6P → enters glycolysis directly (no G6Pase in muscle)\n\n"
     "This explains why muscle glycogen cannot directly raise blood glucose."),

    # ── BETA-OXIDATION ───────────────────────────────────────────
    ("Beta-Oxidation",
     "What is the fate of Fatty Acyl-CoA in beta-oxidation?",
     "Each cycle removes 2 carbons:\n"
     "Fatty Acyl-CoA (n carbons) →\n"
     "  Fatty Acyl-CoA (n-2 carbons) + Acetyl-CoA + NADH + FADH₂\n\n"
     "Acetyl-CoA fates:\n"
     "1. → TCA cycle (energy, fed/exercise)\n"
     "2. → Ketone bodies (fasting, if OAA limiting)\n"
     "3. → Cholesterol/steroid synthesis"),

    ("Beta-Oxidation",
     "What is the fate of Malonyl-CoA in fatty acid metabolism?",
     "Malonyl-CoA is the first committed intermediate of FA synthesis.\n\n"
     "Synthesized by: Acetyl-CoA carboxylase (ACC)\n"
     "Activated by: insulin, citrate\n"
     "Inhibited by: glucagon, fasting, AMPK\n\n"
     "Key regulatory role: Malonyl-CoA INHIBITS carnitine\n"
     "palmitoyltransferase I (CPT-I) → blocks FA import into mitochondria\n"
     "→ prevents simultaneous FA synthesis AND oxidation."),

    ("Beta-Oxidation",
     "What is the role and fate of Carnitine in beta-oxidation?",
     "Carnitine shuttles long-chain fatty acyl groups across inner mitochondrial membrane.\n\n"
     "Steps:\n"
     "1. Fatty acyl-CoA + Carnitine → Acylcarnitine (CPT-I, outer membrane)\n"
     "2. Acylcarnitine enters mitochondria via translocase\n"
     "3. Acylcarnitine → Fatty acyl-CoA + Carnitine (CPT-II, inner membrane)\n\n"
     "CPT-I is the rate-limiting step of beta-oxidation.\n"
     "Carnitine deficiency → fatty acid oxidation defect → hypoglycemia + muscle weakness."),

    # ── FATTY ACID SYNTHESIS ─────────────────────────────────────
    ("Fatty Acid Synthesis",
     "What is the fate of Acetyl-CoA in the cytoplasm (FA synthesis)?",
     "→ Malonyl-CoA (acetyl-CoA carboxylase, rate-limiting)\n"
     "→ Used as 2C donor by fatty acid synthase (FAS)\n"
     "→ Each cycle adds 2 carbons to the growing chain\n\n"
     "Final product after 7 cycles: Palmitate (16:0)\n"
     "Requires: 7 malonyl-CoA + 1 acetyl-CoA + 14 NADPH"),

    ("Fatty Acid Synthesis",
     "What is the fate of NADPH in anabolic pathways?",
     "NADPH is the key reductive cofactor for biosynthesis:\n"
     "1. FA synthesis — H donor for FAS\n"
     "2. Cholesterol synthesis — multiple reduction steps\n"
     "3. Glutathione reductase — antioxidant defense (RBCs)\n"
     "4. Cytochrome P450 reactions — drug/steroid metabolism\n\n"
     "Sources of NADPH:\n"
     "• Pentose phosphate pathway (main source)\n"
     "• Malic enzyme (malate → pyruvate)\n"
     "• Isocitrate dehydrogenase (cytosolic isoform)"),

    # ── UREA CYCLE ───────────────────────────────────────────────
    ("Urea Cycle",
     "What is the fate of NH₃ (Ammonia) in the body?",
     "Ammonia is TOXIC (especially to brain — causes cerebral edema).\n\n"
     "Transport to liver:\n"
     "• Glutamine (main form in blood): Glu + NH₃ → Gln (glutamine synthetase)\n"
     "• Alanine (from muscle): carries NH₃ from muscle to liver\n\n"
     "In liver:\n"
     "→ NH₃ + HCO₃⁻ → Carbamoyl phosphate (CPS I, mitochondria)\n"
     "→ Enters urea cycle → Urea (excreted by kidney)\n\n"
     "Clinical: CPS I deficiency → hyperammonemia"),

    ("Urea Cycle",
     "What is the fate of Citrulline in the urea cycle?",
     "Synthesized in mitochondria (ornithine + carbamoyl phosphate)\n"
     "→ Transported to cytosol (via ornithine-citrulline antiporter)\n"
     "→ Combines with Aspartate → Argininosuccinate (ATP required)\n"
     "→ Argininosuccinate → Arginine + Fumarate\n\n"
     "Fumarate re-enters TCA cycle (links urea cycle to TCA)\n"
     "Arginine → Ornithine + Urea (arginase)\n"
     "Defect in OTC (ornithine transcarbamylase) → citrullinemia/hyperammonemia"),

    ("Urea Cycle",
     "What is the fate of Ornithine in the urea cycle?",
     "Ornithine is the carrier/regenerating molecule of the urea cycle\n"
     "(analogous to OAA in TCA cycle)\n\n"
     "Accepts carbamoyl group → Citrulline (in mitochondria)\n"
     "Regenerated by arginase at end of cycle\n"
     "Transported back into mitochondria via antiporter\n\n"
     "Also: Ornithine → Polyamines (spermine, spermidine)\n"
     "→ important for cell growth and proliferation"),

    # ── PENTOSE PHOSPHATE PATHWAY ────────────────────────────────
    ("Pentose Phosphate Pathway",
     "What is the fate of Glucose-6-Phosphate in the PPP?",
     "Oxidative branch (irreversible):\n"
     "G6P → 6-Phosphogluconolactone → 6-Phosphogluconate\n"
     "→ Ribulose-5-P + CO₂ + 2 NADPH\n"
     "Enzyme: G6PD (glucose-6-phosphate dehydrogenase) — rate-limiting\n\n"
     "Non-oxidative branch (reversible):\n"
     "Ribulose-5-P ↔ Ribose-5-P (for nucleotide synthesis)\n"
     "or ↔ F6P + G3P (feeds back into glycolysis)\n\n"
     "Clinical: G6PD deficiency → hemolytic anemia with oxidant stress"),

    ("Pentose Phosphate Pathway",
     "What is the fate of Ribose-5-Phosphate?",
     "Two main fates:\n"
     "1. → Nucleotide synthesis\n"
     "   R5P + ATP → PRPP (phosphoribosyl pyrophosphate)\n"
     "   PRPP → purines, pyrimidines, NAD⁺, FAD, CoA\n\n"
     "2. Non-oxidative branch → F6P + G3P → back to glycolysis\n"
     "   (when NADPH needed but nucleotides are not)"),

    # ── KETONE BODY METABOLISM ───────────────────────────────────
    ("Ketone Body Metabolism",
     "What is the fate of HMG-CoA in the liver mitochondria?",
     "→ Acetoacetate + Acetyl-CoA (HMG-CoA lyase)\n"
     "This is KETOGENESIS — occurs only in LIVER mitochondria\n\n"
     "Acetoacetate fates:\n"
     "1. → β-Hydroxybutyrate (main blood transport form)\n"
     "2. → Acetone (spontaneous; exhaled)\n\n"
     "Note: HMG-CoA is also used for cholesterol synthesis — but that\n"
     "pathway is in the CYTOSOL. Location determines fate."),

    ("Ketone Body Metabolism",
     "What is the fate of Acetoacetate in peripheral tissues?",
     "Peripheral tissues (brain, muscle, heart) USE ketones:\n"
     "Acetoacetate + Succinyl-CoA → Acetoacetyl-CoA + Succinate\n"
     "Enzyme: Succinyl-CoA transferase (thiophorase)\n"
     "→ Acetoacetyl-CoA → 2 Acetyl-CoA → TCA → ATP\n\n"
     "Liver LACKS thiophorase → cannot use its own ketones\n\n"
     "Brain: Normally uses glucose; after ~2–3 weeks starvation,\n"
     "ketones supply ~60–70% of brain energy."),
]

# ── Build PDF ────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.8*cm, rightMargin=1.8*cm,
    topMargin=1.8*cm, bottomMargin=1.8*cm,
    title="Biochemistry Pathway Intermediates — Flashcard Deck",
    author="Orris Medical"
)

styles = getSampleStyleSheet()

# Custom styles
STYLE_COVER_TITLE = ParagraphStyle(
    "CoverTitle", parent=styles["Title"],
    fontSize=28, textColor=C_WHITE, alignment=TA_CENTER,
    spaceAfter=6, leading=34
)
STYLE_COVER_SUB = ParagraphStyle(
    "CoverSub", parent=styles["Normal"],
    fontSize=13, textColor=colors.HexColor("#BDD0F5"), alignment=TA_CENTER,
    spaceAfter=4
)
STYLE_SECTION = ParagraphStyle(
    "Section", parent=styles["Heading1"],
    fontSize=15, textColor=C_WHITE, alignment=TA_LEFT,
    spaceAfter=2, leading=18, leftIndent=8
)
STYLE_CARD_Q = ParagraphStyle(
    "CardQ", parent=styles["Normal"],
    fontSize=11, textColor=C_BLACK, leading=15,
    spaceAfter=2
)
STYLE_CARD_A = ParagraphStyle(
    "CardA", parent=styles["Normal"],
    fontSize=10.5, textColor=C_BLACK, leading=14.5,
    spaceAfter=2
)
STYLE_LABEL = ParagraphStyle(
    "Label", parent=styles["Normal"],
    fontSize=8, textColor=colors.HexColor("#888888"),
    alignment=TA_LEFT, spaceBefore=0
)
STYLE_FOOTER = ParagraphStyle(
    "Footer", parent=styles["Normal"],
    fontSize=8, textColor=colors.HexColor("#AAAAAA"), alignment=TA_CENTER
)

PAGE_W = A4[0] - 3.6*cm  # usable width

def make_header_table(text, bg_color):
    """Full-width coloured section header bar."""
    p = Paragraph(text, STYLE_SECTION)
    t = Table([[p]], colWidths=[PAGE_W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg_color),
        ("ROUNDEDCORNERS", [6]),
        ("LEFTPADDING",  (0,0), (-1,-1), 10),
        ("RIGHTPADDING", (0,0), (-1,-1), 10),
        ("TOPPADDING",   (0,0), (-1,-1), 7),
        ("BOTTOMPADDING",(0,0), (-1,-1), 7),
    ]))
    return t

def make_flashcard(q_text, a_text, card_bg, card_num):
    """A single flashcard as a bordered table with Q on top, A below."""
    q_label = Paragraph("QUESTION", ParagraphStyle("QL", parent=STYLE_LABEL,
        textColor=C_BLUE, fontSize=7.5, fontName="Helvetica-Bold"))
    a_label = Paragraph("ANSWER / FATE", ParagraphStyle("AL", parent=STYLE_LABEL,
        textColor=C_GREEN, fontSize=7.5, fontName="Helvetica-Bold"))
    num_p = Paragraph(f"#{card_num}", ParagraphStyle("Num", parent=STYLE_LABEL,
        textColor=colors.HexColor("#BBBBBB"), alignment=TA_LEFT, fontSize=8))

    q_para = Paragraph(q_text, ParagraphStyle("QP", parent=STYLE_CARD_Q,
        fontName="Helvetica-Bold", fontSize=11))
    a_para = Paragraph(a_text.replace("\n", "<br/>"), STYLE_CARD_A)

    divider = HRFlowable(width="100%", thickness=1, color=colors.HexColor("#DDDDDD"),
                         spaceAfter=4, spaceBefore=4)

    data = [[
        [num_p, q_label, Spacer(1, 3), q_para,
         divider,
         a_label, Spacer(1, 3), a_para]
    ]]
    t = Table(data, colWidths=[PAGE_W - 1.6*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,-1), card_bg),
        ("BOX",          (0,0), (-1,-1), 1.2, colors.HexColor("#D0D8EC")),
        ("ROUNDEDCORNERS", [8]),
        ("LEFTPADDING",  (0,0), (-1,-1), 14),
        ("RIGHTPADDING", (0,0), (-1,-1), 14),
        ("TOPPADDING",   (0,0), (-1,-1), 10),
        ("BOTTOMPADDING",(0,0), (-1,-1), 10),
    ]))
    return t

# ── Cover page ───────────────────────────────────────────────────
def cover_flowables():
    items = []
    # Navy cover block
    cover_data = [[
        [
            Spacer(1, 1.2*cm),
            Paragraph("BIOCHEMISTRY", STYLE_COVER_TITLE),
            Paragraph("Pathway Intermediates &amp; Their Fates", STYLE_COVER_TITLE),
            Spacer(1, 0.4*cm),
            Paragraph("Flashcard Deck", STYLE_COVER_SUB),
            Spacer(1, 0.2*cm),
            Paragraph("30 Cards · 10 Pathways", STYLE_COVER_SUB),
            Spacer(1, 0.6*cm),
            Paragraph("Glycolysis · TCA Cycle · Oxidative Phosphorylation · Gluconeogenesis", STYLE_COVER_SUB),
            Paragraph("Glycogen Metabolism · Beta-Oxidation · Fatty Acid Synthesis", STYLE_COVER_SUB),
            Paragraph("Urea Cycle · Pentose Phosphate Pathway · Ketone Body Metabolism", STYLE_COVER_SUB),
            Spacer(1, 1.2*cm),
        ]
    ]]
    cover_table = Table(cover_data, colWidths=[PAGE_W])
    cover_table.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,-1), C_NAVY),
        ("ROUNDEDCORNERS", [12]),
        ("LEFTPADDING",  (0,0), (-1,-1), 20),
        ("RIGHTPADDING", (0,0), (-1,-1), 20),
        ("TOPPADDING",   (0,0), (-1,-1), 10),
        ("BOTTOMPADDING",(0,0), (-1,-1), 10),
    ]))
    items.append(cover_table)
    items.append(Spacer(1, 0.8*cm))

    # How to use box
    how_data = [[
        Paragraph(
            "<b>How to Use:</b> Cover the ANSWER section and try to recall the fate of each intermediate. "
            "Check your answer by reading the ANSWER / FATE section. "
            "Cards are grouped by pathway and colour-coded for easy navigation.",
            ParagraphStyle("HowTo", parent=styles["Normal"],
                fontSize=10, textColor=C_BLACK, leading=14)
        )
    ]]
    how_table = Table(how_data, colWidths=[PAGE_W])
    how_table.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,-1), colors.HexColor("#FFF8E1")),
        ("BOX",          (0,0), (-1,-1), 1, C_ACCENT),
        ("ROUNDEDCORNERS", [6]),
        ("LEFTPADDING",  (0,0), (-1,-1), 14),
        ("RIGHTPADDING", (0,0), (-1,-1), 14),
        ("TOPPADDING",   (0,0), (-1,-1), 10),
        ("BOTTOMPADDING",(0,0), (-1,-1), 10),
    ]))
    items.append(how_table)
    items.append(PageBreak())
    return items

# ── Group cards by category ──────────────────────────────────────
from collections import OrderedDict
grouped = OrderedDict()
for card in CARDS:
    cat = card[0]
    grouped.setdefault(cat, []).append(card)

# ── Build story ──────────────────────────────────────────────────
story = cover_flowables()

card_num = 1
for cat, cards_in_cat in grouped.items():
    hdr_bg, card_bg = CAT_COLOURS.get(cat, (C_NAVY, C_GRAY_LT))
    story.append(make_header_table(f"  {cat}", hdr_bg))
    story.append(Spacer(1, 0.25*cm))

    for _, q, a in cards_in_cat:
        fc = make_flashcard(q, a, card_bg, card_num)
        story.append(KeepTogether([fc, Spacer(1, 0.3*cm)]))
        card_num += 1

    story.append(Spacer(1, 0.4*cm))

# ── Build ────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF written: {OUTPUT}")
print(f"Total cards: {card_num - 1}")
Running Command

cd /home/daytona/workspace/biochem-flashcards && python make_flashcards.py

Running Command

ls -lh /home/daytona/workspace/biochem-flashcards/Biochemistry_Flashcards.pdf

Your flashcard deck is ready!

Biochemistry Flashcards

PDF Document · PDF


What's inside - 33 cards across 10 pathways:
PathwayCardsColour
Glycolysis6Blue
TCA Cycle6Green
Oxidative Phosphorylation3Navy
Gluconeogenesis3Red
Glycogen Metabolism2Purple
Beta-Oxidation3Orange
Fatty Acid Synthesis2Teal
Urea Cycle3Red
Pentose Phosphate Pathway2Green
Ketone Body Metabolism2Orange
Key intermediates covered: G6P, F-1,6-BP, Pyruvate, DHAP, 1,3-BPG, PEP, Acetyl-CoA, Citrate, Isocitrate, α-KG, Succinyl-CoA, OAA, Fumarate, NADH, FADH₂, Lactate, Glycerol, Alanine, UDP-Glucose, Malonyl-CoA, Carnitine, NH₃, Citrulline, Ornithine, Ribose-5-P, HMG-CoA, Acetoacetate, and more.
Each card shows the QUESTION (the intermediate) on top and the ANSWER / FATE below - cover the bottom half to quiz yourself.
This is a shared conversation. Sign in to Orris to start your own chat.