. * * window.aa needs to exist and be usable by ANY module's script, * however early it runs - main-nav's script, for one, runs near * the top of

91̽»¨

, well before the real search-insights.js * so the download * begins as early as before. Repeat calls share the same downloads, a * failed load is retried on the next call, and the versions / SRI * hashes live only here. * * Algolia Insights is unaffected: window.aa above is still created in * on every page and queues events until search-insights loads. * * window.loadAlgoliaLibs({ priority: 'high' }) (Oct 2026): used by the * /search page, where the first results wait on these libraries. Chrome * gives async scripts low priority, behind images and fonts; this asks * for high instead (fetchpriority). Only the first call for a library * sets its priority - later calls share that download. */ (function (win, doc) { var LIBS = [ { ready: function () { return !!win['algoliasearch/lite']; }, src: 'https://cdn.jsdelivr.net/npm/algoliasearch@5.52.1/dist/lite/builds/browser.umd.js', integrity: 'sha256-I2oYUIvhx1g6l4lTP+yoERbzLIHKzw4AKaBRQPwIeDY=' }, { ready: function () { return !!win.instantsearch; }, src: 'https://cdn.jsdelivr.net/npm/instantsearch.js@4.98.0/dist/instantsearch.production.min.js', integrity: 'sha256-ngmqZk4WBxUw257aMYZayyNBd983INngagv0jI6Ecfs=' } ]; function loadOne(lib, options) { if (lib.ready()) return Promise.resolve(); // One download per library, shared by every caller; reset on // failure so the next call retries just the library that failed. if (lib.pending) return lib.pending; lib.pending = new Promise(function (resolve, reject) { var script = doc.createElement('script'); script.src = lib.src; script.integrity = lib.integrity; script.crossOrigin = 'anonymous'; script.async = true; if (options && options.priority === 'high') script.setAttribute('fetchpriority', 'high'); script.onload = function () { lib.ready() ? resolve() : reject(new Error('Loaded but not available: ' + lib.src)); }; script.onerror = function () { script.remove(); reject(new Error('Could not load ' + lib.src)); }; doc.head.appendChild(script); }); lib.pending.catch(function () { lib.pending = null; }); return lib.pending; } win.loadAlgoliaLibs = function (options) { return Promise.all(LIBS.map(function (lib) { return loadOne(lib, options); })); }; })(window, document); . */ window.hsConversationsSettings = window.hsConversationsSettings || {}; window.hsConversationsSettings.loadImmediately = false; (function (win) { var EVENTS = ['pointerdown', 'keydown', 'touchstart', 'scroll', 'mousemove', 'wheel']; var done = false; /* 19 Oct 2026 - chat widget layout shift (field CLS). Phones fail Core Web Vitals on CLS (p75 ~0.2 site-wide in CrUX for months). Biggest cause found: HubSpot's chat container is fixed to the bottom-right corner and changes size - 100x96 launcher to 282x253 when the welcome message pops up (~5 s after load), and to full screen when a visitor opens the chat. Its top-left corner moves, so Chrome scores it as a layout shift: 0.088 per page view at 360x640 (0.044 at 412x850), on every page. Taps happen inside the chat iframe, so the parent page never sees the input and the open/close shifts count too. Fix: whenever the container's size changes it is made transparent for 400 ms (Chrome doesn't score shifts of invisible elements), then shown again at its new size. Tested on live io1001 at 360x640 in a cookie-less frame: the 0.088 shift no longer appears. The chat itself is unchanged - it just appears 0.4 s later at each resize. Relies on HubSpot's container id; if that changes this does nothing (no error). */ function cloakChatResizes() { var ID = 'hubspot-messages-iframe-container'; function watch(c) { if (c.getAttribute('data-bb-cloak')) return; c.setAttribute('data-bb-cloak', '1'); var last = c.offsetWidth + 'x' + c.offsetHeight, timer = null; new MutationObserver(function () { var size = c.offsetWidth + 'x' + c.offsetHeight; if (size === last) return; last = size; c.style.setProperty('opacity', '0', 'important'); clearTimeout(timer); timer = setTimeout(function () { c.style.removeProperty('opacity'); }, 400); }).observe(c, { attributes: true, attributeFilter: ['style', 'class'], subtree: true, childList: true }); } var found = document.getElementById(ID); if (found) { watch(found); return; } if (!document.body || !('MutationObserver' in win)) return; var mo = new MutationObserver(function () { var c = document.getElementById(ID); if (c) { mo.disconnect(); watch(c); } }); mo.observe(document.body, { childList: true }); setTimeout(function () { mo.disconnect(); }, 30000); } function loadWidget() { var api = win.HubSpotConversations; if (api && api.widget && api.widget.status && api.widget.status().loaded) return; try { cloakChatResizes(); } catch (e) {} if (api && api.widget) api.widget.load(); } function onFirstInteraction() { if (done) return; done = true; EVENTS.forEach(function (type) { win.removeEventListener(type, onFirstInteraction, { passive: true }); }); var start = function () { if (win.HubSpotConversations) loadWidget(); else (win.hsConversationsOnReady = win.hsConversationsOnReady || []).push(loadWidget); }; if ('requestIdleCallback' in win) win.requestIdleCallback(start, { timeout: 1500 }); else setTimeout(start, 200); } EVENTS.forEach(function (type) { win.addEventListener(type, onFirstInteraction, { passive: true }); }); })(window);

91̽»¨

Skip to main content
Blog
Still using HMC3? Why labs are switching to hiPSC-derived microglia

19.09.2025 | Published by 91̽»¨

Still using HMC3? Why labs are switching to hiPSC-derived microglia

Featured Image

The human microglial clone 3 (HMC3) cell line has long been a staple for microglia research, widely used, readily available, and easy to culture. But as expectations around data relevance and human fidelity increase, many researchers are beginning to ask: Are HMC3 cells still the right model?

This blog walks through why labs are replacing HMC3 cells with ioMicroglia, a human iPSC-derived microglia developed by 91̽»¨. It compares the biology, highlights practical considerations, and shows how you can make the switch with minimal disruption.

What are HMC3 cells, and what are the limitations?

HMC3 is a human microglial cell line established in the 1990s through SV40 immortalisation. These cells have been widely adopted because they are easy to maintain and proliferate indefinitely. However, recent analyses reveal several critical issues1. 

 

Known limitations of HMC3 cells

Limited microglial identity | HMC3 cells lack key microglia markers like P2RY12, TREM2, and IBA1. In fact, they express markers more typical of pericytes.

Reduced functionality | HMC3 cells demonstrate limited phagocytosis and a narrow, blunted cytokine response.

Phenotypic drift | As with many immortalised cell lines, long-term culture leads to inconsistency across labs and over passages.

 

If your goal is to model neuroinflammation, neuron-microglia interactions, or human-relevant microglial responses, the immortalised HMC3 cell line is a weak proxy.

ioMicroglia: Human-relevant phenotype, lot-to-lot consistency

ioMicroglia are derived from human iPSCs using opti-oxâ„¢ deterministic cell programming, resulting in:

  • >90% expression of canonical microglial markers like, P2RY12, CX3CR1, IBA1, and TREM2.
  • Functional capabilities, including strong phagocytosis and broad cytokine secretion.
  • Predictable, defined cultures without the risk of transformation or drift.

In short, they behave more like primary human microglia, while offering the consistency of a manufactured cell product.

 

Feature 
HMC3 (immortalised)
ioMicroglia (iPSC-derived, deterministically programmed)
Identity

Pericyte-like, lacks key microglia markers

Canonical microglial marker expression (>90%)

Function

Low phagocytosis, weak cytokine release

Robust phagocytosis, broad cytokine profile

Proliferation

Divides indefinitely

Post-mitotic after programming

Reproducibility

Drift with passage number

Consistent programming to a defined human microglia phenotype, lot-controlled, consistent functionality

Co-culture

Medium compatibility, issues with neurons

Neuron-compatible, optimised co-culture protocols

 

If you currently use HMC3 cells for phagocytosis or inflammatory readouts, and you are looking for a more phenotypically and physiologically relevant model, you can run the same assays with ioMicroglia, often with stronger and more reproducible results.

Do I have to change my workflows?

No. In most cases, you can apply your existing protocols with only minor adjustments:

  • Phagocytosis assays: ioMicroglia engulf fluorescent beads or bacteria more efficiently than HMC3 cells. You may be able to reduce incubation time or cell numbers, making the assay more efficient.
  • Microglial activation and cytokine release assays: ioMicroglia respond to LPS and amyloid-β with secretion of  IL-6, IL-8, TNF-α, IL-1β, IL-12p70, and IL-10. 
  • Neuron-microglia co-culture: ioMicroglia can be co-cultured with human neurons using a hybrid medium. When cultured together, ioMicroglia develop ramified morphology and interact with neurons in a manner similar to what occurs in the CNS.

ioMicroglia_io1021- male_in co-culture with ioGlutamatergic Neurons_ioMicroglia seeded at day 1 post-thaw.mp4

 

There is a short learning curve for handling and adopting workflows (e.g., gentle handling, day 10 differentiation). For an easy start, a video tutorial shows you step by step how to thaw, seed, and culture ioMicroglia.

 

 

In addition, we provide a detailed User Manual, Protocols, and Cell Culture Hacks that are designed for translational workflows and our Technical Support Team is always on hand.

 

Try ioMicroglia in your lab

See the difference in your own results, with our evaluation packs of ioMicroglia (3 vials for $995) so you can run side-by-side comparisons with your current HMC3 cell line setup. Each vial yields >1.0 million viable cells, enough for multiple assays.

Explore ioMicroglia

 

The bottom line

If you are still using HMC3 cells, now is the time to re-evaluate. ioMicroglia offers a path to more physiologically relevant, functionally active, and consistent microglial models. With straightforward protocols and strong assay compatibility, the switch is easier than you might think.

Upgrading your microglial model is not about novelty; it is about getting better, translational data.

Reference

  1. Woolf, Z., Stevenson, T.J., Lee, K. et al. In vitro models of microglia: a comparative study. Sci Rep 15, 15621 (2025).

Related pages

About us Coding cells to advance the wellbeing of humanity
Careers See the latest openings
News See the latest news