https://youtu.be/iMx3Ypv6KhU?si=ts2HBh5Plg0aXNne. Make a ppt of this youtube video for presentation for m pharm

Reading File
I'll first extract the YouTube video content, then build the PPT. Let me fetch the video transcript and the full skill guide simultaneously.
Reading Web Page

https://youtu.be/iMx3Ypv6KhU?si=ts2HBh5Plg0aXNne

Reading File
The direct URL failed. Let me search for this YouTube video to identify its content.
Searching the Web

youtube iMx3Ypv6KhU pharmacy video topic

The search didn't identify the exact video. Let me try to analyse the media directly and also try extracting from the full YouTube URL.
analyse_media
The video is about Cryopreservation - covering its process, cryoprotective agents, applications in plant cells, and benefits. Now I'll build a comprehensive M.Pharm-level PPT on this topic.
Running Command

mkdir -p /tmp/workspace/cryopreservation-ppt && ls /tmp/workspace/

Writing File

~/cryopreservation-ppt/create_ppt.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, MSO_ANCHOR
from pptx.util import Inches, Pt
from io import BytesIO

# ── Color Palette ──────────────────────────────────────────────
DARK_BLUE   = RGBColor(0x0D, 0x2B, 0x55)   # slide background header blocks
MED_BLUE    = RGBColor(0x15, 0x4E, 0x8E)   # accent bars
LIGHT_BLUE  = RGBColor(0xD6, 0xE8, 0xF7)   # content area background
TEAL        = RGBColor(0x00, 0x89, 0x9E)   # bullet accent / section color
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY   = RGBColor(0x1A, 0x1A, 0x2E)
YELLOW_ACC  = RGBColor(0xFF, 0xC1, 0x07)   # highlight
MID_GRAY    = RGBColor(0x55, 0x55, 0x55)

prs = Presentation()
prs.slide_width  = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]   # blank layout

# ── Helper functions ─────────────────────────────────────────────

def add_rect(slide, x, y, w, h, fill_color, transparency=0):
    shape = slide.shapes.add_shape(
        1,  # MSO_SHAPE_TYPE.RECTANGLE
        Inches(x), Inches(y), Inches(w), Inches(h)
    )
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill_color
    shape.line.fill.background()
    if transparency:
        shape.fill.fore_color.theme_color
    return shape

def add_text(slide, text, x, y, w, h, font_size=18, bold=False,
             color=WHITE, align=PP_ALIGN.LEFT, italic=False, word_wrap=True):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = word_wrap
    tf.margin_left  = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top   = Pt(2)
    tf.margin_bottom= Pt(2)
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size   = Pt(font_size)
    run.font.bold   = bold
    run.font.italic = italic
    run.font.color.rgb = color
    run.font.name = "Calibri"
    return tb

def add_bullets(slide, items, x, y, w, h, font_size=15, title_color=TEAL,
                text_color=DARK_GRAY, indent_items=None):
    """items = list of strings; indent_items = set of indices that are sub-bullets"""
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left   = Pt(6)
    tf.margin_right  = Pt(4)
    tf.margin_top    = Pt(2)
    tf.margin_bottom = Pt(2)
    first = True
    for i, item in enumerate(items):
        p = tf.paragraphs[0] if first else tf.add_paragraph()
        first = False
        indent = indent_items and i in indent_items
        p.level = 1 if indent else 0
        run = p.add_run()
        bullet_prefix = "    ▸  " if indent else "▪  "
        run.text = bullet_prefix + item
        run.font.size  = Pt(font_size - 1 if indent else font_size)
        run.font.bold  = False
        run.font.color.rgb = MID_GRAY if indent else text_color
        run.font.name  = "Calibri"
    return tb

def add_slide_bg(slide):
    """White background for all content slides"""
    add_rect(slide, 0, 0, 13.333, 7.5, WHITE)

def add_header_bar(slide, title, subtitle=None):
    """Dark blue header bar at top"""
    add_rect(slide, 0, 0, 13.333, 1.3, DARK_BLUE)
    add_rect(slide, 0, 1.3, 13.333, 0.06, TEAL)   # thin accent line
    add_text(slide, title, 0.4, 0.1, 12, 0.8, font_size=28, bold=True,
             color=WHITE, align=PP_ALIGN.LEFT)
    if subtitle:
        add_text(slide, subtitle, 0.4, 0.85, 12, 0.4, font_size=13,
                 bold=False, color=YELLOW_ACC, align=PP_ALIGN.LEFT)

