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

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

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

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

Abstract

При анализе списков родственников по аутосомной ДНК одной из главных сложностей является определение того, по какой из предковых линий происходит пересечение с тем или иным человеком. Особенно критично эта проблема встает в тех ситуациях, когда, из-за отсутствия генетического материала или нехватки денежных средств, отсутствует возможность протестировать предков или родственников персоны, по которой ведется исследование.
Для решения данной проблемы было разработано программное обеспечение, позволяющее производить кластеризацию лиц, имеющих ДНК-пересечения с исследуемым человеком.

http://rjgg.molgen.org/index.php/RJGGRE/article/view/162

Здравствуйте!

Хочу представить разработанное нами ПО. Что оно делает - описано в статье, а здесь я бы хотел расписать как именно им пользоваться.

Итак, сайтовая часть:
1) Заходим в GedMatch на страницу "One-to-many DNA comparison"
2) Вводим номер кита и пороговое значение, жмем "Display Results"
3) Дожидаемся отображения результатов и начинаем выделять совпаденцев от самых близких до самых далеких. Текущая версия сайта способна обрабатывать не более 99 совпаденцев - это очень мало, но автор GedMatch увеличил эту границу до 499 в тестовой версии сайта - там нам удавалось обрабатывать до 140 совпаденцев, после чего браузер переставал ожидать ответ от сервера: Джон Хэйвард сказал, что исправит это, но не знает, когда у него будет время для этого. Чтобы не ставить галки вручную есть расширение CheckFox для Firefox (выделяете желаемую зону, жмете правой кнопкой и жмете "Check" - в выделенной области будут проставлены все галки) и ClickAllCheckboxes для Chrome (ставит вообще все галки)
4) Жмем "Submit"
5) Жмем "Generations"
6) Ждем, пока будет построена таблица n*n совпаденцев

Переходим к части, где нам понадобится Excel:
1) Выделяем таблицу начиная со строки, где находятся названия столбцов ("Kit" "name" и т.д.) и до самых последних совпаденцев, где начинается картинка с изображением связей между людьми и надписью "Generations:"

2) Копируем ее (Ctrl + C) в Excel - должно получиться что-то такое:

3) Жмем "Файл" -> "Экспорт" -> "Изменить тип файла" -> "Другие типы файлов" -> "CSV (разделители - запятые)"

4) Сохраняем там, где Вам удобно.

Переходим к заключительной части:
1) Заходим на https://github.com/Daemon2017/atDNACluster
2) Жмем справа зеленую кнопку "Clone or download" -> "Download ZIP"
3) Ждем завершения загрузки файла
4) Извлекаем содержимое архива
5) Идем по пути atDNACluster-master\atDNACluster\bin\Release
6) Запускаем там файл atDNACluster.exe
7) Успех!

Теперь немного расскажу об интерфейсе и возможностях :)
Программа разбита на 5 смысловых блоков:
1) Загрузка - здесь нужно указать тот файл .csv, который Вы сохранили на позапрошлом этапе
2) Обработка - здесь нужно выбрать желаемое число кластеров (от 1 до 32) и нажать кнопку PCA - многомерное пространство будет сведено к двумерному и Вы сможете увидеть где друг относительно друга находятся Ваши совпаденцы. При наведении на значок можно увидеть имя и номер тестового набора выбранного человека
3) Кластеризация - пока что реализован только алгоритм К-средних, он и разобьет Ваших совпаденцев на заданное число кластеров
4) Расстояние - теоретически, алгоритм PCA должен сохранять расстояния, а значит можно нажать кнопку Замерить и последовательно выбрать двух совпаденцев, после чего будет отображено расстояние между ними. Эта опция - теоретическая, ее работоспособность не проверялась.
5) Выделение - во время написания статьи нашему маленькому коллективу пришлось изрядно попотеть, расставляя цветовые маркеры в Пэинте над совпаденцами, происходящими с отцовской или материнской линии. Именно поэтому мы решили облегчить жизнь всем, у кого есть протестированные один/оба родителя или другие близкие родственники, и реализовали возможность вручную делить на 4 кластера путем загрузки .csv файлов со столбцами, содержащими номера китов. (Предварительно нужно выбрать число кластеров = 4, нажать PCA, а затем К-средних)

Принцип таков:
а) Жмем кнопку "1 - красный" и указываем путь к файлу со списком совпаденцев, которые есть у отца
б) Жмем кнопку "2 - зеленый" и указываем путь к файлу со списком совпаденцев, которые есть у матери
в) Жмем кнопку "3 - черный" и указываем путь к файлу со списком совпаденцев, которые есть у обоих родителей
г) Жмем кнопку "Обработать" и получаем такой результат: родичи по отцу - красные, по матери - зеленые, сразу по двум линиям - черные, а ложные (полученные из составных УПСов) - синие.
Можно использовать и только 1, или только 2 кластера.

