- В данном задании мы рассматривали искусственную эволюцию гена carB,
кодирующего белок большую цепь карбамоилфосфатсинтетазы (CARB_ECOLI),
соответствующую скобочной формуле:
(((А:70,В:70):10,((С:33,D:33):17,Е:50):30):30,F:110);
Ниже находится изображение дерева, соответствующее вышеуказанной формуле,
созданное в программе Paint:
- Описание ветвей дерева как разбиения множества листьев, считая дерево бескорневым:
A |
B |
C |
D |
E |
F |
. |
. |
* |
* |
. |
. |
. |
. |
* |
* |
* |
. |
. |
. |
* |
* |
* |
* |
Здесь знаками . и * обозначаются листья по одну и по другую сторону
рассматриваемой ветви, соответственно.
- Последовательность гена carB (ID записи EMBL V01500) находится
здесь
. Длина последовательности 3674 нуклеотида (мы рассматривали не
только кодирующую последовательность, а весь ген в целом). С помощью программы
msbar мы создали мутантные последовательности согласно вышеприведенной
скобочной формуле, считая, что в корне находится последовательность нашего гена.
Длины ветвей соответствуют количеству мутаций на 100 нуклеотидов, что в пересчете на длину
гена составляет: 30 мутаций - 1102, 10 - 367, 70 - 2572, 17 - 625, 33 - 1212,
50 - 1837, 110 - 4041, то есть общая формула для пересчета: (количество мутаций*
длина гена)/100.
Мы написали скрипт, создающий мутантные последовательности, с
необходимым количествам мутаций, и поместили эти последовательности в один файл. Скрипт:
msbar v01500.txt ABCDE.txt -point 4 -count 1102 -auto
msbar ABCDE.txt AB.txt -point 4 -count 367 -auto
msbar AB.txt A.txt -point 4 -count 2572 -auto
cat A.txt >> evolution.txt
msbar AB.txt B.txt -point 4 -count 2572 -auto
cat B.txt >> evolution.txt
msbar ABCDE.txt CDE.txt -point 4 -count 1102 -auto
msbar CDE.txt CD.txt -point 4 -count 625 -auto
msbar CD.txt C.txt -point 4 -count 1212 -auto
cat C.txt >> evolution.txt
msbar CD.txt D.txt -point 4 -count 1212 -auto
cat D.txt >> evolution.txt
msbar CDE.txt E.txt -point 4 -count 1837 -auto
cat E.txt >> evolution.txt
msbar v01500.txt F.txt -point 4 -count 4041 -auto
cat F.txt >> evolution.txt
Файл с последоватальностями находится здесь
- С помощью программы fdnmal было реконструировано дерево алгоритмом максимального
правдоподобия. Команда:
fdnaml evolution.fasta -ttratio 1 -auto, где:
опция ttratio - отношение количества транзиций к количеству трансверсий.
В результате было получено дерево:
+---------------B
|
| +----------------------------------F
1--4
| | +-----------E
| +-------3
| | +-------D
| +----2
| +-------C
|
+----------------A
Для реконструирования дерева алгоритмом UPGMA и Neighbor-joining
были посчитаны попарные расстояния между последовательностями программой
fdnadist командой:
fdnadist evolution.fasta -ttratio 1 -auto
Полученный файл evolution.fdnadist быд подан на вход программе fneighbor:
fneighbor evolution.fdnadist -auto
Дерево, полученное алгоритмом Neighbor-joining:
+---------------B
!
! +-------C
! +----1
! +-------2 +-------D
! ! !
3--4 +-----------E
! !
! +------------------------------------F
!
+----------------A
Для реконструкции дерева алгоритмом UPGMA была выполнена команда:
fneighbor evolution.fdnadist -treetype u evolution1.fneighbor -auto, где:
treetype - алгоритм, по кторому стоится дерево, в данном случае параметр
u - алгоритм UPGMA.
Полученное дерево:
+-------------------------------A
+------3
! +-------------------------------B
+----------------4
! ! +--------------C
! ! +--------1
--5 +--------------2 +--------------D
! !
! +-----------------------E
!
+-------------------------------------------------------F
- Сравнение полученных результатов
Рассмотрим ветви деревьев:
Ветви |
Реальное дерево |
Алгоритм максимального правдоподобия |
Алгоритм Neighbor-joining |
Алгоритм UPGMA |
..**.. |
+ |
+ |
+ |
+ |
..***. |
+ |
+ |
+ |
+ |
..**** |
+ |
+ |
+ |
+ |
Итак, видно, что во всех четырех деревьях одинаковые ветви, и три реконструированных
дерева схожи по топологии с реальным.
Реальное дерево ультраметричное, то есть скорость
эволюции для каждой из ветвей одинакова, и расстояния от корня до любого из листьев одинаковы. Поэтому
дерево, построенное по алгоритму UPGMA, совпадает с этим деревом по топологии.
Данный алгоритм состоит в том, что из матрицы попарных расстояний выбирается пара с наименьшим
расстоянием и длина ветвей от этих последовательностей до узла считается равной половине
расстояния между данными последовательностями, затем в матрице данные последовательности
заменяются клатером, опять выбирается пара с наименьшим расстоянием и так далее (мы
выполняли такое задание с белковыми последовательностями во втором семестре). Таким образом, в данном алгоритме подразумевается,
что скорость эволюции в ветвях идет с одинаковой скоростью и длина ветви, то есть количество
мутаций, пропорционально времени.
Программы, основанные на алгоритмах максимального правдоподобия и Neighbor-joining,
строят неукоренные деревья. Два этих дерева не отличаются по топологии от реального. В методе максимального правдоподобия рассчитывается вероятность P(t)ij -
вероятность замены i-ого нуклеотида на j-ый в данной позиции (под временем t подразумевается определенное количество этапов,
иными словами число предполагаемых предков)
и вероятность L(k)i - вероятность i-ого нуклеотида в определенной позиции
в последовательности возможного предшественника (похоже на цепь Маркова). Для каждого узла вычислется L(k)i
путем рекурсии.
Дерево, построенное по алгоритму Neighbor-joining, совпадает по топологии
с деревом, созданным по алгоритму максимального правдоподобия. Алгоритм состоит в том, что каждый раз
выбираются два близких узла, причем они должны быть далекими от других узлов.
Можно заметить, что деревья, построенные по двум последним алгоритмам, неультраметричные.
Так, последовательности E, C, D произошли от предка ECD. Мутант E образовался за одну стадию
из этого предка за 50 мутаций, C и D - за две стадии за 17 и 33 мутаций. Однако,
из дерева можно предположить, что E образоваласю за меньшее, чем 50 количество мутаций.
Это можно объяснить тем, что мы создавали последовательности искусственно, и программа
msbar может делать изменение нуклеотида на тот же, считая это заменой.
- Bootstrap и drawtree
С помощью программы Bootstrap мы получили 100 бутстреп-реплик выравниваний наших
мутантных последовательноситей. Была выполнена команда:
fseqboot evolution.txt -auto
Полученный файл был дан на вход программе fdnaml:
fdnaml evolution.fseqboot -ttratio 1 -auto; в полученном файле evolution.treefile
находились 100 скобочных формул, соответствующих реконструкциям, сделанным по
каждому из выравниваний.
На вход программе fconsense был подан файл evolution.treefile. В результате было получно консенсусное
дерево:
+--------------------E
+100.0-|
| | +-------------F
| +100.0-|
+------| | +------A
| | +-98.0-|
| | +------B
| |
| +---------------------------D
|
+----------------------------------C
Программа также выдает описание ветвей данного дерева как разбиения множества листьев:
A |
B |
C |
D |
E |
F |
. |
. |
* |
* |
* |
* |
. |
. |
* |
* |
* |
. |
. |
. |
* |
* |
. |
. |
На дереве указано число раз, которое всречалась каждая из ветвей. Видно, что во всех
деревьях были разбиения ..**.. и ..***.; почти всегда в
деревьях было разбиение ..**** (в 98 случаях, в остальных двух случаях было разбиение
.****., поэтому ветви, соответствующей такому разбиению нет на дереве).
Ветви консенусного дерева и реального совпадают, то есть, соответстенно, и бутсреп-значения
для ветвей реального дерева такие же, что и для консенсусного. Видно, что мутантные последовательности здесь образовались
такими же путми, что и в реальном дереве.
Таким образом, ветви во всех построенных деревьях совпадают и не отличаются от ветвей
исходного дерева, топология этих деревьев такая же, как и у реального. Дерево, созданное по алгоритму UPGMA,
к тому же и укорененное, поэтому представляет собой копию нашего реального дерева. Все программы хорошо справились с поставленной перед ними задачей.
Изображение неукорененного дерева, соответствующего нашей скобочной формуле можно создать с помощью программ
fdrawtree: