2015/05/31

ImageJ 測定膠體電泳距離的 Macros - MolWt

前言:

以前在實驗室跑電泳時,雖然聽過有軟體可以計算出,在膠體電泳之後目標片段的距離,但我一直没有親自了解過,一是因為用不到,二則是因為用不到,三還是因為用不到。直到 PTT 上有網友詢問使用 MolWt 巨集 (Macros) 時發生問題的解法後,才想試著使用看看。由於該巨集有附說明,因此可以按步驟一步一步來。但問題也就發生在明明按著步驟來,卻無法得到結果而卡關。後來,研究了一個晚上之後,才試出了解決方法。不過,這個解決方法可能並不適用於其他操作環境,使用時得稍稍微調一下。而經過和 PTT 網友的討論發現,他的問題和我的問題也不盡相同,但是可以相互參照調整。
以下,便試著按照說明文件的步驟一一來進行,並附上可能碰到的問題和可行的解決方案。因為整個操作步驟其實很簡單,只是說明上複雜囉唆了些。下文中是以 DNA 電泳為例,但是拿 protein 電泳的圖來分析也是可行的。

步驟:

I.準備

要準備好軟體 ImageJ、欲分析的膠體電泳圖檔案以及 ImageJ 的巨集,同時也是本文的主角,MolWt
ImageJ 目前最新版本是 1.49s,可以從 ImageJ 的官方網站 (http://imagej.nih.gov/ij/) 下載。但網站給的似乎只到 1.48 版;我是使用 ImageJ 的檢查更新並自動下載安裝功能,所以目前才會使用到 1.49s 版。ImageJ 在各平台有版本差異,安裝時需要注意;其中也有跨平台版本可用;它需要 Java 才能運行。下圖是我的使用環境:
Mac OS X (10.10.3 Yosemite)
Java 1.6.0_65 (64-bit)
ImageJ 1.49s
ImageJ 版本
PTT 網友的操作環境是 Windows 7 (64-bit),ImageJ 版本為 1.48v。後來改升到 1.49s 並按照操作說明進行之後,之前碰到的問題似乎都解決了。
MolWt 似乎是某家德國電泳和顯像儀器廠商所寫下的 ImageJ 巨集,目前並未被收錄在 ImageJ 的預設巨集中,也未收錄在 ImageJ 官網上的的巨集列表裡。可以從廠商的網站 (http://www.phase-hl.com/imagej.htm) 下載。這網站非常陽春,別被嚇到了。另外,巨集的說明文件也最好一併下載了,是PDF (http://www.phase-hl.com/ImageJ/MolWt-Macros.pdf) 檔。

II.安裝巨集

安裝 ImageJ 巨集很簡單。按照網路上的說明 (http://rsb.info.nih.gov/ij/docs/guide/146-14.html#toc-Section-14),可以有兩種安裝方式:一是直接拖到到軟體 ImageJ 的 icon 上;二是在 ImageJ 的 menubar 上找到安裝選項(Plugins→Install…),在跳出的對話框中找到 MolWt.txt 的位置,點選即可。而作者則是建議將巨集的檔案先複製到 ImageJ 程式底下的 macro 資料夾,然後再打開 ImageJ 的安裝選項(menubar 上:Plugins→Macros→Install…)來安裝——這在我的環境中完全無用,得使用 Plugins→Install…的路徑安裝才有效(見下圖)。安裝時的對話框會要求選擇安裝在哪個資料夾中,我自己是安裝在『ImageJ/plugins/Analyze/』這個資料夾裡。最後,要重新開啟程式,才能在程式上看到它的存在。如下圖:

ImageJ 的 folders

ImageJ/plugins/Analyze/

Plugins 安裝
這一個巨集的反安裝,我是手動從 ImageJ 程式底下的資料夾裡移除,才會在重開啟程式後看到作用。不曉得有没有更方便的方法。

III.操作解說

在開始之前,我得聲明以下的步驟是我和 PTT 網友各自胡亂研究後的結果。基本上就是按照說明文件上的指示操作,待遇見問題時再行更動測試可行性。不保證在不同環境下能成功。
  1. 首先,以純文字編輯器準備一份純文字檔。只寫下 marker 的 basepair number,一行只能有一個數值,不要加單位或其他資訊,可以不按順序,存檔時以 txt 為副檔名。最好是將所有 marker 片段的數值都填上。以下是以 100 bps DNA marker 為例:
    Marker 

  2. 從 ImageJ 打開要分析的圖檔。此處是以一份 2% agarose gel 分析 312 bps PCR product(s) 的圖檔為例。經過測試,到現在為止,無論是 JPG、PNG 或 TIFF 檔,都能正常使用。
    2% Agarose Gel 電泳圖

  3. 框選 Marker,按下 command+1(在 Windows 下應該是 control+1),移動框框到欲分析的片段處,按下 command+2(control+2);繼續移動框框,同樣按下 command+2(control+2),直到要分析的片段都選完了。
    框選 marker 和欲分析的 lanes
  4. 使用 Gel Analysis 功能中的 Plot Lanes(快捷鍵是 command+3/control+3):
    Gel analysis

    得到一分圖檔:
    Plot of Electrophoresis - (Marker)

    圖有三個,從上到下分別對映到 DNA marker 和 lanes 2 & 3 的 DNA 片段。圖的最上方是 DNA marker 在背景下的 peaks 和相對於框選範圍的位置,下方則是 lanes 2 和 lane 3,圖的視窗可以下拉(scroll down),以顯示出其他框選位的圖。
    因為 DNA 電泳膠圖是黑底白片段,所以 ImageJ 畫出來的圖,各個波峰都是向下。如果看得不習慣,可以事先反轉圖檔的顏色,或是利用 ImageJ 來反轉顏色也可以;反轉之後要存檔,不然顯示的波峰依然會往下。另外,DNA 電泳照相設備所得到的圖,預設中都是灰階的。如果不是灰階圖,則必須先將圖檔改成灰階模式。ImageJ 中也可以轉換顏色模式。
  5. 依據作者說明,將原檔案 MolWt.txt 安裝進 ImageJ 之後,分析時只要點選其中的分項或快捷鍵就可以使用。但不幸的是,在我的操作環境中,這方法並不可行。每一次點選 macro 中的 MolWt,它只會做一件事,就是『Open MW File』,要求我打開先前準備好的 marker 純文字檔案,就算已經打開過了,它還是一再地要我先讀取 marker 檔。我曾不死心地重新開啟 ImageJ、或移除並重新安裝 MolWt、或重新登入使用者、或重開機器……一點用都没有,它根本就不會自動形成這個巨集的四個操作功能。還有就是操作的快捷鍵,在我的環境中也無效或是另有他用,這應該是相衝突了;反正我平常也不用 ImageJ 的快捷鍵,所以也還好。
    後來好奇地在參考 ImageJ 程式底下其他 macros 的內容之後,發現很多 macros 的內容結構都很像。在打開作者的 MolWt.txt 檔之後,裡面可以看到這巨集的四個組成:
    MolWt.txt 的內容
是以『macro "$%&*"』為名稱,並以『//----』做區隔的四個部分:
  • Open MW File
  • Select Reference Bands
  • Calculate Regression Line
  • Estimate Unknown MW
    出於死馬當活馬醫的心情,我就將原始檔 MolWt 的四個部分,分別剪貼成新的 txt 檔案並重新命名,最後再一個個地安裝進 ImageJ。名稱最好就是那四個 macro names,然後分別安裝到 ImageJ——在我的環境中,依然是路徑 Plugins→Install…才有用。
    而PTT 網友則是曾經碰到過安裝完並重開啟 ImageJ 之後,之前安裝過的就又不見了的情況;或是碰到過安裝了一個,待準備要安裝下一個的時候,前一個又不見了的情形;還有,原本可以用的快捷鍵,之後不曉得怎麼一回事就又不能使用的狀況。
    1. 允許計算到小數點後第四位。Analyze→Set Measurements…→Decimal Places (Box),填『4』。這似乎和計算回歸線後的相關性數值有關,因為我設了『4』,則回歸線中的 corr. 會取小數點下四位,而設了『3』,則只取小數點下三位。這一步倒是可以在計算回歸線之前再設定,不會出現怪事。
    2. 使用 macro『Open MW File』功能,打開 marker 的純文字檔,它會自動形成一份 log 檔待用。作者強調過,在這個步驟進行以前,除了 ImageJ 主程式的視窗、圖檔視窗和分析的 plot 圖之外,最好不要有其他的視窗存在,否則會算不出回歸線,自然也算不出目標片段的大小了(未知片段上會顯示 NaN)。
      References log

    3. 使用點選工具 Point,依序在每個波峰的尖端點一下,出現圓點之後,以 macro 『Select Reference Bands』功能選取相應 marker 片段的數值。只能點一個波峰,選一個數值之後,再點下一個波峰,點選相應數值,一直到點選完畢。在點選下一片段之後,前一個圓點就會變成一條豎立的直線,表示數值標定完畢。
      Point out the peaks

      這一步,只能使用 single point,multipoint 無效,macro 只會認 multiport 所點選的最後一個點,以等著下指令。我不曉得有没有辦法修改 macro 檔案使得 multipoint 可以運作。我自己不懂怎麼寫 script,不過 ImageJ 官網上有教人怎麼寫巨集,有興趣的可以自行研究。
    4. 點選完畢之後,以 macro 『Calculate the Regression Line』計算出回歸線值。基本上,回歸線的計算是只要有兩個以上的點就可以了,但是電泳的結果,從起點開始計算泳動距離,要取自然對數以在平面的對數座標上畫直線;若只給兩、三個點,則回歸線的誤差值會太大,要想計算某未知泳動片段的正確距離(分子量或鹼基對)就比較難。所以,要是 marker 片段點得夠多夠精準,算出來的回歸線,其 corr. 係數會越接近 -1,則計算未知片段的大小,結果會越精確。
      PTT 的網友,曾經碰到過 ImageJ 並未幫他算出回歸線的情況,於是只好將 result 貼上 Microsoft Office 的 Excel,用內建公式算出來——親手套用公式拿紙筆算也是可以啦,但是,何必呢。
      回歸線的計算和求未知片段大小
    5. 計算出了回歸線,就可以在未知片段的 plotted figure 上用 point tool 點一下未知片段的波峰,然後以 macro『Estimate Unknown MW』功能來算出未知片段的大小。
    事實上,所有步驟一切嚴格按照操作說明來進行,應該就會没問題,像是按順序一步步來,不該先出現的視窗或操作,就不要先進行。這也是我 PTT 網友相互討論出來的結論,更是巨集作者在操作說明中強調過了的。如果 ImageJ 現有版本有問題,可以升級到最新的 1.49s 或是作者使用過的 1.34 版 (Windows)。
    在說明書最後,巨集的作者也說了,可以直接在欲分析的電泳圖上點選 marker 並註記相應大小,不需要 plot 圖,就能計算相應的回歸線並求取未知片段的大小。但我没試,我認為自己看電泳圖標定,不會比在 plot 圖上標波峰來得準確。

    1 則留言:

    逢廣告文必砍!