. * * 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

Our cell coding platform

updated-static-optiox_0

Biology as software

At 91̽»¨ we look at a cell as if it were a computer. The nucleus is the hard drive, storing genes in its DNA. Genes interact with one another, forming programs called gene regulatory networks. Together, these programs form LifeOS, the Operating System of Life.

At any given time only a subset of the programs in LifeOS are switched on and active, defining the function and identity of every cell. Gene regulatory networks are tightly controlled by transcription factors, the code of LifeOS.

Our cell coding platform gives us the enter button of LifeOS. It consists of two core parts: our discovery platform which identifies the precise code that defines cell fate and our deterministic cell programming technology - opti-ox - that deterministically programs stem cells into any cell type. 

Watch Founder Mark Kotter discussing this approach. 

 

"A code script... must form the kernel of biological theory"

Sydney Brenner

updated-static-optiox_0
differentiation-shape_0
differentiation-shape_6
differentiation-shape_16
opti-ox (optimised inducible overexpression) is our deterministic cell programming technology. It gives us the ability to faithfully execute genetic programs in human stem cells.
Transcription factors controlled by an inducible genetic switch are integrated into genomic safe harbour sites in the stem cell genome. Genomic safe harbour sites protect the integrity of the cell and the inserted program by avoiding gene silencing.
As every pluripotent stem cell in a population contains the same inducible program in their genomic safe harbour sites, we can precisely and consistently program the population into a chosen cell identity at a commercial scale.
optiox-mobile-gif-100colours-6mb

See opti-ox in action

Programming stem cells to functional skeletal muscle using opti-ox

opti-ox enables the deterministic cell programming of entire cultures of stem cells into a precise cell identity with unprecedented consistency and speed (9-day time course, final contraction assay by addition of acetylcholine).

Learn more about opti-ox in this blog post.

compressed-static-discovery_0

Our discovery platform

Our discovery platform combines genetic screening, big data, machine learning and large scale experimentation to find the combination of transcription factor codes for every human cell type.

compressed-static-discovery_0
min-scroll-tf-one_0
min-scroll-tf-two_0
min-scroll-tf-three_0
min-scroll-tf-forth
min-scroll-tf-one_0
From the 20,000 genes in a human cell, our discovery platform uncovers the unique code to create any cell type.
min-scroll-tf-two_0
10,000 of these genes are actively involved in determining the unique function of each specific cell.
min-scroll-tf-three_0
Approximately 2,000 transcription factors control these genes.
min-scroll-tf-forth
Our discovery platform pinpoints between 1 and 6 transcription factors responsible for precisely defining the identity of each cell type, sub-cell type and cell state.

Cell Programming

A departure from directed differentiation

Traditional stem cell differentiation

Traditional stem cell differentiation is based on the principles of developmental biology and early embryonic development during which pluripotent stem cells are transitioning via a number of intermediates into the final somatic cell type. Differentiation replicates these stepwise transitions using extracellular chemical stimuli such as cytokines. This ‘history’ is reflected in the epigenetic state of the cells and forms part of the identity of a cell.

Direct cell programming

Cell programming is a synthetic biology approach based on a fundamental paradigm shift with regards to how we view biology. Direct programming disregards the ‘history’ of somatic cells. It is based on the paradigm that cell identity is defined by the gene regulatory networks that are active in a cell. These gene regulatory networks are controlled by transcription factors. Hence, the activation of appropriate programming factors can induce a new cell type. These transcription factors are our ‘codes’.

The first cell programming protocol was proposed by Weintraub, Lassar, Davis in 1987. Thirty years later, Yamanaka, Wernig and Südhof have extended this concept and opened up a new field in biology that has been honored with a Nobel Prize.

As such, programming enables the transition of biology from a traditional observatory science to something that is deterministic in the context of cell identity.

ioCells 

ioCells are deterministically programmed human iPSC-derived cells powered by opti-ox technology that offers speed, reliability and consistency at scale for research and drug discovery.

Related pages

91̽»¨ Learn about our range of human iPSC-derived cells for research and drug discovery
Services Learn about our CRISPR screening services using human iPSC-derived cells
Contact us Talk to us to learn more about our team and products