Вставка больших отсортированных файлов данных в БД - PullRequest
1 голос
/ 31 января 2012

У меня есть большие (~ 100 ГБ) файлы, содержащие последовательности ДНК. Они упорядочены по первым двум столбцам. Например:

chr  position    allele    coverage   otherStuff
1    1000        A         10         ...
1    1001        C          1         ...
2      10        A         10         ...
X    1000        G          3         ...
Y    1000        A         13         ...

Я бы хотел загрузить их в базу данных, чтобы я мог более эффективно их запрашивать (в настоящее время я делаю полное сканирование, чтобы найти определенную позицию, но, поскольку она отсортирована, должна быть возможность сделать это в O ( войти n)). Раньше я использовал MySQL «load data infile», но если я затем хочу создать индекс по chr и position, он игнорирует тот факт, что данные уже отсортированы, и сортирует их снова.

Есть ли способ обойти это? Могу ли я убедить MySQL (или любую другую БД, я не ограничен MySQL), что мои данные уже отсортированы?

Заранее спасибо!

1 Ответ

2 голосов
/ 31 января 2012

Для этих геномных позиций вы должны использовать индекс binning , как описано Кентом и др. в http://genome.cshlp.org/content/12/6/996.full

см. Также http://genomewiki.ucsc.edu/index.php/Bin_indexing_system и http://biostar.stackexchange.com/questions/957/the-bin-column-used-by-sam-ucsc

...