В качестве исходных данных были использованы .maf файлы базы данных TCGA. Файлы находятся в директории Data
Логика действий:
- Загрузка сети генных взаимодействий (направленный взвешенный граф). Вес ребра рассчитывается как сумма всех возможных взаимодействий между генами, делённая на 10 (нормировка)
- Создание таблицы: строки — данные пациента, столбцы — данные по конкретному гену. Таблица заполняется в зависимости от значимости (об этом ниже).
G0: Сортировка → AdaBoost → SVMG1: Сортировка → Net → AdaBoost → SVMG2: Сортировка → Net → Net → AdaBoost → SVM
Сортировка: Сортировка столбцов таблицы (генов) по суммарному количеству мутаций данного гена у всех пациентов. Таким образом, самые часто мутирующие гены оказываются первыми.
AdaBoost: Обучение алгоритмом AdaBoost на первых 2000 генах таблицы.
SVM: Обучение SVM на всех генах с ненулевым вкладом, полученных с помощью AdaBoost.
Net: Для каждого гена (A) имеем его значимость (k) и список связанных с ним генов в сети (R1, R2, R3, ...). Для каждого из генов этого списка считаем дополнительную значимость как значимость гена (A), умноженную на вес соответствующего ребра.
Значимость: не все мутации равнозначимы. Например, мутация со сдвигом рамки считывания чаще всего опаснее точечной мутации. Значимость была расставлена следующим образом:
Missense_Mutation → 60
Frame_Shift_Ins → 150
Frame_Shift_Del → 170
Silent → 10
In_Frame_Ins → 20
Default → 30
Apps/transform.js — алгоритм преобразования графом генных взаимодействий.
Apps/test.r — обучение AdaBoost, SVM, тестирование.
| Типы рака | G0 | G1 | G2 |
|---|---|---|---|
| COAD HNSC | 44 0.9789 |
32 0.9614 |
91 0.9021 |
| COAD KICH | 29 0.8992 |
19 0.9300 |
32 0.7521 |
| HNSC KICH | 92 0.9158 |
80 0.9287 |
74 0.9123 |
| HNSC KIRC | 104 0.9259 |
101 0.9067 |
123 0.8209 |
| KICH KIRP | 46 0.7994 |
42 0.8413 |
47 0.7467 |
| KIRP COAD | 42 0.9022 |
33 0.8531 |
47 0.7347 |
| KIRP HNSC | 94 0.9513 |
95 0.8981 |
123 0.8379 |
Первое число — количество использованных для классификации генов.
После окончания летней школы были внесены изменения:
Вместо самописного алгоритма AdaBoost на JS используется алгоритм boosting в R.
Добавлены новые типы раковых заболеваний для классификации.
Проведено тестирование классификатора при двукратном прохождении через граф генных взаимодействий.