Biopython
Biopython — библиотека и набор инструментов, написанных на Python, предназначенных для обработки биологических данных[1]. Biopython предлагает коллекцию классов, модулей и пакетов для анализа биологических последовательностей, выравниваний, структур белков, генетики популяций, филогенетики, визуализации биологических данных, поиска мотивов в последовательностях, машинного обучения, а также предоставляет простой доступ к биологическим базам данных[2].
Проект Biopython входит в коллекцию проектов Bio* open-source, поддерживаемых Open Bioinformatics Foundation[3].
Общие сведения
| Biopython | |
|---|---|
| Тип | библиотека функций |
| Разработчики | Chapman B, Chang J |
| Написана на | Python |
| Первый выпуск | 2000 |
| Последняя версия | 1.86 (28 октября 2025) |
| Репозиторий | biopython.org/wiki/Sourc… |
| Сайт | biopython.org |
История
Разработка Biopython началась в 1999 году. Выпущен он был в июле 2000 года, однако первая версия появилась только в марте 2001 года, а первый стабильный релиз — в декабре 2002 года[5].
Идея создать пакет для анализа биологических данных на языке Python принадлежит Джеффу Чангу и Эндрю Далке — их вдохновили Юэн Бирни и проект BioPerl. Позже к проекту присоединился Брэд Чапман, став одним из ключевых участников. В настоящее время к Biopython внесли вклад сотни разработчиков[6].
С 2012 года Biopython обогнал BioPerl и стал самым популярным из проектов Bio*, поддерживаемых Open Bioinformatics Foundation[4].
Актуальная версия — 1.86, выпущенная 28 октября 2025 года[7].
Особенности
Выбор языка Python был обусловлен его высоким уровнем абстракции, динамической типизацией и низким порогом входа, что удобно для обучения основам программирования. Biopython реализован в объектно-ориентированном стиле. Первоначально работал только с Python 2, но начиная с версии 1.62 поддерживает и Python 3[8]. Последний стабильный релиз — версия 1.70[9].
Biopython реализует доступ к программам для биоинформатики, обработку файлов различных форматов, а также удалённый доступ к ряду баз данных. Среди поддерживаемых программ, форматов и ресурсов: SwissProt[10], UniGene[11], SCOP[12], ExPASy[13], GenBank[14], Medline[15], PubMed[16], а также запуск внешних программ, таких как BLAST (локально и удалённо)[17], Clustalw[18] и FASTA[19].
Загрузка и установка
Загрузить Biopython можно с его официального сайта. Он поддерживается в основных операционных системах: Windows, Linux и MacOS. Для стандартной установки в Linux требуется скачать установочный файл, распаковать его и выполнить три команды в терминале:
python setup.py build
python setup.py test
sudo python setup.py install
В Windows установка возможна через исполняемые файлы или через пакетный менеджер pip. Для этого в командной строке выполните (путь к pip зависит от версии Python):
C:\Python27\Scripts\pip install biopython
Для MacOS:
pip install biopython
Дополнительные инструкции и способы установки см. в официальной документации.
Примеры
В Biopython последовательности определяются как объекты, а не как строки. Для работы с последовательностями требуется модуль Bio.Seq. Для манипуляций с последовательностями нуклеотидов и аминокислот также понадобится модуль Bio.Alphabet (и класс IUPAC для стандарта алфавитов ДНК/РНК/белков)[2].
Класс Seq содержит методы для различных операций: определение комплементарных и обратных комплементарных последовательностей, транскрипция (ДНК→РНК), обратная транскрипция (РНК→ДНК) и трансляция (РНК→белок/ДНК→белок).
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
# Создание демонстрационной последовательности
seq_exemplo = Seq("ATG")
# Комплементарная и обратная комплементарная последовательности
seq_complementar = seq_exemplo.complement() #TAC
seq_complementar_reversa = seq_exemplo.reverse_complement() #CAT
# Транскрипция
seq_rna = seq_exemplo.transcribe() #AUG
seq_dna = seq_rna.back_transcribe() #ATG
# Трансляция
seq_proteina_rna = seq_rna.translate() #M
seq_proteina_dna = seq_dna.translate() #M
FASTA является стандартом для хранения последовательностей в биоинформатике. Каждая последовательность имеет заголовок, начинающийся с символа «>». Пример такого файла:
>Titulo_cabecalho_sequencia
CGATCGATCGACTATCAGCATCGATCGACTAGCATCGACTACGATGA
GACTATCAGCATCGATCGACTAGCATCGACTACGACGATCGATCTGA
CGACTATCAGCATCGATCGACTAGCATCGACTACGATGACGATCGAT
CGATCGAT
Biopython предоставляет модуль SeqIO для работы с файлами различных форматов[2] Например, чтобы получить заголовок и последовательность из fasta-файла:
from Bio import SeqIO
for fasta in SeqIO.parse("nome_arquivo.fasta","fasta"):
# Вывести id заголовка
print(fasta.id)
# Вывести последовательность
print(fasta.seq)
SeqIO также поддерживает другие форматы, например GenBank:
from Bio import SeqIO
# Работа с файлами GenBank
genomas = SeqIO.parse('arquivo.genbank', 'genbank')
# Конвертация в формат FASTA
for genoma in genomas:
SeqIO.write(genoma, genoma.id + '.fasta', 'fasta')
Класс SeqRecord модуля SeqIO предоставляет доступ к последовательностям из файлов аннотаций (GenBank), а также к поддерживающей информации (название, описание, участки генов, CDS, повторы и прочее).
#-*- Coding: utf-8 -*-
from Bio import SeqIO
arquivo_gb = SeqIO.read('pTC2.gb', 'genbank')
arquivo_gb.name # 'NC_019375'
arquivo_gb.description # 'Providencia stuartii plasmid pTC2, complete sequence.'
arquivo_gb.features[14] # пример работы с функцией
arquivo_gb.seq
Biopython содержит пакеты для работы с белковыми структурами (формат PDB).[20]. Модуль Bio.PDB был разработан Томасом Хамелриком и Бернаром Мандериком[21]. Для его работы требуется пакет NumPy.
Bio.PDB преобразует структуру из PDB-файла в объект Structure по архитектуре SMCRA (Structure, Model, Chain, Residue, Atom):
- структура состоит из моделей;
- модель — из цепей;
- цепь — из остатков;
- остаток — из атомов.
Объект structure — верхний уровень иерархии. Его идентификатор задаётся пользователем. Получить структуру можно методом get_structure():
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
Структуры, полученные методом рентгеноструктурного анализа, часто содержат одну модель, а структуры по данным ЯМР — несколько:
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
first_model = estrutura[0]
Цепи представляют четвертичную структуру белка. В Biopython id цепи обычно — один символ:
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
# Получение первой цепи
first_model = estrutura[0]
chain_A = first_model['A']
Идентификатор остатка — кортеж из трёх элементов:
- hetero-field (hetfield): «W» для воды, «H_» и имя замещённого остатка — либо пусто по умолчанию (аминокислоты);
- sequence identifier (resseq): номер позиции остатка (целое число);
- insertion code (icode): используется для обозначения вставок.
hetfield и icode опциональны. Пример получения 100-го остатка цепи A:
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
# Получение 100-го остатка
first_model = estrutura[0]
chain_A = first_model['A']
residue_100 = chain_A[100]
Два метода для остатков:
| Метод | Возвращает |
|---|---|
| get_resname() | имя остатка |
| has_id(name) | проверяет наличие определённого атома |
Id атома уникален для остатка (например, 'CA' — альфа-углерод):
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
# Получение CA-атома 100-го остатка
first_model = estrutura[0]
chain_A = first_model['A']
residue_100 = chain_A[100]
ca_residue_100 = residue_100['CA']
Biopython предоставляет различные методы для работы с атомами:
| Метод | Возвращает |
|---|---|
| get_name() | имя атома |
| get_id() | id |
| get_coord() | атомные координаты |
| get_vector() | координаты как вектор |
| get_bfactor() | B-фактор |
| get_occupancy() | заполнение |
| get_altloc() | альтернативная локация |
| get_sigatm() | атомные параметры |
| get_anisou() | анизотропный B-фактор |
| get_fullname() | полное имя атома |
Для скачивания PDB-файлов можно использовать метод retrieve_pdb_file() с указанием кода PDB:
from Bio.PDB import *
pdb = PDBList()
pdb.retrieve_pdb_file('1BGA')
Biopython предоставляет класс PDBIO() для сохранения файлов PDB. В примере — сохранение только аланинов:
class AlaSelect(Select):
def accept_residue(self, residue):
return residue.get_name() == 'ALA'
io = PDBIO()
io.set_structure(s)
io.save('только_аланин.pdb', AlaSelect())
Пример вычисления расстояния между атомами (позиции 1 и 2 цепи A) в структуре из файла «ФАЙЛ.pdb»:[2]
from Bio.PDB import *
parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')
# Получение CA-атомов двух остатков
ca1 = estrutura[0]['A'][1]['CA']
ca2 = estrutura[0]['A'][2]['CA']
distancia = ca1 - ca2
print(distancia) # 4.879
Возможно сохранить PDB-файл в формате FASTA с помощью CaPPBuilder():[2]
from Bio.PDB import *
parser = PDBParser()
peptideos = CaPPBuilder()
estrutura = parser.get_structure('BGA', '1BGA.pdb')
w = open("1BGA.fasta","w")
for chain in estrutura[0]:
chain_id = chain.id
for residuo in peptideos.build_peptides(chain):
seq = residuo.get_sequence()
fasta = ">Цепь_%s\n%s\n" % (chain_id, seq)
print(fasta)
w.write(fasta)
w.close()
Модуль Bio.PDB поддерживает структурное выравнивание файлов PDB с помощью класса Superimposer[22]. Структурное выравнивание позволяет сопоставлять 3D-структуры макромолекул со стандартной:
from Bio.PDB import *
import numpy
# Загрузка структур
PDB1 = PDBParser().get_structure('PDB1','1.pdb')
PDB2 = PDBParser().get_structure('PDB2','2.pdb')
# Извлечение атомов
ref_atoms = []
alt_atoms = []
for ref_chain, alt_chain in zip(PDB1[0], PDB2[0]):
for ref_res, alt_res in zip(ref_chain, alt_chain):
for ref_a, alt_a in zip(ref_res, alt_res):
ref_atoms.append(ref_a)
alt_atoms.append(alt_a)
# Выравнивание
si = Superimposer()
si.set_atoms(ref_atoms, alt_atoms)
si.apply(PDB2.get_atoms())
# Сохранение новой структуры
io = PDBIO()
io.set_structure(PDB2)
io.save("3.pdb")
# RMS-отклонение
print(si.rms)
Biopython включает методы для создания визуализаций биологических данных. Python предлагает модуль pylab для построения графиков, а Biopython — пакет Bio.Graphics, который работает совместно с ReportLab.
Пакет Bio.Graphics содержит модуль GenomeDiagram для визуализации последовательностей[24]. Bio.Graphics используют для визуализации кодирующих регионов и синтении между геномами. Пример визуализации CDS в GenBank:
from Bio import SeqIO
from Bio.Graphics import GenomeDiagram
from reportlab.lib import colors
from reportlab.lib.units import cm
# Чтение файла с аннотациями
arquivo = SeqIO.read("arquivo.gbk", "genbank")
gd_diagram = GenomeDiagram.Diagram("плазмида")
gd_track_for_features = gd_diagram.new_track(1, name="Аннотации")
gd_feature_set = gd_track_for_features.new_set()
for feature in arquivo.features:
if feature.type != "gene":
continue
if len(gd_feature_set) % 2 == 0:
color = colors.HexColor('#79B134')
else:
color = colors.HexColor('#8DE91D')
gd_feature_set.add_feature(feature, color=color, label=True)
gd_diagram.draw(format="circular", circular=True, pagesize=(25*cm,25*cm), start=0, end=len(arquivo), circle_core=0.7)
gd_diagram.write("плазмида.png", "PNG")
Синтения — это консервативные регионы, охватывающие два или более генома. Для её определения используют локальное выравнивание, например, BLAST. Сравнение синтении может визуализироваться с помощью инструментов ACT[25], CONTIGuator[26], MUMmer[27].
Пример визуализации синтении между двумя геномами на основе BLAST (вход — два файла GenBank-формата):[2]
# -*- coding: utf-8 -*-
from Bio import SeqIO
from Bio.Graphics import GenomeDiagram
from reportlab.lib import colors
from reportlab.lib.units import cm
from Bio.Graphics.GenomeDiagram import CrossLink
from Bio.Blast.Applications import *
import sys
A = sys.argv[1]
B = sys.argv[2]
A1 = SeqIO.read(A,"genbank")
B1 = SeqIO.read(B,"genbank")
SeqIO.convert(A, "genbank", A+".fasta", "fasta")
SeqIO.convert(B, "genbank", B+".fasta", "fasta")
comando_blastn = NcbiblastnCommandline(
query=A+".fasta", subject=B+".fasta",
outfmt="'6 qstart qend sstart send pident'",
out="blast_"+A+"_"+B+".txt")
stdout, stderr = comando_blastn()
blast = open("blast_"+A+"_"+B+".txt")
name = A+"_"+B
gd = GenomeDiagram.Diagram(name)
gA = gd.new_track(1, name="A", height=0.5, start=0, end=len(A1))
gA1 = gA.new_set()
gB = gd.new_track(3, name="B", height=0.5, start=0, end=len(B1))
gB1 = gB.new_set()
c1 = "#79B134"
c2 = "#8DE91D"
cont = 1
for i in A1.features:
if i.type == "CDS":
color_atual = c1 if cont % 2 == 1 else c2
gA1.add_feature(i, label=False, label_position="start", color=color_atual)
cont += 1
if i.type == "rRNA":
color_atual = colors.blue
gA1.add_feature(i, label=False, label_position="start", color=color_atual)
cont = 1
for i in B1.features:
if i.type == "CDS":
color_atual = c1 if cont % 2 == 1 else c2
gB1.add_feature(i, label=False, label_position="start", color=color_atual)
cont += 1
if i.type == "rRNA":
color_atual = colors.blue
gB1.add_feature(i, label=False, label_position="start", color=color_atual)
for b in blast:
qstart = int(b.split("\t")[0])
qend = int(b.split("\t")[1])
sstart = int(b.split("\t")[2])
send = int(b.split("\t")[3])
identidade = (float(b.split("\t")[4])*0.8)/100
# ... дальше — добавление CrossLink (см. выше)
gd.draw(format="linear", pagesize=(8*cm,29.7*cm), fragments=1)
gd.write(name + ".pdf", "PDF")
Первый геном отображается сверху, второй — снизу. Красные линии — синтетические регионы, зелёные — гены, синие — рРНК-регионы.
Сравнение синтении между геномами с помощью Biopython[2]
Biopython содержит модуль Bio.Phylo для работы с филогенетическими деревьями. Поддерживаются форматы phyloXML, Newick и NEXUS. Общие операции с деревьями реализованы через объекты Tree и Clade: конвертация, объединение, выделение поддерева, смена корня, анализ ветвей (длина, оценки и др.)[29].
Возможна отрисовка деревьев в виде ASCII или с помощью matplotlib, а также использование Graphviz для неиерархических раскладок.
Модуль Bio.PopGen добавляет поддержку для программы Genepop, предназначенной для статистического анализа генетики популяций[30]. Это позволяет проводить анализ равновесия Харди — Вайнберга, дисбаланса сцепления и других параметров аллельных частот.
Кроме того, модуль поддерживает коалесцентное моделирование с помощью программы fastsimcoal2[31].
Biopython позволяет скачивать файлы из онлайновых баз данных, например, с помощью Entrez можно получать геномные данные NCBI:
#-*- Coding: utf-8 -*-
from Bio import Entrez
from Bio import SeqIO
saida = open('arquivo.fasta', "w")
Entrez.email = 'my_email@example.com'
itens_para_baixar = ['FO834906.1', 'FO203501.1']
for item in itens_para_baixar:
handle = Entrez.efetch(db='nucleotide', id=item, rettype='gb')
seqRecord = SeqIO.read(handle, format='gb')
handle.close()
saida.write(seqRecord.format('fasta'))
Обёртки
Biopython содержит обёртки для интеграции с внешними инструментами и парсинга их результатов:
- Bio.Align.Applications: доступ к программам выравнивания;
- Bio.Blast.Applications: интерфейс к BLAST;
- Bio.Emboss.Applications: доступ к EMBOSS;
- Bio.Sequencing.Applications: инструменты для работы с секвенированием.
Пакет Bio.Align предоставляет интерфейс к программам множественное выравнивание последовательностей для командной строки: Clustal Omega[32], Clustal W[18], DIALIGN 2-2[33], MAFFT[34], MUSCLE[35], PRANK[36], PROBCONS[37] и T-Coffee[38].
| Класс | Инструмент |
|---|---|
| MuscleCommandline | MUSCLE |
| ClustalwCommandline | Clustal W (версии 1 и 2) |
| ClustalOmegaCommandline | Clustal Omega |
| PrankCommandline | PRANK |
| MafftCommandline | MAFFT |
| DialignCommandline | DIALIGN2-2 |
| ProbconsCommandline | PROBCONS |
| TCoffeeCommandline | TCoffee |
| MSAProbsCommandline | MSAProbs |
Пример запуска выравнивания Clustal W:
from Bio.Align.Applications import ClustalwCommandline
entrada = "arquivo.fasta"
clustalw_cline = ClustalwCommandline("clustalw2", infile=entrada)
print(clustalw_cline)
# clustalw2 -infile=arquivo.fasta
BLAST — популярный инструмент для поиска локальных выравниваний последовательностей[39]. Biopython поддерживает запуск BLAST как онлайн, так и локально.
Biopython позволяет запускать BLAST с помощью веб-сервиса NCBI[17] методом qblast() класса NCBIWWW модуля Bio.Blast. Пример:
from Bio.Blast import NCBIWWW
from Bio import SeqIO
fasta = SeqIO.read("seq.fasta", format="fasta")
output = NCBIWWW.qblast("blastn", "nt", fasta.seq, format_type="Text")
print(output.read())
Локальный запуск BLAST быстрее интернет-сервисов и позволяет работать с собственными базами данных (требуется установка NCBI-BLAST+). Для сравнения двух последовательностей:
from Bio.Blast.Applications import *
comando_blastn = NcbiblastnCommandline(query="seqA.fasta", subject="seqB.fasta", outfmt=0, out="output.txt")
stdout, stderr = comando_blastn()
with open("output.txt","r") as resultado_blast:
linhas = resultado_blast.read()
print(linhas)
Biopython поддерживает и другие версии BLAST:
| Метод | Версия BLAST |
|---|---|
| NcbiblastpCommandline() | blastp |
| NcbiblastxCommandline() | blastx |
| NcbitblastnCommandline() | tblastn |
| NcbitblastxCommandline() | tblastx |
| NcbiblastnCommandline() | blastn |
Примечания
- ↑ Biopython · Biopython (англ.). biopython.org. Дата обращения: 19 марта 2018.
- ↑ 1 2 3 4 5 6 7 8 9 Mariano, Diego. Introdução à Programação para Bioinformática com Biopython. — North Charleston, SC (США) : CreateSpace Independent Publishing Platform, 2015.
- ↑ Mangalam, Harry (2002-09-01). “The Bio* toolkits—a brief overview”. Briefings in Bioinformatics [англ.]. 3 (3): 296—302. DOI:10.1093/bib/3.3.296. ISSN 1467-5463.
- ↑ 1 2 Google Trends. Google Trends. Дата обращения: 23 марта 2018. Архивировано 29 марта 2019 года.
- ↑ The Biopython Project: Philosophy, functionality and facts (3 ноября 2004). Архивировано 3 июня 2025 года.
- ↑ Biopython CONTRIB. Дата обращения: 24 мая 2018. Архивировано 1 января 2011 года.
- ↑ Download · Biopython (амер. англ.). web.archive.org. Дата обращения: 23 марта 2026.
- ↑ Biopython Installation. biopython.org. Дата обращения: 23 марта 2018. Архивировано 28 сентября 2025 года.
- ↑ Biopython 1.70 released (англ.), OBF News (11 июля 2017). Архивировано 18 сентября 2017 года.
- ↑ Swiss-Prot - EMBL-EBI. Дата обращения: 20 мая 2018. Архивировано 4 октября 1999 года.
- ↑ Home - UniGene - NCBI. Дата обращения: 20 мая 2018. Архивировано 15 июня 1997 года.
- ↑ SCOP: Structural Classification of Proteins. Дата обращения: 20 мая 2018. Архивировано 10 января 1998 года.
- ↑ ExPASy: SIB Bioinformatics Resource Portal. Дата обращения: 20 мая 2018.
- ↑ GenBank Overview - NCBI - NIH. Дата обращения: 20 мая 2018. Архивировано 12 октября 2025 года.
- ↑ MEDLINE/PubMed Resources Guide - National Library of Medicine. Дата обращения: 20 мая 2018. Архивировано 7 октября 2025 года.
- ↑ PubMed - NCBI. Дата обращения: 20 мая 2018. Архивировано 15 июня 1997 года.
- ↑ 1 2 BLAST: basic local alignment search tool. Дата обращения: 18 мая 2018. Архивировано 11 октября 2025 года.
- ↑ 1 2 CLUSTAL W. Дата обращения: 18 мая 2018. Архивировано 15 ноября 2010 года.
- ↑ FASTA. Дата обращения: 20 мая 2018. Архивировано 24 августа 2010 года.
- ↑ Hamelryck, Thomas; Manderick, Bernard (2003-11-22). “PDB file parser and structure class implemented in Python”. Bioinformatics [англ.]. 19 (17): 2308—2310. DOI:10.1093/bioinformatics/btg299. ISSN 1367-4803.
- ↑ Bio.PDB. Дата обращения: 18 мая 2018. Архивировано 9 апреля 2013 года.
- ↑ Protein Superposition using Biopython. WARWICK - MOAC DTC, Senate House, University of Warwick. Дата обращения: 18 мая 2018. Архивировано 26 апреля 2025 года.
- ↑ Klebsiella pneumoniae strain KPS77 plasmid pKPS77, complete sequence - Nucleotide - NCBI. www.ncbi.nlm.nih.gov. Дата обращения: 23 марта 2018. Архивировано 24 января 2025 года.
- ↑ Pritchard, Leighton; White, Jennifer A.; Birch, Paul R. J.; Toth, Ian K. (2006-03-01). “GenomeDiagram: a python package for the visualization of large-scale genomic data”. Bioinformatics [англ.]. 22 (5): 616—617. DOI:10.1093/bioinformatics/btk021. ISSN 1367-4803.
- ↑ Artemis Comparison Tool (ACT). Дата обращения: 20 мая 2018. Архивировано 15 ноября 2015 года.
- ↑ CONTIGuator: A bacterial genomes finishing tool for structural insights on draft genomes. Дата обращения: 20 мая 2018.
- ↑ MUMmer: Ultra-fast alignment of large-scale DNA and protein sequences. Дата обращения: 20 мая 2018.
- ↑ Zmasek, Christian M; Zhang, Qing; Ye, Yuzhen; Godzik, Adam (24 октября 2007). “Surprising complexity of the ancestral apoptosis network”. Genome Biology. 8 (10): R226. DOI:10.1186/gb-2007-8-10-r226. PMC 2246300. PMID 17958905.
- ↑ Talevich, Eric; Invergo, Brandon M.; Cock, Peter JA; Chapman, Brad A. (2012-08-21). “Bio.Phylo: A unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython”. BMC Bioinformatics. 13: 209. DOI:10.1186/1471-2105-13-209. ISSN 1471-2105.
- ↑ ROUSSET, François (28 июня 2008). “genepop'007: a complete re‐implementation of the genepop software for Windows and Linux”. Molecular Ecology Resources. Дата обращения 23 марта 2018.
- ↑ Excoffier, Laurent; Foll, Matthieu (2011-05-01). “fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios”. Bioinformatics [англ.]. 27 (9): 1332—1334. DOI:10.1093/bioinformatics/btr124. ISSN 1367-4803.
- ↑ Clustal Omega. Дата обращения: 18 мая 2018. Архивировано 25 сентября 2011 года.
- ↑ DIALIGN. Дата обращения: 18 мая 2018. Архивировано 29 марта 2019 года.
- ↑ MAFFT. Дата обращения: 18 мая 2018. Архивировано 9 мая 2010 года.
- ↑ MUSCLE. Дата обращения: 18 мая 2018. Архивировано 25 ноября 2010 года.
- ↑ PRANK. Дата обращения: 18 мая 2018. Архивировано 21 июня 2025 года.
- ↑ Probabilistic Consistency-based Multiple Alignment of Amino Acid Sequences. Дата обращения: 18 мая 2018.
- ↑ T-COFFEE. Дата обращения: 18 мая 2018.
- ↑ Altschul, Stephen F.; Gish, Warren; Miller, Webb; Myers, Eugene W.; Lipman, David J. (1990). “Basic local alignment search tool”. Journal of Molecular Biology. 215 (3): 403—410. DOI:10.1016/s0022-2836(05)80360-2. ISSN 0022-2836.