跳到主要內容

發表文章

Run Seurat (a R Package) in a notebook interface on a server without root

tl;dr: Dependencies hurts when you try to set up R on server After a while of playing around, I’ll say the best way to use R with a Notebook-style interface on a server where you are no superuser would be using Anaconda, and then run R inside Anaconda to get whatever package you need. It is designed to run for a normal user, so there’s no need for superuser permission, and dependency issue is also taken care of most of the time. If you get the permission on server and are comfortable with R Studio, R Studio Server might be a even better option. That is because even if the packages are in Conda R , Conda Forge , or Bioconda , sometimes they are out of date, which might break dependencies, and conda skeleton and conda build unfortunately come with a lot of dependency issue as well. Besides, the visualization of environment and integration of documentation is better in R Studio for me. What worked for me starts from creating a new environment in Anaconda and install t...

2017 歲末雜想

助理飄飄 好 的研究者每年大約要發表一到二篇 好 的論文, 好 的論文又常是報告新穎有趣的現象。然而這樣的主題並不常有,於是研究就如同淘金,對鑽探的主題的嗅覺和快速掃過潛在地點的能力都不可少。 助理可以推測礦脈,可以四處走走,但究其本質還是那個背十字鎬的人,價值來自於帶回來的金沙,而目前為止我屬於連黃鐵礦都尚未挖到的那一組。 這個圈子裡,老闆那對我可說是毫無來由的信任似乎是稀缺資源。我還不明白這個 圈子 有多大,但或許是整個國家吧。當事情被分為簡單和困難並且分別定價之後,困難的事情就突然變少了。 ____ 只不過是把 ____ 拿去 ____ 而已,不是嗎? 從近期勞基法的紛擾來看,我們的社會似乎是這樣看待大部分的工作的,所以只要隨便找一個人就可以填起這個空位,也因而沒什麼價值,可能甚至不配被當做 人 ? 我想這些事終究還是互相的。大人們越是小看一件事,做事的人多半也就跟著看不起這件事,這件事終究會收斂在勉強能動的恰恰不合格狀態。有些人稱之為 異化 的,就是這樣的現象嗎? 很幸運能夠棲身在不必為「我把你們當人看」而費盡全力的地方,可即使是這樣的地方也無法自外於下滑的螺旋吧。 學習 說起人生學習密度最低的時段就是醫學系的七年了,做為很能配合傳統制約的標準化 好學生 ,醫學系那能用的東西不考,會考的東西沒用的懲罰系統有效的撲滅了我所有去了解什麼的嘗試。助理這段時間恰好是相反的,老闆撐起一方足夠自由的空間,在這空間裡的懲罰就只有用得上的東西卻不會而已。在自由中的確是略有怠惰,但能對學習和探索感到開心是不可或缺的復健。 這一年來摸索最多的是程式。程式對我有種奇異的魅力,可能是羨慕那種確實知道如何解決問題的姿態吧,但過去的嘗試大多在不知學來做什麼之下默默消失。今年搭配著各式各樣亂七八糟的實驗資料可供整理,終於是勉強的敢說自己會一點 R 了。照順序來說,拼湊出了一些東西: 自動加總螢光染色的統計報表 定量 PCR 圖表產生器 在別人的電腦裡弄了 Linux 虛擬機器 雖然理論上能夠自己分析公開的次世代定序資料集了,但速度實在太慢。使用 Linux 的經驗在後來轉用資訊室的伺服器時還是幫了不少忙就是。 電生理示波器總結圖表產生器 PubMed 摘要文字雲 雖然一直沒有搞定 Shiny 的設定 ...

關於Gitk 在 MacOS Sierra 無法啟動一事

