Chol-Gyu / joint_research

0 stars 0 forks source link

藤田研 #1

Open Chol-Gyu opened 3 years ago

Chol-Gyu commented 3 years ago

4月14日 今日やること DockerとJupyterの環境構築 (その上で)井上さんのプログラムを動かす 動いたらMerge request Okってする

→うまく動かなかったからnotebookをpushして井上さんに明日相談するかな そこからやな

https://github.com/blakeliu/awesome-cell-detection-segmentation にいろいろ論文とか載ってる

Chol-Gyu commented 3 years ago

4月15日 いろいろうまくいかないから井上さんに相談

まずお作法として先にイシューを作ってブランチを切るってイメージ

New issueで作ってタイトル入れて 簡単に書ける修飾した書き方 →Create issueで作成

こっからブランチを作成→Create merge request→request merge and branch→develop イシュー番号をコミットメッセージにつける

Branchの設定がうまくいかないかったからnotebookがダウンロードできてない! 問題はPCにあった.gitが悪さをしていた

chol@ritetsukinoMacBook-Pro Gitlab % git branch -r        origin/master と出てきた 本当ならdevelopmentにならなきゃならんかっったのに。。。

調べてみたら

chol@ritetsukinoMacBook-Pro ~ % ls -a .   .ipython  Documents ..   .jupyter  Downloads .CFUserTextEncoding .matplotlib  Library .DS_Store  .pre-commit-config.yaml Movies .Trash   .pyenv   Music .aws   .python-version  Pictures .bash_history  .python_history  Public .cache   .ssh   cell-competition .docker   .venv   copy .dropbox  .viminfo  getting-started .esets   .vscode   poetry.lock .git   .zsh_history  pyproject.toml .gitconfig  .zshrc .ipynb_checkpoints Desktop

の中の.gitが悪さをしている模様

なので、

chol@ritetsukinoMacBook-Pro ~ % mkdir project  chol@ritetsukinoMacBook-Pro ~ % cd project chol@ritetsukinoMacBook-Pro project % git branch

    try commit

commit bca5e1782011509e8a4a2f7ca5f22a2035eea90b Author: cholgyu.lee.hacarus chol@ritetsukinoMacBook-Pro.local Date:   Wed Apr 14 12:51:12 2021 +0900

    first commit chol@ritetsukinoMacBook-Pro ~ % rm .git rm: .git: is a directory

chol@ritetsukinoMacBook-Pro ~ % rm -r .git override r--r--r--  chol/staff for .git/objects/61/c0f55eefdb2f0992841acca7f78adda348990a? ^C chol@ritetsukinoMacBook-Pro ~ % rm -rf .git

で.gitを消去

chol@ritetsukinoMacBook-Pro ~ % git branch fatal: not a git repository (or any of the parent directories): .git

chol@ritetsukinoMacBook-Pro ~ % cd project chol@ritetsukinoMacBook-Pro project % git clone git@gitlab.com:hacarus/ai-drug-discovery/ku-fujitalab/cell-competition.git Cloning into 'cell-competition'... remote: Enumerating objects: 47, done. remote: Counting objects: 100% (47/47), done. remote: Compressing objects: 100% (31/31), done. remote: Total 47 (delta 14), reused 33 (delta 8), pack-reused 0 Receiving objects: 100% (47/47), 3.63 MiB | 1.75 MiB/s, done. Resolving deltas: 100% (14/14), done.

chol@ritetsukinoMacBook-Pro project % ls cell-competition

chol@ritetsukinoMacBook-Pro project % cd cell-competition

chol@ritetsukinoMacBook-Pro cell-competition % ls Dockerfile  pyproject.toml build_docker.sh  start_notebook.sh

 #branchをdevelopに変更 chol@ritetsukinoMacBook-Pro cell-competition % git branch

 #branchをdevelopに変更 chol@ritetsukinoMacBook-Pro cell-competition % git branch -r     origin/1-implement-cell-tracking-algorithm   origin/HEAD -> origin/develop   origin/Lee_checked   origin/develop   origin/master

 #branchを1-implement-cell-tracking-algorithmに変更 chol@ritetsukinoMacBook-Pro cell-competition % git checkout 1-implement-cell-tracking-algorithm Branch '1-implement-cell-tracking-algorithm' set up to track remote branch '1-implement-cell-tracking-algorithm' from 'origin'. Switched to a new branch '1-implement-cell-tracking-algorithm'

Branchの確認

chol@ritetsukinoMacBook-Pro cell-competition % git branch

やって手に入った ブランチを設定せないかんのや、大変

とりあえずこれでOk ここからnotebookで

Chol-Gyu commented 3 years ago

4月16日 いきなりインターン生を取る!?ワイが支持するん? 細胞競合プロジェクトで何を俺は教えればいいんか? 横山晃士さんと一緒にやる 今日は18時までなので動画を見て用語を理解してもらう

Submoduleがから問題 これで解決? http://dqn.sakusakutto.jp/2013/06/git_submodule_empty_directory.html READMEに書いておく?

Kitoraさんからワイもcell image analysisの説明ができるようにと まだ何も動かせないのに。。。 とりあえず読んでいろいろ理解しておく ・watershedセグメンテーション →中心からの距離をなんとなく決めてセグメンテーション、ある程度バッファーをもたすけど広いと大変。。。 ・KL divergence、辞書学習 ・エルボー法

