I want to do genetics tomorrow from robbins but due to time restrain have to finish within 4 hours. Please prepare a mind map and how to proceed, doing from robbins and marrow
mkdir -p /tmp/workspace/genetics-mindmap && ls /tmp/workspace/
~/genetics-mindmap/create_mindmap.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.util import Inches, Pt
import math
prs = Presentation()
prs.slide_width = Inches(16)
prs.slide_height = Inches(9)
# ─── COLOR PALETTE ───────────────────────────────────────────────────────────
BG = RGBColor(0x0D, 0x1B, 0x2A) # deep navy
CENTER_BG = RGBColor(0xFF, 0x6B, 0x35) # orange
BRANCH1 = RGBColor(0x4E, 0xC9, 0xB0) # teal
BRANCH2 = RGBColor(0xFF, 0xD1, 0x66) # yellow
BRANCH3 = RGBColor(0x7E, 0xB8, 0xFF) # blue
BRANCH4 = RGBColor(0xFF, 0x85, 0xA1) # pink
BRANCH5 = RGBColor(0xB5, 0xEA, 0xD7) # mint
BRANCH6 = RGBColor(0xE0, 0xBB, 0xFF) # lavender
SUBBG = RGBColor(0x1E, 0x2D, 0x40) # dark card
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK = RGBColor(0x0D, 0x1B, 0x2A)
def add_rounded_box(slide, x, y, w, h, fill_color, text_lines, font_sizes, bold_flags,
text_color=WHITE, corner_radius=0.08):
shape = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE -> use freeform instead? No, use 5 = rounded rect
Inches(x), Inches(y), Inches(w), Inches(h)
)
# rounded corners via XML
from pptx.oxml.ns import qn
from lxml import etree
sp = shape.element
prstGeom = sp.find(qn('p:spPr')).find(qn('a:prstGeom'))
if prstGeom is not None:
prstGeom.set('prst', 'roundRect')
avLst = prstGeom.find(qn('a:avLst'))
if avLst is None:
avLst = etree.SubElement(prstGeom, qn('a:avLst'))
for gd in avLst.findall(qn('a:gd')):
avLst.remove(gd)
gd = etree.SubElement(avLst, qn('a:gd'))
gd.set('name', 'adj')
gd.set('fmla', 'val 30000')
fill = shape.fill
fill.solid()
fill.fore_color.rgb = fill_color
shape.line.color.rgb = fill_color
tf = shape.text_frame
tf.word_wrap = True
tf.margin_top = Pt(2)
tf.margin_bottom = Pt(2)
tf.margin_left = Pt(4)
tf.margin_right = Pt(4)
for i, (line, fsize, bold) in enumerate(zip(text_lines, font_sizes, bold_flags)):
if i == 0:
p = tf.paragraphs[0]
else:
p = tf.add_paragraph()
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = line
run.font.size = Pt(fsize)
run.font.bold = bold
run.font.color.rgb = text_color
return shape
def add_connector(slide, x1, y1, x2, y2, color):
from pptx.oxml.ns import qn
from lxml import etree
spTree = slide.shapes._spTree
# use a simple line connector
x1e, y1e = Inches(x1), Inches(y1)
x2e, y2e = Inches(x2), Inches(y2)
cx, cy = abs(x2e - x1e), abs(y2e - y1e)
left = min(x1e, x2e)
top = min(y1e, y2e)
sp = slide.shapes.add_connector(1, x1e, y1e, x2e, y2e)
sp.line.color.rgb = color
sp.line.width = Pt(1.5)
# ─── SLIDE 1: MASTER MIND MAP ─────────────────────────────────────────────────
slide_layout = prs.slide_layouts[6] # blank
slide = prs.slides.add_slide(slide_layout)
# Background
bg = slide.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg.fill.solid(); bg.fill.fore_color.rgb = BG; bg.line.color.rgb = BG
# Title bar
add_rounded_box(slide, 0.2, 0.1, 15.6, 0.65,
CENTER_BG,
["GENETICS — Robbins Chapter 4 Mind Map", "Robbins Basic Pathology | 4-Hour Study"],
[18, 10], [True, False])
# Center node
add_rounded_box(slide, 6.2, 3.8, 3.6, 1.2,
CENTER_BG,
["GENETIC DISEASES", "(Ch. 4 Robbins)"],
[16, 10], [True, False])
# Branch data: (label, color, x, y, sub-items)
branches = [
{
"label": "1. MUTATIONS\n& TYPES",
"color": BRANCH1,
"x": 0.3, "y": 1.0,
"sub": [
"Point mutation (missense/nonsense)",
"Frameshift (ins/del)",
"Trinucleotide repeats",
"Copy number variants (CNV)",
]
},
{
"label": "2. MENDELIAN\nDISORDERS",
"color": BRANCH2,
"x": 0.3, "y": 4.2,
"sub": [
"AD: Marfan, FH, HD, NF",
"AR: CF, PKU, Sickle cell,\n Tay-Sachs, Glycogen storage",
"XR: Duchenne MD,\n Hemophilia A&B, G6PD",
"Pleiotropy & Genetic heterogeneity",
]
},
{
"label": "3. STRUCT.\nPROTEIN DEFECTS",
"color": BRANCH3,
"x": 0.3, "y": 6.8,
"sub": [
"Marfan (FBN1 → fibrillin)",
"EDS subtypes",
"Osteogenesis imperfecta\n (COL1A1/2)",
]
},
{
"label": "4. ENZYME\nDEFECTS (AR)",
"color": BRANCH4,
"x": 11.8, "y": 1.0,
"sub": [
"PKU (PAH → ↓Phe → tyrosine def)",
"Tay-Sachs (HexA → GM2)",
"Gaucher (glucocerebrosidase)",
"Glycogen storage (Type I–VI)",
"Galactosemia",
]
},
{
"label": "5. CYTOGENETIC\nDISORDERS",
"color": BRANCH5,
"x": 11.8, "y": 4.2,
"sub": [
"Trisomy 21 (Down) — 47,+21",
"Trisomy 18 (Edwards)",
"Trisomy 13 (Patau)",
"Turner 45,X",
"Klinefelter 47,XXY",
"22q11.2 del (DiGeorge/VCF)",
]
},
{
"label": "6. SPECIAL\nMECHANISMS",
"color": BRANCH6,
"x": 11.8, "y": 6.8,
"sub": [
"Trinucleotide: Fragile X,\n HD, Myotonic dystrophy",
"Imprinting: Prader-Willi\n vs Angelman (Chr 15)",
"Mitochondrial inheritance\n (maternal) — Leber",
"Epigenetics: DNA methylation,\n histone modification",
]
},
]
branch_colors_map = {b["label"]: b["color"] for b in branches}
# Center coords
cx, cy = 8.0, 4.4
for b in branches:
bx = b["x"] + 1.9 # center of branch box (box width ~2.6)
by = b["y"] + 0.4 # center of branch box (box height ~0.8)
add_connector(slide, cx, cy, bx, by, b["color"])
add_rounded_box(slide, b["x"], b["y"], 2.6, 0.8,
b["color"],
[b["label"]],
[9], [True], text_color=DARK)
# Sub items below/beside
sub_start_y = b["y"] + 1.0
for j, sub in enumerate(b["sub"]):
sy = sub_start_y + j * 0.42
if sy > 8.6:
break
sx = b["x"]
box = slide.shapes.add_shape(1, Inches(sx), Inches(sy), Inches(2.6), Inches(0.38))
box.fill.solid(); box.fill.fore_color.rgb = SUBBG
box.line.color.rgb = b["color"]
box.line.width = Pt(0.75)
tf = box.text_frame; tf.word_wrap = True
tf.margin_top = Pt(1); tf.margin_bottom = Pt(1)
tf.margin_left = Pt(3); tf.margin_right = Pt(3)
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = "• " + sub
run.font.size = Pt(6.5); run.font.color.rgb = WHITE
# ─── SLIDE 2: MENDELIAN DISORDERS DEEP DIVE ──────────────────────────────────
slide2 = prs.slides.add_slide(slide_layout)
bg2 = slide2.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg2.fill.solid(); bg2.fill.fore_color.rgb = BG; bg2.line.color.rgb = BG
add_rounded_box(slide2, 0.2, 0.1, 15.6, 0.65,
BRANCH2,
["MENDELIAN DISORDERS — Key High-Yield Diseases", "Robbins Ch.4 | Marrow High-Yield"],
[18, 10], [True, False], text_color=DARK)
# Table headers
headers = ["DISEASE", "GENE / DEFECT", "MECHANISM", "KEY FEATURES", "USMLE CLUE"]
col_widths = [2.4, 2.8, 2.8, 4.0, 3.6]
col_x = [0.2]
for w in col_widths[:-1]:
col_x.append(col_x[-1] + w + 0.05)
for i, (h, w, x) in enumerate(zip(headers, col_widths, col_x)):
add_rounded_box(slide2, x, 0.9, w, 0.35, BRANCH2, [h], [9], [True], text_color=DARK)
rows = [
("Marfan Syndrome", "FBN1 (fibrillin-1)", "AD — struct. protein", "Tall, lens sublux, aortic dissection,\narachnodactyly", "FBN1 → ↓TGF-β signaling"),
("Familial Hyperchol.", "LDLR (LDL receptor)", "AD — receptor", "Xanthomas, premature CAD,\ntendon xanthomas", "LDLR loss → ↑LDL"),
("Huntington Disease", "HTT (CAG repeat >36)", "AD — toxic gain of function", "Chorea, dementia, age 30-40;\nanticipation", "Striatum degeneration"),
("Cystic Fibrosis", "CFTR (ΔF508 most common)", "AR — ion channel", "Thick mucus, chronic lung,\nsteatorrhea, infertility males", "↓Cl⁻ secretion in lungs"),
("PKU", "PAH (phenylalanine hydroxylase)", "AR — enzyme", "Intellectual disability if untreated;\nmousy odor, fair skin", "Screen at birth; low Phe diet"),
("Sickle Cell", "HBB (β-globin E6V)", "AR — struct protein", "Vaso-occlusion, hemolysis,\nsplenic sequestration, stroke", "HbS → polymerizes with deoxyHb"),
("Tay-Sachs", "HEXA (Hex A)", "AR — lysosomal", "Cherry-red macula, progressive\nneurodegeneration, Ashkenazi Jewish", "GM2 accumulation → neurons"),
("Duchenne MD", "DMD (dystrophin)", "X-linked recessive", "Progressive proximal weakness,\nGowers sign, calf pseudohypertrophy", "Frameshift → no dystrophin"),
("Fragile X", "FMR1 (CGG >200 repeats)", "X-linked; trinucleotide", "Intellectual disability, macroorchidism,\nlarge ears, long face; anticipation", "Premutation in mothers"),
]
for r_i, row in enumerate(rows):
y = 1.35 + r_i * 0.82
bg_c = SUBBG if r_i % 2 == 0 else RGBColor(0x16, 0x25, 0x38)
for val, w, x in zip(row, col_widths, col_x):
box = slide2.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(0.75))
box.fill.solid(); box.fill.fore_color.rgb = bg_c
box.line.color.rgb = RGBColor(0x2A, 0x4A, 0x6A)
box.line.width = Pt(0.5)
tf = box.text_frame; tf.word_wrap = True
tf.margin_top = Pt(2); tf.margin_bottom = Pt(2)
tf.margin_left = Pt(3); tf.margin_right = Pt(3)
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = val
run.font.size = Pt(7); run.font.color.rgb = WHITE
run.font.bold = (val in [r[0] for r in rows]) # bold disease names
# ─── SLIDE 3: CYTOGENETIC DISORDERS ──────────────────────────────────────────
slide3 = prs.slides.add_slide(slide_layout)
bg3 = slide3.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg3.fill.solid(); bg3.fill.fore_color.rgb = BG; bg3.line.color.rgb = BG
add_rounded_box(slide3, 0.2, 0.1, 15.6, 0.65,
BRANCH5,
["CYTOGENETIC DISORDERS — Key Syndromes", "Numeric + Structural Abnormalities"],
[18, 10], [True, False], text_color=DARK)
cyto_data = [
{
"title": "DOWN SYNDROME (Trisomy 21)",
"color": BRANCH1,
"details": [
"Karyotype: 47, XX/XY +21",
"Cause: Nondisjunction (95%), Robertsonian translocation (4%), Mosaicism (1%)",
"Features: Flat facies, epicanthal folds, Brushfield spots, single palmar crease,",
" sandal-gap toe, hypotonia, intellectual disability",
"Complications: ASD/VSD (40-50%), ALL/AML, early Alzheimer (APP gene on Chr 21),",
" Hirschsprung, duodenal atresia",
"Risk: ↑ with maternal age (nondisjunction); translocation risk = NOT age-related",
]
},
{
"title": "TURNER SYNDROME (45,X)",
"color": BRANCH4,
"details": [
"Karyotype: 45,X (most common), mosaics 45,X/46,XX",
"Cause: Paternal nondisjunction (lost paternal X in ~75%)",
"Features: Short stature, webbed neck, shield chest, lymphedema at birth,",
" streak gonads, primary amenorrhea, coarctation of aorta",
"Labs: ↑FSH, ↓estrogen, ↑LH",
"Rx: GH for height; estrogen for secondary sex characters",
]
},
{
"title": "KLINEFELTER SYNDROME (47,XXY)",
"color": BRANCH3,
"details": [
"Karyotype: 47,XXY (most common); 15% mosaics (46XY/47XXY)",
"Cause: Maternal or paternal nondisjunction (equal contribution)",
"Features: Tall, elongated limbs, hypogonadism, gynecomastia,",
" small testes (<2 cm), ↓testosterone, ↑FSH",
"Complications: Infertility (azoospermia), breast cancer risk ↑, cognitive difficulties",
"Note: X inactivation (Lyon hypothesis) applies; one active X remains",
]
},
{
"title": "22q11.2 DELETION (DiGeorge/VCF)",
"color": BRANCH2,
"details": [
"Mechanism: Microdeletion of Chr 22q11.2 (CATCH-22 mnemonic)",
"CATCH: Cardiac defects (conotruncal), Abnormal facies, Thymic aplasia,",
" Cleft palate, Hypocalcemia (parathyroid aplasia)",
"Spectrum: DiGeorge (thymus/parathyroid) + Velocardiofacial syndrome (palate/cardiac)",
"Immune: T-cell deficiency (thymic aplasia → no T-cell maturation)",
"Dx: FISH or chromosomal microarray",
]
},
]
box_w, box_h = 7.5, 3.5
positions = [(0.2, 0.9), (8.3, 0.9), (0.2, 4.6), (8.3, 4.6)]
for data, (bx, by) in zip(cyto_data, positions):
# Header
add_rounded_box(slide3, bx, by, box_w, 0.38, data["color"],
[data["title"]], [10], [True], text_color=DARK)
# Content box
content_box = slide3.shapes.add_shape(1,
Inches(bx), Inches(by + 0.4), Inches(box_w), Inches(box_h - 0.42))
content_box.fill.solid(); content_box.fill.fore_color.rgb = SUBBG
content_box.line.color.rgb = data["color"]; content_box.line.width = Pt(1)
tf = content_box.text_frame; tf.word_wrap = True
tf.margin_top = Pt(4); tf.margin_bottom = Pt(4)
tf.margin_left = Pt(6); tf.margin_right = Pt(6)
for k, det in enumerate(data["details"]):
p = tf.paragraphs[0] if k == 0 else tf.add_paragraph()
p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = det
run.font.size = Pt(7.5); run.font.color.rgb = WHITE
# ─── SLIDE 4: SPECIAL MECHANISMS (Trinucleotide, Imprinting, Mito) ───────────
slide4 = prs.slides.add_slide(slide_layout)
bg4 = slide4.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg4.fill.solid(); bg4.fill.fore_color.rgb = BG; bg4.line.color.rgb = BG
add_rounded_box(slide4, 0.2, 0.1, 15.6, 0.65,
BRANCH6,
["SPECIAL GENETIC MECHANISMS", "Trinucleotide Repeats | Imprinting | Mitochondrial | Epigenetics"],
[18, 10], [True, False], text_color=DARK)
# Trinucleotide box
add_rounded_box(slide4, 0.2, 0.9, 5.0, 0.4, BRANCH1, ["TRINUCLEOTIDE REPEAT DISORDERS"], [11], [True], text_color=DARK)
tri_box = slide4.shapes.add_shape(1, Inches(0.2), Inches(1.35), Inches(5.0), Inches(4.0))
tri_box.fill.solid(); tri_box.fill.fore_color.rgb = SUBBG
tri_box.line.color.rgb = BRANCH1; tri_box.line.width = Pt(1)
tf = tri_box.text_frame; tf.word_wrap = True
tf.margin_top = Pt(4); tf.margin_bottom = Pt(4); tf.margin_left = Pt(6); tf.margin_right = Pt(4)
tri_content = [
"Disease | Repeat | Location | Inheritance",
"─────────────────────────────────────────────────",
"Fragile X (FXS)| CGG | FMR1 5'UTR | X-linked",
"Huntington | CAG | HTT exon 1 | AD",
"Myotonic Dyst. | CTG | DMPK 3'UTR | AD",
"Friedreich Atx | GAA | FXN intron | AR",
"SCA (type 1) | CAG | ATXN1 | AD",
"",
"KEY CONCEPT: ANTICIPATION — repeat expands each",
"generation → earlier/worse disease",
"",
"Fragile X specifics:",
"• Normal: 6-54 CGG repeats",
"• Premutation: 55-200 (carrier males/females)",
"• Full mutation: >200 → methylation → FMR1 silenced",
"• Macroorchidism, intellectual disability, autism",
"• Normal transmitting males (premutation carriers)",
"• 20% carrier females affected",
]
for k, line in enumerate(tri_content):
p = tf.paragraphs[0] if k == 0 else tf.add_paragraph()
p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = line
run.font.size = Pt(7.2); run.font.color.rgb = WHITE
if k == 0: run.font.bold = True
# Imprinting box
add_rounded_box(slide4, 5.5, 0.9, 5.0, 0.4, BRANCH2, ["GENOMIC IMPRINTING"], [11], [True], text_color=DARK)
imp_box = slide4.shapes.add_shape(1, Inches(5.5), Inches(1.35), Inches(5.0), Inches(4.0))
imp_box.fill.solid(); imp_box.fill.fore_color.rgb = SUBBG
imp_box.line.color.rgb = BRANCH2; imp_box.line.width = Pt(1)
tf2 = imp_box.text_frame; tf2.word_wrap = True
tf2.margin_top = Pt(4); tf2.margin_bottom = Pt(4); tf2.margin_left = Pt(6); tf2.margin_right = Pt(4)
imp_content = [
"Concept: Differential silencing of maternal vs paternal",
"allele via DNA methylation + histone modification",
"",
"CHROMOSOME 15q11-q13 DELETION:",
"",
"PRADER-WILLI SYNDROME:",
"• Del of PATERNAL Chr 15 (or maternal UPD)",
"• Features: Hypotonia at birth, obesity, short stature,",
" hypogonadism, intellectual disability, hyperphagia",
"• Mnemonic: Paternal PWS = 'Fat, Floppy, Funny'",
"",
"ANGELMAN SYNDROME:",
"• Del of MATERNAL Chr 15 (or paternal UPD)",
"• Features: Intellectual disability, seizures,",
" ataxic gait, inappropriate laughter ('happy puppet')",
"• UBE3A gene (ubiquitin ligase) — maternal allele lost",
"",
"Memory trick: Angelman = mAtErnal deletion",
"Prader-Willi = PAtErnal deletion",
]
for k, line in enumerate(imp_content):
p = tf2.paragraphs[0] if k == 0 else tf2.add_paragraph()
p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = line
run.font.size = Pt(7.2); run.font.color.rgb = WHITE
if k in [3, 5, 11]: run.font.bold = True
# Mitochondrial + Epigenetics box
add_rounded_box(slide4, 10.8, 0.9, 5.0, 0.4, BRANCH4, ["MITOCHONDRIAL + EPIGENETICS"], [11], [True], text_color=DARK)
mito_box = slide4.shapes.add_shape(1, Inches(10.8), Inches(1.35), Inches(5.0), Inches(4.0))
mito_box.fill.solid(); mito_box.fill.fore_color.rgb = SUBBG
mito_box.line.color.rgb = BRANCH4; mito_box.line.width = Pt(1)
tf3 = mito_box.text_frame; tf3.word_wrap = True
tf3.margin_top = Pt(4); tf3.margin_bottom = Pt(4); tf3.margin_left = Pt(6); tf3.margin_right = Pt(4)
mito_content = [
"MITOCHONDRIAL INHERITANCE:",
"• Exclusively MATERNAL transmission",
"• Affects high-energy tissues: CNS, skeletal/cardiac",
" muscle, liver, kidney",
"• Heteroplasmy: mix of mutant + normal mtDNA",
"• Example: LEBER HEREDITARY OPTIC NEUROPATHY",
" (bilateral loss of central vision → blindness)",
"• MELAS, MERRF syndromes",
"",
"EPIGENETICS:",
"• DNA methylation: CpG islands → gene silencing",
" (adds methyl group to cytosine)",
"• Histone acetylation → chromatin opening → active",
"• Histone methylation → silencing (in most contexts)",
"• XIST gene → X inactivation (Lyon hypothesis)",
"• ~30% of Xp genes ESCAPE inactivation",
" → explains Turner syndrome features",
"",
"Clinical relevance: Epigenetic changes in cancer",
"Promoter hypermethylation → tumor suppressor silencing",
]
for k, line in enumerate(mito_content):
p = tf3.paragraphs[0] if k == 0 else tf3.add_paragraph()
p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = line
run.font.size = Pt(7.2); run.font.color.rgb = WHITE
if k in [0, 9]: run.font.bold = True
# Bottom strip: Molecular diagnosis methods
add_rounded_box(slide4, 0.2, 5.55, 15.6, 0.38,
CENTER_BG,
["MOLECULAR DIAGNOSIS TOOLS: Karyotype | FISH | Chromosomal Microarray | PCR/Southern Blot | NGS/WES"],
[9], [True])
# ─── SLIDE 5: 4-HOUR STUDY PLAN ──────────────────────────────────────────────
slide5 = prs.slides.add_slide(slide_layout)
bg5 = slide5.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg5.fill.solid(); bg5.fill.fore_color.rgb = BG; bg5.line.color.rgb = BG
add_rounded_box(slide5, 0.2, 0.1, 15.6, 0.65,
CENTER_BG,
["4-HOUR GENETICS STUDY PLAN — Robbins + Marrow", "Exam-Focused | High-Yield Strategy"],
[18, 10], [True, False])
plan = [
{
"time": "Hour 1\n(0:00-1:00)",
"color": BRANCH1,
"title": "FOUNDATIONS\n+ MUTATIONS",
"robbins": "Robbins Ch.4 pp.84-92\nNature of genetic abnormalities\nMutation types (point, frameshift, CNV)\nMendelian inheritance patterns (Tables 4.1 & 4.2)\nKey vocabulary: hereditary vs congenital vs familial",
"marrow": "Marrow: Genetics intro module\nPatterns of inheritance (AD/AR/XLR)\nMutation mnemonics\nQuick MCQ revision on basic genetics",
},
{
"time": "Hour 2\n(1:00-2:00)",
"color": BRANCH2,
"title": "MENDELIAN\nDISORDERS",
"robbins": "Robbins Ch.4 pp.92-109\nStructural proteins: Marfan, OI, EDS\nReceptor/channel defects: FH, CF\nEnzyme defects: PKU, Tay-Sachs, Gaucher,\n Glycogen storage diseases (esp. Type I, II, V)\nNiemann-Pick, Mucopolysaccharidoses",
"marrow": "Marrow: Each disease — focus on pathogenesis\nStorage diseases comparison table\nCF: CFTR mutations, sweat chloride test\nHigh-yield: Enzyme involved in each storage disease",
},
{
"time": "Hour 3\n(2:00-3:00)",
"color": BRANCH3,
"title": "CYTOGENETIC\nDISORDERS",
"robbins": "Robbins Ch.4 pp.110-122\nNumeric vs structural abnormalities\nNondisjunction mechanism\nDown syndrome (Trisomy 21)\nEdwards, Patau syndromes\nTurner, Klinefelter syndromes\n22q11.2 deletion (DiGeorge)",
"marrow": "Marrow: Chromosome disorders\nKaryotype interpretation\nLyon hypothesis / X inactivation\nSex chromosome anomalies comparison\nMCQ practice on cytogenetics",
},
{
"time": "Hour 4\n(3:00-4:00)",
"color": BRANCH6,
"title": "SPECIAL MECH.\n+ REVISION",
"robbins": "Robbins Ch.4 pp.122-129\nTrinucleotide repeats (Fragile X, HD)\nGenomic imprinting (PWS vs Angelman)\nMitochondrial inheritance (Leber)\nEpigenetics, CRISPR overview\nMolecular diagnosis tools",
"marrow": "Marrow: Anticipation, imprinting\nFragile X pedigree analysis\nFull Chapter 4 summary video\nPrevious year MCQ blitz (30-40 Qs)\nWeakness areas — targeted re-read",
},
]
col_w_plan = [1.4, 1.4, 5.6, 5.6]
col_x_plan = [0.2, 1.65, 3.1, 8.75]
plan_headers = ["TIME", "TOPIC", "ROBBINS (READ)", "MARROW (REVISE)"]
for h, w, x in zip(plan_headers, col_w_plan, col_x_plan):
add_rounded_box(slide5, x, 0.9, w, 0.35, CENTER_BG, [h], [9], [True])
for r_i, row in enumerate(plan):
y = 1.32 + r_i * 1.82
bg_c = SUBBG if r_i % 2 == 0 else RGBColor(0x16, 0x25, 0x38)
# Time
add_rounded_box(slide5, col_x_plan[0], y, col_w_plan[0], 1.72,
row["color"], [row["time"]], [8], [True], text_color=DARK)
# Topic
add_rounded_box(slide5, col_x_plan[1], y, col_w_plan[1], 1.72,
RGBColor(row["color"].red//2, row["color"].green//2, row["color"].blue//2),
[row["title"]], [8], [True])
# Robbins
rbox = slide5.shapes.add_shape(1, Inches(col_x_plan[2]), Inches(y), Inches(col_w_plan[2]), Inches(1.72))
rbox.fill.solid(); rbox.fill.fore_color.rgb = bg_c
rbox.line.color.rgb = row["color"]; rbox.line.width = Pt(0.75)
tf = rbox.text_frame; tf.word_wrap = True
tf.margin_top = Pt(3); tf.margin_bottom = Pt(3); tf.margin_left = Pt(5); tf.margin_right = Pt(5)
for k, line in enumerate(row["robbins"].split("\n")):
p = tf.paragraphs[0] if k == 0 else tf.add_paragraph()
run = p.add_run(); run.text = line
run.font.size = Pt(7.2); run.font.color.rgb = WHITE
run.font.bold = (k == 0)
# Marrow
mbox = slide5.shapes.add_shape(1, Inches(col_x_plan[3]), Inches(y), Inches(col_w_plan[3]), Inches(1.72))
mbox.fill.solid(); mbox.fill.fore_color.rgb = bg_c
mbox.line.color.rgb = row["color"]; mbox.line.width = Pt(0.75)
tf2 = mbox.text_frame; tf2.word_wrap = True
tf2.margin_top = Pt(3); tf2.margin_bottom = Pt(3); tf2.margin_left = Pt(5); tf2.margin_right = Pt(5)
for k, line in enumerate(row["marrow"].split("\n")):
p = tf2.paragraphs[0] if k == 0 else tf2.add_paragraph()
run = p.add_run(); run.text = line
run.font.size = Pt(7.2); run.font.color.rgb = WHITE
run.font.bold = (k == 0)
out_path = "/tmp/workspace/genetics-mindmap/Genetics_Robbins_Mindmap.pptx"
prs.save(out_path)
print(f"Saved to {out_path}")
cd /tmp/workspace/genetics-mindmap && python create_mindmap.py 2>&1
~/genetics-mindmap/create_mindmap.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/genetics-mindmap/create_mindmap.py'
cd /tmp/workspace/genetics-mindmap && python create_mindmap.py 2>&1
Genetics Robbins Mindmap
Presentation · PPTX
GENETIC DISEASES (Ch. 4 Robbins Basic Pathology, pp. 83-129)
│
├─ 1. MUTATIONS & TYPES
├─ 2. MENDELIAN DISORDERS (AD / AR / X-linked)
├─ 3. STRUCTURAL PROTEIN DEFECTS
├─ 4. ENZYME DEFECTS (AR)
├─ 5. CYTOGENETIC DISORDERS
└─ 6. SPECIAL MECHANISMS
| Type | Example |
|---|---|
| Point - Missense | Sickle cell (HBB E6V: Glu→Val) |
| Point - Nonsense | Premature stop codon → truncated protein |
| Frameshift (ins/del) | Duchenne MD (dystrophin) |
| Trinucleotide repeat | Fragile X (CGG), HD (CAG), DM (CTG) |
| Copy number variant (CNV) | 22q11.2 deletion |
| Disease | Gene | Key Feature |
|---|---|---|
| Marfan | FBN1 | Aortic root dilation, lens sublux up+out |
| OI | COL1A1/2 | Brittle bones, blue sclera, hearing loss |
| EDS | COL3A1, others | Hyperextensible skin/joints |
| Syndrome | Karyotype | Key Features |
|---|---|---|
| Down | 47,+21 (95% nondisj) | Flat facies, epicanthal folds, ASD/VSD, ALL risk, early Alzheimer (APP on Chr 21) |
| Edwards | 47,+18 | Rocker bottom feet, clenched hands, overlapping fingers |
| Patau | 47,+13 | Holoprosencephaly, cyclopia, polydactyly, cleft lip/palate |
| Turner | 45,X | Short stature, webbed neck, coarctation of aorta, streak gonads, primary amenorrhea |
| Klinefelter | 47,XXY | Tall, hypogonadism, gynecomastia, ↑FSH, infertility |
| Disease | Repeat | Note |
|---|---|---|
| Fragile X | CGG (FMR1) | >200 = full mutation; methylation → gene silenced |
| Huntington | CAG (HTT) | Toxic poly-Q protein; striatum degeneration |
| Myotonic dystrophy | CTG (DMPK) | Myotonia, cataracts, cardiac conduction defects |
| Friedreich ataxia | GAA (FXN) | AR; spinocerebellar degeneration |
| Topic | Pages (Basic Pathology 10th ed.) |
|---|---|
| Definitions (hereditary/congenital/familial) | p. 107 |
| Mutation types | pp. 84-88 |
| Mendelian disorder overview | pp. 84, 107-108 (Tables 4.1, 4.2) |
| Structural protein diseases | pp. 92-95 |
| Receptor/channel defects (FH, CF) | pp. 95-103 |
| Enzyme defects / Storage diseases | pp. 103-109 |
| Cytogenetic disorders | pp. 110-122 |
| Trinucleotide repeats / Fragile X | pp. 122-127 |
| Imprinting / PWS / Angelman | pp. 127-128 |
| Mitochondrial / Epigenetics | pp. 128-129 |
| Molecular diagnosis | pp. 123-129 |