復(fù)旦大學(xué)腦科學(xué)轉(zhuǎn)化研究院
細(xì)胞分割與Cellpose
對于空間轉(zhuǎn)錄組分析,也需要分割細(xì)胞,將 RNA 的表達(dá)量賦予單個(gè)細(xì)胞;
對于醫(yī)學(xué)診斷而言,通過細(xì)胞的大小、形態(tài)、位置以及計(jì)數(shù)來診斷病變
該款軟件使用 Python 語言編寫,憑借其良好的細(xì)胞分割效果、不錯(cuò)的運(yùn)行速度、易于使用的界面、支持與其他軟件聯(lián)動(dòng)等特性,獲得了廣泛的使用和認(rèn)可,在GitHub上獲得770+的star數(shù),可謂是細(xì)胞分割領(lǐng)域的"ChatGPT"。
Cellpose軟件主要由來自珍妮莉亞研究園區(qū) (Janelia Research Campus)的研究員“夫妻檔” Marius Pachitariu 與 Carsen Stringer 開發(fā)。兩位研究員的經(jīng)歷很相似,都是從數(shù)學(xué)背景轉(zhuǎn)向計(jì)算神經(jīng)科學(xué),博士都畢業(yè)于英國倫敦大學(xué)的蓋茨比計(jì)算神經(jīng)科學(xué)中心,之后都來到 Janelia 擔(dān)任研究員。目前兩位各自的實(shí)驗(yàn)室方向也有很大的重合,主要從事于小鼠視覺皮層的神經(jīng)元解碼工作。
為了便于分析工作的開展,他們以 MATLAB 和 Python 為主要開發(fā)語言,與其他實(shí)驗(yàn)室合作開發(fā)了一系列軟件來處理大規(guī)模成像數(shù)據(jù),并在 Github 開源。
https://github.com/MouseLand
他們開發(fā)的軟件以良好的性能和友好的 GUI 界面為特色,得到了眾多神經(jīng)科學(xué)家喜愛和廣泛使用。其中:Kilosort 用于處理超大通量的神經(jīng)電生理信號(hào),能對神經(jīng)元信號(hào)進(jìn)行提取和分類(Spike Sorting);
Suite2p 集成了雙光子鈣成像數(shù)據(jù)的處理流程,能夠進(jìn)行運(yùn)動(dòng)配準(zhǔn)、神經(jīng)元檢測、動(dòng)作電位推斷等流程;
Rastermap 能以 GUI 界面選擇神經(jīng)元,并排序繪制對應(yīng)的柵格圖(Raster Plot),支持與 Suite2p 聯(lián)動(dòng),直觀展示不同神經(jīng)元的鈣信號(hào)變化;
Facemap 通過解析小鼠面部表情來預(yù)測神經(jīng)活動(dòng);
圖 1 Marius Pachitariu 與 Carsen Stringer開發(fā)的軟件開源在Github上的MouseLand組織里
圖 2 Cellpose構(gòu)建的包含608張多類型圖像的數(shù)據(jù)集可視化展示
圖 3 Cellpose 模型的架構(gòu)
文章中將 Cellpose 與 Mask R-CNN、Stardist、U-Net3、U-Net2 等不同深度學(xué)習(xí)模型進(jìn)行了比較,分別通過對 generalist data(包含全部 608 張圖像的數(shù)據(jù)集)和 specialist data (只包含 100 個(gè)熒光細(xì)胞的 Cell Image Library)分別對 Cellpose 和其他模型進(jìn)行訓(xùn)練。其結(jié)果為,用 generalist data 訓(xùn)練的模型,用 generalist data 和 specialist data 測試,Cellpose 模型都比其他模型預(yù)測的更精準(zhǔn);用 specialist data 訓(xùn)練的模型,在 specialist data 測試,Cellpose 也比其他模型要好。文章里同時(shí)還探究了 ROI 同質(zhì)性與 ROI 凸性對 Cellpose 分割的影響。同質(zhì)性指的是圖像內(nèi)每個(gè) ROI 大小差別,同質(zhì)性越大,ROI 大小差別越小,計(jì)算方式是對 ROI 面積大小從小到大排序,第一四分位數(shù)除以第三四分位數(shù)即為同質(zhì)性指標(biāo)。通過對同質(zhì)性與分割效果的相關(guān)性分析以判斷是否相關(guān) ;而凸性可以理解為 ROI 圓不圓潤,凸性越大,ROI越圓潤,計(jì)算方式為 ROI 面積除以恰好能包裹住的圓的面積,通過將 ROI 分為低、中和高凸性來探究 ROI 的凸性是否影響分割效果。實(shí)驗(yàn)結(jié)果表明,分割效果與細(xì)胞大小的同質(zhì)性之間沒有關(guān)系,而凸性會(huì)影響到分割效果,所有模型在高凸性 ROI 的分割表現(xiàn)優(yōu)于低凸性ROI。
圖 5 探究了ROI同質(zhì)性與ROI凸性對Cellpose分割的影響
文章的最后,作者還對 Cellpose 模型進(jìn)行了修改,使其能支持 3D 的數(shù)據(jù),即支持對視頻內(nèi)的細(xì)胞進(jìn)行分割。Cellpose 2.0的預(yù)訓(xùn)練模型與“人在回路”
“Cellpose 2.0: how to train your own model”發(fā)表于 2022 年 11 月[2]。盡管 Cellpose 1.0 在設(shè)計(jì)之初就考慮了通用性,希望可以為許多不同的細(xì)胞圖像提供開箱即用的良好分割效果。但是在實(shí)際應(yīng)用中,卻發(fā)現(xiàn)一個(gè)很大的問題——一方面不同數(shù)據(jù)集差別很大,每個(gè)數(shù)據(jù)集注釋風(fēng)格也不一致,另一方面不同用戶想要的分割樣式可能也不一樣。如何確保模型的自適應(yīng)力強(qiáng),不僅能用于不同數(shù)據(jù)集,還能滿足不同用戶希望的分割風(fēng)格,是細(xì)胞分割領(lǐng)域的一大挑戰(zhàn)。
為此,Cellpose2.0 改進(jìn)之一,是集合了原有的 608 張多類型的圖像以及 TissueNet[3]、LiveCell 數(shù)據(jù)集[4],通過聚類分成了 9 個(gè)不同風(fēng)格數(shù)據(jù)集,為這 9 個(gè)具有人工注釋的數(shù)據(jù)集單獨(dú)訓(xùn)練對應(yīng)的 Cellpose 模型進(jìn)行集成。這 9 個(gè)模型具有不同的分割樣式,用戶可以選擇最符合他們要求的模型,并且軟件可支持計(jì)算輸入圖像的風(fēng)格來自動(dòng)推薦模型。鑒于集成的 9 個(gè)模型可能依然無法解決對全新圖像類型的泛化問題,文章中還探究了用戶能否以相對較少的注釋來訓(xùn)練一個(gè)自定義模型。將 TissueNet 和 LiveCell 數(shù)據(jù)集視為新的圖像類別,通過比較 Cellpose 1.0 已預(yù)訓(xùn)練的模型和完全從頭開始訓(xùn)練的 Cellpose 模型(from scratch),將 TissueNet 和 LiveCell 團(tuán)隊(duì)各自使用的模型(Mesmer 模型和 LiveCel 模型)當(dāng)作參考基準(zhǔn),探究對于兩個(gè)數(shù)據(jù)集需要多少個(gè) ROI 訓(xùn)練才能實(shí)現(xiàn)良好的分割效果。實(shí)驗(yàn)結(jié)果表明,預(yù)訓(xùn)練模型比完全從頭開始訓(xùn)練的模型更有優(yōu)勢,僅僅只需要 500-1,000 個(gè)訓(xùn)練 ROI 就足以在TissueNet 和 LiveCell 數(shù)據(jù)集中實(shí)現(xiàn)接近最大的分割精度,并且在多樣化的 Cellpose 數(shù)據(jù)集中預(yù)訓(xùn)練能比大型的 TissueNet 和 LiveCell 數(shù)據(jù)集預(yù)訓(xùn)練表現(xiàn)更好。
Cellpose 2.0 的改進(jìn)之二,借鑒了 TissueNet 數(shù)據(jù)集的細(xì)胞 ROI 標(biāo)注方法[3],在深度學(xué)習(xí)算法層面引入了“人在回路”(Human-in-the-loop)。傳統(tǒng)的監(jiān)督學(xué)習(xí)算法,包括 Cellpose 1.0 算法,完全依賴于數(shù)據(jù)標(biāo)注員對數(shù)據(jù)集的注釋,經(jīng)過一次次的迭代訓(xùn)練使其在當(dāng)前的數(shù)據(jù)集表現(xiàn)良好,卻無法真正保證其在新數(shù)據(jù)下的表現(xiàn)。“人在回路”的思想是在訓(xùn)練過程中引入人的反饋,以提高模型預(yù)測的準(zhǔn)確性、不同數(shù)據(jù)集下的魯棒性。目前大火的 ChatGPT,便是在 GPT3.5 模型上引入了“人在回路”的強(qiáng)化學(xué)習(xí),人工對答案滿意度進(jìn)行打分排序,使得 ChatGPT 的回答更接近于人。
Cellpose 2.0 的“人在回路”訓(xùn)練過程為,先訓(xùn)練一個(gè)初始的、可能并不完美的模型,這個(gè)初始模型應(yīng)用于用戶的數(shù)據(jù)上,結(jié)果將由用戶來修正,模型再通過修正后的結(jié)果進(jìn)行重新訓(xùn)練,以提高模型的細(xì)胞分割表現(xiàn)。文章表明,Cellpose 預(yù)訓(xùn)練模型配上“人在回路”訓(xùn)練方式僅需要 3-5 張圖像(100-200 個(gè)手動(dòng)分割的 ROI)就足以獲得良好的分割效果。
Cellpose 使用入門
Cellpose 官網(wǎng)支持運(yùn)行在線版本的 Cellpose 1.0。
https://www.cellpose.org/圖 10 運(yùn)行在線的cellpose
本地版本Cellpose 2.0
如果需要大量的細(xì)胞成像圖片進(jìn)行細(xì)胞分割以及想體驗(yàn) Cellpose 2.0 的新模型和“人在回路”訓(xùn)練自定義模型,則需要安裝本地版本。
Cellpose 基于 Python 語言編寫,并沒有提供 exe 文件來直接安裝。
在Cellpose的Github repo上有詳細(xì)的安裝指導(dǎo):
https://github.com/MouseLand/cellpose。
官方的安裝建議是使用 conda 作為包和環(huán)境管理器,來安裝 Cellpose。安裝和配置 conda 這里并不展開,可從網(wǎng)絡(luò)搜索教程,Windows 系統(tǒng)和 Mac 系統(tǒng)推薦安裝具有圖形界面的 Anaconda,而 Linux 系統(tǒng)推薦安裝更為輕便的 miniconda 或 mambaforge。運(yùn)行 Cellpose 的命令如下:
圖 11 Cellpose 軟件界面
簡要介紹下 Cellpose 的基本使用方式。https://cellpose.readthedocs.io/en/latest/
Cellpose 與軟件的聯(lián)動(dòng)【注:Cellpose在算法與分析功能方法已經(jīng)完勝大多數(shù)商業(yè)化AI軟件,不過從事儀器硬件生產(chǎn)研發(fā)的廠家的則
參考文獻(xiàn)