Wikipedia のリンクだけで現代的な系統樹を作り、霊長目の道筋を辿る

　生物の分類は伝統的には、

- 界
- 門
- 綱
- 目
- 科
- 属
- 種

　を基本に分類されます。例えば、我々ヒトは、

- 動物界
- 脊索動物門
- 哺乳綱
- 霊長目
- ヒト科
- ヒト属
- ヒト種

　となります。

　しかし、生物の進化は実際にはこれより遥かに複雑です。系統遺伝学が発達した現代では、より正確な分類を反映するために**亜門や亜綱**といったサブグループが発達したり、**ローラシア獣やクジラ偶蹄類**といった、一見直感的ではないグループを設定することでより正確な系統を反映させています。

　そのような細かい分類をすべて反映すると、全体では系統樹が煩雑になりすぎてしまいますので、そのような系統樹は中々見ることができません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/cf3b4354-2550-5484-0832-2dddc87a497b.png)

　しかし、Wikipedia の各項目では、各分類群についてより詳細な下位へのリンクがあるので、これを辿ることで、現代の知見を反映した詳細な系統樹を作れないでしょうか。試してみます。

# 再帰探索

　これは典型的な再帰探索になります。以下のようなコードで探索を試みます。

```python
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` を用意しています。

# 結果

　結果が以下になります。霊長類まで辿れました。

```python
 海綿動物
 真正後生動物
   有櫛動物
   平板動物
   刺胞動物
     ヒドロ虫綱
     ポリポジオゾア綱
     箱虫綱
     クラゲ
     鉢虫綱
     花虫綱
     ミクソゾア
   左右相称動物
     珍無腸動物
     前口動物
     後口動物
       棘皮動物
       半索動物
       脊索動物
         古虫動物
         頭索動物
         尾索動物
         脊椎動物
           無顎類
           顎口類
             軟骨魚類
               全頭亜綱
               板鰓亜綱
                 ジンベエザメ
             硬骨魚類
               条鰭類
               肉鰭類
                 肺魚下綱
                 四足類
                   蛙形類
                   爬形類
                     有羊膜類
                       爬虫類
                         側爬虫類
                         ヒロノムス
                         双弓類
                           魚竜形類
                             魚竜上目
                               魚竜類
                                 イクチオサウルス
                           鱗竜形類
                           主竜様類
                             プロトロサウルス
                             タニストロフェウス
                             主竜類
                               クルロタルシ類
                                 植竜類
                               偽鰐類
                               鳥中足骨類
                                 Aphanosauria
                                 鳥頸類
                                   翼竜様類
                                     ラゲルペトン科
                                     翼竜類
                                       ペテイノサウルス
                                       プレオンダクティルス
                                       オーストリアダクティルス
                                       大爪翼類
                                         ディモルフォドン
                                         新翼類
                                           カンピログナトイデス
                                           ランフォリンクス
                                           ソルデス
                                           翼指竜亜目
                                   恐竜様類
                                     ラゴスクス
                                     恐竜形類
                                       マラスクス
                                       竜団類
                                         シレサウルス科
                                         恐竜類
                                           鳥盤類
                                             ヘテロドントサウルス
                                             ゲナサウリア
                                               絶滅
                                               レソトサウルス
                                               装盾類
                                                 スクテロサウルス
                                                 エマウサウルス
                                                 スケリドサウルス
                                                 剣竜類
                                                 鎧竜
                                               新鳥盤類
                                                 アギリサウルス
                                                 アロコドン
                                                 オスニエリア
                                                 オスニエロサウルス
                                                 ストルンベルギア
                                                 クシアオサウルス
                                                 角脚類
                                                   周飾頭類
                                                     堅頭竜類
                                                     角竜類
                                                   鳥脚類
                                           竜盤類
                                             竜脚形類
                                               竜脚類
                                                 ヴルカノドン
                                                 真竜脚類
                                             獣脚類
                                               エオドロマエウス
                                               新獣脚類
                                                 アヴェロストラ
                                                   ケラトサウルス類
                                                   テタヌラ類
                                                     カルノサウルス類
                                                     コエルロサウルス類
                                                       ティラノサウルス上科
                                                         タニコラグレウス
                                                         コエルルス
                                                         オルニトレステス
                                                         メガラプトル科
                                                           フクイラプトル
                                                           アエロステオン
                                                           アウストラロヴェナトル
                                                           メガラプトル
                                                           マイプ
                                                         プロケラトサウルス科
                                                         グアンロン
                                                         プロケラトサウルス
                                                         キレスクス
                                                         ユウティラヌス
                                                         シノティラヌス
                                                         ストケソサウルス
                                                         ジュラティラント
                                                         ミリスキア
                                                         アヴィアティラニス
                                                         バガラアタン
                                                         ディロング
                                                         エオティラヌス
                                                         ラボカニア
                                                         サンタナラプトル
                                                         ティミムス
                                                         ティムルレンギア
                                                         シオングアンロン
                                                         ススキティラヌス
                                                         モロス
                                                         ジンベイサウルス
                                                         アレクトロサウルス
                                                         アパラチオサウルス
                                                         ドリプトサウルス
                                                         ティラノサウルス科
                                                       マニラプトル形類
                                                         オルニトミモサウルス類
                                                         マニラプトル類
                                                           アルヴァレスサウルス類
                                                           羽盗類
                                                             オヴィラプトロサウルス類
                                                             原鳥類
                                                               ドロマエオサウルス科
                                                               トロオドン科
                                                               鳥群
                                                           Incertae sedis
                                                           カクル
                                                           ヤヴェルランディア
                       単弓類
                         カセアサウルス亜目
                         真盤竜亜目
                           エダフォサウルス科
                           オフィアコドン科
                           スフェナコドン科
                           獣弓類
                             ビアルモスクス類
                             恐頭類
                             異歯類
                             獣歯類
                               ゴルゴノプス類
                               獣頭類
                               犬歯類
                                 プロバイノグナトゥス類
                                   プロバイノグナトゥス科
                                   哺乳形類
                                     モルガヌコドン目
                                     梁歯目
                                     ハラミヤ目
                                     哺乳類
                                       原獣亜綱
                                         ハリモグラ
                                       獣形類
                                         異獣亜綱
                                           地質時代
                                           多丘歯目
                                         三錐歯目
                                         獣亜綱
                                           後獣類
                                           真獣類
                                             ジュラマイア
                                             有胎盤類
                                               異節上目
                                                 先カンブリア時代
                                                 カンブリア紀
                                                 オルドビス紀
                                                 シルル紀
                                                 デボン紀
                                                 石炭紀
                                                 ペルム紀
                                                 三畳紀
                                                 ジュラ紀
                                                 白亜紀
                                                 古第三紀
                                                 新第三紀
                                                 暁新世
                                                 完新世
                                                 有毛目
                                               アフリカ獣上目
                                                 ツチブタ
                                                 ジュゴン
                                                 ハネジネズミ
                                                 マナティー
                                                 ケープハイラックス
                                                 アフリカゾウ
                                                 テンレック
                                               北方真獣類
                                                 ローラシア獣上目
                                                 真主齧上目
                                                   グリレス大目
                                                   真主獣大目
                                                     ヒヨケザル目
                                                     ツパイ目
                                                     プレシアダピス目
                                                     サル目
```

