АвторТема: PLINK  (Прочитано 29652 раз)

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

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #30 : 18 Ноябрь 2009, 22:37:30 »
Никакой массовой рассылки Raw Data не существует. Каждый может скачать только свою RawData. Другое дело, что люди -как существа коммуникативные и любознательные-могут потом обмениваться своими данными, посылать для стат.анализа профессорам и академикам. Таким образом происходит аккумуляция данных.
В файл RawData ничего не зашито, там просто перечень в столбик информации о снипе, его положении, номере хромосоме и собственно генотип.
Цитировать
# Below is a text version of your data. Fields are TAB-separated# Each line corresponds to a single SNP.  For each SNP, we provide its identifier # (an rsid or an internal id), its location on the reference human genome, and the # genotype call oriented with respect to the plus strand on the human reference # sequence.     We are using reference human assembly build 36.  Note that it is possible # that data downloaded at different times may be different due to ongoing improvements # in our ability to call genotypes. More information about these changes can be found at:# https://www.23andme.com/you/download/revisions/# # More information on reference human assembly build 36:# http://www.ncbi.nlm.nih.gov/projects/mapview/map_search.cgi?taxid=9606&build=36
Из этих столбиков самая важная часть, которую мы и должны использовать -это информация о генотипе. Остальная информация нужна только для MAP-ее оставляем нетронутой.
В первую колонку PED мы вставляем ID (для 100 тестанов уникальное значение для каждого индивида находится в интервале от 1 до 100, его можно автоматически генерировать с шагом +1). Я также не вижу проблем с обозначением пола и ID родителя, поскольку мы знаем, чьи  именно мы берем данные. Кроме того, рекомендуется записывать данные членов одной семьи в соседних строках. Даже при тысяче тестантов тут работы по первым 6 идентификаторам максимум на один час.Как я уже сказал - всего то нужно автоматически повернуть столбик с генотипом на 90 градусов и разделить их пробелом.Вы как-то уж все усложнили.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #31 : 18 Ноябрь 2009, 22:41:58 »
как это не отозвался?

давайте напишем бизнес требования в соседнем топике (поймём что надо сделать) - ведь это самое сложное, а программисты найдутся. Когда всё расписано: что на входе, что на выходе - там можно и студентов (на курсовые) привлечь, там уже дело ремесла.
Программы по моему мнению - надо делать только свободные и под GPL, как plink (это большой топик, не для флема здесь). Создать проекты, инфраструктуру, аплодить на sourceforge могу помочь (по мере свободного времени. Пока вот немного выдалось, хотя могут в любой момент прийти с заданием).

База данных имхо обязательно должна быть открытая - по типу ysearch. Как и программа. Не зависеть ни от одной фирмы, ни от одного человека. Как наука. И только тогда можно надеяться - что в конечном итоге этим будут пользоваться все.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #32 : 18 Ноябрь 2009, 23:08:37 »
я усложнил - для батчевой обработки (сразу пакетом), и не знал как приходят данные.
Если задача - всего-лишь повернуть и не больше, и не надо заморачиваться с полнотой данных в каждом файле, версиями итд (что кстати в будущем может вернуться неприятной неожиданностью) - то можно просто написать транспонирование как вы и говорите, с простейшими допущениями.

но опять же - как я знаю - что из этих 1000 файлов - 585, 789 и 790й - это одна семья (чтобы положить данные рядом)?
Как я знаю, что файл номер 459 - для мужчины, а 460 - для женщины? Если поставить нули в 2-6 колонки а вы будете потом править - нет проблем. Только как вы будете знать - что править, если я сгенерю IDs?

Предлагаю всё-же для простоты утвердить формат-протокол для имени RAW файла. И зашить данные тех первых 6 колонок в него.

Например, ФАМ1_1_1_2_12.raw, группа209_341_2121_12_11.raw, 20923423423423_341234234234234234_1234234234_23423423423_21.raw - 3 разных файла для 3 семей (а их может быть и 10000, по вашим словам).

