АвторТема: yMeter - Web-приложение для определения количества шагов и отличающихся маркеров  (Прочитано 5799 раз)

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

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Сортировать по аналогии с базой SSlava или STR Match Finder (сначала ближайшие на Y111, затем на Y67  и так далее вплоть до Y12.
Подумаю, какой кровью можно это сделать  ;D

Затея с обнулениями не очень нравится - это сильно убивает шансы для поиска совпадений для гаплотипов с лакунами - гаплотипы из WGS (до 20% лакун) или формата Y-filer (Y17, Y23, Y27).
Инструмент делался, в первую очередь, для сравнения Y111 из FTDNA с импутированными через yImputer https://forum.molgen.org/index.php/topic,14589.0.html Y111 из YFull, т.е. предполагалось, что лакун не будет. Как показала практика, импутация - это лучший выход в борьбе с пустотами, образовавшимися в WGS, т.к. сравнивать гаплотипы с разными пустотами очень больно :)
« Последнее редактирование: 20 Февраль 2024, 09:42:07 от Daemon2017 »

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Модератор
  • *****
  • Сообщений: 6084
  • Страна: ru
  • Рейтинг +4342/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Также, добавил столбец DYS389, который хранит разницу (DYS389ii-DYS389i) и на основе которого рассчитывается дистанция (столбцы DYS389i и DYS389ii удаляются перед расчетами).
Не совсем правильно)
Пример:
сравниваем 13-30 и 14-31. Разница в обоих случаях =17. Таким образом получаем ГД=0. А должны сравнивать 13-17 и 14-17, т.е. ГД=1.
При прямом же сравнении 13-30 и 14-31 получаем ГД=2, что тоже неверно.
Предлагаю просто добавить столбец DYS389ii-i или если проблема с символами в имени, то просто DYS389iii, где хранить разницу между DYS389ii и DYS389i. Если столбец DYS389ii мешает, то просто удалить его, но DYS389i необходимо оставить.
Ну и для олдскульных перфекционистов можно сделать выбор между методами расчета ГД в маркере DYS389.  ;D

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Не совсем правильно)
Пример:
сравниваем 13-30 и 14-31. Разница в обоих случаях =17. Таким образом получаем ГД=0. А должны сравнивать 13-17 и 14-17, т.е. ГД=1.
При прямом же сравнении 13-30 и 14-31 получаем ГД=2, что тоже неверно.

Ааа, т.е. 1-е не трогаем, а 2-е преобразуем на основе 1-го и 2-го?
i = i
ii = ii - i
Такое без полведра не поймёшь  ;D Спасибо!

Ну и для олдскульных перфекционистов можно сделать выбор между методами расчета ГД в маркере DYS389.  ;D

Т.е. метод с ii=ii, и с ii=ii-i?

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Модератор
  • *****
  • Сообщений: 6084
  • Страна: ru
  • Рейтинг +4342/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Т.е. метод с ii=ii, и с ii=ii-i?
Да. Но это дело десятое и на любителя, так что поначалу точно можно обойтись одним методом с ii=ii-i

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Исправил формулу:
1) изменение ii приводит к отличию 1 маркера


2) изменение i приводит к отличию 2 маркеров, т.к. i влияет на значение ii


Да. Но это дело десятое и на любителя, так что поначалу точно можно обойтись одним методом с ii=ii-i

