Эффективно привлекать геномную последовательность в Python?
-
02-10-2019 - |
Вопрос
Как я могу эффективно получить геномную последовательность с помощью Python? Например, из файла .fa или какого -либо другого легко полученного формата? Я в основном хочу интерфейс fetch_seq (Chrom, Strand, Start, End), который вернет последовательность [Start, End] на данной хромосоме на указанной цепи.
Аналогично, есть ли программный интерфейс Python для получения баллов PhastCons?
Благодарю.
Решение
Смотрите мой ответ на ваш вопрос на BioStar:
Используйте Seqio с файлами FASTA, и вы вернете объекты записи для каждого элемента в файле. Тогда вы можете сделать:
region = rec.seq[start:end]
вытащить кусочки. Хорошая вещь об использовании стандартной библиотеки заключается в том, что вам не нужно беспокоиться о разрывах линии в оригинальном файле FASTA.
Другие советы
Получение данных последовательности из крупных хромосомных файлов человека может быть неэффективным по памяти, поэтому, если вы ищете вычислительную эффективность, вы можете отформатировать данные последовательности в упакованную двоичную строку и поиск на основе байта. Я написал процедуры, чтобы сделать это в Perl (доступно здесь ), а у Python есть то же самое упаковать и распаковывать процедуры - Так что это можно сделать, но того стоит, только если вы прибегаете к неприятностям с большими файлами на ограниченной машине. В противном случае используйте биопитон seqio
Взгляни на биопитон, который поддерживает несколько форматов последовательности генов. В частности, он поддерживает Файлы Fasta и Genbank, чтобы назвать пару.
Пиаста это модуль, который вы ищете. Из описания
Быстрый, эффективный память, питонический (и командная) доступ к файлам последовательности FASTA