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

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

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Не проверял сам, но надеюсь, для DYS389I-II дистанция высчитывается по разности (DYS389-II - 389-I)

Нет, про такую магию я ничего не знаю  ??? А почему так? Т.е. в лоб эти маркеры нельзя считать? Если у одного i=13, ii=29, а у другого i=14, ii=30, то 29-13=30-14, то их считать равными?

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Дальнейшие планы:
* исключать из обработки маркеры, которых нет у эталона: если для эталона заданы 37 маркеров, а для некоторых образцов аж 67 маркеров, то лишние 30 надо отбросить и не учитывать. Сейчас программу от такого пучит.

Готово. Если для эталона заданы Y12, а для образцов Y25/37/45/67/111, то у образцов будут отброшены все маркеры, которых нет у эталона.
Если ситуация обратная: у эталона Y111, а у какого-то из образцов Y12, то обработки не будет - не ясно, кого вычислять, а кого нет. Возможно, потом сделаю так, чтобы образцы с верным количеством маркеров оставались и рассчитывались, а образцы с недостачей отбрасывались.

Оффлайн Semargl

  • "El sueño de la razón produce monstruos" ©
  • Модератор
  • *****
  • Сообщений: 6039
  • Страна: ru
  • Рейтинг +4251/-5
  • www.semargl.me
    • www.semargl.me
  • Y-ДНК: R1a [CTS3402+]
  • мтДНК: U4a2g
Не проверял сам, но надеюсь, для DYS389I-II дистанция высчитывается по разности (DYS389-II - 389-I)

Нет, про такую магию я ничего не знаю  ??? А почему так? Т.е. в лоб эти маркеры нельзя считать? Если у одного i=13, ii=29, а у другого i=14, ii=30, то 29-13=30-14, то их считать равными?
хотел написать, но забыл)
ii = ii - i
Таким образом сравниваем в вышеуказанном примере 13-16 с 14-16 и получаем дистанцию не 2, а 1. Так типа правильней)

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-BY124371
  • ...
  • Сообщений: 17407
  • Страна: az
  • Рейтинг +6080/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Цитировать
Если у одного i=13, ii=29, а у другого i=14, ii=30, то 29-13=30-14, то их считать равными?
Да, имеет значение лишь величина разности.

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
хотел написать, но забыл)
ii = ii - i
Таким образом сравниваем в вышеуказанном примере 13-16 с 14-16 и получаем дистанцию не 2, а 1. Так типа правильней)

Да, имеет значение лишь величина разности.

Ох, век живи - век учись  :o Спасибо, сделаем на грядущих выхах! :)

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-BY124371
  • ...
  • Сообщений: 17407
  • Страна: az
  • Рейтинг +6080/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Преимущество yMeter перед McGee utility - возможность поиска совпаденцев для лакунных гаплотипов (гаплотипы из ПГ содержат дыры, заменяемые на нули)

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Преимущество yMeter перед McGee utility - возможность поиска совпаденцев для лакунных гаплотипов (гаплотипы из ПГ содержат дыры, заменяемые на нули)

А если MyMcGee скормить гаплотип с парой нулевых маркеров, то он же просто не будет учитывать такие маркеры, верно?

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-BY124371
  • ...
  • Сообщений: 17407
  • Страна: az
  • Рейтинг +6080/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Нее, с ним сложнее. Это прокатит, если у всех по невероятному стечению отключены одни и те же аллели.

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Нее, с ним сложнее. Это прокатит, если у всех по невероятному стечению отключены одни и те же аллели.

Ааа  :D

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Если ситуация обратная: у эталона Y111, а у какого-то из образцов Y12, то обработки не будет - не ясно, кого вычислять, а кого нет. Возможно, потом сделаю так, чтобы образцы с верным количеством маркеров оставались и рассчитывались, а образцы с недостачей отбрасывались.

Готово. Теперь образцы с недостаточным числом маркеров отбрасываются и не учитываются в сравнении, т.к. неуместно в одном сравнении выводить для одного образца дистанцию 2/12, а для другого 4/37: это разные, несравнимые дистанции - 2/12 вполне может превратиться в 9/37 при расширенном тестировании.

Также, добавил столбец DYS389, который хранит разницу (DYS389ii-DYS389i) и на основе которого рассчитывается дистанция (столбцы DYS389i и DYS389ii удаляются перед расчетами).

Сравнился с MyMcGee в режиме IAMM (считаем количество отличающихся маркеров) - всё бьется:

И в режиме HMM (считаем шаги) - тоже:


Осталось добить проблему с делециями  :)

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Добавил обработку делеций (маркер =0):
1) если делеция в эталоне, то проверяем образцы. Если образец тоже с делецией =0, то не трогаем его, а если он имеет какое-либо значение >0, то превращаем его в 1, что даст дистанцию =1 для этого маркера.


2) если делеция в образце, то проверяем эталон. Если эталон тоже с делецией =0, то ничего не меняем, а если он имеет какое-либо значение >0, то берем это значение, инкрементируем на +1 и подставляем в образец, что даст дистанцию =1 для этого маркера.


Если делеция и там, и там, то дистанция =0.