def section_box(slide, label, x, y, w, h=0.42):
    add_rect(slide, x, y, w, h, MED_BLUE)
    add_text(slide, label, x+0.08, y+0.04, w-0.1, h-0.05,
             font_size=13, bold=True, color=WHITE)

# ════════════════════════════════════════════════════════════════
# SLIDE 1 – TITLE SLIDE
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
# diagonal accent
add_rect(slide, 0, 5.8, 13.333, 0.08, TEAL)
add_rect(slide, 0, 5.88, 13.333, 1.62, RGBColor(0x0A, 0x1F, 0x40))

# Cryo icon-like circle
add_rect(slide, 5.8, 1.0, 1.7, 1.7, TEAL)   # bg square replaced by text

add_text(slide, "❄", 5.9, 0.85, 1.5, 1.7, font_size=60, bold=False,
         color=WHITE, align=PP_ALIGN.CENTER)

add_text(slide, "CRYOPRESERVATION", 1.0, 2.0, 11.3, 1.1,
         font_size=40, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, 3.5, 3.15, 6.3, 0.07, YELLOW_ACC)
add_text(slide, "Process | Cryoprotective Agents | Benefits | Plant Cell Applications",
         1.0, 3.25, 11.3, 0.65, font_size=16, bold=False,
         color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_text(slide, "M.Pharm Presentation  |  Concept Classes – YouTube", 1.0, 4.1, 11.3, 0.5,
         font_size=13, italic=True, color=RGBColor(0xAA, 0xCC, 0xEE),
         align=PP_ALIGN.CENTER)
add_text(slide, "Pharmaceutical Biotechnology", 1.0, 6.0, 11.3, 0.5,
         font_size=14, bold=True, color=YELLOW_ACC, align=PP_ALIGN.CENTER)

# ════════════════════════════════════════════════════════════════
# SLIDE 2 – TABLE OF CONTENTS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Contents at a Glance")

topics = [
    ("01", "Introduction & Definition of Cryopreservation"),
    ("02", "Principle & Scientific Basis"),
    ("03", "Cryoprotective Agents (CPAs)"),
    ("04", "Step-by-Step Process of Cryopreservation"),
    ("05", "Freezing & Storage Media (LN₂, Dry Ice, Deep Freezers)"),
    ("06", "Cryopreservation of Plant Cells & Germplasm"),
    ("07", "Benefits & Advantages"),
    ("08", "Applications in Pharmacy & Life Sciences"),
    ("09", "Limitations & Challenges"),
    ("10", "Summary & Key Takeaways"),
]

col1 = topics[:5]
col2 = topics[5:]

for i, (num, title) in enumerate(col1):
    yp = 1.6 + i * 0.96
    add_rect(slide, 0.5, yp, 0.55, 0.62, TEAL)
    add_text(slide, num, 0.5, yp+0.1, 0.55, 0.45, font_size=16,
             bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_text(slide, title, 1.15, yp+0.1, 5.5, 0.55, font_size=13,
             color=DARK_GRAY)

for i, (num, title) in enumerate(col2):
    yp = 1.6 + i * 0.96
    add_rect(slide, 7.0, yp, 0.55, 0.62, MED_BLUE)
    add_text(slide, num, 7.0, yp+0.1, 0.55, 0.45, font_size=16,
             bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_text(slide, title, 7.65, yp+0.1, 5.5, 0.55, font_size=13,
             color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 3 – INTRODUCTION & DEFINITION
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Introduction & Definition",
               subtitle="What is Cryopreservation?")

add_rect(slide, 0.4, 1.55, 12.53, 2.1, LIGHT_BLUE)
add_text(slide,
    '"Cryopreservation is the process of preserving living cells, tissues, '
    'organs, or biological constructs by cooling them to sub-zero temperatures '
    '(typically −196°C using liquid nitrogen), at which all biochemical activity '
    'is halted, allowing indefinite storage without loss of viability."',
    0.6, 1.6, 12.1, 2.0, font_size=16, italic=True, color=DARK_BLUE,
    align=PP_ALIGN.LEFT)

section_box(slide, "Key Terms", 0.4, 3.8)
bullets = [
    "Cryo (Greek: kryos) = Cold / Frost",
    "Preservation = maintaining viability over time",
    "Cryobiosis = state of suspended animation at ultra-low temperatures",
    "Vitrification = glass-like solidification without ice crystal formation",
    "Devitrification = undesired re-crystallization during thawing",
]
add_bullets(slide, bullets, 0.4, 4.25, 12.5, 3.0, font_size=14)

# ════════════════════════════════════════════════════════════════
# SLIDE 4 – PRINCIPLE & SCIENTIFIC BASIS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Principle & Scientific Basis",
               subtitle="How does Cryopreservation work at the cellular level?")

boxes = [
    ("Metabolic Arrest", "At sub-zero temperatures, all enzymatic reactions\nand metabolic processes come to a complete halt,\npreserving cellular integrity."),
    ("Ice Crystal Damage", "Slow freezing leads to intracellular ice crystal\nformation → cell membrane rupture → cell death.\nControlled rate freezing and CPAs prevent this."),
    ("Osmotic Stress", "During freezing, extracellular ice formation draws\nwater out of cells causing shrinkage (solution effect).\nCPAs balance osmotic pressure."),
    ("Two-Factor Hypothesis", "Balance between chilling injury (too fast) and\nsolution effect damage (too slow) — optimal cooling\nrate minimizes both. ~1°C/min is standard."),
]

for i, (title, body) in enumerate(boxes):
    col = i % 2
    row = i // 2
    x = 0.4 + col * 6.5
    y = 1.55 + row * 2.8
    add_rect(slide, x, y, 6.2, 2.6, DARK_BLUE if row==0 else MED_BLUE)
    add_text(slide, title, x+0.15, y+0.1, 5.9, 0.5, font_size=15,
             bold=True, color=YELLOW_ACC)
    add_text(slide, body, x+0.15, y+0.55, 5.9, 1.9, font_size=13,
             color=WHITE)

# ════════════════════════════════════════════════════════════════
# SLIDE 5 – CRYOPROTECTIVE AGENTS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Cryoprotective Agents (CPAs)",
               subtitle="Chemical protection against freeze-thaw damage")

section_box(slide, "Definition", 0.4, 1.55)
add_text(slide,
    "Cryoprotective agents (CPAs) are chemical compounds added to biological samples "
    "before freezing to minimize damage caused by ice crystal formation and osmotic stress.",
    0.4, 1.97, 12.5, 0.65, font_size=14, color=DARK_GRAY)

# Two columns
section_box(slide, "Intracellular (Penetrating) CPAs", 0.4, 2.75)
penetrating = [
    "Glycerol – most widely used, low toxicity",
    "DMSO (Dimethyl Sulfoxide) – fast penetration",
    "Ethylene Glycol – used in vitrification",
    "Propylene Glycol – less toxic alternative",
    "Methanol – used in plant cryopreservation",
]
add_bullets(slide, penetrating, 0.4, 3.18, 6.1, 2.5, font_size=13)

section_box(slide, "Extracellular (Non-Penetrating) CPAs", 6.8, 2.75)
non_penetrating = [
    "Sucrose – osmotic stabilizer",
    "Trehalose – stabilizes membrane lipids",
    "Dextran – high molecular weight polymer",
    "Polyvinylpyrrolidone (PVP) – cryoprotection in plant tissues",
    "Hydroxyethyl Starch (HES) – blood cell preservation",
]
add_bullets(slide, non_penetrating, 6.8, 3.18, 6.1, 2.5, font_size=13)

section_box(slide, "Mechanism of CPA Action", 0.4, 5.78)
add_text(slide,
    "CPAs lower freezing point  |  Reduce ice crystal size  |  Stabilize cell membranes  |  Prevent protein denaturation",
    0.4, 6.2, 12.5, 0.5, font_size=13, color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 6 – STEP-BY-STEP PROCESS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Step-by-Step Process of Cryopreservation",
               subtitle="Standard Protocol in Pharmaceutical Biotechnology")

steps = [
    ("01", "Sample Preparation", "Harvest healthy, actively growing cells/tissues.\nAssess viability using trypan blue exclusion (>90% viability preferred)."),
    ("02", "CPA Addition", "Add CPA (e.g., 10% DMSO or glycerol) to suspension.\nMix gently to ensure uniform distribution. Allow equilibration 15–30 min at 4°C."),
    ("03", "Loading into Cryovials", "Transfer sample into labeled cryovials (1–2 mL).\nEnsure air-tight sealing to prevent contamination."),
    ("04", "Controlled-Rate Freezing", "Use programmable freezer (Mr. Frosty or controlled-rate freezer).\nCool at ~1°C/minute to −80°C to minimize ice crystal damage."),
    ("05", "Transfer to LN₂", "Move cryovials to liquid nitrogen (−196°C) for long-term storage.\nSamples can be stored indefinitely in vapor or liquid phase."),
    ("06", "Thawing / Recovery", "Rapidly thaw at 37°C water bath (~1–2 min).\nDilute CPA slowly; rehydrate and assess post-thaw viability."),
]

for i, (num, title, body) in enumerate(steps):
    col = i % 2
    row = i // 2
    x = 0.35 + col * 6.55
    y = 1.52 + row * 1.95
    add_rect(slide, x, y, 0.6, 1.75, TEAL if i % 2 == 0 else MED_BLUE)
    add_text(slide, num, x, y+0.55, 0.6, 0.65, font_size=18,
             bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_rect(slide, x+0.6, y, 5.7, 1.75, LIGHT_BLUE)
    add_text(slide, title, x+0.7, y+0.05, 5.5, 0.45, font_size=14,
             bold=True, color=DARK_BLUE)
    add_text(slide, body, x+0.7, y+0.48, 5.5, 1.2, font_size=11,
             color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 7 – FREEZING & STORAGE MEDIA
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Freezing & Storage Media",
               subtitle="Liquid Nitrogen | Dry Ice | Vapour Phase Nitrogen | Deep Freezers")

media = [
    ("❄  Liquid Nitrogen (LN₂)", "−196°C",
     "• Gold standard for long-term storage\n• Maintains samples in vapour or liquid phase\n• Indefinite storage if properly maintained\n• Used in gene banks, cell culture labs",
     DARK_BLUE),
    ("🧊  Solid CO₂ (Dry Ice)", "−78.5°C",
     "• Short-term storage & transport\n• Easily available and cost-effective\n• Used for shipping biological samples\n• Not suitable for indefinite preservation",
     MED_BLUE),
    ("🌫  Vapour Phase N₂", "−140 to −180°C",
     "• Reduces risk of cross-contamination vs. liquid phase\n• Safer for DMSO-containing samples\n• Preferred for human clinical-grade materials\n• Modern biobanks use vapour-phase LN₂",
     TEAL),
    ("🔲  Ultra-Low Deep Freezer", "−80°C",
     "• Routine storage for DNA, RNA, proteins\n• Not ideal for cells (ice crystal damage over time)\n• Useful for short-medium term (months)\n• Common in pharmaceutical QC labs",
     RGBColor(0x1A, 0x5C, 0x3E)),
]

for i, (title, temp, body, color) in enumerate(media):
    col = i % 2
    row = i // 2
    x = 0.35 + col * 6.55
    y = 1.52 + row * 2.8
    add_rect(slide, x, y, 6.3, 2.6, color)
    add_text(slide, title, x+0.15, y+0.08, 5.0, 0.5, font_size=15,
             bold=True, color=WHITE)
    add_rect(slide, x+5.1, y+0.05, 1.0, 0.5, YELLOW_ACC)
    add_text(slide, temp, x+5.1, y+0.1, 1.0, 0.42, font_size=13,
             bold=True, color=DARK_GRAY, align=PP_ALIGN.CENTER)
    add_text(slide, body, x+0.15, y+0.65, 6.0, 1.85, font_size=12,
             color=WHITE)

# ════════════════════════════════════════════════════════════════
# SLIDE 8 – PLANT CELL CRYOPRESERVATION
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Cryopreservation of Plant Cells & Germplasm",
               subtitle="Conservation of Plant Genetic Resources")

section_box(slide, "Why Cryopreserve Plant Material?", 0.4, 1.55)
add_text(slide,
    "Plants contain valuable secondary metabolites, unique genetic diversity, and endangered species germplasm. "
    "Cryopreservation ensures long-term ex-situ conservation beyond field gene banks (which are susceptible to disease/climate).",
    0.4, 1.97, 12.5, 0.7, font_size=13, color=DARK_GRAY)

section_box(slide, "Material Used", 0.4, 2.78)
mat_items = [
    "Shoot tips (meristems) – genetically stable, disease-free",
    "Embryonic axes – seed germplasm conservation",
    "Cell suspensions – secondary metabolite-producing cell lines",
    "Pollen – reproductive germplasm",
    "Somatic embryos – mass propagation conservation",
]
add_bullets(slide, mat_items, 0.4, 3.2, 5.9, 2.5, font_size=13)

section_box(slide, "Specialized Plant Cryopreservation Techniques", 6.7, 2.78)
tech_items = [
    "Classical / Two-step Freezing – slow cooling + LN₂ plunge",
    "Vitrification – high CPA conc. + ultra-rapid cooling",
    "Encapsulation-Dehydration – alginate beads + desiccation",
    "Encapsulation-Vitrification – combined approach",
    "Droplet Vitrification – small volumes on metal foil",
    "PVS2 Solution – Plant Vitrification Solution (glycerol + DMSO + ethylene glycol + sucrose)",
]
add_bullets(slide, tech_items, 6.7, 3.2, 6.2, 2.5, font_size=12)

section_box(slide, "Key Example", 0.4, 5.8)
add_text(slide,
    "Indian gene banks (NBPGR, New Delhi) use cryopreservation to conserve germplasm of rice, wheat, sugarcane, banana & medicinal plants.",
    0.4, 6.22, 12.5, 0.55, font_size=13, italic=True, color=DARK_BLUE)

# ════════════════════════════════════════════════════════════════
# SLIDE 9 – BENEFITS & ADVANTAGES
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Benefits & Advantages of Cryopreservation",
               subtitle="Why is Cryopreservation the preferred long-term storage method?")