流れ:異常検知(コントロールと比べて何がどれぐらい変化したか)を使った 特徴量の抽出にはscikit-imageを用いた 異常検知モデルとしては主成分、分散分析、近傍法の3つで行った。

画像解析でやることは ⒈ 細胞の検出、セグメンテーション

  1. 特徴量の抽出(KL divergence, 辞書学習など、どれを特徴量とするかは要検討)

工数管理の話は知らん プロジェクトシートを作成してそれでやったこととかを管理する 期間で管理&工数管理でどうやるか。。。難しいね ま、工数管理してもいいと思うけどね やってまた修正しての繰り返しで なんとなくの予定でいいんなら。 どうせわからんのやから

Chol-Gyu commented 3 years ago

4月16日 インターンとの打ち合わせ もうちょっと細胞競合の論文を読んでおこう 10枚まとめて撮ってる ラベルごとにバックワード→次の時点から前の時点を眺める かぶってる面積で選んでる→重心で選ぶよりも正確?重なりがなかったら消す もっとロバストでスマートな方法:パーティクルフィルタ、カルマンフィルタ? パーティクルフィルタは時間がかかるみたい Pythonで作ったから高速化の余地がある 井上さんはJuliaで作った

Caが発火した時にどんな挙動してるのか? →発火してない時の挙動とどう異なるか? →みんなが知らないところに気づいて欲しい

Chol-Gyu commented 3 years ago

4月20日 意外と時間がない 6月までに特徴量を終わらせるには4月中に追跡とかできな インターンも週1とか2だからあまり成果も期待できない 俺が指導できるようにならな 特徴量抽出ぐらいは。。。 相談してみるかな、西村さんに 今日である程度できるようになっておきたい

Ca waveが起こってる=必ず反応が起こってるん? ここをまず判定する必要がある? LOFとかでCa waveに応答する細胞と応答しない細胞を分ける必要もある? Ca waveの濃度の微妙な濃度の違いで出てくる?

とりあえず特徴量の抽出(形態だけから)はできた 井上さんのやつを転用しただけやけど これをCa waveに使うにはどうするか? 蛍光の強さ(輝度)と関連する特徴を抽出するってことだよな 蛍光の強さで(輝度)スクリーニングかけて できれば強さと相関する要因みたいなのを出してきたいけどね どうすればできるんやろ。。。 特徴量抽出

Chol-Gyu commented 3 years ago

4月21日 午後は特徴量抽出について相談 →西村さんに相談しても反応は薄く。。。やっぱり全部井上さんの力か。。。大変だな と言うことで、井上さんに助けを求めることに

基本的にはskimage.measure.regionprops をやってる →これをデータフレームに落とし込むための手立て 1つのラベル領域に対応するエリアを返してくれる プロパティとして特徴量を返してくれる ここで定義されてる特徴量をとってくる

核と細胞質の形状を取ってきたい→四次元の特徴量を撮りたい→二次元に落とすために Cache→指定した特徴量を計算するかどうか separator→prefix-suffixを渡した時の区切り文字 PROPS shape:全部 Propps intensity:蛍光

Shapeからintensityを引くことで

酒豪演算で言う差→shape-intensity 渡したintensityの中で元もの持っているのも飲みを抽出 Decorate label:どう言う

ラベルが2つある→核小隊をとる→

Datafreme→この後全部合体させる→Prefix_suffixが生きてくるイメージ 要らないのを落として重要なのを選抜してくる Mean.intensityをとってそこから考える感じかな

発火頻度が高いものと面積を関連させる? Caと他のシグナルはタイムスケールが違う→そこをどう高yロスるか? 発火した時に細胞がどうなってるかとか?

独立生物分析?(アルファベット三文字ぐらい?) いろんな特徴量を作って関係ありそうな変数をLassoに入れる? 発火現象はスパースなのでスパースモデリングがしやすい? 発火した時刻をどう撮るか? 発火タイミング&空間的(隣接してるかどうか)、 グループ分け:発火頻度でグループ分けできるかとか、近傍の細胞で集まってるか→まずはラフに見てみてかな

あとは仮説をどう立てるか? ・Ca waveで

技術的難点:カルシウムスパークは一瞬で起こるので、観察されないからといって起きていないとは言い切れない

NOTE:

発火する前後の周囲の細胞の特徴量を学習してみる 核、輪郭(membrane)を染めることはおそらく可能 →まずはここからはじめてみる →動画をみて、何ができそうか、どんな特徴量を取れそうか議論

Ca waveだと現象は抑えられてるし、なんとなくメカニズムもわかってる →次はCa スパーク(局所的なCaの発現) →そうするとまずはCa Waveと同じところを追うのがセオリーか、あとはそれに伴う細胞形態のとことか 何を知りたいのか?Caのスパークで周辺細胞が変わるか? どうもCaが起こってる細胞とそうでない細胞が分かれるっぽい?→ここら辺をターゲットにして特徴量を見つけてもいいかもね 全てを網羅しようとせずにまずは少数から すごく光ってるとこと絶対光らないとこを分類してそこから見てみる? タイムスケールをどうするかは考えましょう。。。

でも今日は井上さんとの相談&説明で色々理解できた、ありがとう井上さん

Chol-Gyu commented 3 years ago

4月22日 4月22日 細胞の移動まで追う? 論文では頂点の移動距離と角度を調べてる Caスパークで細胞の形態や蛍光変化がだけじゃなく移動も調べられる? TRPC1はCa透化型の陽イオンチャンネル これをノックダウンするとCa waveは起こるけど細胞競合(細胞の移動)は起こらない Caは核周囲性アクチンの蓄積を促進するらしい これはINF2-KOで抑えられる