Ввел такие данные:
Цитировать
Эталон:
IN123439   13   24   16   10   11-14   12   12   10   13   11   29   13   9-10   11   11   24   14   20   31   12-14-15-16   11   11   19-23   16   16   18   19   37-40   12   11   11   8   17-17   8   11   10   8   11   10   12   22-22   15   10   12   12   14   8   13   24   21   13   12   11   13   10   11   12   13   32   15   9   15   12   25   27   19   13   12   12   12   10   9   12   11   10   11   11   30   12   14   25   13   9   10   19   15   18   11   23   15   12   15   24   12   23   19   11   15   17   9   11   11
Образцы:
B34442   13   25   14   11   11-14   12   12   10   13   11   30   15   9-10   11   11   24   14   20   31   12-15-15-16   10   11   19-23   16   16   17   20   35-40   12   11   11   8   17-17   8   11   10   8   10   10   12   22-22   15   10   12   12   13   8   14   23   21   13   12   11   13   11   11   12   13   32   15   9   15   12   25   27   19   12   12   12   12   10   9   12   11   10   11   12   30   12   14   0   0   9   10   19   15   20   11   23   15   11   15   24   12   24   20   11   15   17   9   11   11
Получил:
Kit   Different markers   Steps   TMRCA
B34442   23   63   5393
Что-то сильно завышена дистанция) точно не проверял, но много получилось.

Теперь количество шагов более реалистичное :)
Kit   Different markers   Steps   TMRCA
B34442   23   27   1922

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

  • Сообщений: 2235
  • Страна: ru
  • Рейтинг +1101/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Попробовал понагружать получившийся инструмент 111-маркерными гаплотипами на 16 ядрах:


Образцы - секунды
100 - 0.07
1_000 - 0.23
5_000 - 0.88
10_000 - 1.9
25_000 - 4.84
100_000 - 21.52

Глубоко под капотом там C++, так что миллионы строк тоже вытянет ;D

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-BY124371
  • ...
  • Сообщений: 17407
  • Страна: az
  • Рейтинг +6080/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Цитировать
образцы с недостаточным числом маркеров отбрасываются и не учитываются в сравнении
То есть для сравнения всегда надо брать гаплотипы равной длины, причесав выборку вручную под один размер.
Если у меня сравнительный гаплотип будет на Y111, и надо сравниться с огромной мешаниной из Y12/Y25/Y37/Y67/Y111, то его нужно всякий раз укорачивать? Это неудобно. Можно ли оставить сборно-соляночный способ?

Цитировать
добавил столбец DYS389, который хранит разницу (DYS389ii-DYS389i) и на основе которого рассчитывается дистанция (столбцы DYS389i и DYS389ii удаляются перед расчетами).
Уточняю. Всё это программа делает автоматически при расчёте? Самим лезть и вставлять новый столбец не нужно?

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

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

Если у меня сравнительный гаплотип будет на Y111, и надо сравниться с огромной мешаниной из Y12/Y25/Y37/Y67/Y111, то его нужно всякий раз укорачивать?

Это неудобно. Можно ли оставить сборно-соляночный способ?
Нет, причесывать образцы ручками не нужно - автоматически выполняется равнение на длину эталона :)

Допустим, есть 100 наборов: по 20 шт каждой длины (Y12/Y25/Y37/Y67/Y111).
Пихаем эталон длиной Y111 - автоматически отбросятся 80 коротких гаплотипов, а для 20 оставшихся будет выдан результат.
Теперь обрезаем эталон до Y67 - отбросятся только 60 которышей, а для 40 будет результат.
...
Обрезаем до Y12 - ничего не будет отброшено, для всех 100 образцов будет выдан результат.

Сделать вариант, когда сравниваем "как есть", возможно, но это
1) сложно
2) непонятно как сортировать: кого считать ближе - образец 1/12 (91.6% общего) или 2/37 (94.6%)?
3) выглядит как сравнение глинтвейна с электропоездом ;D
4) вводит в заблуждение из-за п. 2: поставлю на 1-е место по близости образец с 0/12, а на 2-е - образец с 4/111, но после дотипирования, 1-й превратится в 9/111 и это будет выглядеть так, словно я обманул  ???
FTDNA ж неспроста имеет несколько вкладок с конкретными длинами:

Разве что можно сделать галки Y12/Y25/Y37/Y45/Y67/Y111 и автоматически обрезать эталон до сразу нескольких размеров, после чего выдавать сразу несколько результатов, где сравнения будут нормальными - Y12 с Y12, а Y67 с Y67. Но всё это пользователь может сделать сам через подрезку эталона, т.е. такой функционал только раздует код и усложнит тестирование и поддержку ::)

Цитировать
добавил столбец DYS389, который хранит разницу (DYS389ii-DYS389i) и на основе которого рассчитывается дистанция (столбцы DYS389i и DYS389ii удаляются перед расчетами).
Уточняю. Всё это программа делает автоматически при расчёте? Самим лезть и вставлять новый столбец не нужно?

Да, всё так - это автоматизировано  :)

Оффлайн Farroukh

  • Maternal Y-DNA: R1b-BY124371
  • ...
  • Сообщений: 17407
  • Страна: az
  • Рейтинг +6080/-17
  • Paternal Mt-DNA: M9a1b1
    • Azerbaijan DNA Project
  • Y-ДНК: E-Y37518
  • мтДНК: F2f1
Цитировать
непонятно как сортировать: кого считать ближе - образец 1/12 (91.6% общего) или 2/37 (94.6%)?
Сортировать по аналогии с базой SSlava или STR Match Finder (сначала ближайшие на Y111, затем на Y67  и так далее вплоть до Y12.

Затея с обнулениями не очень нравится - это сильно убивает шансы для поиска совпадений для гаплотипов с лакунами - гаплотипы из WGS (до 20% лакун) или формата Y-filer (Y17, Y23, Y27).

 

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

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