薬の副作用の有無をAIが100% 的中

読んだ。
Machine learning-based prediction of adverse drug effects: an example of seizure-inducing compounds
プレスリリース
 
COI:なし
薬学も電気生理学も情報科学も何ひとつ専門ではないけど、100%予測に釣られたので書く。
 
seizure (けいれん)を引き起こす副作用のある薬物を、Caffe を用いたdeep learningSVM による機械学習で100% 予測しました、というweb ニュースがでているが、実際には、論文でけいれんが報告されているジフェンドラミン、エノキサシン、ストリキニーネ、テオフィリンの4剤とけいれんを絶対に起こすピクロトキシン1剤、けいれんの副作用はないということになっているアスピリン、シメチジン、デキストラン、ジアゼパムイブプロフェン、イミプラミン、ケタミンメタンフェタミン、オセルタミビルの9剤を判別するタスクをしている。
 
ここで、Mg の話だが、Mg は細胞膜の電気的活動の安定性に関わっており、脳脊髄液(CSF) では1.2nM らしいが、0.1nM まで下げると勝手にseizure-like event SLE が起きやすくなるらしい。以下の実験ではMg 濃度は0.1nM でやっており、SLE は起きやすい状況になっているようである(Fig.1)。
 
クロトキシンの話だが、GABAという物質があって、これは神経接合部での神経活動の惹起を抑える働きがあるが、ピクロトキシンはこのGABAの働きを抑えることで、結果として興奮が起きやすくなる、ということで、ピクロトキシンの濃度を上げていくと確かにSLE が生じてけいれんが起きるということになっている(Fig.2)。
 
マウスから海馬を摘出し、上記の薬剤の臨床的な血中濃度から最大30倍くらいのオーダーの濃度まで5段階で適宜、脳脊髄液(CSF)還流液を調整して、SLE の信号が測定されるか観測している(Table.1)。その信号は、ピークとして0.1uV/ms を超えた前後 -200 から2070ms までを切り出して、227x227 ピクセルの画像にして、caffe に投げるということらしい。ということで、入力データは5濃度、14薬剤の70画像である。
 
ひとまずSLE の起きる様子をベタにプロットすると、けいれんを起こすと言われている次フェンドラミン、エノキサシン、ストリキニーネ、テオフィリンは濃度依存性にSLE の発生が多かった(Fig.3)。ケタミンメタンフェタミン、オセルタミビルでは電気活動があるように見えるけれども、発火がオシレーション様ではないのでSLE とは言わないらしい。これは専門でないのでよくわからん。
 
肝心の判定性能だが、総計70枚の、227x227ピクセルの画像を、2012年のLarge Scale Visual Recognition Challenge で事前に学習された6層判別器に入力している。結果として4096の長さの特徴量ベクトル(70*4096 行列)ができて、それをPCA することでごしゃっとデータをまとめている。PC1(37%)とPC2(21%)の軸だけ取り出し、SVM (線形)をやると、けいれんを起こす薬剤で、SLEを引き起こす濃度(ここがよくわからなかったがFig.4)の空間が線形分離できる、これが判別性能100% と言っている。
一応、LOOCV で1:13 の交差検証をやっても100% だし、けいれんを起こすことがわかっているイソニアジドとメトクロプラミドを判別しても、陽性判定だったので、外的妥当性も検証している、と言っていそう。
PCA空間をみると、けいれんを起こす薬剤のなかでジフェンドラミンだけが別クラスターになっており、これはSLE を見ると下がって上がるパターン(Fig.4)であり、ほかの4剤の上がって下がるパターンとは異なるので、おそらく薬理学的な違いが出ていて、これを考えるうえでも役に立ちそう、と言っている。
 
感じたこととして、ド素人だけど情報科学、生物学、医学の見地からまとめてみる。
 
情報科学の見地からは、まず、時刻t で観測され続けているであろうSLE の時系列データE(t) を、画像にしてしまうことにいったいどれほどの意味があるのだろうか。現象的には、ベクター画像をラスター画像にして解析しているような感覚だが、それでもけいれんの有無を判別できるというのは、それはそれでこのやり方はできないことはないのだろう。なんとなく、音声信号をスペクトログラムにしてdeep learning にぶちこめば例えば声帯結節あり/なしがわかる、みたいなゴリ押し感はある。
ただし、これは「見た目が違っていて、なんとなく違いが判別できる」という定性的な概念になってしまうので、できれば、定量的にSLE のスパイクの形成具合のどことどことで数値的にどうなったらこれはてんかん、と言いたい感じはある。また、事前に学習したモデルって、背景とか馬とかだと思うけど、SLE シグナルみたいな「ただの線」にその学習モデルを使うというのは許容されているアルゴリズムなんだろうか。
 
入力が70ってどうなんですかね。また、caffe で4096の長さの特徴量ベクトルを作ったならそのままdeep learning で判別器作ればいいと思うし、PCA で次元を落として、って、それならば画像データにして無駄に次元を変えたりデータ量を変えたりして削減するという流れがいまいちよくわからなかった。有名な論文みたいだけど、わざわざ問題を難しく解かなくても…という気はする。プレリミ的には全次元で判別したらSVM でうまく分離できなかったらしい。PCA でノイズが減るのは減ると思うけど、難しいことをしすぎではないか。
「けいれんを起こす薬剤」という判定基準が雑な気がする。ジフェンドラミン、エノキサシン、ストリキニーネ、テオフィリンは論文ベースで探したようだが、例えばケタミンでも報告はあるし、何を基準に論文をサーベイしたのかわからなかった。普通に考えて、精神に作用するメタンフェタミンがけいれんを起こさない薬物に最初から分類されているのが(薬学は専門でないので)よくわからなかったし、ケタミンメタンフェタミンの2剤がSLE を起こしていないというのも(生理学は専門でないので)よくわからなかった。究極的に意味がわからなかったのが、イミプラミンは0.3-0.6% で臨床的にけいれんを起こす、と書いてあるのに、SLE を起こさなかったのでけいれんを起こさない薬剤と判定していることだった。
けいれんを起こすか、Yes/No の二択での判定の限界というか別にいい手法はあるのか、というのは議論で指摘されていた。
 