そうすると我々は何を見たいんだ? 自動定量?あるいは未知の形質の解明? Caスパークが起こった細胞の周辺で何が起こっているか? Ca waveである程度わかってるんやないん? それをスパークで見る意味とは? より詳細な現象を見たい?

先生が興味あること Ca発火の前後で上皮で何が起こっているか?

Caスパークの機能的な意義が知りたい →これにより何が起きるか? Caスパークはどうやって誘導されているか? →TRPC1以外で Caスパークの前後も追う?

Caの発火頻度と移動距離を同時にモニタリングしこれらを連携する? Caスパーキングの意味&発生メカニズム? Caスパーキングの画像、核とアクチンを染めた画像を渡すからここから何かわからないか?って言うのが疑問点。。。これかなり大変やね。。。

そうするとアプローチとしては ・Caの定量を追う → してる細胞とそうじゃない細胞で分けてもいい → イメージとしては横軸時間、縦軸intensityとかでギザギザグラフを作りたい → 域値を作ってピークに達した時がCaスパークが起きた時と仮定する? → それでまず蛍光を示した細胞を検出

その細胞の周辺(隣接)細胞を追跡する ・セグメンテーションと追跡のとこが問題? → ippeiさんが自動の追跡プログラムを作ってくれた? → マウスで押せば細胞ごとにトラッキングしてくれるみたい → 来週、井上さん、横山さん、一平さんを含めて相談しよう → 何が問題でどう解決するかって相談する ・井上さん:もっと早くしたい、分裂細胞も追いたい、たぶんもっとやりたいこともある ・横山さん:Caの定量をしたい、そのためにはcell trackingが重要 ・一平さん:クリックするだけでcell trackingをする技術を開発してくれた、細胞分裂にも対応? → これってどういう形式で出力されるのか? → このcell-trackingで経時的に変化した特徴量を捕まえられる? →時間のスパンは? Caスパークは数μ秒

→ここから特徴量(最悪intensityだけでも抽出できる?) →最終的にはそこから特徴量を抽出する

Chol-Gyu commented 3 years ago

4月26日 4月26日 本日、井上さん、一平さん、横山さんと打ち合わせ 現状の理解と今後の進め方 Trackingは一平さんの方法でOK? Trackingがわかればその後の蛍光追跡につながる?

トラッキングの前提があって 一平:井上さんが用意したきれいにセグメンテーションが用意されているものを 横山:トラッキングできてるだけで、1つ1つの細胞の特徴量を取り出せない 井上:ラベルの領域は取れる、skit-imageで取れる、自分で定義した特徴量を取れる 横山:時系列として外に取り出させるプログラムがない → 画像1枚ごとに定量する→現在与えられているラベルと前回のラベルを特徴量として吐き出す→ それをどうやって統合的に吐き出すか? → 認識したラベル事態を書き換えているので問題ない?同じ番号を追いかければ問題ない? 特徴量の時系列データが欲しい →一番楽なのはjsonファイルに落とす →もしくはcsv 時系列データまではこっちでおK? →その後は向こうでやる?ここら辺は聞いてみないとね →井上さんに次のミーティングについても聞いておく?

教師なしセグメンテーション https://colab.research.google.com/drive/1YmhX6zQtCV_uBZWJy5B9bXw0-m95-vQQ?usp=sharing#scrollTo=zT8fOqDJPW3s ランダム確率論をベースにした逐次最適化 → これが細胞のセグメンテーションに使える? → 前処理をせずにセグメンテーションがうまくいく? → もっとぼかしたらうまくいきそう? DenceCRF.ipynb → パラメーターとしてはKernelを変える、Kernelのパラメーターを変える, バイラテラルとがウシアンを合わせたような式をしてる → これがあれば一平さんの作ったトラッキングもいらなくなるかもしれない。。。 画像はぼかした方がうまくいくんか?ガウシアンフィルターみたいに? 前処理をしなくてうまくいってるから、前処理をしたらもっとうまくいきそう フィルター処理とかレジストレーション処理とか ここら辺は勉強しよう

あとは俺がより良い方法があるんなら提案した方がいいかも 井上さんもそこまで論文をチェックしてるわけではなさそうだから

自分よりちょっと上の人かな pythonのコードはpre-commitを使ってコーディング規約をまもってもらおう →これを見ながら書き方を勉強するのがいいかな IDEの機能を使って書く?flake8?mypy?こういうのに使い慣れるといいね

写経するのが一番かな? あとはAtcoder https://atcoder.jp/?lang=ja

Chol-Gyu commented 3 years ago

5月12日 核のラベルをして、それを拡張してアクチンを見る → そういうやり方もあるよねー → Ca2+に関しては細胞質を取るのにSiR Actin細胞境界を取るためだけに光らせてる → ここらへんは一平さん&横山さんに相談しながらすすめるか → 早めにミーティングを設定してやりましょう(先方に確認して) → メールは送ったよ、さあどうなるかな、来週がいいな → こういうときは得てして今週になるんよな。。。忙しいときに。。。 ま、ええけど、あいさつと進捗共有ぐらいやし ミーティングの日が決まったらあらためて論文読んで目的考えとくか。 →5月17日にミーティング決定!それまでスライド作って論文読んで改めてどう進行するか、どうやりたいかを

Chol-Gyu commented 3 years ago

