АвторТема: Краткий практический курс работы с Муркой  (Прочитано 17931 раз)

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

Оффлайн mouglley

  • ...
  • Сообщений: 7097
  • Страна: hr
  • Рейтинг +434/-7
  • Я знаю, что познаю всё.
    • Записки Маугли
  • Y-ДНК: N1c1-L1025
  • мтДНК: J1c3
а) Что если сделать опцию для записи возраста внутри кружочка - не слишком ли их раздует ?
Для меня - нет.
Вегда можно откорректировать размер шрифта или размер кружочка.
« Последнее редактирование: 25 Июнь 2009, 12:17:15 от mouglley »

Оффлайн mouglley

  • ...
  • Сообщений: 7097
  • Страна: hr
  • Рейтинг +434/-7
  • Я знаю, что познаю всё.
    • Записки Маугли
  • Y-ДНК: N1c1-L1025
  • мтДНК: J1c3
б) Есть ли в Графвизе возможность рисовать диаграмки вместо кружков, типа столько-то данного типа в такой популяции, столько в такой - и разным цветом? Я знаю что такое можно реализовать внутри прямоугольников (как records) но для подобных художеств в кружках определенно нужен плагин. Разумеется, если будет найден способ рисовать это, придется расширить входной формат RDF для записи принадлежности образца к популяциям. Можно за основу взять новый RDF фирмы FLUXUS либо перейти на Nexus формат.
Абсолютно ничего не знаю о таких возможностях Графвиз, но если такое найдётся, это был бы прорыв на новый уровень.

Оффлайн mouglley

  • ...
  • Сообщений: 7097
  • Страна: hr
  • Рейтинг +434/-7
  • Я знаю, что познаю всё.
    • Записки Маугли
  • Y-ДНК: N1c1-L1025
  • мтДНК: J1c3
Ответ на вопрос а) для меня ясен - возраст нужно указывать. Другое дело - в каком формате - в годах, поколениях или в количестве мутаций (ро). А лучше всего ввести параметр - указывать ли возраст и в каком формате. Тогда те, кому это не надо могли бы сэкономить на размере кружка.
В выноски я вношу возраст в годах (самое доступное), но в этом случае, наверное, надо собрать мнения всех желающих. Соотношение возраста с ро и так уже можно внести в bat.

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
3. Появилась новая опция для ГрафВиза - NOPOOL.
Замечательная опция!
То есть нынче строка будет звучать где-то так:
Цитировать
-G "GraphViz; 1; ROOTPREFERRED|AGE|DISTL|CHNAMES|CHCHNG|TXNAMES|TXFR|TXFRSZ|TXCD|ROOTONLY|TREEONLY|NOPOOL;
?


именно так!

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Ответ на вопрос а) для меня ясен - возраст нужно указывать. Другое дело - в каком формате - в годах, поколениях или в количестве мутаций (ро). А лучше всего ввести параметр - указывать ли возраст и в каком формате. Тогда те, кому это не надо могли бы сэкономить на размере кружка.

ув. Князь, возраст и так можно указывать или не указывать, в Ро или в годах, в мурке это есть, вопрос только в технике: сейчас возраст рисуется вне кружка что ухудшает вид дерева, есть предложение рисовать внутри

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
А в каком месте установить, что бы, например, кружочек с двумя гаплотипами был в двое больше, чем с одним гаплотипом?


у Вас это уже есть: TXFRSZ. Но в текущей реализации я грубо говоря считаю что у нас кружок а не эллипс, будет время я поправлю с учетом формулы площади эллипса.


Коррекция ширины и высоты кружка - то что синим. Можно увеличить эти коэффициенты, например если имена очень длинные и Графвиз ругается что они вылезают за круоки. То что зеленым корректирует размер кружков-медиан, здесь я установил в ноль, у Вас судя по всему там ненулевое значение, но это дело вкуса.

Оранжевое - это коэффициент для ребер в зависимости от их веса, он работает только если в опциях указано DISTL но это лучше не использовать, так как у Графвиза полная чехарда в случае когда пользователь пытается влиять на длину ребер.

