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