生物学的な見地からは、おそらく、どんな薬物でも高濃度にすれば、けいれんというか細胞の異常発火は引き起こしうる。今回の濃度設定は、ヒトの臨床的な血中濃度の報告を元に、それをいい感じで含むように濃度調整をして、マウスで実験している。設定した濃度の範囲外でSLE が生じる可能性があることは議論でも述べられているが、この手の毒性/副作用予測論文ではやはり、ヒトとモデル生物間での飛躍がどうしても避けられない。例えば細胞レベルやマウスレベルのでの毒性試験がヒトでも毒性があるかというとそうでもないことは多いし、「けいれん予測」が「その薬剤を内服したヒトで起こるか」ではなく、「マウスで海馬を溶液にひたしてSLE が起こるか」ということの予測であることは注意しておくべきだろう。
あと、マウスの海馬を切って浸してSLE を測定するというこの実験系、ハイスループットにできるのか謎だった。
 
医学的な見地からは、メトクロプラミドがけいれんを起こす薬剤の外的妥当性の検証として使われているが、この薬、けいれんを起こすと判定されたから危ない薬かというと、死ぬほど処方されているプリンペラン(吐き気止め)である。添付文書を読んでみるとたしかにけいれんは書いてあるのだが、神経学的副作用には頻度すら書いていない。では世の中の医者がけいれんのリスクを認識してメトクロプラミドを処方しているかというと、たぶんしていない。クスリはリスクというくらいではあるが、リスクとベネフィットを勘案してクスリは処方されるわけで、元論文をみてもoverdose の例らしいので、このあたり、情報科学的見地でも述べたように、陽性例の設定基準があやふやと言わざるをえない。
 
(元論文を見たが、「イソニアジド(抗結核薬)とメトクロプラミドは両者ともけいれんを起こしうると報告されている」と引用されていたのに、引用にはイソニアジドのことしか書かれていなくてメトクロプラミドをgrep したけど書いていなかったようである、読んでいないのでもしかしたら別名で書いてあるのかもしれない。また、メトクロプラミドの濃度を決めたという論文も抄録ではメトクロプラミドがけいれんを引き起こすことは書いていない。本文は知らない)
(やっぱり気になって元論文を読んだが、17歳男性が失恋時に30錠くらいのイソニアジドを飲んだ時の管理という症例報告で、イソニアジドの肝機能障害は有名だけどけいれんや昏睡などの精神症状に気をつけてね、という話で、補助療法で活性炭など使うといいよとあったが消化管症状など読んでもメトクロプラミドは出てきていなかったし、メトクロプラミドとけいれんの話はどこに書いてあるのかわからなかった。)
 
なのでここでも、「in virto でAI がけいれんが起こると判定する」ことと、「実臨床でけいれんが起こる」ことがびっくりするくらい乖離している。また、「けいれんが起こった薬剤」というのは、因果関係がわからないけれども、「少なくとも投与した後にけいれんが生じた」場合には、珍しい/重症な副作用は報告する義務があるので、けいれんを起こすという薬剤が本当にけいれんを起こしているのかは実臨床レベルでは不明な事が多い(と思う)。
また、薬物単体で副作用を起こすだけではなく、相互作用で起きる場合や、上の例でいれば「相互作用で起きた、もしくは犯人でもないのに巻き添えで犯人扱いされている」場合もないことはないと思われるので、けいれんを起こす/起こさない薬剤の選定は非常に難しい、はず。
 
という感じで、モヤモヤ感がはんぱなかった。
 
見かけたツイート。

前者はそうだけど、後者は必ずしも(現実問題には)当てはまりません。例えば正規分布は、取りうる値は(-\infty,\infty)であるが、現実的には99.9% くらいの区間で適当な有限値になるはず。仮に、「新生児と20歳の男性を身長で判別する」問題を考えるとき、新生児はたかだか平均50cm に適当な分散なので、20歳男性の身長からは100% 判別されるはず。もちろん、20歳男性が例えば低形成症だとしても、普通にサンプリングすれば平均170cm に適当な分散になるので、新生児は実データ上は完全に分離される。もちろん、170cm と入力すべきところを1.7m と勘違いして1.7 と入力したり、本当にすごい症例報告レベル(確率10^{-1000}くらいな)の身長がいたりすれば別だけど。ということで、今回のけいれんで言えば、「けいれん薬剤のSLE は、けいれんでない薬剤のSLE とはもう本当に違いうる」ということがあれば、100% 判別ニキでもおかしくはない。これは結局安全域が狭い薬剤なのか広い薬剤なのかという話だと思うけど。
ただ、けいれん有無の薬剤の選び方とか、SLE の判定とかよくわからんことが多いので、交差検証とかしてモデルの妥当性を解析していても、モヤモヤ感は残る。
 
既存の薬剤で、副作用としてけいれんがある、と言われているものを判別しています。ただ、2つだけで、どちらも臨床的には普通に使われている薬剤なので、何をもってけいれんの副作用を言っているのかはちょっとよくわかりませんでした。