(no subject)

Jan 29, 2008 12:56

Вопрос, который я обошел в своем обсуждении достоинств Перла и Питона для биологов - сравнение непосредственно пакетов BioPerl и BioPython, которые часто упомянают как взаимозаменяемые, при этом не приводя конкретные факты. Попытаемся устранить этот недостаток. Для сравнения возьмем описание текущих версий того и другого с официальных сайтов www.bioperl.org и www.biopython.org.

Чего нет в БиоПитоне, но есть в БиоПерле .

Сравнение последовательностей:

1. BLAST
Не нашел сцепок с wu-blast, rpsblast, psiblast, phiblast, TimeLogic blast, ucsc.
2. HMMER (в биопитоне нет hmmsearch, хотя есть куча других алгоритмов для скрытых марковских цепей)
3. Exonerate
4. Genewise
5. Genomewise
6. Sim4
7. MEGA
8. Smith-Waterman

Филогенетические деревья:

1. Newick
2. Lintree
3. Pagel

Базы данных:
1. Refseq
2. TIGR
3. GenPept

Остальные модули:
1. Я бы сказал, модуль популяционной генетики практически бесполезен в том виде, в котором он есть в Питоне (по сравнению с Перлом).
2. Графика для представления выравниваний.

Первичная структура:
Все утилиты для предсказания экзонов/интронов.

---------------------------------------------

Чего нет в БиоПерле и есть в БиоПитоне:

По-крупному:
1. Конвертер для файлов Аффиметрикса.
2. Симулятор иммунной системы
3. Коллекция работы с практически любыми форматами NCBI.
4. Генетические алгоритмы (симулятор эволюции).
5. Анализ путей метаболизма с интерфейсами для KEGG
6. Искусственные нейронные сети
7. Анализ пространственной структуры белка с поддержкой распространенных форматов.

По-мелкому:
RefSeq, InterPro и может еще один-два формата баз биологических данных не поддерживаются биоперлом.

--------------------------------------------

Синтаксис:
Для сравнения, приведем пример короткой программки, которая выводит на экран все последовательности, содержащиеся в файле sequence.fasta

БиоПитон:

from Bio import SeqIO

handle = open("sequence.fasta")

for seq_record in SeqIO.parse(handle, "fasta") :
print seq_record.seq

handle.close()

БиоПерл:

use Bio::SeqIO;

$seqio_obj = Bio::SeqIO->new(-file => "sequence.fasta", -format => "fasta" );

while ($seq_obj = $seqio_obj->next_seq){
print $seq_obj->seq,"\n";
}

На мой взгляд, из этого примера видно, что :
1. Утилиты, выполняющие одинаковые функции, делают это совершенно различными подходами.
2. БиоПитон более естественно интегрирован в существующую архитектуру Питона, чем БиоПерл в таковую Перла.
3. Код Питона, как таковой, более понятен.

--------------------------------------------

Итоги:

1. Пакеты схожи только в области сравнения последовательностей, и тут Перл обгоняет Питон, т.к. сложно представить качественный анализ генома без предсказания интронно-экзонной структуры и HMMER, которых нет в БиоПитоне. С другой стороны, те же экзоны уже аннотированы в базах данных, поэтому данный недостаток Питона будет иметь значение только для того, кто работает со свежесеквенированными данными или для того, кто работает над созданием алгоритмов предсказаний результатов трансляции и сплайсинга.

2. Видимо, сообщество БиоПитона замахнулся на цель стать по-настоящему Био, сделав свой пакет применимым в работе любого биолога, в то время как БиоПерл, очевидно, продолжает держаться только на биоинформатиках, заинтересованных исключительно в сравнении строк. Возникает вопрос: не превратится ли БиоПитон в итоге такой деспециализации в структуру, из которой реальные люди будут использовать только несколько процентов, тогда как при установке пакет будет громоздким? Видимо, не скоро: размер текущей версии пакета биопитона (без сторонних утилит и компилированных файлов) - 5.4 МБ, а биоперла (тоже без сторонних утилит) - 10.6 МБ. При сравнимой функциональности, кажется, что больший размер БиоПерла связан, скорее всего, с (!?) меньшей _фактической_ лаконичностью (!?) Перла по сравнению с Питоном.

3. БиоПитон более интегрирован в остальной Питон.Это касается не только удобства использования утилит Питона. Дело в том, что в области структурной биологии имеется довольно большое число программ, написанных на Питоне, а, следовательно, функции которых хоть вместе, хоть по отдельности доступны из Питона. С другой стороны, прогресс в развитии численных методов для Питона, делающие его по функциональности сравнимых с Матлабом (Numpy/Scipy) привел к их интеграции в упомянутые программы для повышения производительности. Короче, в скором времени ждем интеграции всего.
Previous post Next post
Up