АвторТема: yMapper - ПО для построения карт таксономического разнообразия  (Прочитано 5466 раз)

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

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Добавлены карты S20602, Y3106, FGC11514, Y1392 - вроде бы, это последние из крупных славянских веточек.
Также, уточнил топологию снипа: теперь она приводится в нотации YFull, а снип от FTDNA указывается в скобках (если отличается):
https://daemon2017.github.io/yMapper/
« Последнее редактирование: 04 Март 2024, 00:22:34 от Daemon2017 »

Оффлайн Панк

  • Сообщений: 1365
  • Страна: ua
  • Рейтинг +673/-1
Спасибо за приложение и карти!
Наглядно получается

Персональная просьба в отношении ветки R1a-Y2902
Если ее связивают с Именьковской культурой, то хотелось продолжения таксонов до Волги, ну, хотя би включить Пензенскую обл.    :)
 

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Спасибо за приложение и карти!
Наглядно получается

Персональная просьба в отношении ветки R1a-Y2902
Если ее связивают с Именьковской культурой, то хотелось продолжения таксонов до Волги, ну, хотя би включить Пензенскую обл.    :)
 

Рад помочь :)

Добро! Поставил в обработку - через час будет. По X теперь промежуток не 0-42, а 0-53.
« Последнее редактирование: 04 Март 2024, 00:25:22 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Готово - выгрузил :)

Улучшения незначительные: всего штук 5-6 новых меток появилось.
« Последнее редактирование: 04 Март 2024, 00:25:25 от Daemon2017 »

Оффлайн Панк

  • Сообщений: 1365
  • Страна: ua
  • Рейтинг +673/-1
Спасибо большое!    :)
 

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
« Последнее редактирование: 04 Март 2024, 00:25:28 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Соратники, я пообщался с другими разработчиками-исследователями, использовавшими открытые данные FTDNA в своих разработках, и принял тяжелое решение: убрать исходный код yMapper из открытого доступа. Сами карты останутся доступными тут https://daemon2017.github.io/yMapper/ и их набор будет постепенно расширятся.

Причина моего решения: по мере распространения информации о моей разработке, в лучшем случае, может начаться отток людей из проектов ФТДНА, а в худшем - ФТДНА может закрыть API или ужесточить политику в отношении проектов. Оба варианта нанесут ущерб как моей разработке, так и разработкам других авторов. Да и с администраторами проектов как-то нехорошо выйдет, если люди начнут покидать их проекты.
Увы, мир не ограничивается мировоззрением, присущим СНГ, и в других странах свое воспитание, свой темперамент, свои болезни, так что я надеюсь на Ваше понимание :)

Закрытость кода - тоже проблема: я далеко не виртуоз Python'а, так что открытость кода позволяла надеяться на то, что мои ошибки могут быть замечены кем-то более опытным, но теперь такой возможности не будет. Впрочем, если Вы разбираетесь в Python и обладаете свободным временем - приглашаю к совместной разработке :)
Тех, кто ранее выкачал исходники, прошу не давать им распространения по причинам, обозначенным выше.

В будущем я постараюсь создать сервис, который будет принимать на вход настройки (имя SNP, размеры сетки и пр.), а на выходе будет отдавать готовую карту - это позволит изолировать потребителя от пропылесосивания проектов ФТДНА, а значит избавит от львиной доли проблем  ;)
Пока что я готов делать карты по Вашим запросам, если их не будет слишком много. Писать хотелки можно прямо в эту тему.
« Последнее редактирование: 04 Март 2024, 00:22:47 от Daemon2017 »

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Модератор
  • *****
  • Сообщений: 5994
  • Страна: ru
  • Рейтинг +4192/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Скажу често - замечательная задумка и блестящая реализация.
Закрытие кода - правильное решение, если мы не хотим повторения судьбы semargl.me.
Кроме карт видятся и другие возможности подобного датасета :)
Очень надеюсь увидеть продолжение ;)