benefits = [
    ("Long-term Viability", "Cells remain viable for decades (theoretically indefinitely)\nat −196°C with minimal degradation."),
    ("Genetic Stability", "Preserves original genetic makeup — no mutations,\nno chromosomal rearrangements over storage time."),
    ("Reduced Contamination Risk", "Sealed cryovials in LN₂ prevent microbial contamination\ncompared to continuous sub-culture."),
    ("Cost-Effective Long Term", "One-time cost of establishment vs. ongoing media\nand labor costs of repeated sub-culturing."),
    ("Biodiversity Conservation", "Irreplaceable genetic resources of endangered species\npreserved for future research and restoration."),
    ("Regulatory Compliance", "ICH guidelines recommend cryopreserved master cell banks\nfor biopharmaceutical manufacturing (e.g., mAb production)."),
]

for i, (title, body) in enumerate(benefits):
    col = i % 3
    row = i // 3
    x = 0.35 + col * 4.35
    y = 1.55 + row * 2.7
    add_rect(slide, x, y, 4.1, 2.5, LIGHT_BLUE)
    add_rect(slide, x, y, 4.1, 0.5, TEAL if row == 0 else MED_BLUE)
    add_text(slide, title, x+0.1, y+0.05, 3.9, 0.42, font_size=13,
             bold=True, color=WHITE)
    add_text(slide, body, x+0.1, y+0.6, 3.9, 1.8, font_size=12,
             color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 10 – APPLICATIONS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Applications in Pharmacy & Life Sciences",
               subtitle="Broad impact across medicine, agriculture, and research")

