Эффективно ли получать геномную последовательность в Python? - PullRequest
6 голосов
/ 07 июля 2010

Как я могу эффективно извлечь геномную последовательность, используя Python?Например, из .fa-файла или другого легко получаемого формата?Я в основном хочу интерфейс fetch_seq (chrom, strand, start, end), который будет возвращать последовательность [start, end] на данной хромосоме на указанной цепи.

Аналогично, существует ли программный интерфейс Python дляочки phastCons?

спасибо.

Ответы [ 4 ]

4 голосов
/ 04 декабря 2012

Извлечение данных последовательности из больших файлов человеческих хромосом может быть неэффективным с точки зрения памяти, поэтому, если вы ищете вычислительную эффективность, вы можете отформатировать данные последовательности в упакованную двоичную строку и выполнить поиск на основе местоположения байтов.Я написал подпрограммы для этого в perl (доступно здесь ), и python имеет те же самые процедуры упаковки и распаковки - так что это можно сделать, но оно того стоит, если вы работаетев проблемы с большими файлами на ограниченном компьютере.В противном случае используйте биопайт SeqIO

3 голосов
/ 07 июля 2010

Смотрите мой ответ на ваш вопрос на Biostar:

http://biostar.stackexchange.com/questions/1639/getting-genomic-sequences-and-phastcons-scores-using-python-from-ensembl-ucsc

Используйте SeqIO с файлами Fasta, и вы получите записи объектов для каждого элемента в файле.Тогда вы можете сделать:

region = rec.seq[start:end]

, чтобы вытащить ломтики.Преимущество использования стандартной библиотеки заключается в том, что вам не нужно беспокоиться о разрыве строк в исходном файле fasta.

1 голос
/ 07 июля 2010

Взгляните на biopython , который поддерживает несколько форматов последовательностей генов.В частности, он поддерживает файлы FASTA и GenBank , чтобы назвать пару.

0 голосов
/ 18 марта 2011

pyfasta - это модуль, который вы ищете. Из описания

быстрый, эффективный по памяти, pythonic (и командная строка) доступ к файлам последовательности fastta

https://github.com/brentp/pyfasta

...