5月14日 スライド作成 https://docs.google.com/presentation/d/158MbzRFIyrFxWQqJYYaLKpt6IIZ71LOMdaaMfXsujA8/edit

Chol-Gyu commented 3 years ago

5月17日 藤田先生とミーティング 議事録はこちら https://docs.google.com/document/d/1_QTS5nDDwFZzpIDZgimUhRvuDbQxnx2j_d8Ek1AwO9E/edit?usp=drive_web&ouid=113061828729732605589

藤田先生はいい人だった ただいろんな特徴量を取って見たいらしい、結果がネガティブでもポジティブでもいい 何をしても論文にはなる?IFとかはあまり気にしない?

先方が見たいところ ・Caスパークが起こる前後で何が変わるか? ・Caスパークが起こると核膜周囲に蓄積するタンパク質がある?核の周囲やサイズに変更がありそう 時間 ・長い時間、短い時間の両方で見たい Caスパークが起こるとこで100%起こる現象ではない 傾向が見れてもいい、3割、4割で見れてもいい もしくは蛍光のパターン(?)に応じて細胞を分類するイメージ? → 時系列データの正規化パターンをいくつか考える? → 発火頻度とか波形にパターンが有る→クラスタリングする? 正規化の仕方にも結構ある → ピークの01で正規化するか?波形に意味があるか?乖離度が重要=標準化? 面積が効いてる?→AUCを見ていく?

形態特徴量とCaスパークとの対応(クラスタリング後でもいい) → いくつかパターンを用意して特徴量を取って見てみる → この成果を持って再ディスカッション(〜6月中?) ここでやりましょう https://gitlab.com/hacarus/external/ai-drug-discovery/ku-fujitalab/cell-competition/-/issues/5

Chol-Gyu commented 3 years ago

Sickit-imageを使って特徴量を抽出する https://github.com/andrefnb/cell_image_clustering https://scipy-lectures.org/packages/scikit-image/index.html https://uguisu.skr.jp/Windows/python_opencv1.html https://qiita.com/hitomatagi/items/caac014b7ab246faf6b1 https://qiita.com/hitomatagi/items/2c3a2bfefe73ab5c86a4 https://qiita.com/yuko1658/items/871df86f99a9134cc9ef https://japan-medical-ai.github.io/medical-ai-course-materials/notebooks/06_Blood_Cell_Detection.html https://jp.mathworks.com/discovery/image-algorithm.html https://qiita.com/KI1208/items/e27f827bac8654c9adcc ↑のtsfreshっていうのが使える?

Chol-Gyu commented 3 years ago

5月19日 清水建設の検討 機械学習とか細胞間距離を出す以前の問題 細胞の認識自体がうまくいっていない可能性がある 画像解析をメインに提案したほうがいい?

→糸井さんに相談 → 画像の前処理&コンサル案件になりそう

Chol-Gyu commented 3 years ago

5月24日 Dx-hotlineはほぼ解決? あとは向こうに任せましょう 清水建設はこっちでできるように作っとく

ということで、いろいろ試したけどいまいち。。。 背景削除はRolling ballを試したけどうまく行かないっぽい ガウシアンフィルターのやつとかCannyとかでエッジ抽出を試みるもうーん。。。 ガウシアンが少しいいか? Cannyはいまいち 普通にObject detectionで行く? Bolb detectionとか? 井上さんのCore seriesとかでもいいかも

岩尾さんと面談 俺はかなり余裕を持ってもらってるから今のうちに色々できるようにならんと 新しい案件もそんなにないし まずはDx-hotlineと清水建設に注力 これが終わったら次ね あとはビジネスの流れも掴んどいてって お客からの案件をどういう形でお金儲けに持っていくか、どこでお金を回収するか 確かにこういうビジネス的なところは勉強になるな 一連の流れを理解しておこう

Chol-Gyu commented 3 years ago

今日はDx-hotlineの対応&清水建設用の画像処理 Dx-hotlineのアプローチは ・背景画像を抜いて行う=ハローだけを抜き出す ・前処理を行う=ノイズ除去 というほぼ正解アプローチだった これはいい自信になりますわね あとは清水建設のやつ 特徴的平滑化→Morphology gradientでうまくいきそう このあと二値化をすれば細胞の認識はどうにかなりそう? あるいは大きさで判断する? ガンマ値補正を行って画像を明るくして二値化? やってみて考えよう にしてもRollin ballは時間がかかるなー なんか別の方法ないかな?

結局、二値化してもうまくいかず。。。 やっぱり細胞の分離が難しそう これは大きさでセグメンテーションしたほうが良さそうだ Mask-RCNNが使えそう?明日はこれにチャレンジ https://horomary.hatenablog.com/entry/2019/07/28/124000 https://qiita.com/shtmr/items/4283c851bc3d9721ed96

Chol-Gyu commented 3 years ago

今日はMask-RCNNを使ってみるのと、画像のアノテーションもやってみる あとオレは画像診断とかの技術を買われたんじゃなくて、バイオメイン 共同研究とか創薬のところで活躍できればええんやろ そう考えたら今の仕事も頑張るけど、その後を見据える必要がある ・日本新薬案件 タイムスケールで微生物の増殖を見たいらしい → それなら細胞をセグメンテーションして、元の位置を出して、そこから面積を割り出せばいい → そこまでトラッキングにこだわることではないね

ミーティング終了。。。 なんというか全然だめだった。。。 相手の話にもついていけないし、プレゼンもいまいちだったし。。。 まだペースが掴めんな。。。 早くなれないと。。。