apps = [
    ("🏥  Pharmaceutical Biomanufacturing",
     "• Master Cell Banks (MCB) for mAb & vaccine production\n• ICH Q5D guidelines mandate cryopreserved cell banks\n• Ensures batch-to-batch consistency (e.g., CHO cells)"),
    ("🔬  Stem Cell Therapy",
     "• Hematopoietic stem cells for bone marrow transplant\n• iPSC banking for personalized medicine\n• Cord blood cryopreservation (−196°C)"),
    ("🌱  Plant Biotechnology",
     "• Gene bank conservation (CGIAR, NBPGR)\n• Secondary metabolite-producing cell lines\n• Endangered species preservation"),
    ("🧬  Reproductive Medicine",
     "• Sperm, oocyte, embryo cryopreservation\n• Fertility preservation for cancer patients\n• IVF clinics: embryo storage programs"),
    ("💊  Drug Development",
     "• Long-term storage of test organisms (zebrafish, C. elegans)\n• Reference cell lines for toxicity screening\n• Biobank samples for drug target discovery"),
    ("🦠  Microbiology & Vaccines",
     "• Working cell banks of viral vaccine strains\n• Preservation of fastidious microorganisms\n• International culture collections (ATCC, NCIM)"),
]

for i, (title, body) in enumerate(apps):
    col = i % 2
    row = i // 3
    x = 0.35 + col * 6.55
    y = 1.52 + (i // 2) * 1.92
    add_rect(slide, x, y, 6.3, 1.78, DARK_BLUE if i % 2 == 0 else MED_BLUE)
    add_text(slide, title, x+0.12, y+0.05, 6.0, 0.45, font_size=13,
             bold=True, color=YELLOW_ACC)
    add_text(slide, body, x+0.12, y+0.5, 6.0, 1.2, font_size=11,
             color=WHITE)

# ════════════════════════════════════════════════════════════════
# SLIDE 11 – LIMITATIONS & CHALLENGES
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Limitations & Challenges",
               subtitle="Challenges that need to be addressed in cryopreservation")

