生物の分類は伝統的には、
- 界
- 門
- 綱
- 目
- 科
- 属
- 種
を基本に分類されます。例えば、我々ヒトは、
- 動物界
- 脊索動物門
- 哺乳綱
- 霊長目
- ヒト科
- ヒト属
- ヒト種
となります。
しかし、生物の進化は実際にはこれより遥かに複雑です。系統遺伝学が発達した現代では、より正確な分類を反映するために亜門や亜綱といったサブグループが発達したり、ローラシア獣やクジラ偶蹄類といった、一見直感的ではないグループを設定することでより正確な系統を反映させています。
そのような細かい分類をすべて反映すると、全体では系統樹が煩雑になりすぎてしまいますので、そのような系統樹は中々見ることができません。
しかし、Wikipedia の各項目では、各分類群についてより詳細な下位へのリンクがあるので、これを辿ることで、現代の知見を反映した詳細な系統樹を作れないでしょうか。試してみます。
再帰探索
これは典型的な再帰探索になります。以下のようなコードで探索を試みます。
import re
import requests
from collections import defaultdict
seen = defaultdict(bool)
def search(keyword,depth=0):
if seen[keyword]:
return
seen[keyword] = True
url = f'https://ja.wikipedia.org/wiki/{keyword}'
txt = requests.get(url).text.replace('\n', '')
def append_title(category: str) -> list:
pat = rf'{category}</th></tr>(.*?)</tr>'
res = re.findall(pat, txt)
if len(res) == 0:
return []
res = res[0]
pat = r'<a href="/wiki/.*?" title="(.*?)">'
res = re.findall(pat, res)
return res
titles = []
categories = ['下位分類','下位分類群','亜綱','科</a>','下目</a>','下綱</a>','上目</a>','上目','大目','目</a>']
for category in categories:
titles.extend(append_title(category))
for title in titles:
if seen[title]:
continue
print(' '*depth, title)
search(title,depth+2)
keyword = '動物'
search(keyword)
なお、厳密に下位方向に探索が進むならば無限ループは発生しないはずですが、解析の過程で無限ループが検出されたので、やむなく探索済チェック配列 seen
を用意しています。
結果
結果が以下になります。霊長類まで辿れました。
海綿動物
真正後生動物
有櫛動物
平板動物
刺胞動物
ヒドロ虫綱
ポリポジオゾア綱
箱虫綱
クラゲ
鉢虫綱
花虫綱
ミクソゾア
左右相称動物
珍無腸動物
前口動物
後口動物
棘皮動物
半索動物
脊索動物
古虫動物
頭索動物
尾索動物
脊椎動物
無顎類
顎口類
軟骨魚類
全頭亜綱
板鰓亜綱
ジンベエザメ
硬骨魚類
条鰭類
肉鰭類
肺魚下綱
四足類
蛙形類
爬形類
有羊膜類
爬虫類
側爬虫類
ヒロノムス
双弓類
魚竜形類
魚竜上目
魚竜類
イクチオサウルス
鱗竜形類
主竜様類
プロトロサウルス
タニストロフェウス
主竜類
クルロタルシ類
植竜類
偽鰐類
鳥中足骨類
Aphanosauria
鳥頸類
翼竜様類
ラゲルペトン科
翼竜類
ペテイノサウルス
プレオンダクティルス
オーストリアダクティルス
大爪翼類
ディモルフォドン
新翼類
カンピログナトイデス
ランフォリンクス
ソルデス
翼指竜亜目
恐竜様類
ラゴスクス
恐竜形類
マラスクス
竜団類
シレサウルス科
恐竜類
鳥盤類
ヘテロドントサウルス
ゲナサウリア
絶滅
レソトサウルス
装盾類
スクテロサウルス
エマウサウルス
スケリドサウルス
剣竜類
鎧竜
新鳥盤類
アギリサウルス
アロコドン
オスニエリア
オスニエロサウルス
ストルンベルギア
クシアオサウルス
角脚類
周飾頭類
堅頭竜類
角竜類
鳥脚類
竜盤類
竜脚形類
竜脚類
ヴルカノドン
真竜脚類
獣脚類
エオドロマエウス
新獣脚類
アヴェロストラ
ケラトサウルス類
テタヌラ類
カルノサウルス類
コエルロサウルス類
ティラノサウルス上科
タニコラグレウス
コエルルス
オルニトレステス
メガラプトル科
フクイラプトル
アエロステオン
アウストラロヴェナトル
メガラプトル
マイプ
プロケラトサウルス科
グアンロン
プロケラトサウルス
キレスクス
ユウティラヌス
シノティラヌス
ストケソサウルス
ジュラティラント
ミリスキア
アヴィアティラニス
バガラアタン
ディロング
エオティラヌス
ラボカニア
サンタナラプトル
ティミムス
ティムルレンギア
シオングアンロン
ススキティラヌス
モロス
ジンベイサウルス
アレクトロサウルス
アパラチオサウルス
ドリプトサウルス
ティラノサウルス科
マニラプトル形類
オルニトミモサウルス類
マニラプトル類
アルヴァレスサウルス類
羽盗類
オヴィラプトロサウルス類
原鳥類
ドロマエオサウルス科
トロオドン科
鳥群
Incertae sedis
カクル
ヤヴェルランディア
単弓類
カセアサウルス亜目
真盤竜亜目
エダフォサウルス科
オフィアコドン科
スフェナコドン科
獣弓類
ビアルモスクス類
恐頭類
異歯類
獣歯類
ゴルゴノプス類
獣頭類
犬歯類
プロバイノグナトゥス類
プロバイノグナトゥス科
哺乳形類
モルガヌコドン目
梁歯目
ハラミヤ目
哺乳類
原獣亜綱
ハリモグラ
獣形類
異獣亜綱
地質時代
多丘歯目
三錐歯目
獣亜綱
後獣類
真獣類
ジュラマイア
有胎盤類
異節上目
先カンブリア時代
カンブリア紀
オルドビス紀
シルル紀
デボン紀
石炭紀
ペルム紀
三畳紀
ジュラ紀
白亜紀
古第三紀
新第三紀
暁新世
完新世
有毛目
アフリカ獣上目
ツチブタ
ジュゴン
ハネジネズミ
マナティー
ケープハイラックス
アフリカゾウ
テンレック
北方真獣類
ローラシア獣上目
真主齧上目
グリレス大目
真主獣大目
ヒヨケザル目
ツパイ目
プレシアダピス目
サル目
考察
上の系統樹をもとに、生物がどのように霊長類に進化してきたかを考察します。
真正後生動物
原生動物ではない動物の中で、海綿動物を除いたものです。現在のカイメンとはここで分かれます。
左右相称動物
体が左右対称の動物です。現在のクラゲとかとはここで分かれます。
後口動物
原腸が肛門になる動物です。現在のイカとかはここで分かれます。
脊索動物
背中に神経の筋が通った動物です。現在のウニとかとはここで分かれます。
脊椎動物
背骨がある動物です。現在のナメクジウオとかとはここで分かれます。
顎口類(がっこうるい)
顎がある動物です。現在のヤツメウナギとかとはここで分かれます。
硬骨魚類
硬い骨がある動物です。現在のサメとかとはここで分かれます。これは当然哺乳類を含む単系統ですので、なんと我々ヒトは硬骨魚類だったのです!
肉鰭類(にくきるい)
肉っぽいヒレがある動物です。現在のほとんどの魚とはここで分かれます。その後哺乳類にもなるのでなんと我々ヒトは(以下略)
四足類
このあたりから四つ足になります。現代のシーラカンスやハイギョとかとはここで分かれます。
爬形類(はけいるい)
形態的な意味付けは難しく、両生類が抜けたグループの意味合いが強いです。現代のカエルとはここで分かれます。
有羊膜類(ゆうようまくるい)
卵殻や卵白によって卵が耐乾燥性を獲得しはじめる頃です。
単弓類(たんきゅうるい)
側頭窩(頭蓋骨の穴)が一対のグループです。ヒトにおいても、こめかみあたりの窪みとして残っていいます。形態的特徴はそれだけですが、なんと現代の鳥や爬虫類とはここで分かれるので、かなり大きな分かれ道です。みんな大好き恐竜もここで分かれます。というか、鳥が恐竜です。
真盤竜亜目(しんばんりゅうあもく)
形態的な意味付けは難しく、獣弓類と盤竜類を合わせたグループの意味合いが強いです。
獣弓類(じゅうきゅうるい)
形態的な意味付けは難しく、盤竜類が抜けたグループの意味合いが強いです。現代では絶滅しましたが、ディメトロドン(恐竜ではない)とはここで分かれます。
獣歯類
犬歯や臼歯を持つグループです。
犬歯類
骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。(自信なし)
プロバイノグナトゥス類
骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。(自信なし)
哺乳形類
骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。(自信なし)
哺乳類
やっとここで哺乳類になります。胎生(一部例外あり)と母乳が特徴です。
獣形類
より獣っぽいグループです(適当)
獣亜綱
より獣っぽいグループです(適当)。現代のカモノハシとはここで分かれます。本来の意味での胎生系統はここになるのでしょうか。
真獣類
より獣っぽいグループです(適当)。現代のカンガルーとはここで分かれます。
北方真獣類(ほっぽうしんじゅうるい)
形態的な意味付けは難しく、ローラシア獣上目と真主齧上目を合わせたグループの意味合いが強いです。
真主齧上目(しんしゅげつじょうもく)
ネズミとかサル(つまり我々)を含むグループです。現在のウマやクジラとはここで分かれます。
真主獣大目(しんしゅじゅうだいもく)
ヒヨケザルとかサル(つまり我々)を含むグループです。現在のネズミやウサギとはここで分かれます。
霊長目
我々です。正確にはヒトの他にチンパンジーやゴリラを含みますが、まあこれまでのスケールで考えたら誤差のようなものでしょう。