Küçük bir genetik dersi
Sadece birisinin görünür özelliklerine veya fenotipine erişiminiz olduğunda , aile geçmişinin bir soyağacı genellikle her genetik bilginin gerçek genetik bilgisini veya genotipini bulmak için kullanılır.
Bizim gibi basit bir baskınlık ile uğraşırken, basit bir soyağacı çizelgesi, her bir kişinin alellerini veya sahip oldukları genlerin versiyonlarını bulmak için yeterli olacaktır. Basit baskınlıkta, baskın bir alele (büyük harfle gösterilen) sahip bir kişi, diğer alel ne olursa olsun, her zaman bu versiyonun temsil ettiği özelliğe sahip olacaktır. Bu versiyonun ifade edilmesi için iki resesif alel (küçük harfle gösterilen) gerekir. Başka bir deyişle, baskın allel her zaman bu genin resesif versiyonunu maskeler. İşte bir soy ağacı şeması örneği:
Buradaki her satır bir kuşaktır. Daireler kadın, erkekler kareler, yatay çizgiler evlilik, dikey çizgiler çocuklar. Oldukça basit. Siyah, resesif fenotip, beyaz, baskın anlamına gelir. Tepeden başlayarak, (alellerin var olduğunu A
ve varsayalım a
), 2. kişinin aa
homozigos resesif olduğunu biliyoruz , çünkü resesif fenotip için mümkün olan tek seçenek budur. Şimdi kişi bir ya Aa
da AA
baskın bir fenotip olabilse de , resesif bir çocuğu olduğu için kendisinin Aa
ya da heterozigos olması gerekir . Bunu diğer tüm insanlar için yapabilirsiniz. Eğer ikinci alel anlamaya olanak herhangi bir bilgi yoktur halinde, o kadar gibi yapılabilir: A_
.
Senin görevin
[GenI, GenII, etc.]
Herhangi bir aklı başında formatta olduğu gibi nesiller listesi şeklinde bir soyağacı grafik alacaksınız .- Her nesil bir dize listesi olacaktır, her dize bir kişiyi temsil eder.
- İnsanlar üç bölümden oluşuyor - bir kimlik, fenotipleri ve "bağlantıları".
- Kimlikleri,
A
veya dışındaki tüm ağaçta benzersiz olan tek bir yazdırılabilir ascii karakteridira
. (Hayır, grafikte 95'ten fazla kişi olmayacak). - Bunların fenotipi biridir
A
ya daa
,A
baskın alel olması vea
resesif olarak. - Bağlantıları, bağlantı kurdukları diğer kişilerin kimlikleri dizisidir.
- Aynı kuşakta bir bağlantı evlilik, farklı kuşaklarda çocuk ve ebeveyn.
- Bağlantılar her iki tarafta da tekrarlanıyor (yani, koca karının kocası olduğunu söylüyor ve karısı karısının kocası olduğunu söylüyor).
- Herkesin genotiplerini mümkün olduğunca bulmak zorundasınız.
- Aynı listeye geri dönün, insanlar hariç, genotiplerini aynı pozisyona yerleştirin.
- Genotip
Aa
bunun yerine sırayla çıkarılmalıdıraA
. - Giriş formatındaki küçük bir boşluk iyi.
- Bu kod golf, bayt cinsinden kazanılan cevapların çok kısa olması .
Örnekler
[["0A1234", "1a0234"], ["2A01", "3a01", "4A015678",
"5a4678"], ["6a45", "7A45","8A45"]] (The one above) ->
[["Aa", "aa"], ["Aa", "aa", "Aa", "aa"], ["aa", "Aa", "Aa"]]
[["0A12", "1A02"], ["2A301", "3a2"]] ->
[["A_", "A_"], ["A_", "aa"]]
Bonus
- -30 byte ile anlaşma eğer eksik ve eş baskınlık da. Tüm çizelgedeki iki yerine üç fenotip tespitinde algoritmanıza eksik / eş baskınlığı uygulayın.
A
vea
ve olduğu gibi (yani kimlikleri ve bağlantıları bırakmak[["0A12","1A02"],["2A301","3a2"]]
olur[["0A_12","1A_02"],["2A_301","3aa2"]]
yerine[["A_","A_"],["A_","aa"]]
)?