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

Reading File
Reading Web Page

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

Reading File
Searching the Web

youtube iMx3Ypv6KhU pharmacy video topic

analyse_media
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'
Searching Content

"section_box(" in ~/cryopreservation-ppt

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.