Make a ppt with intresting slide back ground and add photos and diagrams to explain properly according to the given information Physiological Roles of Endocannabinoids Mediators of Endocannabinoid Action The lipophilic nature of THC delayed the identification of its mech- anism of action for many years. The first convincing evidence that its actions were mediated by a G protein-coupled receptor (GPCR) came from the pioneering work of Allyn Howlett and colleagues (Howlett et al., 1990; Howlett and Abood, 2017). These studies showed that THC and related synthetic cannabinoids inhibited adenylyl cyclase via a per- tussis toxin–sensitive GPCR and that this receptor was highly expressed in many brain regions, consistent with the psychotropic effects of THC. Subsequent autoradiographic mapping using high-affinity synthetic cannabinoids confirmed the widespread and high levels of this cann- abinoid receptor across the brain (Herkenham et al., 1991). This receptor (now designated as the CB1 cannabinoid receptor) was cloned and its distribution, actions, and regulation characterized (Howlett et al., 2002). Within a few years, a second cannabinoid receptor, the CB2 receptor, was cloned from an immune cell line. The psychoactivity after consumption of cannabis is likely mediated by CB1 cannabinoid receptors, whereas the immune modulatory effects are likely CB2 cannabinoid receptor medi- ated (Mackie, 2008). CB1 Cannabinoid Receptors CB1 receptors are highly expressed in presynaptic terminals of a sub- set of cortical GABAergic interneurons (often coexpressing the neuro- modulator, CCK) and at lower levels in many other nerve terminals (Hu and Mackie, 2015). The role of these presynaptic as well as somatic CB1 receptors in mediating synaptic plasticity and neuronal excitability is discussed below. CB1 receptor expression changes with age, potentially explaining effects of cannabinoids on the developing CNS (Bara et al., 2021). CB1 receptors are also expressed in nonneuronal cell types such as astrocytes and outside the brain in hepatocytes, adipocytes, skeletal mus- cle, and endocrine cells (Covelo et al., 2021; Fong and Heymsfield, 2009). CB2 Cannabinoid Receptors CB2 receptors are highly expressed in immune cells (including micro- glia) and are expressed at lower levels in other cell types such as neu- rons, endothelial cells, pericytes, and keratinocytes. CB2 receptors may mediate immunomodulatory effects of THC and could be important for reducing drug craving and pain. CB1 and CB2 Receptor Signaling CB1 and CB2 are GPCRs and usually couple to inhibitory G proteins and arrestins, although coupling to Gs to activate adenylyl cyclase or Gq/11 to activate PLC has been observed in some experimental conditions. As Gi-coupled receptors, the canonical CB1 and CB2 signaling pathways include inhibition of adenylyl cyclase and voltage-gated Ca2+ channels and activation of mitogen-activated protein kinases (MAP kinases) and inwardly rectifying K+ channels (Howlett et al., 2002; Mackie, 2008). Both CB1 and CB2 receptors show functional selectivity or biased agonism, whereby certain ligands favor activating specific subsets of G proteins and/or arrestin signaling pathways. This functional selectivity needs to be considered when evaluating the behavioral and physiological conse- quences of structurally diverse cannabinoids acting at cannabinoid recep- tors, particularly CB2 receptors (Atwood et al., 2012). Non-CB1/CB2 Targets of Endocannabinoids Endocannabinoids and some synthetic ligands can engage other targets in addition to CB1 and CB2, including ion channels (discussed below), peroxisome proliferator-activated receptors (PPARs), and synthetic cannabinoid receptor ligands. Among PPARs, PPARα and PPARγ are activated by eCBs and may contribute to the pharmacological effects of cannabinoids (Pistis and O’Sullivan, 2017). Genes targeted by PPARs include those involved in the regulation of metabolism, inflammation, neuroprotection, and cellular differentiation. eCBs as Retrograde Messengers. Endocannabinoids are major retro- grade messengers in the nervous system and mediate several forms of synaptic plasticity (Chevaleyre et al., 2006; Ohno-Shosaku and Kano, 2014). As retrograde messengers, eCBs are synthesized “on demand” by the postsynaptic neuron and travel retrogradely across the synapse to activate presynaptic CB1 receptors, suppressing neurotransmission from CB1-expressing nerve terminals (Figure 26–3). Depending on the duration of eCB production, eCB-mediated synaptic plasticity may be transient or sustained (Figure 26–4). Both forms of plasticity involve stimulation of the postsynaptic neuron (by depolarization and Ca2+ influx via voltage-sensitive Ca2+ channels and/or activation of a Gq/11- linked GPCR and release of Ca2+ from intracellular stores). This activates diacylglycerol lipase α to produce 2-AG (Figures 26–2 and 26–3). Two well-described transient forms of eCB-mediated synaptic plasticity are depolarization-stimulated suppression of excitation (if excitatory transmis- sion is suppressed) or depolarization-stimulated suppression of inhibition (if inhibitory transmission is suppressed) and metabotropic-stimulated suppression of excitation (if excitatory transmission is suppressed) or metabotropic-stimulated suppression of inhibition (if inhibitory trans- mission is suppressed). These transient forms of plasticity start within a second of stimulation of the postsynaptic neurons and can last for tens of seconds (Wilson et al., 2001). Sustained low-frequency activity of excitatory synapses may lead to a persistent eCB-mediated long-term depression (LTD) (Chevaleyre et al., 2006). Induction of LTD depends on sustained eCB production. However, established LTD is maintained independent of eCBs or CB1 receptors. The network implications of eCB-mediated synaptic plasticity depend on the activity of the CB1-expressing synapse: If the synapse is not active, there will be little effect; it also depends on whether the inhibited syn- apse is excitatory or inhibitory in nature and the relationship between the inputs driving eCB synthesis and the presynaptic terminals expressing CB1 receptors (Soltesz et al., 2015). Nonretrograde Effects of eCBs on Neuronal Excitability. In addition to their role as retrograde messengers, eCBs may modify neuronal excit- ability in diverse ways. The best characterized include: • Direct modulation of ion channels • Activation of G protein-coupled inwardly rectifying K+ channels (GIRKs) • Enhancement of a hyperpolarization-activated cation channel (Ih) Endocannabinoids may directly modulate ion channels, including 5HT3, TRPV1, GABAA, glycine, and others (Soderstrom et al., 2017). When relating in vitro reports to what occurs in vivo, it is important to appreciate that some of these reported effects only occur with high eCB concentrations that are unlikely to be reached in vivo. Levels of eCBs produced by intense neuronal activity activate somatic CB1 receptors to open GIRK channels to hyperpolarize the neuron (Bacci et al., 2004). Ih is a cation channel regulating dendritic excitability and playing a cen- tral role in synaptic plasticity and learning. Enhancing Ih activity impairs learning, and Ih activation by CB1 receptors is a possible mechanism for THC impairment of learning. CB1 enhancement of Ih involves a signaling cascade consisting of c-Jun-N-terminal kinase 1 (JNK1), guanylyl cyclase, cyclic GMP, and hyperpolarization-activated cyclic nucleotide-gated (HCN) channels (Maroso et al., 2016). Physiological Roles of Endocannabinoids Reward Intoxication with cannabis does produce a state of mild euphoria, and Stress and Its Resolution cannabis possesses addiction potential, albeit less than what is seen with Regular users of cannabis cite its ability to reduce stress and anxiety as a drugs such as opiates. Rodents will self-administer cannabis vapor and primary motivation for its use. Similarly, eCB signaling can reduce stress will exert effort to seek cannabis vapor, both hallmark traits of substances and anxiety. Research in both humans and rodents has found that expo- that are reinforcing (Ferland and Hurd, 2020; Freels et al., 2020). The abil- sure to stress results in the mobilization of eCBs, both in the brain and ity of cannabinoids to enhance reward is mediated by their actions in the the periphery, and that glucocorticoids are an integral mediator in this ventral tegmental area (VTA; see Figure 26–5), a small brain nucleus with response. This release of eCBs following stress is important for the ter- a high density of dopaminergic neurons. CB1 receptors in the VTA are mination of the stress response. As such, increasing eCB function can primarily localized to the axon terminals of inhibitory GABA neurons restrict or limit responses to stress. Within the brain, eCBs gate stress- that impinge upon VTA dopaminergic neurons. Activation of CB1 in the induced excitation in brain regions such as the amygdala (Figure 26–5), VTA inhibits GABA release, which disinhibits dopaminergic neurons, which restricts the development of anxiety and the release of stress hor- promoting the release of dopamine within the nucleus accumbens, a pro- mones (Gray et al., 2015; Morena et al., 2016). CB1 receptors are also cess known to be central for the encoding of rewarding salient events and localized to sympathetic nerve terminals in the periphery, and activation for the motivation to engage in rewarding actions (Dubreucq et al., 2013; of these receptors by eCBs following stress exposure is important for Wenzel and Cheer, 2018). Reinforcing stimuli, including both cocaine restricting the autonomic response to stress. Exposure to chronic stress and voluntary exercise, require eCB signaling in the VTA to produce impairs eCB function. A loss of the ability of eCB signaling to restrict their rewarding effects. Disruption of eCB signaling inhibits motivation stress responses likely contributes to the development of stress-induced for rewarding stimuli and reduces engagement in pleasurable activities. allostatic load (Morena et al., 2016). Human studies have found that the In humans, the elevated AEA signaling associated with the P129T variant P129T genetic variant in FAAH, which reduces FAAH and elevates AEA of FAAH increases neural reactivity of the nucleus accumbens to reward- signaling, is associated with lower levels of trait anxiety, enhanced top- ing cues (Hariri et al., 2009). Pharmacological antagonism of CB1 recep- down emotional control, improved inhibition of fear, and blunted neu- tors has been linked to the development of depression with anhedonia, an ral and physiological responses to stress (Hariri et al., 2009; Petrie et al., https://ebooksmedicine.net/ inability to experience pleasure (Christensen et al., 2007 Appetite and Metabolism been noted in rodent models of obesity and in human obese populations. Elevated eCB activity can promote the development of obesity and met- An increase in the consumption of sweet, palatable food, often referred to abolic disorders; conversely, blockade of CB1 receptors produces anorec- as “the munchies,” is one of the prototypical effects of cannabis consump- tic effects, weight loss, and the prevention of metabolic consequences of tion in humans. eCB signaling is prominent within feeding circuits in the obesity, such as insulin resistance and the development of type 2 diabetes brain (see Figure 26–5). Within the hypothalamus, eCB levels fluctuate in in multiple species including humans (Lau et al., 2017; Ruiz de Azua response to nutritional status, where fasting elevates eCB levels and subse- and Lutz, 2019). Curiously, however, cannabis use in humans is generally quent feeding and satiety decrease these levels (Lau et al., 2017). eCB sig- not associated with obesity. Several large-scale population studies report naling regulates feeding through regulation of the excitability of neurons that cannabis users have a lower body mass index and lower rates of within the arcuate nucleus of the hypothalamus, which are known to drive obesity than noncannabis users. Because THC is a partial agonist at CB1 food intake (the AgRP/NPY neurons) and inhibit food intake (the POMC/ receptors, THC may occlude CB1 activation by 2-AG, a full agonist and MCH4 neurons). Thus, eCB signaling can rapidly increase or suppress thus limit some of the negative metabolic effects driven by elevated eCB food-seeking behavior and consumption. eCB signaling is also embedded function (Le Foll et al., 2013; Sidney, 2016). into canonical hormonal cascades involved in regulating feeding. Leptin, a potent anorectic peptide produced by adipose tissue, rapidly suppresses Pain hypothalamic eCB signaling to inhibit feeding. Hunger-stimulating hor- Management of chronic pain and chemotherapy-induced nausea are the mones, such as ghrelin or glucocorticoids, promote food intake via recruit- most common and most scientifically established therapeutic uses of ment of eCB signaling (Balsevich et al., 2018; Lau et al., 2017). cannabis in humans (Committee on the Health Effects of Marijuana, 2017; Peripheral eCB signaling also influences food intake and metabolic see also Chapter 54). CB1 receptors are distributed throughout multiple processes (Maccarrone et al., 2015; Ruiz de Azua and Lutz, 2019). Stimu- levels of pain circuits, including cortical, midbrain, spinal, and periph- lation of cannabinoid receptors on vagal afferents and sympathetic nerve eral sites of action. CB1 receptors are synthesized within many dorsal terminals can enhance food intake. Excess eCB activity in peripheral root ganglion neurons and transported to peripheral afferent fibre nerve organs can have adverse effects on metabolic processes. Activation of terminals. Peripheral eCB signaling can suppress pain initiation directly hepatic CB1 receptors promotes the development of fatty liver and hepatic through activation of these receptors (Piomelli et al., 2014). eCBs also can steatosis. Adipose tissue CB1 receptor activation can augment adipo- act on CB1 receptors, and in some situations at TRPV1 receptors, within genesis and fat accumulation. Elevated levels of endocannabinoids have spinal networks to influence pain processing (Woodhams et al., 2017). Cannabinoids can produce analgesia through activation of CB1 receptors within the periaqueductal gray (PAG; see Figure 26–5) and rostral ventro- medial medulla of the descending pain circuit. eCBs act in higher-order brain circuits, primarily the cortical-amygdalar pathway, to influence pain processing, likely by influencing the affective component of pain. Exposure to noxious stimuli can enhance release of eCBs both in the periphery and within this distributed supraspinal pain circuit to act as endogenous regula- tors of pain initiation and sensitivity (Piomelli et al., 2014; Woodhams et al., 2017). Acute stress exposure produces transient analgesia via local release of eCBs within the PAG (Hohmann et al., 2005). A Scottish woman was dis- covered to possess both the P129T FAAH mutation as well as an upstream deletion in an FAAH pseudogene, which collectively resulted in robust ele- vations in AEA. These mutations were associated with a phenotype of pain insensitivity and accelerated healing (Habib et al., 2019). Inflammation CB2 receptors are primarily localized to immune cells and tissue, both in the periphery and in the brain. Most immune cells express CB2 recep- tors at varying levels, including T cells, monocytes, natural killer cells, and neutrophils, as well as microglia within the CNS. Activation of CB2 receptors on immune cells acts to reduce inflammation, primarily via the suppression of the release of proinflammatory cytokines, as well as by inhibiting cell proliferation and migration. Within the brain, CB2 recep- tors on microglia are rapidly induced by inflammation or damage and act to suppress the release of inflammatory cytokines and promote the release of anti-inflammatory cytokines. Within the periphery, CB2 recep- tors on T cells gate migration into tissues, such as the CNS, by reducing expression of adhesion factors. Deficits in T-cell CB2 receptors are asso- ciated with their enhanced infiltration into the CNS in pathological con- ditions such as multiple sclerosis (Malfitano et al., 2014). CB2-mediated activation of MAP kinases is integral to its ability to promote the release of anti-inflammatory cytokines and engage in reparative functions (Eljaschewitsch et al., 2006). CB1 receptors are also localized on some immune cells, but CB2 receptors appear to be the primary mechanism for most of the anti-inflammatory actions of eCBs. eCB molecules can also regulate inflammation in the brain indepen- dently of cannabinoid receptors. 2-AG in the brain is predominately seques- tered to cell membrane domains where it acts as a reservoir for arachidonic acid. In response to inflammatory stimuli, MAGL activity rapidly increases, metabolizing this membrane-associated 2-AG and liberating arachidonic acid, which is then converted to inflammatory prostaglandins via COX-2 (Nomura et al., 2011). MAGL localized within astrocytes (but not neurons) in the brain mediates the generation of neuroinflammatory molecules from 2-AG catabolism (Viader et al., 2015). Sleep The self-reported prosomnogenic effects of cannabis are often cited as a primary reason for continued consumption among recreational and medical cannabis users (Kesner and Lovinger, 2020). Cannabis can reduce the latency to onset of sleep and nighttime awakenings as well as promote non–rapid eye movement (NREM) sleep, while reducing the percentage of time spent in rapid eye movement (REM) sleep. eCB levels fluctuate in the brain and in the circulation in a circadian man- ner, and this diurnal cycle is disrupted following sleep. Elevating 2-AG signaling via MAGL inhibition similarly increases time spent sleeping and enhances NREM sleep while suppressing REM sleep (Kesner and Lovinger, 2020). Administration of a CB1 receptor antagonist promotes wakefulness and arousal and reduces NREM sleep. In humans, there have been multiple reports of sleep disruption following administration of the CB1 receptor antagonist rimonabant. eCB signalingn may contrib- ute to normative sleep-wake cycles.
endocannabinoid system CB1 CB2 receptor diagram infographic site:wikimedia.org OR site:nih.gov OR site:researchgate.net
endocannabinoid retrograde signaling synapse diagram 2-AG AEA neuron
mkdir -p /home/daytona/workspace/endocannabinoid-ppt && ls /home/daytona/workspa…
node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://upload.wik…
~/endocannabinoid-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5
// ─── COLOR PALETTE ───────────────────────────────────────────────────────────
const C = {
deepPurple: "1A0533",
purple: "3D1A6E",
violet: "6B2FA0",
lavender: "9B59B6",
teal: "00B4A6",
cyan: "17E5D6",
gold: "FFD700",
amber: "FFA500",
rose: "FF6B8A",
white: "FFFFFF",
offWhite: "F0E6FF",
lightGray: "D0C0E8",
green: "2ECC71",
red: "E74C3C",
blue: "3498DB",
darkBlue: "1A2744",
neonGreen: "39FF14",
};
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function addBgGradient(slide, color1, color2) {
// full-slide gradient rect as background
slide.background = { color: color1 };
// overlay shape for gradient feel
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: color1, color2: color2, angle: 135 },
line: { color: color1, width: 0 },
});
}
function slideTitle(slide, text, y = 0.18) {
slide.addText(text, {
x: 0.4, y, w: 12.5, h: 0.65,
fontSize: 30, bold: true, color: C.white,
fontFace: "Calibri",
glow: { size: 8, opacity: 0.4, color: C.cyan },
});
}
function sectionBar(slide, text, x, y, w, color = C.violet) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h: 0.42,
fill: { color },
line: { color: C.cyan, width: 1.5 },
rectRadius: 0.06,
});
slide.addText(text, {
x, y: y + 0.02, w, h: 0.38,
fontSize: 13, bold: true, color: C.white,
align: "center", fontFace: "Calibri",
});
}
function bullet(slide, items, x, y, w, h, fontSize = 11.5) {
const richText = items.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet", indent: 10 }, breakLine: i < items.length - 1 },
}));
slide.addText(richText, {
x, y, w, h,
fontSize, color: C.offWhite, fontFace: "Calibri",
valign: "top", lineSpacingMultiple: 1.25,
});
}
function infoBox(slide, title, body, x, y, w, h, accent = C.teal) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill: { color: C.purple, transparency: 20 },
line: { color: accent, width: 2 },
rectRadius: 0.08,
});
slide.addShape(pres.ShapeType.rect, {
x, y, w, h: 0.38,
fill: { color: accent },
line: { color: accent, width: 0 },
});
slide.addText(title, {
x: x + 0.1, y: y + 0.04, w: w - 0.2, h: 0.32,
fontSize: 11, bold: true, color: C.deepPurple, fontFace: "Calibri",
});
slide.addText(body, {
x: x + 0.12, y: y + 0.42, w: w - 0.24, h: h - 0.5,
fontSize: 10, color: C.offWhite, fontFace: "Calibri",
valign: "top", lineSpacingMultiple: 1.2,
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: C.deepPurple };
// Decorative shapes: concentric rings
const rings = [
{ x: 5.5, y: 1.5, w: 4, h: 4, color: C.violet, t: 80 },
{ x: 5.9, y: 1.9, w: 3.2, h: 3.2, color: C.lavender, t: 70 },
{ x: 6.3, y: 2.3, w: 2.4, h: 2.4, color: C.teal, t: 60 },
{ x: 6.7, y: 2.7, w: 1.6, h: 1.6, color: C.cyan, t: 40 },
{ x: 7.1, y: 3.1, w: 0.8, h: 0.8, color: C.gold, t: 10 },
];
rings.forEach(r => {
sl.addShape(pres.ShapeType.ellipse, {
x: r.x, y: r.y, w: r.w, h: r.h,
fill: { color: r.color, transparency: r.t },
line: { color: r.color, width: 0 },
});
});
// Left accent bar
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 0.18, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: C.teal, color2: C.violet, angle: 90 },
line: { color: C.teal, width: 0 },
});
sl.addText("Physiological Roles of", {
x: 0.5, y: 1.6, w: 9.5, h: 0.9,
fontSize: 38, bold: false, color: C.lightGray,
fontFace: "Calibri Light", charSpacing: 2,
});
sl.addText("Endocannabinoids", {
x: 0.5, y: 2.45, w: 9.5, h: 1.1,
fontSize: 54, bold: true, color: C.white,
fontFace: "Calibri",
glow: { size: 12, opacity: 0.5, color: C.cyan },
});
sl.addText("CB1 & CB2 Receptors • Retrograde Signaling • Reward • Pain • Inflammation & More", {
x: 0.5, y: 3.65, w: 9.5, h: 0.45,
fontSize: 14, color: C.cyan, italic: true, fontFace: "Calibri",
});
// Bottom label
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 7.0, w: 13.3, h: 0.5,
fill: { color: C.violet, transparency: 30 },
line: { color: C.violet, width: 0 },
});
sl.addText("Pharmacology & Neuroscience | Endocannabinoid System", {
x: 0.4, y: 7.04, w: 12.5, h: 0.4,
fontSize: 11, color: C.lightGray, fontFace: "Calibri", italic: true,
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW: What Are Endocannabinoids?
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: C.deepPurple };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: C.deepPurple, color2: C.darkBlue, angle: 150 },
line: { color: C.deepPurple, width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });
slideTitle(sl, "Overview: The Endocannabinoid System");
// 5 column cards
const cards = [
{ label: "Discovery", icon: "🔬", text: "THC led to\ndiscovery of\nGPCR-mediated\ncannabinoid\nactions (Howlett\net al., 1990)" },
{ label: "CB1 Receptor", icon: "🧠", text: "Highly expressed\nin brain; mediates\npsychoactive\neffects of THC;\nlocated on\npresynaptic\nterminals" },
{ label: "CB2 Receptor", icon: "🛡️", text: "Expressed in\nimmune cells &\nmicroglia;\nmediates anti-\ninflammatory\nactions" },
{ label: "Key Ligands", icon: "⚗️", text: "AEA (Ananda-\nmide) and 2-AG\nare main endo-\ncannabinoids;\nproduced\n'on demand'" },
{ label: "Other Targets", icon: "🎯", text: "PPARα & PPARγ,\nion channels\n(TRPV1, GABAA),\nSynthetic\ncannabinoid\nreceptor ligands" },
];
cards.forEach((c, i) => {
const x = 0.4 + i * 2.52;
sl.addShape(pres.ShapeType.roundRect, {
x, y: 1.0, w: 2.38, h: 5.9,
fill: { color: C.purple, transparency: 30 },
line: { color: i % 2 === 0 ? C.teal : C.lavender, width: 2 },
rectRadius: 0.1,
});
// header
sl.addShape(pres.ShapeType.roundRect, {
x, y: 1.0, w: 2.38, h: 0.72,
fill: { color: i % 2 === 0 ? C.teal : C.lavender },
line: { color: i % 2 === 0 ? C.teal : C.lavender, width: 0 },
rectRadius: 0.1,
});
sl.addText(c.label, {
x: x + 0.06, y: 1.06, w: 2.26, h: 0.6,
fontSize: 13, bold: true, color: C.deepPurple, align: "center", fontFace: "Calibri",
});
sl.addText(c.icon, { x: x + 0.85, y: 1.82, w: 0.68, h: 0.55, fontSize: 28, align: "center" });
sl.addText(c.text, {
x: x + 0.1, y: 2.44, w: 2.18, h: 4.3,
fontSize: 10.5, color: C.offWhite, fontFace: "Calibri",
valign: "top", lineSpacingMultiple: 1.3, align: "center",
});
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — CB1 & CB2 RECEPTOR SIGNALING DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: C.darkBlue };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "0D1B3E", color2: "1A0533", angle: 120 },
line: { color: "0D1B3E", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });
slideTitle(sl, "CB1 & CB2 Receptor Signaling");
// CELL MEMBRANE diagram (left half)
// Membrane bar
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 2.6, w: 6.0, h: 0.28,
fill: { color: "4A90D9" }, line: { color: "4A90D9", width: 0 },
});
sl.addText("Cell Membrane", { x: 0.4, y: 2.3, w: 3, h: 0.28, fontSize: 9, color: C.cyan, italic: true, fontFace: "Calibri" });
// GPCR receptor shape (left)
sl.addShape(pres.ShapeType.rect, {
x: 1.2, y: 1.5, w: 0.55, h: 1.4,
fill: { color: C.violet }, line: { color: C.lavender, width: 1.5 },
});
sl.addText("CB1\nGPCR", { x: 1.1, y: 1.54, w: 0.75, h: 1.2, fontSize: 9, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// GPCR receptor shape (right)
sl.addShape(pres.ShapeType.rect, {
x: 3.0, y: 1.5, w: 0.55, h: 1.4,
fill: { color: C.rose }, line: { color: C.amber, width: 1.5 },
});
sl.addText("CB2\nGPCR", { x: 2.9, y: 1.54, w: 0.75, h: 1.2, fontSize: 9, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// Arrows from receptors downward (intracellular signaling)
sl.addShape(pres.ShapeType.line, { x: 1.47, y: 2.88, w: 0, h: 0.5, line: { color: C.cyan, width: 2, dashType: "dash" } });
sl.addShape(pres.ShapeType.line, { x: 3.27, y: 2.88, w: 0, h: 0.5, line: { color: C.amber, width: 2, dashType: "dash" } });
// Gi protein
sl.addShape(pres.ShapeType.ellipse, {
x: 1.0, y: 3.38, w: 0.9, h: 0.42,
fill: { color: C.teal, transparency: 20 }, line: { color: C.cyan, width: 1.5 },
});
sl.addText("Gi", { x: 1.0, y: 3.4, w: 0.9, h: 0.38, fontSize: 11, bold: true, color: C.white, align: "center" });
sl.addShape(pres.ShapeType.ellipse, {
x: 2.8, y: 3.38, w: 0.9, h: 0.42,
fill: { color: C.rose, transparency: 20 }, line: { color: C.amber, width: 1.5 },
});
sl.addText("Gi", { x: 2.8, y: 3.4, w: 0.9, h: 0.38, fontSize: 11, bold: true, color: C.white, align: "center" });
// Downstream boxes
const downstream = [
{ label: "↓ Adenylyl\nCyclase", x: 0.35, y: 4.2, accent: C.teal },
{ label: "↓ Voltage-\ngated Ca²⁺", x: 1.35, y: 4.2, accent: C.teal },
{ label: "↑ MAP\nKinases", x: 2.35, y: 4.2, accent: C.cyan },
{ label: "↑ GIRK\nChannels", x: 3.35, y: 4.2, accent: C.lavender },
{ label: "β-Arrestin\nSignaling", x: 4.35, y: 4.2, accent: C.amber },
];
downstream.forEach(d => {
sl.addShape(pres.ShapeType.roundRect, {
x: d.x, y: d.y, w: 0.92, h: 0.7,
fill: { color: C.purple, transparency: 20 },
line: { color: d.accent, width: 1.5 },
rectRadius: 0.06,
});
sl.addText(d.label, {
x: d.x + 0.04, y: d.y + 0.05, w: 0.84, h: 0.6,
fontSize: 8.5, color: C.offWhite, align: "center", fontFace: "Calibri",
});
});
// Functional Selectivity label
sl.addShape(pres.ShapeType.roundRect, {
x: 0.35, y: 5.1, w: 5.0, h: 0.5,
fill: { color: C.amber, transparency: 40 },
line: { color: C.gold, width: 1.5 }, rectRadius: 0.08,
});
sl.addText("⚡ Biased Agonism / Functional Selectivity: Different ligands activate distinct G-protein subsets", {
x: 0.45, y: 5.15, w: 4.8, h: 0.4,
fontSize: 9, color: C.white, fontFace: "Calibri",
});
// Right side: signaling summary table
const tRows = [
["Pathway", "Effect", "Outcome"],
["Gi → ↓ cAMP", "Inhibit adenylyl cyclase", "Reduced neuronal activity"],
["Gi → K⁺ channel", "Open GIRK channels", "Membrane hyperpolarization"],
["Gi → Ca²⁺ channel", "Block VGCC", "↓ Neurotransmitter release"],
["MAP Kinase", "ERK1/2 activation", "Gene expression changes"],
["Gs (rare)", "Activate adenylyl cyclase", "↑ cAMP (conditional)"],
["β-Arrestin", "Receptor internalization", "Desensitization / tolerance"],
];
const colW = [2.0, 2.3, 2.0];
const colX = [6.8, 8.85, 11.2];
const rowH = 0.52;
const startY = 1.0;
tRows.forEach((row, ri) => {
row.forEach((cell, ci) => {
sl.addShape(pres.ShapeType.rect, {
x: colX[ci], y: startY + ri * rowH, w: colW[ci], h: rowH,
fill: { color: ri === 0 ? C.violet : (ri % 2 === 0 ? "1E1040" : "2A1860") },
line: { color: C.lavender, width: 0.8 },
});
sl.addText(cell, {
x: colX[ci] + 0.05, y: startY + ri * rowH + 0.05, w: colW[ci] - 0.1, h: rowH - 0.1,
fontSize: ri === 0 ? 10 : 9.5, bold: ri === 0,
color: ri === 0 ? C.gold : C.offWhite,
fontFace: "Calibri", valign: "middle",
});
});
});
sl.addText("CB1 & CB2 Receptor Signaling Table", {
x: 6.8, y: 0.88, w: 6.4, h: 0.3,
fontSize: 10, color: C.cyan, bold: true, fontFace: "Calibri",
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — RETROGRADE SIGNALING DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "0A0E27" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "0A0E27", color2: "1A0533", angle: 130 },
line: { color: "0A0E27", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.neonGreen }, line: { color: C.neonGreen, width: 0 } });
slideTitle(sl, "eCBs as Retrograde Messengers at the Synapse");
// ── SYNAPSE DIAGRAM (center) ─────────────────────────────────────────────
// Presynaptic terminal
sl.addShape(pres.ShapeType.roundRect, {
x: 1.8, y: 1.0, w: 3.6, h: 1.8,
fill: { color: "1A3A5C", transparency: 10 },
line: { color: C.blue, width: 2 }, rectRadius: 0.15,
});
sl.addText("PRESYNAPTIC TERMINAL", {
x: 1.9, y: 1.05, w: 3.4, h: 0.35,
fontSize: 10, bold: true, color: C.cyan, align: "center", fontFace: "Calibri",
});
// Vesicles (circles)
[[2.2,1.55],[2.7,1.45],[3.2,1.55],[3.7,1.45],[4.2,1.55],[4.7,1.45]].forEach(([x,y]) => {
sl.addShape(pres.ShapeType.ellipse, { x, y, w: 0.28, h: 0.28, fill: { color: C.teal }, line: { color: C.cyan, width: 1 } });
});
sl.addText("NT\nvesicles", { x: 2.15, y: 1.88, w: 1.5, h: 0.4, fontSize: 8, color: C.lightGray, fontFace: "Calibri" });
// CB1 label
sl.addShape(pres.ShapeType.roundRect, {
x: 4.0, y: 1.3, w: 1.2, h: 0.48,
fill: { color: C.violet }, line: { color: C.lavender, width: 1.5 }, rectRadius: 0.06,
});
sl.addText("CB1 Receptor", { x: 4.0, y: 1.34, w: 1.2, h: 0.4, fontSize: 8, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// Synaptic cleft
sl.addShape(pres.ShapeType.rect, {
x: 1.8, y: 2.8, w: 3.6, h: 0.4,
fill: { color: "0D2244", transparency: 20 },
line: { color: C.lightGray, width: 0.5, dashType: "dashDot" },
});
sl.addText("Synaptic Cleft", { x: 2.8, y: 2.86, w: 1.6, h: 0.28, fontSize: 8, color: C.lightGray, italic: true, fontFace: "Calibri" });
// Postsynaptic neuron
sl.addShape(pres.ShapeType.roundRect, {
x: 1.8, y: 3.2, w: 3.6, h: 2.2,
fill: { color: "1C3A1A", transparency: 10 },
line: { color: C.green, width: 2 }, rectRadius: 0.15,
});
sl.addText("POSTSYNAPTIC NEURON", {
x: 1.9, y: 3.25, w: 3.4, h: 0.35,
fontSize: 10, bold: true, color: C.green, align: "center", fontFace: "Calibri",
});
// Ca2+ influx indicator
sl.addShape(pres.ShapeType.ellipse, {
x: 2.0, y: 3.7, w: 1.0, h: 0.45,
fill: { color: C.amber, transparency: 30 }, line: { color: C.gold, width: 1.5 },
});
sl.addText("Ca²⁺ influx", { x: 2.0, y: 3.76, w: 1.0, h: 0.33, fontSize: 8, color: C.white, align: "center", fontFace: "Calibri" });
// DAGLα → 2-AG
sl.addShape(pres.ShapeType.roundRect, {
x: 3.2, y: 3.7, w: 1.5, h: 0.45,
fill: { color: C.rose, transparency: 20 }, line: { color: C.rose, width: 1.5 }, rectRadius: 0.06,
});
sl.addText("DAGLα → 2-AG", { x: 3.2, y: 3.76, w: 1.5, h: 0.33, fontSize: 8.5, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// Gq/11 GPCR
sl.addShape(pres.ShapeType.roundRect, {
x: 2.2, y: 4.35, w: 1.5, h: 0.45,
fill: { color: "5A2080", transparency: 20 }, line: { color: C.lavender, width: 1.5 }, rectRadius: 0.06,
});
sl.addText("Gq/11 GPCR", { x: 2.2, y: 4.41, w: 1.5, h: 0.33, fontSize: 8.5, color: C.offWhite, align: "center", fontFace: "Calibri" });
// Retrograde arrow (big)
sl.addShape(pres.ShapeType.line, { x: 3.65, y: 3.68, w: 0, h: -1.2, line: { color: C.rose, width: 3, endArrowType: "arrow" } });
sl.addText("Retrograde\n2-AG", { x: 3.75, y: 2.6, w: 1.0, h: 0.5, fontSize: 8.5, color: C.rose, bold: true, fontFace: "Calibri" });
// Right side explanations
const steps = [
{ num: "①", title: "Depolarization", body: "Postsynaptic depolarization → Ca²⁺ influx via VSCC or Gq/11-GPCR activation → Ca²⁺ release from intracellular stores" },
{ num: "②", title: "eCB Synthesis", body: "DAGLα activated → 2-AG synthesized on demand from membrane phospholipids" },
{ num: "③", title: "Retrograde Travel", body: "2-AG diffuses retrogradely across synapse to activate presynaptic CB1 receptors" },
{ num: "④", title: "Suppression", body: "CB1 activation inhibits adenylyl cyclase & VGCC → ↓ neurotransmitter release (DSE/DSI/MSE/MSI)" },
{ num: "⑤", title: "LTD (Long-term)", body: "Sustained low-frequency activity → persistent LTD maintained independently of eCBs after induction" },
];
steps.forEach((s, i) => {
const y = 1.0 + i * 1.28;
sl.addShape(pres.ShapeType.ellipse, {
x: 6.2, y: y + 0.04, w: 0.45, h: 0.45,
fill: { color: [C.teal, C.cyan, C.rose, C.lavender, C.gold][i] },
line: { color: C.white, width: 1 },
});
sl.addText(s.num, { x: 6.2, y: y + 0.06, w: 0.45, h: 0.41, fontSize: 12, bold: true, color: C.deepPurple, align: "center" });
sl.addShape(pres.ShapeType.roundRect, {
x: 6.75, y, w: 6.2, h: 1.1,
fill: { color: "1E1040", transparency: 20 },
line: { color: [C.teal, C.cyan, C.rose, C.lavender, C.gold][i], width: 1.5 }, rectRadius: 0.08,
});
sl.addText(s.title, { x: 6.85, y: y + 0.06, w: 6.0, h: 0.32, fontSize: 11, bold: true, color: [C.teal, C.cyan, C.rose, C.lavender, C.gold][i], fontFace: "Calibri" });
sl.addText(s.body, { x: 6.85, y: y + 0.38, w: 6.0, h: 0.66, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", valign: "top", lineSpacingMultiple: 1.2 });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — NON-RETROGRADE & ION CHANNEL EFFECTS
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "0C1A2E" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "0C1A2E", color2: "1A0040", angle: 115 },
line: { color: "0C1A2E", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.amber }, line: { color: C.amber, width: 0 } });
slideTitle(sl, "Nonretrograde Effects of eCBs on Neuronal Excitability");
const channels = [
{ name: "GIRK Channels", sub: "G-protein-coupled Inwardly Rectifying K⁺", icon: "K⁺", body: "Intense neuronal activity activates somatic CB1 receptors → opens GIRK → K⁺ efflux → membrane HYPERPOLARIZATION → reduced excitability", color: C.teal },
{ name: "Ih (HCN) Channels", sub: "Hyperpolarization-activated cation channel", icon: "Ih", body: "Regulates dendritic excitability & synaptic plasticity.\nCB1 → JNK1 → guanylyl cyclase → cGMP → HCN channel activation → IMPAIRS LEARNING\n(mechanism of THC-induced memory impairment)", color: C.rose },
{ name: "TRPV1 Channels", sub: "Transient Receptor Potential Vanilloid 1", icon: "🌡️", body: "AEA can activate TRPV1 (unlike 2-AG).\nHigh concentrations required.\nContributes to pain modulation and neuroinflammation", color: C.amber },
{ name: "GABAA Receptors", sub: "Inhibitory ionotropic receptor", icon: "Cl⁻", body: "eCBs can directly modulate GABAA receptor function.\nEffect varies with eCB concentration and local context.\nHigher concentrations needed in vivo", color: C.lavender },
{ name: "5-HT3 Receptors", sub: "Serotonin-gated ion channel", icon: "5HT", body: "eCBs modulate 5-HT3 channels.\nMay contribute to antiemetic effects of cannabinoids.\nExact physiological significance requires in vivo validation", color: C.green },
];
channels.forEach((ch, i) => {
const x = 0.38 + i * 2.55;
sl.addShape(pres.ShapeType.roundRect, {
x, y: 0.98, w: 2.42, h: 5.9,
fill: { color: "1A1040", transparency: 10 },
line: { color: ch.color, width: 2 }, rectRadius: 0.12,
});
sl.addShape(pres.ShapeType.roundRect, {
x, y: 0.98, w: 2.42, h: 1.0,
fill: { color: ch.color, transparency: 20 },
line: { color: ch.color, width: 0 }, rectRadius: 0.12,
});
sl.addText(ch.icon, { x: x + 0.5, y: 1.04, w: 1.4, h: 0.5, fontSize: 20, bold: true, color: ch.color, align: "center" });
sl.addText(ch.name, { x: x + 0.06, y: 1.56, w: 2.3, h: 0.35, fontSize: 10, bold: true, color: ch.color, align: "center", fontFace: "Calibri" });
sl.addText(ch.sub, { x: x + 0.06, y: 1.9, w: 2.3, h: 0.34, fontSize: 7.5, color: C.lightGray, align: "center", italic: true, fontFace: "Calibri" });
sl.addShape(pres.ShapeType.line, { x: x + 0.2, y: 2.26, w: 2.02, h: 0, line: { color: ch.color, width: 0.8 } });
sl.addText(ch.body, {
x: x + 0.1, y: 2.35, w: 2.22, h: 4.45,
fontSize: 9, color: C.offWhite, fontFace: "Calibri",
valign: "top", lineSpacingMultiple: 1.25,
});
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — REWARD & THE VTA CIRCUIT
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "0F0020" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "0F0020", color2: "1A3040", angle: 140 },
line: { color: "0F0020", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });
slideTitle(sl, "Reward Circuitry: eCBs in the VTA–Nucleus Accumbens Pathway");
// Brain circuit diagram
// VTA box
sl.addShape(pres.ShapeType.ellipse, {
x: 0.6, y: 2.5, w: 2.5, h: 1.5,
fill: { color: C.violet, transparency: 20 }, line: { color: C.lavender, width: 2.5 },
});
sl.addText("VTA\n(Ventral Tegmental Area)", { x: 0.6, y: 2.82, w: 2.5, h: 0.8, fontSize: 10, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// GABA interneuron inside VTA
sl.addShape(pres.ShapeType.ellipse, {
x: 0.85, y: 2.62, w: 0.75, h: 0.55,
fill: { color: C.rose, transparency: 30 }, line: { color: C.rose, width: 1.5 },
});
sl.addText("GABA\nneuron", { x: 0.85, y: 2.64, w: 0.75, h: 0.5, fontSize: 7, color: C.white, align: "center", fontFace: "Calibri" });
// Dopamine neuron
sl.addShape(pres.ShapeType.ellipse, {
x: 2.0, y: 2.62, w: 0.75, h: 0.55,
fill: { color: C.gold, transparency: 30 }, line: { color: C.gold, width: 1.5 },
});
sl.addText("DA\nneuron", { x: 2.0, y: 2.64, w: 0.75, h: 0.5, fontSize: 7, color: C.white, align: "center", fontFace: "Calibri" });
// CB1 receptor on GABA terminal
sl.addShape(pres.ShapeType.roundRect, {
x: 0.75, y: 3.18, w: 0.95, h: 0.36,
fill: { color: C.violet }, line: { color: C.lavender, width: 1 }, rectRadius: 0.05,
});
sl.addText("CB1 ↓ GABA", { x: 0.75, y: 3.22, w: 0.95, h: 0.28, fontSize: 7.5, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// Arrow GABA → DA (inhibition normally)
sl.addShape(pres.ShapeType.line, { x: 1.62, y: 2.9, w: 0.4, h: 0, line: { color: C.rose, width: 1.5, endArrowType: "arrow" } });
sl.addText("inhibits", { x: 1.5, y: 2.72, w: 0.7, h: 0.2, fontSize: 7, color: C.rose, italic: true, fontFace: "Calibri" });
// eCB arrow ↑ (disinhibition)
sl.addShape(pres.ShapeType.line, { x: 1.22, y: 2.62, w: 0, h: -0.45, line: { color: C.cyan, width: 2, endArrowType: "arrow" } });
sl.addText("eCB\nblocks", { x: 0.88, y: 1.85, w: 0.8, h: 0.44, fontSize: 7.5, color: C.cyan, bold: true, fontFace: "Calibri" });
// Arrow from VTA → NAc
sl.addShape(pres.ShapeType.line, { x: 3.15, y: 3.25, w: 1.5, h: 0, line: { color: C.gold, width: 3, endArrowType: "arrow" } });
sl.addText("Dopamine\nRelease", { x: 3.2, y: 3.32, w: 1.5, h: 0.4, fontSize: 8.5, color: C.gold, bold: true, fontFace: "Calibri" });
// NAc
sl.addShape(pres.ShapeType.ellipse, {
x: 4.7, y: 2.5, w: 2.5, h: 1.5,
fill: { color: "1A3040", transparency: 10 }, line: { color: C.teal, width: 2.5 },
});
sl.addText("Nucleus Accumbens\n(Reward Centre)", { x: 4.7, y: 2.82, w: 2.5, h: 0.8, fontSize: 10, bold: true, color: C.teal, align: "center", fontFace: "Calibri" });
// Right side panels
const rpanels = [
{ title: "Mechanism", body: "CB1 on GABA axon terminals in VTA\n→ eCB activation inhibits GABA release\n→ Disinhibition of DA neurons\n→ ↑ Dopamine release in NAc", accent: C.lavender },
{ title: "Reinforcing Stimuli", body: "Cocaine, voluntary exercise, food\nAll require eCB signaling in VTA\nDisruption → ↓ motivation & pleasure\nAEA FAAH variant P129T → ↑ NAc reward reactivity", accent: C.gold },
{ title: "Clinical Relevance", body: "CB1 antagonism (rimonabant) → anhedonia/depression\nTherapeutic potential for addiction treatment\neCB tone governs motivation & reward salience", accent: C.rose },
];
rpanels.forEach((p, i) => {
infoBox(sl, p.title, p.body, 7.5, 1.0 + i * 2.1, 5.5, 1.9, p.accent);
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — STRESS & ANXIETY
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "0A1A10" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "0A1A10", color2: "1A0533", angle: 125 },
line: { color: "0A1A10", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.rose }, line: { color: C.rose, width: 0 } });
slideTitle(sl, "Stress Resolution: eCBs as Anxiolytics");
// Flowchart: Stress → eCB release → Termination
const flow = [
{ label: "STRESS\nExposure", color: C.red, x: 0.5, y: 1.3 },
{ label: "↑ Glucocorticoids\n(Cortisol/Corticosterone)", color: C.amber, x: 3.1, y: 1.3 },
{ label: "eCB Mobilization\n(2-AG & AEA ↑)", color: C.teal, x: 5.7, y: 1.3 },
{ label: "Stress Response\nTERMINATION", color: C.green, x: 8.3, y: 1.3 },
];
flow.forEach((f, i) => {
sl.addShape(pres.ShapeType.roundRect, {
x: f.x, y: f.y, w: 2.4, h: 0.85,
fill: { color: f.color, transparency: 30 },
line: { color: f.color, width: 2 }, rectRadius: 0.1,
});
sl.addText(f.label, { x: f.x + 0.06, y: f.y + 0.08, w: 2.28, h: 0.7, fontSize: 10, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
if (i < flow.length - 1) {
sl.addShape(pres.ShapeType.line, { x: f.x + 2.4, y: f.y + 0.42, w: 0.72, h: 0, line: { color: C.lightGray, width: 2, endArrowType: "arrow" } });
}
});
// Brain regions affected
const regions = [
{ name: "Amygdala", body: "eCBs gate stress-induced excitation\n→ Limits anxiety development\n→ Reduces stress hormone release (Gray et al., 2015)" },
{ name: "Prefrontal\nCortex", body: "Top-down emotional control enhanced\nby elevated AEA (FAAH P129T variant)\n→ Improved fear inhibition" },
{ name: "Sympathetic\nNerve Terminals", body: "CB1 receptors on peripheral sympathetic terminals\neCBs restrict autonomic stress response\n→ Lower cardiovascular reactivity" },
{ name: "HPA Axis", body: "Glucocorticoids trigger eCB release\neCBs serve as negative feedback\nChronic stress → impaired eCB signaling\n→ Stress allostasis breakdown" },
];
regions.forEach((r, i) => {
infoBox(sl, r.name, r.body, 0.38 + i * 3.25, 2.45, 3.05, 2.1, [C.rose, C.teal, C.amber, C.lavender][i]);
});
// FAAH/AEA clinical box
sl.addShape(pres.ShapeType.roundRect, {
x: 0.38, y: 4.7, w: 12.56, h: 2.5,
fill: { color: "1A2840", transparency: 10 },
line: { color: C.gold, width: 2 }, rectRadius: 0.12,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.38, y: 4.7, w: 12.56, h: 0.42,
fill: { color: C.gold, transparency: 30 }, line: { color: C.gold, width: 0 },
});
sl.addText("Clinical Highlight: FAAH P129T Genetic Variant", {
x: 0.5, y: 4.74, w: 12.3, h: 0.34, fontSize: 12, bold: true, color: C.gold, fontFace: "Calibri",
});
const bullets2 = [
"Reduces FAAH enzyme activity → elevates AEA (anandamide) levels throughout CNS",
"Associated with lower trait anxiety and blunted stress response",
"Enhanced top-down emotional control and improved inhibition of fear responses",
"Blunted neural and physiological stress reactivity (Hariri et al., 2009; Petrie et al.)",
"Pharmacological basis for FAAH inhibitors as anxiolytic drug targets",
];
bullet(sl, bullets2, 0.5, 5.18, 12.2, 1.9, 10.5);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — APPETITE & METABOLISM
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "1A0A00" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "1A0A00", color2: "0A1A30", angle: 135 },
line: { color: "1A0A00", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.amber }, line: { color: C.amber, width: 0 } });
slideTitle(sl, "Appetite, Metabolism & 'The Munchies'");
// Left: hypothalamus diagram
sl.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: 1.0, w: 5.8, h: 6.2,
fill: { color: "1A1000", transparency: 10 },
line: { color: C.amber, width: 2 }, rectRadius: 0.12,
});
sl.addText("HYPOTHALAMUS — Feeding Circuits", {
x: 0.5, y: 1.06, w: 5.6, h: 0.38,
fontSize: 11, bold: true, color: C.amber, align: "center", fontFace: "Calibri",
});
// Arcuate nucleus
sl.addShape(pres.ShapeType.ellipse, {
x: 0.9, y: 1.6, w: 4.8, h: 2.8,
fill: { color: "2A1A00", transparency: 20 }, line: { color: C.gold, width: 1.5 },
});
sl.addText("Arcuate Nucleus", { x: 2.0, y: 1.65, w: 2.5, h: 0.3, fontSize: 9, color: C.gold, italic: true, align: "center", fontFace: "Calibri" });
// AgRP/NPY (ORexigenic)
sl.addShape(pres.ShapeType.roundRect, {
x: 1.0, y: 2.05, w: 1.9, h: 0.8,
fill: { color: C.red, transparency: 30 }, line: { color: C.red, width: 1.5 }, rectRadius: 0.08,
});
sl.addText("AgRP/NPY\n(↑ Food Intake)", { x: 1.0, y: 2.09, w: 1.9, h: 0.72, fontSize: 9, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// POMC/MCH4 (Anorexigenic)
sl.addShape(pres.ShapeType.roundRect, {
x: 3.4, y: 2.05, w: 1.9, h: 0.8,
fill: { color: C.green, transparency: 30 }, line: { color: C.green, width: 1.5 }, rectRadius: 0.08,
});
sl.addText("POMC/MCH4\n(↓ Food Intake)", { x: 3.4, y: 2.09, w: 1.9, h: 0.72, fontSize: 9, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// eCB arrows
sl.addShape(pres.ShapeType.line, { x: 1.95, y: 2.35, w: 0, h: -0.5, line: { color: C.teal, width: 2, endArrowType: "arrow" } });
sl.addText("eCB ↑ AgRP", { x: 1.2, y: 1.6, w: 1.4, h: 0.28, fontSize: 7.5, color: C.teal, fontFace: "Calibri" });
sl.addShape(pres.ShapeType.line, { x: 4.35, y: 2.35, w: 0, h: -0.5, line: { color: C.rose, width: 2, endArrowType: "arrow" } });
sl.addText("eCB ↓ POMC", { x: 3.6, y: 1.6, w: 1.5, h: 0.28, fontSize: 7.5, color: C.rose, fontFace: "Calibri" });
// Hormones
const hormones = [
{ name: "Leptin", arrow: "↓ eCB", color: C.green, x: 0.85, y: 3.05 },
{ name: "Ghrelin", arrow: "↑ eCB", color: C.red, x: 2.3, y: 3.05 },
{ name: "Glucocorticoids", arrow: "↑ eCB", color: C.amber, x: 3.75, y: 3.05 },
];
hormones.forEach(h => {
sl.addShape(pres.ShapeType.roundRect, {
x: h.x, y: h.y, w: 1.3, h: 0.6,
fill: { color: h.color, transparency: 50 }, line: { color: h.color, width: 1 }, rectRadius: 0.06,
});
sl.addText(`${h.name}\n${h.arrow}`, { x: h.x + 0.04, y: h.y + 0.06, w: 1.22, h: 0.48, fontSize: 8, color: C.white, align: "center", fontFace: "Calibri" });
});
// Peripheral organs
const organs = [
{ name: "Liver (Hepatic CB1)", body: "Fatty liver & hepatic steatosis\npromoted by excess eCB activation", x: 0.85, y: 3.85, c: C.amber },
{ name: "Adipose Tissue", body: "CB1 augments adipogenesis\nand fat accumulation", x: 2.25, y: 3.85, c: C.rose },
{ name: "Vagal Afferents", body: "Cannabinoid receptor stimulation\nenhances food intake signals", x: 3.65, y: 3.85, c: C.teal },
];
organs.forEach(o => {
sl.addShape(pres.ShapeType.roundRect, {
x: o.x, y: o.y, w: 1.3, h: 1.0,
fill: { color: o.c, transparency: 60 }, line: { color: o.c, width: 1.2 }, rectRadius: 0.07,
});
sl.addText(o.name, { x: o.x + 0.04, y: o.y + 0.05, w: 1.22, h: 0.28, fontSize: 7.5, bold: true, color: o.c, align: "center", fontFace: "Calibri" });
sl.addText(o.body, { x: o.x + 0.04, y: o.y + 0.34, w: 1.22, h: 0.6, fontSize: 7, color: C.offWhite, fontFace: "Calibri", lineSpacingMultiple: 1.15 });
});
// Right side panels
const metabolPanels = [
{ title: "Cannabis & Appetite ('Munchies')", body: "THC → CB1 activation → ↑ food intake\neCB levels rise with fasting, fall after satiety\nHypothalamic eCB fluctuates with nutritional status\nLeptin rapidly suppresses hypothalamic eCB signaling", accent: C.amber },
{ title: "Obesity & Metabolic Syndrome", body: "Elevated eCBs → insulin resistance, type 2 diabetes\nCB1 antagonism → weight loss, ↓ metabolic complications\nHigh peripheral eCB = marker of obesity risk\nClinical studies confirm metabolic effects in humans", accent: C.rose },
{ title: "The Paradox: Cannabis Users Stay Leaner", body: "Population studies: cannabis users have LOWER BMI\nPossible mechanism: THC (partial CB1 agonist)\nmay OCCLUDE full agonist 2-AG signaling\n→ Limits negative metabolic consequences\nof chronically elevated eCB tone", accent: C.green },
{ title: "Peripheral eCB Influences", body: "Hepatic CB1 → fatty liver / steatosis\nAdipose CB1 → adipogenesis & fat storage\nSkeletal muscle & endocrine cells also express CB1\nTargeting peripheral CB1 (not brain) = safer obesity treatment", accent: C.teal },
];
metabolPanels.forEach((p, i) => {
infoBox(sl, p.title, p.body, 6.5, 1.0 + i * 1.6, 6.55, 1.46, p.accent);
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — PAIN MODULATION
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "100020" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "100020", color2: "001030", angle: 120 },
line: { color: "100020", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.rose }, line: { color: C.rose, width: 0 } });
slideTitle(sl, "Pain Modulation by the Endocannabinoid System");
// Pain pathway diagram (left)
const levels = [
{ name: "CORTEX\n& AMYGDALA", sub: "Affective component of pain\nCortical-amygdalar pathway\n↑ eCB on noxious stimuli", color: C.rose, y: 0.95 },
{ name: "PAG & RVM", sub: "Periaqueductal gray\nRostral ventromedial medulla\nDescending pain control\nCB1 → analgesia\nAcute stress → eCB → PAG analgesia", color: C.lavender, y: 2.35 },
{ name: "SPINAL CORD", sub: "CB1 & TRPV1 signaling\nModulation of spinal pain networks\n2-AG and AEA act here", color: C.teal, y: 3.75 },
{ name: "PERIPHERAL\nAFFERENTS", sub: "CB1 on dorsal root ganglion neurons\nTransported to peripheral terminals\nDirect pain suppression at initiation\nPeripheral eCB signaling", color: C.green, y: 5.15 },
];
levels.forEach((l, i) => {
sl.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: l.y, w: 5.2, h: 1.2,
fill: { color: l.color, transparency: 60 },
line: { color: l.color, width: 2 }, rectRadius: 0.1,
});
sl.addText(l.name, { x: 0.5, y: l.y + 0.06, w: 2.0, h: 1.08, fontSize: 10.5, bold: true, color: l.color, fontFace: "Calibri", valign: "middle" });
sl.addText(l.sub, { x: 2.6, y: l.y + 0.1, w: 2.9, h: 1.0, fontSize: 9, color: C.offWhite, fontFace: "Calibri", valign: "top", lineSpacingMultiple: 1.18 });
if (i < levels.length - 1) {
sl.addShape(pres.ShapeType.line, { x: 2.8, y: l.y + 1.2, w: 0, h: 0.46, line: { color: C.lightGray, width: 1.5, dashType: "dash", endArrowType: "arrow" } });
sl.addText("↓ Pain signal", { x: 2.96, y: l.y + 1.25, w: 1.5, h: 0.3, fontSize: 7.5, color: C.lightGray, italic: true, fontFace: "Calibri" });
}
});
// Right side
const rightPanels = [
{ title: "eCB Analgesia Mechanisms", body: "CB1 receptors distributed at all levels:\ncortical, midbrain (PAG), spinal, peripheral\n\nCB1 in DRG neurons transported to peripheral terminals\n→ Direct suppression of pain initiation\n\nSpinal 2-AG/AEA + TRPV1 modulation of nociception", accent: C.rose },
{ title: "Descending Pain Control", body: "Cannabinoids act on CB1 in:\n• PAG (periaqueductal gray)\n• Rostral ventromedial medulla (RVM)\nThis activates descending inhibitory pathways\nthat suppress pain transmission in dorsal horn", accent: C.lavender },
{ title: "Stress-Induced Analgesia", body: "Acute stress → local eCB release in PAG\n→ Transient analgesia\neCBs act as endogenous pain regulators\nExposure to noxious stimuli enhances eCB release both peripherally and supraspinally", accent: C.teal },
{ title: "Clinical Case: FAAH Mutation", body: "Scottish woman with P129T FAAH mutation\n+ upstream deletion in FAAH pseudogene\n→ Robust elevations in AEA\nResult: PAIN INSENSITIVITY + accelerated wound healing\n(Habib et al., 2019)\nValidates FAAH inhibitors for chronic pain treatment", accent: C.gold },
];
rightPanels.forEach((p, i) => {
infoBox(sl, p.title, p.body, 6.0, 0.85 + i * 1.62, 7.0, 1.5, p.accent);
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — INFLAMMATION & CB2
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "001A10" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "001A10", color2: "1A0020", angle: 130 },
line: { color: "001A10", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.green }, line: { color: C.green, width: 0 } });
slideTitle(sl, "Inflammation: CB2 Receptors as Immune Modulators");
// Central circle: CB2 Receptor
sl.addShape(pres.ShapeType.ellipse, {
x: 4.6, y: 2.3, w: 2.3, h: 2.3,
fill: { color: C.green, transparency: 30 }, line: { color: C.green, width: 3 },
});
sl.addText("CB2\nReceptor", { x: 4.6, y: 3.0, w: 2.3, h: 0.9, fontSize: 16, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
// Spokes — immune cells
const cells = [
{ name: "T-cells", note: "↓ migration into CNS\n↓ adhesion factors", angle: 0, color: C.teal },
{ name: "Neutrophils", note: "↓ proliferation\n& migration", angle: 60, color: C.cyan },
{ name: "Microglia\n(CNS)", note: "Rapidly induced\nby inflammation", angle: 120, color: C.lavender },
{ name: "NK Cells", note: "↓ cytotoxic\nactivity", angle: 180, color: C.amber },
{ name: "Monocytes", note: "↓ pro-inflammatory\ncytokine release", angle: 240, color: C.rose },
{ name: "Keratinocytes\n& Pericytes", note: "Peripheral tissue\nrepair roles", angle: 300, color: C.green },
];
cells.forEach(c => {
const rad = c.angle * Math.PI / 180;
const cx = 5.75 + 2.5 * Math.cos(rad);
const cy = 3.45 + 2.1 * Math.sin(rad);
sl.addShape(pres.ShapeType.line, {
x: 5.75 + 1.15 * Math.cos(rad), y: 3.45 + 0.95 * Math.sin(rad),
w: 1.35 * Math.cos(rad), h: 1.15 * Math.sin(rad),
line: { color: c.color, width: 1.5, endArrowType: "arrow" },
});
sl.addShape(pres.ShapeType.roundRect, {
x: cx - 1.0, y: cy - 0.45, w: 2.0, h: 0.9,
fill: { color: c.color, transparency: 60 },
line: { color: c.color, width: 1.5 }, rectRadius: 0.08,
});
sl.addText(c.name + "\n" + c.note, {
x: cx - 0.95, y: cy - 0.42, w: 1.9, h: 0.84,
fontSize: 7.5, color: C.white, align: "center", fontFace: "Calibri",
});
});
// Right: mechanisms & 2-AG/COX2 pathway
const infoPanels = [
{ title: "CB2 Anti-Inflammatory Actions", body: "↓ Release of pro-inflammatory cytokines (IL-1β, TNF-α, IL-6)\n↓ Cell proliferation and migration\n↑ Release of anti-inflammatory cytokines\nMAP kinase activation → reparative functions\n(Eljaschewitsch et al., 2006)" },
{ title: "MS & T-Cell CB2 Deficiency", body: "T-cell CB2 deficits → enhanced CNS infiltration\nImplicated in multiple sclerosis pathology\n(Malfitano et al., 2014)\nCB2 agonists as potential MS treatment" },
{ title: "2-AG / COX-2 / Neuroinflammation", body: "Brain 2-AG stored in cell membrane domains as\narachidonic acid reservoir\nInflammation → ↑ MAGL (in astrocytes, not neurons)\n→ Liberate arachidonic acid\n→ COX-2 converts to inflammatory prostaglandins\n(Viader et al., 2015; Nomura et al., 2011)" },
];
infoPanels.forEach((p, i) => {
infoBox(sl, p.title, p.body, 9.8, 1.0 + i * 2.1, 3.2, 1.9, [C.green, C.teal, C.amber][i]);
});
// Bottom note
sl.addShape(pres.ShapeType.roundRect, {
x: 0.38, y: 6.7, w: 9.2, h: 0.6,
fill: { color: C.green, transparency: 70 },
line: { color: C.green, width: 1 }, rectRadius: 0.08,
});
sl.addText("Note: CB1 receptors on some immune cells also contribute, but CB2 is the PRIMARY mediator of endocannabinoid anti-inflammatory effects.", {
x: 0.5, y: 6.76, w: 9.0, h: 0.48, fontSize: 9, color: C.offWhite, fontFace: "Calibri", italic: true,
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 — SLEEP
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: "050A1A" };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: "050A1A", color2: "150030", angle: 145 },
line: { color: "050A1A", width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.lavender }, line: { color: C.lavender, width: 0 } });
// Moon & stars decorative
sl.addShape(pres.ShapeType.ellipse, { x: 10.5, y: 0.2, w: 1.2, h: 1.2, fill: { color: C.gold, transparency: 40 }, line: { color: C.gold, width: 0 } });
sl.addShape(pres.ShapeType.ellipse, { x: 10.9, y: 0.2, w: 1.2, h: 1.2, fill: { color: "050A1A" }, line: { color: "050A1A", width: 0 } });
slideTitle(sl, "eCBs and Sleep Regulation");
// Sleep architecture bar
sl.addText("SLEEP ARCHITECTURE EFFECTS OF eCB SIGNALING", {
x: 0.4, y: 1.02, w: 12.5, h: 0.35, fontSize: 11, bold: true, color: C.cyan, fontFace: "Calibri", charSpacing: 1,
});
const sleepBars = [
{ label: "Sleep Latency", ecbEffect: "↓ Reduced", cbBlock: "↑ Increased (rimonabant)", color: C.teal },
{ label: "NREM Sleep", ecbEffect: "↑ Enhanced by 2-AG/MAGL inhib.", cbBlock: "↓ Suppressed by CB1 antagonist", color: C.lavender },
{ label: "REM Sleep", ecbEffect: "↓ Reduced by cannabis/2-AG ↑", cbBlock: "↑ Restored/increased by CB1 block", color: C.rose },
{ label: "Nighttime Awakenings", ecbEffect: "↓ Reduced by cannabis", cbBlock: "↑ Increased with CB1 antagonist", color: C.amber },
{ label: "Wakefulness / Arousal", ecbEffect: "↓ Decreased", cbBlock: "↑ Promoted by rimonabant", color: C.cyan },
];
// Header
["Parameter", "eCB Activation Effect", "CB1 Blockade Effect"].forEach((h, i) => {
const xs = [0.4, 3.8, 8.2];
const ws = [3.3, 4.3, 4.8];
sl.addShape(pres.ShapeType.rect, {
x: xs[i], y: 1.45, w: ws[i], h: 0.38,
fill: { color: C.violet }, line: { color: C.lavender, width: 0.8 },
});
sl.addText(h, { x: xs[i] + 0.05, y: 1.47, w: ws[i] - 0.1, h: 0.34, fontSize: 10, bold: true, color: C.gold, fontFace: "Calibri", valign: "middle" });
});
sleepBars.forEach((sb, ri) => {
const y = 1.83 + ri * 0.58;
const bg = ri % 2 === 0 ? "0E0E30" : "1A1040";
[[0.4, 3.3], [3.8, 4.3], [8.2, 4.8]].forEach(([x, w], ci) => {
sl.addShape(pres.ShapeType.rect, { x, y, w, h: 0.54, fill: { color: bg }, line: { color: C.lavender, width: 0.6 } });
});
sl.addShape(pres.ShapeType.ellipse, { x: 0.44, y: y + 0.12, w: 0.3, h: 0.3, fill: { color: sb.color }, line: { color: sb.color, width: 0 } });
sl.addText(sb.label, { x: 0.8, y: y + 0.1, w: 2.85, h: 0.34, fontSize: 10, color: C.white, fontFace: "Calibri", bold: true });
sl.addText(sb.ecbEffect, { x: 3.88, y: y + 0.1, w: 4.22, h: 0.34, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri" });
sl.addText(sb.cbBlock, { x: 8.28, y: y + 0.1, w: 4.72, h: 0.34, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri" });
});
// Bottom information panels
const sleepPanels = [
{ title: "Circadian eCB Rhythm", body: "eCB levels fluctuate in brain and blood in a circadian pattern\nThis diurnal cycle is disrupted by sleep deprivation\n2-AG peaks during active phase; AEA shows distinct rhythmicity\nDisrupted sleep → altered eCB tone → feedback loop", accent: C.teal },
{ title: "MAGL Inhibition & Sleep", body: "MAGL inhibition (↑ 2-AG) → ↑ total sleep time\n→ Enhanced NREM sleep\n→ Suppressed REM sleep\nSimilar profile to cannabis use in humans", accent: C.lavender },
{ title: "Rimonabant & Insomnia", body: "CB1 antagonist rimonabant (now withdrawn):\n→ Promotes wakefulness & arousal\n→ Reduces NREM sleep\n→ Multiple reports of sleep disruption\nConfirms physiological role of eCB in sleep-wake cycle", accent: C.amber },
];
sleepPanels.forEach((p, i) => {
infoBox(sl, p.title, p.body, 0.38 + i * 4.35, 4.72, 4.1, 2.55, p.accent);
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 — SUMMARY
// ═══════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
sl.background = { color: C.deepPurple };
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { type: "gradient", gradientType: "linear", color: C.deepPurple, color2: "001530", angle: 140 },
line: { color: C.deepPurple, width: 0 },
});
// Bottom accent
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 7.0, w: 13.3, h: 0.5,
fill: { type: "gradient", gradientType: "linear", color: C.teal, color2: C.violet, angle: 0 },
line: { color: C.teal, width: 0 },
});
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.cyan }, line: { color: C.cyan, width: 0 } });
sl.addText("Summary: Physiological Roles of Endocannabinoids", {
x: 0.4, y: 0.18, w: 12.5, h: 0.65,
fontSize: 26, bold: true, color: C.white, fontFace: "Calibri",
glow: { size: 8, opacity: 0.4, color: C.cyan },
});
const summaryItems = [
{ icon: "🔬", role: "Receptor System", key: "CB1 (brain, periphery) & CB2 (immune cells)", color: C.lavender },
{ icon: "⚡", role: "Retrograde Signaling", key: "eCBs suppress presynaptic neurotransmission; mediate LTD, DSE, DSI", color: C.cyan },
{ icon: "🎁", role: "Reward", key: "Disinhibit VTA dopamine via CB1 on GABA terminals → ↑ nucleus accumbens DA", color: C.gold },
{ icon: "🌿", role: "Stress", key: "Terminate stress response; amygdala gating; FAAH P129T → low anxiety", color: C.green },
{ icon: "🍽️", role: "Appetite", key: "eCBs stimulate AgRP/NPY; modulated by leptin, ghrelin; peripheral metabolic effects", color: C.amber },
{ icon: "💊", role: "Pain", key: "Analgesia at cortex, PAG, spinal, peripheral levels; FAAH mutation = pain insensitivity", color: C.rose },
{ icon: "🛡️", role: "Inflammation", key: "CB2 on immune cells → ↓ cytokines; 2-AG/MAGL/COX-2 pathway in neuroinflammation", color: C.teal },
{ icon: "😴", role: "Sleep", key: "↑ NREM, ↓ REM; circadian eCB oscillations; rimonabant disrupts sleep", color: C.lavender },
];
summaryItems.forEach((s, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.38 + col * 6.5;
const y = 1.0 + row * 1.46;
sl.addShape(pres.ShapeType.roundRect, {
x, y, w: 6.2, h: 1.3,
fill: { color: "1A1040", transparency: 20 },
line: { color: s.color, width: 2 }, rectRadius: 0.1,
});
sl.addShape(pres.ShapeType.ellipse, {
x: x + 0.1, y: y + 0.2, w: 0.9, h: 0.9,
fill: { color: s.color, transparency: 30 }, line: { color: s.color, width: 0 },
});
sl.addText(s.icon, { x: x + 0.1, y: y + 0.22, w: 0.9, h: 0.86, fontSize: 20, align: "center" });
sl.addText(s.role, { x: x + 1.1, y: y + 0.1, w: 5.0, h: 0.35, fontSize: 12, bold: true, color: s.color, fontFace: "Calibri" });
sl.addText(s.key, { x: x + 1.1, y: y + 0.45, w: 5.0, h: 0.75, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", lineSpacingMultiple: 1.2, valign: "top" });
});
}
// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/endocannabinoid-ppt/Endocannabinoids_Physiology.pptx" })
.then(() => console.log("✅ DONE: Endocannabinoids_Physiology.pptx"))
.catch(e => { console.error("❌ ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/endocannabinoid-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/endocannabinoid-ppt/Endocannabinoids_Physiology.p…
Endocannabinoids Physiology
Presentation · PPTX
| Slide | Title | Design Highlights |
|---|---|---|
| 1 | Title Slide | Deep purple + concentric glowing rings, cyan accent bar |
| 2 | Overview: ECS | 5 column cards (Discovery → CB1 → CB2 → Ligands → Targets) |
| 3 | CB1 & CB2 Receptor Signaling | Custom GPCR membrane diagram + full signaling table (Gi, GIRK, MAP kinase, β-arrestin) |
| 4 | Retrograde Signaling at the Synapse | Hand-drawn synapse diagram with presynaptic terminal, vesicles, CB1, retrograde 2-AG arrow, 5 numbered steps |
| 5 | Ion Channel Effects | 5 column cards: GIRK, Ih/HCN, TRPV1, GABA-A, 5-HT3 with mechanisms |
| 6 | Reward & VTA Circuit | Brain circuit diagram (VTA → NAc), GABA disinhibition pathway, dopamine release |
| 7 | Stress & Anxiety | Stress flowchart (stress → glucocorticoids → eCB mobilization → termination), FAAH P129T clinical box |
| 8 | Appetite & Metabolism | Hypothalamus diagram with AgRP/NPY vs POMC neurons, hormones, obesity paradox |
| 9 | Pain Modulation | 4-level pain pathway (cortex → PAG → spinal → peripheral) + Scottish FAAH case highlight |
| 10 | Inflammation & CB2 | Spoke diagram: CB2 at center with 6 immune cell types; 2-AG/COX-2/MAGL pathway |
| 11 | Sleep Regulation | 5-row comparison table (NREM, REM, latency, etc.) + circadian eCB & rimonabant panels |
| 12 | Summary | 8 icon cards covering all physiological roles |
Can you make this all topics within 4 to 5 slides ?
~/endocannabinoid-ppt/build_compact.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5
const C = {
deepPurple: "1A0533",
purple: "3D1A6E",
violet: "6B2FA0",
lavender: "9B59B6",
teal: "00B4A6",
cyan: "17E5D6",
gold: "FFD700",
amber: "FFA500",
rose: "FF6B8A",
white: "FFFFFF",
offWhite: "F0E6FF",
lightGray: "D0C0E8",
green: "2ECC71",
red: "E74C3C",
blue: "3498DB",
darkBlue: "1A2744",
neonGreen: "39FF14",
dark1: "0A0520",
dark2: "0C1A2E",
};
// ── helpers ───────────────────────────────────────────────────────────────────
function bg(sl, c1, c2, angle=135) {
sl.background = { color: c1 };
sl.addShape(pres.ShapeType.rect, {
x:0,y:0,w:13.3,h:7.5,
fill:{ type:"gradient", gradientType:"linear", color:c1, color2:c2, angle },
line:{ color:c1, width:0 },
});
}
function accentBar(sl, color) {
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:0.18, h:7.5, fill:{ color }, line:{ color, width:0 } });
}
function sTitle(sl, txt) {
sl.addText(txt, {
x:0.35, y:0.1, w:12.6, h:0.62,
fontSize:27, bold:true, color:C.white, fontFace:"Calibri",
glow:{ size:8, opacity:0.4, color:C.cyan },
});
sl.addShape(pres.ShapeType.line, { x:0.35, y:0.74, w:12.6, h:0, line:{ color:C.cyan, width:1.5 } });
}
function miniCard(sl, title, lines, x, y, w, h, accent) {
sl.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill:{ color:"1A1040", transparency:15 },
line:{ color:accent, width:2 }, rectRadius:0.09,
});
sl.addShape(pres.ShapeType.roundRect, {
x, y, w, h:0.36,
fill:{ color:accent, transparency:10 },
line:{ color:accent, width:0 }, rectRadius:0.09,
});
sl.addText(title, {
x:x+0.08, y:y+0.04, w:w-0.16, h:0.3,
fontSize:10, bold:true, color:C.deepPurple, fontFace:"Calibri", align:"center",
});
const rich = lines.map((t,i) => ({
text: t,
options:{ bullet:{ type:"bullet", indent:8 }, breakLine: i < lines.length-1 },
}));
sl.addText(rich, {
x:x+0.1, y:y+0.4, w:w-0.2, h:h-0.48,
fontSize:9, color:C.offWhite, fontFace:"Calibri",
valign:"top", lineSpacingMultiple:1.22,
});
}
function rowLabel(sl, txt, x, y, w, color) {
sl.addShape(pres.ShapeType.roundRect, {
x, y, w, h:0.38, fill:{ color }, line:{ color, width:0 }, rectRadius:0.06,
});
sl.addText(txt, { x:x+0.06, y:y+0.04, w:w-0.12, h:0.3, fontSize:10, bold:true, color:C.deepPurple, align:"center", fontFace:"Calibri" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 ─ TITLE
// ══════════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
bg(sl, C.deepPurple, "001530", 145);
// Decorative concentric circles
[[6.0,1.2,5.2,5.2,C.violet,75],[6.45,1.65,4.3,4.3,C.lavender,65],[6.9,2.1,3.4,3.4,C.teal,55],[7.35,2.55,2.5,2.5,C.cyan,45],[7.8,3.0,1.6,1.6,C.gold,30]].forEach(([x,y,w,h,c,t]) => {
sl.addShape(pres.ShapeType.ellipse, { x,y,w,h, fill:{ color:c, transparency:t }, line:{ color:c, width:0 } });
});
accentBar(sl, C.cyan);
sl.addText("Physiological Roles of", { x:0.5, y:1.5, w:9.0, h:0.7, fontSize:32, color:C.lightGray, fontFace:"Calibri Light", charSpacing:2 });
sl.addText("Endocannabinoids", { x:0.5, y:2.15, w:9.5, h:1.05, fontSize:54, bold:true, color:C.white, fontFace:"Calibri", glow:{ size:14, opacity:0.5, color:C.cyan } });
sl.addText("CB1 & CB2 Receptors • Retrograde Signaling • Reward • Stress • Appetite • Pain • Inflammation • Sleep", {
x:0.5, y:3.28, w:9.5, h:0.42, fontSize:12.5, color:C.cyan, italic:true, fontFace:"Calibri",
});
// 4 topic chips
[["🧠 Neural","CB1 Signaling"],["🛡️ Immune","CB2 / Inflammation"],["🌡️ Homeostasis","Appetite / Metabolism"],["😴 Wellbeing","Reward / Stress / Sleep"]].forEach(([icon,sub],i) => {
sl.addShape(pres.ShapeType.roundRect, {
x:0.5+i*2.38, y:3.9, w:2.22, h:0.72,
fill:{ color:[C.violet,C.teal,C.amber,C.rose][i], transparency:50 },
line:{ color:[C.lavender,C.cyan,C.gold,C.rose][i], width:1.5 }, rectRadius:0.08,
});
sl.addText(icon+"\n"+sub, { x:0.52+i*2.38, y:3.94, w:2.18, h:0.64, fontSize:9, color:C.white, align:"center", fontFace:"Calibri" });
});
sl.addShape(pres.ShapeType.rect, { x:0, y:7.05, w:13.3, h:0.45, fill:{ color:C.violet, transparency:30 }, line:{ color:C.violet, width:0 } });
sl.addText("Pharmacology & Neuroscience | Endocannabinoid System", { x:0.4, y:7.09, w:12.5, h:0.36, fontSize:10.5, color:C.lightGray, italic:true, fontFace:"Calibri" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 ─ RECEPTORS, SIGNALING & RETROGRADE DIAGRAM
// ══════════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
bg(sl, "0D1B3E", C.deepPurple, 130);
accentBar(sl, C.lavender);
sTitle(sl, "Cannabinoid Receptors & Retrograde Synaptic Signaling");
// ── LEFT: Synapse diagram ─────────────────────────────────────────────────
// Presynaptic
sl.addShape(pres.ShapeType.roundRect, {
x:0.3, y:0.9, w:4.0, h:1.55,
fill:{ color:"1A3A5C", transparency:10 }, line:{ color:C.blue, width:2 }, rectRadius:0.12,
});
sl.addText("PRESYNAPTIC TERMINAL", { x:0.38, y:0.96, w:3.84, h:0.3, fontSize:9, bold:true, color:C.cyan, align:"center", fontFace:"Calibri" });
[[0.55,1.38],[1.02,1.28],[1.5,1.38],[1.98,1.28],[2.46,1.38],[2.94,1.28]].forEach(([x,y]) => {
sl.addShape(pres.ShapeType.ellipse, { x,y,w:0.26,h:0.26, fill:{ color:C.teal }, line:{ color:C.cyan, width:1 } });
});
sl.addText("NT vesicles", { x:0.5, y:1.7, w:1.2, h:0.22, fontSize:7.5, color:C.lightGray, fontFace:"Calibri" });
sl.addShape(pres.ShapeType.roundRect, {
x:3.0, y:1.08, w:1.0, h:0.38,
fill:{ color:C.violet }, line:{ color:C.lavender, width:1 }, rectRadius:0.05,
});
sl.addText("CB1 Receptor", { x:3.0, y:1.12, w:1.0, h:0.3, fontSize:7, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
// Cleft
sl.addShape(pres.ShapeType.rect, {
x:0.3, y:2.45, w:4.0, h:0.35,
fill:{ color:"0D2244", transparency:20 }, line:{ color:C.lightGray, width:0.5, dashType:"dashDot" },
});
sl.addText("Synaptic Cleft", { x:1.5, y:2.5, w:1.6, h:0.24, fontSize:7.5, color:C.lightGray, italic:true, fontFace:"Calibri" });
// Retrograde arrow
sl.addShape(pres.ShapeType.line, { x:3.3, y:2.43, w:0, h:-0.92, line:{ color:C.rose, width:2.5, endArrowType:"arrow" } });
sl.addText("2-AG\n(retrograde)", { x:3.42, y:1.7, w:0.85, h:0.4, fontSize:7.5, color:C.rose, bold:true, fontFace:"Calibri" });
// Postsynaptic
sl.addShape(pres.ShapeType.roundRect, {
x:0.3, y:2.8, w:4.0, h:1.85,
fill:{ color:"1C3A1A", transparency:10 }, line:{ color:C.green, width:2 }, rectRadius:0.12,
});
sl.addText("POSTSYNAPTIC NEURON", { x:0.38, y:2.86, w:3.84, h:0.3, fontSize:9, bold:true, color:C.green, align:"center", fontFace:"Calibri" });
sl.addShape(pres.ShapeType.ellipse, { x:0.45, y:3.25, w:1.1, h:0.4, fill:{ color:C.amber, transparency:30 }, line:{ color:C.gold, width:1.2 } });
sl.addText("Ca²⁺ influx", { x:0.45, y:3.3, w:1.1, h:0.3, fontSize:7.5, color:C.white, align:"center", fontFace:"Calibri" });
sl.addShape(pres.ShapeType.roundRect, { x:1.7, y:3.25, w:1.5, h:0.4, fill:{ color:C.rose, transparency:30 }, line:{ color:C.rose, width:1.2 }, rectRadius:0.05 });
sl.addText("DAGLα → 2-AG", { x:1.7, y:3.3, w:1.5, h:0.3, fontSize:8, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
sl.addShape(pres.ShapeType.roundRect, { x:3.25, y:3.25, w:0.85, h:0.4, fill:{ color:"5A2080", transparency:20 }, line:{ color:C.lavender, width:1 }, rectRadius:0.05 });
sl.addText("Gq/11", { x:3.25, y:3.3, w:0.85, h:0.3, fontSize:8, color:C.offWhite, align:"center", fontFace:"Calibri" });
// Step annotations
const steps = [["①Depolarization → Ca²⁺ → DAGLα activates",C.teal],["②2-AG travels retrogradely to CB1",C.rose],["③CB1 → Gi → ↓VGCC, ↓adenylyl cyclase → ↓NT release",C.lavender],["④Transient: DSE/DSI (secs); Sustained: LTD (mins–long)",C.gold]];
steps.forEach(([t,c],i) => {
sl.addShape(pres.ShapeType.roundRect, { x:0.3, y:4.78+i*0.56, w:4.0, h:0.48, fill:{ color:"1E1040", transparency:20 }, line:{ color:c, width:1.2 }, rectRadius:0.06 });
sl.addText(t, { x:0.38, y:4.82+i*0.56, w:3.84, h:0.4, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"middle" });
});
// ── MIDDLE: CB1 vs CB2 comparison ────────────────────────────────────────
const mid = 4.55;
rowLabel(sl, "CB1 Receptor", mid, 0.9, 2.82, C.violet);
const cb1 = ["Presynaptic GABAergic interneurons (CCK+)","Astrocytes, hepatocytes, adipocytes, skeletal muscle","Mediates psychoactive effects of THC","Expression changes with age → CNS development effects","Canonical: Gi → ↓cAMP, ↓VGCC, ↑GIRK, ↑MAPK","Also: somatic CB1 → GIRK hyperpolarization","CB1 → JNK1 → cGMP → HCN (Ih) → impairs learning"];
miniCard(sl, "", cb1, mid, 1.3, 2.82, 2.6, C.violet);
rowLabel(sl, "CB2 Receptor", mid, 4.05, 2.82, C.teal);
const cb2 = ["Highly expressed in immune cells & microglia","Lower levels: neurons, endothelial, pericytes","Mediates immunomodulation (not psychoactivity)","↓ pro-inflammatory cytokines; ↑ anti-inflammatory","MAP kinase activation → reparative functions","Biased agonism: ligand-specific G-protein coupling","Target for pain craving & addiction reduction"];
miniCard(sl, "", cb2, mid, 4.45, 2.82, 2.85, C.teal);
// ── RIGHT: Signaling table ────────────────────────────────────────────────
sl.addText("Canonical Signaling Pathways", { x:7.6, y:0.88, w:5.5, h:0.3, fontSize:10.5, bold:true, color:C.gold, fontFace:"Calibri" });
const sigRows = [
["Pathway","Effect"],
["Gi → ↓ Adenylyl Cyclase","↓ cAMP → reduced activity"],
["Gi → GIRK K⁺ channels","↓ Membrane hyperpolarization"],
["Gi → ↓ VGCC Ca²⁺","↓ Neurotransmitter release"],
["↑ MAP Kinases (ERK1/2)","Gene expression changes"],
["β-Arrestin","Receptor desensitization"],
["Gs (conditional)","↑ cAMP activation"],
["PPARα / PPARγ","Metabolism, neuroprotection"],
["TRPV1 (AEA)","Pain / neuroinflammation"],
["5-HT3, GABAA (direct)","Ion channel modulation"],
];
sigRows.forEach((row, ri) => {
const y = 1.22 + ri * 0.52;
[[7.6,2.65],[10.3,2.7]].forEach(([x,w],ci) => {
sl.addShape(pres.ShapeType.rect, {
x, y, w, h:0.48,
fill:{ color: ri===0 ? C.violet : (ri%2===0 ? "1E1040" : "2A1860") },
line:{ color:C.lavender, width:0.7 },
});
sl.addText(row[ci], {
x:x+0.05, y:y+0.06, w:w-0.1, h:0.36,
fontSize:ri===0?10:9, bold:ri===0, color:ri===0?C.gold:C.offWhite, fontFace:"Calibri", valign:"middle",
});
});
});
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 ─ REWARD, STRESS & SLEEP
// ══════════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
bg(sl, "0F0020", "001A20", 140);
accentBar(sl, C.gold);
sTitle(sl, "Reward, Stress Resolution & Sleep");
// ── TOP LEFT: REWARD (VTA circuit) ───────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:0.28, y:0.85, w:4.3, h:3.1, fill:{ color:"0A0018", transparency:10 }, line:{ color:C.gold, width:2 }, rectRadius:0.1 });
sl.addText("REWARD", { x:0.36, y:0.9, w:4.14, h:0.3, fontSize:11, bold:true, color:C.gold, align:"center", fontFace:"Calibri" });
// VTA
sl.addShape(pres.ShapeType.ellipse, { x:0.42, y:1.3, w:2.1, h:1.0, fill:{ color:C.violet, transparency:30 }, line:{ color:C.lavender, width:2 } });
sl.addText("VTA", { x:0.42, y:1.52, w:2.1, h:0.35, fontSize:10, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
// GABA neuron
sl.addShape(pres.ShapeType.ellipse, { x:0.5, y:1.38, w:0.65, h:0.45, fill:{ color:C.rose, transparency:30 }, line:{ color:C.rose, width:1.2 } });
sl.addText("GABA", { x:0.5, y:1.44, w:0.65, h:0.33, fontSize:7, color:C.white, align:"center", fontFace:"Calibri" });
// DA neuron
sl.addShape(pres.ShapeType.ellipse, { x:1.5, y:1.38, w:0.65, h:0.45, fill:{ color:C.gold, transparency:30 }, line:{ color:C.gold, width:1.2 } });
sl.addText("DA", { x:1.5, y:1.44, w:0.65, h:0.33, fontSize:7, color:C.white, align:"center", fontFace:"Calibri" });
// Inhibition arrow
sl.addShape(pres.ShapeType.line, { x:1.17, y:1.61, w:0.35, h:0, line:{ color:C.rose, width:1.5, endArrowType:"arrow" } });
sl.addText("inhibits", { x:1.04, y:1.44, w:0.66, h:0.2, fontSize:6.5, color:C.rose, italic:true, fontFace:"Calibri" });
// CB1 block arrow
sl.addShape(pres.ShapeType.line, { x:0.84, y:1.36, w:0, h:-0.42, line:{ color:C.cyan, width:2, endArrowType:"arrow" } });
sl.addText("CB1\nblocks", { x:0.6, y:0.7, w:0.8, h:0.38, fontSize:7, color:C.cyan, bold:true, fontFace:"Calibri" });
// DA arrow → NAc
sl.addShape(pres.ShapeType.line, { x:2.54, y:1.8, w:0.65, h:0, line:{ color:C.gold, width:2.5, endArrowType:"arrow" } });
sl.addText("DA ↑", { x:2.55, y:1.85, w:0.65, h:0.22, fontSize:7.5, color:C.gold, bold:true, fontFace:"Calibri" });
// NAc
sl.addShape(pres.ShapeType.ellipse, { x:3.24, y:1.3, w:1.2, h:1.0, fill:{ color:"1A3040", transparency:10 }, line:{ color:C.teal, width:2 } });
sl.addText("Nucleus\nAccumbens", { x:3.24, y:1.62, w:1.2, h:0.44, fontSize:8, bold:true, color:C.teal, align:"center", fontFace:"Calibri" });
const rewBullets = ["eCBs disinhibit DA neurons in VTA","GABA terminals → CB1 → ↓ GABA release","Cocaine & exercise also require VTA eCB signaling","P129T FAAH variant → ↑ AEA → ↑ reward reactivity","CB1 antagonism → anhedonia, depression"];
const rich1 = rewBullets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<rewBullets.length-1 } }));
sl.addText(rich1, { x:0.38, y:2.42, w:4.1, h:1.44, fontSize:8.8, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
// ── TOP MIDDLE: STRESS ────────────────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:4.72, y:0.85, w:4.0, h:3.1, fill:{ color:"0A1A00", transparency:10 }, line:{ color:C.rose, width:2 }, rectRadius:0.1 });
sl.addText("STRESS RESOLUTION", { x:4.8, y:0.9, w:3.84, h:0.3, fontSize:11, bold:true, color:C.rose, align:"center", fontFace:"Calibri" });
// Flow
const stressFlow = [["STRESS",C.red],["Glucocorticoids\n↑",C.amber],["eCB\nMobilization",C.teal],["Response\nTerminated",C.green]];
stressFlow.forEach(([lbl,c],i) => {
sl.addShape(pres.ShapeType.roundRect, { x:4.82+i*0.96, y:1.26, w:0.84, h:0.7, fill:{ color:c, transparency:40 }, line:{ color:c, width:1.5 }, rectRadius:0.07 });
sl.addText(lbl, { x:4.84+i*0.96, y:1.28, w:0.8, h:0.66, fontSize:7.5, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
if (i<3) sl.addShape(pres.ShapeType.line, { x:5.68+i*0.96, y:1.61, w:0.15, h:0, line:{ color:C.lightGray, width:1.5, endArrowType:"arrow" } });
});
const stressBullets = ["Stress mobilizes eCBs in brain & periphery","Glucocorticoids are key mediators of eCB release","Amygdala: eCBs gate stress-induced excitation → ↓ anxiety","CB1 on sympathetic terminals → ↓ autonomic response","Chronic stress → impaired eCB function → allostatic load","FAAH P129T: ↑ AEA → low anxiety + blunted stress response","FAAH inhibitors: novel anxiolytic drug target"];
const rich2 = stressBullets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<stressBullets.length-1 } }));
sl.addText(rich2, { x:4.82, y:2.08, w:3.8, h:1.78, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
// ── TOP RIGHT: SLEEP ──────────────────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:8.86, y:0.85, w:4.14, h:3.1, fill:{ color:"050A1A", transparency:10 }, line:{ color:C.lavender, width:2 }, rectRadius:0.1 });
sl.addText("😴 SLEEP", { x:8.94, y:0.9, w:3.98, h:0.3, fontSize:11, bold:true, color:C.lavender, align:"center", fontFace:"Calibri" });
const sleepRows = [
["Parameter","eCB ↑","CB1 Block"],
["Sleep Latency","↓ Reduced","↑ Increased"],
["NREM Sleep","↑ Enhanced","↓ Suppressed"],
["REM Sleep","↓ Reduced","↑ Restored"],
["Wakefulness","↓ Less","↑ Promoted"],
];
sleepRows.forEach((r,ri)=>{
[[8.9,1.32],[10.04,1.18],[11.4,1.3]].forEach(([x,w],ci)=>{
sl.addShape(pres.ShapeType.rect, {
x, y:1.28+ri*0.47, w, h:0.44,
fill:{ color:ri===0?C.violet:(ri%2===0?"1E1040":"2A1860") },
line:{ color:C.lavender, width:0.6 },
});
sl.addText(r[ci], { x:x+0.04, y:1.3+ri*0.47, w:w-0.08, h:0.4, fontSize:ri===0?8.5:8, bold:ri===0, color:ri===0?C.gold:C.offWhite, fontFace:"Calibri", valign:"middle" });
});
});
const sleepBullets = ["Circadian eCB oscillations (brain + blood)","Sleep deprivation disrupts diurnal eCB cycle","MAGL inhibition (↑2-AG) → ↑ NREM, ↓ REM","Rimonabant (CB1 block) → insomnia, wakefulness","eCB signaling contributes to normative sleep-wake cycles"];
const rich3 = sleepBullets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<sleepBullets.length-1 } }));
sl.addText(rich3, { x:8.96, y:3.65, w:3.94, h:1.22, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
// ── BOTTOM STRIP: key molecules ───────────────────────────────────────────
sl.addShape(pres.ShapeType.rect, { x:0.28, y:4.08, w:12.72, h:0.04, fill:{ color:C.cyan }, line:{ color:C.cyan, width:0 } });
const molChips = [["AEA (Anandamide)","N-arachidonoyl-ethanolamine; FAAH substrate; activates CB1/TRPV1",C.violet],["2-AG","Main eCB retrograde messenger; MAGL substrate; full CB1/CB2 agonist",C.teal],["FAAH","Degrades AEA; P129T variant → ↑ AEA → anxiolysis & pain insensitivity",C.rose],["MAGL","Degrades 2-AG; inhibition → ↑ sleep, ↓ neuroinflammation via COX-2",C.amber]];
molChips.forEach(([n,d,c],i)=>{
sl.addShape(pres.ShapeType.roundRect, { x:0.28+i*3.2, y:4.18, w:3.08, h:1.42, fill:{ color:"1A1040", transparency:10 }, line:{ color:c, width:2 }, rectRadius:0.09 });
sl.addShape(pres.ShapeType.roundRect, { x:0.28+i*3.2, y:4.18, w:3.08, h:0.36, fill:{ color:c, transparency:15 }, line:{ color:c, width:0 }, rectRadius:0.09 });
sl.addText(n, { x:0.36+i*3.2, y:4.22, w:2.92, h:0.28, fontSize:10, bold:true, color:C.deepPurple, fontFace:"Calibri", align:"center" });
sl.addText(d, { x:0.36+i*3.2, y:4.6, w:2.92, h:0.94, fontSize:8.8, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
});
// ── BOTTOM STRIP 2: non-CB targets ────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:0.28, y:5.72, w:12.72, h:1.58, fill:{ color:"1A1040", transparency:20 }, line:{ color:C.cyan, width:1.5 }, rectRadius:0.09 });
sl.addText("Non-CB1/CB2 Targets of Endocannabinoids:", { x:0.42, y:5.76, w:4.5, h:0.3, fontSize:10, bold:true, color:C.cyan, fontFace:"Calibri" });
const nonCBtargets = ["PPARα & PPARγ — Regulate metabolism, inflammation, neuroprotection, cellular differentiation","TRPV1 — AEA activation; pain & neuroinflammation (requires higher [eCB])","5-HT3 — Antiemetic effects (requires validation at physiological concentrations)","GABAA & Glycine receptors — Direct modulation; concentration-dependent effects","HCN (Ih) channels — CB1 → JNK1 → cGMP → HCN → dendritic excitability & learning impairment"];
const rich4 = nonCBtargets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<nonCBtargets.length-1 } }));
sl.addText(rich4, { x:0.42, y:6.1, w:12.44, h:1.1, fontSize:9, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 ─ APPETITE, PAIN & INFLAMMATION
// ══════════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
bg(sl, "1A0A00", "001030", 130);
accentBar(sl, C.amber);
sTitle(sl, "Appetite & Metabolism | Pain | Inflammation");
// ── LEFT THIRD: APPETITE ──────────────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:0.28, y:0.85, w:4.1, h:6.45, fill:{ color:"1A0A00", transparency:20 }, line:{ color:C.amber, width:2 }, rectRadius:0.1 });
sl.addText("🍽️ APPETITE & METABOLISM", { x:0.36, y:0.91, w:3.94, h:0.3, fontSize:10.5, bold:true, color:C.amber, align:"center", fontFace:"Calibri" });
// Mini hypothalamus diagram
sl.addShape(pres.ShapeType.ellipse, { x:0.5, y:1.3, w:3.7, h:2.0, fill:{ color:"2A1A00", transparency:20 }, line:{ color:C.gold, width:1.5 } });
sl.addText("Hypothalamus / Arcuate Nucleus", { x:0.55, y:1.34, w:3.6, h:0.3, fontSize:8, color:C.gold, italic:true, align:"center", fontFace:"Calibri" });
// AgRP
sl.addShape(pres.ShapeType.roundRect, { x:0.6, y:1.72, w:1.5, h:0.64, fill:{ color:C.red, transparency:40 }, line:{ color:C.red, width:1.3 }, rectRadius:0.07 });
sl.addText("AgRP/NPY\n↑ Food Intake", { x:0.6, y:1.76, w:1.5, h:0.56, fontSize:8, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
// POMC
sl.addShape(pres.ShapeType.roundRect, { x:2.3, y:1.72, w:1.6, h:0.64, fill:{ color:C.green, transparency:40 }, line:{ color:C.green, width:1.3 }, rectRadius:0.07 });
sl.addText("POMC/MCH4\n↓ Food Intake", { x:2.3, y:1.76, w:1.6, h:0.56, fontSize:8, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
// eCB arrows
sl.addShape(pres.ShapeType.line, { x:1.35, y:1.7, w:0, h:-0.28, line:{ color:C.teal, width:2, endArrowType:"arrow" } });
sl.addText("eCB→↑", { x:0.9, y:1.3, w:0.8, h:0.22, fontSize:7.5, color:C.teal, bold:true, fontFace:"Calibri" });
sl.addShape(pres.ShapeType.line, { x:3.1, y:1.7, w:0, h:-0.28, line:{ color:C.rose, width:2, endArrowType:"arrow" } });
sl.addText("eCB→↓", { x:2.7, y:1.3, w:0.8, h:0.22, fontSize:7.5, color:C.rose, bold:true, fontFace:"Calibri" });
// Hormones
[["Leptin ↓eCB", C.green, 0.6],["Ghrelin ↑eCB", C.red, 1.6],["Glucocorticoids ↑eCB", C.amber, 2.55]].forEach(([lbl,c,x]) => {
sl.addShape(pres.ShapeType.roundRect, { x, y:2.48, w:0.92, h:0.46, fill:{ color:c, transparency:55 }, line:{ color:c, width:1 }, rectRadius:0.05 });
sl.addText(lbl, { x, y:2.52, w:0.92, h:0.38, fontSize:7, color:C.white, align:"center", fontFace:"Calibri" });
});
const appBullets = ["Fasting ↑ eCBs; satiety ↓ eCBs","Cannabis → 'munchies' via CB1 in hypothalamus","Peripheral: vagal afferents + sympathetic terminals enhance food intake","Hepatic CB1 → fatty liver & hepatic steatosis","Adipose CB1 → adipogenesis & fat accumulation","↑ eCBs → insulin resistance, type 2 diabetes","CB1 antagonists → weight loss, anorexia","Paradox: cannabis users have LOWER BMI in population studies (THC partial agonism may occlude 2-AG)"];
const rich5 = appBullets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<appBullets.length-1 } }));
sl.addText(rich5, { x:0.38, y:3.06, w:3.9, h:4.1, fontSize:8.8, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.22 });
// ── MIDDLE THIRD: PAIN ────────────────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:4.55, y:0.85, w:4.1, h:6.45, fill:{ color:"100020", transparency:20 }, line:{ color:C.rose, width:2 }, rectRadius:0.1 });
sl.addText("💊 PAIN MODULATION", { x:4.63, y:0.91, w:3.94, h:0.3, fontSize:10.5, bold:true, color:C.rose, align:"center", fontFace:"Calibri" });
// Pain ladder
const painLevels = [
{ name:"Cortex / Amygdala", note:"Affective pain; cortical-amygdalar eCB gating", color:C.rose, y:1.3 },
{ name:"PAG & RVM", note:"Descending inhibition; CB1 analgesia; stress-induced eCB → PAG analgesia", color:C.lavender, y:2.35 },
{ name:"Spinal Cord", note:"CB1 + TRPV1; 2-AG & AEA on spinal pain networks", color:C.teal, y:3.4 },
{ name:"Peripheral DRG", note:"CB1 synthesized in DRG → transported to terminals; direct pain suppression", color:C.green, y:4.45 },
];
painLevels.forEach((p,i) => {
sl.addShape(pres.ShapeType.roundRect, { x:4.65, y:p.y, w:3.9, h:0.88, fill:{ color:p.color, transparency:65 }, line:{ color:p.color, width:1.8 }, rectRadius:0.08 });
sl.addText(p.name, { x:4.73, y:p.y+0.06, w:3.74, h:0.3, fontSize:9.5, bold:true, color:p.color, fontFace:"Calibri" });
sl.addText(p.note, { x:4.73, y:p.y+0.38, w:3.74, h:0.46, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.15 });
if (i<3) sl.addShape(pres.ShapeType.line, { x:6.6, y:p.y+0.88, w:0, h:0.3, line:{ color:C.lightGray, width:1.2, dashType:"dash", endArrowType:"arrow" } });
});
// FAAH case box
sl.addShape(pres.ShapeType.roundRect, { x:4.65, y:5.55, w:3.9, h:1.55, fill:{ color:"1A0020", transparency:15 }, line:{ color:C.gold, width:2 }, rectRadius:0.09 });
sl.addText("⭐ Clinical Case: FAAH Mutation", { x:4.73, y:5.59, w:3.74, h:0.3, fontSize:9.5, bold:true, color:C.gold, fontFace:"Calibri" });
sl.addText("Scottish woman: P129T FAAH mutation + upstream pseudogene deletion → robust ↑ AEA\n→ Pain insensitivity + accelerated healing (Habib et al., 2019)\nValidates FAAH inhibitors as chronic pain targets", { x:4.73, y:5.93, w:3.74, h:1.08, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
// ── RIGHT THIRD: INFLAMMATION ─────────────────────────────────────────────
sl.addShape(pres.ShapeType.roundRect, { x:8.82, y:0.85, w:4.18, h:6.45, fill:{ color:"001A10", transparency:20 }, line:{ color:C.green, width:2 }, rectRadius:0.1 });
sl.addText("🛡️ INFLAMMATION", { x:8.9, y:0.91, w:4.02, h:0.3, fontSize:10.5, bold:true, color:C.green, align:"center", fontFace:"Calibri" });
// CB2 spoke mini
sl.addShape(pres.ShapeType.ellipse, { x:10.06, y:1.3, w:1.7, h:1.0, fill:{ color:C.green, transparency:40 }, line:{ color:C.green, width:2.5 } });
sl.addText("CB2\nReceptor", { x:10.06, y:1.58, w:1.7, h:0.44, fontSize:11, bold:true, color:C.white, align:"center", fontFace:"Calibri" });
const immCells = [["T-cells",C.teal,8.92,1.35],["Neutrophils",C.cyan,8.92,1.92],["Microglia\n(CNS)",C.lavender,8.92,2.49],["NK cells",C.amber,11.1,1.35],["Monocytes",C.rose,11.1,1.92],["Keratinocytes",C.green,11.1,2.49]];
immCells.forEach(([n,c,x,y])=>{
sl.addShape(pres.ShapeType.roundRect, { x, y, w:0.98, h:0.52, fill:{ color:c, transparency:60 }, line:{ color:c, width:1.2 }, rectRadius:0.06 });
sl.addText(n, { x:x+0.04, y:y+0.05, w:0.9, h:0.42, fontSize:7.5, color:C.white, align:"center", fontFace:"Calibri" });
// line to center
const cx = x < 10.0 ? x+0.98 : x;
const cy = y+0.26;
const tx = x < 10.0 ? 10.06 : 11.1+0.02;
sl.addShape(pres.ShapeType.line, { x:cx, y:cy, w:tx-cx, h:1.3+0.5-cy+1.3, line:{ color:c, width:1 } });
});
const inflBullets = ["CB2 on immune cells → ↓ pro-inflammatory cytokines (IL-1β, TNF-α, IL-6)","↑ anti-inflammatory cytokine release","↓ Immune cell proliferation & migration","T-cell CB2 → restricts CNS infiltration; CB2 deficits → MS-like pathology","Microglia CB2 rapidly induced by brain injury/inflammation","MAP kinase via CB2 → reparative functions (Eljaschewitsch et al., 2006)","2-AG in astrocyte membranes → arachidonic acid reservoir","Inflammation → ↑ MAGL (astrocytes) → ↑ AA → COX-2 → prostaglandins (neuroinflammation)","CB1 on some immune cells but CB2 is PRIMARY anti-inflammatory mediator"];
const rich6 = inflBullets.map((t,i)=>({ text:t, options:{ bullet:{ type:"bullet", indent:8 }, breakLine:i<inflBullets.length-1 } }));
sl.addText(rich6, { x:8.92, y:3.14, w:3.98, h:4.08, fontSize:8.5, color:C.offWhite, fontFace:"Calibri", valign:"top", lineSpacingMultiple:1.2 });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 ─ SUMMARY DASHBOARD
// ══════════════════════════════════════════════════════════════════════════════
{
const sl = pres.addSlide();
bg(sl, C.deepPurple, "001530", 140);
// Bottom accent
sl.addShape(pres.ShapeType.rect, { x:0, y:7.0, w:13.3, h:0.5, fill:{ type:"gradient", gradientType:"linear", color:C.teal, color2:C.violet, angle:0 }, line:{ color:C.teal, width:0 } });
accentBar(sl, C.cyan);
sl.addText("Summary: Endocannabinoid System at a Glance", {
x:0.35, y:0.1, w:12.6, h:0.62,
fontSize:26, bold:true, color:C.white, fontFace:"Calibri",
glow:{ size:8, opacity:0.4, color:C.cyan },
});
sl.addShape(pres.ShapeType.line, { x:0.35, y:0.74, w:12.6, h:0, line:{ color:C.cyan, width:1.5 } });
const summaryItems = [
{ icon:"🔬", role:"Discovery & Receptors", key:"THC → GPCR → CB1 cloned (Howlett et al.); CB2 from immune line\nCB1: brain + periphery; CB2: immune cells + microglia\nGi-coupled; biased agonism; also Gs, Gq/11, β-arrestin", color:C.lavender },
{ icon:"⚡", role:"Retrograde Signaling", key:"Post-synaptic eCB synthesis 'on demand' (DAGLα → 2-AG)\nRetrograde → CB1 → ↓ NT release\nTransient: DSE/DSI/MSE/MSI (seconds); Sustained: LTD (long-term)", color:C.cyan },
{ icon:"🎁", role:"Reward", key:"CB1 on VTA GABA terminals → disinhibit DA neurons\n→ ↑ Dopamine in nucleus accumbens\nRequired for cocaine, exercise reward; FAAH P129T → ↑ reward reactivity", color:C.gold },
{ icon:"🌿", role:"Stress & Anxiety", key:"Glucocorticoids trigger eCB mobilization → terminate stress\nAmygdala eCB gating → restricts anxiety; peripheral CB1 limits autonomic response\nChronic stress → impaired eCB → allostatic load", color:C.green },
{ icon:"🍽️", role:"Appetite & Metabolism", key:"Hypothalamic eCBs: ↑ AgRP/NPY, ↓ POMC → stimulate feeding\nLeptin ↓ eCB; ghrelin & glucocorticoids ↑ eCB\nCB1 antagonism = weight loss; paradox: cannabis users have lower BMI", color:C.amber },
{ icon:"💊", role:"Pain", key:"CB1 at all levels: cortex, PAG (analgesia), spinal, peripheral DRG\nAcute stress → eCB → PAG analgesia\nFAAH P129T mutation → pain insensitivity + fast healing (Habib et al., 2019)", color:C.rose },
{ icon:"🛡️", role:"Inflammation", key:"CB2 on T-cells, neutrophils, NK cells, monocytes, microglia\n↓ cytokines, ↓ migration, ↑ repair; 2-AG/MAGL/COX-2 in neuroinflammation\nCB2 deficit in T-cells → MS pathology", color:C.teal },
{ icon:"😴", role:"Sleep", key:"↑ eCB/2-AG → ↑ NREM, ↓ REM, ↓ latency, ↓ awakenings\nCircadian eCB oscillations; sleep deprivation disrupts eCB rhythm\nCB1 antagonist (rimonabant) → wakefulness + insomnia", color:C.violet },
];
summaryItems.forEach((s, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.28 + col * 6.45;
const y = 0.9 + row * 1.52;
sl.addShape(pres.ShapeType.roundRect, {
x, y, w:6.18, h:1.38,
fill:{ color:"1A1040", transparency:20 },
line:{ color:s.color, width:2 }, rectRadius:0.1,
});
sl.addShape(pres.ShapeType.ellipse, { x:x+0.1, y:y+0.2, w:0.95, h:0.95, fill:{ color:s.color, transparency:30 }, line:{ color:s.color, width:0 } });
sl.addText(s.icon, { x:x+0.1, y:y+0.22, w:0.95, h:0.91, fontSize:22, align:"center" });
sl.addText(s.role, { x:x+1.16, y:y+0.1, w:4.9, h:0.34, fontSize:12, bold:true, color:s.color, fontFace:"Calibri" });
sl.addText(s.key, { x:x+1.16, y:y+0.44, w:4.9, h:0.86, fontSize:8.8, color:C.offWhite, fontFace:"Calibri", lineSpacingMultiple:1.18, valign:"top" });
});
sl.addText("Endocannabinoid System | Pharmacology & Neuroscience", {
x:0.4, y:7.06, w:12.5, h:0.38, fontSize:10.5, color:C.white, italic:true, fontFace:"Calibri",
});
}
// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/endocannabinoid-ppt/Endocannabinoids_Compact.pptx" })
.then(() => console.log("✅ DONE: Endocannabinoids_Compact.pptx"))
.catch(e => { console.error("❌ ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/endocannabinoid-ppt && node build_compact.js 2>&1
ls -lh /home/daytona/workspace/endocannabinoid-ppt/Endocannabinoids_Compact.pptx
Endocannabinoids Compact
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 - Title | Topic overview with 4 domain chips (Neural, Immune, Homeostasis, Wellbeing) and decorative glowing rings on a deep purple gradient |
| 2 - Receptors & Retrograde Signaling | Custom synapse diagram (presynaptic terminal, vesicles, retrograde 2-AG, CB1) + CB1 vs CB2 comparison cards + full signaling pathway table (Gi, GIRK, MAPK, β-arrestin, PPARs, TRPV1) |
| 3 - Reward, Stress & Sleep | VTA-NAc circuit diagram for reward + stress flowchart (Stress→Glucocorticoids→eCB→Termination) + Sleep NREM/REM comparison table + Key molecules strip (AEA, 2-AG, FAAH, MAGL) + Non-CB targets panel |
| 4 - Appetite, Pain & Inflammation | Three-column layout: Hypothalamus feeding circuit (AgRP/NPY vs POMC) + 4-level pain pathway diagram + CB2 immune spoke diagram, each with detailed bullet points and the FAAH mutation clinical case |
| 5 - Summary Dashboard | 8 icon cards covering all 8 physiological roles in a clean 2-column grid |