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

История

undefined

Разработка 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

Дополнительные инструкции и способы установки см. в официальной документации.

Примеры

Обработка последовательностей

undefined

В Biopython последовательности определяются как объекты, а не как строки. Для работы с последовательностями требуется модуль Bio.Seq. Для манипуляций с последовательностями нуклеотидов и аминокислот также понадобится модуль Bio.Alphabet (и класс IUPAC для стандарта алфавитов ДНК/РНК/белков)[2].

undefined

Класс 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

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

Структуры белков

undefined

Biopython содержит пакеты для работы с белковыми структурами (формат PDB).[20]. Модуль Bio.PDB был разработан Томасом Хамелриком и Бернаром Мандериком[21]. Для его работы требуется пакет NumPy.

Bio.PDB преобразует структуру из PDB-файла в объект Structure по архитектуре SMCRA (Structure, Model, Chain, Residue, Atom):

  • структура состоит из моделей;
  • модель — из цепей;
  • цепь — из остатков;
  • остаток — из атомов.

Структура (structure)

Объект structure — верхний уровень иерархии. Его идентификатор задаётся пользователем. Получить структуру можно методом get_structure():

from Bio.PDB import *

parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')

Модель (model)

Структуры, полученные методом рентгеноструктурного анализа, часто содержат одну модель, а структуры по данным ЯМР — несколько:

from Bio.PDB import *

parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')

first_model = estrutura[0]

Цепь (chain)

Цепи представляют четвертичную структуру белка. В Biopython id цепи обычно — один символ:

from Bio.PDB import *

parser = PDBParser()
estrutura = parser.get_structure('ИМЯ', 'ФАЙЛ.pdb')

# Получение первой цепи
first_model = estrutura[0]
chain_A = first_model['A']

Остаток (residue)

Идентификатор остатка — кортеж из трёх элементов:

  • 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) проверяет наличие определённого атома

Атом (atom)

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-файлов

Для скачивания PDB-файлов можно использовать метод retrieve_pdb_file() с указанием кода PDB:

from Bio.PDB import *

pdb = PDBList()
pdb.retrieve_pdb_file('1BGA')

Сохранение файлов PDB

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

Возможно сохранить 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)

Визуализация биологических данных

undefined
undefined

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]

Филогения

undefined
undefined

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

BLAST — популярный инструмент для поиска локальных выравниваний последовательностей[39]. Biopython поддерживает запуск BLAST как онлайн, так и локально.

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

Локальный запуск 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

Примечания

  1. Biopython · Biopython (англ.). biopython.org. Дата обращения: 19 марта 2018.
  2. 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.
  3. 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.
  4. The Biopython Project: Philosophy, functionality and facts (3 ноября 2004). Архивировано 3 июня 2025 года.
  5. Biopython CONTRIB. Дата обращения: 24 мая 2018. Архивировано 1 января 2011 года.
  6. Download · Biopython (амер. англ.). web.archive.org. Дата обращения: 23 марта 2026.
  7. Biopython Installation. biopython.org. Дата обращения: 23 марта 2018. Архивировано 28 сентября 2025 года.
  8. Biopython 1.70 released (англ.), OBF News (11 июля 2017). Архивировано 18 сентября 2017 года.
  9. Swiss-Prot - EMBL-EBI. Дата обращения: 20 мая 2018. Архивировано 4 октября 1999 года.
  10. Home - UniGene - NCBI. Дата обращения: 20 мая 2018. Архивировано 15 июня 1997 года.
  11. SCOP: Structural Classification of Proteins. Дата обращения: 20 мая 2018. Архивировано 10 января 1998 года.
  12. ExPASy: SIB Bioinformatics Resource Portal. Дата обращения: 20 мая 2018.
  13. GenBank Overview - NCBI - NIH. Дата обращения: 20 мая 2018. Архивировано 12 октября 2025 года.
  14. MEDLINE/PubMed Resources Guide - National Library of Medicine. Дата обращения: 20 мая 2018. Архивировано 7 октября 2025 года.
  15. PubMed - NCBI. Дата обращения: 20 мая 2018. Архивировано 15 июня 1997 года.
  16. 1 2 BLAST: basic local alignment search tool. Дата обращения: 18 мая 2018. Архивировано 11 октября 2025 года.
  17. 1 2 CLUSTAL W. Дата обращения: 18 мая 2018. Архивировано 15 ноября 2010 года.
  18. FASTA. Дата обращения: 20 мая 2018. Архивировано 24 августа 2010 года.
  19. 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.
  20. Bio.PDB. Дата обращения: 18 мая 2018. Архивировано 9 апреля 2013 года.
  21. Protein Superposition using Biopython. WARWICK - MOAC DTC, Senate House, University of Warwick. Дата обращения: 18 мая 2018. Архивировано 26 апреля 2025 года.
  22. Klebsiella pneumoniae strain KPS77 plasmid pKPS77, complete sequence - Nucleotide - NCBI. www.ncbi.nlm.nih.gov. Дата обращения: 23 марта 2018. Архивировано 24 января 2025 года.
  23. 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.
  24. Artemis Comparison Tool (ACT). Дата обращения: 20 мая 2018. Архивировано 15 ноября 2015 года.
  25. CONTIGuator: A bacterial genomes finishing tool for structural insights on draft genomes. Дата обращения: 20 мая 2018.
  26. MUMmer: Ultra-fast alignment of large-scale DNA and protein sequences. Дата обращения: 20 мая 2018.
  27. 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.
  28. 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.
  29. ROUSSET, François (28 июня 2008). “genepop'007: a complete re‐implementation of the genepop software for Windows and Linux”. Molecular Ecology Resources. Дата обращения 23 марта 2018.
  30. 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.
  31. Clustal Omega. Дата обращения: 18 мая 2018. Архивировано 25 сентября 2011 года.
  32. DIALIGN. Дата обращения: 18 мая 2018. Архивировано 29 марта 2019 года.
  33. MAFFT. Дата обращения: 18 мая 2018. Архивировано 9 мая 2010 года.
  34. MUSCLE. Дата обращения: 18 мая 2018. Архивировано 25 ноября 2010 года.
  35. PRANK. Дата обращения: 18 мая 2018. Архивировано 21 июня 2025 года.
  36. Probabilistic Consistency-based Multiple Alignment of Amino Acid Sequences. Дата обращения: 18 мая 2018.
  37. T-COFFEE. Дата обращения: 18 мая 2018.
  38. 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.