這篇是為了解決一位同學的提問:

怎麼利用ImageJ分析線粒體網路?

這裡需要用到MiNA這個外掛[1],解螺旋曾經發過一篇相關的文章:

這篇文章寫的很好,但是在實際參考過程中,發現有些地方可以加以補充,包括安裝方法和具體的外掛使用,因為外掛的更新而出現了很多變化。背景部分可以看這篇文章的描述,在這裡就不再贅述。

所以這篇文章就對於

MiNA的安裝和使用

做一個更詳細的教程,MiNA的官網說明:

注意:這篇文章只是對MiNA這款外掛做一個簡潔的介紹,如果想了解更多的細節和操作,請務必通讀官網的說明以及對應的文獻。

一、外掛安裝

開啟更新頁面(Help->Update。。。)

等一會兒就會出現下面這個頁面,點選Manage update sites。

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

勾選StuartLab和Biomedgroup,然後點選Close。

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

點選Apply changes。

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

安裝完成後重啟ImageJ,即安裝完成。

二、外掛使用

1、手動完成MiNA外掛的功能

MiNA外掛的本質是一個宏程式(Macro),即將對影象的一系列處理整合起來,在一個介面進行完成。但其本質還是由一步步的影象處理所構成的。

所以首先介紹怎麼

手動完成MiNA外掛的功能

,從而對線粒體網狀結構進行分析:

首先根據文獻[1],MiNA工作流程如下:

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

MiNA工作流程

具體體現在ImageJ中的操作如下,可以大致分為兩個部分:

(1)圖片預處理

對影象進行預處理的目的是提高對比度和清晰度,降低背景,從而更好的進行二值化和骨架化。以下圖為例(感謝師姐的友情贊助~):

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

注意:預處理步驟有順序的,但每個都是可選的、引數可調的

要根據具體圖片,具體分析使用什麼預處理步驟、引數是什麼。

例如在該圖片中,背景可見明顯的顆粒,需要進行濾波去噪處理。

Process -> Filters -> Unsharp Mask

Process -> Enhance -> Local Contrast(CLAHE)

Process -> Filters -> Median

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

預處理後的影象

(2)二值化和骨架化

Process -> Binary -> Make Binary(這裡也可以透過Threshold,然後Apply進行二值化)

Process -> Binary -> Skeletonize

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

骨架化後的影象

注:這裡的比例尺可以透過Threshold,或者框選沒有比例尺的區域,然後Duplicate,從而去除。

(3)骨架分析

Analyze -> Skeleton -> Analyze Skeleton(2D/3D)

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

更具體的處理流程,可參考文獻中的流程圖[1],展示的是每一步處理後的影象變化:

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

2、MiNA外掛的使用

MiNA不支援RGB多通道影象,所以先把影象分割成單通道,然後轉成8-bit。

外掛位置:

Plugins -> StuartLab -> MiNA -> Analyze Mitochondrial Morphology

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

MiNA使用者介面,用於提供必需和可選的輸入引數

對引數逐條分析:

Pre-processor path - 預處理程式 (可選)

在執行網路分析之前,如果需要對影象進行上述的

去噪、增強對比度等預處理

,可以在這裡選擇預處理的。ijm宏檔案,且

檔案路徑中不能有中文命名,否則會報錯

這一步是可選的,如果影象已經預先處理好,則這裡可以不選擇

下面是示例中的預處理宏程式(這裡不需要進行二值化、骨架化):

run

“Unsharp Mask。。。”

“radius=1 mask=0。60”

);

run

“Median。。。”

“radius=1”

);

setOption

“BlackBackground”

false

);

Post-processor path - 後處理程式 (可選)

後處理程式用於將資料儲存在特定位置等操作,

這是一步是可選的,如果圖片數量不多,不需要自動化儲存,可以不選擇。

Threshold method - 閾值演算法

選擇一個演算法用於確定閾值,一般選擇預設演算法,且只能處理Dark Background(背景黑色)的影象。

Use ridge detection (2D only) - 使用脊線檢測(只用於2D影象)

這裡其實用到了Ridge Detection這一外掛:

Ridge Detection的作用是找到影象的中脊線,相當於找到影象的骨架。其中有4個引數是必須設定的High contrast、Low contrast、Line width、Line length。

具體設定方法可以預先開啟

Ridge Detection外掛(Plugins -> Ridge Detection)

,然後勾選Preview,透過調節引數,找到合適的High contrast、Low contrast、Line width、Line length。也可以根據MiNA的結果進行調節。

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

透過觀察Preview的結果,選擇合適的引數

而且Ridge Detection彌補了MiNA只能得出平均值的缺陷,可以得到各個分支的長度等引數。

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

Ridge Detection的引數列表

User comment

這裡可以留下使用者的描述,本質是對結果進行標註,該描述會顯示在Result Table當中,是可選的。

注意:如果未選中Use Ridge Detection,則分析將按照自動的演算法,進行迭代細化以生成形態骨架。下面是兩種方法的對比圖:

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

可以明顯看出No Ridge Detection組出現過多的分叉和錯誤判斷,Using Ridge Detection組結果優於No Ridge Detection組,且

Using Ridge Detection組的結果是可控的,可以透過調節引數得到更好的結果。

所以在圖片質量不佳的情況下,建議勾選Use Ridge Detection!

MiNA生成的結果包括原始圖片與骨架的重疊圖以及形態學引數:

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

引數描述如下:

ImageJ實用技巧——線粒體網路形態分析(外掛篇)

具體可以在官網找到:

綜上所述,MiNA這款外掛要求使用者對外掛的工作流程,以及線粒體形態學引數有較為全面的瞭解,否則得到的結果誤差會很大,且不具有重複性。

如果對於ImageJ使用有什麼問題可以私信我,或者給我發郵件:zhaoyc9@163。com

更多教程可以關注我的專欄:

希望對大家有幫助~

參考文獻:

[1]。Valente A J , Maddalena L A , Robb E L , et al。 A simple ImageJ macro tool for analyzing mitochondrial network morphology in mammalian cell culture[J]。 Acta Histochemica, 2017, 119(3):315-326。