• Physiology: Nerve muscle physiology, Synapse, Special senses • Biochemistry: Vitamins and Mineral metabolism

Asking for Preferences

What do you need for these topics? · What is your level / exam context?

Imp topic for pre university theory exam so write the way i write in exam for full marks

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Here are your complete exam-style notes, written the way you would write them in a pre-university theory exam for full marks. Each section has definitions, labeled points, diagrams (described for drawing), and key facts examiners look for.

PHYSIOLOGY


UNIT 1: NERVE MUSCLE PHYSIOLOGY


Q. What is a Nerve Fiber? Classify it.

Nerve fiber is an axon together with its covering (myelin sheath or neurilemma) that transmits nerve impulses.
Classification of Nerve Fibers:
TypeMyelinDiameterVelocityFunction
A (alpha)MyelinatedLarge70-120 m/sMotor to skeletal muscle
A (beta/gamma/delta)MyelinatedMedium15-70 m/sTouch, pressure, pain
BMyelinatedSmall3-15 m/sPreganglionic autonomic
CUnmyelinatedSmallest0.5-2 m/sPain, temperature, postganglionic

Q. What is Resting Membrane Potential (RMP)? Explain its mechanism.

Definition: The electrical potential difference across the cell membrane when the cell is at rest is called Resting Membrane Potential.
Value: -70 mV (inside negative relative to outside)
Mechanism:
  1. Selective permeability - at rest, membrane is more permeable to K+ than Na+
  2. K+ diffuses out along concentration gradient → inside becomes negative
  3. Na+ is kept out - Na+/K+ ATPase pump actively transports 3 Na+ out and 2 K+ in
  4. Large negatively charged proteins remain inside the cell → maintain negativity
  5. Donnan equilibrium - K+ distribution reaches equilibrium between chemical and electrical forces
Result: Inside of cell = -70 mV (negative)

Q. Describe the Action Potential of a nerve fiber with a diagram.

Definition: A rapid, transient change in membrane potential that occurs when a nerve fiber is stimulated is called an Action Potential.
Phases (for exam diagram - draw a spike):
1. Resting Phase: Membrane potential = -70 mV
2. Depolarization (Rising Phase):
  • Stimulus opens voltage-gated Na+ channels
  • Na+ rushes INTO the cell (Na+ influx)
  • Membrane potential rises from -70 mV to +35 mV
  • This is called "overshoot"
3. Repolarization (Falling Phase):
  • Na+ channels close (inactivation)
  • Voltage-gated K+ channels open → K+ flows OUT
  • Membrane potential falls back toward -70 mV
4. Hyperpolarization (After-potential):
  • K+ channels close slowly → membrane goes below -70 mV (about -90 mV)
  • Na+/K+ pump restores ionic balance → returns to -70 mV
All-or-None Law: An action potential either occurs fully or not at all - it does not vary in amplitude with strength of stimulus.
Refractory Period:
  • Absolute refractory period - No stimulus can generate another AP (Na+ channels inactivated)
  • Relative refractory period - Only a stronger than normal stimulus can generate AP

Q. What is Saltatory Conduction?

Definition: Conduction of nerve impulse by jumping from one Node of Ranvier to the next in myelinated nerve fibers is called Saltatory Conduction.
Mechanism:
  1. Myelinated fibers have insulating myelin sheath between Nodes of Ranvier
  2. Ionic current can only flow at the nodes (where membrane is exposed)
  3. Depolarization at one node creates local current that jumps to the next node
  4. The impulse "jumps" from node to node
Advantages:
  • Much faster conduction velocity (up to 120 m/s in myelinated vs. 0.5 m/s in unmyelinated)
  • Energy efficient (only nodes depolarize, less Na+/K+ pump activity needed)

Q. Describe Neuromuscular Transmission (NMJ - Neuromuscular Junction).

Definition: The junction between the terminal end of a motor nerve and the skeletal muscle fiber is called the Neuromuscular Junction.
Structure:
  • Motor nerve terminal (presynaptic)
  • Synaptic cleft (gap of ~20-50 nm)
  • Motor end plate (postsynaptic - thickened muscle membrane with junctional folds)
  • Synaptic vesicles contain Acetylcholine (ACh)
  • Nicotinic receptors (NM type) on postsynaptic membrane at tops of junctional folds
Steps of Neuromuscular Transmission:
  1. Nerve action potential arrives at the motor nerve terminal
  2. Depolarization opens voltage-gated Ca2+ channels → Ca2+ enters the terminal
  3. Ca2+ triggers exocytosis of synaptic vesicles → ACh is released into synaptic cleft
  4. ACh diffuses across the cleft and binds to nicotinic receptors on motor endplate
  5. Receptor activation opens Na+/K+ channels → Na+ influx → produces Endplate Potential (EPP)
  6. EPP depolarizes adjacent muscle membrane → generates muscle action potential
  7. Muscle action potential spreads along muscle fiber and causes contraction
  8. ACh is broken down by Acetylcholinesterase (AChE) → choline is taken back up (reuptake)
Drugs acting at NMJ:
  • Curare / Tubocurarine - competitive blocker (non-depolarizing)
  • Succinylcholine - depolarizing blocker
  • Neostigmine - inhibits AChE (increases ACh)

Q. Describe the mechanism of Muscle Contraction (Sliding Filament Theory).

Sliding Filament Theory (Huxley & Hanson, 1954): Muscle contraction occurs by the sliding of thin (actin) filaments over thick (myosin) filaments without any change in the length of the filaments themselves.
Steps:
  1. Muscle AP spreads down the T-tubules into the muscle fiber
  2. T-tubules are connected to the Sarcoplasmic Reticulum (SR)
  3. SR releases Ca2+ into the sarcoplasm
  4. Ca2+ binds to Troponin C (on thin filament)
  5. Troponin-tropomyosin complex shifts → actin active sites exposed
  6. Myosin cross-bridge attaches to actin active site
  7. Power stroke - myosin head rotates (uses ATP hydrolysis) → thin filament slides inward
  8. New ATP binds to myosin → cross-bridge detaches → myosin returns to original position
  9. Cycle repeats → sarcomere shortens → muscle contracts
  10. When stimulation stops, Ca2+ pumped back into SR → Troponin-Tropomyosin covers actin sites again → relaxation
Key proteins: Actin, Myosin, Tropomyosin, Troponin (C, I, T)

UNIT 2: SYNAPSE


Q. Define Synapse. Describe the types and properties of synapses.

Definition: A synapse is a specialized junction between two neurons (or between a neuron and an effector cell) through which nerve impulses are transmitted from one cell to another.
Parts of a Synapse:
  • Presynaptic terminal (knob): Contains mitochondria and synaptic vesicles with neurotransmitters
  • Synaptic cleft: Gap between pre and postsynaptic membranes (~20-50 nm)
  • Postsynaptic membrane: Has specific receptors for neurotransmitters
Types of Synapses:
FeatureChemical SynapseElectrical Synapse
TransmissionVia neurotransmitterVia gap junctions (ionic current)
DirectionOne-way (unidirectional)Bidirectional
Synaptic delay0.3-0.5 msNo delay
SiteCNS, NMJHeart, smooth muscle, CNS (rare)
ExampleMost CNS synapsesCardiac muscle
Properties of Synapses:
  1. One-way conduction - impulse passes only from pre to post synaptic neuron
  2. Synaptic delay - 0.3 to 0.5 ms delay due to release and diffusion of neurotransmitter
  3. Fatigue - repeated stimulation depletes neurotransmitter stores
  4. Summation - EPSP's can summate (spatial and temporal)
  5. Convergence - many neurons synapse on one neuron
  6. Divergence - one neuron synapses on many neurons
  7. After-discharge - continued discharge after stimulus ends

Q. What are Excitatory Post-Synaptic Potentials (EPSP) and Inhibitory Post-Synaptic Potentials (IPSP)?

EPSP (Excitatory Post-Synaptic Potential):
  • When an excitatory neurotransmitter (e.g., Glutamate) is released and binds to receptors
  • Opens Na+/K+ channels → Na+ influx → depolarization of postsynaptic membrane
  • Membrane potential moves from -70 mV toward threshold (-55 mV)
  • Does NOT generate AP by itself, but brings membrane closer to threshold
IPSP (Inhibitory Post-Synaptic Potential):
  • When an inhibitory neurotransmitter (e.g., GABA) is released
  • Opens Cl- channels (or K+ channels) → Cl- influx (or K+ efflux) → hyperpolarization
  • Membrane potential moves further from threshold (e.g., -70 to -80 mV)
  • Makes it harder to fire an AP
Summation:
  • Temporal summation - repeated impulses from ONE neuron arrive rapidly → EPSPs add up
  • Spatial summation - impulses from MANY neurons arrive simultaneously → EPSPs add up
  • When summated EPSP reaches threshold (-55 mV) → Action Potential is generated

Q. Write about important neurotransmitters.

NeurotransmitterLocationEffectReceptor
Acetylcholine (ACh)NMJ, ANS, brainExcitatory (mostly)Nicotinic, Muscarinic
GlutamateCNS (most common excitatory)ExcitatoryNMDA, AMPA
GABACNS (most common inhibitory)InhibitoryGABA-A, GABA-B
DopamineBasal ganglia, limbicExcit./Inhib.D1, D2
Serotonin (5-HT)Raphe nuclei, limbicMood, sleep5-HT receptors
NorepinephrineSympathetic NS, brainExcitatoryAlpha, Beta
GlycineSpinal cordInhibitoryGlycine receptor

UNIT 3: SPECIAL SENSES


Q. Describe the mechanism of Vision / Photoreception.

Eye - Photoreceptors: Located in the retina
  • Rods - for dim light / black & white vision; contain Rhodopsin (visual purple)
  • Cones - for bright light / color vision; contain Iodopsin; 3 types (Red, Green, Blue)
Mechanism of Phototransduction (Rods - Rhodopsin cycle):
  1. Rhodopsin = Opsin (protein) + 11-cis-retinal (Vitamin A derivative)
  2. Light hits rhodopsin → 11-cis-retinal converts to all-trans-retinal (bleaching)
  3. This conformational change activates Transducin (G-protein)
  4. Transducin activates Phosphodiesterase (PDE)
  5. PDE breaks down cGMP → cGMP levels fall
  6. Fall in cGMP → Na+ channels close → Na+ entry stops
  7. Membrane hyperpolarizes (from -40 mV to -70 mV)
  8. This hyperpolarization is the receptor potential → transmitted as visual signal
  9. In dark: Na+ channels open (dark current) → rod is depolarized
  10. Recovery: all-trans-retinal is converted back to 11-cis-retinal (needs Vitamin A)
Note: Deficiency of Vitamin A → Night Blindness (Nyctalopia) - cannot regenerate rhodopsin
Visual Pathway: Retina → Optic nerve → Optic chiasma → Optic tract → Lateral Geniculate Nucleus (LGN) of thalamus → Visual cortex (Occipital lobe, Area 17)

Q. Describe the mechanism of Hearing / Auditory Physiology.

Structure: Sound waves → External auditory canal → Tympanic membrane (eardrum) → Ossicles (Malleus, Incus, Stapes) → Oval window → Cochlea
Mechanism:
  1. Sound waves cause vibration of tympanic membrane
  2. Vibration transmitted through ossicular chain (Malleus → Incus → Stapes)
  3. Stapes vibrates against oval window → produces waves in perilymph of cochlea
  4. Perilymph waves cause movement of basilar membrane
  5. Basilar membrane movement deflects hair cells of the Organ of Corti
  6. Stereocilia of hair cells bend → K+ channels open → K+ enters from endolymph
  7. Hair cell depolarizes → releases neurotransmitter (Glutamate)
  8. Cochlear nerve (CN VIII) transmits impulse to brain
Frequency discrimination (Place Theory - von Bekesy):
  • High frequency sounds cause maximum vibration at the base of cochlea
  • Low frequency sounds cause maximum vibration at the apex of cochlea
Auditory Pathway: Organ of Corti → Cochlear nerve (CN VIII) → Cochlear nuclei → Superior Olivary nuclei → Inferior Colliculus → Medial Geniculate Nucleus → Auditory cortex (Temporal lobe, Area 41/42)

Q. Write about Taste (Gustation) and Smell (Olfaction) briefly.

Taste (Gustation):
  • Receptor: Taste buds on tongue (papillae - fungiform, circumvallate, foliate)
  • 5 primary tastes: Sweet, Sour, Salty, Bitter, Umami (savory)
  • Nerve supply: Anterior 2/3 tongue - Chorda tympani (CN VII); Posterior 1/3 tongue - CN IX
  • Pathway: → Nucleus Tractus Solitarius → Thalamus → Gustatory cortex (parietal lobe)
Smell (Olfaction):
  • Receptor: Olfactory receptor neurons in olfactory epithelium (superior nasal cavity)
  • Mechanism: Odorant binds to receptor → G-protein → adenylyl cyclase → cAMP → opens cation channels → depolarization
  • Pathway: Olfactory nerve (CN I) → Olfactory bulb → Olfactory cortex (pyriform cortex)
  • Only sense that does NOT relay through thalamus (direct to cortex)
  • Anosmia = loss of smell (seen in COVID-19, head injury)


BIOCHEMISTRY


UNIT 4: VITAMINS


Q. Classify vitamins. Write about Fat-Soluble Vitamins.

Classification:
Fat SolubleWater Soluble
VitaminsA, D, E, KB-complex, C
StorageLiver and fat tissueNot stored (excreted in urine)
ToxicityCan cause toxicity (stored)Less toxic

FAT-SOLUBLE VITAMINS

VITAMIN A (Retinol)

Sources: Liver, egg yolk, dairy, fish oil; Beta-carotene (pro-vitamin A) from carrots, green leafy vegetables
Active forms: Retinol, Retinal, Retinoic acid; 11-cis-retinal (for vision)
Functions:
  1. Vision - component of Rhodopsin (11-cis-retinal + opsin); essential for dark adaptation
  2. Growth and differentiation - regulates gene expression via nuclear receptors (RAR, RXR)
  3. Epithelial integrity - maintains mucus-secreting epithelium (prevents keratinization)
  4. Immune function - anti-infective vitamin
  5. Reproduction - spermatogenesis, fetal development
Deficiency:
  • Night blindness (Nyctalopia) - earliest sign
  • Xerophthalmia - dryness of conjunctiva and cornea
  • Bitot's spots - triangular foamy patches on conjunctiva (pathognomonic)
  • Keratomalacia - corneal softening → blindness
  • Xerosis - dry, scaly skin
  • Follicular hyperkeratosis - toad skin appearance
  • Increased susceptibility to infections
Toxicity (Hypervitaminosis A):
  • Headache, vomiting, skin desquamation
  • Pseudotumor cerebri (raised intracranial pressure)
  • Teratogenic in pregnancy

VITAMIN D (Calciferol)

Sources:
  • Dietary: Fatty fish, egg yolk, dairy, fish liver oil
  • Skin synthesis (major source): 7-dehydrocholesterol → UV light → Cholecalciferol (Vitamin D3)
Activation (Metabolism): 7-dehydrocholesterol → (UV light, skin) → Vitamin D3 (Cholecalciferol) → (25-hydroxylase, liver) → 25-OH Vitamin D3 (Calcidiol) → (1-alpha-hydroxylase, kidney) → 1,25-(OH)2 Vitamin D3 (Calcitriol) = Active form
Functions (of Calcitriol):
  1. Increases Ca2+ absorption from intestine (induces calcium-binding protein - Calbindin)
  2. Increases phosphate absorption from intestine
  3. Renal reabsorption of Ca2+ and phosphate
  4. Bone mineralization - works with PTH
  5. Immune regulation, cell differentiation
