В качестве исходных данных были использованы .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
.
Добавлены новые типы раковых заболеваний для классификации.
Проведено тестирование классификатора при двукратном прохождении через граф генных взаимодействий.