Для получения приведенной ниже картинки я собрал в один файл всех совпаденцев двоюродного дяди и двоюродной тети (брат и сестра) по его отцовской линии моего отца  и указал путь к этому файлу после обработки и кластеризации матрицы совпаденцев 139*139 моего отца. Красные - родственники по линии его отца.


Будем благодарны за предложения, пожелания и конструктивную критику!

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

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

Оффлайн kurganov4

  • Сообщений: 372
  • Страна: ru
  • Рейтинг +125/-0
  • Илья
    • деревня Рязанка Тамбовская область
  • Y-ДНК: R1a-M458 (YP1137)
Здравствуйте!
А для 32-ух разрядной Windows свою программу не сделаете?

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Здравствуйте!
А для 32-ух разрядной Windows свою программу не сделаете?

Здравствуйте!
Вроде бы, эта должна запускаться и на х32 и на х64. А какая ошибка возникает?

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Добавил возможность отображать самого себя на поле. Может пригодиться, когда анализируются данные из "People who match one or both of 2 kits"

Оффлайн kurganov4

  • Сообщений: 372
  • Страна: ru
  • Рейтинг +125/-0
  • Илья
    • деревня Рязанка Тамбовская область
  • Y-ДНК: R1a-M458 (YP1137)
Здравствуйте!
Вроде бы, эта должна запускаться и на х32 и на х64. А какая ошибка возникает?
На XP пишет "не является приложением Win32"
На 7ке потребовал установки 4.6.2 Framework'а. После установки не реагирует на попытки запуска.
Завтра попробую на третьем компе.

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Здравствуйте!
Вроде бы, эта должна запускаться и на х32 и на х64. А какая ошибка возникает?
На XP пишет "не является приложением Win32"
На 7ке потребовал установки 4.6.2 Framework'а. После установки не реагирует на попытки запуска.
Завтра попробую на третьем компе.

Для XP последней версией .Net стал 4.0 - более новые не пойдут. А я, в силу завязанности на .Net 4.5, под что-то более древнее собрать проект не сможем. Так что с ХР не получится запустить. Но уже загрузил сборку под 4.5 - может это уберет необходимость обновлять другие ПК.
Если и так не заработает на 2 и 3 компьютерах - дайте знать: пошаманим.

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

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

Оффлайн kurganov4

  • Сообщений: 372
  • Страна: ru
  • Рейтинг +125/-0
  • Илья
    • деревня Рязанка Тамбовская область
  • Y-ДНК: R1a-M458 (YP1137)
Для XP последней версией .Net стал 4.0 - более новые не пойдут. А я, в силу завязанности на .Net 4.5, под что-то более древнее собрать проект не сможем. Так что с ХР не получится запустить. Но уже загрузил сборку под 4.5 - может это уберет необходимость обновлять другие ПК.
Если и так не заработает на 2 и 3 компьютерах - дайте знать: пошаманим.
Всё нормально - запустилось) Додумался антивирус отключить.

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Для XP последней версией .Net стал 4.0 - более новые не пойдут. А я, в силу завязанности на .Net 4.5, под что-то более древнее собрать проект не сможем. Так что с ХР не получится запустить. Но уже загрузил сборку под 4.5 - может это уберет необходимость обновлять другие ПК.
Если и так не заработает на 2 и 3 компьютерах - дайте знать: пошаманим.
Всё нормально - запустилось) Додумался антивирус отключить.

А, ну и отлично  ;)

Оффлайн Шад

  • Главный модератор
  • *****
  • Сообщений: 6334
  • Страна: ru
  • Рейтинг +1330/-4
  • Ex oriente lux
  • Y-ДНК: Q-Y2750
  • мтДНК: J1c2z
Как избежать при копировании данных в Excel "календарной трансформации" данных?
Когда вместо 9,9 появляется 9 сентября 2016 года:)

Оффлайн kurganov4

  • Сообщений: 372
  • Страна: ru
  • Рейтинг +125/-0
  • Илья
    • деревня Рязанка Тамбовская область
  • Y-ДНК: R1a-M458 (YP1137)
Как избежать при копировании данных в Excel "календарной трансформации" данных?
Когда вместо 9,9 появляется 9 сентября 2016 года:)
В экселе выделяете все ячейки и ставите им "формат ячеек- текстовый". Вставляете таблицу из гедматча, внизу справа будет ярлычок "Параметры вставки", в нём выбираете "Использовать форматы конечных ячеек". Все числа станут нормальными. Потом можно поставить формат ячеек числовой.

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Как избежать при копировании данных в Excel "календарной трансформации" данных?
Когда вместо 9,9 появляется 9 сентября 2016 года:)