Deficiency:
  • Children: Rickets
    • Bowing of legs, knock knees, frontal bossing
    • Rachitic rosary (beading of ribs at costochondral junction)
    • Harrison's groove, Pigeon chest
    • Delayed closure of fontanelle
    • Craniotabes (softening of skull)
  • Adults: Osteomalacia - softening of bones, bone pain, fractures
  • Elderly: Risk of Osteoporosis
  • Hypocalcemic tetany (carpopedal spasm, Chvostek's sign, Trousseau's sign)
Lab findings in Rickets:
  • Low serum calcium, Low phosphate
  • Raised Alkaline Phosphatase (ALP)
  • Low 25-OH Vitamin D

VITAMIN E (Tocopherol)

Sources: Vegetable oils, nuts, seeds, wheat germ
Functions:
  1. Antioxidant - major lipid-soluble antioxidant, protects polyunsaturated fatty acids (PUFA) from peroxidation
  2. Protects RBC membrane from hemolysis
  3. Protects cell membranes generally
Deficiency:
  • Hemolytic anemia in premature infants
  • Peripheral neuropathy (posterior column degeneration)
  • Ataxia, areflexia
  • Retinopathy in premature infants

VITAMIN K (Phylloquinone / Menaquinone)

Forms:
  • K1 (Phylloquinone) - from plants
  • K2 (Menaquinone) - from gut bacteria
  • K3 (Menadione) - synthetic
Functions:
  1. Blood coagulation - cofactor for gamma-carboxylation of clotting factors II (Prothrombin), VII, IX, X, Protein C, Protein S
  2. Bone metabolism - carboxylation of osteocalcin
Mechanism: Vitamin K (reduced form - KH2) is oxidized while activating clotting factor precursors → converted back by Vitamin K epoxide reductase (VKOR) → Warfarin inhibits this enzyme
Deficiency:
  • Bleeding tendency - prolonged Prothrombin Time (PT)
  • Hemorrhagic disease of newborn - newborns lack gut bacteria to synthesize K2 (Prevented by Vitamin K injection at birth)
  • Deficiency with fat malabsorption (bile salt deficiency, liver disease)

WATER-SOLUBLE VITAMINS (Key ones)

VITAMIN B1 (Thiamine)

Active form: Thiamine Pyrophosphate (TPP)
Functions (as TPP - coenzyme for):
  1. Pyruvate dehydrogenase (Pyruvate → Acetyl CoA)
  2. Alpha-ketoglutarate dehydrogenase (Krebs cycle)
  3. Transketolase (HMP shunt)
  4. Branched-chain keto acid dehydrogenase
Deficiency:
  • Dry Beriberi - peripheral neuropathy (sensory > motor)
  • Wet Beriberi - cardiac failure + peripheral neuropathy + edema
  • Wernicke's Encephalopathy - confusion, ataxia, ophthalmoplegia (3 triad)
  • Korsakoff's Psychosis - confabulation, anterograde amnesia (chronic)
  • Common in alcoholics and polished rice eaters

VITAMIN B2 (Riboflavin)

Active forms: FMN (Flavin Mononucleotide), FAD (Flavin Adenine Dinucleotide)
Functions: Coenzyme in oxidation-reduction reactions (oxidative phosphorylation, fatty acid oxidation, etc.)
Deficiency:
  • Cheilosis (cracks at angles of mouth = angular stomatitis)
  • Glossitis (magenta/raw tongue)
  • Corneal vascularization
  • Seborrheic dermatitis
  • 3 C's: Cheilosis, Corneal vascularization, Confusion

VITAMIN B3 (Niacin / Nicotinic acid)

Active forms: NAD+ / NADH, NADP+ / NADPH
Functions: Coenzyme in 500+ redox reactions; HDL increase (pharmacological dose)
Deficiency - PELLAGRA (3 D's + 1 D):
  • Dermatitis - photosensitive skin lesions (Casal's necklace - rash around neck)
  • Diarrhea
  • Dementia
  • Death (if untreated)
Note: Synthesized from Tryptophan (60 mg tryptophan = 1 mg Niacin); Deficiency in Hartnup disease and carcinoid syndrome

VITAMIN B6 (Pyridoxine)

Active form: Pyridoxal Phosphate (PLP)
Functions: Transamination, decarboxylation, synthesis of heme, neurotransmitters (serotonin, dopamine, GABA)
Deficiency:
  • Peripheral neuropathy (also caused by INH - Isoniazid which is treated with B6)
  • Sideroblastic anemia
  • Convulsions in infants

VITAMIN B9 (Folic Acid)

Active form: Tetrahydrofolate (THF)
Functions: One-carbon transfer reactions, DNA synthesis (thymidylate synthesis), amino acid metabolism
Deficiency:
  • Megaloblastic anemia (macro-ovalocytes, hypersegmented neutrophils)
  • Neural tube defects (anencephaly, spina bifida) in fetus if deficient in mother during pregnancy
  • Glossitis, diarrhea
Note: Supplementation before and during early pregnancy is essential to prevent NTDs

VITAMIN B12 (Cobalamin)

Active forms: Methylcobalamin, Adenosylcobalamin
Functions:
  1. Methylcobalamin - Methionine synthesis (methyl-THF + homocysteine → methionine; recycles THF)
  2. Adenosylcobalamin - Methylmalonyl-CoA → Succinyl-CoA (important in odd-chain FA metabolism)
Deficiency:
  • Megaloblastic anemia (similar to B9 but also has neurological features)
  • Subacute Combined Degeneration (SACD) of spinal cord - posterior column + corticospinal tract
    • Symptoms: Loss of proprioception and vibration, spastic weakness
  • Causes: Pernicious anemia (lack of Intrinsic Factor), vegan diet, gastrectomy
  • Schilling test used to diagnose cause
Difference from Folate deficiency: B12 deficiency has neurological features; folate deficiency does not.

VITAMIN C (Ascorbic Acid)

Functions:
  1. Collagen synthesis - hydroxylation of proline and lysine (requires Vitamin C as cofactor for prolyl hydroxylase and lysyl hydroxylase)
  2. Antioxidant
  3. Iron absorption - reduces Fe3+ to Fe2+ (better absorbed)
  4. Dopamine-beta-hydroxylase (norepinephrine synthesis)
  5. Immune function
Deficiency - SCURVY:
  • Bleeding gums (gingivitis, gum hemorrhage)
  • Perifollicular hemorrhages (around hair follicles)
  • Corkscrew hairs
  • Subperiosteal hemorrhage → bone pain
  • Poor wound healing
  • Scorbutic rosary - costochondral junction beading
  • Woody leg (brawny edema of legs)

UNIT 5: MINERAL METABOLISM


Q. Describe Calcium Metabolism.

Normal serum calcium: 8.5 - 10.5 mg/dL (2.1 - 2.6 mmol/L)
Body distribution: 99% in bones as hydroxyapatite [Ca10(PO4)6(OH)2]; 1% in blood and cells
Serum calcium forms:
  • 40% protein-bound (mainly albumin)
  • 10% complexed (citrate, phosphate)
  • 50% ionized Ca2+ (physiologically active)
Regulation of Calcium (3 hormones):
HormoneSourceEffect on Ca2+Effect on PO4-
PTH (Parathyroid Hormone)Parathyroid gland↑ serum Ca2+↓ serum PO4-
Calcitriol (Vitamin D)Kidney↑ serum Ca2+↑ serum PO4-
CalcitoninC-cells of thyroid↓ serum Ca2+↓ serum PO4-
Actions of PTH:
  1. Bone: Increases osteoclast activity → bone resorption → Ca2+ released
  2. Kidney: Increases Ca2+ reabsorption (DCT); decreases phosphate reabsorption → phosphaturia
  3. Kidney: Stimulates 1-alpha hydroxylase → activates Vitamin D (indirect ↑ Ca2+)
  4. Intestine: Indirect increase via Vitamin D
Hypocalcemia:
  • Causes: Hypoparathyroidism, Vitamin D deficiency, Hypomagnesemia, Chronic renal failure
  • Features: Tetany - carpopedal spasm
    • Trousseau's sign - carpal spasm on inflating BP cuff
    • Chvostek's sign - facial twitch on tapping facial nerve
    • Perioral tingling, muscle cramps, convulsions, QT prolongation on ECG
Hypercalcemia:
  • Causes: Hyperparathyroidism, Malignancy, Vitamin D toxicity, Sarcoidosis
  • Features: "Bones, Stones, Groans, Psychic Moans"
    • Bones - bone pain, pathological fractures
    • Stones - renal calculi, nephrocalcinosis
    • Groans - abdominal pain, constipation, peptic ulcer
    • Psychic Moans - confusion, depression, weakness, polyuria

Q. Describe Iron Metabolism.

Daily requirement: Adult male = 1 mg/day; Menstruating female = 2 mg/day; Pregnancy = 3-4 mg/day
Dietary intake: ~10-15 mg/day; only 5-10% absorbed
Absorption:
  • Occurs mainly in duodenum and upper jejunum
  • Ferrous (Fe2+) form is better absorbed than ferric (Fe3+)
  • Vitamin C promotes absorption (reduces Fe3+ → Fe2+)
  • Inhibitors: Phytates, oxalates, tannins (in tea), antacids
Transport:
  • In blood: bound to Transferrin (beta-1 globulin; binds 2 Fe3+ per molecule)
  • TIBC (Total Iron Binding Capacity) = reflects transferrin level
  • Transferrin saturation = Serum Iron / TIBC × 100 (normal: 25-35%)
Storage:
  • Ferritin - major intracellular storage protein (reflects body iron stores)
  • Hemosiderin - insoluble iron storage (in macrophages)
Regulation:
  • Hepcidin (liver) - main regulator
    • High iron → High hepcidin → blocks ferroportin → ↓ iron absorption
    • Iron deficiency → Low hepcidin → ↑ iron absorption
Functions of Iron:
  1. Component of Hemoglobin (oxygen transport) - 70% of body iron
  2. Component of Myoglobin (oxygen storage in muscle)
  3. Component of Cytochromes (electron transport chain)
  4. Enzyme cofactor (catalase, peroxidase, ribonucleotide reductase)
Iron Deficiency Anemia:
  • Most common nutritional deficiency worldwide
  • Stages: Iron depletion → Iron deficiency without anemia → Iron deficiency anemia
  • Lab: Low serum iron, Low ferritin, High TIBC, Microcytic hypochromic anemia
  • Features: Fatigue, pallor, koilonychia (spoon nails), glossitis, angular stomatitis
  • Pica (eating non-food items like clay, ice)
  • Plummer-Vinson syndrome = iron deficiency + dysphagia + esophageal web

Q. Write about Iodine and Thyroid Hormone Metabolism.

Daily requirement: 150 micrograms/day (200-300 mcg during pregnancy)
Absorption: Dietary iodine absorbed as iodide (I-) in small intestine
Thyroid Hormone Synthesis (steps):
  1. Trapping - Thyroid gland actively traps I- (sodium-iodide symporter, NIS)
  2. Oxidation - I- → I2 (by thyroid peroxidase, TPO, using H2O2)
  3. Organification - I2 added to tyrosine residues on Thyroglobulin → MIT, DIT
  4. Coupling - MIT + DIT → T3; DIT + DIT → T4 (by TPO)
  5. Storage - as Thyroglobulin colloid in follicles
  6. Release - Thyroglobulin proteolysis → T3 and T4 released into blood
Iodine Deficiency:
  • Goiter (enlarged thyroid) - most common manifestation
  • Hypothyroidism
  • In pregnancy/children: Cretinism (mental retardation, stunted growth, deaf-mutism)
  • Prevention: Iodization of salt

Q. Write about Zinc, Copper, Fluoride (Trace Minerals).

ZINC

  • Functions: Cofactor of 300+ enzymes (carbonic anhydrase, alcohol dehydrogenase, RNA polymerase), wound healing, immune function, sexual maturation, taste and smell, insulin storage
  • Deficiency: Dwarfism, hypogonadism (Prasad's syndrome), acrodermatitis enteropathica, delayed wound healing, ageusia (loss of taste), anosomia, poor immunity

COPPER

  • Functions: Ceruloplasmin (ferroxidase), cytochrome c oxidase, superoxide dismutase, lysyl oxidase (collagen/elastin crosslinking), tyrosinase (melanin synthesis)
  • Deficiency: Hypochromic anemia, neurological features, depigmentation
  • Excess (Wilson's disease): Copper accumulation in liver, brain, Kayser-Fleischer rings in eyes

FLUORIDE

  • Functions: Strengthens tooth enamel (fluorapatite) and bone
  • Deficiency: Dental caries
  • Excess (Fluorosis): Dental fluorosis (mottled brown teeth); Skeletal fluorosis (osteosclerosis, bone deformities)

QUICK REVISION TABLE - Vitamin Deficiency Mnemonics

VitaminKey Deficiency DiseaseMnemonic / Key Point
ANight blindness, Xerophthalmia"A" for "Anti-infective", Vision
DRickets (child), Osteomalacia (adult)"D" for "Da bones"
EHemolytic anemia in premature infants"E" for "Erythrocytes"
KBleeding, prolonged PT"K" for "Koagulation"
B1Beriberi, Wernicke'sTPP coenzyme
B2Cheilosis, Glossitis, Corneal vascularization"3 C's"
B3Pellagra (3 D's)Niacin → from Tryptophan
B6Peripheral neuropathy, Sideroblastic anemiaINH uses B6
B9Megaloblastic anemia + Neural tube defectsFolate for fetus
B12Megaloblastic anemia + SACDPernicious anemia → Intrinsic Factor
CScurvy - bleeding gums, perifollicular hemorrhageCollagen synthesis

Exam Tips:
  • Always write definition first, then classification/types, then mechanism, then clinical relevance
  • Use tables wherever possible - examiners love them
  • Draw neat labeled diagrams for action potential, synapse, NMJ, rhodopsin cycle
  • End answers with clinical significance / deficiency / disease - this gets bonus marks
  • Use bold headings for each point in long answers

Make separate pdf for biochem which I give to u and explain simply and same how to write in exam and also how to remember with easy explanation

I'll create a well-structured PDF for the Biochemistry section (Vitamins & Mineral Metabolism) with simple explanations, exam-writing format, and memory tricks.
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && echo "---" && ls /home/daytona/skills/pdf/

Running Command

mkdir -p /home/daytona/workspace/biochem-notes && python3 -c "from reportlab.lib.pagesizes import A4; print('reportlab ok')" && python3 -c "from reportlab.platypus import SimpleDocTemplate; print('platypus ok')"

Where is pdf?

Sorry about that - the PDF was never actually generated. Let me create it now!
Writing File

~/biochem-notes/make_pdf.py

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

OUTPUT = "/home/daytona/workspace/biochem-notes/Biochemistry_Vitamins_Minerals.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=2*cm, bottomMargin=2*cm
)

W, H = A4

# ── Colour palette ──────────────────────────────────────────────────────────
C_DARK_BLUE   = colors.HexColor("#1a237e")
C_MID_BLUE    = colors.HexColor("#1565c0")
C_LIGHT_BLUE  = colors.HexColor("#e3f2fd")
C_ACCENT      = colors.HexColor("#ff6f00")   # orange
C_GREEN       = colors.HexColor("#2e7d32")
C_GREEN_LIGHT = colors.HexColor("#e8f5e9")
C_RED         = colors.HexColor("#b71c1c")
C_RED_LIGHT   = colors.HexColor("#ffebee")
C_PURPLE      = colors.HexColor("#4a148c")
C_PURPLE_LIGHT= colors.HexColor("#f3e5f5")
C_YELLOW      = colors.HexColor("#fff9c4")
C_YELLOW_DARK = colors.HexColor("#f9a825")
C_TEAL        = colors.HexColor("#006064")
C_TEAL_LIGHT  = colors.HexColor("#e0f7fa")
C_GREY_LIGHT  = colors.HexColor("#f5f5f5")
C_GREY        = colors.HexColor("#9e9e9e")
C_WHITE       = colors.white

styles = getSampleStyleSheet()

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

# ── Custom paragraph styles ─────────────────────────────────────────────────
COVER_TITLE = S("cover_title", fontSize=28, textColor=C_WHITE,
                leading=34, alignment=TA_CENTER, fontName="Helvetica-Bold")
COVER_SUB   = S("cover_sub",   fontSize=14, textColor=colors.HexColor("#bbdefb"),
                leading=20, alignment=TA_CENTER, fontName="Helvetica")
COVER_INFO  = S("cover_info",  fontSize=11, textColor=colors.HexColor("#e3f2fd"),
                leading=16, alignment=TA_CENTER, fontName="Helvetica")

CHAP_HDR    = S("chap_hdr", fontSize=18, textColor=C_WHITE,
                leading=24, fontName="Helvetica-Bold", alignment=TA_CENTER,
                backColor=C_DARK_BLUE,
                borderPad=(8,8,8,8))
SEC_HDR     = S("sec_hdr",  fontSize=13, textColor=C_WHITE,
                leading=18, fontName="Helvetica-Bold",
                backColor=C_MID_BLUE,
                borderPad=(6,4,6,4))
SUB_HDR     = S("sub_hdr",  fontSize=11, textColor=C_DARK_BLUE,
                leading=16, fontName="Helvetica-Bold")
BODY        = S("body_txt", fontSize=9.5, textColor=colors.black,
                leading=14, fontName="Helvetica", alignment=TA_JUSTIFY)
BODY_BOLD   = S("body_bold",fontSize=9.5, textColor=colors.black,
                leading=14, fontName="Helvetica-Bold")
BULLET      = S("bullet",   fontSize=9.5, textColor=colors.black,
                leading=14, fontName="Helvetica",
                leftIndent=14, bulletIndent=4)
TRICK_HDR   = S("trick_hdr",fontSize=10, textColor=C_ACCENT,
                leading=14, fontName="Helvetica-Bold")
TRICK_BODY  = S("trick_body",fontSize=9.5, textColor=colors.HexColor("#4e342e"),
                leading=14, fontName="Helvetica", leftIndent=8)
EXAM_HDR    = S("exam_hdr", fontSize=10, textColor=C_GREEN,
                leading=14, fontName="Helvetica-Bold")
EXAM_BODY   = S("exam_body",fontSize=9.5, textColor=colors.HexColor("#1b5e20"),
                leading=14, fontName="Helvetica", leftIndent=8)
NOTE        = S("note",     fontSize=9,  textColor=C_PURPLE,
                leading=13, fontName="Helvetica-BoldOblique")
WARNING     = S("warning",  fontSize=9,  textColor=C_RED,
                leading=13, fontName="Helvetica-Bold")
PAGE_HEAD   = S("page_head",fontSize=8,  textColor=C_GREY,
                leading=10, fontName="Helvetica", alignment=TA_CENTER)

# ── Table style helpers ──────────────────────────────────────────────────────
def header_table_style(hdr_color=C_MID_BLUE):
    return TableStyle([
        ("BACKGROUND",   (0,0), (-1,0),  hdr_color),
        ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
        ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
        ("FONTSIZE",     (0,0), (-1,0),  9),
        ("ALIGN",        (0,0), (-1,-1), "LEFT"),
        ("VALIGN",       (0,0), (-1,-1), "MIDDLE"),
        ("FONTNAME",     (0,1), (-1,-1), "Helvetica"),
        ("FONTSIZE",     (0,1), (-1,-1), 8.5),
        ("ROWBACKGROUNDS",(0,1),(-1,-1), [C_WHITE, C_GREY_LIGHT]),
        ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#b0bec5")),
        ("LEFTPADDING",  (0,0), (-1,-1), 5),
        ("RIGHTPADDING", (0,0), (-1,-1), 5),
        ("TOPPADDING",   (0,0), (-1,-1), 4),
        ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ])

def colored_box_para(text, bg, style):
    """Paragraph inside a single-cell table acting as a coloured box."""
    t = Table([[Paragraph(text, style)]], colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX",        (0,0), (-1,-1), 0.5, colors.HexColor("#90a4ae")),
        ("LEFTPADDING",(0,0),(-1,-1), 8),
        ("RIGHTPADDING",(0,0),(-1,-1),8),
        ("TOPPADDING", (0,0),(-1,-1), 6),
        ("BOTTOMPADDING",(0,0),(-1,-1),6),
    ]))
    return t

def sp(n=6): return Spacer(1, n)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=C_GREY, spaceAfter=4, spaceBefore=4)

# ═══════════════════════════════════════════════════════════════════════════
# BUILD STORY
# ═══════════════════════════════════════════════════════════════════════════
story = []

# ── COVER PAGE ──────────────────────────────────────────────────────────────
cover_bg = Table(
    [[Paragraph("BIOCHEMISTRY", COVER_TITLE)],
     [sp(4)],
     [Paragraph("Vitamins & Mineral Metabolism", COVER_SUB)],
     [sp(10)],
     [Paragraph("Pre-University Theory Exam", COVER_INFO)],
     [sp(2)],
     [Paragraph("Simple Language  |  Exam-Style Answers  |  Memory Tricks", COVER_INFO)],
     [sp(20)],
     [Paragraph("Prepared for Exam Success", COVER_INFO)],
    ],
    colWidths=[doc.width + 3.6*cm]
)
cover_bg.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), C_DARK_BLUE),
    ("LEFTPADDING",(0,0),(-1,-1), 30),
    ("RIGHTPADDING",(0,0),(-1,-1),30),
    ("TOPPADDING", (0,0),(-1,-1), 6),
    ("BOTTOMPADDING",(0,0),(-1,-1),6),
    ("ALIGN",     (0,0),(-1,-1),"CENTER"),
    ("VALIGN",    (0,0),(-1,-1),"MIDDLE"),
]))
story.append(cover_bg)
story.append(PageBreak())