где в 1й позиции до символа подчёркивания - группа/семья, во 2й - ID, в 3й - ID отца, 4й - ID матери, затем идут пол и фенотип. Порядок - как и в стандарте.
Но тогда нельзя использовать этот символ ('_') - в названии группы. Если нужно дать такую возможность - дайте альтернативу для делимитера.

и вышеперечисленные 3 файла дадут одной выходной файл:

------8<------
ФАМ1 1 1 2 1 2 ... аллели
ФАМ1 1 1 2 1 2 ....аллели
ФАМ1 1 1 2 1 2 ....аллели
...
группа209 341 2121 12 1 1 ....аллели
группа209 341 2121 12 1 1 ....аллели
группа209 341 2121 12 1 1 ....аллели
...
20923423423423 341234234234234234 1234234234 23423423423 2 1 ....аллели
20923423423423 341234234234234234 1234234234 23423423423 2 1 ....аллели
20923423423423 341234234234234234 1234234234 23423423423 2 1 ....аллели
...
------8<------

Это конечно один из возможных путей стандартизации ввода информации по полу итд.

и тогда печатайте свои FAM данные сами в имя файлов.

Прокомментируйте, плиз
« Последнее редактирование: 18 Ноябрь 2009, 23:46:40 от Anode »

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

  • Сообщений: 1257
  • Страна: il
  • Рейтинг +348/-2
  • Y-ДНК: J-FGC5231
  • мтДНК: N1b2
Re: PLINK
« Ответ #33 : 18 Ноябрь 2009, 23:29:37 »
как это не отозвался?

давайте напишем бизнес требования в соседнем топике (поймём что надо сделать) - ведь это самое сложное, а программисты найдутся. Когда всё расписано: что на входе, что на выходе - там можно и студентов (на курсовые) привлечь, там уже дело ремесла.
Программы по моему мнению - надо делать только свободные и под GPL, как plink (это большой топик, не для флема здесь). Создать проекты, инфраструктуру, аплодить на sourceforge могу помочь (по мере свободного времени. Пока вот немного выдалось, хотя могут в любой момент прийти с заданием).

База данных имхо обязательно должна быть открытая - по типу ysearch. Как и программа. Не зависеть ни от одной фирмы, ни от одного человека. Как наука. И только тогда можно надеяться - что в конечном итоге этим будут пользоваться все.
Давайте разделим тему данных и тему софта. Администратор, две новых ветки, пожалуйста.

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #34 : 19 Ноябрь 2009, 00:22:29 »
...Михаил, а что Вы думаете по поводу таблицы профессора Мак Миллана
Я не Михаил, но тоже отвечу. Джим высчитывает скорее всего правильно и основательно, но представляет все в каких-то жутких Экселях. У меня от них в глазах темно. Но зато он умеет вычислять сантиморганы...
Мы считаем попроще, зато даем интерфейс простой, как хозяйственное мыло. Нам бы еще программиста на два часа в неделю и было бы все прекрасно. На мои крики никто не отозвался, поэтому будем улучшать сами. И сантиморганы освоим.
Уважаемый Леон,
Я думаю, что он эти сантоморганы не сам вычисляет.Думаю, он берет регион хромосомы где имеется полное или половинное совпадение.Видимо, программа выписывает начало региона и величину фрагмента, а также названия снипов, которые на него попадают. Затем снипы "пробиваются" по SNAP Proxy Search http://www.broadinstitute.org/mpg/snap/ldsearch.php(там можно получить сведения о Recombination Rate (cM/Mb) и Genetic Distance (cM), иначе частоте кроссоверинга, т.е сантоморганах по каждому снипу).Далее на основании полученных сM по каждому снипу автоматически вычисляютася истинные значения сM участка. Тут могут быть два варианта -либо он считает с использованием Kosambi's Map Function   либо  -Haldane's Mapping Function

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #35 : 19 Ноябрь 2009, 00:31:45 »

Можно изменить последовательность. То есть сначала создать открытую базу, принимая данные формата 23эндМи и ДекодМи (на деле речь идёт о разной размерности бед-чипов), а потом уже пытаться вступать в контакт с Иллюминой.


Только сейчас отметил.