# 考察

　上の系統樹をもとに、生物がどのように霊長類に進化してきたかを考察します。

##  真正後生動物

　原生動物ではない動物の中で、海綿動物を除いたものです。現在のカイメンとはここで分かれます。

## 左右相称動物

　体が左右対称の動物です。現在のクラゲとかとはここで分かれます。

## 後口動物

　原腸が肛門になる動物です。現在のイカとかはここで分かれます。

## 脊索動物

　背中に神経の筋が通った動物です。現在のウニとかとはここで分かれます。

## 脊椎動物

　背骨がある動物です。現在のナメクジウオとかとはここで分かれます。

## 顎口類（がっこうるい）

　顎がある動物です。現在のヤツメウナギとかとはここで分かれます。

## 硬骨魚類

　硬い骨がある動物です。現在のサメとかとはここで分かれます。これは当然哺乳類を含む単系統ですので、なんと我々ヒトは**硬骨魚類**だったのです！

## 肉鰭類（にくきるい）

　肉っぽいヒレがある動物です。現在のほとんどの魚とはここで分かれます。その後哺乳類にもなるのでなんと我々ヒトは（以下略）

## 四足類

　このあたりから四つ足になります。現代のシーラカンスやハイギョとかとはここで分かれます。

## 爬形類（はけいるい）

　形態的な意味付けは難しく、両生類が抜けたグループの意味合いが強いです。現代のカエルとはここで分かれます。

## 有羊膜類（ゆうようまくるい）

　卵殻や卵白によって卵が耐乾燥性を獲得しはじめる頃です。

## 単弓類（たんきゅうるい）

　側頭窩（頭蓋骨の穴）が一対のグループです。ヒトにおいても、こめかみあたりの窪みとして残っていいます。形態的特徴はそれだけですが、なんと現代の鳥や爬虫類とはここで分かれるので、かなり大きな分かれ道です。みんな大好き恐竜もここで分かれます。というか、鳥が恐竜です。

## 真盤竜亜目（しんばんりゅうあもく）

　形態的な意味付けは難しく、獣弓類と盤竜類を合わせたグループの意味合いが強いです。

## 獣弓類（じゅうきゅうるい）

　形態的な意味付けは難しく、盤竜類が抜けたグループの意味合いが強いです。現代では絶滅しましたが、ディメトロドン（恐竜ではない）とはここで分かれます。

## 獣歯類

　犬歯や臼歯を持つグループです。

## 犬歯類

　骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。（自信なし）

## プロバイノグナトゥス類

　骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。（自信なし）

## 哺乳形類

　骨格が更に哺乳類的な形質を身に付けたグループ、らしいです。（自信なし）

## 哺乳類

　やっとここで哺乳類になります。胎生（一部例外あり）と母乳が特徴です。

## 獣形類

　より獣っぽいグループです（適当）

## 獣亜綱

　より獣っぽいグループです（適当）。現代のカモノハシとはここで分かれます。本来の意味での胎生系統はここになるのでしょうか。

## 真獣類

　より獣っぽいグループです（適当）。現代のカンガルーとはここで分かれます。

## 北方真獣類（ほっぽうしんじゅうるい）

　形態的な意味付けは難しく、ローラシア獣上目と真主齧上目を合わせたグループの意味合いが強いです。

## 真主齧上目（しんしゅげつじょうもく）

　ネズミとかサル（つまり我々）を含むグループです。現在のウマやクジラとはここで分かれます。

## 真主獣大目（しんしゅじゅうだいもく）

　ヒヨケザルとかサル（つまり我々）を含むグループです。現在のネズミやウサギとはここで分かれます。

## 霊長目

　我々です。正確にはヒトの他にチンパンジーやゴリラを含みますが、まあこれまでのスケールで考えたら誤差のようなものでしょう。