# ── HOW TO USE THIS GUIDE ────────────────────────────────────────────────────
story.append(colored_box_para(
    "HOW TO USE THIS GUIDE", C_DARK_BLUE,
    S("x", fontSize=13, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)
))
story.append(sp(8))
tips = [
    ("SIMPLE EXPLANATION", "Each topic is explained in plain language first so you understand the concept clearly."),
    ("EXAM FORMAT",        "Then the same topic is shown exactly how to write it in the exam to score full marks."),
    ("MEMORY TRICKS",      "At the end of each topic, easy mnemonics and tricks help you remember for life."),
    ("COLOUR CODING",      "Blue boxes = Exam writing format    |    Orange = Memory tricks    |    Green = Exam tips"),
]
for head, body in tips:
    story.append(colored_box_para(
        f"<b>{head}:</b> {body}", C_GREY_LIGHT,
        S("x2", fontSize=9.5, textColor=colors.black, fontName="Helvetica", leading=14)
    ))
    story.append(sp(4))
story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════════════════
# CHAPTER 1 — VITAMINS
# ═══════════════════════════════════════════════════════════════════════════
story.append(colored_box_para("CHAPTER 1: VITAMINS", C_DARK_BLUE,
    S("c1", fontSize=16, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=22, alignment=TA_CENTER)))
story.append(sp(8))

# ── Simple intro ─────────────────────────────────────────────────────────────
story.append(colored_box_para(
    "SIMPLE EXPLANATION FIRST",
    C_TEAL_LIGHT,
    S("si", fontSize=10, textColor=C_TEAL, fontName="Helvetica-Bold", leading=14)
))
story.append(sp(4))
story.append(Paragraph(
    "Vitamins are <b>small organic molecules</b> that our body needs in tiny amounts to work properly. "
    "Our body cannot make most of them, so we must get them from food. "
    "Think of them as <b>tools in a factory</b> - without the right tool, the machine stops working.",
    BODY))
story.append(sp(6))

# Classification table
story.append(Paragraph("CLASSIFICATION OF VITAMINS", SEC_HDR))
story.append(sp(4))
cls_data = [
    ["Feature", "Fat-Soluble Vitamins", "Water-Soluble Vitamins"],
    ["Which ones", "A, D, E, K", "B1, B2, B3, B6, B9, B12, C"],
    ["Stored in body?", "YES (liver & fat tissue)", "NO (pass out in urine)"],
    ["Can cause toxicity?", "YES (if taken too much)", "Rarely (excess excreted)"],
    ["Need daily intake?", "Not necessarily", "YES, needed regularly"],
    ["Dissolved in", "Fat / Oil", "Water"],
]
cls_table = Table(cls_data, colWidths=[4*cm, 6.5*cm, 6.5*cm])
cls_table.setStyle(header_table_style(C_TEAL))
story.append(cls_table)
story.append(sp(4))

# Memory trick for classification
story.append(colored_box_para(
    "MEMORY TRICK: Fat-soluble = 'ADEK' (sounds like 'a deck of cards' - just remember A-D-E-K!). "
    "Everything else (all B vitamins + C) is water-soluble.",
    C_YELLOW,
    S("mt", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-Bold", leading=14)
))
story.append(sp(8))

# ── Vitamin A ────────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN A (Retinol)", C_MID_BLUE,
    S("va", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Think of Vitamin A as the <b>'Eye and Skin Vitamin.'</b> "
    "It keeps your eyes working in the dark (like adjusting your phone screen brightness), "
    "keeps your skin smooth, and fights infections by maintaining the protective lining "
    "(epithelium) of your lungs, gut, and eyes. "
    "The form used in the eye is called <b>11-cis-retinal</b> - it sits inside a protein called "
    "opsin to make Rhodopsin (the night-vision pigment in rod cells).",
    BODY))
story.append(sp(6))

story.append(colored_box_para("EXAM FORMAT - Write it like this:", C_LIGHT_BLUE,
    S("ef", fontSize=10, textColor=C_MID_BLUE, fontName="Helvetica-Bold", leading=14)))
story.append(sp(4))

va_exam = [
    ["EXAM ANSWER: VITAMIN A (Retinol)", ""],
    ["Sources", "Animal: Liver, egg yolk, dairy, fish liver oil\nPlant (Pro-vitamin A): Beta-carotene - carrots, green leafy vegetables"],
    ["Active forms", "Retinol (storage), Retinal (vision), Retinoic acid (gene expression), 11-cis-retinal (rhodopsin)"],
    ["Functions", "1. Vision: Part of Rhodopsin (rod cells) - needed for dark adaptation\n2. Epithelial integrity: Maintains mucus-secreting epithelium, prevents keratinization\n3. Growth & differentiation: Via nuclear receptors (RAR, RXR)\n4. Immune function: Anti-infective vitamin\n5. Reproduction: Spermatogenesis, fetal development"],
    ["Deficiency diseases", "- Night blindness (Nyctalopia) - EARLIEST sign\n- Xerophthalmia - dry eyes\n- Bitot's spots - foamy patches on conjunctiva (PATHOGNOMONIC)\n- Keratomalacia - corneal softening and blindness\n- Follicular hyperkeratosis - 'toad skin'\n- Increased infections"],
    ["Toxicity", "Headache, vomiting, skin peeling, raised ICP (pseudotumor cerebri)\nTERATOGENIC - causes birth defects in pregnancy"],
]
va_table = Table(va_exam, colWidths=[4.5*cm, 12.5*cm])
va_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  C_MID_BLUE),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_LIGHT_BLUE),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#90caf9")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_LIGHT_BLUE]),
]))
story.append(va_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Vitamin A:\n"
    "Deficiency = 'XBKF': Xerophthalmia, Bitot's spots, Keratomalacia, Follicular hyperkeratosis\n"
    "Night blindness is ALWAYS the first sign - remember: 'A for Adjusting eyes in the dark'\n"
    "Bitot's spots = 'B for Bitot, B for Butter yellow-foamy patches'\n"
    "Rhodopsin = Retinal + Opsin  |  Vitamin A deficiency = Rhodopsin cannot form = Night blindness",
    C_YELLOW,
    S("mt2", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(10))

# ── Vitamin D ────────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN D (Calciferol) - The Sunshine Vitamin", C_MID_BLUE,
    S("vd", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Vitamin D is the <b>'Calcium Manager.'</b> It controls how much calcium your body absorbs from food "
    "and puts into bones. Think of it as a <b>security guard at a calcium gate</b> - without Vitamin D, "
    "calcium cannot enter the body properly, so bones become soft. "
    "The cool part: your <b>skin makes Vitamin D</b> when sunlight hits it (UV rays convert "
    "7-dehydrocholesterol in the skin). Then the liver and kidney activate it step by step.",
    BODY))
story.append(sp(6))

# Activation pathway
story.append(Paragraph("ACTIVATION PATHWAY (MUST know for exam):", BODY_BOLD))
story.append(sp(3))
pathway_data = [
    ["Step", "Location", "What happens", "Product"],
    ["Step 0", "Skin (UV light)", "7-dehydrocholesterol + sunlight", "Cholecalciferol (Vit D3)"],
    ["Step 1", "LIVER", "25-hydroxylase acts", "25-OH Vit D3 (Calcidiol) - storage form"],
    ["Step 2", "KIDNEY", "1-alpha-hydroxylase acts", "1,25-(OH)2 Vit D3 (Calcitriol) = ACTIVE form"],
]
pw_table = Table(pathway_data, colWidths=[2*cm, 3*cm, 6*cm, 6*cm])
pw_table.setStyle(header_table_style(colors.HexColor("#f57f17")))
story.append(pw_table)
story.append(sp(4))

story.append(colored_box_para("EXAM FORMAT - Write it like this:", C_LIGHT_BLUE,
    S("ef2", fontSize=10, textColor=C_MID_BLUE, fontName="Helvetica-Bold", leading=14)))
story.append(sp(4))