あとRCNNだけど mport mrcnn.model as modellibで AttributeError: module 'keras.utils.generic_utils' has no attribute 'populate_dict_with_module_objects' というエラーが出て動かない。。。

Chol-Gyu commented 3 years ago

CVATやMRCNNがうまく入らん、なんでや。。。 まずはcvatからやな これでちゃんとアノテーションができるようになればいいね そしたらいろいろ進むのに。。。

ということで、アノテーションソフトはVoTTに変更 アノテーションを付けたjsonファイルを付けることは完了 次にここからアノテーション画像を取り出し、領域分割をして、セマンテックセグメンテーションにかけて、学習させる=ここはrcnnでいく この流れで行きましょう、 何がやりやすいかは画像を見せた上で岩尾さんに相談 明日にでも相談しよう

Chol-Gyu commented 3 years ago

岩尾さんと相談 画像解析だけでも行ける? 一般的なやり方はこうですとアドバイス、お客さんには自分で手を動かしてもらう

方針としては 1.個々で細胞認識するか? 背景ムラ補正、平滑化→しきい値or収縮で2つに分ける→分水嶺? 細胞間距離を出すんなら細胞1つ1つを認識しなきゃいけない X-coreに入れてみたけどうまくいかなかった→カスタマイズが必要 個々の細胞認識→ラベルを付ける? →このあとにつなげるんならこれがいい?

2.大きめのパッチで考えるか? 細胞より大きめのパッチで切ってパッチ内の平均(&分散)輝度とか調べる? →面積とか密度は輝度と関連するって仮説を考える?

3.アノテーションした結果と相関のある指標を探すか? 細胞1つ1つをアノテーションしてその細胞の個数や面積と関連する指標を出す?

→契約前だから全てのネタを出すのではなく小出しに

Chol-Gyu commented 3 years ago

いろんな事ができるようになりたいけどまずはPrePoCぐらいできるようにならんとな そのためには画像処理の方法を一通りできとく必要がある。 ・識別:これは何か? ・物体検知:この犬はどこにいるか? ・セグメンテーション ・回帰:この犬は何歳か? ・生成

まずは識別、物体検知、セグメンテーション ・セグメンテーション 1)セマンテックセグメンテーション ・ラベル付け(CVAT)の導入、使い方 ・U-Net&SegNetの使い方 https://keras.io/examples/vision/oxford_pets_image_segmentation/ ・パッチに切って特徴量を抽出してセグメンテーション ・細胞ならcellposeが使えそう→ちょっとcellposeをいじってみる https://colab.research.google.com/github/MouseLand/cellpose/blob/master/notebooks/run_cellpose_GPU.ipynb#scrollTo=hG3LSmJmLylT

2)識別&物体検知(異常検知?) ・RCNN ・MRCCN ・GAN、HoG、RCNN、YOLO https://qiita.com/mshinoda88/items/9770ee671ea27f2c81a9 ・識別はラベルを付けて機械学習で識別? ・物体検知は異常検知とも一緒?:GANとか? https://qiita.com/shinmura0

3)非機械学習で画像処理 ・スーパーピクセルの分割の仕方 https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_segmentations.html ・二値化、輪郭抽出、SuperPixel、閾値による分類(k-means, t-SNE、PCAなど) https://namonakihito.hatenablog.com/entry/2018/08/28/155306 ・照明ムラ補正 https://waku-take-a.github.io/%25E8%2583%258C%25E6%2599%25AF%25E9%2599%25A4%25E5%258E%25BB%25E3%2581%25AB%25E3%2581%25A4%25E3%2581%2584%25E3%2581%25A6.html https://qiita.com/kawai_mizugorou/items/98636fab2d6efe25349f https://algorithm.joho.info/programming/python/numpy-ifft-lowpass-denoise/ https://scikit-image.org/docs/stable/auto_examples/segmentation/plot_rolling_ball.html いろんなネタを持っておかな

Chol-Gyu commented 3 years ago

週末にダウンロードした本を読んでDockerとGitについて理解する

Chol-Gyu commented 3 years ago

cellposeを動かすとこでエラーが virtualenvwrapperっていうのが必要らしいんやけどうまくインストールできない virtualenvwrapperが入ってるファイルがみつからない、↓のらしいんやけど。。。 source: no such file or directory: /usr/local/bin/virtualenvwrapper.sh 仕方ないからcellposeは一旦保留 最悪、GUIからでも動かせるし http://www.cellpose.org 別の方法を試す ちゅーこって、午後はdockerとかgitをかを理解して構築する。 & 清水建設の戦略を練る 背景ムラ補正、平滑化→しきい値or収縮で2つに分ける→分水嶺? まずはここからやってみる?

Chol-Gyu commented 3 years ago

清水建設の件を再考 明日は先方を否定しないように注意深く 現状でもいいけど、もう少し良い方法を我々と作れるはずとか言いながらうまく誘導する。 細胞の検出のところは我々の得意とするところ。 自動で均一、不均一の判定、コンフルエンシーの測定など 一度画像データやコードを見させていただければ適切なアドバイスができる。 これを参考にしてる? https://japan-medical-ai.github.io/medical-ai-course-materials/notebooks/06_Blood_Cell_Detection.html 週1で1時間×4回?文章では無制限

Chol-Gyu commented 3 years ago