add_rect(slide, 0.35, 1.52, 12.6, 5.5, LIGHT_BLUE)

limits = [
    ("CPA Toxicity",
     "High concentrations of DMSO are toxic to cells above 0°C. Requires careful titration and rapid cooling. Risk of post-thaw cellular damage."),
    ("Ice Crystal Formation",
     "Inadequate cooling rate → intracellular ice → membrane disruption. Requires precise controlled-rate freezing equipment."),
    ("Chilling Injury",
     "Cold-sensitive species (tropical plants, some cell types) may suffer injury even before ice forms. Acclimatization steps needed."),
    ("Post-thaw Viability Loss",
     "Not all cell types survive equally. Sensitive cells may show <50% post-thaw viability. Protocol optimization per cell type is essential."),
    ("Infrastructure Cost",
     "LN₂ supply maintenance, cryogenic storage vessels, and controlled-rate freezers require significant investment and trained personnel."),
    ("Scalability",
     "Large-scale cryopreservation of solid tissues and organs remains technically challenging. Organ cryopreservation is still in experimental stages."),
]

for i, (title, body) in enumerate(limits):
    col = i % 2
    row = i // 2
    x = 0.5 + col * 6.35
    y = 1.65 + row * 1.75
    add_rect(slide, x, y, 0.08, 1.45, TEAL)
    add_text(slide, title, x+0.2, y+0.05, 5.8, 0.42, font_size=13,
             bold=True, color=MED_BLUE)
    add_text(slide, body, x+0.2, y+0.48, 5.8, 1.0, font_size=12,
             color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 12 – SUMMARY & KEY TAKEAWAYS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Summary & Key Takeaways",
               subtitle="Everything you need to remember about Cryopreservation")

