. * * 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
New product launch | ioSkeletal Myocytes

14.10.2021 | Published by 91̽»¨

New product launch | ioSkeletal Myocytes

Featured Image
  • 91̽»¨ launches ioSkeletal Myocytesâ„¢ the first supply of consistent, scalable, human muscle cells provide transformative new models for research and drug discovery
  • Highly consistent and scalable supply of lab grown human skeletal muscle cells provide an effective and biologically relevant tool for research and drug development in conditions as diverse as metabolic and muscle diseases and ageing.

91̽»¨ has today launched a new product, ioSkeletal Myocytes. It’s the first product of its kind that provides physiologically relevant human skeletal muscle cells that are reliable, reproducible and consistent at scale. Access to ioSkeletal Myocytes will supercharge research and drug discovery for musculoskeletal and metabolic conditions.

ioSkeletal Myocytes can be used within days after thawing, affording scientists unprecedented ease and consistency for their experiments. ioSkeletal Myocytes are created through direct reprogramming of human iPSCs (induced pluripotent stem cells) using 91̽»¨â€™s breakthrough cell coding technology ´Ç±è³Ù¾±-´Ç³æâ„¢. They are the second ‘off the shelf’ cell type product from 91̽»¨ and form part of the expanding ioCells portfolio.

“This second product is another validation of 91̽»¨â€™s approach to biology as the next disruptive technology. When you give scientists access to reliable human cells the only limit to the questions they can ask and the experiments they can design is their imagination. And we are already seeing that imagination unleashed in the diverse ways our partners are using our cells. Each ioCell will open up a whole new product line in the form of disease models, providing even greater research opportunities. Building out our ioCell portfolio is a core pillar of 91̽»¨â€™s strategy, next to developing 91̽»¨â€™s cells for therapeutic applications. Together, this will enable the next generation of medicines.â€�

91̽»¨_CIRCLEheadshot_July24-Przemek-Obloj-3
Mark KotterCo-founder and CEO, 91̽»¨

ioSkeletal Myocytes have been validated by 91̽»¨â€™s partners in different applications, a key stage in the development of the product. One partner, Charles River Laboratories, a provider of products and services that help expedite the discovery, early-stage development and safe manufacture of novel drugs and therapeutics, has adopted 91̽»¨â€™s ioSkeletal Myocytes into its discovery offering, including high-throughput screening (HTS) workflows.

“Previously, acquiring skeletal myocytes for research has either been from animal models, which do not always behave like human muscle cells, or by using primary human cells with methods that produce only small cell quantities. We have seen first-hand that ioSkeletal Myocytes eliminate this cumbersome, time-consuming process, and quickly provide reliable and consistent access to large quantities of human myocytes, which can be used for high-throughput screening.�

Dr Marijn Vlaming
Dr Marijn VlamingHead of Biology - Leiden Beerse | Charles River Laboratories

The product provides functional and consistent human cells which can be used to study the physiology of human skeletal muscle cells and their response to potential drug candidates.

91̽»¨â€™s human ioSkeletal Myocytes will increase translatability of research findings so can play a significant role in reducing the average cost and time spent on drug development and increase the chances of new treatments making it through the clinic and to patients.

ioSkeletal Myocytes are launching ahead of a 91̽»¨ workshop at 'The European Laboratory Research & Innovation Group (ELRIG) drug discovery conference 2021' where speakers Dr Luckshman Jeremy Anton (Charles River Laboratories), Prof Michael Duchen (University College London) and Prof Hagan Bayley (University of Oxford) will discuss the challenges of cell models and novel approaches and tools for basic research and drug discovery that include 91̽»¨â€™s cells.

ioSkeletal Myocytes are available through 91̽»¨ and affiliated distributions to the greater academic and biotech communities

Related pages

About us Coding cells to advance the wellbeing of humanity
Careers See the latest openings
Blog See the latest blogs