今日の作業は背景除去→前処理 ただその後の分割がうまく行かず。。。 二値法でもダメ、セマンテックセグメンテーションでもダメ。。。 やっぱり検出をサイズ&丸を検出するってするか その方法を調べて明日適応 それさえできればどうにかなるんじゃね?

Chol-Gyu commented 3 years ago

横山くんから結果報告 Caスパークと対応する核の特徴量は見られず。。。 核の角度、長径、短径の変化にCaスパークと関連は見られなかった。。。 というか、、Caスパーク前でも起こること、Caスパークが起こってない細胞でも起こってることが多すぎて。。。 それを細胞の個性として捉えるか、あるいは平均して統計解析していいものか。。。 ここらへんは井上さんor藤田先生に相談してみよう 一個一個見ててもらちあかんよな。。。 とりあえずCaの輝度との関連、他の特徴量(面積とか?)、特徴が現れる頻度みたいなのを見てもらって考える。 来週横山さんに作業してもらって、それをまとめてどんな結果が出ようとも藤田先生に相談するか ネガティブだろうがポジティブだろうが そうして次の作戦を考えましょう、うちらで考えても限界だ。

Chol-Gyu commented 3 years ago

Caスパークが起こっていないものについて角度、長径、短径の平均を取る Caスパークが起こったものについて起こる前とあとに分けて、各数値の平均を取る →起こらないもの、起こる前、起こったあとの数値を比較する? →サンプル数に偏りがあるからこれが問題? どういう比較手法を取るのがいいか? ここらへんは相談してみながら決めましょう

Chol-Gyu commented 3 years ago

時系列はこれが使える? https://qiita.com/KI1208/items/e27f827bac8654c9adcc

Chol-Gyu commented 3 years ago

セマンテックセグメンテーションの種類 Fully Convolutional Network(FCN) 全結合層の代わりに畳み込み層を利用 →従来の畳み込みニューラルネットワークのように入力画像のサイズを固定する制約がなくなった。また、全結合層を畳み込み層に置き換えると、クラス分類の結果がヒートマップとして出力されるようになる。 ただマップサイズが小さくなるので情報をが失われるのが問題

SegNet 全結合層の代わりに畳み込み層を利用 FCNよりメモリ効率が高い。 Encoderでpoolingした位置をmax-pooling indexとして記憶しておき、Decoderで特徴マップをそのindex位置にアップサンプリングすることでメモリ効率を高めている。

https://nanonets.com/blog/semantic-image-segmentation-2020/ U-net FCNと一緒で畳み込み層のみで構成 Encoderの各層で出力される特徴マップをDecoderの対応する各層の特徴マップに連結(concatenation)するアプローチを導入した(スキップ接続) SegNetでは、EncoderとDecoderが直列に接続されていたため、特徴が伝搬する過程でpixelディティールが失われてしまい、元の画像に対してSegmentation結果が粗くなりやすい欠点があった。 U-Netでは、Encoderの各層で出力される特徴マップを、Decoderの対応する層の特徴マップに直接連結することでpixelのディティールを補っている。

Dilated畳み込み

Deeplab Dilated畳み込みを使い空間的な次元を減らすことなく、視野を指数関数的に増大することができます。 Atrous/Dilated畳み込みの使用。 atrous空間ピラミッド型プーリング(ASPP)の提案。 完全接続CRFの使用。 ただDilated畳み込みは、数多くの高解像度の特徴マップを利用しなければならないので、計算量が多く、多くのメモリを必要とします。

DeepLab v3 改良版

DenseCRF

Global Convolution Network

Chol-Gyu commented 3 years ago

https://nanonets.com/blog/semantic-image-segmentation-2020/ https://paperswithcode.com/sota/semantic-segmentation-on-cityscapes https://postd.cc/semantic-segmentation-deep-learning-review/ https://cvml-expertguide.net/2020/07/16/semantic-segmenation/

Chol-Gyu commented 3 years ago

課題 ・時系列での変化量をどう定義するか? ・Caスパークの影響をどう定義するか?特に複数ピークの場合→まずはシングルピークで考える ・Caスパークの生データに立ち返ってもらう→弱ピークにも反応? ・ネガコンの扱い方→特に発火が起こっていない細胞で形質が変化してるのをどう考えるか? ・Caピークを見逃してる?→これは今回は考えない ・いくつかのパターンに分けて考えるしか無いね。 藤田先生 or 大木先生かな?

Chol-Gyu commented 3 years ago

昨日考えたことはここに https://gitlab.com/hacarus/external/ai-drug-discovery/ku-fujitalab/cell-competition/-/issues/5 もしかして発火前後100フレームぐらいが重要って発想 前も後も考えて 出口のデータはどうなる? 定量(角度情報の絶対値まで入れた&有意差検定)でいいか、定性(何個中何個に角度が変化した)でいいか? もう少しシングルピークの画像を増やして十分なサンプル量を得る?

Chol-Gyu commented 3 years ago

で、横山さんがやってくれました どうも前後50〜100フレーム以内で変化が起こってるみたい 角度は-45〜36フレーム間で23/33 (69.7 %) 短径/長径は-48.6〜40.8で10/17 (58.8 %) 面積は-43.6〜52.6で11/22 (50 %) そう考えたら悪くないのかもね→重複は考える必要はある ちなみにSingle spark cellは37個 全体で解析した細胞数、Caスパークを起こした細胞数、シングルピークだった細胞数、変化が観察された細胞数(重複を除く)、フレームごとの評価っていう4つの図を作るかね

