使用OSX遠端ssh到server IGV發生錯誤

使用Broad  institute開發的Integrative Genomics Viewer(IGV)來看splicing graph或是bam檔算是很基本的技能,但在本機開啟IGV來讀取bam檔通常是痛苦的事情,所以使用server IGV遠端連線開啟就變得很必要,不然好幾GB的bam檔,傳來傳去或是光打開都是很吃電腦效能的。

這邊分享一個在mac上使用遠端ssh來登入執行server IGV會發生的問題:下面是error message

INFO [2016-11-28 16:10:38,623]  [DirectoryManager.java:163] [main]  IGV Directory: /home/weitinglin66/igv
INFO [2016-11-28 16:10:38,623] [DirectoryManager.java:163]  IGV Directory: /home/weitinglin66/igv
INFO [2016-11-28 16:10:38,632]  [Main.java:99] [main]  Startup  IGV Version 2.3.69 (98)03/08/2016 04:20 PM
INFO [2016-11-28 16:10:38,632]  [Main.java:100] [main]  Java 1.7.0_111
INFO [2016-11-28 16:10:38,633]  [DirectoryManager.java:72] [main]  Fetching user directory…
INFO [2016-11-28 16:10:38,764]  [Main.java:101] [main]  Default User Directory: /home/weitinglin66
INFO [2016-11-28 16:10:38,764]  [Main.java:102] [main]  OS: Linux
GConf 發生錯誤:無法連繫設定伺服器;可能是您需要啟用 ORBit 的 TCP/IP 網路連線,或由於上次系統當機導致有殘留的 NFS 鎖定檔。 請參考 http://projects.gnome.org/gconf/ 以取得更多資訊。(詳情 –  1: 不在使用的作業階段中執行)
INFO [2016-11-28 16:10:42,238]  [Main.java:150] [main]  A later version of IGV is available (2.3.84)
ERROR [2016-11-28 16:10:42,244]  [DefaultExceptionHandler.java:49] [main]  Unhandled exception
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
     at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
     at java.awt.Window.<init>(Window.java:535)
     at java.awt.Frame.<init>(Frame.java:420)
     at java.awt.Frame.<init>(Frame.java:385)
     at javax.swing.JFrame.<init>(JFrame.java:174)
     at org.broad.igv.ui.Main.main(Main.java:81)
INFO [2016-11-28 16:10:42,248]  [ShutdownThread.java:51] [Thread-2]  Shutting down
這邊可能會有好多個“坑”!!
首先,要先講一些背景知識,IGV本身是一個java程式,我們將它在linux server中運行時,他其實是要開啟“視窗”,所以他其實需要使用linux 下的x window支援(又稱X11),然後這些顯示器的訊息其實是要串接到我們本機的MAC螢幕,所以我們osx系統也要能解讀那邊拋過來的訊息。所以可以先閱讀鳥哥這邊關於x window的介紹,另外,在osx系統有開發針對x window相容的軟件計劃XQuartz,用來將X11系統移植到OSX中。
那要如何解決這個error呢?
所以我們在ssh進入server時,要先開啟-X指令模式如下
ssh   accountname@ip -X
這樣的意思是讓server那邊要是在執行依賴X11相關的程式(如IGV, FastQC),可以將訊號從ssh丟過來對接,可以看下面從ssh manual截屏下來的
screenshot

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s