19 12 2020 bioinformatics Tweet
人工知能でゲノミクスをというプレスリリースでちょっとよくわからないことがあるのでメモ
最後の方の「図1 変数ベクトルxを変換Tで行列に変換する全体像と変換の具体的な手順」のところで1-aの具体的な手順としてtSNE/kPCAが提案されているが、これがよく理解できていない。
人工知能でゲノミクスを | 理化学研究所。これの図のところで、1検体ごとの高次元データをtSNE/kPCRにかけるところが分からない。ドットは何をあらわすのでしょうか? https://t.co/QA6d3ttXeY
— kzfm (@fmkz___) August 7, 2019
例えば化合物ライブラリの例だとそれぞれの化合物は2048次元の特徴ベクトル(フィンガープリント)を持つ。ただし二次元空間にマップされるのはそれぞれの化合物であって特徴(feature)ではない。
1-bで特徴がマップされるためには特徴自体が多次元ベクトルを持つ必要がある。同僚にN回測定のサンプルなんじゃないの?って言われたけど、それだったら平均とって終わりじゃない?ってことになった。
仮にGeneをマップしようとするばあいnサンプルを転置してベクトルにすればいいけどその場合は「訓練」「バリデーション」「テスト」にそれぞれtSNE画像ができてよくわからんことになる。
それから200x200の画像に変換するってあるんだけどデータの遺伝子が60483あるので、ピクセルに一つ一つに対応させても2万遺伝子くらいあふれるよなーと。黒く塗り潰されるか遺伝子の位置が重なって情報欠損すると思うんだけどそのあたりもよくわからん。
実装眺めるしかないなーとCode AvailabilityからURLたどって探したんだけど見つけることができなかった。
追記: コードがダウンロードできました 2019.08.09
http://www.alok-ai-lab.com/materials.php
のDeepInsight Package DeepInsight_Pkg.tar.gzだそうです。
実装はMatlabだったので手元で動かすことはできませんが、コードを読んでみました。
Cart2Pixel.mの3行目
% Q.data should be in no_of_genes x no_of_samples format
で、実際に50行目あたりで
Y=tsne(Q.data,'Algorithm','exact','Distance',Q.Dist);
となっているのでやっぱりtSNEのドットはサンプルか(転置した場合)遺伝子を表現していていて、「訓練」「バリデーション」「テスト」にそれぞれtSNE画像ができるような気がします。
2020.12.19 追記
videoとコードを読んで理解した。
まずfeature vectorを転置すれば確かに良かった。1-bのそれぞれのドットが特徴のデカルト座標を表すことになるということは理解した。ただし、その後のピクセル化はちょっと恣意的に選び過ぎな気がするというか精度がそのプロセスに依存するような気がする。
遺伝子発現の場合、似たような発現プロファイルの遺伝子(特徴)を集めるという教師なし学習を予めおこなっておいて、その結果にCNNをおこなうってことの意味がまだ良くわかっていない。これでいいんだったらNMFで得られたメタ遺伝子を使ったモデル学習でもよろしいような気がするが?