takeaways = [
    "Cryopreservation uses ultra-low temperatures (−196°C, LN₂) to halt metabolic activity and preserve cells indefinitely.",
    "Cryoprotective agents (DMSO, glycerol, trehalose) are essential to prevent ice crystal damage and osmotic stress.",
    "Controlled-rate freezing (~1°C/min) to −80°C before LN₂ plunge minimizes both chilling injury and solution effect.",
    "Two main types of CPAs: penetrating (intracellular) vs. non-penetrating (extracellular) — often used in combination.",
    "Plant cryopreservation employs vitrification, encapsulation-dehydration, and PVS2 for germplasm conservation.",
    "Pharmaceutical applications include MCB/WCB for biopharmaceuticals, vaccine production, and stem cell therapy.",
    "Post-thaw rapid rewarming at 37°C minimizes the re-crystallization and maximizes cell recovery.",
    "Limitations include CPA toxicity, cold-sensitivity, infrastructure cost, and difficulty with whole organ preservation.",
]

for i, pt in enumerate(takeaways):
    yp = 1.55 + i * 0.71
    add_rect(slide, 0.4, yp, 0.45, 0.55, TEAL if i % 2 == 0 else MED_BLUE)
    add_text(slide, str(i+1), 0.4, yp+0.08, 0.45, 0.4, font_size=14,
             bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_text(slide, pt, 0.95, yp+0.05, 12.0, 0.55, font_size=13,
             color=DARK_GRAY)

# ════════════════════════════════════════════════════════════════
# SLIDE 13 – THANK YOU
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 3.0, 13.333, 0.08, TEAL)
add_rect(slide, 0, 3.08, 13.333, 0.08, YELLOW_ACC)