vd_exam = [
    ["EXAM ANSWER: VITAMIN D (Calciferol)", ""],
    ["Sources", "Skin synthesis (MAJOR): UV light on skin\nFood: Fatty fish, egg yolk, dairy, fish liver oil"],
    ["Active form", "Calcitriol = 1,25-dihydroxycholecalciferol [1,25-(OH)2 D3]"],
    ["Functions\n(of Calcitriol)", "1. Increases Ca2+ absorption from intestine (induces Calbindin protein)\n2. Increases phosphate absorption from intestine\n3. Promotes bone mineralization (works with PTH)\n4. Renal reabsorption of Ca2+ and phosphate\n5. Immune regulation and cell differentiation"],
    ["Deficiency in\nCHILDREN", "RICKETS:\n- Bowing of legs / Knock knees\n- Rachitic rosary (beading at ribs-costochondral junction)\n- Frontal bossing (prominent forehead)\n- Craniotabes (soft skull)\n- Harrison's groove, Pigeon chest\n- Delayed fontanelle closure"],
    ["Deficiency in\nADULTS", "OSTEOMALACIA:\n- Softening of bones\n- Bone pain and tenderness\n- Pathological fractures"],
    ["Lab findings in\nRickets", "Low Ca2+, Low Phosphate, HIGH Alkaline Phosphatase (ALP), Low 25-OH Vit D"],
    ["Toxicity", "Hypercalcemia, renal stones, calcification of soft tissues"],
]
vd_table = Table(vd_exam, colWidths=[4.5*cm, 12.5*cm])
vd_table.setStyle(va_table._styles[0] if False else TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  colors.HexColor("#e65100")),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  colors.HexColor("#fff3e0")),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#ffcc80")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, colors.HexColor("#fff8e1")]),
]))
story.append(vd_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Vitamin D:\n"
    "Activation: Skin -> Liver -> Kidney  (SLK = 'Silk Road')\n"
    "Rickets features: 'Bow-Rachitic-Frontal-Cranio' = BRFC = 'Books Rarely Fail Children'\n"
    "Lab in rickets: Ca LOW, PO4 LOW, ALP HIGH - remember 'Both minerals down, ALP up'\n"
    "D for Da Bones, D for D-ficiency = Rickets/Osteomalacia\n"
    "Calcitriol = C-A-L-C-I = Controls Absorption of Lime (calcium) in Intestine",
    C_YELLOW,
    S("mt3", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── Vitamin E ────────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN E (Tocopherol) - The Antioxidant Shield", C_MID_BLUE,
    S("ve", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Vitamin E is like a <b>bodyguard for cell membranes.</b> "
    "Your cells are surrounded by fatty membranes, and harmful molecules called "
    "'free radicals' try to damage them. Vitamin E neutralizes these free radicals - "
    "it is the main <b>fat-soluble antioxidant.</b> "
    "It is especially important for protecting Red Blood Cells (RBCs) from breaking apart (hemolysis).",
    BODY))
story.append(sp(6))

ve_exam = [
    ["EXAM ANSWER: VITAMIN E (Tocopherol)", ""],
    ["Sources", "Vegetable oils (sunflower, wheat germ oil), nuts, seeds, green leafy vegetables"],
    ["Function", "1. Major lipid-soluble ANTIOXIDANT - protects PUFA (polyunsaturated fatty acids) from peroxidation\n2. Protects RBC membrane from hemolysis (oxidative damage)\n3. Protects cell membranes throughout the body\n4. Anti-aging, immune support"],
    ["Deficiency", "- Hemolytic anemia (especially in premature infants)\n- Peripheral neuropathy (posterior column degeneration)\n- Spinocerebellar ataxia\n- Areflexia\n- Retinopathy in premature infants"],
    ["Who at risk?", "Premature infants (no fat stores, unable to absorb fat), fat malabsorption disorders"],
]
ve_table = Table(ve_exam, colWidths=[4.5*cm, 12.5*cm])
ve_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  C_GREEN),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_GREEN_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#a5d6a7")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_GREEN_LIGHT]),
]))
story.append(ve_exam and ve_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Vitamin E:\n"
    "'E' for 'Erythrocytes' (RBCs) - protects red blood cells\n"
    "'E' for 'Every cell's shield' - antioxidant for all membranes\n"
    "Deficiency = Hemolytic anemia in premature babies - 'Early babies need E'\n"
    "PUFA = Polyunsaturated Fatty Acid = needs Vitamin E protection",
    C_YELLOW,
    S("mt4", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(10))

# ── Vitamin K ────────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN K - The Clotting Vitamin", C_MID_BLUE,
    S("vk", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Vitamin K is the <b>'Blood-stopping vitamin.'</b> When you get a cut, your blood needs to clot "
    "to stop bleeding. Vitamin K activates the clotting proteins (factors). "
    "It does this by a chemical process called <b>gamma-carboxylation</b> - think of it as 'charging up' "
    "the clotting factors so they can work. Without Vitamin K, clotting factors 2, 7, 9, 10 "
    "don't work and you bleed. Warfarin (rat poison/blood thinner drug) works by blocking Vitamin K.",
    BODY))
story.append(sp(6))

vk_exam = [
    ["EXAM ANSWER: VITAMIN K", ""],
    ["Forms", "K1 (Phylloquinone) - from plants (green leafy veg)\nK2 (Menaquinone) - made by gut bacteria\nK3 (Menadione) - synthetic form"],
    ["Functions", "1. BLOOD COAGULATION - cofactor for gamma-carboxylation of clotting factors:\n   Factors II (Prothrombin), VII, IX, X, Protein C, Protein S\n2. Bone metabolism - carboxylation of osteocalcin"],
    ["Mechanism", "Vitamin K (KH2 reduced form) activates clotting factor precursors and gets oxidized to KO (epoxide)\nVKOR (Vitamin K epoxide reductase) converts KO back to KH2 (recycling)\nWarfarin BLOCKS VKOR = no recycling = Vitamin K deficiency effect"],
    ["Deficiency", "- Prolonged PT (Prothrombin Time) - FIRST test to become abnormal\n- Prolonged aPTT\n- Bleeding from any site"],
    ["Hemorrhagic\ndisease of\nnewborn", "Newborns have:\n1. No gut bacteria (so no K2 synthesis)\n2. Sterile gut at birth\n3. Low Vitamin K in breast milk\nResult: Bleeding on days 2-7 of life\nPrevention: Vitamin K injection (IM) given at birth"],
    ["Lab findings", "Prolonged PT, Normal platelet count, Normal bleeding time"],
]
vk_table = Table(vk_exam, colWidths=[4.5*cm, 12.5*cm])
vk_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  C_RED),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_RED_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#ef9a9a")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_RED_LIGHT]),
]))
story.append(vk_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Vitamin K:\n"
    "'K' for 'Koagulation' (German word for coagulation - that's where the name comes from!)\n"
    "Clotting factors affected: '1972' = factors II, VII, IX, X = '2, 7, 9, 10'\n"
    "Warfarin blocks VKOR = 'Warfarin Kills Vitamin K Recycling'\n"
    "Newborn hemorrhagic disease: 'No bacteria, No K2, Baby Bleeds'\n"
    "PT is prolonged FIRST because Factor VII has shortest half-life",
    C_YELLOW,
    S("mt5", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════════════════
# WATER-SOLUBLE VITAMINS
# ═══════════════════════════════════════════════════════════════════════════
story.append(colored_box_para("WATER-SOLUBLE VITAMINS (B-Complex & Vitamin C)", C_DARK_BLUE,
    S("ws", fontSize=14, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=20, alignment=TA_CENTER)))
story.append(sp(8))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "B vitamins are like <b>spark plugs in an engine.</b> They do not provide energy themselves, "
    "but without them, the body cannot RELEASE energy from food. "
    "Each B vitamin is a coenzyme - it teams up with enzymes to make chemical reactions happen. "
    "Since they dissolve in water, they pass out in urine, so you need them regularly.",
    BODY))
story.append(sp(8))

# ── B1 Thiamine ──────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B1 - Thiamine (The Energy Starter)", C_MID_BLUE,
    S("b1h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Thiamine is needed to <b>unlock energy from glucose.</b> "
    "When glucose is broken down, it forms pyruvate. Pyruvate needs thiamine (as TPP) to enter the "
    "Krebs cycle. Without thiamine, pyruvate piles up and can't be processed. "
    "Nerves and the heart suffer most because they depend heavily on glucose. "
    "Common in <b>alcoholics</b> (alcohol prevents thiamine absorption) and in people eating only polished/white rice.",
    BODY))
story.append(sp(4))

b1_exam = [
    ["EXAM ANSWER: VITAMIN B1 (Thiamine)", ""],
    ["Active form", "Thiamine Pyrophosphate (TPP)"],
    ["Functions\n(as coenzyme TPP)", "1. Pyruvate dehydrogenase - Pyruvate -> Acetyl CoA (MOST IMPORTANT)\n2. Alpha-ketoglutarate dehydrogenase - Krebs cycle\n3. Transketolase - HMP shunt (Pentose phosphate pathway)\n4. Branched-chain keto acid dehydrogenase"],
    ["Deficiency\ndiseases", "1. DRY BERIBERI - peripheral neuropathy (sensory > motor)\n   Burning feet, numbness, wrist drop, foot drop\n\n2. WET BERIBERI - peripheral neuropathy + cardiac failure + edema\n   High-output cardiac failure (cardiomegaly, tachycardia)\n\n3. WERNICKE'S ENCEPHALOPATHY (acute, in alcoholics):\n   TRIAD: Confusion + Ataxia + Ophthalmoplegia (eye movement problems)\n\n4. KORSAKOFF'S PSYCHOSIS (chronic):\n   Confabulation (making up stories) + Anterograde amnesia"],
    ["Common in", "Alcoholics, polished rice eaters, dialysis patients, hyperemesis gravidarum"],
]
b1_table = Table(b1_exam, colWidths=[4.5*cm, 12.5*cm])
b1_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  C_PURPLE),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_PURPLE_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#ce93d8")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_PURPLE_LIGHT]),
]))
story.append(b1_table)
story.append(sp(4))