Желтый - это формат картинки и dpi. Можно регулировать! Я юзаю gif, png и dpi от 0.65 до 1.0

Цитировать
-G "GraphViz; 1; ROOTPREFERRED|CHNAMES|CHCHNG|TXNAMES|TXFR|TXFRSZ|ROOTONLY|TREEONLY|CALL|NOPOOL; 1.8; 1.1; 0.0; 2.0; 96.0; gif; /usr/local/bin/dot; /usr/local/bin/neato; viz/nw#.dot; viz/nw#.gif; viz/tpl/nwtpl.txt; "



Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
а) Что если сделать опцию для записи возраста внутри кружочка - не слишком ли их раздует ?
Для меня - нет.
Вегда можно откорректировать размер шрифта или размер кружёчка.


Значит решено! Как будет готово, извещу.

Еще раз напоминаю, что я НАСТОЯТЕЛЬНО прошу уважаемых пользователей высказывать пожелания по графике, в пределах разумного, не слишком отягощающего исходный код. Я предполагал, что если кому-то требуется суперграфика ее всегда можно получить из текстового вывода Мурки, он содержит 100% информации, его можно конвертить в скрипт любой серьезной НЕДЕЦЦКОЙ :) программы для рисования графов, например коммерческой программы, вроде NetViz или еще чего. Я поддерживаю только вывод в графику базовых фич, но оптимизация выводимого - очень желаема. Я мог пойти по неправильному или неоптимальному пути, опустить необходимые фичи и ввести ненужные, люди использующие Мурку должны это заметить и потребовать исправить :)

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Цитировать
Я так понимаю, что параметр TXFRSZ ( в каком месте устанавливается, уточните, пожалуйста) заменяет параметр, прописанный в nwtpl.txt?
Или он что-то добавляет?

TXFRSZ - где список опций ГрафВиза, у Вас есть, см пример выше. Я сдуру указал в шаблоне fixedsize=true и народ проглотил, потому что у всех стоит TXFRSZ. А вот если TXFRSZ из командной строки убрать, заставив Графвиз считать размер кружочков самостоятельно, то он уткнется в fixedsize=true и ничего делать не будет. Поэтому в шаблоне  fixedsize=true вовсе не нужен. В принципе, мне не нравится как он сам считает без TXFRSZ но вдруг кому хочется опробовать.

Итак, если Вас TXFRSZ устраивает то и шаблон править не надо.

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Абсолютно ничего не знаю о таких возможностях Графвиз, но если такое найдётся, это был бы прорыв на новый уровень.


Это умеет Флаксас Нетворк. Единственное что там плохо - нужно ему помогать, возиться вручную. Пока причешешь - так устанешь что будет не до смысла нарисованного :)

Второй плюс Нетворка - умение рисовать сети. Графвиз может неплохо рисовать сети с НЕБОЛЬШИМИ ретикуляциями но запутанные графы - увы, выходит гадость. Кто хочет опробовать может удалить опцию TREEONLY - и увидит сети с ретикуляциями. Например, если опции запуска MJ совпадают то совпадут и сети Мурки и Нетворка. Но будут по-разному отображаться в графике.

В идеале я бы хотел найти такой БЕСПЛАТНЫЙ пакет для рисования который умеет красиво отображать сети общего вида, а не только деревья. Это достаточно сложно делать автоматически, в отличие от рисования деревьев, но думаю что в принципе возможно.

Оффлайн wertner

  • ...
  • Сообщений: 1332
  • Страна: ru
  • Рейтинг +321/-0
    • YFull
  • Y-ДНК: E-V13->E-S2972->E-Z16661
  • мтДНК: U4a (xU4a3)
Да, Графвиз, к сожалению, не умеет делить кружочки на сектора. Как и в одном кружочке писать разными шрифтами, цветами.