ここまで出ればええんやけど、今後どうしようかしらね 課題 ・複数ピークをどう考えるか?→短期的なやつに絞ってもいいかもね、100フレーム以内とか →意外と短期で起きる?もしくはフレームは考えない? ・他のパラメーターはないか?→ ・定量的なデータを出す?→変化率とかの平均で? ・ピークがないものをどう考えるか?→まずは定性的に出してもらう?起こった or 起こってないで

Chol-Gyu commented 3 years ago

ネガコンをどう表現するか Caが起こってないサンプルで形態変化が起こったものの割合を出す →それがどれぐらいの頻度で起こっているかで分布を出す →400フレーム中に何回起こったかでクラスター化する →フレーム数は関係ないかな

Chol-Gyu commented 3 years ago

画像は2種類もらってる 1つは横山さんがやってくれてるから、もう1つで俺は試してみる。 アクチンが弱いけど、核とCaが染められてるから問題なし? 練習がてらやってみましょう、うん、意外と動くっぽい

Chol-Gyu commented 3 years ago

横山さんにクラスター分けのことを頼んだ 各特徴量について、ネガコンについて で、最終的にどういうアウトプットにするかを考えながらやってくださいって

Chol-Gyu commented 3 years ago

今日は横やさんのスクリプトを使って別サンプルの解析 →うん、うまくいったっぽいね ただ面積と縦横比の変化が少なそうだが。。。。閾値の問題? 全部のデータをまとめて定性データでいいから見せてみる あとはネガコンも見てみて変化の度合いでクラスタリング→これも横山さんのが使える? そこのパターンを見てまだまだ考えましょう&相談しましょう

Chol-Gyu commented 3 years ago

L1トレンドフィルターの閾値をどうするか? 横山さんは勘で決めたみたい ここに何か根拠がアレばいいね 本来ならCa発火が起こっていないところをバックグラウンドとして、その平均変化率より動いたところを変化点とするのが一般的かな。。。 ネガコンを変化パターンごとにクラスタリングして、各平均変化率、全体の平均変化率を算出 →そこから外れたものを変化点とする? これが理想だけど。。。 ただネガコンの扱いよね、どうするか とりあえずネガコンを変化パターンでクラスタリングしてもらって、そこで考えるか これを最優先でやってもらおう

でもそのためには変化点の定義をする必要がある ここら辺はどう考えるか?

Chol-Gyu commented 3 years ago

ネガコンはそもそもネガコンか問題 Caスパークが起こってない(輪郭は取れるけど) or Ca自体も光ってないやつ どっちがネガコン?両方ネガコン?→これは藤田先生に相談しよう

そもそも閾値を設定する必要はない? Caの挙動を分布にする→ネガコンと比較→結局0点がわからんから無理 Caピークを全て同じと捉えてなんフレームで出るか→いや、これはイマイチやろうね 細胞の挙動については正直良くわからんからここについても藤田先生に相談 どういう解析法にしようかしらね 横山さんにはSir Actinを見てもらっとるけど。。。 あとは核が動くかどうか?それならSir Actin見たほうがいいね

相談事項 ・バックグラウンド(ネガコン)の扱い方→それ次第で閾値も決める ・複数ピークの扱い ・データの示し方→細胞毎のばらつきの考え方 ・論文のストーリーとの整合性→今回は細胞競合を考える必要はない? ・ こんなとこですかね

Chol-Gyu commented 3 years ago

・藤田研はアイデアターゲットを出すのが仕事 → これをもとにどういう創薬ターゲットが作れるか? → 細胞競合を促進する試薬? → Caをぶっかけたら細胞競合は促進する? → RasV12は正常細胞と比べてどこが変異しているのか → rasが過剰発現してるってこと? → それともガン抑制遺伝子が変異? → ガン化した細胞の何かしらを標的として細胞競合を引き起こすような → Caはガン細胞がクロストークするために出してる? → その意義はなにか?増やすため? → それに対して正常細胞は押し出すことで抑制

Chol-Gyu commented 3 years ago

藤田先生のとこと打ち合わせ なんか褒められたよ、良かった、なんかやる気が出たよ

まず誤解から Caスパークが起こってるのは正常細胞、異常細胞は光らない 変異細胞を入れるとCaスパークがより起こって正常細胞に変化が起こる →じゃあCaスパークが起こった細胞だけ見ればいいね、OKです!

やること ・ネガコン(Caスパークなし)で変化が起こっている頻度を調べる(頻度/フレーム) →これがCaスパークが起こったものに比べて低いといいよねって話

・Caスパークが起こったものについて マルチピークは前後100ピークに絞って特徴量の解析 →100以内にある奴らは除外、まずはそういうプログラムを作らんとね →まずはCaスパークが等間隔、あるいは100ピーク以内にあるものを抽出 →密な奴らはよく影響がわからんから除外するか

ネガとポジでやること Sir-Actine染色で調べる →細胞骨格自体を見る、同じ様な感じ

・追加画像の解析も行う。 1.正常細胞だけのもの→でも向こうはあまり気にしてないね 2.RasV12と正常細胞を混ぜたものの画像を増やす→あと数枚あれば良さそうね

データのまとめかた Caスパークの強さと変化の大きさの関係性が統合された定量データになっているところをうまく分けれたらより良い サンプルサイズが著しくことなる場合は定性データだけでは良くない →100サンプルぐらいあればどうにかなるかな、あと画像2〜3枚あれば