story.append(colored_box_para(
    "MEMORY TRICKS for B1:\n"
    "'B1 = B-One = Beriberi-One vitamin'\n"
    "Wernicke's TRIAD = 'CAO' = Confusion, Ataxia, Ophthalmoplegia\n"
    "Korsakoff = 'K for Konfabulation' (making up stories to fill memory gaps)\n"
    "Wernicke-Korsakoff = both are B1 deficiency in alcoholics\n"
    "TPP enzymes: 'PAT-B' = Pyruvate DH, Alpha-KG DH, Transketolase, Branched-chain DH",
    C_YELLOW,
    S("mt6", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(8))

# ── B2 Riboflavin ─────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B2 - Riboflavin", C_MID_BLUE,
    S("b2h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

b2_data = [
    ["Active forms", "FMN (Flavin Mononucleotide) and FAD (Flavin Adenine Dinucleotide)"],
    ["Functions", "Coenzyme in REDOX reactions - carries electrons in oxidative phosphorylation, fatty acid oxidation, amino acid metabolism"],
    ["Deficiency\n'3 C's'", "1. CHEILOSIS - cracks/fissures at corners of mouth (angular stomatitis)\n2. CORNEAL VASCULARIZATION - blood vessels grow into cornea\n3. CONFUSION (mild neurological)\nAlso: Glossitis (magenta/raw beef tongue), seborrheic dermatitis, scrotal/vulval dermatitis"],
]
b2_table = Table(b2_data, colWidths=[4.5*cm, 12.5*cm])
b2_table.setStyle(header_table_style(C_TEAL))
story.append(b2_table)
story.append(sp(4))
story.append(colored_box_para(
    "TRICK: B2 deficiency = '3 C's' = Cheilosis + Corneal vascularization + Confusion\n"
    "'Riboflavin makes you Red/Raw' - Raw tongue (glossitis), Red cracks (cheilosis)",
    C_YELLOW,
    S("mt7", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(8))

# ── B3 Niacin ─────────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B3 - Niacin (Nicotinic Acid)", C_MID_BLUE,
    S("b3h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Niacin makes <b>NAD+ and NADP+</b> - the most important electron carriers in the body. "
    "Think of NAD+ as a <b>rechargeable battery</b> - it picks up electrons (gets charged to NADH) "
    "and delivers them to the electron transport chain to make ATP. "
    "Without niacin, energy metabolism crashes. Deficiency = Pellagra = 3 D's (+ death).",
    BODY))
story.append(sp(4))

b3_data = [
    ["Active forms", "NAD+ / NADH   and   NADP+ / NADPH"],
    ["Functions", "Coenzyme in 500+ redox reactions; high-dose niacin raises HDL (good cholesterol)"],
    ["Synthesis", "Can be made from Tryptophan (60 mg tryptophan = 1 mg niacin)\nSo corn-eating populations get pellagra (corn lacks tryptophan)"],
    ["PELLAGRA\n(deficiency)\n'4 D's'", "1. DERMATITIS - Photosensitive rash (exposed areas - face, neck, hands)\n   'Casal's Necklace' = rash around the neck like a necklace\n2. DIARRHEA - GI involvement\n3. DEMENTIA - neurological involvement\n4. DEATH - if untreated"],
    ["At-risk groups", "Corn/maize eaters (no tryptophan), Hartnup disease (tryptophan absorption defect),\nCarcinoid syndrome (tryptophan diverted to serotonin), Alcoholics, INH therapy"],
]
b3_table = Table(b3_data, colWidths=[4.5*cm, 12.5*cm])
b3_table.setStyle(header_table_style(C_MID_BLUE))
story.append(b3_table)
story.append(sp(4))
story.append(colored_box_para(
    "MEMORY TRICKS for B3:\n"
    "PELLAGRA = 'PEL' sounds like PEEL (skin peels) - Dermatitis\n"
    "4 D's: 'Dumb, Dirty, Diarrhea, Dead' = Dementia, Dermatitis, Diarrhea, Death\n"
    "Casal's Necklace = neck rash like wearing a necklace of red skin\n"
    "'Niacin = NAD = Not Accepting Deficiency in energy'",
    C_YELLOW,
    S("mt8", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── B6 Pyridoxine ─────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B6 - Pyridoxine", C_MID_BLUE,
    S("b6h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

b6_data = [
    ["Active form", "Pyridoxal Phosphate (PLP)"],
    ["Functions", "1. TRANSAMINATION (amino acid metabolism) - most important\n2. DECARBOXYLATION of amino acids\n3. Synthesis of neurotransmitters: Serotonin, Dopamine, GABA, Histamine\n4. Heme synthesis (ALA synthase - first step)\n5. Glycogen phosphorylase"],
    ["Deficiency", "- Peripheral neuropathy (burning, numbness in hands and feet)\n- Sideroblastic anemia (microcytic with ring sideroblasts on bone marrow)\n- Convulsions / Seizures (GABA can't be synthesized)\n- Glossitis, cheilosis"],
    ["Important note", "ISONIAZID (INH) - anti-TB drug - is a B6 ANTAGONIST\nINH causes B6 deficiency symptoms (peripheral neuropathy)\nTreatment: Give B6 (Pyridoxine) with INH to prevent neuropathy"],
]
b6_table = Table(b6_data, colWidths=[4.5*cm, 12.5*cm])
b6_table.setStyle(header_table_style(C_TEAL))
story.append(b6_table)
story.append(sp(4))
story.append(colored_box_para(
    "MEMORY TRICKS for B6:\n"
    "'B6 builds BRAIN chemicals' = Serotonin, Dopamine, GABA all need B6\n"
    "INH + B6 = 'INH Is Not Happy without B6' (always give together)\n"
    "'PLP = Please Let Proteins work' (transamination)\n"
    "Deficiency convulsions in infants = 'Baby B6-less baby seizes'",
    C_YELLOW,
    S("mt9", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(8))

# ── B9 Folic Acid ──────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B9 - Folic Acid (Folate)", C_MID_BLUE,
    S("b9h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Folic acid is the <b>'DNA builder.'</b> Your body is constantly making new cells, "
    "and to make new cells you need DNA. Folic acid carries single carbon units (1C transfer) "
    "needed to build DNA building blocks (thymidylate). Without folic acid, "
    "cells that divide rapidly (blood cells, gut lining, fetal cells) suffer most. "
    "This is why <b>pregnant women MUST take folic acid</b> - the baby's brain and spinal cord "
    "are forming in the first 28 days (often before she even knows she's pregnant).",
    BODY))
story.append(sp(4))

b9_data = [
    ["Active form", "Tetrahydrofolate (THF)"],
    ["Functions", "1. One-carbon (1C) transfer reactions\n2. Thymidylate (dTMP) synthesis - needed for DNA\n3. Purine synthesis\n4. Amino acid metabolism (Homocysteine -> Methionine, with B12)"],
    ["Deficiency", "- MEGALOBLASTIC ANEMIA:\n  RBCs are large (macro-ovalocytes), immature, can't divide properly\n  Hypersegmented neutrophils (5+ lobes) - hallmark finding\n  Low reticulocyte count\n- NEURAL TUBE DEFECTS in fetus:\n  Spina bifida (open spine), Anencephaly (no brain)\n- Glossitis, diarrhea"],
    ["Important\nnote", "NO NEUROLOGICAL FEATURES (unlike B12 deficiency - key distinction in exams!)\nMTX (Methotrexate) and Trimethoprim block folate metabolism (anti-cancer, antibiotic)"],
    ["Prevention", "Folic acid 400 mcg/day for ALL women planning pregnancy, taken BEFORE conception\nContinue through first trimester"],
]
b9_table = Table(b9_data, colWidths=[4.5*cm, 12.5*cm])
b9_table.setStyle(header_table_style(C_GREEN))
story.append(b9_table)
story.append(sp(4))
story.append(colored_box_para(
    "MEMORY TRICKS for B9:\n"
    "'FOLATE = FOR fetus' - neural tube protection\n"
    "Megaloblastic anemia: 'BIG cells, SMALL function' = large RBCs that don't work\n"
    "Hypersegmented neutrophil = 'HYPER segments = nuclear lobes >5' = diagnostic\n"
    "'Spina bifida = Spinal B9 deficiency'\n"
    "MTX blocks DHFR = 'MTX Kills Folate Recycling' (given leucovorin rescue in overdose)",
    C_YELLOW,
    S("mt10", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(8))

# ── B12 Cobalamin ──────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN B12 - Cobalamin", C_MID_BLUE,
    S("b12h", fontSize=11, textColor=C_WHITE, fontName="Helvetica-Bold", leading=16, alignment=TA_CENTER)))
story.append(sp(4))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "B12 does two jobs: (1) it helps recycle folate (so it also affects DNA synthesis), "
    "and (2) it helps process an odd substance called <b>methylmalonyl-CoA</b> in the fatty acid pathway. "
    "Without B12, the myelin sheath (protective coating on nerves) gets damaged - "
    "this causes the unique <b>neurological features</b> of B12 deficiency. "
    "The key thing to remember: B12 requires <b>Intrinsic Factor (IF)</b> from the stomach to be absorbed. "
    "If the stomach is removed or damaged, B12 cannot be absorbed.",
    BODY))
story.append(sp(4))

b12_data = [
    ["Active forms", "Methylcobalamin and Adenosylcobalamin"],
    ["Functions", "1. METHYLCOBALAMIN:\n   Homocysteine + methyl-THF -> Methionine + THF\n   (This recycling of THF is why B12 deficiency also causes folate trap and megaloblastic anemia)\n\n2. ADENOSYLCOBALAMIN:\n   Methylmalonyl-CoA -> Succinyl-CoA (odd-chain fatty acid metabolism)\n   Without this: Methylmalonic acid accumulates -> damages myelin"],
    ["Deficiency\ndiseases", "1. MEGALOBLASTIC ANEMIA (same as B9) - macro-ovalocytes, hypersegmented neutrophils\n\n2. SUBACUTE COMBINED DEGENERATION (SACD) of spinal cord:\n   - Posterior columns: Loss of vibration sense, proprioception (position sense)\n   - Corticospinal tracts: Spastic weakness (UMN signs)\n   - Symptoms: 'Glove and stocking' sensory loss, ataxia, spasticity\n   - NEUROLOGICAL FEATURES = KEY DIFFERENTIATOR from B9 deficiency\n\n3. Glossitis, angular stomatitis"],
    ["Causes of\ndeficiency", "1. PERNICIOUS ANEMIA - autoimmune destruction of parietal cells\n   -> No Intrinsic Factor (IF) -> No B12 absorption\n2. Strict Vegan diet (B12 only in animal products)\n3. Gastrectomy (removal of stomach)\n4. Ileal disease/resection (B12 absorbed in terminal ileum)\n5. Fish tapeworm infection"],
    ["Diagnosis", "Schilling Test distinguishes pernicious anemia from other causes\nLow B12, Elevated Homocysteine AND Methylmalonic acid (specific for B12 deficiency)"],
    ["B12 vs B9", "BOTH: Megaloblastic anemia, glossitis\nONLY B12: Neurological features (SACD), elevated methylmalonic acid"],
]
b12_table = Table(b12_data, colWidths=[4.5*cm, 12.5*cm])
b12_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  C_RED),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_RED_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#ef9a9a")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_RED_LIGHT]),
]))
story.append(b12_table)
story.append(sp(4))
story.append(colored_box_para(
    "MEMORY TRICKS for B12:\n"
    "'B12 = Big 12 = Big cells + Nerve damage'\n"
    "SACD = 'Spinal cord and Combining Defects' = Posterior + Lateral columns\n"
    "'Pernicious = Permanent intrinsic factor problem' = autoimmune\n"
    "B12 vs B9: 'Neuro = Never B9, Always B12' (neural involvement only in B12)\n"
    "Methylmalonic acid elevated = B12 specific marker (not raised in B9 deficiency)\n"
    "'Vegans need B12 shots' = only animal products have B12",
    C_YELLOW,
    S("mt11", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── Vitamin C ───────────────────────────────────────────────────────────────
story.append(colored_box_para("VITAMIN C - Ascorbic Acid (The Wound Healer)", C_MID_BLUE,
    S("vch", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Vitamin C is the <b>'Collagen Vitamin.'</b> Collagen is the glue that holds your body together "
    "- it is in skin, blood vessels, gums, and bones. To make collagen, you need Vitamin C to "
    "'hydroxylate' (add -OH groups to) proline and lysine amino acids. "
    "Without Vitamin C, collagen is weak and breaks down - result: <b>SCURVY</b>. "
    "Think of scurvy as your body 'falling apart' - bleeding gums, skin bleeds, poor wound healing. "
    "Also a powerful antioxidant and helps absorb iron from food.",
    BODY))
story.append(sp(6))

vc_data = [
    ["EXAM ANSWER: VITAMIN C (Ascorbic Acid)", ""],
    ["Sources", "Citrus fruits (lemon, orange), guava, amla (Indian gooseberry - richest source), tomato, fresh vegetables\nNOTE: Destroyed by heat/cooking"],
    ["Functions", "1. COLLAGEN SYNTHESIS - cofactor for prolyl hydroxylase and lysyl hydroxylase\n   (hydroxylation of proline and lysine residues in collagen)\n2. ANTIOXIDANT - regenerates Vitamin E, protects cells\n3. IRON ABSORPTION - reduces Fe3+ to Fe2+ (better absorbed form)\n4. Dopamine synthesis (cofactor for dopamine-beta-hydroxylase)\n5. Immune function, wound healing"],
    ["SCURVY\n(deficiency)", "SKIN/HAIR:\n- Perifollicular hemorrhages (bleeding around hair follicles)\n- Corkscrew hairs (coiled, twisted hairs)\n- Poor wound healing\n\nGUMS:\n- Spongy, bleeding gums (gingivitis)\n- Loosening of teeth\n\nBONES:\n- Subperiosteal hemorrhage (bone pain)\n- Scorbutic rosary (costochondral junction beading)\n\nOTHER:\n- Woody leg (brawny edema)\n- Hemarthrosis (bleeding into joints)\n- Fatigue, irritability"],
    ["Lab findings", "Low serum ascorbic acid\nX-ray: Trummerfeld zone (zone of destruction at metaphysis), Pelkan spurs, White line of Frankel"],
    ["Treatment", "Vitamin C 100-200 mg/day oral supplementation"],
]
vc_table = Table(vc_data, colWidths=[4.5*cm, 12.5*cm])
vc_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  colors.HexColor("#00695c")),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_TEAL_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#80cbc4")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_TEAL_LIGHT]),
]))
story.append(vc_table)
story.append(sp(6))
story.append(colored_box_para(
    "MEMORY TRICKS for Vitamin C:\n"
    "'C for Collagen and Cuts' - collagen synthesis and wound healing\n"
    "SCURVY features: 'PeG CoRKS' = Perifollicular hemorrhage, Gum bleeding, Corkscrew hairs, Subperiosteal hemorrhage\n"
    "'Vitamin C opens the Iron gate' = reduces Fe3+ to Fe2+ for better absorption\n"
    "Richest source = Amla (Indian gooseberry) = 'Amla Ace of Vitamin C'\n"
    "Sailors got scurvy on long voyages (no fresh fruit) - James Lind cured it with limes",
    C_YELLOW,
    S("mt12", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── MASTER REVISION TABLE ────────────────────────────────────────────────────
story.append(colored_box_para("MASTER REVISION TABLE - All Vitamins at a Glance", C_DARK_BLUE,
    S("mrt", fontSize=13, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

master_data = [
    ["Vitamin", "Active Form", "Key Function", "Deficiency Disease", "Key Sign/Test"],
    ["A\n(Retinol)", "11-cis-retinal\nRetinoic acid", "Vision\nEpithelial integrity", "Night blindness\nXerophthalmia", "Bitot's spots\n(PATHOGNOMONIC)"],
    ["D\n(Calciferol)", "Calcitriol\n[1,25-(OH)2D3]", "Ca2+ absorption\nBone mineralization", "Rickets (child)\nOsteomalacia (adult)", "Low Ca, Low PO4\nHigh ALP"],
    ["E\n(Tocopherol)", "Alpha-tocopherol", "Antioxidant\nProtects RBCs", "Hemolytic anemia\n(premature infants)", "Oxidative hemolysis"],
    ["K\n(Phylloquinone)", "KH2 (reduced)", "Blood clotting\n(Factors 2,7,9,10)", "Bleeding tendency\nHemorrhagic disease\nof newborn", "Prolonged PT"],
    ["B1\n(Thiamine)", "TPP", "Energy from glucose\n(Pyruvate DH)", "Beriberi\nWernicke's\nKorsakoff's", "CAO triad\nTransketolase activity"],
    ["B2\n(Riboflavin)", "FMN, FAD", "Redox reactions", "Cheilosis, Glossitis\nCorneal vascularization", "3 C's"],
    ["B3\n(Niacin)", "NAD+, NADP+", "500+ redox reactions", "PELLAGRA\n(4 D's)", "Casal's Necklace\nN-methylnicotinamide\nin urine"],
    ["B6\n(Pyridoxine)", "PLP", "Transamination\nNT synthesis", "Peripheral neuropathy\nSideroblastic anemia", "Ring sideroblasts\n(bone marrow)"],
    ["B9\n(Folic acid)", "THF", "DNA synthesis\n1C transfer", "Megaloblastic anemia\nNeural tube defects", "Hypersegmented\nneutrophils"],
    ["B12\n(Cobalamin)", "Methylcobalamin\nAdenosylcobalamin", "Methionine synthesis\nMyelin maintenance", "Megaloblastic anemia\n+ SACD", "Elevated MMA\n(specific for B12)"],
    ["C\n(Ascorbic acid)", "Ascorbate", "Collagen synthesis\nAntioxidant", "SCURVY", "Perifollicular\nhemorrhage,\nCorkscrew hairs"],
]
master_table = Table(master_data, colWidths=[2.2*cm, 3*cm, 3.8*cm, 4*cm, 4*cm])
master_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  C_DARK_BLUE),
    ("TEXTCOLOR",     (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",      (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,0),  8.5),
    ("ALIGN",         (0,0), (-1,-1), "LEFT"),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("FONTNAME",      (0,1), (-1,-1), "Helvetica"),
    ("FONTSIZE",      (0,1), (-1,-1), 7.5),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),  [C_WHITE, C_GREY_LIGHT]),
    ("GRID",          (0,0), (-1,-1), 0.3, colors.HexColor("#b0bec5")),
    ("LEFTPADDING",   (0,0), (-1,-1), 4),
    ("RIGHTPADDING",  (0,0), (-1,-1), 4),
    ("TOPPADDING",    (0,0), (-1,-1), 3),
    ("BOTTOMPADDING", (0,0), (-1,-1), 3),
    ("BACKGROUND",    (0,1), (0,-1),  C_LIGHT_BLUE),
    ("FONTNAME",      (0,1), (0,-1),  "Helvetica-Bold"),
]))
story.append(master_table)
story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════════════════
# CHAPTER 2 — MINERAL METABOLISM
# ═══════════════════════════════════════════════════════════════════════════
story.append(colored_box_para("CHAPTER 2: MINERAL METABOLISM", C_DARK_BLUE,
    S("ch2", fontSize=16, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=22, alignment=TA_CENTER)))
story.append(sp(8))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Minerals are <b>inorganic elements</b> (not carbon-based) that the body needs. "
    "Think of them as the <b>hardware of the body</b> - calcium for bones, iron for blood, "
    "iodine for thyroid hormone, zinc for enzymes. "
    "The body tightly controls blood levels of these minerals through hormones.",
    BODY))
story.append(sp(8))

# ── Calcium ───────────────────────────────────────────────────────────────────
story.append(colored_box_para("CALCIUM METABOLISM", C_MID_BLUE,
    S("cam", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Calcium is the most abundant mineral in the body. <b>99% is in bones</b> as hydroxyapatite, "
    "and 1% floats in blood. The body keeps blood calcium in a <b>very tight range</b> "
    "(8.5-10.5 mg/dL) using 3 hormones like a thermostat: "
    "PTH raises it, Calcitonin lowers it, Vitamin D raises it. "
    "Too low calcium = muscles and nerves get overexcitable (tetany). "
    "Too high calcium = 'Bones, Stones, Groans, Psychic Moans.'",
    BODY))
story.append(sp(6))

ca_reg_data = [
    ["Hormone", "Made by", "Effect on Ca2+", "Effect on PO4-", "Main Actions"],
    ["PTH\n(Parathyroid\nHormone)", "Parathyroid\nglands\n(4 glands)", "INCREASES\n(Ca2+ rises)", "DECREASES\n(PO4- falls)", "1. Bone resorption (osteoclasts)\n2. Kidney: Ca2+ reabsorption in DCT\n3. Activates Vitamin D (stimulates 1-alpha-hydroxylase)\n4. Phosphaturia (PO4 excretion)"],
    ["Calcitriol\n(Active Vit D)", "Kidney\n(1-alpha-\nhydroxylase)", "INCREASES", "INCREASES", "1. Intestine: Ca2+ absorption (via Calbindin)\n2. Bone mineralization\n3. Kidney: Ca2+ reabsorption"],
    ["Calcitonin", "Thyroid\n(C-cells)", "DECREASES\n(Ca2+ falls)", "DECREASES", "1. Inhibits osteoclasts (less bone resorption)\n2. Increases Ca2+ excretion by kidney\n3. Decreases PO4 reabsorption"],
]
ca_reg_table = Table(ca_reg_data, colWidths=[2.8*cm, 2.5*cm, 2.5*cm, 2.5*cm, 6.7*cm])
ca_reg_table.setStyle(header_table_style(C_MID_BLUE))
story.append(ca_reg_table)
story.append(sp(6))

story.append(Paragraph("HYPOCALCEMIA (Low Blood Calcium):", BODY_BOLD))
hypo_data = [
    ["Causes", "Features (Clinical)"],
    ["- Hypoparathyroidism\n- Vitamin D deficiency\n- Chronic renal failure\n- Hypomagnesemia\n- After thyroid surgery\n  (accidental removal of parathyroid)", "TETANY (muscle overexcitability):\n- Carpopedal spasm (hand/foot cramps)\n- TROUSSEAU'S SIGN: Carpal spasm on inflating BP cuff\n- CHVOSTEK'S SIGN: Facial twitch on tapping facial nerve\n- Perioral (around mouth) tingling\n- Laryngospasm (can obstruct airway)\n- Convulsions / Seizures\n- QT PROLONGATION on ECG"],
]
hypo_table = Table(hypo_data, colWidths=[5.5*cm, 11.5*cm])
hypo_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0),(-1,0),  C_RED),
    ("TEXTCOLOR",    (0,0),(-1,0),  C_WHITE),
    ("FONTNAME",     (0,0),(-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0),(-1,-1), 8.5),
    ("GRID",         (0,0),(-1,-1), 0.4, colors.HexColor("#ef9a9a")),
    ("VALIGN",       (0,0),(-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0),(-1,-1), 5),
    ("TOPPADDING",   (0,0),(-1,-1), 4),
    ("BOTTOMPADDING",(0,0),(-1,-1), 4),
]))
story.append(hypo_table)
story.append(sp(6))