О, это большая проблема, которую я так и не решил в Excel - только через Google Docs/LibreOffice. Ну или копировать в блокнот, нажать Ctrl+H и заменить все точки на запятые, после чего результат вставить в Excel.
Но решать ее и не нужно - после экспорта в .csv формат будет правильный ;)

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

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

Но мы планируем как-нибудь из этого выкрутиться  :)
Была идея генерировать матрицы 500*500 с помощью запросов, но это 0.5*500^2-0.5*500=124750 запросов - вряд ли Хэйвард это одобрит  ::)
Рассматриваем еще один вариант.

В версии 0.0.5 Дизайн сделали более приличным, устранили пару косяков и организовали полноценный перевод на английскую мову.

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

  • Сообщений: 2159
  • Страна: ru
  • Рейтинг +1045/-18
  • Y-ДНК: R1a-Y35174
  • мтДНК: V7-a2a2a2b*
Хотим представить новую версию (0.0.9) нашего инструмента.

Как я уже говорил ранее - GedMatch все еще не сделал доступными для людей матрицы, чей размер более 99*99. Даже за деньги.  Это и заставило нас искать другие пути к получению данных о совпаденцах  :)

Главным нововведением является возможность работать с совпаденцами из FTDNA. Если у Вас в профиле 100 совпаденцев, то в нашей программе Вы увидите 100. Если совпаденцев 500 - увидите все 500.

Ранее мы предполагали, что с увеличением числа совпаденцев будет расти и качество кластеризации: эта гипотеза подтвердилась, но не настолько оптимистично, как мы бы хотели - чуть ниже Вы можете посмотреть на сравнение результатов одного и того же человека, полученные из GedMatch в старой версии с низким разрешением (матрица 139*139) и полученные из FTDNA в новой версии с высоким разрешением (матрица 493*493). Сравнение, по моему мнению, абсолютно честное, т.к. в своем ПО мы используем ту же формулу перевода общего числа сМ в поколения, что и GedMatch.:

Старая версия


Новая версия


Итак, что изменилось?
В левом блоке ранее было месиво из финнов со шведами - теперь они разделились на два нормальноразделяемых блока: синий - финны, зеленый - шведы.
В правом блоке было схожее месиво из русских, финнов/шведов и, судя по фамилиям, американцев. Оно тоже раздробилось: черное - финны, красное - русские, американцы и шведы.

Чем вызвано наличие двух "туч" финнов я не знаю, т.к. у меня нет документальных данных о том, чтобы у этого человека был хотя бы 1 финский предок. Как и хотя бы 1 шведский предок. Но myOrigins дает следующую раскладку: E.Europe - 67%, Finland - 15%, Scandinavia - 13%. Возможно, что синяя туча финнов (рядом со шведами) - это следствие того, что предок-швед был частично финном (либо просто влияние финского этнофона, если он жил неподалеку от финских земель), а черная туча финнов - от другого, чистокровного финна. Было бы очень здорово, если бы через программу пропустился человек с более проработанной (сразу по всем линиям!) родословной.

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

Как работать:
Подготовка -
1) Заходим на https://github.com/Daemon2017/atDNACluster
2) Жмем справа зеленую кнопку "Clone or download" -> "Download ZIP"
3) Ждем завершения загрузки файла
4) Извлекаем содержимое архива
5) Идем по пути atDNACluster-master\atDNACluster\bin\Release
6) Запускаем там файл atDNACluster.exe
7) Успех!

Работа -
1) Нажать Файл -> Открыть (FTDNA)
2) В открывшемся окне ввести номер кита и пароль, нажать SIGN IN
3) Дождаться появления окна, уведомляющего об успешном скачивании и разборке данных
4) Нажать Кластеры -> Количество кластеров и ввести желаемое число кластеров (по умолчанию - 2)
5) Нажать Обработка -> Тип вывода и выбрать способ вывода; Центровка, как правило, дает более информативный вид. Нажать Обработка -> Обработать и дождаться отрисовки всех точек

Нажатие на Кластеризация -> Обработать запустит автоматический кластеризатор, который разделит точки на то число кластеров, которое Вы указали на шаге 4 (если не указали  - разобьет на 2 кластера). Он не идеален, так что эту операцию можно повторить несколько раз, пока итог не будет удовлетворительным.

О пожеланиях, недоработках и т.п. пишите в комментарии ;)

 

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

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