Математические модели в естественнонаучном образовании. Том II - страница 33

Шрифт
Интервал


Задачи для самостоятельного решения:

Прежде чем пытаться решить предлагаемые задачи, загрузите базу данных primatedata в MATLAB, чтобы получить доступ к этим аспектам и искажениям, упомянутым выше, все из которых происходят из работы Хаясака от 1988 года. Введите команду who, чтобы увидеть имена переменных, создаваемых данным m-файлом.

5.6.1. Массив расстояний Distprimates представляет собой матрицу 12 × 12, с расстояниями, вычисляемыми по 6-параметрической модели подстановки основания. Названия таксонов в порядке записей матрицы находятся в переменной с именем Namesprimates. Выполните алгоритм присоединения соседей для этих данных с помощью команды nj(Distprimates,Namesprimates{:}).

Нарисуйте метрическое дерево, получившееся в результате.

5.6.2. Используйте имеющиеся знания и свой ответ на предыдущую задачу, чтобы изобразить корневое топологическое дерево, которое могло бы описать эволюционную историю пяти гоминоидов, упомянутых во введении.

5.6.3. Сколько возможных некорневых топологических деревьев может описать эволюцию 12 приматов? Сколько возможных корневых топологических деревьев может описать эволюцию пяти гоминоидов упомянутых во введении к главе?

5.6.4. Команды Nameshominoids=Namesprimates(1:5),  Dist hominoids=Dist primates(1:5,1:5) извлекут имена и расстояния между первыми пятью приматами, гоминоидами, упомянутыми во введении к этой главе. Используйте программу nj на данных расстояния только для этих пяти, нарисовав полученное метрическое дерево. Согласуется ли полученная топология с топологией, приведенной в задаче 5.6.1? Согласуется ли метрическая структура? Объясните, как могли возникнуть какие-либо расхождения, которые заметили.

5.6.5. Используйте команду Seqhominoids=Seqprimates([1:5],:)  для извлечения последовательностей для гоминоидов. Некоторые последовательности имеют пробелы, обозначаемые символом «–». Сайты, где любая последовательность имеет пробел, который должен быть удален перед вычислением расстояний, нужно предварительно отфильтровать. Команды gaps=(Seq hominoids =='-'), gapsites=find(sum(gaps)), Seq nogaps=Seq hominoids, Seq nogaps(:,gapsites)=[ ] найдут и удалят эти сайты. Используя последовательности без пробелов, вычислите расстояние Джукса-Кантора, 2-параметрическое расстояние Кимуры и логарифмическое расстояние. Напомним, что [DJC, DK2, DLD]=distances(Seqnogaps) сделает это легко.