add_text(slide, "❄", 5.85, 0.4, 1.6, 1.6, font_size=60, bold=False,
         color=TEAL, align=PP_ALIGN.CENTER)
add_text(slide, "THANK YOU", 1.0, 2.0, 11.3, 1.1,
         font_size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, "Questions & Discussion", 1.0, 3.3, 11.3, 0.6,
         font_size=20, italic=True, color=YELLOW_ACC, align=PP_ALIGN.CENTER)
add_text(slide, "Reference: \"Cryopreservation | Process | Benefits | Plant Cell | Applications\"",
         1.0, 4.2, 11.3, 0.5, font_size=13, color=LIGHT_BLUE,
         align=PP_ALIGN.CENTER)
add_text(slide, "Concept Classes — YouTube Channel  |  M.Pharm Pharmaceutical Biotechnology",
         1.0, 4.7, 11.3, 0.5, font_size=13, italic=True,
         color=RGBColor(0xAA, 0xCC, 0xEE), align=PP_ALIGN.CENTER)

# ── Save ──────────────────────────────────────────────────────
out_path = "/tmp/workspace/cryopreservation-ppt/Cryopreservation_MPharm.pptx"
buf = BytesIO()
prs.save(buf)
with open(out_path, "wb") as f:
    f.write(buf.getvalue())
print(f"Saved: {out_path}")
Running Command

cd /tmp/workspace/cryopreservation-ppt && python create_ppt.py

Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Now let me also fix all other section_box calls that might be missing the w argument:
Searching Content

"section_box(" in ~/cryopreservation-ppt

Several section_box calls are missing w. Let me fix them all at once:
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Editing File

~/cryopreservation-ppt/create_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
Running Command

cd /tmp/workspace/cryopreservation-ppt && python create_ppt.py 2>&1

Your M.Pharm presentation is ready! Download it here:

Cryopreservation MPharm

Presentation · PPTX


What's inside (13 slides, 16:9 widescreen)

SlideTitle
1Title Slide - Cryopreservation
2Contents at a Glance (numbered index)
3Introduction & Definition (with key terms: vitrification, devitrification, cryobiosis)
4Principle & Scientific Basis (Metabolic Arrest, Ice Crystal Damage, Osmotic Stress, Two-Factor Hypothesis)
5Cryoprotective Agents - Penetrating (DMSO, glycerol, ethylene glycol) vs Non-Penetrating (sucrose, trehalose, HES)
6Step-by-Step Process (6 numbered steps: sample prep → CPA addition → loading → controlled-rate freezing → LN₂ transfer → thawing)
7Freezing & Storage Media (LN₂ at -196°C, Dry Ice at -78.5°C, Vapour Phase N₂, Ultra-Low Deep Freezer at -80°C)
8Plant Cell Cryopreservation (techniques: vitrification, encapsulation-dehydration, PVS2 solution, NBPGR example)
9Benefits & Advantages (6 benefit cards: long-term viability, genetic stability, reduced contamination, cost, biodiversity, regulatory compliance)
10Applications (6 domains: biomanufacturing, stem cell therapy, plant biotech, reproductive medicine, drug development, microbiology/vaccines)
11Limitations & Challenges (CPA toxicity, ice crystals, chilling injury, post-thaw viability, cost, scalability)
12Summary & 8 Key Takeaways
13Thank You / Questions slide
Design: Dark navy/teal/gold professional color scheme appropriate for M.Pharm academic presentation. All content is M.Pharm level with pharmaceutical relevance (ICH guidelines, MCB/WCB, CHO cells, mAb production, etc.).
This is a shared conversation. Sign in to Orris to start your own chat.