story.append(Paragraph("HYPERCALCEMIA (High Blood Calcium) - 'Bones, Stones, Groans, Psychic Moans':", BODY_BOLD))
hyper_data = [
    ["Bones", "Stones", "Groans", "Psychic Moans"],
    ["Bone pain\nPathological\nfractures\nOsteitis fibrosa\ncystica", "Renal calculi\n(kidney stones)\nNephrocalcinosis\n(calcium in kidney)", "Abdominal pain\nConstipation\nNausea/Vomiting\nPeptic ulcer\nPancreatitis", "Confusion\nDepression\nWeakness\nPolyuria\nPolydipsia"],
]
hyper_table = Table(hyper_data, colWidths=[4.25*cm, 4.25*cm, 4.25*cm, 4.25*cm])
hyper_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0),(-1,0),  C_ACCENT),
    ("TEXTCOLOR",    (0,0),(-1,0),  C_WHITE),
    ("FONTNAME",     (0,0),(-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0),(-1,-1), 8.5),
    ("GRID",         (0,0),(-1,-1), 0.4, colors.HexColor("#ffcc80")),
    ("VALIGN",       (0,0),(-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0),(-1,-1), 5),
    ("TOPPADDING",   (0,0),(-1,-1), 4),
    ("BOTTOMPADDING",(0,0),(-1,-1), 4),
    ("ALIGN",        (0,0),(-1,-1), "CENTER"),
    ("BACKGROUND",   (0,1),(-1,-1), colors.HexColor("#fff3e0")),
]))
story.append(hyper_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Calcium:\n"
    "3 hormones: 'PCT' = PTH (up), Calcitonin (down), calciTriol (up)\n"
    "PTH mnemonic: 'PTH Pushes Ca up, Pulls PO4 down'\n"
    "Tetany signs: 'TC' = Trousseau's and Chvostek's (TC = Two Calcium tests)\n"
    "Hypercalcemia = 'Bones Stones Groans Moans' - easiest mnemonic in biochemistry!\n"
    "Serum calcium formula: Correct Ca = Measured Ca + 0.8 x (4 - Albumin)",
    C_YELLOW,
    S("mt13", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── Iron ────────────────────────────────────────────────────────────────────
story.append(colored_box_para("IRON METABOLISM", C_MID_BLUE,
    S("im", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Iron is the <b>'Oxygen delivery worker.'</b> It sits in the center of hemoglobin and "
    "carries oxygen from lungs to all tissues. The body is very careful with iron - "
    "it recycles ~95% of iron from old red blood cells. Only a small amount needs to be "
    "absorbed from food each day. A special hormone called <b>Hepcidin</b> acts as the master "
    "controller of iron - it prevents too much iron from entering the blood.",
    BODY))
story.append(sp(6))

iron_data = [
    ["EXAM ANSWER: IRON METABOLISM", ""],
    ["Daily\nrequirement", "Adult male: 1 mg/day\nMenstruating female: 2 mg/day\nPregnancy: 3-4 mg/day\nDietary intake: ~10-15 mg/day (only 5-10% absorbed)"],
    ["Absorption", "Site: DUODENUM and upper JEJUNUM\nFe2+ (ferrous) absorbed better than Fe3+ (ferric)\nVitamin C promotes absorption (reduces Fe3+ to Fe2+)\nPromoters: Meat, Vitamin C, acidic pH\nInhibitors: Phytates, oxalates, tannins (tea), antacids, calcium"],
    ["Transport\nin blood", "Bound to TRANSFERRIN (beta-1 globulin, binds 2 Fe3+)\nTIBC (Total Iron Binding Capacity) = measure of transferrin\nTransferrin saturation = Serum iron / TIBC x 100 (normal: 25-35%)"],
    ["Storage\nforms", "FERRITIN - major intracellular storage protein (best indicator of body iron stores)\nHEMOSIDERIN - insoluble, in macrophages (excess iron)"],
    ["Regulation\n(HEPCIDIN)", "Hepcidin (liver hormone) - MASTER REGULATOR of iron\n- Iron overload -> High hepcidin -> Blocks FERROPORTIN -> Less iron absorbed\n- Iron deficiency -> Low hepcidin -> More iron absorbed\n- Inflammation -> High hepcidin -> Anemia of chronic disease"],
    ["Functions", "1. Hemoglobin (70% of body iron) - oxygen transport\n2. Myoglobin - oxygen storage in muscle\n3. Cytochromes (electron transport chain, liver detox)\n4. Enzyme cofactor (catalase, ribonucleotide reductase)"],
    ["Iron\nDeficiency\nAnemia", "MOST COMMON NUTRITIONAL DEFICIENCY WORLDWIDE\nStages: Iron depletion -> Iron deficiency without anemia -> IDA\n\nLab findings: Low serum iron, LOW ferritin, HIGH TIBC, Microcytic hypochromic anemia\n\nClinical features:\n- Fatigue, pallor, exertional dyspnea\n- KOILONYCHIA (spoon-shaped nails) - CLASSIC sign\n- Angular stomatitis, glossitis\n- PICA (eating non-food items: ice/pagophagia, clay/geophagia)\n- PLUMMER-VINSON SYNDROME: IDA + Dysphagia + Esophageal web (risk of esophageal cancer)"],
    ["Iron overload\n(Hemochromatosis)", "Excess iron deposits in liver, pancreas, heart, skin, gonads\nBronze diabetes: bronze skin + diabetes + cirrhosis = CLASSIC TRIAD\nTreatment: Phlebotomy (blood letting), Deferasirox/Deferoxamine"],
]
iron_table = Table(iron_data, colWidths=[3.8*cm, 13.2*cm])
iron_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,0),  colors.HexColor("#b71c1c")),
    ("TEXTCOLOR",    (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",     (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,0),  10),
    ("SPAN",         (0,0), (-1,0)),
    ("ALIGN",        (0,0), (-1,0),  "CENTER"),
    ("BACKGROUND",   (0,1), (0,-1),  C_RED_LIGHT),
    ("FONTNAME",     (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",     (0,0), (-1,-1), 8.5),
    ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#ef9a9a")),
    ("VALIGN",       (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[C_WHITE, C_RED_LIGHT]),
]))
story.append(iron_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Iron:\n"
    "Iron absorption: 'ACID MEAT VIT C' = Acidic pH, Meat, Vitamin C all increase absorption\n"
    "Iron inhibitors: 'POTA' = Phytates, Oxalates, Tannins, Antacids\n"
    "IDA lab: 'Low Low High' = Low serum iron, Low ferritin, High TIBC\n"
    "KOILONYCHIA = 'Koil = Coil = Spoon nails' - think of nails curling like a spoon\n"
    "PLUMMER-VINSON = 'Please Let Me Vomit - Very Painful' = dysphagia + web + IDA\n"
    "Hemochromatosis = 'HCC' = Hepatic cirrhosis, Cardiac disease, Chestnut (bronze) skin",
    C_YELLOW,
    S("mt14", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── Iodine ────────────────────────────────────────────────────────────────────
story.append(colored_box_para("IODINE & THYROID HORMONE METABOLISM", C_MID_BLUE,
    S("iod", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

story.append(Paragraph("SIMPLE EXPLANATION:", SUB_HDR))
story.append(Paragraph(
    "Iodine is used to make thyroid hormones (T3 and T4). "
    "Think of thyroid hormones as the body's <b>'gas pedal'</b> - they speed up metabolism. "
    "Without iodine, the thyroid gland tries harder and harder to make hormones and grows bigger = <b>GOITER.</b> "
    "In babies and pregnant women, iodine deficiency is especially dangerous because "
    "T3/T4 are essential for brain development.",
    BODY))
story.append(sp(6))

iod_data = [
    ["Daily requirement", "150 micrograms/day (adults); 200-300 mcg during pregnancy"],
    ["Thyroid hormone\nsynthesis steps\n(MUST KNOW)", "Step 1: TRAPPING - Thyroid gland actively takes up I- from blood (via NIS = Na-Iodide Symporter)\nStep 2: OXIDATION - I- converted to I2 (by Thyroid Peroxidase/TPO using H2O2)\nStep 3: ORGANIFICATION - I2 added to Tyrosine residues on Thyroglobulin -> MIT and DIT\n   MIT = Monoiodotyrosine (1 iodine)\n   DIT = Diiodotyrosine (2 iodines)\nStep 4: COUPLING (by TPO):\n   MIT + DIT = T3 (Triiodothyronine) - more active\n   DIT + DIT = T4 (Thyroxine) - more abundant\nStep 5: STORAGE - as Thyroglobulin colloid in follicular lumen\nStep 6: RELEASE - Thyroglobulin proteolysis -> T3 and T4 released into blood"],
    ["Iodine\ndeficiency", "GOITER (MOST COMMON manifestation) - enlarged thyroid\nHypothyroidism (low T3/T4)\nCRETINISM (severe deficiency in fetus/newborn):\n- Mental retardation (irreversible if not treated early)\n- Stunted growth (short stature)\n- Deaf-mutism\n- Pot belly, dry skin, coarse hair\n- Protruding tongue"],
    ["Prevention", "IODIZATION OF SALT (25-30 mcg iodine per gram of salt) - most effective public health measure"],
    ["Drugs affecting", "Propylthiouracil (PTU) and Carbimazole: block TPO (organification step)\nLithium: blocks release of T3/T4\nAmiodarone: contains iodine, can cause hyper OR hypothyroidism"],
]
iod_table = Table(iod_data, colWidths=[4.5*cm, 12.5*cm])
iod_table.setStyle(header_table_style(C_PURPLE))
story.append(iod_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Iodine:\n"
    "Synthesis steps: 'TOOCS' = Trapping, Oxidation, Organification, Coupling, Storage\n"
    "Coupling rule: '1+2=3, 2+2=4' = MIT+DIT=T3, DIT+DIT=T4\n"
    "Cretinism features: '4 M's' = Mental retardation, Myxedema, Mutism, Midget (short stature)\n"
    "Goiter = 'Gland Goes Bigger trying to Get iodine'\n"
    "Iodized salt = cheapest, most effective way to prevent iodine deficiency",
    C_YELLOW,
    S("mt15", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(sp(8))

# ── Trace Minerals ────────────────────────────────────────────────────────────
story.append(colored_box_para("TRACE MINERALS - Zinc, Copper, Fluoride", C_MID_BLUE,
    S("tm", fontSize=12, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(6))

trace_data = [
    ["Mineral", "Functions", "Deficiency", "Excess/Toxicity"],
    ["ZINC\n(Zn)", "- Cofactor of 300+ enzymes\n  (carbonic anhydrase,\n  alcohol DH, RNA polymerase)\n- Wound healing\n- Immune function\n- Sexual maturation\n- Taste & smell\n- Insulin storage\n- DNA/RNA synthesis", "- DWARFISM and\n  HYPOGONADISM\n  (Prasad's syndrome)\n- Acrodermatitis\n  enteropathica\n  (skin rash around\n  mouth, hands, feet)\n- Delayed wound healing\n- AGEUSIA (loss of taste)\n- ANOSMIA (loss of smell)\n- Poor immunity", "- Nausea, vomiting\n- Copper deficiency\n  (excess Zn blocks Cu\n  absorption)\n- Metallic taste"],
    ["COPPER\n(Cu)", "- CERULOPLASMIN\n  (ferroxidase - Fe2+->Fe3+\n  for transferrin binding)\n- Cytochrome c oxidase\n  (ETC)\n- Superoxide dismutase\n  (antioxidant)\n- LYSYL OXIDASE\n  (collagen & elastin\n  cross-linking)\n- TYROSINASE\n  (melanin synthesis)\n- Dopamine-beta-hydroxylase", "- Hypochromic anemia\n  (Cu needed for Fe\n  metabolism)\n- Neurological\n  degeneration\n- Depigmentation\n  (white skin/hair)\n- Menkes disease:\n  kinky hair, brain\n  damage, low Cu", "WILSON'S DISEASE:\n- Copper accumulates\n  in liver, brain,\n  cornea, kidneys\n- Cirrhosis (liver)\n- Neuropsychiatric\n  symptoms\n- KAYSER-FLEISCHER\n  RINGS (brown ring\n  in cornea)\n- Low ceruloplasmin\n  in blood"],
    ["FLUORIDE\n(F)", "- Strengthens TOOTH\n  ENAMEL (forms\n  fluorapatite - harder)\n- Strengthens BONE", "DENTAL CARIES\n(tooth decay)\nNo strong fluorapatite\nformed = bacteria\neasily destroy enamel", "FLUOROSIS:\n- DENTAL FLUOROSIS:\n  Mottled brown teeth\n  (chalky white to\n  brown staining)\n- SKELETAL FLUOROSIS:\n  Osteosclerosis\n  (dense bones)\n  Calcification of\n  ligaments\n  Bone deformities"],
]
trace_table = Table(trace_data, colWidths=[2.3*cm, 5*cm, 5.5*cm, 4.2*cm])
trace_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  C_TEAL),
    ("TEXTCOLOR",     (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",      (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,0),  8.5),
    ("ALIGN",         (0,0), (-1,-1), "LEFT"),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("FONTNAME",      (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTNAME",      (1,1), (-1,-1), "Helvetica"),
    ("FONTSIZE",      (0,1), (-1,-1), 7.5),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#80cbc4")),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),  [C_WHITE, C_TEAL_LIGHT]),
    ("LEFTPADDING",   (0,0), (-1,-1), 4),
    ("RIGHTPADDING",  (0,0), (-1,-1), 4),
    ("TOPPADDING",    (0,0), (-1,-1), 3),
    ("BOTTOMPADDING", (0,0), (-1,-1), 3),
]))
story.append(trace_table)
story.append(sp(6))

story.append(colored_box_para(
    "MEMORY TRICKS for Trace Minerals:\n"
    "ZINC = 'ZINC makes you think' - enzymes, brain, taste, smell\n"
    "Zinc deficiency = 'DASH' = Dwarfism, Anosmia, Slow wound healing, Hypogonadism\n"
    "COPPER = 'COPPER carries iron' - ceruloplasmin helps iron transport\n"
    "Wilson's disease = 'Wilson WEARS a ring' = Kayser-Fleischer ring in eyes\n"
    "FLUORIDE = 'Fluoride FIGHTS cavities' (deficiency = caries; excess = mottled teeth)\n"
    "Fluorosis: 'Too much fluoride MOTTLE your smile'",
    C_YELLOW,
    S("mt16", fontSize=9.5, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=14)
))
story.append(PageBreak())

# ── FINAL EXAM TIPS ──────────────────────────────────────────────────────────
story.append(colored_box_para("FINAL EXAM TIPS - HOW TO WRITE FOR FULL MARKS", C_DARK_BLUE,
    S("fet", fontSize=13, textColor=C_WHITE, fontName="Helvetica-Bold",
      leading=18, alignment=TA_CENTER)))
story.append(sp(8))

tips_data = [
    ["TIP", "WHAT TO DO", "EXAMPLE"],
    ["1. START with Definition", "Always write a 1-2 line definition first", "Vitamin A is a fat-soluble vitamin also known as Retinol, essential for vision and epithelial integrity."],
    ["2. USE SUBHEADINGS", "Bold headings for Sources, Functions, Deficiency, Toxicity", "Sources: (then list)\nFunctions: (then list)\nDeficiency: (then list)"],
    ["3. NUMBERED LISTS", "Never write a paragraph - use numbered points", "Functions:\n1. Vision - component of rhodopsin\n2. Epithelial integrity..."],
    ["4. DRAW TABLES", "For classifications and comparisons, draw a table", "Fat vs Water-soluble table\nHypocalcemia vs Hypercalcemia table"],
    ["5. MENTION CLINICAL SIGN", "Add the pathognomonic or most important clinical sign", "Bitot's spots are pathognomonic of Vitamin A deficiency"],
    ["6. MENTION LAB FINDINGS", "Where relevant, add one or two lab values", "In IDA: Low serum iron, Low ferritin, High TIBC"],
    ["7. END WITH TREATMENT", "Always end long answers with treatment/prevention", "Treatment: Vitamin C 100-200 mg/day; Prevention: iodized salt"],
    ["8. USE MNEMONICS IN EXAM", "Write the mnemonic as part of your answer", "Pellagra presents with the 4 D's: Dermatitis, Diarrhea, Dementia, Death"],
]
tips_table = Table(tips_data, colWidths=[2.5*cm, 5*cm, 9.5*cm])
tips_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  C_GREEN),
    ("TEXTCOLOR",     (0,0), (-1,0),  C_WHITE),
    ("FONTNAME",      (0,0), (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,0),  9),
    ("FONTNAME",      (0,1), (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,1), (-1,-1), 8.5),
    ("FONTNAME",      (1,1), (-1,-1), "Helvetica"),
    ("ALIGN",         (0,0), (-1,-1), "LEFT"),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),  [C_WHITE, C_GREEN_LIGHT]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#a5d6a7")),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
]))
story.append(tips_table)
story.append(sp(10))

story.append(colored_box_para(
    "QUICK FIRE REVISION - ONE-LINERS FOR LAST MINUTE REVIEW\n\n"
    "Vit A deficiency = Night blindness (earliest) + Bitot's spots (pathognomonic)\n"
    "Vit D synthesis: Skin -> Liver (25-OH) -> Kidney (1,25-OH2) = Calcitriol\n"
    "Rickets X-ray: Widened metaphysis, cupping, fraying of epiphysis\n"
    "Vit E = antioxidant = protects RBC = hemolytic anemia in premature infants\n"
    "Vit K factors: 1972 = II, VII, IX, X = Warfarin blocks their activation\n"
    "B1 = TPP = Wernicke's (CAO triad) + Korsakoff's (confabulation)\n"
    "B3 deficiency = Pellagra = 4 D's (Dermatitis, Diarrhea, Dementia, Death)\n"
    "B6 = PLP = Transamination + NT synthesis; INH causes B6 deficiency\n"
    "B9 = Folate = Megaloblastic anemia + Neural tube defects (no neurological features)\n"
    "B12 = Cobalamin = Megaloblastic anemia + SACD (posterior + lateral columns)\n"
    "B12 needs Intrinsic Factor from stomach; Pernicious anemia = no IF\n"
    "Vit C = Collagen synthesis = Scurvy = Perifollicular hemorrhage + corkscrew hairs\n"
    "Ca regulation: PTH (up), Calcitonin (down), Calcitriol (up)\n"
    "Hypocalcemia signs: Trousseau's + Chvostek's = TETANY\n"
    "Hypercalcemia: Bones Stones Groans Psychic Moans\n"
    "IDA lab: Low Fe, Low Ferritin, HIGH TIBC = Microcytic hypochromic anemia\n"
    "Iron master regulator = HEPCIDIN (liver)\n"
    "Iodine deficiency = Goiter + Cretinism (in infants)\n"
    "Iodine synthesis steps: Trapping -> Oxidation -> Organification -> Coupling -> Release\n"
    "Wilson's disease = Copper excess = Kayser-Fleischer rings in eyes\n"
    "Fluoride excess = Dental fluorosis (mottled teeth) + Skeletal fluorosis",
    C_DARK_BLUE,
    S("qf", fontSize=8.5, textColor=colors.HexColor("#e3f2fd"), fontName="Helvetica", leading=13)
))

# ── Build ───────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/biochem-notes && python3 make_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/biochem-notes/Biochemistry_Vitamins_Minerals.pdf

Your PDF is ready! Download it here:

Biochemistry Vitamins Minerals

PDF Document · PDF


Here's what's inside the PDF (10+ pages, fully colour-coded):
SectionWhat you get
Cover PageTitle, subject, exam-prep label
How to Use GuideColour coding explained
Chapter 1: VitaminsAll 11 vitamins (A, D, E, K, B1, B2, B3, B6, B9, B12, C)
Each vitamin has 3 partsSimple explanation + Exam-format table + Memory tricks (yellow box)
Master Revision TableAll 11 vitamins in one single table - perfect for last-minute revision
Chapter 2: MineralsCalcium, Iron, Iodine, Zinc, Copper, Fluoride
Calcium sectionRegulation hormones, Hypocalcemia (Trousseau/Chvostek), Hypercalcemia (Bones Stones Groans Moans)
Iron sectionFull metabolism, IDA lab values, Plummer-Vinson, Hemochromatosis
Exam Writing Tips8 tips on exactly how to structure your answers
Final Quick-Fire list20+ one-liner revision statements for the night before exam

Why so much time?

Good question! Here's why it took time:
1. Your first message got cancelled You sent the topic list, I asked a clarifying question - then you sent a second message before I could finish. That reset everything.
2. Writing 400+ lines of PDF code from scratch The PDF wasn't a simple export. It was built with:
  • Full colour-coded layout (blue boxes, yellow trick boxes, orange headers)
  • 11 vitamins + 4 minerals, each with 3 sections
  • Master revision table, exam tips page, quick-fire list
  • All formatted precisely for A4 with proper spacing
3. The session gap You asked at 7:38 PM but the PDF was delivered at 3:18 AM - that's because the previous session ended mid-task (the code was written but never executed), and when you came back asking "Where is PDF?" I had to rebuild and run it fresh.

Going forward, if you need something faster, just say:
  • "Simple PDF, just text" - done in ~1 minute
  • "Fancy formatted PDF" - takes ~5-8 minutes like today
The PDF itself is 51KB and covers everything you need. Worth the wait!

Now make for biochem

The Vitamins & Mineral Metabolism PDF I just made is the Biochemistry PDF! It already covers everything:
  • ✅ Vitamins A, D, E, K (Fat-soluble)
  • ✅ Vitamins B1, B2, B3, B6, B9, B12, C (Water-soluble)
  • ✅ Calcium Metabolism
  • ✅ Iron Metabolism
  • ✅ Iodine & Thyroid
  • ✅ Zinc, Copper, Fluoride
  • ✅ Exam writing format for each
  • ✅ Memory tricks for each
  • ✅ Master revision table
  • ✅ Quick-fire last-minute list
You can download it again here:

Biochemistry Vitamins Minerals

PDF Document · PDF


Did you mean something different by "biochem"? For example:
  • More topics - like Carbohydrate metabolism, Lipid metabolism, Protein metabolism, Enzymes?
  • A different format - like shorter/simpler?
Just let me know and I'll make it right away!

Is this pdf have not thats much discription i only want to pass in my exam

Got it! You just want to pass - so short, clean, only the most important points. No extra detail.
Writing File

~/biochem-notes/make_simple_pdf.py

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

OUTPUT = "/home/daytona/workspace/biochem-notes/Biochem_Pass_Notes.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=1.5*cm, leftMargin=1.5*cm,
    topMargin=1.5*cm, bottomMargin=1.5*cm)

BLUE   = colors.HexColor("#1565c0")
LBLUE  = colors.HexColor("#e3f2fd")
GREEN  = colors.HexColor("#2e7d32")
LGREEN = colors.HexColor("#e8f5e9")
RED    = colors.HexColor("#c62828")
LRED   = colors.HexColor("#ffebee")
ORANGE = colors.HexColor("#e65100")
YELLOW = colors.HexColor("#fffde7")
GREY   = colors.HexColor("#f5f5f5")
WHITE  = colors.white
BLACK  = colors.black

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

TITLE  = sty("t", fontSize=20, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=26)
CH     = sty("ch", fontSize=13, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=18)
SH     = sty("sh", fontSize=11, textColor=BLUE, fontName="Helvetica-Bold", leading=15)
BODY   = sty("b", fontSize=9, textColor=BLACK, fontName="Helvetica", leading=13)
BOLD   = sty("bo", fontSize=9, textColor=BLACK, fontName="Helvetica-Bold", leading=13)
TRICK  = sty("tr", fontSize=9, textColor=colors.HexColor("#4e342e"), fontName="Helvetica-BoldOblique", leading=13)
RED_S  = sty("rs", fontSize=9, textColor=RED, fontName="Helvetica-Bold", leading=13)

def sp(n=5): return Spacer(1, n)
def hr(): return HRFlowable(width="100%", thickness=0.4, color=colors.HexColor("#b0bec5"), spaceAfter=3, spaceBefore=3)

def box(text, bg, style):
    t = Table([[Paragraph(text, style)]], colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1),bg),
        ("BOX",(0,0),(-1,-1),0.5,colors.HexColor("#90a4ae")),
        ("LEFTPADDING",(0,0),(-1,-1),7),
        ("RIGHTPADDING",(0,0),(-1,-1),7),
        ("TOPPADDING",(0,0),(-1,-1),5),
        ("BOTTOMPADDING",(0,0),(-1,-1),5),
    ]))
    return t

def simple_table(data, col_widths, hdr_color=BLUE):
    t = Table(data, colWidths=col_widths)
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,0), hdr_color),
        ("TEXTCOLOR",(0,0),(-1,0), WHITE),
        ("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"),
        ("FONTSIZE",(0,0),(-1,-1),8),
        ("FONTNAME",(0,1),(-1,-1),"Helvetica"),
        ("GRID",(0,0),(-1,-1),0.3,colors.HexColor("#b0bec5")),
        ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, GREY]),
        ("VALIGN",(0,0),(-1,-1),"TOP"),
        ("LEFTPADDING",(0,0),(-1,-1),4),
        ("TOPPADDING",(0,0),(-1,-1),3),
        ("BOTTOMPADDING",(0,0),(-1,-1),3),
    ]))
    return t