Так вы хотите в какую-то центральную базу (например реляционку) - все данные засаживать? Или просто фильтр/тул/прогу для транспонирования данных для отдельно-взятого исследователя (подготовка данных для работы с plink'ом, так сказать)?
Я так понял, что уважаемый Vadim Verenich спрашивает в исходном посте про второе?


Это разные проекты или вы хотите их совместить? Как совместить? например, аплодить всё в базу, а потом из неё раздавать кому надо в стандартном формате? Тогда это - не просто тул-конвертер. И тут будет больше вопросов - для отдельного топика.

Например, центральная база данных на базе постгресса на линуксе очень хорошо покатит, но у меня ещё не отмелись сомнения по поводу берклиДБ и люцины (самый эффективный индексатор, а по сути - очень быстрая база с оптимизированным доступом). Ведь для аналитики многими людьми - как раз то что надо, чтобы не тормозило как митосёрч). Но прежде чем тут высказывать мнения/рекоммендации - надо много выслушать от вас, кто будет пользуется ею (все юз-кейсы, т.е. сценарии возможного использовния, которые простым программистам неизвестны). Пожалуйста ответьте на вопрос выше и если нужна и центральная база, да ещё и с веб-интерфейсом - надо создавать отдельный топик для обсуждения сценариев и бизнес-требований (как это любят называть менагеры).
Anode, давайте все-таки продолжим обсуждение темы в разделе Plink, а там и Леон подключится. Надеюсь, Вы не против?

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #36 : 19 Ноябрь 2009, 00:34:24 »
Anode, давайте все-таки продолжим обсуждение темы в разделе Plink, а там и Леон подключится. Надеюсь, Вы не против?
конечно.

Предыдущий пост-вопрос - можете перенести в ту же тему?

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #37 : 19 Ноябрь 2009, 00:44:13 »
Сделано.

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

  • Сообщений: 1257
  • Страна: il
  • Рейтинг +348/-2
  • Y-ДНК: J-FGC5231
  • мтДНК: N1b2
Re: PLINK
« Ответ #38 : 19 Ноябрь 2009, 09:16:10 »
...Михаил, а что Вы думаете по поводу таблицы профессора Мак Миллана
Я не Михаил, но тоже отвечу. Джим высчитывает скорее всего правильно и основательно, но представляет все в каких-то жутких Экселях. У меня от них в глазах темно. Но зато он умеет вычислять сантиморганы...
Мы считаем попроще, зато даем интерфейс простой, как хозяйственное мыло. Нам бы еще программиста на два часа в неделю и было бы все прекрасно. На мои крики никто не отозвался, поэтому будем улучшать сами. И сантиморганы освоим.
Уважаемый Леон,
Я думаю, что он эти сантоморганы не сам вычисляет.Думаю, он берет регион хромосомы где имеется полное или половинное совпадение.Видимо, программа выписывает начало региона и величину фрагмента, а также названия снипов, которые на него попадают. Затем снипы "пробиваются" по SNAP Proxy Search http://www.broadinstitute.org/mpg/snap/ldsearch.php(там можно получить сведения о Recombination Rate (cM/Mb) и Genetic Distance (cM), иначе частоте кроссоверинга, т.е сантоморганах по каждому снипу).Далее на основании полученных сM по каждому снипу автоматически вычисляютася истинные значения сM участка. Тут могут быть два варианта -либо он считает с использованием Kosambi's Map Function   либо  -Haldane's Mapping Function
"Вычисляет" - в смысле - использует один из этих методов и принимает во внимание пороговое значение для выявления УПСов. Мы пока до этого не добрались, поэтому имеем иногда фальшивые-положительные (термин?) результаты. Приходится объяснять "данные по хр.6 ненадежные"... и т.д.

Вот Вам, ув. Anode, конкретная задача - довести до ума мои скрипты, внеся учет порога по сантиморганам. Больше всего подходит питон, но если у Вас свои предпочтения - милости просим.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #39 : 19 Ноябрь 2009, 18:40:53 »

Вот Вам, ув. Anode, конкретная задача - довести до ума мои скрипты, внеся учет порога по сантиморганам. Больше всего подходит питон, но если у Вас свои предпочтения - милости просим.


