【遺伝的変異を自動的に分類する】Personalized Medicine: Redefining Cancer Treatment

この記事を書いた人
北爪 聖也

株式会社pipon代表取締役。 キャリアはADK(広告代理店)でテレビ広告運用をして残業120時間するが、ネット広告では自分の業務がAIで自動化されていることに驚愕する。そこで、機械学習受託会社に転職し、技術力を身につけた後、piponを創業。現在、製薬業界、大手監査法人、EC業界、様々な業界でAI受託開発事業を運営。

概要

(1)コンペの背景

 ここ数年、精密医療、より具体的には、遺伝子検査がどのようにがんのような病気の治療法を混乱させていくのかということについて、多くのことが言われてきた。しかし、大量の手作業が要求されるために、このようなことはまだ部分的にしか起きていない。メモリアル・スローン・ケッタリングがんセンター(MKCC:Memorial Sloan Kettering Cancer Center)は、個人に合った医療のポテンシャルを最大限に引き出すためコンペの参加者の協力を必要としているため、NIPS(Neural Information Processing Systems conference) 2017 Competition Trackに認められたこのコンペを立ち上げた。

 一度配列が決定されると、がん主要には何千もの遺伝子変異がある可能性がある。しかし、腫瘍の成長に寄与する突然変異(ドライバー)と無関係な突然変異(パッセンジャー)を区別することが課題となっている。

 現在、遺伝子変異がどちらの変異であるかの判断は手作業で行われている。これは、臨床病理医が、文章で書かれた臨床文献に基づいて一つ一つの遺伝子変異を手作業で調査し分類しなければならない、非常に時間のかかる作業である。

 MKSCCはこのコンペのために、世界的な研究者や主要学者が手作業で何千もの突然変異をタグ付け(アノテーション)した、専門家による知識の基盤を提供している。

 この知識基盤を基準として、遺伝的変異を自動的に分類する機械学習アルゴリズムを開発するために、コンペ参加者の助けを必要としている。

(2)評価指標

 提出物は、予測された確率と観測された目標との間のMulti-Class Log Lossで評価する。

 テストセットの各IDについて、異なるクラスに分類される遺伝子変異の、クラスそれぞれについて確率を予測しなければならない。提出ファイルは、ヘッダー(IDとclass1〜9から成る)と各クラスの予測値から構成される。

周辺技術・知識

(1)LogLoss

 完璧なモデルではLog Lossは0になり、予測値が正解ラベルから離れるほどLog Lossは1に近づく。例えば、2値分類で予測の確率値(0~1の間の値をとる)が、0.5付近の値が多いとLog Lossの値は1に近づき、0と1に綺麗に分かれるとLog Lossは0に近づく。

(2)ドライバー遺伝子とパッセンジャー遺伝子

 がん遺伝子・がん抑制遺伝子といった、がんの発生・進展において直接的に重要な役割を果たす遺伝子をドライバー遺伝子と呼ぶ。がんの発生過程においては、ゲノム変異が起こりやすい状態となるため、がんの発生には無関係な遺伝子にもランダムに変異が起こることが知られており、それを背景変異、あるいはパッセンジャー遺伝子と呼ぶ。

(3)アノテーション

 アノテーションはテキストや音声、画像などあらゆる形態のデータにタグを付ける作業のことである。機械学習アルゴリズムはタグが付いたデータを取り込むことで、パターンを認識できるようになる。そのためAI開発者は、機械学習アルゴリズムを学習させるために、タグが付いた状態のデータを用意することが必須となる。正確にタグ付けできていないデータを取り込んでも、AIは正しく学習できない。そのため、アノテーションは機械学習における、不可欠な前処理といえる。

(4)ストップワード

 自然言語を処理するにあたって一般的であるなどの理由で処理対象外とする単語のこと。たとえば検索エンジンは、一般的な単語である”the” “a” “for”などをストップワードとして扱い、検索の対象外にしている。

EDA(Explanatory Data Analysis 探索的データ解析)

(1)データについて

 ドライバー遺伝子とパッセンジャー遺伝子を分類するのがタスクである。データは4つのファイルから構成され、2つのcsvファイルと2つのtextファイルである。

・csvファイル 突然変異を評価したクラスが含まれている。特徴量はGene(突然変異がある特徴的な遺伝子)とVariation(突然変異の性質)である。テストデータにはもちろんクラスの情報はなく、予測する対象である。訓練データとテストデータはお互いにIDで相互につながっている。

・テキストファイル 専門家が手動で突然変異をクラス分けするにあたり使用した証拠の広範な記述を含んでいる。

 テキスト情報は突然変異の分類において重要な鍵を握っている。

(2)データテーブルについて

