i want this kind of notes for my neet pg exam for biochemistry subject
mkdir -p /home/daytona/workspace/biochem-atlas && ls /home/daytona/workspace/bio…
~/biochem-atlas/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
// ─── COLORS ───────────────────────────────────────────────────────────────────
const C = {
navyDark: "0D1B4B", // header dark bg
navyMid: "1B3A7A", // left column header
purple: "5C2D91", // right column header
teal: "00838F", // gold standards header
orange: "D4680A", // key principles header
purpleHY: "6A1B9A", // high yield header
blueLight: "E8F0FB", // left col bg
purpleLight:"F3E8FB", // right col bg
tealLight: "E0F4F5", // gold standards bg
orangeLight:"FFF3E0", // key principles bg
purpleLightHY: "F3E5F5",
defBlue: "E3EAF8",
abbrTeal: "E0F7FA",
examPink: "FCE4EC",
white: "FFFFFF",
black: "1A1A1A",
yellow: "FFD600",
red: "C62828",
green: "1B6B2F",
tealMed: "00ACC1",
orangeMed: "EF8C00",
pinkFt: "D81B60",
goldStar: "F9A825",
};
const slide = pres.addSlide();
// ─── BACKGROUND ──────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.white } });
// ─── HEADER BAND ─────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.72, fill: { color: C.navyDark } });
// Page number box
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: 0.06, w: 0.52, h: 0.60, fill: { color: "1A3068" }, line: { color: C.white, width: 1 } });
slide.addText([{ text: "PAGE", options: { fontSize: 5.5, bold: true, breakLine: true } }, { text: "1", options: { fontSize: 14, bold: true } }], {
x: 0.08, y: 0.06, w: 0.52, h: 0.60, color: C.white, align: "center", valign: "middle", margin: 0
});
// Title center
slide.addText("BIOCHEMISTRY 700+ BOOTCAMP ATLAS", {
x: 0.68, y: 0.04, w: 10.4, h: 0.32,
fontSize: 17.5, bold: true, color: C.white, align: "center", fontFace: "Arial Black", charSpacing: 1, margin: 0
});
slide.addText("MASTER MAP OF BIOCHEMISTRY", {
x: 0.68, y: 0.36, w: 10.4, h: 0.2,
fontSize: 9, bold: false, color: "B0C4FF", align: "center", fontFace: "Arial", charSpacing: 2, margin: 0
});
// Stars row
slide.addText([
{ text: "★ High Yield ", options: { color: C.yellow, bold: true } },
{ text: " Exam Focused ", options: { color: C.white } },
{ text: " Concept Based ", options: { color: C.white } },
{ text: " PYQ Driven", options: { color: C.white } },
], { x: 2.2, y: 0.54, w: 7.0, h: 0.18, fontSize: 7, align: "center", margin: 0 });
// Vision badge
slide.addShape(pres.ShapeType.rect, { x: 11.82, y: 0.05, w: 1.40, h: 0.62, fill: { color: "1A3068" }, line: { color: C.yellow, width: 1.5 } });
slide.addText([
{ text: "VISION\n", options: { bold: true, fontSize: 7.5, breakLine: true } },
{ text: "Understand\nOrganize\nRemember\nScore 700+", options: { fontSize: 5.5 } },
], { x: 11.82, y: 0.05, w: 1.40, h: 0.62, color: C.white, align: "center", valign: "middle", margin: 0 });
// ─── LEFT COLUMN: CORE DOMAINS A ─────────────────────────────────────────────
const leftX = 0.08, midX = 3.62, rightX = 9.58;
const tier1Y = 0.78, tier1H = 2.72;
// Left header
slide.addShape(pres.ShapeType.rect, { x: leftX, y: tier1Y, w: 3.48, h: 0.26, fill: { color: C.navyMid } });
slide.addText("CORE DOMAINS — METABOLISM", { x: leftX, y: tier1Y, w: 3.48, h: 0.26, fontSize: 7.5, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: leftX, y: tier1Y + 0.26, w: 3.48, h: tier1H - 0.26, fill: { color: C.blueLight } });
const leftTopics = [
["●", "Carbohydrate Metabolism", "Glycolysis, TCA, Gluconeogenesis, Glycogen"],
["●", "Lipid Metabolism", "Fatty acid synth/oxidation, Ketones, Cholesterol"],
["●", "Amino Acid Metabolism", "Transamination, Urea cycle, Deamination"],
["●", "Protein Structure & Function", "1°–4° structure, Enzymes, Hemoglobin"],
["●", "Nucleotide Metabolism", "Purine, Pyrimidine, Salvage pathways"],
["●", "Integration & Hormonal Control", "Fed/fasting state, Insulin, Glucagon"],
["●", "Vitamins & Cofactors", "Water/fat soluble, Coenzymes, Deficiency Dx"],
];
leftTopics.forEach((t, i) => {
slide.addText([
{ text: t[0] + " ", options: { color: C.navyMid, bold: true, fontSize: 7 } },
{ text: t[1] + "\n", options: { color: C.black, bold: true, fontSize: 7 } },
{ text: " " + t[2], options: { color: "555555", fontSize: 5.8 } },
], { x: leftX + 0.08, y: tier1Y + 0.30 + i * 0.34, w: 3.30, h: 0.33, margin: 0 });
});
// ─── RIGHT COLUMN: CORE DOMAINS B ────────────────────────────────────────────
const rightW = 3.62;
slide.addShape(pres.ShapeType.rect, { x: rightX, y: tier1Y, w: rightW, h: 0.26, fill: { color: C.purple } });
slide.addText("CORE DOMAINS — MOLECULAR & CLINICAL", { x: rightX, y: tier1Y, w: rightW, h: 0.26, fontSize: 7, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: rightX, y: tier1Y + 0.26, w: rightW, h: tier1H - 0.26, fill: { color: C.purpleLight } });
const rightTopics = [
["●", "Molecular Biology", "DNA replication, Transcription, Translation"],
["●", "Genetics & Mutations", "Point mutations, Frameshift, Epigenetics"],
["●", "Enzyme Kinetics", "Km, Vmax, Inhibition types, Cooperativity"],
["●", "Acid-Base & pH", "Henderson-Hasselbalch, Buffers, pKa"],
["●", "Porphyrin & Heme", "Heme synthesis, Jaundice, Porphyrias"],
["●", "Plasma Proteins", "Albumin, Globulins, Acute phase reactants"],
["●", "Clinical Biochemistry", "LFTs, RFTs, Diabetes markers, Tumor markers"],
];
rightTopics.forEach((t, i) => {
slide.addText([
{ text: t[0] + " ", options: { color: C.purple, bold: true, fontSize: 7 } },
{ text: t[1] + "\n", options: { color: C.black, bold: true, fontSize: 7 } },
{ text: " " + t[2], options: { color: "555555", fontSize: 5.8 } },
], { x: rightX + 0.08, y: tier1Y + 0.30 + i * 0.34, w: rightW - 0.12, h: 0.33, margin: 0 });
});
// ─── CENTER MIND MAP ──────────────────────────────────────────────────────────
const cx = 6.65, cy = tier1Y + tier1H / 2 + 0.05;
const hubR = 0.68;
// Outer ring background circle
slide.addShape(pres.ShapeType.ellipse, { x: cx - 1.18, y: cy - 1.15, w: 2.36, h: 2.30, fill: { color: "EEF2FF" }, line: { color: "9DB2F0", width: 1 } });
// Inner dark hub
slide.addShape(pres.ShapeType.ellipse, { x: cx - hubR, y: cy - hubR, w: hubR * 2, h: hubR * 2, fill: { color: C.navyDark }, line: { color: C.yellow, width: 2 } });
slide.addText([
{ text: "BIO-\n", options: { fontSize: 12, bold: true, breakLine: true } },
{ text: "CHEM\n", options: { fontSize: 12, bold: true, breakLine: true } },
{ text: "MASTER MAP", options: { fontSize: 5.5, bold: false } },
], { x: cx - hubR, y: cy - hubR, w: hubR * 2, h: hubR * 2, color: C.white, align: "center", valign: "middle", margin: 0 });
// Satellite nodes
const satellites = [
{ label: "CARB\nMETAB", angle: -90, color: "1565C0", bg: "DBEAFE" },
{ label: "LIPID\nMETAB", angle: -30, color: "6A1B9A", bg: "EDE7F6" },
{ label: "PROTEIN &\nENZYMES", angle: 30, color: "00695C", bg: "E0F2F1" },
{ label: "MOL\nBIOLOGY", angle: 90, color: "1B5E20", bg: "E8F5E9" },
{ label: "VITAMINS\n& COFAC", angle: 150, color: "E65100", bg: "FFF3E0" },
{ label: "AMINO\nACIDS", angle: 210, color: "880E4F", bg: "FCE4EC" },
];
const OR = 1.0; // orbit radius
satellites.forEach(s => {
const rad = (s.angle * Math.PI) / 180;
const sx = cx + OR * Math.cos(rad) - 0.36;
const sy = cy + OR * Math.sin(rad) * 0.82 - 0.22;
// line
slide.addShape(pres.ShapeType.line, {
x: cx + (hubR + 0.02) * Math.cos(rad), y: cy + (hubR + 0.02) * Math.sin(rad) * 0.82,
w: (OR - hubR - 0.38) * Math.abs(Math.cos(rad)) + 0.01,
h: (OR - hubR - 0.38) * Math.abs(Math.sin(rad)) + 0.01,
line: { color: "AABDE0", width: 0.8, dashType: "dash" }
});
slide.addShape(pres.ShapeType.roundRect, {
x: sx, y: sy, w: 0.72, h: 0.44,
fill: { color: s.bg }, line: { color: s.color, width: 1.2 }, rectRadius: 0.06
});
slide.addText(s.label, { x: sx, y: sy, w: 0.72, h: 0.44, fontSize: 5.2, bold: true, color: s.color, align: "center", valign: "middle", margin: 0 });
});
// ─── TIER 2: THREE COLUMNS ────────────────────────────────────────────────────
const t2Y = 3.56, t2H = 1.75;
const colW = 4.28;
// --- GOLD STANDARDS ---
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: t2Y, w: colW, h: 0.26, fill: { color: C.teal } });
slide.addText("⚡ GOLD STANDARDS", { x: 0.08, y: t2Y, w: colW, h: 0.26, fontSize: 8.5, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: t2Y + 0.26, w: colW, h: t2H - 0.26, fill: { color: C.tealLight } });
const goldStds = [
["Enzyme diagnosis (MI)", "Troponin I/T > CK-MB"],
["Diabetes diagnosis", "HbA1c ≥ 6.5% / FPG ≥ 126 mg/dL"],
["Protein structure", "X-ray Crystallography"],
["Enzyme kinetics", "Michaelis-Menten / Lineweaver-Burk"],
["DNA sequencing", "Sanger / NGS"],
["Genetic mutation screening", "PCR + Gel Electrophoresis"],
["Liver function", "ALT/AST ratio"],
["Renal function", "GFR (Creatinine clearance)"],
["Vitamin B12 deficiency", "Serum B12 + MMA levels"],
];
goldStds.forEach((g, i) => {
if (i >= 8) return;
slide.addText([
{ text: "✔ ", options: { color: C.green, bold: true, fontSize: 6.5 } },
{ text: g[0] + " ", options: { bold: true, color: C.black, fontSize: 6.2 } },
{ text: g[1], options: { color: "336655", fontSize: 6.2 } },
], { x: 0.14, y: t2Y + 0.30 + i * 0.18, w: colW - 0.12, h: 0.18, margin: 0 });
});
// --- KEY PRINCIPLES ---
const kpX = 4.50;
slide.addShape(pres.ShapeType.rect, { x: kpX, y: t2Y, w: colW, h: 0.26, fill: { color: C.orange } });
slide.addText("🔑 KEY PRINCIPLES (Remember!)", { x: kpX, y: t2Y, w: colW, h: 0.26, fontSize: 8.5, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: kpX, y: t2Y + 0.26, w: colW, h: t2H - 0.26, fill: { color: C.orangeLight } });
const mnemonicColors = ["1565C0","1B5E20","880E4F","D84315","6A1B9A","00695C","C62828","E65100","1A3068","2E7D32","AD1457","4A148C"];
const mnemonic = [
["B","Build anabolic pathways (fed state)"],
["I","Inhibition types: competitive vs non-comp"],
["O","Oxidation fuels catabolism (fasting state)"],
["C","Cofactors: vitamins as coenzymes"],
["H","Henderson-Hasselbalch governs pH"],
["E","Enzymes follow Km/Vmax kinetics"],
["M","Mutations cause IEMs (inborn errors)"],
["I","Integration: liver is metabolic hub"],
["S","Signal transduction via 2nd messengers"],
["T","Transcription/Translation: central dogma"],
["R","Regulation: allosteric + covalent mod."],
["Y","Yield: ATP count matters in exams"],
];
mnemonic.forEach((m, i) => {
if (i >= 12) return;
const col = i < 6 ? kpX + 0.10 : kpX + 2.18;
const row = i < 6 ? i : i - 6;
slide.addShape(pres.ShapeType.rect, { x: col, y: t2Y + 0.32 + row * 0.24, w: 0.20, h: 0.20, fill: { color: mnemonicColors[i] } });
slide.addText(m[0], { x: col, y: t2Y + 0.32 + row * 0.24, w: 0.20, h: 0.20, fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
slide.addText(m[1], { x: col + 0.23, y: t2Y + 0.32 + row * 0.24, w: 1.88, h: 0.20, fontSize: 5.8, color: C.black, valign: "middle", margin: 0 });
});
// --- HIGH YIELD FACT FILE ---
const hyX = 8.92;
slide.addShape(pres.ShapeType.rect, { x: hyX, y: t2Y, w: colW, h: 0.26, fill: { color: C.purpleHY } });
slide.addText("★ HIGH YIELD FACT FILE", { x: hyX, y: t2Y, w: colW, h: 0.26, fontSize: 8.5, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: hyX, y: t2Y + 0.26, w: colW, h: t2H - 0.26, fill: { color: C.purpleLightHY } });
const hyfacts = [
"Most common IEM: Phenylketonuria (PKU)",
"Most common enzyme deficiency in glycogen storage: Glucose-6-phosphatase",
"Rate-limiting enzyme of glycolysis: PFK-1",
"Rate-limiting of TCA: Isocitrate dehydrogenase",
"Net ATP from 1 glucose (aerobic): 30-32 ATP",
"Most abundant plasma protein: Albumin",
"Vitamin required for collagen synthesis: Vitamin C",
"Most common cause of megaloblastic anemia: B12 / Folate deficiency",
"Gout: Excess uric acid from purine catabolism",
];
hyfacts.forEach((f, i) => {
if (i >= 9) return;
slide.addText([
{ text: "★ ", options: { color: C.purpleHY, bold: true, fontSize: 7 } },
{ text: f, options: { color: C.black, fontSize: 6 } },
], { x: hyX + 0.08, y: t2Y + 0.30 + i * 0.17, w: colW - 0.14, h: 0.17, margin: 0 });
});
// ─── TIER 3: DEFINITIONS | ABBREVIATIONS | EXAM APPROACH ─────────────────────
const t3Y = 5.38, t3H = 1.60;
// --- IMPORTANT DEFINITIONS ---
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: t3Y, w: 4.10, h: 0.24, fill: { color: "1565C0" } });
slide.addText("IMPORTANT DEFINITIONS", { x: 0.08, y: t3Y, w: 4.10, h: 0.24, fontSize: 8, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: t3Y + 0.24, w: 4.10, h: t3H - 0.24, fill: { color: C.defBlue } });
const defs = [
"• Km: Substrate conc. at ½ Vmax (affinity marker)",
"• Vmax: Max reaction velocity (enzyme amount marker)",
"• Anabolism: Energy-consuming biosynthetic pathways",
"• Catabolism: Energy-releasing degradation pathways",
"• Coenzyme: Organic non-protein enzyme cofactor (often vitamin)",
"• IEM: Inborn Error of Metabolism (enzyme defect)",
"• Apoenzyme: Enzyme without cofactor (inactive)",
"• Holoenzyme: Apoenzyme + cofactor (active)",
];
defs.forEach((d, i) => {
slide.addText(d, { x: 0.14, y: t3Y + 0.28 + i * 0.165, w: 3.98, h: 0.165, fontSize: 6, color: C.black, margin: 0 });
});
// --- ABBREVIATIONS ---
const abX = 4.28;
slide.addShape(pres.ShapeType.rect, { x: abX, y: t3Y, w: 4.74, h: 0.24, fill: { color: C.teal } });
slide.addText("ABBREVIATIONS (Must Know)", { x: abX, y: t3Y, w: 4.74, h: 0.24, fontSize: 8, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: abX, y: t3Y + 0.24, w: 4.74, h: t3H - 0.24, fill: { color: C.abbrTeal } });
const abbrevs = [
["TCA","Tricarboxylic Acid Cycle","ATP","Adenosine Triphosphate"],
["PFK","Phosphofructokinase","NAD","Nicotinamide Adenine Dinucleotide"],
["FAD","Flavin Adenine Dinucleotide","CoA","Coenzyme A"],
["HMP","Hexose Monophosphate Shunt","PKU","Phenylketonuria"],
["IEM","Inborn Error of Metabolism","LDH","Lactate Dehydrogenase"],
["HbA1c","Glycated Hemoglobin","VLDL","Very Low Density Lipoprotein"],
["CPT","Carnitine Palmitoyl Transferase","HMG","3-hydroxy-3-methylglutaryl-CoA"],
];
abbrevs.forEach((a, i) => {
if (i >= 7) return;
slide.addText([
{ text: a[0] + " ", options: { bold: true, color: "005662", fontSize: 6.2 } },
{ text: "– " + a[1] + " ", options: { color: C.black, fontSize: 5.8 } },
{ text: a[2] + " ", options: { bold: true, color: "005662", fontSize: 6.2 } },
{ text: "– " + a[3], options: { color: C.black, fontSize: 5.8 } },
], { x: abX + 0.10, y: t3Y + 0.28 + i * 0.185, w: 4.54, h: 0.185, margin: 0 });
});
// --- EXAM APPROACH ---
const eaX = 9.10;
slide.addShape(pres.ShapeType.rect, { x: eaX, y: t3Y, w: 4.10, h: 0.24, fill: { color: C.pinkFt } });
slide.addText("EXAM APPROACH", { x: eaX, y: t3Y, w: 4.10, h: 0.24, fontSize: 8, bold: true, color: C.white, align: "center", margin: 0 });
slide.addShape(pres.ShapeType.rect, { x: eaX, y: t3Y + 0.24, w: 4.10, h: t3H - 0.24, fill: { color: C.examPink } });
const examSteps = [
"Read enzyme/pathway name carefully",
"Identify: anabolic OR catabolic pathway",
"Think of rate-limiting enzyme & regulation",
"Connect to clinical disease / IEM",
"Recall associated vitamin/cofactor",
"Eliminate wrong options by mechanism",
];
examSteps.forEach((s, i) => {
slide.addShape(pres.ShapeType.ellipse, { x: eaX + 0.10, y: t3Y + 0.30 + i * 0.215, w: 0.20, h: 0.20, fill: { color: C.pinkFt } });
slide.addText(String(i + 1), { x: eaX + 0.10, y: t3Y + 0.30 + i * 0.215, w: 0.20, h: 0.20, fontSize: 7, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
slide.addText(s, { x: eaX + 0.35, y: t3Y + 0.30 + i * 0.215, w: 3.75, h: 0.20, fontSize: 6.2, color: C.black, valign: "middle", margin: 0 });
});
// ─── FOOTER: 4 CALLOUT BOXES ──────────────────────────────────────────────────
const ftY = 7.00, ftH = 0.36;
const ftW = 3.18;
// PYQ Pearl
slide.addShape(pres.ShapeType.rect, { x: 0.08, y: ftY, w: ftW, h: ftH, fill: { color: "FFF8E1" }, line: { color: C.orange, width: 1.2 } });
slide.addText([
{ text: "💡 PYQ PEARL ", options: { bold: true, fontSize: 7, color: C.orange } },
{ text: ">60% Qs on enzyme defects & IEMs. Know rate-limiting steps + clinical phenotypes.", options: { fontSize: 6, color: C.black } },
], { x: 0.12, y: ftY + 0.02, w: ftW - 0.08, h: ftH - 0.04, margin: 0, valign: "middle" });
// INI-CET Pearl
slide.addShape(pres.ShapeType.rect, { x: 3.38, y: ftY, w: ftW, h: ftH, fill: { color: "E8EAF6" }, line: { color: "3F51B5", width: 1.2 } });
slide.addText([
{ text: "★ INI-CET PEARL ", options: { bold: true, fontSize: 7, color: "3F51B5" } },
{ text: "Focus on metabolic integration in fed/fasting state. Hormonal regulation = must-do.", options: { fontSize: 6, color: C.black } },
], { x: 3.42, y: ftY + 0.02, w: ftW - 0.08, h: ftH - 0.04, margin: 0, valign: "middle" });
// Exam Trap
slide.addShape(pres.ShapeType.rect, { x: 6.68, y: ftY, w: ftW, h: ftH, fill: { color: "FFEBEE" }, line: { color: C.red, width: 1.2 } });
slide.addText([
{ text: "⚠ EXAM TRAP ", options: { bold: true, fontSize: 7, color: C.red } },
{ text: "Don't confuse Km ↑ vs affinity ↓. Don't mix up glucokinase vs hexokinase. Check co-factor carefully.", options: { fontSize: 6, color: C.black } },
], { x: 6.72, y: ftY + 0.02, w: ftW - 0.08, h: ftH - 0.04, margin: 0, valign: "middle" });
// Quick Revision Mantra
slide.addShape(pres.ShapeType.rect, { x: 9.98, y: ftY, w: 3.24, h: ftH, fill: { color: "FCE4EC" }, line: { color: C.pinkFt, width: 1.2 } });
slide.addText([
{ text: "🧠 QUICK REVISION MANTRA\n", options: { bold: true, fontSize: 7, color: C.pinkFt, breakLine: true } },
{ text: "Revise → Recall → Apply → REPEAT!", options: { fontSize: 7.5, bold: true, color: C.navyDark } },
], { x: 10.02, y: ftY + 0.01, w: 3.18, h: ftH - 0.02, margin: 0, valign: "middle", align: "center" });
// ─── BOTTOM BANNER ────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect, { x: 0, y: 7.36, w: 13.3, h: 0.14, fill: { color: C.navyDark } });
slide.addText("★ CONSISTENT STUDY + SMART REVISION + PYQ PRACTICE = 700+ IS POSSIBLE ★", {
x: 0, y: 7.36, w: 13.3, h: 0.14,
fontSize: 6.8, bold: true, color: C.yellow, align: "center", charSpacing: 1, margin: 0
});
// ─── SAVE ─────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/biochem-atlas/Biochemistry_Bootcamp_Atlas_Page1.pptx" })
.then(() => console.log("✅ DONE: Biochemistry_Bootcamp_Atlas_Page1.pptx"))
.catch(e => console.error("ERROR:", e));
cd /home/daytona/workspace/biochem-atlas && node build.js 2>&1
ls -lh /home/daytona/workspace/biochem-atlas/
Biochemistry Bootcamp Atlas Page1
Presentation · PPTX
i want pdf
cd /home/daytona/workspace/biochem-atlas && libreoffice --headless --convert-to …
libreoffice --headless --convert-to pdf /home/daytona/workspace/biochem-atlas/Bi…
cp /tmp/Biochemistry_Bootcamp_Atlas_Page1.pdf /home/daytona/workspace/biochem-at…
Biochemistry Bootcamp Atlas Page1
PDF Document · PDF
Biochemistry Bootcamp Atlas Page1
Presentation · PPTX
Create more Atlas pages (Carbohydrate/Lipid Metabolism, Enzymes, Molecular Biology)
~/biochem-atlas/build_page2.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
const C = {
navyDark:"0D1B4B", teal:"007B83", tealDark:"005662", tealLight:"E0F4F5",
orange:"C85A00", orangeLight:"FFF3E0", green:"1B6B2F", greenDark:"0D4B20",
greenLight:"E8F5E9", red:"B71C1C", redLight:"FFEBEE",
purple:"5C2D91", purpleLight:"F3E8FB",
blue:"1565C0", blueLight:"E3EAF8",
amber:"F9A825", white:"FFFFFF", black:"1A1A1A", yellow:"FFD600",
pink:"D81B60", pinkLight:"FCE4EC",
lipidBg:"FFF8E1", lipidHdr:"8B5A00",
carbBg:"E8F5E9", carbHdr:"1B6B2F",
};
const slide = pres.addSlide();
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.white}});
// ── HEADER ──────────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:0.72,fill:{color:C.navyDark}});
// Page badge
slide.addShape(pres.ShapeType.rect,{x:0.08,y:0.06,w:0.52,h:0.60,fill:{color:"1A3068"},line:{color:C.white,width:1}});
slide.addText([{text:"PAGE",options:{fontSize:5.5,bold:true,breakLine:true}},{text:"2",options:{fontSize:14,bold:true}}],
{x:0.08,y:0.06,w:0.52,h:0.60,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText("CARBOHYDRATE & LIPID METABOLISM — BOOTCAMP ATLAS",
{x:0.68,y:0.04,w:10.4,h:0.32,fontSize:16,bold:true,color:C.white,align:"center",fontFace:"Arial Black",charSpacing:1,margin:0});
slide.addText("MASTER MAP | High Yield • Exam Focused • Concept Based • PYQ Driven",
{x:0.68,y:0.36,w:10.4,h:0.20,fontSize:8,color:"B0C4FF",align:"center",margin:0});
slide.addText([
{text:"★ Glycolysis ",options:{color:C.yellow,bold:true}},
{text:"TCA Cycle ",options:{color:C.white}},
{text:"Gluconeogenesis ",options:{color:C.white}},
{text:"Fatty Acid Synth ",options:{color:C.white}},
{text:"β-Oxidation ",options:{color:C.white}},
{text:"Cholesterol",options:{color:C.white}},
],{x:2,y:0.56,w:8,h:0.16,fontSize:7,align:"center",margin:0});
// Vision badge
slide.addShape(pres.ShapeType.rect,{x:11.82,y:0.05,w:1.40,h:0.62,fill:{color:"1A3068"},line:{color:C.yellow,width:1.5}});
slide.addText("VISION\nUnderstand\nOrganize\nScore 700+",
{x:11.82,y:0.05,w:1.40,h:0.62,color:C.white,align:"center",valign:"middle",fontSize:6,bold:false,margin:0});
// ── SECTION A: CARBOHYDRATE METABOLISM (left 2/3) ───────────────────────────
const carbX=0.08, carbY=0.78, carbW=8.60, carbH=2.64;
slide.addShape(pres.ShapeType.rect,{x:carbX,y:carbY,w:carbW,h:0.26,fill:{color:C.carbHdr}});
slide.addText("🌿 CARBOHYDRATE METABOLISM — PATHWAYS AT A GLANCE",
{x:carbX,y:carbY,w:carbW,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:carbX,y:carbY+0.26,w:carbW,h:carbH-0.26,fill:{color:C.carbBg}});
// Sub-boxes: Glycolysis | TCA | Gluconeo | Glycogen | HMP
const carbCols = [
{
title:"GLYCOLYSIS",color:C.carbHdr,x:carbX+0.08,w:1.65,
items:[
"Glucose → 2 Pyruvate",
"Net: 2 ATP, 2 NADH",
"10 steps (cytoplasm)",
"Rate-limiting: PFK-1",
"Activated by: AMP, F2,6-BP",
"Inhibited by: ATP, citrate",
"Anaerobic → Lactate",
"Key enzyme: Hexokinase",
]
},
{
title:"TCA CYCLE",color:"005662",x:carbX+1.82,w:1.65,
items:[
"Pyruvate → Acetyl-CoA",
"1 turn: 3 NADH, 1 FADH₂",
"1 GTP, 2 CO₂",
"Rate-limiting: Isocitrate DH",
"Activated by: ADP, Ca²⁺",
"Inhibited by: NADH, ATP",
"8 steps (mitochondria)",
"Key: Oxaloacetate regenerated",
]
},
{
title:"GLUCONEOGENESIS",color:C.green,x:carbX+3.56,w:1.70,
items:[
"Pyruvate → Glucose",
"Occurs: liver, kidney cortex",
"Substrates: lactate, AA, glycerol",
"Rate-limiting: PEPCK",
"Requires: 6 ATP equiv",
"Bypasses 3 irreversible steps",
"Activated by: glucagon, cortisol",
"Inhibited by: insulin, F2,6-BP",
]
},
{
title:"GLYCOGEN",color:"6A1B9A",x:carbX+5.36,w:1.60,
items:[
"Synthesis: UDP-glucose",
"Rate-lim(synth): Glycogen synthase",
"Rate-lim(break): Glycogen phosph.",
"Liver: blood glucose control",
"Muscle: local energy use",
"McArdle: muscle phosphorylase↓",
"Von Gierke: G6Pase↓",
"Pompe: α-1,4-glucosidase↓",
]
},
{
title:"HMP SHUNT",color:C.red,x:carbX+7.06,w:1.46,
items:[
"Glucose-6-P → Ribulose-5-P",
"Produces: NADPH, Ribose-5-P",
"No ATP produced",
"Rate-lim: G6PD",
"G6PD deficiency → hemolysis",
"NADPH: GSH, fatty acid synth",
"Ribose-5-P: nucleotide synth",
"Location: cytoplasm",
]
},
];
carbCols.forEach(col => {
slide.addShape(pres.ShapeType.rect,{x:col.x,y:carbY+0.30,w:col.w,h:0.22,fill:{color:col.color}});
slide.addText(col.title,{x:col.x,y:carbY+0.30,w:col.w,h:0.22,fontSize:6.5,bold:true,color:C.white,align:"center",margin:0});
col.items.forEach((item,i)=>{
slide.addText("• "+item,{x:col.x+0.04,y:carbY+0.56+i*0.255,w:col.w-0.06,h:0.25,fontSize:5.8,color:C.black,valign:"middle",margin:0});
});
});
// ── SECTION B: LIPID METABOLISM (right 1/3) ─────────────────────────────────
const lipX=8.76, lipY=0.78, lipW=4.46, lipH=2.64;
slide.addShape(pres.ShapeType.rect,{x:lipX,y:lipY,w:lipW,h:0.26,fill:{color:C.lipidHdr}});
slide.addText("🧈 LIPID METABOLISM — KEY PATHWAYS",
{x:lipX,y:lipY,w:lipW,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:lipX,y:lipY+0.26,w:lipW,h:lipH-0.26,fill:{color:C.lipidBg}});
// Fatty Acid Oxidation sub-box
slide.addShape(pres.ShapeType.rect,{x:lipX+0.08,y:lipY+0.32,w:2.10,h:0.20,fill:{color:C.orange}});
slide.addText("β-OXIDATION",{x:lipX+0.08,y:lipY+0.32,w:2.10,h:0.20,fontSize:6.5,bold:true,color:C.white,align:"center",margin:0});
const betaOx = [
"FA + CoA → Acyl-CoA (outer mito)",
"CPT-I: rate-lim (outer membrane)",
"CPT-II: inner membrane",
"Each cycle: 1FADH₂,1NADH,1AcCoA",
"Palmitate(16C): 7 cycles, 106 ATP",
"Inhibited by: malonyl-CoA",
"Odd-chain FA → propionyl-CoA",
"Requires: carnitine shuttle",
];
betaOx.forEach((item,i)=>{
slide.addText("• "+item,{x:lipX+0.10,y:lipY+0.55+i*0.245,w:2.06,h:0.24,fontSize:5.5,color:C.black,valign:"middle",margin:0});
});
// Fatty Acid Synthesis sub-box
slide.addShape(pres.ShapeType.rect,{x:lipX+2.28,y:lipY+0.32,w:2.10,h:0.20,fill:{color:C.blue}});
slide.addText("FA SYNTHESIS",{x:lipX+2.28,y:lipY+0.32,w:2.10,h:0.20,fontSize:6.5,bold:true,color:C.white,align:"center",margin:0});
const fasynth = [
"Acetyl-CoA → Palmitate (16C)",
"Rate-lim: Acetyl-CoA Carboxylase",
"Activated by: insulin, citrate",
"Inhibited by: glucagon, palmitoyl-CoA",
"Requires: NADPH (from HMP shunt)",
"Malonyl-CoA: 2C addition unit",
"FAS complex (cytoplasm)",
"Biotin cofactor for ACC",
];
fasynth.forEach((item,i)=>{
slide.addText("• "+item,{x:lipX+2.30,y:lipY+0.55+i*0.245,w:2.06,h:0.24,fontSize:5.5,color:C.black,valign:"middle",margin:0});
});
// ── TIER 2: THREE REFERENCE PANELS ──────────────────────────────────────────
const t2Y=3.50, t2H=1.78, colW3=4.28;
// --- GOLD STANDARDS ---
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y,w:colW3,h:0.26,fill:{color:C.tealDark}});
slide.addText("⚡ GOLD STANDARDS",{x:0.08,y:t2Y,w:colW3,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.tealLight}});
const goldCarb=[
["Glycolysis rate-limiter","PFK-1 (Phosphofructokinase-1)"],
["TCA rate-limiter","Isocitrate dehydrogenase"],
["Gluconeogenesis rate-limiter","PEPCK"],
["Glycogen synthesis rate-limiter","Glycogen synthase"],
["HMP shunt rate-limiter","Glucose-6-phosphate dehydrogenase"],
["FA synthesis rate-limiter","Acetyl-CoA carboxylase (ACC)"],
["β-oxidation gatekeeper","Carnitine Palmitoyl Transferase-I"],
["Cholesterol synthesis rate-lim","HMG-CoA reductase"],
];
goldCarb.forEach((g,i)=>{
slide.addText([
{text:"✔ ",options:{color:C.green,bold:true,fontSize:6.5}},
{text:g[0]+" ",options:{bold:true,color:C.black,fontSize:6}},
{text:g[1],options:{color:"005662",fontSize:6}},
],{x:0.14,y:t2Y+0.30+i*0.185,w:colW3-0.12,h:0.185,margin:0});
});
// --- KEY PRINCIPLES MNEMONIC ---
const kpX=4.50;
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y,w:colW3,h:0.26,fill:{color:C.orange}});
slide.addText("🔑 KEY PRINCIPLES (GLUCOLIPID Mnemonic)",{x:kpX,y:t2Y,w:colW3,h:0.26,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.orangeLight}});
const mnemo=[
["G","1565C0","Glycolysis uses PFK-1 as gatekeeper"],
["L","880E4F","Liver does gluconeogenesis, not muscle"],
["U","E65100","UDP-glucose for glycogen synthesis"],
["C","005662","CPT-I is β-oxidation rate-limiter"],
["O","1B5E20","Odd-chain FA → propionyl-CoA → succinate"],
["L","4A148C","Lipogenesis needs NADPH from HMP shunt"],
["I","C62828","Insulin activates glycolysis + lipogenesis"],
["P","0D4B20","Pyruvate carboxylase: gluconeogenesis start"],
["I","00695C","Isocitrate DH: TCA rate-limiting step"],
["D","1A3068","De novo FA synthesis in cytoplasm (liver)"],
];
mnemo.forEach((m,i)=>{
const col=i<5?kpX+0.10:kpX+2.18, row=i<5?i:i-5;
slide.addShape(pres.ShapeType.rect,{x:col,y:t2Y+0.32+row*0.29,w:0.20,h:0.20,fill:{color:m[1]}});
slide.addText(m[0],{x:col,y:t2Y+0.32+row*0.29,w:0.20,h:0.20,fontSize:8,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(m[2],{x:col+0.23,y:t2Y+0.32+row*0.29,w:1.88,h:0.22,fontSize:5.8,color:C.black,valign:"middle",margin:0});
});
// --- HIGH YIELD FACT FILE ---
const hyX=8.92;
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y,w:4.30,h:0.26,fill:{color:C.purple}});
slide.addText("★ HIGH YIELD FACT FILE",{x:hyX,y:t2Y,w:4.30,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y+0.26,w:4.30,h:t2H-0.26,fill:{color:C.purpleLight}});
const hyfacts=[
"Net ATP from 1 glucose (aerobic): 30–32 ATP",
"Glucose → Lactate (anaerobic): only 2 ATP",
"Palmitate β-oxidation: 106 ATP total",
"G6PD deficiency: Heinz bodies, hemolytic anemia",
"Von Gierke disease: G6Pase deficiency, hypoglycemia",
"McArdle disease: muscle phosphorylase deficiency",
"Pompe disease: lysosomal α-1,4-glucosidase",
"Lactate → glucose (Cori cycle): liver only",
"Acetyl-CoA cannot form glucose (no net gluconeogenesis)",
];
hyfacts.forEach((f,i)=>{
slide.addText([
{text:"★ ",options:{color:C.purple,bold:true,fontSize:7}},
{text:f,options:{color:C.black,fontSize:6}},
],{x:hyX+0.08,y:t2Y+0.30+i*0.165,w:4.18,h:0.165,margin:0});
});
// ── TIER 3: DEFINITIONS | ABBREVIATIONS | EXAM APPROACH ─────────────────────
const t3Y=5.35, t3H=1.62;
// Defs
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y,w:4.10,h:0.24,fill:{color:C.blue}});
slide.addText("IMPORTANT DEFINITIONS",{x:0.08,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.blueLight}});
const defs=[
"• Substrate-level phosphorylation: ATP made directly from substrate",
"• Oxidative phosphorylation: ATP via electron transport chain",
"• Amphibolic pathway: TCA cycle (both anabolic & catabolic)",
"• Ketone bodies: Acetoacetate, β-hydroxybutyrate, acetone",
"• Lipogenesis: De novo fatty acid synthesis (liver, adipose)",
"• Lipolysis: FA release from triglycerides by HSL",
"• Cori cycle: Lactate → liver → glucose recycling",
"• RQ = 1 (carbs), 0.7 (fats), 0.8 (proteins)",
];
defs.forEach((d,i)=>{
slide.addText(d,{x:0.14,y:t3Y+0.28+i*0.170,w:3.98,h:0.170,fontSize:5.9,color:C.black,margin:0});
});
// Abbreviations
const abX=4.28;
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y,w:4.74,h:0.24,fill:{color:C.tealDark}});
slide.addText("ABBREVIATIONS (Must Know)",{x:abX,y:t3Y,w:4.74,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y+0.24,w:4.74,h:t3H-0.24,fill:{color:C.tealLight}});
const abbrevs=[
["PFK-1","Phosphofructokinase-1","PEPCK","Phosphoenolpyruvate carboxykinase"],
["PDH","Pyruvate Dehydrogenase","G6PD","Glucose-6-phosphate dehydrogenase"],
["TCA","Tricarboxylic Acid Cycle","HMP","Hexose Monophosphate Shunt"],
["CPT-I","Carnitine Palmitoyl Transf.","ACC","Acetyl-CoA Carboxylase"],
["FAS","Fatty Acid Synthase","HSL","Hormone-Sensitive Lipase"],
["VLDL","Very Low Density Lipoprotein","LDL","Low Density Lipoprotein"],
["HDL","High Density Lipoprotein","TG","Triglycerides"],
];
abbrevs.forEach((a,i)=>{
slide.addText([
{text:a[0]+" ",options:{bold:true,color:"005662",fontSize:6}},
{text:"– "+a[1]+" ",options:{color:C.black,fontSize:5.5}},
{text:a[2]+" ",options:{bold:true,color:"005662",fontSize:6}},
{text:"– "+a[3],options:{color:C.black,fontSize:5.5}},
],{x:abX+0.10,y:t3Y+0.28+i*0.19,w:4.54,h:0.19,margin:0});
});
// Exam Approach
const eaX=9.10;
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y,w:4.10,h:0.24,fill:{color:C.pink}});
slide.addText("EXAM APPROACH",{x:eaX,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.pinkLight}});
const steps=[
"Identify: which pathway? (glycolysis/TCA/GNG…)",
"Find the rate-limiting enzyme",
"Think: fed state OR fasting state?",
"Which hormone is active? (Insulin/Glucagon)",
"Map to IEM if deficiency is mentioned",
"Calculate ATP yield if numbers asked",
];
steps.forEach((s,i)=>{
slide.addShape(pres.ShapeType.ellipse,{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fill:{color:C.pink}});
slide.addText(String(i+1),{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fontSize:7,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(s,{x:eaX+0.35,y:t3Y+0.30+i*0.22,w:3.75,h:0.20,fontSize:6.2,color:C.black,valign:"middle",margin:0});
});
// ── FOOTER ───────────────────────────────────────────────────────────────────
const ftY=7.00, ftH=0.36, ftW=3.18;
slide.addShape(pres.ShapeType.rect,{x:0.08,y:ftY,w:ftW,h:ftH,fill:{color:"FFF8E1"},line:{color:C.orange,width:1.2}});
slide.addText([
{text:"💡 PYQ PEARL ",options:{bold:true,fontSize:7,color:C.orange}},
{text:"Most asked: ATP yield, rate-limiting enzymes, IEMs (Von Gierke, McArdle, Pompe, G6PD def.)",options:{fontSize:6,color:C.black}},
],{x:0.12,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:3.38,y:ftY,w:ftW,h:ftH,fill:{color:"E8EAF6"},line:{color:"3F51B5",width:1.2}});
slide.addText([
{text:"★ INI-CET PEARL ",options:{bold:true,fontSize:7,color:"3F51B5"}},
{text:"Fed state: glycolysis+lipogenesis active. Fasting: gluconeogenesis+β-oxidation active.",options:{fontSize:6,color:C.black}},
],{x:3.42,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:6.68,y:ftY,w:ftW,h:ftH,fill:{color:"FFEBEE"},line:{color:C.red,width:1.2}});
slide.addText([
{text:"⚠ EXAM TRAP ",options:{bold:true,fontSize:7,color:C.red}},
{text:"Acetyl-CoA cannot produce net glucose. Odd-chain FA → propionyl-CoA → gluconeogenic. Don't confuse sites.",options:{fontSize:6,color:C.black}},
],{x:6.72,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:9.98,y:ftY,w:3.24,h:ftH,fill:{color:"FCE4EC"},line:{color:C.pink,width:1.2}});
slide.addText("🧠 QUICK REVISION\nRevise → Recall → Apply → REPEAT!",
{x:10.02,y:ftY+0.01,w:3.18,h:ftH-0.02,color:C.navyDark,align:"center",valign:"middle",fontSize:7,bold:true,margin:0});
// Bottom banner
slide.addShape(pres.ShapeType.rect,{x:0,y:7.36,w:13.3,h:0.14,fill:{color:C.navyDark}});
slide.addText("★ CONSISTENT STUDY + SMART REVISION + PYQ PRACTICE = 700+ IS POSSIBLE ★",
{x:0,y:7.36,w:13.3,h:0.14,fontSize:6.8,bold:true,color:C.yellow,align:"center",charSpacing:1,margin:0});
pres.writeFile({fileName:"/home/daytona/workspace/biochem-atlas/Biochemistry_Atlas_Page2_CarbLipid.pptx"})
.then(()=>console.log("✅ Page 2 done"))
.catch(e=>console.error("ERROR:",e));
~/biochem-atlas/build_page3.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE";
const C = {
navyDark:"0D1B4B", teal:"007B83", tealDark:"005662", tealLight:"E0F4F5",
orange:"C85A00", orangeLight:"FFF3E0", green:"1B6B2F",
purple:"5C2D91", purpleLight:"F3E8FB",
blue:"1565C0", blueLight:"E3EAF8",
red:"B71C1C", redLight:"FFEBEE",
enzGold:"8B6914", enzGoldLight:"FFFDE7",
enzPurp:"4A148C", enzPurpLight:"EDE7F6",
white:"FFFFFF", black:"1A1A1A", yellow:"FFD600",
pink:"D81B60", pinkLight:"FCE4EC",
};
const slide = pres.addSlide();
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.white}});
// HEADER
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:0.72,fill:{color:C.navyDark}});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:0.06,w:0.52,h:0.60,fill:{color:"1A3068"},line:{color:C.white,width:1}});
slide.addText([{text:"PAGE",options:{fontSize:5.5,bold:true,breakLine:true}},{text:"3",options:{fontSize:14,bold:true}}],
{x:0.08,y:0.06,w:0.52,h:0.60,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText("ENZYMES — BOOTCAMP ATLAS",
{x:0.68,y:0.04,w:10.4,h:0.32,fontSize:18,bold:true,color:C.white,align:"center",fontFace:"Arial Black",charSpacing:1,margin:0});
slide.addText("Kinetics • Inhibition • Regulation • Clinical Enzymology • High Yield PYQ",
{x:0.68,y:0.36,w:10.4,h:0.20,fontSize:8.5,color:"B0C4FF",align:"center",margin:0});
slide.addText([
{text:"★ Km & Vmax ",options:{color:C.yellow,bold:true}},
{text:"Michaelis-Menten ",options:{color:C.white}},
{text:"Inhibition Types ",options:{color:C.white}},
{text:"Allosteric Enzymes ",options:{color:C.white}},
{text:"Isoenzymes ",options:{color:C.white}},
{text:"Clinical Markers",options:{color:C.white}},
],{x:2,y:0.56,w:8,h:0.16,fontSize:7,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:11.82,y:0.05,w:1.40,h:0.62,fill:{color:"1A3068"},line:{color:C.yellow,width:1.5}});
slide.addText("VISION\nUnderstand\nOrganize\nScore 700+",{x:11.82,y:0.05,w:1.40,h:0.62,color:C.white,align:"center",valign:"middle",fontSize:6,margin:0});
// ── CORE ENZYME CONCEPTS (top row, 5 panels) ─────────────────────────────────
const topY=0.78, topH=2.60;
const panels5=[
{
title:"ENZYME BASICS",color:C.tealDark,bg:C.tealLight,x:0.08,w:2.48,
items:[
"Biological catalysts (protein/RNA)",
"Lower activation energy (Ea)",
"NOT consumed in reaction",
"Specific: lock & key / induced fit",
"Active site: substrate binding",
"Apoenzyme = inactive (no cofactor)",
"Holoenzyme = active (+ cofactor)",
"Cofactors: metal ions or coenzymes",
"Prosthetic group: tightly bound",
"Coenzyme: loosely bound (vitamins)",
]
},
{
title:"MICHAELIS-MENTEN KINETICS",color:C.enzGold,bg:C.enzGoldLight,x:2.66,w:2.60,
items:[
"v = Vmax[S] / (Km + [S])",
"Km = [S] at ½ Vmax",
"Low Km = HIGH affinity",
"High Km = LOW affinity",
"Vmax ∝ enzyme concentration",
"Lineweaver-Burk: double reciprocal",
"x-intercept = –1/Km",
"y-intercept = 1/Vmax",
"Eadie-Hofstee: v vs v/[S]",
"Hexokinase (low Km) vs Glucokinase (high Km)",
]
},
{
title:"ENZYME INHIBITION",color:C.red,bg:C.redLight,x:5.36,w:2.60,
items:[
"COMPETITIVE: same active site",
" → Km↑, Vmax unchanged",
" → Lineweaver: same y-intercept",
" → Overcome by ↑[S]",
"NON-COMPETITIVE: allosteric site",
" → Km unchanged, Vmax↓",
" → Lineweaver: same x-intercept",
"UNCOMPETITIVE: binds ES complex",
" → Both Km↓ and Vmax↓",
"IRREVERSIBLE: covalent bond (e.g. aspirin→COX)",
]
},
{
title:"ALLOSTERIC REGULATION",color:C.enzPurp,bg:C.enzPurpLight,x:8.06,w:2.60,
items:[
"Cooperative binding (sigmoidal curve)",
"Allosteric activators: ↑affinity",
"Allosteric inhibitors: ↓affinity",
"Homotropic: same molecule modulates",
"Heterotropic: different molecule",
"Hill coefficient (n)>1 = cooperativity",
"Feedback inhibition: end-product inhibits",
"Feed-forward activation: substrate activates",
"Examples: ATCase, PFK-1, pyruvate kinase",
"Covalent modification: phosphorylation",
]
},
{
title:"ISOENZYMES",color:C.blue,bg:C.blueLight,x:10.76,w:2.46,
items:[
"Same reaction, different forms",
"LDH: 5 isoforms (H4, H3M, H2M2, HM3, M4)",
"LDH-1 (H4): heart, RBC",
"LDH-5 (M4): liver, skeletal muscle",
"CK isoforms: CK-MM (muscle)",
"CK-MB: heart (MI marker)",
"CK-BB: brain",
"ALT: liver specific",
"ALP: bone, liver, placenta",
"Acid phosphatase: prostate",
]
},
];
panels5.forEach(p=>{
slide.addShape(pres.ShapeType.rect,{x:p.x,y:topY,w:p.w,h:0.26,fill:{color:p.color}});
slide.addText(p.title,{x:p.x,y:topY,w:p.w,h:0.26,fontSize:6.8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:p.x,y:topY+0.26,w:p.w,h:topH-0.26,fill:{color:p.bg}});
p.items.forEach((item,i)=>{
const isBold=item.startsWith("NON-")||item.startsWith("COMP")||item.startsWith("UNCO")||item.startsWith("IRREV");
slide.addText((item.startsWith(" ")?"":("• "))+item,{x:p.x+0.06,y:topY+0.30+i*0.234,w:p.w-0.10,h:0.23,fontSize:5.7,
bold:isBold,color:isBold?p.color:C.black,valign:"middle",margin:0});
});
});
// ── TIER 2 ─────────────────────────────────────────────────────────────────
const t2Y=3.46, t2H=1.80, colW3=4.28;
// Gold Standards
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y,w:colW3,h:0.26,fill:{color:C.tealDark}});
slide.addText("⚡ GOLD STANDARDS",{x:0.08,y:t2Y,w:colW3,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.tealLight}});
const gs=[
["Confirm MI","Troponin I/T (gold) > CK-MB"],
["Liver damage","ALT (most specific for hepatocytes)"],
["Muscle disease","CK-MM / Aldolase"],
["Prostate cancer","PSA (Acid phosphatase old gold)"],
["Pancreatic disease","Lipase (>amylase for pancreatitis)"],
["Bone disease","ALP (bone-specific isoenzyme)"],
["Hemolysis","LDH-1 > LDH-2 flip"],
["Competitive inhibition","Km↑, Vmax unchanged"],
["Non-competitive inhibit.","Km unchanged, Vmax↓"],
];
gs.forEach((g,i)=>{
slide.addText([
{text:"✔ ",options:{color:C.green,bold:true,fontSize:6.5}},
{text:g[0]+" ",options:{bold:true,color:C.black,fontSize:6}},
{text:g[1],options:{color:"005662",fontSize:6}},
],{x:0.14,y:t2Y+0.30+i*0.170,w:colW3-0.12,h:0.170,margin:0});
});
// Key Principles
const kpX=4.50;
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y,w:colW3,h:0.26,fill:{color:C.orange}});
slide.addText("🔑 KEY PRINCIPLES (ENZYME Mnemonic)",{x:kpX,y:t2Y,w:colW3,h:0.26,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.orangeLight}});
const enz=[
["E","1565C0","Every enzyme has a specific active site"],
["N","880E4F","Non-competitive: Vmax↓, Km same"],
["Z","E65100","Zero-order: rate independent of [S] (saturation)"],
["Y","005662","Zymogens: inactive precursors (pepsinogen→pepsin)"],
["M","1B5E20","Michaelis-Menten: v = Vmax[S]/(Km+[S])"],
["E","4A148C","Enzyme activity: pH, temp, [S] dependent"],
];
enz.forEach((m,i)=>{
slide.addShape(pres.ShapeType.rect,{x:kpX+0.14,y:t2Y+0.34+i*0.24,w:0.20,h:0.20,fill:{color:m[1]}});
slide.addText(m[0],{x:kpX+0.14,y:t2Y+0.34+i*0.24,w:0.20,h:0.20,fontSize:8,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(m[2],{x:kpX+0.38,y:t2Y+0.34+i*0.24,w:3.68,h:0.22,fontSize:6.5,color:C.black,valign:"middle",margin:0});
});
// High Yield
const hyX=8.92;
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y,w:4.30,h:0.26,fill:{color:C.purple}});
slide.addText("★ HIGH YIELD FACT FILE",{x:hyX,y:t2Y,w:4.30,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y+0.26,w:4.30,h:t2H-0.26,fill:{color:C.purpleLight}});
const hy=[
"LDH-1>LDH-2 flip = MI (flip pattern)",
"Aspirin irreversibly inhibits COX (acetylates)",
"Glucokinase: high Km, not saturated at normal glucose",
"Hexokinase: low Km, saturated at normal glucose",
"Km does NOT change with enzyme concentration",
"Vmax DOES change with enzyme concentration",
"ACE inhibitors: competitive inhibitors of ACE",
"Methotrexate: competitive inhibitor of DHFR",
"Cyanide: irreversible inhibitor of Cytochrome C oxidase",
];
hy.forEach((f,i)=>{
slide.addText([
{text:"★ ",options:{color:C.purple,bold:true,fontSize:7}},
{text:f,options:{color:C.black,fontSize:6}},
],{x:hyX+0.08,y:t2Y+0.30+i*0.172,w:4.18,h:0.172,margin:0});
});
// ── TIER 3 ────────────────────────────────────────────────────────────────────
const t3Y=5.34, t3H=1.62;
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y,w:4.10,h:0.24,fill:{color:C.blue}});
slide.addText("IMPORTANT DEFINITIONS",{x:0.08,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.blueLight}});
const defs3=[
"• Km: [S] at half-maximal velocity (affinity measure)",
"• Vmax: Maximum reaction velocity (all enzyme saturated)",
"• Turnover number (kcat): reactions/enzyme/second",
"• Competitive inhibition: same active site as substrate",
"• Non-competitive inhibition: allosteric site binding",
"• Zymogen: inactive enzyme precursor",
"• Prosthetic group: tightly bound non-protein cofactor",
"• Hill coefficient >1: positive cooperativity",
];
defs3.forEach((d,i)=>{
slide.addText(d,{x:0.14,y:t3Y+0.28+i*0.170,w:3.98,h:0.170,fontSize:5.9,color:C.black,margin:0});
});
const abX=4.28;
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y,w:4.74,h:0.24,fill:{color:C.tealDark}});
slide.addText("ABBREVIATIONS (Must Know)",{x:abX,y:t3Y,w:4.74,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y+0.24,w:4.74,h:t3H-0.24,fill:{color:C.tealLight}});
const ab3=[
["Km","Michaelis Constant","Vmax","Maximum Velocity"],
["CK","Creatine Kinase","LDH","Lactate Dehydrogenase"],
["ALT","Alanine Transaminase","AST","Aspartate Transaminase"],
["ALP","Alkaline Phosphatase","GGT","Gamma-Glutamyl Transferase"],
["PSA","Prostate-Specific Antigen","COX","Cyclooxygenase"],
["DHFR","Dihydrofolate Reductase","ACE","Angiotensin Converting Enz."],
["PDH","Pyruvate Dehydrogenase","kcat","Catalytic Turnover Number"],
];
ab3.forEach((a,i)=>{
slide.addText([
{text:a[0]+" ",options:{bold:true,color:"005662",fontSize:6}},
{text:"– "+a[1]+" ",options:{color:C.black,fontSize:5.5}},
{text:a[2]+" ",options:{bold:true,color:"005662",fontSize:6}},
{text:"– "+a[3],options:{color:C.black,fontSize:5.5}},
],{x:abX+0.10,y:t3Y+0.28+i*0.19,w:4.54,h:0.19,margin:0});
});
const eaX=9.10;
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y,w:4.10,h:0.24,fill:{color:C.pink}});
slide.addText("EXAM APPROACH",{x:eaX,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.pinkLight}});
const ea3=[
"Identify: what changes? Km? Vmax? Both?",
"Plot on Lineweaver-Burk mentally",
"Competitive: same y-intercept (Vmax same)",
"Non-competitive: same x-intercept (Km same)",
"Map inhibitor to clinical drug if mentioned",
"IEM: which enzyme is missing → which substrate accumulates?",
];
ea3.forEach((s,i)=>{
slide.addShape(pres.ShapeType.ellipse,{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fill:{color:C.pink}});
slide.addText(String(i+1),{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fontSize:7,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(s,{x:eaX+0.35,y:t3Y+0.30+i*0.22,w:3.75,h:0.20,fontSize:6.2,color:C.black,valign:"middle",margin:0});
});
// Footer
const ftY=7.00, ftH=0.36, ftW=3.18;
slide.addShape(pres.ShapeType.rect,{x:0.08,y:ftY,w:ftW,h:ftH,fill:{color:"FFF8E1"},line:{color:C.orange,width:1.2}});
slide.addText([
{text:"💡 PYQ PEARL ",options:{bold:true,fontSize:7,color:C.orange}},
{text:"Km/Vmax change patterns = most tested. LDH flip, CK-MB, competitive vs non-competitive drug inhibitors.",options:{fontSize:6,color:C.black}},
],{x:0.12,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:3.38,y:ftY,w:ftW,h:ftH,fill:{color:"E8EAF6"},line:{color:"3F51B5",width:1.2}});
slide.addText([
{text:"★ INI-CET PEARL ",options:{bold:true,fontSize:7,color:"3F51B5"}},
{text:"Drug mechanisms via enzyme inhibition. Methotrexate (DHFR), Aspirin (COX), Statins (HMG-CoA reductase).",options:{fontSize:6,color:C.black}},
],{x:3.42,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:6.68,y:ftY,w:ftW,h:ftH,fill:{color:"FFEBEE"},line:{color:C.red,width:1.2}});
slide.addText([
{text:"⚠ EXAM TRAP ",options:{bold:true,fontSize:7,color:C.red}},
{text:"Km↑ = lower affinity (opposite!). Uncompetitive inhibition DECREASES both Km AND Vmax — rare trap.",options:{fontSize:6,color:C.black}},
],{x:6.72,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:9.98,y:ftY,w:3.24,h:ftH,fill:{color:"FCE4EC"},line:{color:C.pink,width:1.2}});
slide.addText("🧠 QUICK REVISION\nRevise → Recall → Apply → REPEAT!",
{x:10.02,y:ftY+0.01,w:3.18,h:ftH-0.02,color:C.navyDark,align:"center",valign:"middle",fontSize:7,bold:true,margin:0});
slide.addShape(pres.ShapeType.rect,{x:0,y:7.36,w:13.3,h:0.14,fill:{color:C.navyDark}});
slide.addText("★ CONSISTENT STUDY + SMART REVISION + PYQ PRACTICE = 700+ IS POSSIBLE ★",
{x:0,y:7.36,w:13.3,h:0.14,fontSize:6.8,bold:true,color:C.yellow,align:"center",charSpacing:1,margin:0});
pres.writeFile({fileName:"/home/daytona/workspace/biochem-atlas/Biochemistry_Atlas_Page3_Enzymes.pptx"})
.then(()=>console.log("✅ Page 3 done"))
.catch(e=>console.error("ERROR:",e));
~/biochem-atlas/build_page4.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE";
const C = {
navyDark:"0D1B4B", teal:"007B83", tealDark:"005662", tealLight:"E0F4F5",
orange:"C85A00", orangeLight:"FFF3E0", green:"1B6B2F",
purple:"5C2D91", purpleLight:"F3E8FB",
blue:"1565C0", blueLight:"E3EAF8",
red:"B71C1C", redLight:"FFEBEE",
molGreen:"1B5E20", molGreenLight:"E8F5E9",
molTeal:"006064", molTealLight:"E0F7FA",
molPurp:"4A0072", molPurpLight:"F3E5F5",
molBrown:"4E342E", molBrownLight:"EFEBE9",
molBlue:"0D47A1", molBlueLight:"E3F2FD",
white:"FFFFFF", black:"1A1A1A", yellow:"FFD600",
pink:"D81B60", pinkLight:"FCE4EC",
};
const slide = pres.addSlide();
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.white}});
// HEADER
slide.addShape(pres.ShapeType.rect,{x:0,y:0,w:13.3,h:0.72,fill:{color:C.navyDark}});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:0.06,w:0.52,h:0.60,fill:{color:"1A3068"},line:{color:C.white,width:1}});
slide.addText([{text:"PAGE",options:{fontSize:5.5,bold:true,breakLine:true}},{text:"4",options:{fontSize:14,bold:true}}],
{x:0.08,y:0.06,w:0.52,h:0.60,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText("MOLECULAR BIOLOGY — BOOTCAMP ATLAS",
{x:0.68,y:0.04,w:10.4,h:0.32,fontSize:17,bold:true,color:C.white,align:"center",fontFace:"Arial Black",charSpacing:1,margin:0});
slide.addText("DNA • RNA • Replication • Transcription • Translation • Mutations • Genetics",
{x:0.68,y:0.36,w:10.4,h:0.20,fontSize:8.5,color:"B0C4FF",align:"center",margin:0});
slide.addText([
{text:"★ Central Dogma ",options:{color:C.yellow,bold:true}},
{text:"DNA Replication ",options:{color:C.white}},
{text:"Gene Expression ",options:{color:C.white}},
{text:"Mutations & IEMs ",options:{color:C.white}},
{text:"Recombinant DNA ",options:{color:C.white}},
],{x:2,y:0.56,w:8,h:0.16,fontSize:7,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:11.82,y:0.05,w:1.40,h:0.62,fill:{color:"1A3068"},line:{color:C.yellow,width:1.5}});
slide.addText("VISION\nUnderstand\nOrganize\nScore 700+",{x:11.82,y:0.05,w:1.40,h:0.62,color:C.white,align:"center",valign:"middle",fontSize:6,margin:0});
// ── 5 CONTENT PANELS ─────────────────────────────────────────────────────────
const topY=0.78, topH=2.64;
const panels=[
{
title:"DNA STRUCTURE & REPLICATION",color:C.molGreen,bg:C.molGreenLight,x:0.08,w:2.52,
items:[
"Double helix: antiparallel strands",
"A=T (2 H-bonds), G≡C (3 H-bonds)",
"Major groove: protein binding",
"Chargaff's rule: %A=%T, %G=%C",
"Replication: semi-conservative",
"Origin: ORC (ori) — multiple in eukaryotes",
"DNA pol III: main replicative polymerase",
"DNA pol I: removes RNA primer",
"Helicase: unwinds dsDNA",
"Primase: makes RNA primer",
"SSB proteins: stabilize ssDNA",
"Ligase: seals Okazaki fragments",
]
},
{
title:"TRANSCRIPTION & RNA",color:C.molTeal,bg:C.molTealLight,x:2.70,w:2.56,
items:[
"DNA → RNA (nucleus)",
"Template strand: 3'→5' read",
"mRNA synthesized: 5'→3'",
"RNA pol II: mRNA (eukaryotes)",
"RNA pol I: rRNA (18S, 28S, 5.8S)",
"RNA pol III: tRNA, 5S rRNA",
"Prokaryotes: σ factor initiates",
"Promoter: TATA box (-25), -35",
"5' cap (7-methyl G): mRNA stability",
"3' poly-A tail: stability, export",
"Splicing: snRNPs remove introns",
"Exons expressed; introns intervening",
]
},
{
title:"TRANSLATION & GENETIC CODE",color:C.molPurp,bg:C.molPurpLight,x:5.36,w:2.56,
items:[
"mRNA → Protein (ribosome)",
"Codon = 3 nucleotides → 1 amino acid",
"64 codons, 20 amino acids (degenerate)",
"Start codon: AUG (Met, formyl-Met)",
"Stop codons: UAA, UAG, UGA",
"tRNA: anticodon matches codon",
"Aminoacyl-tRNA synthetase: charges tRNA",
"Ribosome: 80S (euk), 70S (prok)",
"A site: aminoacyl-tRNA entry",
"P site: peptidyl-tRNA",
"E site: exit (empty tRNA leaves)",
"Polyribosome: multiple ribosomes on mRNA",
]
},
{
title:"MUTATIONS & REPAIR",color:C.molBrown,bg:C.molBrownLight,x:8.02,w:2.58,
items:[
"Silent: same AA (synonymous)",
"Missense: different AA (non-synonymous)",
"Nonsense: premature STOP codon",
"Frameshift: insertion/deletion (≠3)",
"Transition: purine↔purine, pyrimidine↔py",
"Transversion: purine↔pyrimidine",
"Xeroderma pigmentosum: NER defect",
"Cockayne syndrome: TCR-NER defect",
"HNPCC: MMR (mismatch repair) defect",
"BRCA1/2: HR repair defect",
"Triplet repeat expansion: Huntington, Fragile X",
"Point mutation: sickle cell (Glu→Val)",
]
},
{
title:"RECOMBINANT DNA & TECHNIQUES",color:C.molBlue,bg:C.molBlueLight,x:10.70,w:2.52,
items:[
"PCR: amplify DNA (thermocycler)",
"Restriction enzymes: cut at palindromes",
"Southern blot: DNA detection",
"Northern blot: RNA detection",
"Western blot: protein detection",
"ELISA: antigen-antibody (protein)",
"Sanger sequencing: chain termination",
"NGS: next-gen (massively parallel)",
"CRISPR-Cas9: gene editing",
"In situ hybridization: FISH (chromosomes)",
"Microarray: gene expression profiling",
"Karyotype: chromosomal analysis",
]
},
];
panels.forEach(p=>{
slide.addShape(pres.ShapeType.rect,{x:p.x,y:topY,w:p.w,h:0.26,fill:{color:p.color}});
slide.addText(p.title,{x:p.x,y:topY,w:p.w,h:0.26,fontSize:6.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:p.x,y:topY+0.26,w:p.w,h:topH-0.26,fill:{color:p.bg}});
p.items.forEach((item,i)=>{
slide.addText("• "+item,{x:p.x+0.06,y:topY+0.30+i*0.200,w:p.w-0.10,h:0.195,fontSize:5.6,color:C.black,valign:"middle",margin:0});
});
});
// ── TIER 2 ────────────────────────────────────────────────────────────────────
const t2Y=3.50, t2H=1.78, colW3=4.28;
// Gold Standards
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y,w:colW3,h:0.26,fill:{color:C.tealDark}});
slide.addText("⚡ GOLD STANDARDS",{x:0.08,y:t2Y,w:colW3,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.tealLight}});
const gs4=[
["DNA amplification","PCR (Polymerase Chain Reaction)"],
["DNA sequencing","Sanger / Next-Gen Sequencing"],
["Chromosome analysis","Karyotyping / FISH"],
["Gene expression","Northern blot / RT-PCR"],
["Protein identification","Western blot (immunoblot)"],
["Detect specific DNA","Southern blot"],
["Genetic mutation screen","PCR + restriction digest"],
["Prenatal diagnosis","Amniocentesis / CVS + PCR"],
["Gene editing","CRISPR-Cas9"],
];
gs4.forEach((g,i)=>{
slide.addText([
{text:"✔ ",options:{color:C.green,bold:true,fontSize:6.5}},
{text:g[0]+" ",options:{bold:true,color:C.black,fontSize:6}},
{text:g[1],options:{color:"005662",fontSize:6}},
],{x:0.14,y:t2Y+0.30+i*0.170,w:colW3-0.12,h:0.170,margin:0});
});
// Key Principles
const kpX=4.50;
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y,w:colW3,h:0.26,fill:{color:C.orange}});
slide.addText("🔑 KEY PRINCIPLES (DOGMA Mnemonic)",{x:kpX,y:t2Y,w:colW3,h:0.26,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:kpX,y:t2Y+0.26,w:colW3,h:t2H-0.26,fill:{color:C.orangeLight}});
const dog=[
["D","1B5E20","DNA is template; replication is semi-conservative"],
["O","880E4F","Only exons are expressed (introns spliced out)"],
["G","E65100","Genetic code is degenerate (3rd base wobble)"],
["M","1565C0","mRNA 5'-cap and poly-A tail needed for stability"],
["A","6A1B9A","AUG = start codon; UAA/UAG/UGA = stop codons"],
];
dog.forEach((m,i)=>{
slide.addShape(pres.ShapeType.rect,{x:kpX+0.14,y:t2Y+0.34+i*0.28,w:0.20,h:0.20,fill:{color:m[1]}});
slide.addText(m[0],{x:kpX+0.14,y:t2Y+0.34+i*0.28,w:0.20,h:0.20,fontSize:8,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(m[2],{x:kpX+0.38,y:t2Y+0.34+i*0.28,w:3.68,h:0.24,fontSize:6.5,color:C.black,valign:"middle",margin:0});
});
// High Yield
const hyX=8.92;
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y,w:4.30,h:0.26,fill:{color:C.purple}});
slide.addText("★ HIGH YIELD FACT FILE",{x:hyX,y:t2Y,w:4.30,h:0.26,fontSize:8.5,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:hyX,y:t2Y+0.26,w:4.30,h:t2H-0.26,fill:{color:C.purpleLight}});
const hy4=[
"Sickle cell: single point mutation (Glu6Val in β-globin)",
"PKU: PAH mutation → Phe accumulation → MR",
"Xeroderma pigmentosum: UV-induced thymine dimers",
"HNPCC (Lynch syndrome): MMR gene mutations",
"Triplet repeat: CAG in Huntington (>36 = disease)",
"Fragile X: CGG repeat in FMR1 gene (X-linked)",
"Southern = DNA, Northern = RNA, Western = Protein",
"PCR: denaturation(94°C) → annealing → extension(72°C)",
"CRISPR: Cas9 guided by sgRNA cuts dsDNA precisely",
];
hy4.forEach((f,i)=>{
slide.addText([
{text:"★ ",options:{color:C.purple,bold:true,fontSize:7}},
{text:f,options:{color:C.black,fontSize:6}},
],{x:hyX+0.08,y:t2Y+0.30+i*0.172,w:4.18,h:0.172,margin:0});
});
// ── TIER 3 ────────────────────────────────────────────────────────────────────
const t3Y=5.35, t3H=1.62;
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y,w:4.10,h:0.24,fill:{color:C.blue}});
slide.addText("IMPORTANT DEFINITIONS",{x:0.08,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:0.08,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.blueLight}});
const defs4=[
"• Central Dogma: DNA → RNA → Protein",
"• Codon: 3-nucleotide mRNA sequence (codes 1 AA)",
"• Anticodon: complementary sequence on tRNA",
"• Intron: non-coding intervening sequence (spliced out)",
"• Exon: expressed coding sequence",
"• Operon: cluster of prokaryotic genes (lac, trp operon)",
"• Plasmid: extrachromosomal circular DNA",
"• Recombinant DNA: DNA from two different organisms",
];
defs4.forEach((d,i)=>{
slide.addText(d,{x:0.14,y:t3Y+0.28+i*0.170,w:3.98,h:0.170,fontSize:5.9,color:C.black,margin:0});
});
const abX=4.28;
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y,w:4.74,h:0.24,fill:{color:C.tealDark}});
slide.addText("ABBREVIATIONS (Must Know)",{x:abX,y:t3Y,w:4.74,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:abX,y:t3Y+0.24,w:4.74,h:t3H-0.24,fill:{color:C.tealLight}});
const ab4=[
["PCR","Polymerase Chain Reaction","NGS","Next Generation Sequencing"],
["SNP","Single Nucleotide Polymorphism","RFLP","Restriction Fragment Length Poly."],
["ORF","Open Reading Frame","UTR","Untranslated Region"],
["siRNA","Small Interfering RNA","miRNA","MicroRNA"],
["CRISPR","Clustered Interspaced Short Pal. Repeats","Cas9","CRISPR-associated protein 9"],
["NER","Nucleotide Excision Repair","MMR","Mismatch Repair"],
["RT-PCR","Reverse Transcriptase PCR","FISH","Fluorescence In Situ Hybridization"],
];
ab4.forEach((a,i)=>{
slide.addText([
{text:a[0]+" ",options:{bold:true,color:"005662",fontSize:5.8}},
{text:"– "+a[1]+" ",options:{color:C.black,fontSize:5.2}},
{text:a[2]+" ",options:{bold:true,color:"005662",fontSize:5.8}},
{text:"– "+a[3],options:{color:C.black,fontSize:5.2}},
],{x:abX+0.10,y:t3Y+0.28+i*0.19,w:4.54,h:0.19,margin:0});
});
const eaX=9.10;
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y,w:4.10,h:0.24,fill:{color:C.pink}});
slide.addText("EXAM APPROACH",{x:eaX,y:t3Y,w:4.10,h:0.24,fontSize:8,bold:true,color:C.white,align:"center",margin:0});
slide.addShape(pres.ShapeType.rect,{x:eaX,y:t3Y+0.24,w:4.10,h:t3H-0.24,fill:{color:C.pinkLight}});
const ea4=[
"Identify: DNA, RNA, or Protein question?",
"Is it replication, transcription, or translation?",
"Think: prokaryote vs. eukaryote differences",
"Map mutation type → clinical disease phenotype",
"For blots: Southern=DNA, Northern=RNA, Western=Protein",
"PCR question → think: what primers/template needed?",
];
ea4.forEach((s,i)=>{
slide.addShape(pres.ShapeType.ellipse,{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fill:{color:C.pink}});
slide.addText(String(i+1),{x:eaX+0.10,y:t3Y+0.30+i*0.22,w:0.20,h:0.20,fontSize:7,bold:true,color:C.white,align:"center",valign:"middle",margin:0});
slide.addText(s,{x:eaX+0.35,y:t3Y+0.30+i*0.22,w:3.75,h:0.20,fontSize:6.2,color:C.black,valign:"middle",margin:0});
});
// Footer
const ftY=7.00, ftH=0.36, ftW=3.18;
slide.addShape(pres.ShapeType.rect,{x:0.08,y:ftY,w:ftW,h:ftH,fill:{color:"FFF8E1"},line:{color:C.orange,width:1.2}});
slide.addText([
{text:"💡 PYQ PEARL ",options:{bold:true,fontSize:7,color:C.orange}},
{text:"Blot names (SNoW DRoP), PCR steps, mutation types, Sickle cell & PKU gene defects = high-frequency MCQs.",options:{fontSize:6,color:C.black}},
],{x:0.12,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:3.38,y:ftY,w:ftW,h:ftH,fill:{color:"E8EAF6"},line:{color:"3F51B5",width:1.2}});
slide.addText([
{text:"★ INI-CET PEARL ",options:{bold:true,fontSize:7,color:"3F51B5"}},
{text:"CRISPR-Cas9, gene therapy applications, and next-gen sequencing are emerging high-yield areas.",options:{fontSize:6,color:C.black}},
],{x:3.42,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:6.68,y:ftY,w:ftW,h:ftH,fill:{color:"FFEBEE"},line:{color:C.red,width:1.2}});
slide.addText([
{text:"⚠ EXAM TRAP ",options:{bold:true,fontSize:7,color:C.red}},
{text:"Don't mix up template vs coding strand direction. Prokaryote ribosomes = 70S, Eukaryote = 80S (not vice versa).",options:{fontSize:6,color:C.black}},
],{x:6.72,y:ftY+0.02,w:ftW-0.08,h:ftH-0.04,margin:0,valign:"middle"});
slide.addShape(pres.ShapeType.rect,{x:9.98,y:ftY,w:3.24,h:ftH,fill:{color:"FCE4EC"},line:{color:C.pink,width:1.2}});
slide.addText("🧠 QUICK REVISION\nRevise → Recall → Apply → REPEAT!",
{x:10.02,y:ftY+0.01,w:3.18,h:ftH-0.02,color:C.navyDark,align:"center",valign:"middle",fontSize:7,bold:true,margin:0});
slide.addShape(pres.ShapeType.rect,{x:0,y:7.36,w:13.3,h:0.14,fill:{color:C.navyDark}});
slide.addText("★ CONSISTENT STUDY + SMART REVISION + PYQ PRACTICE = 700+ IS POSSIBLE ★",
{x:0,y:7.36,w:13.3,h:0.14,fontSize:6.8,bold:true,color:C.yellow,align:"center",charSpacing:1,margin:0});
pres.writeFile({fileName:"/home/daytona/workspace/biochem-atlas/Biochemistry_Atlas_Page4_MolecularBiology.pptx"})
.then(()=>console.log("✅ Page 4 done"))
.catch(e=>console.error("ERROR:",e));
cd /home/daytona/workspace/biochem-atlas && node build_page2.js && node build_pa…