Для хранения больших объемов генетических данных

advertisement
Для хранения больших объемов генетических данных необходимо использование баз данных или других
специализированных хранилищ. Наиболее доступной базой данных является MySQL. Ее функциональные возможности
(хранимые типы данных и возможные операции над ними) описаны производителем. В то время как производительность
(объем занимаемого дискового пространства, скорость формирования базы данных и скорость выполнения запросов)
необходимо тестировать на конкретном наборе данных.
Задача. Определить производительность базы данных MySQL при хранении больших массивов генетических данных и
сравнить ее с производительностью бинарного хранилища.
Объект. Генетические данные представлены в виде таблиц фенотипов, генотипов и индексов идентичности по
происхождению (IBD). Размер этих таблиц зависит от числа людей (N), признаков (P) и локусов (L) и определяется для
таблицы фенотипов как P×N, генотипов – как L×N, IBD – как L×N(N-1)/2.
Анализ производительности базы данных MySQL.
Объем дискового пространства (Гб),
занимаемого базой данных MySQL при
хранении матриц различного объема:
• объем выборки от 1.000 до 10.000
человек,
• число локусов 10.240,
• число признаков 100.
25
20
15
10
5
0
1000
2000
5000
10000
Время (мин.) создания базы данных MySQL
800
при хранении матриц различного объема:
700
• объем выборки от 1.000 до 10.000
человек,
600
500
400
• число локусов 10.240,
300
• число признаков 100.
200
100
0
0
1000
2000
3000
4000
5000
6000
7000
8000
9000 10000 11000
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
Время (мин.) извлечения всей информации
из базы данных MySQL при хранении
матриц различного объема:
• объем выборки от 1.000 до 10.000
человек,
• число локусов 10.240,
• число признаков 100.
100
90
80
70
60
50
40
30
20
10
0
10000 11000
Тесты показали, что создание баз данных для хранения большого объема генетической информации требует больших
ресурсов и растет нелинейно с ростом числа людей. Так как вся информация представлена однотипными данными и у
каждого индивида имеется индивидуальный шифр, мы создали специализированное бинарное хранилище.
Сравнение производительности MySQL и бинарного хранилища
Объем дискового пространства (Гб),
занимаемого базой данных MySQL и
1200
бинарного хранилища при хранении матриц
1000
различного объема:
800
• число локусов от 100 до 500
600
My SQL
• объем выборки 1.000 человек
Bin
400
• число признаков 10.240.
200
0
100
Время (мин.) создания базы данных MySQL и
35
бинарного хранилища при хранении матриц
30
различного объема:
• число локусов от 100 до 500
• объем выборки 1.000 человек
• число признаков 10.240.
200
500
25
20
My SQL
15
Bin
10
5
0
0
100
200
300
400
500
600
Время (мин.) извлечения всей информации
из базы данных MySQL и бинарного
хранилища
при
хранении
различного объема:
• число локусов от 100 до 500
матриц
5
4
3
My SQL
Bin
2
• объем выборки 1.000 человек
• число признаков 10.240.
1
0
0
100
200
300
400
500
600
Вывод. Сравнение MySQL и бинарного хранилища показало, что бинарное хранилище имеет ряд преимуществ:
• оно занимает меньшее дисковое пространство;
• благодаря меньшему объему, а также специфике данных, производительность такого хранилища выше.
Для выполнения запросов необходимо создать пакет программ. Для создания такого пакета лучше использовать языки
программирования FORTRAN и C/C++, которые могут оперировать бинарными данными. Интерфейс для работы с базой
данных предполагается сделать через Интернет страницы (html) и реализовать это на языках программирования PHP,
Perl и возможно Java script.
Download