А где сами скрипты?
Я вообще-то питон не знаю, программируя на жаве и си (ну, юниксовые шелл-скрипты можно добавить, реляционки само собой).
Как я понял, теперь стоит уже 3 задачи:

задача 1) транспонирование RAW файла в PED (утилитка повёртывания данных, как они есть). Её написать быстро (если не расширять функциональность в сторону PLINK, конечно). Такую тупую утилитку-конвертер можно написать и на джаве и на си за несколько вечеров. Но это только если поварачивать как есть. Комманд-лайн версию, и с простой гуёй. Джава сделает 100 файлов по 5000 строк в каждой (повторю - без процессинга, просто повёртывание) за несколько секунд, си - порядка секунды. Если данных будет гораздо больше (тысячи-миллионы файлов в будущем, более 5000 строк, вплоть до всего генотипа) - то разница в скорости чтения из файла на си и жабе уже будет значительной. Поэтому и рассматриваю 2 варианта программы.
(моя грубая оценка времени чтения из файла с 60к строками на разных языках: http://siberean.livejournal.com/2253.html).
Питон будет ещё медленней, не говоря про шелл-скрипты, перл.

задача 2) - это централизованная открытая база данных, о необходимости которой заговорили выше по ветке и аплода RAW в неё.
Эта задача исключает необходимость в 1? Ведь база срочнее, не так? Тогда можно забыть про утилиту и срочно начать обсуждать ваши требования к такой централизованной базе, интерфейсы к ней (какие предвидите сценарии работы). Это большой проект. Прежде чем начать ваять - надо продумать базу, архитектуру, выбрать язык  ваяния веб-интерфейса (PHP, жаба, питон) итд. Потому что неправильное решение будет дорого стоить в дальнейшем. Напомню как тормозят митосёрчи, это не с полными-то генотипами, и не с миллиардами населения. Я просто смотрю в будущее.

задача 3) "довести до ума скрипты, внеся учёт порога по сантиморганам". Слова для меня неспециалиста пока страшные, здесь надо разбираться в терминах вашего домейна.

Каковы будут приоритеты?
Проясните.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #40 : 19 Ноябрь 2009, 19:14:58 »
Нам бы еще программиста на два часа в неделю и было бы все прекрасно. На мои крики никто не отозвался, поэтому будем улучшать сами. И сантиморганы освоим.
вам не на пару часов, а на фултайм, а может и несколько программистов надо.
А студентов если привлечь?

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

Другой пример. В универе хопкинса студенты у меня как-то увели проект. Сначала я делал халтуру по вечерам, не как свободный проект/увлечение, а как подработка. Потом поручили студентам, которые рядом. Они сделали и дешевле (бесплатно), и рядом от профессора, т.е. удобнее как бы для него. У вас студенты поблизости есть? С консультациями (насчёт подводных камней, масштабируемости, где полезен опыт) можно помочь и удалённо, например в форумах как здесь.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Re: PLINK
« Ответ #41 : 19 Ноябрь 2009, 19:20:45 »
добавлю к предыдущему посту - что студенты конечно должны быть лучшие :)

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

  • Сообщений: 1257
  • Страна: il
  • Рейтинг +348/-2
  • Y-ДНК: J-FGC5231
  • мтДНК: N1b2
Re: PLINK
« Ответ #42 : 19 Ноябрь 2009, 20:50:11 »
...Каковы будут приоритеты?
Проясните.
1 и 3 - высокий приоритет, 2 - низкий. Скрипты для 3 - как только, так сразу.

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #43 : 19 Ноябрь 2009, 20:57:00 »
Есть еще серьезная проблема с разным количеством пар снипов на хромосоме. Например, у одного индивида может быть 45 000, у другого 44 000, у третьего 46 000.

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Re: PLINK
« Ответ #44 : 19 Ноябрь 2009, 21:01:12 »
То есть добавляется четвертый и пятый пункты
4) посниповое выравнивание (alignment) и  5) фазирование биаллельных маркеров. :(

 

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

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