story = []

# ── COVER ──────────────────────────────────────────────────────────────────
cover = Table([[Paragraph("BIOCHEMISTRY", TITLE)],
               [sp(4)],
               [Paragraph("Vitamins &amp; Mineral Metabolism", sty("cs", fontSize=13, textColor=colors.HexColor("#bbdefb"), fontName="Helvetica", leading=18, alignment=TA_CENTER))],
               [sp(6)],
               [Paragraph("PASS NOTES  |  Exam Ready  |  Simple &amp; Short", sty("ci", fontSize=10, textColor=colors.HexColor("#e3f2fd"), fontName="Helvetica", leading=14, alignment=TA_CENTER))],
              ], colWidths=[doc.width + 3*cm])
cover.setStyle(TableStyle([
    ("BACKGROUND",(0,0),(-1,-1),BLUE),
    ("LEFTPADDING",(0,0),(-1,-1),20),
    ("TOPPADDING",(0,0),(-1,-1),8),
    ("BOTTOMPADDING",(0,0),(-1,-1),8),
]))
story += [cover, sp(10)]

# ── CLASSIFICATION ─────────────────────────────────────────────────────────
story += [box("VITAMINS - CLASSIFICATION", BLUE, CH), sp(5)]
cls = [["Type","Vitamins","Stored?","Toxic?"],
       ["Fat-Soluble","A, D, E, K","YES (liver)","YES"],
       ["Water-Soluble","B1,B2,B3,B6,B9,B12,C","NO","Rarely"]]
story += [simple_table(cls,[3*cm,5*cm,4*cm,4*cm]), sp(4)]
story += [box("TRICK: Fat soluble = ADEK  |  Water soluble = all B's + C", YELLOW, TRICK), sp(8)]

# ── FAT SOLUBLE VITAMINS ───────────────────────────────────────────────────
story += [box("FAT-SOLUBLE VITAMINS", BLUE, CH), sp(5)]

# Vitamin A
story += [Paragraph("VITAMIN A (Retinol)", SH), sp(2)]
va = [["Sources","Liver, egg, dairy, fish oil | Beta-carotene (carrots, green veg)"],
      ["Active form","11-cis-retinal (vision), Retinoic acid (growth)"],
      ["Functions","1. Vision (Rhodopsin in rods)\n2. Epithelial integrity\n3. Immunity\n4. Growth & reproduction"],
      ["Deficiency","Night blindness (EARLIEST) | Xerophthalmia | Bitot's spots* | Keratomalacia"],
      ["Toxicity","Headache, vomiting, teratogenic in pregnancy"]]
story += [simple_table(va,[3.5*cm,13.5*cm]), sp(3)]
story += [box("*Bitot's spots = foamy patches on conjunctiva = PATHOGNOMONIC of Vit A deficiency\nTRICK: A = Adjusting eyes in dark (night blindness first sign)", YELLOW, TRICK), sp(6)]

# Vitamin D
story += [Paragraph("VITAMIN D (Calciferol) - Sunshine Vitamin", SH), sp(2)]
vd = [["Synthesis","Skin (UV) → Cholecalciferol → Liver (25-OH) → Kidney (1,25-OH2) = CALCITRIOL"],
      ["Functions","1. Ca2+ absorption (intestine)\n2. Bone mineralization\n3. Phosphate absorption"],
      ["Deficiency\n(Children)","RICKETS: Bow legs, Rachitic rosary, Frontal bossing, Craniotabes"],
      ["Deficiency\n(Adults)","OSTEOMALACIA: Bone softening, pain, fractures"],
      ["Lab (Rickets)","Low Ca, Low PO4, HIGH ALP (alkaline phosphatase)"]]
