Abnormal programming
Git
GitHub
Comments 8
+5

Можно пойти дальше, секвенировать свой геном, жены, детей, потом смержить две ветки, поменять в паре мест нестыковки и получить геном детей. Я пока не придумал, зачем… Но это было бы нереально круто:) и дорого(

+5
Там много проблем, в т.ч. фундаментальных, которые просто развитием техники нерешаемы. Если что — я просто активно интересуюсь, профессионалы — поправьте, пожалуйста, если где-то наврал.

1. Геном человека — это строка длиной 3 млрд из 2-букв символов, т.е. около 750 Мб (как раз на CD влезает). Для гита многовато, хотя и возможно.

2. Если только гены хранить, а не всю ДНК, выходит 28 тыс. генов средней длиной 1000 букв, т.е. ~7Мб. Реально, но уже известно, что некодирующие участки ДНК сильно влияют на выработку белков. А без них человека в пробирке уж точно не вырастишь :)

3. Плюс такое количество букв крайне сложно прочитать без ошибок, и в реально прочитанном полном геноме будут ошибки. К тому же, чтобы сделать чтение дешевле, обычно
многократно читают относительно короткими кусками по 100-1000 нуклеотидов-букв, а потом специальными программами-ассемблерами «склеивают» их вместе, что тоже вносит ошибки (одна из основных проблем — тандемные повторы).
Т.е. если через 20 лет прочитать геном того же человека, он будет слегка отличаться от прочитанного сейчас из-за уменьшившегося числа ошибок (если технологии продолжат развиваться).

Переписывать всю историю, заново разрешая конфликты при merge — бррр!

4. Плюс у нас 2 набора хромосом, один от папы и один от мамы. При создании сперматозоида они встают друг напротив друга, делятся на короткие участки, и обмениваются ими (этот процесс называется рекомбинация). Затем один такой набор хромосом упаковывается в сперматозоид. Аналогично — при создании яйцеклетки (кстати, к моменту рождения девочки все ее яйцеклетки уже сформированы, т.е. наполовину человек появляется еще в матке свой бабушки).

5. Также потомок отличается от обоих родителей на ~50 нуклеотидов в случайных местах (мутации в процессе рекомбинации).

П.п. 4 и 5 относительно хорошо ложатся на разрешение конфликтов при merge :)

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

7. У бактерий очень распространен и крайне важен горизонтальный перенос генов, т.е. одна особь выбрасывает копию части своего генома из клетки, а другая подбирает и встраивает в свой. Причем такое есть и у многоклеточных — бделлоидных коловраток. Т.е. если и для других животных делать гит, то это будет бесконечная череда мержей, в которой крайне сложно будет разобраться.

8. Есть люди-химеры. Это когда должны были родится двойняшки (две яйцеклетки созрели одновременно и были оплодотворены разными сперматозоидами), но на самых ранних этапах (2, 4, 8, 16 клеток) они слились в один организм. У такого человека левая рука и правая нога имеют один геном, а правая рука и левая нога — другой (его брата или сестры). Больше всего повезло тому брату/сестре, чьи яички/яичники — у него/нее будет потомство. Что писать в такой геном — не очень понятно. Геном яичек? А если левое — от одного, а правое — от другого?

9. Кажется, у собак бывает так, что если два самца оплодотворят самку, то очень редко в яйцеклетку могут войти два сперматозоида, их геномы там сольются и вытеснят геном самки(!). Получится ребенок двух самцов, а самка его просто выносит, хотя к ней он не будет иметь никакого отношения (кроме крошечной митохондриальной ДНК). Получается мерж троих родителей! У людей, кстати, недавно такое тоже было сделано (искусственно) — для лечения редкого генетического заболевания, правда 2 матери и 1 отец.

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

11. Есть венерическая саркома собак. Это странный вид рака, когда при половом акте раковая клетка передается партнеру, и начинает размножаться в его организме. Геном опухоли псовый, но заметно отличающийся от генома носителя. Судя по всему, какая-то собака, жившая 6 тысяч лет назад, стала бессмертной, правда, вернувшись в одноклеточную форму жизни.
Тоже непонятно как записывать такое в гите.

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

Это только то, что я смог вспомнить. В реальности проблем, в т.ч. фундаментальных гораздо больше.
+2
Однако, github не показывает даты коммитов до создания мира… :)
+1
Забавный пример использования… Я тут потихоньку пилю свое исследование. Собираюсь опубликовать здесь же, на хабре — методологию и некоторые выводы.

Кстати, граф легко можно было бы отрисовать старым добрым graphViz…
graphs.grevian.org/example
stackoverflow.com/questions/2271704/family-tree-layout-with-dot-graphviz
0
Хм, интересно, а что за исследование? Публикуйте!

Да, конечно, с Graphviz знаком — это хорошая, бесплатная, опенсорсная либа для рендеринга графов.
+1
Я еще не закончил, но написать уже можно. Анализ метрических книг одного села. Excel, sql.
+1
Предложу обратить внимание на методы, реализованные в GenoPro.
Only those users with full accounts are able to leave comments. , please.