最近為了幾個整理資料的小腳本開始使用 Git 來做版本控制 ,假裝自己好像真的會寫程式一樣 。 自己摸索了一會,對於 Git 分支和提交的概念雖然覺得可以想像,不過實作起來又是完全另一回事,每次要提交或放上 Github 都是幾番 Google 以上的工夫。這時看到 這樣的文章 格外的認同。 是啊,終端機界面真的是太黑太危險了,我還是把圖形化的 Gitk 叫出來看看吧。 於是我就 gitk 了一下,發現它崩潰了。 然後又再 gitk 了一下,發現它還是叫不出來。 嗯,看來不是打開的方式不對,是它整個都不太對勁,再一查發現 StackOverflow 早有人解決這個問題。於是先裝 homebrew 讓自己感覺彷彿像學程式的 ,然後 brew cask install tcl 問題解決,不過我反正也沒更新腳本,所以即使 Git 能用了我也沒東西試 (´・ω・`)

第一次的 StackOverflow

今天為一個用 R 畫畫的小腳本第一次到傳說中 的萬事屋 StackOverflow 去 發問 了,謹為文記念。 在我一拐一拐學著 R 的過程中,帶我前進的拉力的成分幾乎全是 StackOverflow (至於推力嘛,當然就是在實驗室生活中越養越肥美的懶病),如果沒有它,我想寫出來偷懶的腳本十個有十一個會寫到 library(stringr) 就結束囉。 今天的問題來自之前為了把電位測定的紀錄畫成圖而寫的腳本,是個裡面充滿巢狀的 for - loop 迴圈的恐怖玩意,它雖然會動但因為難以讀懂所以也不太可能再加功能進去。無奈我發下豪語說「啊,這個反正用 R 弄很快」的那個心血來潮只生出個別樣本的電位圖,至於總結的摘要圖當時就沒做了。 不過說到底,最重要的根本就是總結圖…… 動手改的過程當中對於執行速度之緩慢感到不耐煩,想起之前看過的 讀取速度比較 文,我決定歸咎給最開始的 read.table() 跑太慢,目前讀一個原始檔大概要花十秒。 開開心心的戴入 data.table 套件,我理想的流程是這樣的:把讀取的部分用 fread() 重寫一次,然後進到後面的迴圈海整理出可讀的版本再往下做。事實上…… Error in fread( "test.txt" , fill = TRUE , sep = "\t" , quote = "" , header = FALSE ) : Expecting 3 cols, but line 258088 contains text after processing all cols. Try again with fill= TRUE . Another reason could be that fread 's logic in distinguishing one or more fields having embedded sep=' ' and/or (unescaped) ' \n ' characters within unbalanced unescaped quotes has failed. If quote=' ' doesn' t...

心血來潮的定序分析:Linux安裝

我想嘗試的 ChIP-seq 分析流程是這樣的: 取得需要的定序資料:從 GEO Dataset 下載 把載來的打包檔案 (.sra) 轉換成可分析的原始資料 (.fastq):使用 SRAToolKit 確認定序品質: FastQC 排除品質不佳的資料: FastX Toolkit 將定序結果對應到參考的基因組上: Bowtie 2 整理對應完成的資料: BEDTools 尋找訊號峰值(是說中文維基百科上 這個條目 竟然就直接用英文上了): MACS 依樣畫葫蘆的過程中發現,啊呀 FastX Toolkit 、 BEDTools 還有 MACS 都要在 UNIX-like 系統上才能執行,原因我也沒去深究,用現成的工具也不能挑剔這個吧。 所以只好試著 Linux 一下了,這次嘗試我選擇在 Virtualbox 虛擬機器裡安裝長期支援版本 ( Long term support, LTS )的 Ubuntu Server ,過程跟平常重灌電腦沒有太大差異,也不難找到 流程教學 。 選擇用 Virtualbox + Ubuntu 的理由很簡單:大家用什麼我就跟著用,碰到問題的時候能夠從 無窮之海的集體意志 找到答案的機會大一點。 在安裝的過程當中如果Virtulbox不讓你裝 64 位元版的 Linux ,那可能是 虛擬化 功能沒有啟動,可以尋找一下符合你使用電腦的 教學 來啟動這個功能。由於 32 位元的作業系統只認得最多 2 GB 記憶體,在動輒就用掉 5 GB 以上的定序世界是沒有 32 位元的生存空間的。 OK ,到了這裡安裝應該也差不多完成了,如果你好奇為什麼裝 Ubuntu Server 而不是 Desktop 版本,那是因為接下來用上的工具反正沒有圖形介面,不想裝用不上的桌面介面 ,而且直接對著命令列下指令感覺比較帥。 說到命令,很多人到這裡可能會對不熟悉的介面過敏起疹子之類的,不過說真的扣掉工具本身 靠複製貼上可以解決的 指令,只會幾個指令也能活得很好的。

心血來潮的定序分析:起手配裝篇

任何人有五百萬(定序深度)都可以參加慈善論文王大賽 想不到和電腦差不多,全基因組分析在生命科學所扮演的角色在數年之間從最新最炫最頂尖,直教人傾家盪產也玩不起的奢侈品成了如果負擔得的起的話就該來上一點的錦上添花,如果單看幾家豪門期刊,甚至都要有些標準配備的味道了。 這類的研究看多了就有些好奇除了作者們注重的結果之外的其他地方究竟是什麼樣子。畢竟全基因組的賣點就在全面嘛,光是秀個相關係數分布圖說「大部分都沒差啦」然後就開始花式特寫想講的東西,感覺就像是看旅遊生活頻道那樣沒到現場去總覺得有些空虛寂寞又遺憾。 可是次世代定序資料它比起相對好理解的微陣列分析,方法本身已經比較抽象,又搭配上花樣百出的免疫沉澱或者鹼基配對之類就更讓人眼花撩亂了。以前雖然屢屢有進大觀園的念頭,但這一類沒有明確的目的、只是想學點新東西的念頭在懶病下的平均壽命大概只有一天。 不過俗話說得好,懶能載舟亦能覆舟,最近因為手上的題目鬼打牆,其中一部分的線索或許可以在 GEO Dataset 裡面翻出來,當然想知道的事定序的原作者都沒提到 是說有提到的話我也不用做了 ,只好自己動手到別人的資料裡撈東西,畢竟這總比自己重做來得輕鬆 又便宜 。 這一動手不禁感到十足困擾,網路上能找到台灣的相關資料不太多,即使有也不少是展示性質的要嘛太細節、要嘛魔法一般;換用英文看倒也不是不行,不過英文資料又是千頭萬緒,找什麼都有,就是沒個起點可以下手;最後呢,能接受的指南竟然是在日文找到的 1 。 跟著跑完一次流程之後,我決定留個紀錄給自己備查,也或許有天會幫到打算以一種 IKEA 的氣勢來自家烘焙定序資料而開始 Google 的人,預設的目標是能對已發表的定序資料用現成的工具做一些探索。 那麼,就讓我們開始吧,在那之前首先低頭望向電腦: 你扛得住定序分析嗎? 因為 Linux 平台可以使用的現成工具資源比較完整,所以用虛擬機器來跑 Linux 做分析是不錯的選擇,目前嘗試中的幾個重要數字是這樣的,請自行估算分析資料的規模和可以忍受的耗時。 在分析 ChIP-seq 的時候,最瓶頸的時間大概是把定序片段對回參考基因組的步驟 2 ,一千萬個讀數 (reads) 的原始 .fastq 檔案使用 Bowtie2 來做排列的時間大約是: 一百個小時 (Core i5 2500 @ 3.30 G...

文獻管理軟體:關於ReadCube, Mendeley, Papers有時還有其他

出發點 我家的文獻通常是這樣來的: 我有訂閱 Science 的 編輯精選 跟幾個與我題目有關的 關鍵字 實驗室平均來說每週會有一篇書報討論 臉書牆上看似有趣的玩意 它們會先成為瀏覽器上關不掉的分頁,過一段時間或是瀏覽器當掉幾次之後,心不甘情不願的搬家到下載項目,然後很多時候就長住在那兒,直到碰到比較無聊的演講開始整理時才會發現有些東西其實下載了五遍。 使用習慣 會在不同的裝置和系統上面閱讀 尋找一篇文的關鍵字通常是作者、期刊、跟內容的隨機組合 提到依稀記得的文章卻想不起來時會覺得很焦慮 從這幾點出發,對我來說特別重要的特質是 跨平台同步 、 全文檢索 (最好聰明點)、還有 執行速度快 。 除了這些之外,當然隨寫隨引的引用工具好不好用還有推薦文獻如何也有影響,不過就我來說為了配合協作,引用工具還是配合實驗室,反正也不是那麼頻繁的用上;至於推薦嘛,雖然廣泛閱讀是很重要啦,不過即使沒有推薦功能文獻資料夾裡也都充滿了不認識的孩子,我想推薦功能大半還是滿足屯書癖而已。 Endnote 老牌的文獻管理,作為和 Word 搭配的引用工具來說,除了厚重了點還有搭配追蹤修訂功能有點容易當機之外沒什麼大問題,最近的版本似乎也推出了跨平台同步的功能。其實它也能從 PDF 解析引用資料或是用引用資料尋找全文,不過 PDF 閱讀器相當陽春,我目前只有在寫東西時才會打開它,並不在上面閱讀。 ReadCube Nature Publishing Group 和 Wiley 推廣得相當認真的閱讀器,界面上也算漂亮。在文章管理上使用看起來像資料夾但實質上是標籤的處理方式。它雖然有跨平台同步功能,但只有付費用戶才能使用。 我一開始對於它的擴展 PDF 1 功能很感興趣,但使用起來其實還好,因為我的領域裡有不少論文本來就會用超連結放引用,但它的閱讀器本身卻不支援 PDF 原來就有的超連結,所以常常發生這篇論文沒辦法擴展,但原來的超連結又不能用,只好複製下來 Google 去也。擴展變成一個偶爾方便一些,但大多時候添麻煩的雞肋存在。 除了不支援超連結,它的 PDF 閱讀器在我的機器上 2 字體的渲染也有問題,比起 Acrobat自家的程式,字硬是模糊了不少,快速瀏覽的時候也常發生往後翻去的那頁空白了兩三秒才出現的狀態。另...

一勞永逸

成長過程中碰到太多以一勞永逸為賣點的東西,以致於有段時間對於現在投資、以後回收都反射性的迴避。 可是生命中重覆的瑣事又那麼多,即使不是瑣事,也可能在跌跌撞撞裡一而再再而三。一回過神來又變成用現在花時間去學雖然花時間,但以後一定會回本的信徒了。 於是不管什麼分析都想寫成通用的腳本,所以花時間在R上面;想不動腦的弄出習慣風格的文件或是紀錄,於是在摸索Markdown甚至聽信了網路傳言想玩玩Latex。 最後到底是真的為了效率,或者只是給自己找個逃避眼前事的理由都搞不太清楚啦。

ImageJ (1.51f) 在Mac OS 10.12 (Sierra)中會因為權限管理而無法使用Plugin

問題描述: 在將下載後的ImageJ資料夾搬到應用程式資料夾中後,程式可以使用但Plugin功能表下的項目消失。 系統資訊: OS Version: Mac OS 10.12 ImageJ: 1.51f  JAVA Version: 1.6.0_65 according to About ImageJ 1.8.0_111-b14 according to Control Panel Memory Assigned: 2854k of 7000MB ( No error message 原因: Mac OS 10.12為了解決使用者權限管理的漏洞,在執行應用程式時會建立一個隨機路徑的唯讀資料夾並把.app複製過去在其中執行(Gatekeeper Path Randomization)。這個作法會讓某些需要呼叫其他檔案的程式無法正常作用。   在ImageJ上,如果在Image>Show Info功能表(或Command + I)中的「ImageJ Home:」後面的路徑的開頭是"/private",那就可能是Gatekeeper Path Randomization在作怪。   將執行檔從應用程式資料夾中複製到桌面(Option+拖曳)後刪掉原檔再把執行檔複製回去可以修正這個權限問題。 參考資料: Sierra and Gatekeeper Path Randomization Kind and timely support from Wayne Rasband (NIH/NIMH)

Microsoft R Open 與 Mac OS Sierra不相容

搞了有點久所以記錄一下。Mac OS自Yosemite開始不在系統裡內建X11,所以有些R的Package會無法運作,這個問題可以透過安裝 XQartz 來解決。   通常這個問題的錯誤訊息會是: Warning message : In doTryCatch ( return ( expr ), name , parentenv , handler ) : unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so' : dlopen (/ Library / Frameworks / R.framework / Resources / modules // R_X11.so , 6 ): Symbol not found : _CGBitmapContextCreate Referenced from : / Library / Frameworks / R.framework / Resources / modules // R_X11.so Expected in : flat namespace in / Library / Frameworks / R.framework / Resources / modules // R_X11.so 而這次我碰到的問題是在安裝新版的XQuartz(當時為2.7.9)時仍然在透過biocLite()指令安裝BioConductor上的Package時仍跳出這個訊息,執行的環境是Mac OS Sierra/RStudio 0.99.903/Microsoft R Open v3.3.1。嘗試過移除 R Studio、Microsoft R Open、還有XQuartz重新安裝都無法解決這個問題。 因為問題發生在Microsoft R Open在Mac OS Yosemite之後仍然指向錯誤的路徑來找X11,所以即使安裝了XQuartz也會因為路徑錯誤讓R誤判你沒有安裝,安裝回CRAN版的R之後就可以正常使用了。

美國將刪減健保給付以控制預算

原文連結: http://www.medscape.com/viewarticle/853349?nlid=90023_3681&src=wnl_edit_dail&uac=142496MJ&impID=871283&faf=1 Photo Credit: Gerald@Pixabay 為避免聯邦債務違約,民主共和兩黨聯手推動一件為期兩年的預算案,本案預期能讓聯邦政府在舉債上限之內繼續運作,但預算案中也將刪減健保(Medicare)給醫師的給付。

教學醫院與無形之人

原文連結: Invisible Colleagues  (N Engl J Med 2015; 373:792-793) Photo Credit: Unsplash@Pixabay 在我受訓時,一個月裡總會見F兩次。他身材高挑、有著橄欖色的皮膚、臉上帶著雀斑、留微捲的短髮,總穿著一絲不苟的運動鞋端正地走著。F即將滿三十歲,F長期苦於輕度的氣喘。F的兩個小孩有時會在放學後來找他,孩子們也都患有氣喘與溼疹。F一家是道地的巴爾的摩人,他在渡鴉隊比賽前的週五會戴起渡鴉隊的耳環,並指責我置物櫃中「紫色的成分不足」。(*1)

溫柔生產:英美間對於產婦照護的歧見

證據導向醫學能夠告訴我們很多事,但卻沒辦法替我們決策。這篇文章當中提到的數據就是有趣的例子:對於定義清楚的低風險產婦來說,在家或者是由助產士協助生產的結果不比在醫院差,在生產經驗上或許是更好的,但在家生產的初產婦卻有將近一半無法順利而必須轉往醫院。   可是我們究竟要怎麼看待在家生產者有一半轉診的「證據」來下決定?看做「推動在家生產可以分流產科的病人數量而改善臨床人員對產婦的比例」,所以推動在家生產?或者是「那些在家生產的人有一半最後還是流回來變成產科的工作量,說不定還比自始住在病房更麻煩」,所以索性把所有人都收進病房裡然後卻沒有足夠的照護人力?   生產過程中臨床介入的兩難在其他的臨床領域上也可以看到:固然把所有人丟進加護病房或許能防範許多「未然」,但是為了這樣的安全感而大量消耗醫療資源的結果,卻反過來創造了一個整體因為超載而不安全的體系。

尿管水球考

Photo credit: Crystal Explosion via photopin (license)   那約莫是intern到一半的時候。記得那天我放尿管就要大功告成,隨手拿起換藥車上的空針想把固定用的水球打起來結束這回合的時候,碰巧路過的護理師一個飛身順手抄起空針: 「且住!你這針筒裡面裝的是……生理食鹽水吧!」   我定睛一看,啊呀,落在換藥車桌面上的空罐子果然是生理食鹽水,顯然是在抽的時候沒有專心。 「多謝女俠提醒,不過……那可以幫我抽一管純水嗎?我得扶著尿管,不太方便。」

使用β-lactam類藥物時是否需要先做Penicillin skin test?:從醫學與法律探討

View image | gettyimages.com 這個問題應該困擾很多人很久,尤其是實習醫生們被雜事追著跑之餘還要記十五分鐘後要看結果,這根本是剛好會忘記的時間長度嘛! 所以說,除了各院的內規之外,從醫學上來看到底什麼時候應該要做Penicillin skin test?而從法律的觀點來看,每天Penicillin skin test真的能讓訴訟遠離我嗎?

東京小屋的回憶

這是一個小小的昭和(*1)故事,記述那些生活裡普通到總是忘記的碎片:關於黏膩的夏天、關於西瓜、關於蟬鳴、關於颱風和停電、關於家庭那些瑣事、關於洋裝、關於年糕和晚餐。

交班,交班! Y U No Good Handoff!

研究 指出,良好的交班品質會改善病人結果並減少疏失。 交班,或者說「病人照顧的連續性」在醫師工時限制上一直是個問題。1989年,紐約州通過Libby Zion Law(住院醫師週工時不得超過80小時且不得連續工作超過24小時),有幾個州稍後跟進,直到2003美國畢業後醫學教育評鑑委員會 (The Accreditation Council for Graduate Medical Education, ACGME)將這個標準列為評鑑要求。因應工時的限制,醫院採行一些應對的措施,其中包括大夜制度 (night float system, *1)。

鯰魚很驚奇

這部電影雖然被歸類在喜劇,但是跟我想像中的喜劇還真是不太一樣。   習慣好萊塢的敘事風格還有運鏡之後,看來自其他地方的電影都會覺得運鏡啦、色調啦、還有音樂跟音效很新奇。這個導演對於特寫的熱愛顯而易見,前段的電影裡換場之後幾乎都是大特寫,一隻手、幾片麥片、或者是背包拉鍊,還有一些要想一下才認得出來的東西。搭配上手持拍攝的畫面晃動,整個影片的氛圍相當的疲倦,我猜導演是在模仿上了一整天班昏昏欲睡的走回家的感受:不時的閃神發呆,回過神來發現自己正盯著自己的指尖不知道在看些什麼,走在路上覺得很慢很慢,看到招牌路標在心裡讀了一次或兩次卻沒有真的看進去,等回到家裡坐下回想在路上到底看到了什麼其實也說不太上來。

Everyday Rebellion & 三里塚:第二堡壘的人們

必須讚嘆一下IMDB資料庫的博大精深,連我原以為很冷門的紀錄片們都有評分耶。這個兩個週末碰巧看了談公民不服從的電影,所以為了完整性,決定把它們合在一起寫。   先簡單說明一下背景資訊,Everyday Rebellion主要講的是美國的佔領華爾街、伊朗與敘利亞的反對運動、烏克蘭的抗爭團體Femen、西班牙的佔領La Puerta del Sol。

控制 Gone Girl

和我一起的朋友看完電影後在臉書上說「看完之後,決定不要結婚了」; 另外一個朋友說,「我上了一課:千萬不要娶太聰明的女生」。(對啦,我的身邊充滿了男人。)