Prepare a ppt on Icodec long acting insulin to present in endocrinology ward
icodec insulin once weekly diabetes
icodec once weekly insulin mechanism clinical trials 2024 2025
PMID: 37354562
PMID: 38224978
https://link.springer.com/article/10.1007/s40265-025-02201-0
mkdir -p /home/daytona/workspace/icodec-ppt && ls /home/daytona/workspace/icodec…
~/icodec-ppt/icodec.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Icodec: Once-Weekly Basal Insulin";
pres.author = "Endocrinology Ward";
// ─── THEME ───────────────────────────────────────────────────────────────────
const C = {
navy: "0D2B55", // dominant dark bg
teal: "0E7490", // section accent
amber: "F59E0B", // highlights / callout
white: "FFFFFF",
offWhite:"F0F4F8",
light: "DBEAFE", // light blue tint
gray: "64748B",
red: "DC2626",
green: "16A34A",
textDark:"1E293B",
};
// ─── HELPER: dark accent header band ─────────────────────────────────────────
function addHeader(slide, title, subtitle) {
// Full-width navy top band
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 10, h: 1.1,
fill: { color: C.navy },
line: { color: C.navy },
});
// Teal left accent bar
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 0.12, h: 1.1,
fill: { color: C.teal },
line: { color: C.teal },
});
slide.addText(title, {
x: 0.22, y: 0.06, w: 9.5, h: 0.6,
fontSize: 26, bold: true, color: C.white,
fontFace: "Calibri", margin: 0,
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.22, y: 0.65, w: 9.5, h: 0.38,
fontSize: 13, color: C.light, fontFace: "Calibri", margin: 0,
});
}
}
// ─── HELPER: footer ──────────────────────────────────────────────────────────
function addFooter(slide, note) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 5.35, w: 10, h: 0.275,
fill: { color: C.navy }, line: { color: C.navy },
});
slide.addText(note || "Endocrinology Grand Round | Insulin Icodec (Awiqli®)", {
x: 0.2, y: 5.36, w: 9.6, h: 0.25,
fontSize: 9, color: C.light, fontFace: "Calibri", margin: 0,
});
}
// ─── HELPER: card box ────────────────────────────────────────────────────────
function addCard(slide, x, y, w, h, headerText, headerColor, bodyLines, bodyFontSize) {
// header
slide.addShape(pres.ShapeType.rect, {
x, y, w, h: 0.38,
fill: { color: headerColor || C.teal },
line: { color: headerColor || C.teal },
rectRadius: 0.04,
});
slide.addText(headerText, {
x: x + 0.06, y: y + 0.03, w: w - 0.12, h: 0.32,
fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", margin: 0,
});
// body
slide.addShape(pres.ShapeType.rect, {
x, y: y + 0.38, w, h: h - 0.38,
fill: { color: C.offWhite },
line: { color: "CBD5E1" },
});
const items = bodyLines.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet" }, breakLine: i < bodyLines.length - 1, fontSize: bodyFontSize || 11, color: C.textDark, fontFace: "Calibri" },
}));
slide.addText(items, {
x: x + 0.1, y: y + 0.44, w: w - 0.2, h: h - 0.5,
valign: "top",
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// full navy background
s.addShape(pres.ShapeType.rect, { x:0,y:0,w:10,h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
// teal diagonal accent
s.addShape(pres.ShapeType.rect, { x:0,y:0,w:0.5,h:5.625, fill:{color:C.teal}, line:{color:C.teal} });
// amber horizontal rule
s.addShape(pres.ShapeType.rect, { x:0.5,y:3.15,w:9.5,h:0.06, fill:{color:C.amber}, line:{color:C.amber} });
s.addText("ICODEC", {
x:0.7, y:0.7, w:9, h:1.3,
fontSize:72, bold:true, color:C.white, fontFace:"Calibri",
charSpacing:10, margin:0,
});
s.addText("Once-Weekly Basal Insulin", {
x:0.7, y:2.05, w:9, h:0.65,
fontSize:30, color:C.amber, fontFace:"Calibri", bold:false, margin:0,
});
s.addText("A New Era in Basal Insulin Therapy", {
x:0.7, y:2.72, w:9, h:0.42,
fontSize:18, color:C.light, fontFace:"Calibri", italic:true, margin:0,
});
s.addText("Endocrinology Ward Grand Round | 2026", {
x:0.7, y:3.4, w:9, h:0.38,
fontSize:14, color:C.gray, fontFace:"Calibri", margin:0,
});
s.addText("Novo Nordisk | Brand name: Awiqli®", {
x:0.7, y:3.82, w:9, h:0.3,
fontSize:12, color:C.gray, fontFace:"Calibri", margin:0,
});
s.addText("ONWARDS Clinical Trial Program | Phase 3 Evidence", {
x:0.7, y:5.1, w:9, h:0.3,
fontSize:10, color:"4A5568", fontFace:"Calibri", italic:true, margin:0,
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – OUTLINE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite}});
addHeader(s, "Presentation Outline", "What we will cover today");
const topics = [
["01", "Unmet Need – Why Weekly Insulin?"],
["02", "What is Icodec? Pharmacology & Mechanism"],
["03", "Pharmacokinetics & Half-Life"],
["04", "ONWARDS Clinical Trial Program Overview"],
["05", "Efficacy Results (HbA1c, Fasting Glucose)"],
["06", "Safety – Hypoglycemia Profile"],
["07", "Dosing, Titration & Practical Use"],
["08", "Special Populations"],
["09", "Regulatory Status & IcoSema Combination"],
["10", "Key Takeaways"],
];
topics.forEach(([num, text], i) => {
const col = i < 5 ? 0 : 1;
const row = i % 5;
const x = col === 0 ? 0.3 : 5.2;
const y = 1.2 + row * 0.8;
s.addShape(pres.ShapeType.rect, {
x, y, w: 0.5, h: 0.5,
fill: { color: C.teal }, line: { color: C.teal },
});
s.addText(num, {
x, y: y + 0.05, w: 0.5, h: 0.4,
fontSize: 14, bold: true, color: C.white, fontFace: "Calibri",
align: "center", margin: 0,
});
s.addText(text, {
x: x + 0.58, y: y + 0.08, w: 4.3, h: 0.38,
fontSize: 13, color: C.textDark, fontFace: "Calibri", margin: 0, valign: "middle",
});
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – UNMET NEED
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "The Unmet Need", "Why do we need a once-weekly basal insulin?");
// stat boxes
const stats = [
{ val: "~50%", label: "of patients on daily basal\ninsulin miss doses" },
{ val: "1 in 3", label: "patients fear\nhypoglycemia" },
{ val: "Low", label: "adherence to daily\ninjection regimens" },
{ val: "365", label: "injections/year\nvs. only 52 with icodec" },
];
stats.forEach(({ val, label }, i) => {
const x = 0.25 + i * 2.38;
s.addShape(pres.ShapeType.rect, { x, y: 1.2, w: 2.1, h: 1.5, fill:{color:C.navy}, line:{color:C.teal} });
s.addText(val, { x, y: 1.25, w: 2.1, h: 0.75, fontSize: 30, bold:true, color: C.amber, fontFace:"Calibri", align:"center", margin:0 });
s.addText(label, { x, y: 1.95, w: 2.1, h: 0.7, fontSize: 11, color: C.light, fontFace:"Calibri", align:"center", margin:4 });
});
s.addText("Current Challenges with Daily Basal Insulin:", {
x:0.3, y:2.9, w:9.4, h:0.35,
fontSize:14, bold:true, color:C.teal, fontFace:"Calibri", margin:0,
});
const bullets = [
"Injection fatigue: patients require daily subcutaneous injections for life",
"Treatment burden reduces quality of life and contributes to psychological insulin resistance",
"Suboptimal adherence leads to poor glycemic control, increasing complication risk",
"A once-weekly formulation could transform basal insulin delivery — similar to the shift seen with weekly GLP-1 receptor agonists",
];
const bItems = bullets.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: 12, color: C.textDark, fontFace: "Calibri" },
}));
s.addText(bItems, { x:0.4, y:3.28, w:9.2, h:1.95, valign:"top" });
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – WHAT IS ICODEC
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "What is Insulin Icodec?", "Pharmacology & Mechanism of Action");
// left column
s.addShape(pres.ShapeType.rect, {x:0.25,y:1.15,w:4.6,h:4.2,fill:{color:"EFF6FF"},line:{color:"BFDBFE"}});
s.addText("Structural Design", { x:0.35,y:1.2,w:4.4,h:0.4, fontSize:14,bold:true,color:C.teal,fontFace:"Calibri",margin:0 });
const structBullets = [
"Modified human insulin analogue",
"3 amino acid substitutions alter receptor binding kinetics",
"C18 fatty diacid chain attached via linker — enables strong reversible albumin binding",
"Albumin binding protects from degradation and extends half-life to ~1 week",
"Slow dissociation from albumin maintains steady plasma insulin levels",
"Soluble formulation — no suspension needed, no mixing required",
"Administered subcutaneously, once weekly, on any fixed day of the week",
];
const sItems = structBullets.map((t, i) => ({
text: t,
options: { bullet:{type:"bullet"}, breakLine: i < structBullets.length-1, fontSize:11, color:C.textDark, fontFace:"Calibri" },
}));
s.addText(sItems, { x:0.35, y:1.65, w:4.4, h:3.6, valign:"top" });
// right column
s.addShape(pres.ShapeType.rect, {x:5.15,y:1.15,w:4.6,h:4.2,fill:{color:"F0FDF4"},line:{color:"BBF7D0"}});
s.addText("Mechanism of Action", { x:5.25,y:1.2,w:4.4,h:0.4, fontSize:14,bold:true,color:C.green,fontFace:"Calibri",margin:0 });
const mechBullets = [
"Binds insulin receptor (same as endogenous insulin)",
"Activates PI3K / Akt pathway → GLUT4 translocation → glucose uptake in muscle & fat",
"Suppresses hepatic glucose production (glycogenolysis & gluconeogenesis)",
"Stimulates glycogen synthesis",
"Inhibits lipolysis and ketogenesis",
"Flat pharmacodynamic profile — avoids peaks & troughs of daily insulins",
"Lower glycemic variability compared to once-daily analogues",
];
const mItems = mechBullets.map((t, i) => ({
text: t,
options: { bullet:{type:"bullet"}, breakLine: i < mechBullets.length-1, fontSize:11, color:C.textDark, fontFace:"Calibri" },
}));
s.addText(mItems, { x:5.25, y:1.65, w:4.4, h:3.6, valign:"top" });
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PHARMACOKINETICS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.navy},line:{color:C.navy}});
addHeader(s, "Pharmacokinetics & Half-Life", "Why once-weekly dosing works");
const pkData = [
{ label: "Half-Life (t½)", value: "~196 hours (~8 days)", icon: "⏱" },
{ label: "Albumin Binding", value: ">99% — protects from clearance", icon: "🔗" },
{ label: "Time to Steady State", value: "2–3 weeks after initiation", icon: "📈" },
{ label: "Distribution Volume", value: "~5 L (confined to vascular space)", icon: "💧" },
{ label: "Route", value: "Subcutaneous injection only", icon: "💉" },
{ label: "Renal Adjustment", value: "Not required (post hoc ONWARDS 1-5)", icon: "🫘" },
];
pkData.forEach(({ label, value }, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.3 + col * 3.2;
const y = 1.25 + row * 1.65;
s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 1.4, fill:{color:"0F3460"}, line:{color:C.teal} });
s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 0.38, fill:{color:C.teal}, line:{color:C.teal} });
s.addText(label, { x:x+0.08, y:y+0.04, w:2.84, h:0.3, fontSize:11, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
s.addText(value, { x:x+0.1, y:y+0.46, w:2.8, h:0.88, fontSize:12, color:C.light, fontFace:"Calibri", margin:4, valign:"middle" });
});
s.addShape(pres.ShapeType.rect, {x:0.3,y:4.6,w:9.4,h:0.65,fill:{color:"162040"},line:{color:C.amber}});
s.addText("Key Insight: The prolonged half-life (~8 days) means steady-state is reached in 2-3 weeks, and the insulin remains active for ~5 days after a missed dose — providing a safety buffer unmatched by any daily basal insulin.", {
x:0.4, y:4.63, w:9.2, h:0.58, fontSize:11, color:C.amber, fontFace:"Calibri", italic:true, margin:2,
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – ONWARDS PROGRAM
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "ONWARDS Clinical Trial Program", "6 Phase 3a global trials | ~4,000 participants");
// Table header
const cols = [0.15, 1.55, 2.8, 4.3, 5.7, 7.4];
const colW = [1.3, 1.2, 1.45, 1.35, 1.65, 2.4];
const headers = ["Trial", "N", "Population", "Duration", "Comparator", "Primary Outcome (HbA1c Δ)"];
headers.forEach((h, i) => {
s.addShape(pres.ShapeType.rect, { x:cols[i], y:1.15, w:colW[i], h:0.4, fill:{color:C.navy}, line:{color:C.navy} });
s.addText(h, { x:cols[i]+0.04, y:1.16, w:colW[i]-0.08, h:0.37, fontSize:9.5, bold:true, color:C.white, fontFace:"Calibri", margin:0, valign:"middle" });
});
const rows = [
["ONWARDS 1", "984", "T2D, insulin-naïve", "78 wks", "Glargine U100", "Icodec -1.55% vs Glargine -1.35% ✓"],
["ONWARDS 2", "526", "T2D, switching from daily basal", "26 wks", "Degludec", "Icodec -1.17% vs Degludec -1.10% ✓"],
["ONWARDS 3", "588", "T2D, insulin-naïve", "26 wks", "Degludec", "Icodec -1.57% vs Degludec -1.29% ✓✓"],
["ONWARDS 4", "582", "T2D, basal-bolus regimen", "26 wks", "Glargine U100", "Icodec -1.16% vs Glargine -1.18% ✓"],
["ONWARDS 5", "1,085", "T2D, real-world, app-guided", "52 wks", "Glargine/Degludec", "Icodec -1.68% vs basal -1.31% ✓✓"],
["ONWARDS 6", "583", "T1D + basal-bolus", "52 wks", "Degludec", "Icodec -0.47% vs Degludec -0.51% ✓"],
];
const rowColors = ["FFFFFF", "EFF6FF", "FFFFFF", "EFF6FF", "FFFFFF", "EFF6FF"];
rows.forEach((row, ri) => {
const y = 1.55 + ri * 0.56;
const bg = ri === 5 ? "FFF7ED" : rowColors[ri]; // highlight T1D row
row.forEach((cell, ci) => {
s.addShape(pres.ShapeType.rect, { x:cols[ci], y, w:colW[ci], h:0.53, fill:{color:bg}, line:{color:"CBD5E1"} });
s.addText(cell, {
x:cols[ci]+0.04, y:y+0.02, w:colW[ci]-0.08, h:0.49,
fontSize: ci === 5 ? 9 : 10,
color: ri === 5 ? "B45309" : C.textDark,
bold: ci === 0,
fontFace:"Calibri", margin:0, valign:"middle",
});
});
});
s.addText("✓ Non-inferior ✓✓ Superior ONWARDS 6 (T1D): higher hypoglycemia rate noted", {
x:0.15,y:5.0,w:9.7,h:0.25,fontSize:9,color:C.gray,fontFace:"Calibri",italic:true,margin:0,
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – EFFICACY
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Efficacy Results", "HbA1c reduction across ONWARDS trials");
// big summary callouts
const callouts = [
{ title:"HbA1c Reduction", body:"1.2–1.7% reduction in T2D\n(baseline 8.5–9.0%)", color:C.teal },
{ title:"vs Daily Insulin", body:"Non-inferior in all 6 trials\nSuperior in ONWARDS 1, 3, 5", color:C.navy },
{ title:"Fasting Glucose", body:"Significant reductions vs baseline\nComparable to daily basal insulin", color:C.green },
];
callouts.forEach(({ title, body, color }, i) => {
const x = 0.25 + i * 3.2;
s.addShape(pres.ShapeType.rect, { x, y:1.15, w:2.9, h:1.3, fill:{color}, line:{color} });
s.addText(title, { x:x+0.1, y:1.2, w:2.7, h:0.38, fontSize:13, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
s.addText(body, { x:x+0.1, y:1.56, w:2.7, h:0.82, fontSize:11, color:C.light, fontFace:"Calibri", margin:4, valign:"middle" });
});
s.addText("Detailed Trial Efficacy Summary:", {
x:0.3,y:2.58,w:9.4,h:0.35, fontSize:13,bold:true,color:C.teal,fontFace:"Calibri",margin:0,
});
const efItems = [
{ text:"ONWARDS 1 (78 wks, T2D naïve): Icodec -1.55% vs Glargine U100 -1.35% — superior (p<0.001), JAMA 2023", options:{bullet:{type:"bullet"},breakLine:true,fontSize:11,color:C.textDark,fontFace:"Calibri"} },
{ text:"ONWARDS 3 (26 wks, T2D naïve): Icodec -1.57% vs Degludec -1.29% — superior (ETD -0.2%, p=0.002), JAMA 2023", options:{bullet:{type:"bullet"},breakLine:true,fontSize:11,color:C.textDark,fontFace:"Calibri"} },
{ text:"ONWARDS 5 (52 wks, real-world with dosing app): Icodec -1.68% vs daily basal -1.31% — superior (p<0.001), Ann Intern Med 2023", options:{bullet:{type:"bullet"},breakLine:true,fontSize:11,color:C.textDark,fontFace:"Calibri"} },
{ text:"ONWARDS 2, 4 (switching / basal-bolus): non-inferior to degludec and glargine respectively — Lancet, NEJM 2023", options:{bullet:{type:"bullet"},breakLine:true,fontSize:11,color:C.textDark,fontFace:"Calibri"} },
{ text:"ONWARDS 6 (T1D, 52 wks): non-inferior to degludec (-0.47% vs -0.51%) — Lancet 2023", options:{bullet:{type:"bullet"},breakLine:false,fontSize:11,color:C.textDark,fontFace:"Calibri"} },
];
s.addText(efItems, { x:0.4, y:2.95, w:9.2, h:2.3, valign:"top" });
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – HYPOGLYCEMIA SAFETY
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Safety: Hypoglycemia Profile", "Critical consideration before prescribing icodec");
// T2D column
s.addShape(pres.ShapeType.rect, {x:0.2,y:1.15,w:4.5,h:3.85,fill:{color:"F0FDF4"},line:{color:"86EFAC"}});
s.addShape(pres.ShapeType.rect, {x:0.2,y:1.15,w:4.5,h:0.42,fill:{color:C.green},line:{color:C.green}});
s.addText("TYPE 2 DIABETES (T2D)", {x:0.3,y:1.18,w:4.3,h:0.35,fontSize:12,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const t2dBullets = [
"Severe hypoglycemia: rare and comparable to daily insulins",
"Clinically significant hypoglycemia (Level 2, <54 mg/dL): slightly higher vs daily comparators — rate ratio ~1.6–1.9",
"Absolute rates remain low: 0.14–0.73 events/patient-year vs 0.06–0.27 for comparators",
"ONWARDS 3: 0.35 vs 0.12 events/patient-year (p=0.01)",
"Numerically higher hypoglycemia attributable to better HbA1c reduction (lower overall glucose)",
"No excess hypoglycemia in elderly (≥65 years) — post hoc ONWARDS 1–5",
"Transient hypoglycemia risk possible in weeks 1–4 during dose uptitration",
];
const t2dItems = t2dBullets.map((t,i) => ({text:t,options:{bullet:{type:"bullet"},breakLine:i<t2dBullets.length-1,fontSize:10.5,color:C.textDark,fontFace:"Calibri"}}));
s.addText(t2dItems, {x:0.32,y:1.65,w:4.26,h:3.2,valign:"top"});
// T1D column
s.addShape(pres.ShapeType.rect, {x:5.1,y:1.15,w:4.65,h:3.85,fill:{color:"FFF1F2"},line:{color:"FECACA"}});
s.addShape(pres.ShapeType.rect, {x:5.1,y:1.15,w:4.65,h:0.42,fill:{color:C.red},line:{color:C.red}});
s.addText("TYPE 1 DIABETES (T1D) ⚠", {x:5.2,y:1.18,w:4.45,h:0.35,fontSize:12,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const t1dBullets = [
"ONWARDS 6: Significantly higher hypoglycemia with icodec vs degludec",
"Combined Level 2 or 3 hypoglycemia: 19.9 vs 10.4 events/patient-year",
"Risk ratio: 1.9 (95% CI 1.5–2.3, p<0.0001)",
"Higher severe hypoglycemia also observed",
"Possible cause: less flexible dose adjustment with once-weekly dosing",
"Icodec NOT recommended as first-line in T1D",
"Use in T1D only under specialist guidance with close monitoring",
"CGM use is strongly recommended if prescribed in T1D",
];
const t1dItems = t1dBullets.map((t,i) => ({text:t,options:{bullet:{type:"bullet"},breakLine:i<t1dBullets.length-1,fontSize:10.5,color:C.textDark,fontFace:"Calibri"}}));
s.addText(t1dItems, {x:5.22,y:1.65,w:4.41,h:3.2,valign:"top"});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – DOSING & TITRATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Dosing & Titration Guide", "Practical prescribing information");
// Left: dosing info
addCard(s, 0.2, 1.15, 4.7, 2.6, "Starting Dose", C.teal, [
"Insulin-naive T2D: 70 Units once weekly",
"Switching from once-daily basal: same total weekly dose (e.g., 10 U/day → 70 U/week)",
"Switching from twice-daily basal: calculate total daily dose × 7",
"With switching: consider 50% one-time additional loading dose at initiation (per ONWARDS protocol)",
"Administer on any fixed day of the week, at any time of day",
"Injection sites: abdomen, thigh, upper arm (rotate sites)",
], 10.5);
addCard(s, 0.2, 3.85, 4.7, 1.55, "Storage & Formulation", C.gray, [
"Available as: 100 U/mL, 3 mL pen cartridge (Awiqli® FlexTouch pen)",
"Unopened: refrigerate (2-8°C); In-use: room temperature up to 56 days",
"Do NOT freeze or expose to direct heat/sunlight",
], 10.5);
// Right: titration table
s.addShape(pres.ShapeType.rect, {x:5.05,y:1.15,w:4.75,h:4.25,fill:{color:"EFF6FF"},line:{color:"BFDBFE"}});
s.addShape(pres.ShapeType.rect, {x:5.05,y:1.15,w:4.75,h:0.38,fill:{color:C.navy},line:{color:C.navy}});
s.addText("Weekly Dose Titration (Best Balance: Target 80–130 mg/dL)", {x:5.12,y:1.18,w:4.6,h:0.32,fontSize:9.5,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const titRows = [
["Pre-breakfast SMBG", "Dose Adjustment", ""],
["< 60 mg/dL (< 3.3 mmol/L)", "Decrease by 21 U", "🔻"],
["60–80 mg/dL (3.3–4.4 mmol/L)", "Decrease by 7 U", "🔻"],
["80–130 mg/dL (4.4–7.2 mmol/L)", "No change ✓", ""],
["130–180 mg/dL (7.2–10.0 mmol/L)", "Increase by 7 U", "🔺"],
["> 180 mg/dL (> 10.0 mmol/L)", "Increase by 21 U", "🔺"],
];
const titColors = [C.navy, "FEF2F2", "FEF2F2", "F0FDF4", "FFF7ED", "FFF7ED"];
const titTextColors = [C.white, C.textDark, C.textDark, C.textDark, C.textDark, C.textDark];
titRows.forEach((row, ri) => {
const y = 1.55 + ri * 0.56;
[0, 1].forEach((ci) => {
s.addShape(pres.ShapeType.rect, {x: 5.05 + ci*2.6, y, w:2.58, h:0.54, fill:{color:titColors[ri]}, line:{color:"CBD5E1"}});
s.addText(row[ci], {x:5.1+ci*2.6,y:y+0.04,w:2.5,h:0.44,fontSize:10,bold:ri===0,color:titTextColors[ri],fontFace:"Calibri",margin:0,valign:"middle"});
});
});
s.addText("Titrate dose every week based on average of 3 pre-breakfast glucose readings", {
x:5.05,y:4.98,w:4.75,h:0.3,fontSize:9,color:C.gray,fontFace:"Calibri",italic:true,margin:2,
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – SPECIAL POPULATIONS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Special Populations", "Dose adjustments & precautions");
const pops = [
{ title: "Renal Impairment", color: C.teal, lines: [
"Phase I PK trial: no clinically relevant difference in icodec exposure across eGFR strata",
"Post-hoc ONWARDS 1–5: consistent efficacy and hypoglycemia outcomes regardless of kidney function",
"No dose adjustment required — monitor glucose closely as renal impairment reduces insulin clearance",
]},
{ title: "Hepatic Impairment", color: C.navy, lines: [
"Phase I trial (NCT04597697): no clinically relevant PK differences in mild/moderate hepatic impairment",
"No specific dose adjustment required",
"Caution: reduced hepatic clearance may increase insulin exposure — monitor for hypoglycemia",
]},
{ title: "Elderly (≥65 years)", color: C.green, lines: [
"Post-hoc ONWARDS 1–5: consistent HbA1c reduction vs comparator across all age groups",
"No excess hypoglycemia risk vs younger patients",
"No blanket dose adjustment required; individualise based on glycemic targets",
]},
{ title: "Type 1 Diabetes", color: C.red, lines: [
"Non-inferior glycemic control vs degludec (ONWARDS 6)",
"Significantly higher hypoglycemia risk — rate ratio 1.9 vs degludec (Lancet 2023)",
"Use with caution; CGM strongly recommended; not first-line in T1D",
]},
{ title: "Pregnancy", color: "7C3AED", lines: [
"No data in pregnant women — NOT recommended during pregnancy",
"Switch to standard insulin regimen when planning pregnancy or upon conception",
"Long half-life makes dosing inflexibility during labour/delivery a concern",
]},
{ title: "Paediatrics", color: "0891B2", lines: [
"Not approved for use in children or adolescents",
"Clinical trials in paediatric population ongoing",
"Current use restricted to adults (≥18 years)",
]},
];
pops.forEach(({ title, color, lines }, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.2 + col * 3.25;
const y = 1.15 + row * 2.12;
s.addShape(pres.ShapeType.rect, {x,y,w:3.1,h:0.38,fill:{color},line:{color}});
s.addText(title,{x:x+0.06,y:y+0.04,w:2.98,h:0.3,fontSize:11,bold:true,color:C.white,fontFace:"Calibri",margin:0});
s.addShape(pres.ShapeType.rect, {x,y:y+0.38,w:3.1,h:1.68,fill:{color:C.offWhite},line:{color:"CBD5E1"}});
const items = lines.map((t,ii)=>({text:t,options:{bullet:{type:"bullet"},breakLine:ii<lines.length-1,fontSize:10,color:C.textDark,fontFace:"Calibri"}}));
s.addText(items,{x:x+0.1,y:y+0.44,w:2.9,h:1.56,valign:"top"});
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – REGULATORY STATUS & ICOSEMA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.navy},line:{color:C.navy}});
addHeader(s, "Regulatory Status & IcoSema", "Global approvals and next-generation combination");
// Regulatory timeline
s.addShape(pres.ShapeType.rect, {x:0.2,y:1.15,w:9.6,h:0.38,fill:{color:C.teal},line:{color:C.teal}});
s.addText("Global Regulatory Timeline (Awiqli®)", {x:0.3,y:1.18,w:9.4,h:0.32,fontSize:13,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const regItems = [
{ year:"2023", event:"EU approval (EMA): Awiqli® approved for T2D adults — first ever once-weekly basal insulin approved globally" },
{ year:"2023", event:"Canada (Health Canada): Awiqli® approved for T2D adults" },
{ year:"2024", event:"Japan & China: Awiqli® approved for T2D and T1D" },
{ year:"2024", event:"USA (FDA): Complete Response Letter issued — Novo Nordisk resubmitted BLA September 2025" },
{ year:"2025", event:"USA: BLA resubmission based on full ONWARDS T2D program (~4000 patients across 5 trials); decision pending" },
];
regItems.forEach(({ year, event }, i) => {
const y = 1.62 + i * 0.5;
s.addShape(pres.ShapeType.rect, {x:0.2,y,w:0.85,h:0.42,fill:{color:C.amber},line:{color:C.amber}});
s.addText(year,{x:0.22,y:y+0.04,w:0.8,h:0.34,fontSize:11,bold:true,color:C.navy,fontFace:"Calibri",align:"center",margin:0});
s.addText(event,{x:1.15,y:y+0.04,w:8.8,h:0.38,fontSize:11,color:C.light,fontFace:"Calibri",margin:0,valign:"middle"});
});
// IcoSema
s.addShape(pres.ShapeType.rect, {x:0.2,y:4.25,w:9.6,h:0.38,fill:{color:"7C2D12"},line:{color:"7C2D12"}});
s.addText("IcoSema — The Next Step: Once-Weekly Insulin + GLP-1 Combination", {x:0.3,y:4.28,w:9.4,h:0.32,fontSize:12,bold:true,color:C.amber,fontFace:"Calibri",margin:0});
s.addText([
{text:"IcoSema = Insulin Icodec + Semaglutide in a single weekly injection | ", options:{fontSize:11,color:C.light,fontFace:"Calibri"}},
{text:"COMBINE 1 trial (Lancet Diabetes Endocrinol, 2025): IcoSema superior to icodec alone | ", options:{fontSize:11,color:C.light,fontFace:"Calibri"}},
{text:"COMBINE 2 (Diabetologia, 2025): IcoSema superior to semaglutide alone in T2D", options:{fontSize:11,color:C.light,fontFace:"Calibri"}},
], {x:0.25,y:4.68,w:9.5,h:0.65,valign:"middle"});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – ADVANTAGES & LIMITATIONS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Advantages & Limitations", "Balanced clinical perspective");
// Advantages
s.addShape(pres.ShapeType.rect, {x:0.2,y:1.15,w:4.6,h:0.42,fill:{color:C.green},line:{color:C.green}});
s.addText("✅ Advantages", {x:0.3,y:1.18,w:4.4,h:0.36,fontSize:14,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const advantages = [
"Only 52 injections/year vs 365 — dramatically reduces injection burden",
"Non-inferior or superior HbA1c reduction vs all daily basal insulin comparators",
"Flat, consistent insulin exposure — less glycemic variability",
"Convenient — can be taken any fixed day, any time of day",
"No dose adjustment needed for renal or hepatic impairment",
"Long acting provides ~5 days activity even after a missed dose",
"Dosing app available to guide weekly titration (ONWARDS 5)",
"Compatible with basal-bolus regimens (ONWARDS 4)",
"CGM-guided titration feasible (ONWARDS 9, 2025)",
];
const advItems = advantages.map((t,i)=>({text:t,options:{bullet:{type:"bullet"},breakLine:i<advantages.length-1,fontSize:11,color:C.textDark,fontFace:"Calibri"}}));
s.addText(advItems, {x:0.3,y:1.65,w:4.4,h:3.75,valign:"top"});
// Limitations
s.addShape(pres.ShapeType.rect, {x:5.2,y:1.15,w:4.6,h:0.42,fill:{color:C.red},line:{color:C.red}});
s.addText("⚠ Limitations & Cautions", {x:5.3,y:1.18,w:4.4,h:0.36,fontSize:14,bold:true,color:C.white,fontFace:"Calibri",margin:0});
const limitations = [
"Higher risk of hypoglycemia in T1D (RR 1.9 vs degludec, ONWARDS 6)",
"Slight increase in clinically significant hypoglycemia vs daily basal in T2D",
"Long half-life: harder to rapidly adjust dosing in acute illness",
"Steady-state takes 2–3 weeks — requires patience during initiation",
"Missed doses lead to delayed effect rather than immediate glucose rise — may delay patient awareness",
"Not approved in pregnancy or paediatric patients",
"Higher cost vs existing basal analogues (CADTH review 2024)",
"US FDA approval still pending (BLA resubmitted Sept 2025)",
"Less flexibility for daily glucose-guided dose adjustment",
];
const limItems = limitations.map((t,i)=>({text:t,options:{bullet:{type:"bullet"},breakLine:i<limitations.length-1,fontSize:11,color:C.textDark,fontFace:"Calibri"}}));
s.addText(limItems, {x:5.3,y:1.65,w:4.4,h:3.75,valign:"top"});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – PATIENT SELECTION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.offWhite},line:{color:C.offWhite}});
addHeader(s, "Who is the Ideal Candidate?", "Patient selection for once-weekly insulin icodec");
const groups = [
{
title: "Good Candidates ✓",
color: C.green,
bg: "F0FDF4",
items: [
"T2D patients resistant to starting daily basal insulin",
"Patients with poor adherence to daily injections",
"Patients who prioritise convenience (travel, busy lifestyle)",
"Elderly T2D patients with stable glycemic control needs",
"Insulin-naïve T2D where simplicity aids initiation",
"T2D patients already on basal insulin seeking dose simplification",
"Patients using dosing apps / comfortable with weekly titration",
],
},
{
title: "Use with Caution ⚠",
color: C.amber,
bg: "FFFBEB",
items: [
"T1D — significantly higher hypoglycemia risk; specialist oversight needed",
"Patients with frequent or unpredictable meal timing (less dose flexibility)",
"Patients at high risk of severe hypoglycemia (hypoglycemia unawareness)",
"Patients with acute illness or planned surgery (difficult rapid adjustment)",
"Patients already well-controlled on daily basal (no added benefit)",
],
},
{
title: "Avoid / Contraindicated ✗",
color: C.red,
bg: "FFF1F2",
items: [
"Pregnant women — no safety data available",
"Patients < 18 years — not approved in paediatrics",
"Allergy to any component of the formulation",
"Diabetic ketoacidosis — requires short-acting insulin, not weekly basal",
],
},
];
groups.forEach(({ title, color, bg, items }, i) => {
const y = 1.15 + i * 1.45;
s.addShape(pres.ShapeType.rect, {x:0.2,y,w:9.6,h:0.38,fill:{color},line:{color}});
s.addText(title,{x:0.3,y:y+0.04,w:9.4,h:0.3,fontSize:12,bold:true,color:C.white,fontFace:"Calibri",margin:0});
s.addShape(pres.ShapeType.rect, {x:0.2,y:y+0.38,w:9.6,h:1.0,fill:{color:bg},line:{color:"CBD5E1"}});
const bItems = items.map((t,ii)=>({text:t,options:{bullet:{type:"bullet"},breakLine:ii<items.length-1,fontSize:10.5,color:C.textDark,fontFace:"Calibri"}}));
s.addText(bItems,{x:0.35,y:y+0.43,w:9.3,h:0.9,valign:"top"});
});
addFooter(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – KEY TAKEAWAYS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:5.625,fill:{color:C.navy},line:{color:C.navy}});
s.addShape(pres.ShapeType.rect, {x:0,y:0,w:0.15,h:5.625,fill:{color:C.amber},line:{color:C.amber}});
s.addShape(pres.ShapeType.rect, {x:0,y:1.0,w:10,h:0.06,fill:{color:C.teal},line:{color:C.teal}});
s.addText("Key Takeaways", {x:0.3,y:0.1,w:9.5,h:0.85,fontSize:32,bold:true,color:C.white,fontFace:"Calibri",margin:0,valign:"middle"});
const takeaways = [
{ num:"1", text:"Icodec is the world's first approved once-weekly basal insulin — a genuine paradigm shift in basal insulin delivery for T2D." },
{ num:"2", text:"Phase 3 ONWARDS program (6 trials, ~4,000 patients): non-inferior or superior HbA1c reduction vs all daily basal insulin comparators." },
{ num:"3", text:"Mechanism: strong reversible albumin binding via C18 fatty diacid chain gives ~8-day half-life and flat pharmacodynamic profile." },
{ num:"4", text:"Starting dose: 70 U/week in insulin-naïve T2D; titrate weekly by ±7–21 U based on pre-breakfast glucose (target 80–130 mg/dL)." },
{ num:"5", text:"T2D safety: slight increase in clinically significant hypoglycemia vs daily insulin, but severe hypoglycemia remains rare and comparable." },
{ num:"6", text:"T1D caution: hypoglycemia rate nearly doubled vs degludec (ONWARDS 6) — use only under specialist guidance with CGM." },
{ num:"7", text:"IcoSema (icodec + semaglutide, once weekly) is the next-generation combination — COMBINE 1 & 2 trials show superior efficacy (2025)." },
];
takeaways.forEach(({ num, text }, i) => {
const y = 1.18 + i * 0.6;
s.addShape(pres.ShapeType.rect, {x:0.25,y,w:0.45,h:0.48,fill:{color:C.teal},line:{color:C.teal}});
s.addText(num,{x:0.27,y:y+0.06,w:0.4,h:0.36,fontSize:14,bold:true,color:C.white,fontFace:"Calibri",align:"center",margin:0});
s.addText(text,{x:0.82,y:y+0.04,w:8.95,h:0.45,fontSize:11.5,color:C.light,fontFace:"Calibri",margin:0,valign:"middle"});
});
s.addShape(pres.ShapeType.rect, {x:0.2,y:5.25,w:9.6,h:0.22,fill:{color:"0A1F3C"},line:{color:C.amber}});
s.addText("References: ONWARDS 1-6 (Lancet, NEJM, JAMA, Ann Intern Med 2023) | Rosenstock et al. Endocr Rev 2024 | COMBINE 1-2 (Lancet Diabetes Endocrinol, Diabetologia 2025)", {
x:0.25,y:5.27,w:9.5,h:0.18,fontSize:7.5,color:C.gray,fontFace:"Calibri",margin:0,
});
addFooter(s, "Endocrinology Ward | Icodec (Awiqli®) | 2026");
}
// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/icodec-ppt/Icodec_Once_Weekly_Insulin.pptx" })
.then(() => console.log("✅ DONE: /home/daytona/workspace/icodec-ppt/Icodec_Once_Weekly_Insulin.pptx"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/icodec-ppt && node icodec.js
ls -lh /home/daytona/workspace/icodec-ppt/Icodec_Once_Weekly_Insulin.pptx
Icodec Once Weekly Insulin
Presentation · PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title | Bold navy/teal design — Icodec, Awiqli®, ONWARDS program |
| 2 | Outline | 10 numbered topics with teal boxes |
| 3 | Unmet Need | 4 stat callouts (365 vs 52 injections, adherence data) + barriers |
| 4 | Pharmacology & Mechanism | Two-column — structural design (C18 fatty diacid/albumin binding) + MOA (PI3K/Akt/GLUT4) |
| 5 | Pharmacokinetics | 6 dark PK cards — t½ ~196 hrs, steady state 2-3 wks, renal/hepatic info |
| 6 | ONWARDS Program Table | All 6 trials — N, population, duration, comparator, HbA1c Δ, T1D highlighted |
| 7 | Efficacy Results | 3 callout boxes + detailed trial-by-trial citations (JAMA, NEJM, Lancet 2023) |
| 8 | Hypoglycemia Safety | Split T2D (green, reassuring) vs T1D (red, warning) — rate ratios included |
| 9 | Dosing & Titration | Starting dose, switching rules + colour-coded titration table (80–130 mg/dL target) |
| 10 | Special Populations | 6-card grid: renal, hepatic, elderly, T1D, pregnancy, paediatrics |
| 11 | Regulatory & IcoSema | Timeline 2023–2025 (EU, Canada, Japan, FDA CRL, BLA resubmission) + COMBINE 1&2 trials |
| 12 | Advantages & Limitations | Green/red two-column balanced view |
| 13 | Patient Selection | Three-tier: ideal candidates / use with caution / avoid |
| 14 | Key Takeaways | 7 numbered points with full references bar |