АвторТема: Программа TNT.  (Прочитано 97711 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #450 : 02 Август 2013, 09:09:04 »
Подскажите, пожалуйста.

1) Есть ли возможность получить дерево в формате NEWICK вместе с ярлыками узлов или ветвей? Скажем, я использую бутстреп или вывожу на экран длины ветвей (команда blength *N;). В формат ASCII или emf ярлыки сохраняются. А через Data | Export nexus format ярлыки теряются.
Возможно. Встроенный конвертер убогий, не используйте его. Поищите по этой теме, я уже выкладывал свой скрипт конвертации tntree->newick
2) Можно ли получить не кладограмму, а филограмму с разными длинами ветвей? Желательно в формате NEWICK.
Да. Возможно.
Использую последнюю версию TNT 08 May 2013, Windows, GUI.
К сожалению совсем не знаю GUI версию TNT, тк использую консольную. Она более гибкая в настройках.

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #451 : 02 Август 2013, 09:36:22 »
И еще один вопрос -- на этот раз имеющий ответ.

3) Как задать разную стоимость переходов? Читал хелп, но там очень кратко: 1, 2.

У меня на вход подается бинарная матрица с состояниями "1, 0, ?".

Я хочу задать стоимость 1>0 = 1, 0>1 = 5.

Как я понимаю, это делается следующим образом: Data | Character settings | Stem-matrix, of costs, edit.
Далее в таблице я меняю 0to1 = 5, остальные значения оставляю 1. Кроме того, в диалоге Select CHARS надо задать признаки, к которым эта step-matrix будет применяться.

Правильно ли я действую? Смущает, что step-matrix всего 10x10, а TNT ведь работает и с 16-, и с 32-state файлами.

P.S. Эксперимент показал, что по описанному выше алгоритму с 1>0 = 1, 0>1 = 5 дерево строится другое, чем при дефолтовых настройках без степ-матрицы. А если в степ-матрице задать 1>0 = 5, 0>1 = 5, то дерево такое же, как при дефолтовых настройках.
Сколько у Вас символов в каждой строке матрицы?
Ранее не смотрел в сторону smatrix и costs, но судя по всему задачу легко решить через команду costs.
Например, для первого символа в строке матрицы это будет выглядеть след-м образом:
costs 0 = 1>0 1;
costs 0 = 0>1 5;
costs *;
емнип, нумерация символов начинается с 0

возможно записать более кратко, задав диапазон порядковых номеров символов в строке матрицы:
costs 0.66 = 1>0 1;
costs 0.66 = 0>1 5;
costs *;
объявляет нужную вам стоимость переходов для символов с 1-го по 67 включительно.

« Последнее редактирование: 02 Август 2013, 10:18:42 от Semargl »

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #452 : 02 Август 2013, 10:15:21 »
Посмотрел smatrix

В вашем случае должны помочь следующие команды (для матрицы длиной 67 символов):
smatrix =1 (sm) 1>0 1;
smatrix =2 (sm) 0>1 5;
smatrix +sm 0.66;

проверил. эти команды создают правильную шаговую матрицу. Дерево для проверки не строил.



Оффлайн Alexei Kassian

  • Сообщений: 90
  • Страна: ru
  • Рейтинг +26/-0
Re: Программа TNT.
« Ответ #453 : 02 Август 2013, 20:00:14 »
Semargl, спасибо за ответы!

Возможно. Встроенный конвертер убогий, не используйте его. Поищите по этой теме, я уже выкладывал свой скрипт конвертации tntree->newick
Сейчас еще раз попробовал и всё заработало. Благодарю за конвертор.

2) Можно ли получить не кладограмму, а филограмму с разными длинами ветвей? Желательно в формате NEWICK.
Да. Возможно.

А как именно?

На тему несимметричной матрицы, т.е. с разной стоимостью переходов.

Цитировать
costs 0.66 = 1>0 1;
costs 0.66 = 0>1 5;
costs *;
объявляет нужную вам стоимость переходов для символов с 1-го по 67 включительно.

и

Цитировать
smatrix =1 (sm) 1>0 1;
smatrix =2 (sm) 0>1 5;
smatrix +sm 0.66;