story += [simple_table(vd,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: Skin→Liver→Kidney = 'SLK = Silk Road'\nLab: Both minerals DOWN, ALP UP", YELLOW, TRICK), sp(6)]

# Vitamin E
story += [Paragraph("VITAMIN E (Tocopherol)", SH), sp(2)]
ve = [["Sources","Vegetable oils, nuts, seeds"],
      ["Function","Antioxidant - protects RBC membrane and cell membranes (PUFA protection)"],
      ["Deficiency","Hemolytic anemia in premature infants | Peripheral neuropathy | Ataxia"]]
story += [simple_table(ve,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: E = Erythrocytes (RBCs). 'Early premature babies need E'", YELLOW, TRICK), sp(6)]

# Vitamin K
story += [Paragraph("VITAMIN K - Blood Clotting Vitamin", SH), sp(2)]
vk = [["Forms","K1 (plants), K2 (gut bacteria), K3 (synthetic)"],
      ["Function","Gamma-carboxylation of clotting factors: II, VII, IX, X + Protein C, S"],
      ["Mechanism","Warfarin blocks VKOR (Vitamin K epoxide reductase) → clotting factors inactive"],
      ["Deficiency","Bleeding | Prolonged PT | Hemorrhagic disease of newborn (HDN)"],
      ["HDN","Newborns: no gut bacteria → no K2 → bleed on day 2-7\nPrevention: Vit K injection at birth"]]
story += [simple_table(vk,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: K = Koagulation | Factors: 1972 = II, VII, IX, X\nWarfarin = blocks K recycling", YELLOW, TRICK), sp(4)]
story.append(PageBreak())

# ── WATER-SOLUBLE VITAMINS ─────────────────────────────────────────────────
story += [box("WATER-SOLUBLE VITAMINS (B-Complex & Vitamin C)", BLUE, CH), sp(5)]

# B1
story += [Paragraph("B1 - Thiamine", SH), sp(2)]
b1 = [["Active form","TPP (Thiamine Pyrophosphate)"],
      ["Key enzymes","Pyruvate DH | Alpha-KG DH | Transketolase"],
      ["Deficiency","DRY BERIBERI: Peripheral neuropathy\nWET BERIBERI: Neuropathy + Heart failure + Edema\nWERNICKE'S: Confusion + Ataxia + Ophthalmoplegia (CAO triad)\nKORSAKOFF'S: Confabulation + Amnesia"],
      ["Common in","Alcoholics, polished rice eaters"]]
story += [simple_table(b1,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: Wernicke = CAO = Confusion, Ataxia, Ophthalmoplegia\nKorsakoff = K for Konfabulation", YELLOW, TRICK), sp(6)]

# B2
story += [Paragraph("B2 - Riboflavin", SH), sp(2)]
b2 = [["Active forms","FMN, FAD"],
      ["Deficiency","3 C's: Cheilosis + Corneal vascularization + Confusion\nAlso: Glossitis (magenta tongue), seborrheic dermatitis"]]
story += [simple_table(b2,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: B2 = '3 C's' = Cheilosis, Corneal vascularization, Confusion", YELLOW, TRICK), sp(6)]

# B3
story += [Paragraph("B3 - Niacin", SH), sp(2)]
b3 = [["Active forms","NAD+, NADP+"],
      ["Made from","Tryptophan (60mg Trp = 1mg Niacin)"],
      ["PELLAGRA\n(4 D's)","Dermatitis (Casal's necklace) | Diarrhea | Dementia | Death"],
      ["At risk","Corn eaters, Hartnup disease, Carcinoid syndrome, Alcoholics"]]
story += [simple_table(b3,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: Pellagra = 4 D's: Dermatitis, Diarrhea, Dementia, Death\nCasal's necklace = rash around neck like a necklace", YELLOW, TRICK), sp(6)]

# B6
story += [Paragraph("B6 - Pyridoxine", SH), sp(2)]
b6 = [["Active form","PLP (Pyridoxal Phosphate)"],
      ["Functions","Transamination | NT synthesis (Serotonin, Dopamine, GABA) | Heme synthesis"],
      ["Deficiency","Peripheral neuropathy | Sideroblastic anemia | Convulsions"],
      ["Important","INH (anti-TB drug) causes B6 deficiency → give B6 with INH"]]
story += [simple_table(b6,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: INH = 'INH Is Not Happy without B6' | B6 builds brain chemicals", YELLOW, TRICK), sp(6)]

# B9
story += [Paragraph("B9 - Folic Acid", SH), sp(2)]
b9 = [["Active form","THF (Tetrahydrofolate)"],
      ["Functions","DNA synthesis (thymidylate) | 1C transfer | Amino acid metabolism"],
      ["Deficiency","Megaloblastic anemia: Large RBCs (macro-ovalocytes) + Hypersegmented neutrophils\nNeural tube defects (Spina bifida, Anencephaly) in fetus"],
      ["Note","NO neurological features (unlike B12)\nTake 400mcg BEFORE and during pregnancy"]]
story += [simple_table(b9,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: Folate = For fetus | Spina bifida = Spinal B9 deficiency\nHypersegmented neutrophil (>5 lobes) = HALLMARK finding", YELLOW, TRICK), sp(6)]

# B12
story += [Paragraph("B12 - Cobalamin", SH), sp(2)]
b12 = [["Active forms","Methylcobalamin, Adenosylcobalamin"],
       ["Functions","Methionine synthesis + Methylmalonyl-CoA → Succinyl-CoA (myelin maintenance)"],
       ["Deficiency","Megaloblastic anemia + SACD (Subacute Combined Degeneration of spinal cord)\nSACD: Loss of vibration/proprioception + Spastic weakness"],
       ["Causes","Pernicious anemia (no Intrinsic Factor) | Vegan diet | Gastrectomy | Ileal disease"],
       ["B12 vs B9","BOTH: Megaloblastic anemia | ONLY B12: Neurological features + Elevated MMA"]]
story += [simple_table(b12,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: B12 = Big cells + Nerve damage | Pernicious = no Intrinsic Factor\n'Neuro = Never B9, Always B12'", YELLOW, TRICK), sp(4)]
story.append(PageBreak())

# Vitamin C
story += [Paragraph("VITAMIN C - Ascorbic Acid", SH), sp(2)]
vc = [["Sources","Citrus, guava, AMLA (richest source). Destroyed by heat!"],
      ["Functions","Collagen synthesis (hydroxylates proline & lysine) | Antioxidant | Iron absorption (Fe3+→Fe2+)"],
      ["SCURVY\n(deficiency)","Bleeding gums | Perifollicular hemorrhage | Corkscrew hairs\nSubperiosteal hemorrhage | Poor wound healing | Corkscrew hairs"],
      ["Treatment","Vitamin C 100-200 mg/day"]]
story += [simple_table(vc,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: C = Collagen & Cuts | Scurvy = 'PeG CoRKS' = Perifollicular, Gum bleed, Corkscrew hairs\nAmla = Ace of Vitamin C", YELLOW, TRICK), sp(6)]

# ── MASTER TABLE ───────────────────────────────────────────────────────────
story += [box("MASTER TABLE - All Vitamins (Memorize This!)", GREEN, CH), sp(5)]
master = [["Vitamin","Deficiency Disease","Key Sign to Write"],
          ["A","Night blindness, Xerophthalmia","Bitot's spots (PATHOGNOMONIC)"],
          ["D","Rickets (child), Osteomalacia (adult)","Low Ca, Low PO4, HIGH ALP"],
          ["E","Hemolytic anemia (premature infant)","Oxidative hemolysis"],
          ["K","Bleeding, HDN","Prolonged PT"],
          ["B1","Beriberi, Wernicke's, Korsakoff's","CAO triad (Wernicke's)"],
          ["B2","Cheilosis, Corneal vascularis.","3 C's"],
          ["B3","PELLAGRA","4 D's + Casal's necklace"],
          ["B6","Peripheral neuropathy, Sideroblastic anemia","Ring sideroblasts (BM)"],
          ["B9","Megaloblastic anemia + NTDs","Hypersegmented neutrophils"],
          ["B12","Megaloblastic anemia + SACD","Elevated MMA (B12 specific)"],
          ["C","SCURVY","Perifollicular hemorrhage"]]
story += [simple_table(master,[2*cm,6.5*cm,8.5*cm], GREEN), sp(8)]

# ── MINERAL METABOLISM ─────────────────────────────────────────────────────
story += [box("MINERAL METABOLISM", BLUE, CH), sp(5)]

# Calcium
story += [Paragraph("CALCIUM METABOLISM", SH), sp(2)]
ca_reg = [["Hormone","Source","Effect on Ca2+","Key Action"],
          ["PTH","Parathyroid","INCREASES","Bone resorption, Ca reabsorption (kidney), activates Vit D"],
          ["Calcitriol (Vit D)","Kidney","INCREASES","Ca absorption from intestine (via Calbindin)"],
          ["Calcitonin","Thyroid C-cells","DECREASES","Inhibits osteoclasts"]]
story += [simple_table(ca_reg,[3*cm,3.5*cm,3*cm,7.5*cm]), sp(4)]

story += [Paragraph("Hypocalcemia (Low Ca):", BOLD), sp(2)]
hypo = [["Causes","Hypoparathyroidism, Vit D deficiency, CRF, Hypomagnesemia"],
        ["Signs","TETANY: Trousseau's sign + Chvostek's sign\nCarpopedal spasm, perioral tingling, QT prolongation on ECG"],
        ["Trousseau's","Carpal spasm on inflating BP cuff"],
        ["Chvostek's","Facial twitch on tapping facial nerve"]]
story += [simple_table(hypo,[3.5*cm,13.5*cm], RED), sp(4)]

story += [Paragraph("Hypercalcemia (High Ca):", BOLD), sp(2)]
story += [box("BONES: Bone pain, fractures\nSTONES: Kidney stones, nephrocalcinosis\nGROANS: Abdominal pain, constipation, peptic ulcer\nPSYCHIC MOANS: Confusion, depression, weakness, polyuria", LRED,
    sty("hc", fontSize=9, textColor=RED, fontName="Helvetica-Bold", leading=13))]
story += [sp(3)]
story += [box("TRICK: PTH = Pushes Ca up, Pulls PO4 down\nTC = Trousseau's + Chvostek's = two signs of hypocalcemia\nHypercalcemia = Bones Stones Groans Moans", YELLOW, TRICK), sp(6)]

# Iron
story += [Paragraph("IRON METABOLISM", SH), sp(2)]
iron = [["Absorption","Duodenum | Fe2+ better than Fe3+ | Vit C helps | Tea/phytates block"],
        ["Transport","Bound to TRANSFERRIN in blood"],
        ["Storage","FERRITIN (best marker of iron stores)"],
        ["Regulation","HEPCIDIN (liver): high iron→more hepcidin→less absorption"],
        ["IDA Lab","Low serum Fe, LOW ferritin, HIGH TIBC → Microcytic hypochromic anemia"],
        ["IDA Signs","Fatigue, pallor, KOILONYCHIA (spoon nails), PICA, angular stomatitis"],
        ["Plummer-Vinson","IDA + Dysphagia + Esophageal web (risk: esophageal cancer)"],
        ["Hemochromatosis","Iron overload: Bronze skin + Diabetes + Cirrhosis = Bronze diabetes"]]
story += [simple_table(iron,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: IDA = Low-Low-High (Fe, Ferritin, TIBC)\nKoilonychia = spoon nails = classic IDA sign\nHepcidin = master regulator of iron", YELLOW, TRICK), sp(6)]

# Iodine
story += [Paragraph("IODINE & THYROID HORMONES", SH), sp(2)]
iod = [["Requirement","150 mcg/day | 200-300 mcg in pregnancy"],
       ["Synthesis\nSteps","1. TRAPPING: I- taken up by thyroid (NIS transporter)\n2. OXIDATION: I- → I2 (by TPO)\n3. ORGANIFICATION: I2 added to tyrosine → MIT, DIT\n4. COUPLING: MIT+DIT=T3 | DIT+DIT=T4\n5. RELEASE: Proteolysis of thyroglobulin"],
       ["Deficiency","Goiter (MOST COMMON) | Hypothyroidism\nCRETINISM (infant): Mental retardation, stunted growth, deaf-mutism"],
       ["Prevention","Iodization of salt (25-30 mcg/g salt)"]]
story += [simple_table(iod,[3.5*cm,13.5*cm]), sp(3)]
story += [box("TRICK: Synthesis = TOOC-R = Trapping, Oxidation, Organification, Coupling, Release\n1+2=3, 2+2=4 → MIT+DIT=T3, DIT+DIT=T4", YELLOW, TRICK), sp(6)]

# Trace minerals
story += [Paragraph("TRACE MINERALS", SH), sp(2)]
trace = [["Mineral","Function","Deficiency","Excess"],
         ["ZINC","300+ enzymes, wound healing,\ntaste & smell, immunity","Dwarfism, hypogonadism,\nAgeusia, anosmia","Nausea, blocks Cu\nabsorption"],
         ["COPPER","Ceruloplasmin, collagen (lysyl oxidase),\nmelanin (tyrosinase)","Anemia, depigmentation,\nMenkes disease","Wilson's disease:\nKayser-Fleischer rings"],
         ["FLUORIDE","Strengthens tooth enamel & bone","Dental caries","Fluorosis:\nmottled teeth"]]
story += [simple_table(trace,[2.5*cm,5.5*cm,4.5*cm,4.5*cm]), sp(3)]
story += [box("TRICK: Wilson's = copper excess = Kayser-Fleischer rings (brown ring in cornea)\nFluoride excess = mottled teeth | Fluoride deficiency = caries", YELLOW, TRICK), sp(6)]

# ── FINAL QUICK REVISION ───────────────────────────────────────────────────
story.append(PageBreak())
story += [box("LAST MINUTE QUICK REVISION", GREEN, CH), sp(5)]
qr = [
    "Vit A deficiency: Night blindness FIRST → Bitot's spots (pathognomonic)",
    "Vit D synthesis: Skin → Liver (25-OH) → Kidney (1,25-OH2 = Calcitriol)",
    "Rickets lab: Low Ca, Low PO4, HIGH ALP",
    "Vit E: antioxidant, hemolytic anemia in premature infants",
    "Vit K: factors II, VII, IX, X | Warfarin blocks VKOR | HDN in newborns",
    "B1 (Thiamine): Wernicke's = CAO | Korsakoff's = confabulation | TPP coenzyme",
    "B2: 3 C's = Cheilosis, Corneal vascularization, Confusion",
    "B3: Pellagra = 4 D's (Dermatitis, Diarrhea, Dementia, Death)",
    "B6: PLP coenzyme | INH causes B6 deficiency (give B6 with INH)",
    "B9: Megaloblastic anemia + Neural tube defects | NO neurological features",
    "B12: Megaloblastic anemia + SACD | Pernicious anemia = no Intrinsic Factor",
    "B12 specific: Elevated methylmalonic acid (MMA) | Neurological = B12 not B9",
    "Vit C: Collagen synthesis | Scurvy = bleeding gums, corkscrew hairs, perifollicular hemorrhage",
    "Ca regulation: PTH (up), Calcitonin (down), Calcitriol (up)",
    "Hypocalcemia: Trousseau's + Chvostek's signs = TETANY",
    "Hypercalcemia: Bones Stones Groans Psychic Moans",
    "IDA lab: Low Fe, Low Ferritin, HIGH TIBC = microcytic hypochromic anemia",
    "Iron master regulator = Hepcidin",
    "Iodine deficiency = Goiter + Cretinism in infants",
    "Wilson's disease = copper excess = Kayser-Fleischer rings",
    "Fluoride: deficiency = caries | excess = mottled teeth (dental fluorosis)",
]
for i, line in enumerate(qr):
    bg = LGREEN if i % 2 == 0 else WHITE
    story.append(box(f"{i+1}. {line}", bg,
        sty(f"q{i}", fontSize=8.5, textColor=BLACK, fontName="Helvetica", leading=13)))
    story.append(sp(2))

doc.build(story)
print(f"Done: {OUTPUT}")
Running Command

cd /home/daytona/workspace/biochem-notes && python3 make_simple_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/biochem-notes/Biochem_Pass_Notes.pdf

Done! Here it is - short, simple, only what you need to pass:

Biochem Pass Notes

PDF Document · PDF

What's in it (compact, no fluff):
  • All 11 vitamins - only key points in clean tables
  • Memory tricks in yellow boxes after each vitamin
  • Master table - all vitamins + deficiency disease + key sign on one page
  • Calcium, Iron, Iodine, Trace minerals - short & to the point
  • Last page = 21 one-liners for last minute revision before exam
Total: ~5 pages. Ready to read in 30 minutes! Good luck in your exam! 🎯

Pdf not downloading

Let me verify the file exists and try to fix the download link.
Running Command

ls -lh /home/daytona/workspace/biochem-notes/ && echo "---" && file /home/daytona/workspace/biochem-notes/Biochem_Pass_Notes.pdf

The file is there (7 pages, valid PDF). The issue is likely your browser or device. Try these:
Option 1 - Click this direct link:

Biochem Pass Notes

PDF Document · PDF

Option 2 - Right-click the link → "Save link as"
Option 3 - If on mobile: Try opening in Chrome browser instead of in-app browser
Option 4 - Also try the other PDF (larger version):

Biochemistry Vitamins Minerals

PDF Document · PDF


If none of these work, tell me:
  • Are you on phone or computer?
  • Which browser are you using?
I can also paste the full content as plain text here so you can copy it directly.
This is a shared conversation. Sign in to Orris to start your own chat.