PS У меня самого больше года пылится предиктор, нормально предсказывающий даже редкие субклады, но довести до ума и выпустить в мир никак руки не дойдут. Так что снимаю шляпу перед автором данного кода.

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Скажу често - замечательная задумка и блестящая реализация.
Закрытие кода - правильное решение, если мы не хотим повторения судьбы semargl.me.
Кроме карт видятся и другие возможности подобного датасета :)
Очень надеюсь увидеть продолжение ;)

PS У меня самого больше года пылится предиктор, нормально предсказывающий даже редкие субклады, но довести до ума и выпустить в мир никак руки не дойдут. Так что снимаю шляпу перед автором данного кода.

Спасибо за столь высокую оценку, Владимир  ::)
Буду стараться! А какие у Вас есть идеи по поводу альтернативных применений?

Круто! Значит предусмотрю возможность встраивания пользовательского модуля предсказания SNP ;)
Я пытался создать единый прорицатель - ни на основе решающего леса, ни на основе градиентного бустинга ничего вразумительного у меня не вышло: для таких алгоритмов, с сохранением разумных сроков обучения, надо взвешенную и более-менее крупную выборку иметь, а не жалкие 1-3 образца на веточку - с методами на основе Байесовских вероятностей, как у Nevgen'а, я не знаком, так что в их сторону даже не глядел.
Выкрутился путем разделения выборки на "Подветвь 1, Подветвь N, Все остальные": из-за того, что "Все остальные" - это огромная выборка на фоне "Подветвей", то деревья правильно предсказывают "То" просто имея представление о том, как выглядит "Не то"  ;D Но проблему внутренней/внешней гомоплазии метод не решает.
Подумывал, кстати, использовать пророк Nevgen для однократного предсказания ветви и сохранения значения в файл, но тут же отказался от этой мысли по 3 соображениям:
1) атаковать некоммерческий сайт 100к+ запросов невежливо, а ведь код изначально планировалось делать общедоступным, т.е. таким нападателем мог оказаться не я один. Вот если бы у них можно было купить токен на N запросов, то было бы вежливо: и хороших ребят поддержать, и самому получить клевые предсказания;
2) у них приятный API, но он обрабатывает 1 образец за 2 секунды, т.е. на 100к образцов ушло бы 100000*2/60/60/24=2.5 дня безостановочной долбежки;
3) ответ выдается в довольно упоротом формате "A->B->C", который надо еще правильно распотрошить и состыковать с древом FTDNA.
« Последнее редактирование: 04 Март 2024, 00:25:31 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Аспирантура зажевала - пришлось отложить построение карт почти на 2 недели. Буду наверстывать  ;D

Добавлены ветви:
R-Z282 -> R-Z280 -> R-CTS1211 -> R-FT92022 (объединяет YP1034 и YP1019; в YFull отсутствует, возможно, из-за того, что там среди YP1034 нет ни одного hg38)
R-Z282 -> R-Z280 -> R-CTS1211 -> R-YP343 -> R-YP340 -> R-P278.2 (R-P278)
R-Z282 -> R-Z280 -> R-CTS1211 -> R-Y35 -> R-CTS3402 -> R-Y2613 -> R-Y2609 -> R-Y2608
R-Z282 -> R-Z280 -> R-CTS1211 -> R-Y35 -> R-CTS3402 -> R-Y2613 -> R-Y2609
R-Z282 -> R-Z280 -> R-CTS1211 -> R-Y35
R-Z282 -> R-Z280 -> R-CTS1211 -> R-YP343
R-Z282 -> R-Z280 -> R-CTS1211 -> R-YP343 -> R-YP340 -> R-YP371
https://daemon2017.github.io/yMapper/
« Последнее редактирование: 04 Март 2024, 00:22:54 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Обнаружил, что все дочерние ветви CTS1211 (YP343+Y35+FT92022) покрыты - решил построить сводную карту.
Попробовал выработать набор правил, по которым буду строить карты:
1) В качестве карт-основ берется слой с зернистостью =1 градусу;
2) Ячейки с наибольшим (N) разнообразием (ядра) при этой зернистости выделяются большими кружками произвольного цвета;
3) Каждая отличающаяся область с разнообразием N-1 заполняется новым произвольным цветом, но с обводкой цвета ядра из п. 2;
4) Отличающиеся области из п. 3 должны непосредственно примыкать к ядру из п. 2;