テーブルの概観

 訓練データには3321個のIDがあり、264のGeneと2996のVariationを含んでいる。整数で表現された9つのクラスがある。

GeneとVariationの特徴量は、様々な長さの文字列を含んでいる。

 訓練データよりもテストデータの方が70%多い。これは、データの説明によると、テストデータの一部は手動のラベリングを防ぐために機械で生成されたものであるせいである。

 欠損値はない。

 訓練データとテストデータで、最も出現頻度の高いGeneは異なっている。さらに、テストデータは訓練データより著しく多様なGeneを含み、また、高頻度のGeneは少ないようである。ある程度は、テストデータに追加された、機械生成のデータの影響かもしれない(多くの異なるランダムなレベルのデータを追加しているため)。これにより、頻度の違いは訓練データに対する有効なテストデータの真の割合を反映している可能性がある。

 対照的に、訓練データとテストデータで最も出現頻度の高いVariationはほぼ同じである。しかし、対応する出現頻度は、5〜10のファクターでテストデータの方が低い。

(3)テキストファイルについて

データの概観

 テキストファイルは、科学論文や議事録のようなものから抜きだしたたくさんの文章を含んでいる。分類の基準となる出版物のデータの集まりのようだ。どのキーワードが重要で、どのキーワードが重要でないかを判断するためには、分野の知識が少しでも役に立つのではないかと思われる。

データのクリーニングと準備

 初期の調査でわかったテキストの特性、人工物、全体的な特性を集約する。

科学用語とストップワード:ほとんどの科学論文は、合理的に同質な書き方をされている。「結論」「議論」などの言葉は頻繁に使われる。

研究分野に関連したストップワード: あまりにも色々なところに現れるがゆえに、本当に興味深い単語を覆い隠してしまうような語もストップワードに含めるのも選択肢の一つである。「突然変異」、「癌」、「腫瘍」などの言葉は一般的すぎて、ここではあまり区別に使えないように思われる。

紙の表記のクセ:紙に書かれたテキストをそのまま変換すると多くの問題が起きる。ひとつひとつは大きな影響がないが、合わさると分析の正確さを損なう。

引用番号は対応する単語に付けられている。

時々、”SectionNext “のようなウェブページのナビゲーションコマンドのようなものがテキストに埋め込まれていることがある。

著者名と所属が含まれている場合がある。

特徴量エンジニアリング

以下の3つの特徴量が考えられる。

・テキストの長さ:個々のクラスのテキストの長さの分布において、見かけ上の複数のピークが、臨床的証拠を構成する論文の数に対応しているのではないかと推測される。

・テキストの欠落:一部のサンプルからテキストが欠落している

・キーワードの出現頻度

(4)tidytextを用いた分析

tidy textフォーマットは、行ごとに1つのトークンを持つ表として定義されている。トークンはテキスト内の1単語や意味を持つ単位のことである。tidy textを通して、tidyverseの強力なツールを使ってテキストファイルを処理したり分析したりすることができる。

 テキストデータをtidyの形式で取得するために、unnset_tokensツールを使用する。これは句読点を取り除き、すべてを小文字に変換することも行う。

 tidytextパッケージは”and”や”next”のようなストップワードの辞書も含んでおり、これらは取り除いて問題ないものである。加えて、科学論文に特有のストップワードを定義することができる。たとえば、”fig”や”author”などである。

(5)TF-IDF分析

 TFはテキストにおける、用語の出現頻度を表している。ストップワードのリストは、疑問点に影響を与えない頻出単語(”and”や”the”など)を取り除くのに使うことができる。

 IDFは逆文書頻度のことである。文書(このコンペではテキストデータ全体)にあまり出てこない単語をより重視する。

 TFとIDFをかけ合わせるとTF-IDFとなる。この値が大きいほど、その単語が各クラスを特徴付けるものだと言える。

(6)n-gram

 個々の単語の出現頻度を調べるのと同様のやり方で、同時に現れる単語のグループの特性を知ることができる。これにより、特定の文書内の単語の間の関係がわかる。

 tidytextやそのほかのツールは、n-gramという概念を用いている。ここで、nとはグループとして扱いたい隣接した単語の数である。たとえば、bigramは2つの単語のペアである。こういった組み合わせの全てを個々の単語と同じように扱うことができる。

参考url

NIPSがNeurIPSへ略称の変更を実施

機械学習でLog Lossとは何か

第20回 ドライバー遺伝子とパッセンジャー遺伝子

AI開発でよく耳にする「アノテーション」とは?

Personalised Medicine – EDA with tidy R

ストップワード とは 意味/解説/説明 【stop words】

TF-IDFで文書内の単語の重み付け

自然言語処理に出てくるn-gramとはなに?