А, ну тут правки минимальные: сделал выпадашку, которая включает/отключает преобразование ii  :) Если преобразование ii отключено, то изменение 1 маркера приведет к отличию 1 маркера, т.к. они больше не влияют друг на друга.

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Цитировать
непонятно как сортировать: кого считать ближе - образец 1/12 (91.6% общего) или 2/37 (94.6%)?
Сортировать по аналогии с базой SSlava или STR Match Finder (сначала ближайшие на Y111, затем на Y67  и так далее вплоть до Y12.

Делал несколько подходов в надежде сделать всё именно в таком виде (сперва выводить дистанции до N-маркерных, потом до N-1-маркерных и т.д.), но это приводило к сильной просадке производительности, а в ней я вижу ключевую фишечку моего сервиса, так что жертвовать ею не готов. Возможно, есть какое-то красивое решение без потери скорости, но я не самый великий погромист и я его не нашел :(

Я вкорячил костыль: если есть образцы-недомерки (все, кто короче эталона), то их отсутствующие маркеры получат те же значения, что и у эталона, т.е. дополнительной дистанции в шагах это не даст, но зато позволит оценивать дистанции как до недомерных, так и до полномерных образцов. Это тот самый вариант, когда в одной куче выводятся 3/12 и 5/37, которого я хотел избежать)
Чтобы включить этот костыль, нужно выпадашку "Обрабатывать образцы с отсутствующими маркерами:" перевести в True.
« Последнее редактирование: 26 Февраль 2024, 00:20:19 от Daemon2017 »

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-FTD83033
  • ...
  • Сообщений: 17630
  • Страна: az
  • Рейтинг +6271/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Цитировать
если есть образцы-недомерки (все, кто короче эталона), то их отсутствующие маркеры получат те же значения, что и у эталона, т.е. дополнительной дистанции в шагах это не даст, но зато позволит оценивать дистанции как до недомерных, так и до полномерных образцов. 
Такого решения вполне достаточно! Остальное уже сам потребитель пусть анализирует

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Цитировать
если есть образцы-недомерки (все, кто короче эталона), то их отсутствующие маркеры получат те же значения, что и у эталона, т.е. дополнительной дистанции в шагах это не даст, но зато позволит оценивать дистанции как до недомерных, так и до полномерных образцов.
Такого решения вполне достаточно! Остальное уже сам потребитель пусть анализирует

Отлично :)

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Успех! Придумал, как решить проблему без потери мощности всасывания производительности ;D
Теперь сортировка идет по 2 полям: общее число STR и число шагов.


ОБН: о, вижу ошибку в расчете TMRCA. Исправил :)
« Последнее редактирование: 26 Февраль 2024, 00:26:20 от Daemon2017 »

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-FTD83033
  • ...
  • Сообщений: 17630
  • Страна: az
  • Рейтинг +6271/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Вопрос автору.
Есть опорный Y111 с лакунами (гаплотип выдран из ПГ).
Реально ли его сравнить с гаплотипами разной длины формата FTDNA? Чтобы лакуны игнорились и поиск вёлся только по существующим аллелям.

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Вопрос автору.
Есть опорный Y111 с лакунами (гаплотип выдран из ПГ).
Реально ли его сравнить с гаплотипами разной длины формата FTDNA? Чтобы лакуны игнорились и поиск вёлся только по существующим аллелям.

Да, без проблем.
Если алгоритм увидит лакуну (2 табуляции/пробела подряд между цифрами) в эталоне, то исключит этот маркер из анализа для всех образцов. Тут я выпилил 3 маркера:

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

« Последнее редактирование: 27 Февраль 2024, 12:27:23 от Daemon2017 »

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-FTD83033
  • ...
  • Сообщений: 17630
  • Страна: az
  • Рейтинг +6271/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Попытался найти условно близкие своему Y111 гаплотипы из разных проектов. Всего использовал 12735 гаплотипов разной длины при таких настройках (полиндромный DYS464 отключён, отсутствующие маркёры не брать,  выдавать не более 10 ближайших):



Ничего не происходит :(

Сократил до 200 гаплотипов - то же самое.

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Попытался найти условно близкие своему Y111 гаплотипы из разных проектов. Всего использовал 12735 гаплотипов разной длины при таких настройках (полиндромный DYS464 отключён, отсутствующие маркёры не брать,  выдавать не более 10 ближайших):

Ничего не происходит :(

Сократил до 200 гаплотипов - то же самое.

О, по логам вижу в чем дело: код споткнулся о повторение id. Т.е. либо id двух образцов совпали, либо id эталона и образца.  Не знал о такой проблеме - вечером исправлю ;)

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

  • Сообщений: 2302
  • Страна: ru
  • Рейтинг +1149/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
либо id двух образцов совпали, либо id эталона и образца

Готово, теперь обе ситуации обрабатываются: если есть N одинаковых id, то все, кроме первого, будут исключены из расчетов :)

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-FTD83033
  • ...
  • Сообщений: 17630
  • Страна: az
  • Рейтинг +6271/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Снова попробовал то же самое - результат тот же.

Да, довольно много гаплотипов присутствуют в разных проектах и потому дублируются. В том числе просьба предусмотреть, если и сам опорный гаплотип будет сидеть в стоге сена.
Для того чтобы эксель не превращал полиндромные маркёры в даты (когда 8-9 вдруг становится 08.сен и т. п.) в таких ячейках перед значением ставил апостроф '.
Возможно, это влияет на что-то. (Но повторюсь - в настройках ставлю отключение полиндромов, т. е. по идее там может быть вписана абсолютно любая буквенно-численная дичь)

 

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

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