На первой карте видно, что Y35 есть и в синей, и в красной областях, но они никак не соединены. Учитывая местоположение "оторвышей", т.е. единичных (не примыкающих к ядру) ячеек с разнообразием N-1 (их там 3 штуки: 2 Y35+FT92022 и 1 Y35+YP343), а также одной клетки Y35+YP343, примыкающей к северо-восточной группе ядер, я нарисовал градиентом примерную зону стыковки этих двух областей.
Почему они разорваны - не ясно: может в Малой Польше и Галиции мало тестируются, а может была чья-то агрессивная миграция (карта пытается отразить состояние на -2400 год!), которая разорвала две области.

Датировка: -2400
Полная: https://sun9-68.userapi.com/c856128/v856128719/2290aa/kieS5D0JBho.jpg


Датировка: -2200/-1900
Полная: https://sun9-55.userapi.com/c856128/v856128719/229083/yfZKCsQqO8w.jpg
« Последнее редактирование: 04 Март 2024, 00:25:34 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Продолжил работу - дошел до "внуков" CTS1211 и столкнулся с новыми проблемами, которые требуют введения новых правил в методологию.
5) Если при зернистости =1 не достигается получение ядра (глобального), охватывающего все подветви, то следует наращивать размер зерна, пока оное не будет найдено и далее работать с новым размером зерна;
6) Если максимальный размер зерна (=2) достигнут, а ядро не было найдено, то берутся все локальные ядра при зернистости =1 и на расстоянии 1 клетки от каждого ищется SNP, отсутствующий у локального ядра. Если таковая клетка существует, то ее соединяют "сарделей" с ближайшей клеткой локального ядра;
7) Если в п. 6 результат не был получен, то все клетки, SNP которых отсутствует у локальных ядер, выделяются новым произвольным цветом.

Датировка: -2200/-1100
Полная: https://sun9-21.userapi.com/JBBEiVzY5EfBcIUT_8QeY67E-Cr9fG1mtStKXw/vuMn83zLmNc.jpg


Есть еще одна беда: чем больше поколений от CTS1211 (YP343+Y35+FT92022 - сыновья, CTS3402+YP340 - внуки), тем сильнее временной разрыв между кузенами. Надо будет перевыпустить карты так, чтобы они ровнялись не на удаленность от CTS1211, а на временную близость - на днях сделаю.
« Последнее редактирование: 04 Март 2024, 00:25:37 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
По просьбам трудящихся, развил I2a: CTS4002, CTS5375, L621, S19848
Судя по I-Y3104 (CTS5375), 14к лет назад они жили в районе Рейнланда и прочих провинций, граничащих с Францией, а затем L161 двинулся на Острова, а L621 - на Восток.
https://daemon2017.github.io/yMapper/
« Последнее редактирование: 04 Март 2024, 00:23:00 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Добавлены ветви CTS10228, Z280, Z282, Z283, L1280, S18681, Y2613, YP1019, YP1034, YP238, YP295, YP582, YP951
« Последнее редактирование: 04 Март 2024, 00:25:40 от Daemon2017 »

Оффлайн Daemon2017Автор темы

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Закончил распараллеливать вычисления и выделять функциональные части кода - теперь на среднестатистическую карту уходит около получаса на моей 4-ядерной машине с процессором 5-го поколения (2015 год).  Теперь клепать карты получается очень быстро: понастроил карт для кучи новых ветвей.
https://daemon2017.github.io/yMapper/

Очень занятно распространение I2a2a1 (CTS616) - она изо всех сил старается не входить в Эльзас-Лотарингию  ;D

Максимум разнообразия вышел здоровски: непрерывный и почти ровный.
« Последнее редактирование: 04 Март 2024, 00:23:06 от Daemon2017 »

 

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

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