系統樹

この土日(8/30,31)の成果
(一般向け)
系統樹をEXECLを使って算出しました。
(系統樹1)ヒト、ウサギ、クロバエ、ミドリムシ、ジャガイモ

(系統樹2)人、猿、鶏、亀、犬

ン~、たいして驚きはないですね。

(関係者向け)
生物分子科の「情報科学概論」の授業向けに、生物系の学生さんが興味を持ちそうな話を考えて試してみました。
テーマは、
(1)アミノ酸の配列のアラインメントを行い、種の間の距離を計算し、
それを用いて、
(2)種の系統樹を作る、
というものです。
これをEXCELでできるか試してみました。

(1)のアミノ酸には次の5つの生物のアミノ酸配列を用いました。
ヒト:GDVEKGKKIFIMKCSQCH(18個)
ジャガイモ:ASFNEAPPGNPKAGEKIFKTKCAQCH(26個)
ミドリムシ:GDAERGKKLFESRAAQCH(18個)
クロバエ:GVPAGDVEKGKKLFVQRCAQCH(22個)
ウサギ:GDVEKGKKIFVQKCAQCH(18個)
アラインメントにはダイナミックプログラミングを用いています。
EXCELでは縦横に2種のアミノ酸配列を並べ、セルには次の式を使っています。
=MIN(ROUND(B22,0)+1.1,ROUND(C23,0)+1.2,IF($A22=C$24,ROUND(B23,0),ROUND(B23,0)+2))
この結果、種の間の距離は次のようになりました。

(2)系統樹作成にはUPGMAという方法を用いています。
これをEXCELでやるのは結構大変でした。5種の系統樹に限定してもセルの式は次の今まで経験したことのないような長い式になりました(次図)。

式の最初の部分を示します。
=IF(AND(LEN(INDIRECT(ADDRESS(ROW()-MOD(ROW(),10),COLUMN())))=1,LEN(INDIRECT(ADDRESS(ROW(),1)))=1),VLOOKUP(INDIRECT(ADDRESS(ROW(),1)),$A$1:$F$6,MATCH(INDIRECT(ADDRESS(ROW()-MOD(ROW(),10),COLUMN())),$A$1:$F$1,0),FALSE),……
これでも一発で系統樹を作り出すことはできず、この表計算を3回ほど繰り返します。

系統樹2の人、猿、鶏、亀、犬の系統樹は、ネットにあった種間距離から算出しました。
==
このところの活動、
8/30(土、雨)、コツコツとEXCELの式を作成。
8/31(日、曇)上記系統樹制作、8/31は朝テニス、昼実家裏庭のシート張り。
9/1(月、雨)、ソフトウエア工学の準備で、オオタカの森の紀伊国屋までいく(往電車復徒歩)。
9/2(火、晴)、ソフト工学1回目と2回目の資料を作成。午後(1pm~3pm)ショートテニス。ソフト工学は10年ぶり位で担当する授業です。この間にだいぶ様子が変わっていました。