ГоловнаШІ та Машинне навчанняАналізатор генної експресії

🧬 Аналізатор генної експресії — зниження розмірності методом PCA наживо

Спостерігайте, як справжній метод головних компонент (власний розклад коваріаційної матриці) знижує розмірність симульованих багатовимірних даних генної експресії наживо, проєктуючи зразки на справжні компоненти найбільшої дисперсії.

ШІ та Машинне навчання3DПросунутий60 FPS
ai-genomics-expression-pca ↗ Відкрити окремо

Про Аналізатор генної експресії

Справжні експерименти з генної експресії вимірюють активність тисяч генів у багатьох зразках — матриця, надто велика для безпосереднього перегляду. Метод головних компонент — це класичний перший крок майже у кожному геномному конвеєрі: він знаходить невелику кількість лінійних комбінацій генів ("компонент"), що захоплюють найбільше дисперсії в даних, тож зразки можна побудувати у двох чи трьох вимірах, зберігаючи при цьому домінантну біологічну структуру, наприклад окремі типи клітин, підтипи хвороб чи групи лікування.

Ця симуляція генерує синтетичний набір даних генної експресії зі справжньою корельованою структурою — обраною кількістю справжніх базових "програм експресії", які кожен зразок активує різною мірою — потім обчислює справжню центровану за середнім коваріаційну матрицю по генах і діагоналізує її алгоритмом власних значень Якобі, написаним з нуля на JavaScript. Власні значення сортуються за величиною, перетворюються на відсоток поясненої дисперсії для графіка осипу, а відповідні власні вектори використовуються для проєктування кожного зразка на його три головні компоненти для живої 3D-діаграми розсіювання. Оскільки базові групи відомі за побудовою, розфарбування кожної точки за її справжньою породжувальною групою дає змогу спостерігати, як PCA успішно — або, за високого шуму, починає невдало — відокремлює справжню структуру від шуму.

Часті питання

Що таке метод головних компонент (PCA) і навіщо застосовувати його до даних генної експресії?

Набори даних генної експресії зазвичай вимірюють тисячі генів у десятках чи сотнях зразків, тож кожен зразок є точкою у дуже багатовимірному просторі, який неможливо побудувати безпосередньо. PCA знаходить невелику кількість нових осей — лінійних комбінацій початкових генів — які захоплюють якомога більше загальної дисперсії даних, у порядку важливості. Проєктування зразків на перші дві-три з цих осей (головні компоненти) дає змогу візуалізувати домінантну структуру даних, наприклад кластери зразків зі схожими програмами експресії, відкидаючи напрямки, що переважно є шумом.

Як обчислюється коваріаційна матриця і що вона означає?

Маючи N зразків, кожен з M вимірами генів, дані спочатку центрують за середнім, віднімаючи середню експресію кожного гена по всіх зразках. Коваріаційна матриця C — це матриця розміру M×M: C = (1/(N−1)) XᶜᵀXᶜ, де Xᶜ — центрована матриця даних N×M. Елемент C[i][j] вимірює, як ген i і ген j змінюються разом по зразках: велике додатне значення означає, що обидва гени схильні одночасно підвищувати чи знижувати регуляцію, велике від'ємне значення означає, що вони змінюються у протилежних напрямках, а значення, близьке до нуля, означає незалежну зміну. Головні компоненти PCA — це точно власні вектори цієї коваріаційної матриці.

Як алгоритм власних значень Якобі знаходить власні вектори та власні значення?

Алгоритм Якобі діагоналізує дійсну симетричну матрицю, повторно застосовуючи обертання, що обнуляють по одному позадіагональному елементу за раз. Кожне обертання обирається з кутом φ = 0.5·atan2(2a_pq, a_qq − a_pp), щоб після його застосування елемент (p,q) став точно нулем, при цьому накопичений добуток усіх матриць обертання збігається до власних векторів, а діагональ перетвореної матриці збігається до власних значень. Ця симуляція виконує повні циклічні проходи по кожній позадіагональній парі, повторюючи їх, доки позадіагональна норма не опуститься нижче жорсткого допуску — це справжній числовий розклад власних значень, обчислений на JavaScript, а не пошук у таблиці чи наближення, і він збігається до точності машинного числа за кілька десятків проходів для розмірів матриць, використаних тут.

Що означає відсоток поясненої дисперсії і як читати графік осипу (scree plot)?

Кожне власне значення коваріаційної матриці дорівнює величині загальної дисперсії, захопленої відповідною головною компонентою. Відсоток поясненої дисперсії для компоненти k — це просто власне_значення_k, поділене на суму всіх власних значень, виражене у відсотках. Стовпчикова діаграма осипу показує ці відсотки, ранжовані від PC1 донизу: різкий спад після перших кількох стовпців означає, що більшість структури у симульованих даних генної експресії лежить у просторі низької розмірності (узгоджується з невеликою кількістю справжніх базових програм експресії), тоді як повільний, плоский спад свідчив би про те, що дані ближчі до неструктурованого шуму, де жодна невелика група компонент не захоплює багато сигналу.

Чому точки зразків утворюють кластери у просторі PC1/PC2/PC3?

Симульований набір даних генерується з невеликої кількості справжніх базових програм генної експресії — випадкових векторів навантаження у просторі генів — і кожен зразок будується шляхом сильної активації програми власної групи плюс невеликого просочування з інших, з подальшим додаванням шуму для кожного гена. Це закладає справжню корельовану структуру у сирі дані замість чистої випадковості. Оскільки верхні компоненти PCA за побудовою є напрямками найбільшої дисперсії, а міжгрупові відмінності, створені програмами, є домінантним джерелом дисперсії за прийнятного співвідношення сигнал/шум, верхні 2–3 компоненти природно вирівнюються з осями, що розділяють справжні групи — тож побудова зразків у просторі головних компонент і розфарбування їх за справжньою породжувальною групою наочно показує, що PCA успішно відновлює цю структуру.

Що відбувається, коли я збільшую рівень шуму або кількість справжніх програм?

Підвищення рівня шуму додає більші випадкові збурення для кожного гена поверх справжнього сигналу програми кожного зразка, що звужує розрив між внутрішньогруповою та міжгруповою дисперсією; за достатньо високого шуму кластери у просторі головних компонент зливаються, а графік осипу вирівнюється, оскільки жоден окремий напрямок не виділяється над рівнем шуму. Збільшення кількості справжніх базових програм розподіляє ту саму загальну дисперсію сигналу по більшій кількості напрямків, тож потрібно більше компонент, перш ніж кумулятивна пояснена дисперсія наблизиться до 100%, а при побудові лише 2–3 головних компонент деякі групи можуть почати перекриватися, щойно кількість справжніх програм перевищить кількість показаних компонент.

⚙ Під капотом

Циклічний алгоритм власних значень Якобі діагоналізує справжню центровану за середнім коваріаційну матрицю синтетичного, корельованого набору даних генної експресії — власні значення стають відсотком поясненої дисперсії, власні вектори стають осями проєкції, а зразки потрапляють у справжній простір PC1/PC2/PC3.

PCAEigendecompositionCovariance MatrixJacobi AlgorithmBioinformatics

3D · рушій Three.js / WebGL · ціль 60 FPS · працює повністю на клієнті, без встановлення

Що ви знайшли?

Додати кроки відтворення (необов'язково)