Вот тут не очень понял, какая именно из двух команд нужна для моей задачи: costs  или smatrix?

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #454 : 05 Август 2013, 09:25:17 »

Возможно. Встроенный конвертер убогий, не используйте его. Поищите по этой теме, я уже выкладывал свой скрипт конвертации tntree->newick
Сейчас еще раз попробовал и всё заработало. Благодарю за конвертор.

2) Можно ли получить не кладограмму, а филограмму с разными длинами ветвей? Желательно в формате NEWICK.
Да. Возможно.

А как именно?
На тему формата newick:
1, 2
Если кратко, то:
(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;
где буквы - названия нод, а цифры - возраст ребер.
Из этого примера получается такое дерево:


Вы можете прислать мне небольшое дерево в формате tntree и то, что у вас получилось в newick.
Есть ли данные по возрасту ветвей в файле tntree? они теряются при конвертации?

Хорошие утилиты для работы с готовым ньюиком. И хороший мануал по всему этому делу.


На тему несимметричной матрицы, т.е. с разной стоимостью переходов.

Цитировать
costs 0.66 = 1>0 1;
costs 0.66 = 0>1 5;
costs *;
объявляет нужную вам стоимость переходов для символов с 1-го по 67 включительно.

и

Цитировать
smatrix =1 (sm) 1>0 1;
smatrix =2 (sm) 0>1 5;
smatrix +sm 0.66;

Вот тут не очень понял, какая именно из двух команд нужна для моей задачи: costs  или smatrix?
Я не применял в своей работе шаговые матрицы, но как вижу из мануала, в вашем случае, это полностью равноценные команды.
Советую протестировать на небольшом наборе данных, как будут отрабатывать обе команды, будут ли совпадать выходные данные.
« Последнее редактирование: 06 Август 2013, 09:02:35 от Semargl »

Оффлайн Alexei Kassian

  • Сообщений: 90
  • Страна: ru
  • Рейтинг +26/-0
Re: Программа TNT.
« Ответ #455 : 16 Август 2013, 21:37:35 »
Semargl
Спасибо еще раз.

Вот такое дерево. Это результат скобочного экспорта из TNT, обработанный вашим скриптом. Цифры, которые сейчас оформлены как branch labels, на самом деле длины ветвей.

#NEXUS
begin trees;
tree tree_1 = [&R]
(Outgroup_Chechen[&!name="0"],(Khinalug[&!name="56"],((Nidzh_Udi[&!name="10"],Vartashen_Udi[&!name="12"])45,(Archi[&!name="50"],(((Budukh[&!name="14"],(Kryts_proper[&!name="3"],Alyk_Kryts[&!name="10"])6)24,((Gelmets_Tsakhur[&!name="4"],(Mishlesh_Tsakhur[&!name="3"],Mikik_Tsakhur[&!name="2"])4)35,(Ixrek_Rutul[&!name="2"],(Mukhad_Rutul[&!name="2"],Luchek_Rutul[&!name="9"])4)21)16)6,(Gyune_Lezgi[&!name="43"],((Koshan_Aghul[&!name="13"],(Keren_Aghul[&!name="12"],Gequn_Aghul[&!name="7"],Fite_Aghul[&!name="6"],Aghul_proper[&!name="3"])7)8,(Northern_Tabasaran[&!name="11"],Southern_Tabasaran[&!name="5"])19)13)8)7)7)9)0);
end;

Раньше я эти цифры руками переписывал в формат длины (ставил двоеточие).
Вопрос: есть ли автоматизированный способ превратить branch labels в длину?

P.S. У аутгрупа (таксон Outgroup_Chechen) нулевое число -- это глюк TNT. Программа по команде blength *0; аутгрупу, видимо, всегда выставляет ноль.

Цитировать
Я не применял в своей работе шаговые матрицы, но как вижу из мануала, в вашем случае, это полностью равноценные команды.
Советую протестировать на небольшом наборе данных, как будут отрабатывать обе команды, будут ли совпадать выходные данные.

Попробую и расскажу.

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #456 : 24 Август 2013, 08:21:54 »
Цитировать

Раньше я эти цифры руками переписывал в формат длины (ставил двоеточие).
Вопрос: есть ли автоматизированный способ превратить branch labels в длину?

Да, есть. На днях я перепишу скрипт под вашу задачу.

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Сообщений: 5993
  • Страна: ru
  • Рейтинг +4191/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Re: Программа TNT.
« Ответ #457 : 02 Сентябрь 2013, 10:31:38 »
Semargl
Спасибо еще раз.

Вот такое дерево. Это результат скобочного экспорта из TNT, обработанный вашим скриптом. Цифры, которые сейчас оформлены как branch labels, на самом деле длины ветвей.

#NEXUS
begin trees;
tree tree_1 = [&R]
(Outgroup_Chechen[&!name="0"],(Khinalug[&!name="56"],((Nidzh_Udi[&!name="10"],Vartashen_Udi[&!name="12"])45,(Archi[&!name="50"],(((Budukh[&!name="14"],(Kryts_proper[&!name="3"],Alyk_Kryts[&!name="10"])6)24,((Gelmets_Tsakhur[&!name="4"],(Mishlesh_Tsakhur[&!name="3"],Mikik_Tsakhur[&!name="2"])4)35,(Ixrek_Rutul[&!name="2"],(Mukhad_Rutul[&!name="2"],Luchek_Rutul[&!name="9"])4)21)16)6,(Gyune_Lezgi[&!name="43"],((Koshan_Aghul[&!name="13"],(Keren_Aghul[&!name="12"],Gequn_Aghul[&!name="7"],Fite_Aghul[&!name="6"],Aghul_proper[&!name="3"])7)8,(Northern_Tabasaran[&!name="11"],Southern_Tabasaran[&!name="5"])19)13)8)7)7)9)0);
end;

Раньше я эти цифры руками переписывал в формат длины (ставил двоеточие).
Вопрос: есть ли автоматизированный способ превратить branch labels в длину?

P.S. У аутгрупа (таксон Outgroup_Chechen) нулевое число -- это глюк TNT. Программа по команде blength *0; аутгрупу, видимо, всегда выставляет ноль.

Цитировать
Я не применял в своей работе шаговые матрицы, но как вижу из мануала, в вашем случае, это полностью равноценные команды.
Советую протестировать на небольшом наборе данных, как будут отрабатывать обе команды, будут ли совпадать выходные данные.

Попробую и расскажу.
Алексей, сложно отладить скрипт, не имея вашего исходного файла, который надо перевести в формат newick.
Попробуйте такой конвертер.
Если результат не подойдет, то сбросьте мне свой исходный файл.

Оффлайн Alexei Kassian

  • Сообщений: 90
  • Страна: ru
  • Рейтинг +26/-0
Re: Программа TNT.
« Ответ #458 : 02 Сентябрь 2013, 15:13:43 »
Новый скрипт работает и конвертирует имена ветвей в длины. Большое спасибо!
Единственное что, вручную надо менять ;, на ; в конце файла.

На всякий случай исходный скобочный экспорт из TNT:
tread 'tree(s) from TNT, for data in E:\Kass\NCauc Glottochronology\Lezgian Doc\Voprosy Yazykoznaniya\Maximum parsimony TNT\lez.nex.tnt'
(Outgroup_Chechen =0 (Khinalug =56 ((Nidzh_Udi =10 Vartashen_Udi =12 )=45 (Archi =50 (((Budukh =14 (Kryts_proper =3 Alyk_Kryts =10 )=6 )=24 ((Gelmets_Tsakhur =4 (Mishlesh_Tsakhur =3 Mikik_Tsakhur =2 )=4 )=35 (Ixrek_Rutul =2 (Mukhad_Rutul =2 Luchek_Rutul =9 )=4 )=21 )=16 )=6 (Gyune_Lezgi =43 ((Koshan_Aghul =13 (Keren_Aghul =12 Gequn_Aghul =7 Fite_Aghul =6 Aghul_proper =3 )=7 )=8 (Northern_Tabasaran =11 Southern_Tabasaran =5 )=19 )=13 )=8 )=7 )=7 )=9 )=0 );
proc-;

 

© 2007 Молекулярная Генеалогия (МолГен)

Внимание! Все сообщения отражают только мнения их авторов.
Все права на материалы принадлежат их авторам (владельцам) и сетевым изданиям, с которых они взяты.