Но может, действительно, стоит предоставить возможность рисовать не кружочки, а прямоугольники? И их делать "полосатыми" для нескольких гаплотипов. Не слишком красиво, зато информативно.
Мне самому это не нужно, просто как мысль. Вдруг кто-то в этом нуждается и поддержит идею.

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Да, Графвиз, к сожалению, не умеет делить кружочки на сектора. Как и в одном кружочке писать разными шрифтами, цветами.

Но может, действительно, стоит предоставить возможность рисовать не кружочки, а прямоугольники? И их делать "полосатыми" для нескольких гаплотипов. Не слишком красиво, зато информативно.
Мне самому это не нужно, просто как мысль. Вдруг кто-то в этом нуждается и поддержит идею.


вот и я склоняюсь к такому варианту, как опции. Придется:

1) придумать алгоритм разбивки прямоугольника на "записи" с учетом частоты
2) расширить формат RDF с учетом необходимости кодировать названия популяций
3) кодировать цвета популяций либо (как опция) заставить Мурку саму раздать им цвета

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
На всякий: новой версии 1.1.14 (выгружена сегодня) в командную строку следует добавлять опцию UBRSPH рядом с LBDA.

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Выше я давал списки Штейнеровских параметров для запуска. Все это действительно и будет действительно впредь, так как я поддерживаю обратную совместимость параметров. Однако время от времени оптимальные условия запуска будут обновляться. Например, выше было приведено два варианта набора редукций - большой и облегченный. Сейчас, в последних версиях рекомендован облегченный:


редукции

 SEP1|NTT|NT1|NT2|NTD|LEUC|DA|PS|SL|NV|LE|PTE|NTDX|EXTV|EXTVDA|EXTVDAP|ASCPRN|EXPV|CUTRDA

и соответствующие опции контроля производительности

LBDA|UBRSPH|KEEPBND|BNDREPEATS3|BNDPERC2|EXTTEST2|EXTTESTP3|PRUNE3|PROCMSG1|NWPERFMON|REDPMLEV2|REDREP2|COMPLTRAVERSAL


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

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1391/-7
  • Ultimate Matriarchy
Re: Краткий практический курс работы с Муркой
« Ответ #58 : 05 Август 2009, 19:03:34 »
Вышла Мурка 1.2.0. Появилась новая фича, по многочисленным просьбам недовольных пользователей :). В отличие от точных методов, некоторые эвристики, прежде всего WPHEUR не дают возможности повторить результат при следующем запуске. А зря так как иногда хочется получить то же самое, изменив некоторые несущественные для логики но важные для оформления параметры. Теперь проблема в значительной степени решена. Для этого правда пришлось потеснить другие параметры так как буквы английского алфавита, большие и маленькие, кончились :)

Аргумент -S ранее допускал два значения "Y" и "N". Первый включает консольный вывод, второй - отключает его. Теперь тип параметра сменен, это обычная маска. Для консольного вывода (без него трудно, согласитесь) надо указать -S VB. Собственно будет то же что раньше при -S Y. Далее, к этому же значению VB я подселил две новых опции RSR и RSW. RSW приказывает записать используемое значение Random Seed в текстовый файлик murka.rs чтобы им можно было воспользоваться потом, если надо повторить результат. RSR же заставляет прочитать это значение из файла и использовать не генеря нового. То есть рекомендуется постоянно передавать -S VB|RSW а когда надо повторить результат то -S VB|RSW|RSR. Не забудьте плиз потом убрать RSR, так как желательно использовать разнообразные случайные значения.

PS. Фича пока затрагивает только филогенетические построения использующие генератор псевдослучайных значений. Штейнеровских деревьев это не касается, они могут все равно не совпадать, но обязаны иметь одно и то же минимальное значение, на практике не важно какое именно дерево выбрано. В будущем я распространю действие RSR и на все штейнеровские вычисления. Дело в том что сейчас там используются дополнительные эффекты случайности основанные не на явной генерации случайных чисел а на манипуляциях с адресами объектов в памяти (через упорядочение набора итераторов). Когда я перепишу этот код, появится 100%-ая возможность дважды войти в одну и ту же реку :)

 

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

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