AIをどこで使う?特徴量抽出で そうすると特徴量を増やして、Caスパークと関連あるいくつかの特徴量が抽出できればって感じかね。 どういう特徴量を取っていこうかしら…むぅ… 長径と短径の絶対値、

閾値はどうしようね。。。この話し忘れたな。 向こうは勝手に決めてると思ってるんだろうけど。 ネガコンの変化率とポジコンの変化率を出してそこから決めるか それがひとつありよね

てか、これってもしかして論文執筆を俺がする感じ? せめてM&M、Resultsぐらいは書けるよ あとDiscussionはいろんな文献を見つけてからやけど

Chol-Gyu commented 3 years ago

横山さんには細胞質の解析&マルチピークの解析をやってもらおう 俺はその間にネガコンの解析&別画像の解析をやるから こういう分け方にするか とりあえずめっちゃ褒められたことは明日横山さんに伝えよう 感謝も含めて

Chol-Gyu commented 3 years ago

特徴量 Major axis, Minor axis, Area, perimeter, position of center, Eccentricity, Roundness 変形をどう考える?特徴量はフェノタイプ創薬のところから見る 詳しくはこちら /Users/chol/Download/wirth10.pdf

Chol-Gyu commented 3 years ago

とりあえず俺がやること ・ネガコンの変化の頻度→ポジコンと比べよう ・いろんな特徴量を入れて傾向を見てみる 特徴量選択はこれが使える? https://qiita.com/shimopino/items/5fee7504c7acf044a521#step-forward

Chol-Gyu commented 3 years ago

さて今週やることは上の2つ ・まずはネガコンの変化量について →値の取得まではできた、あとはここからどう計算するか? →数値はfor構文で取得、int形式、こいつらから平均を出したいんやが。。。 どうもうまくいかん、どうしようね 縦書きになってるからうまいこと数値のリスト形式にできればそっこーできるんやけどね ・いろんな特徴量 Major axis, Minor axis, Area, perimeter, position of center, Eccentricity (Minor/Major,), Roundness, compactness (perimeter)2/(4π×area), Elongation(Width/length), roundness = 4π×area/(convex perimeter)2, sphericity = Convexity = convex primeter/ perimeter →まだ未検討、今週中に終わらせよう

Chol-Gyu commented 3 years ago

横山さんがまた一晩でやってくれました 複数ピークに対しての特徴量変化 同じピークが50フレーム以内にあるやつが対象 ただ詳細がわからんから明日聞こう 次にやってもらうのはネガコンのフレームあたりの回数&各特徴量のフレームあたりの回数&周辺細胞の特徴量変化&特徴量を増やす&統計解析 その後は定性解析にしよう 2週間ぐらいあればできそうやね 追加画像についてもやってもらう

Chol-Gyu commented 3 years ago

とりあえず先週やってくれたこと フレームあたりの変化数測定でCa発火あり&なしで 結果、ありとなしでパターンが若干違う? 核だと一緒、細胞質だと回数に違いがある→発火してる細胞で少し多くなってる?ここが統計的に示せれば→平均と標準偏差だして あとは追加画像でRasV12がない画像を上げた→これでも同じ処理を行ってどうなるか考えよう まずはここまで。 これが終わったら特徴量をもう少し増やしてやってみる。 これが終わったら次はCaスパークの周辺画像解析→Caスパークが起こっている細胞の周り(隣接してる細胞)がCaスパークとどう関連しているのか →統計解析の結果を見て考えましょうね。

Chol-Gyu commented 3 years ago

正規分布じゃなさそうなのでU-testを使って有意差検定を行う でも差がなさそう。。。 あとはregion.propsで取れるだけの特徴量を取ってやってみる https://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.regionprops

あとCa発火があったけど特徴量変化がなかった奴らってどうなってるんやろ? もちろん入れるけどそこの計測は必要よね 全部で何細胞で、Ca発火が何細胞で、そのうち何細胞が変化したか、ここらへんは論文化する際に全部書くからね

Chol-Gyu commented 3 years ago

横山くんはすこしてこづってる? 明日話を聞いてそこで色々アドバイスしながら進めていきましょう こっちとしては早めにデータを出してほしい 少なくとも有意差検定ぐらいはしてほしいよね 今週中にそこを先にやってもらう

Chol-Gyu commented 3 years ago

Region propsでできる特徴量を全部抽出→クラスタリングする→Caあり、Caなし、non-Caあり、non-Caなしの4種類で分けてうまいことクラスターが別れればいいねって話 クラスター間で同時分布を比較する うまいことCaありで出てくるようなやつがあればいいなー

Chol-Gyu commented 3 years ago

どうしても出なかったら ピークの高さの面積を出してそれど各特徴量の変化との関連を示す? 50〜100フレーム以内でいいから ここで確認して追加画像解析&隣り合った画像解析かな

あとワイが横山さんのメンターをすることになった 日々の退勤管理&多少仕事のこと聞くぐらいかな とりあえず明日は予定を入れといてもらおう

Chol-Gyu commented 3 years ago

統計解析はWilcoxonじゃないほうがいい?χ二乗検定が適当か あと発火前と発火後で分けて考える それで蜂群図を作る

Chol-Gyu commented 3 years ago

検定はポワソン分布でやる で、Beeswarmを出してきた なんとなく有意差がありそうだ、いい感じ もう少し特徴量を増やしても同じ傾向が出るかな? この検定結果を持って相談しに行こう この検定が終わったら特徴量を増やしてもらおう うーん、楽しそうだ