發表文章

目前顯示的是 2019的文章

使用 git rebase 修改歷史的 commit

圖片
假設,現在的 commit log 如下: commit 1 ad34gf commit 2 3de76k commit 3 99i8ue 一般使用 git commit --amend 只能修改最後一個 commit,也就是 commit 1 ad34gf ,但是要怎麼修改再之前的 commit 呢? 這時候就要使用 git rebase 的指令。假設我們要修改 commit3 99i8ue 。 輸入以下指令: $ git rebase --interactive 99i8ue^ 請注意,commit 號碼後面要加上 ^ 符號 然後就會進入類似編輯 commit 的畫面,並且有類似下面的資料: pick 99i8ue commit 3 pick 3de76k commit 2 pick ad34gf commit 1 把第一行的 pick 改成 edit 後儲存: edit 99i8ue commit 3 接下來,修改要變更的文件,修改完成之後,使用 git commit --amend 來變更 commit。 最後,再輸入以下指令完成修改: git rebase --continue 參考資料 https://stackoverflow.com/questions/1186535/how-to-modify-a-specified-commit 關鍵字: git, rebase ​

在 Ubuntu 18.04 安裝 Microsoft Office 2010

圖片
使用 Linux 最麻煩的就是 Office 文件的相容性,雖然不常用到,但是工作上偶爾要編輯檔案的時候,總是非常頭大。其實,在 Linux 下用 Office 最簡單的方式,就是先用 VirtualBox 安裝一個 Windows XP 的系統,然後再安裝 Office,實際使用下來,在第一代 i5 處理器的筆電上執行還算順暢。不過在網路上也有別人分享直接用 Wine 安裝 Microsoft Office 2010 的經驗,而且相容性還不錯,於是就來試一試。 安裝步驟 安裝 PlayOnLinux sudo apt install playonlinux 安裝 wine 3.8 新增 Wine 3.8 32-bit 虛擬磁碟區 安裝 riched20、dotnet20、msxml6,三個套件 在這個虛擬磁碟區執行 Office 2010 安裝檔 心得 其實安裝方式還滿簡單的,能執行 Word、Excel、PowerPoint。第一次開啟的速度很慢,但之後就滿快的,而有些中文字型在顯示上,看起來不太一樣。剩下的可能還要再多用一陣子才會知道。 要把程式加入應用程式選單的話,可以先建立捷徑到桌面,再把桌面捷徑移到 ~/.local/share/applications 。 整體來說,使用 VirtualBox 來執行 Office 的體驗比較好,但是就是要佔用比較多記憶體,開啟速度比較慢。對於不常用 Office 的人來說,使用 PlayOnLinux 安裝執行 Office 2010 還算堪用。 參考資料 https://askubuntu.com/questions/1041022/how-to-install-office-2010-32-bit-on-ubuntu-18-04 關鍵字: Linux, Ubuntu, Microsoft Office, PlayOnLinux, Wine ​

血庫人的夢魘 - 令人崩潰的抗癌新藥

圖片
身為血庫醫檢師,剛入行的時候最怕的就是合不到血。一來是花很多時間合了好幾十袋的血都不一定合得到,二來是抗體鑑定也會變得非常複雜,要花很多心思也不見得能找出答案。那麼,我又有一個壞消息要告訴各位:今年 (2019年) 二月在 Transfusion 的文章 (Velliquette et al., 2019),告訴大家抗癌藥物的新藥,將會嚴重影響輸血前檢驗,而且幾乎影響所有輸血前檢驗項目。 什麼是 CD47? CD47 是一個非常複雜的穿膜蛋白,存在於幾乎所有的細胞表面 (P.A. Oldenborg, 2013)。較早期的研究,主要是在討論它在細胞訊息傳遞上的功能,主要是與 integrin 作用,幫助訊號從細胞外傳到細胞內,當時稱作 integrin associated protein (IAP),直到蛋白質體檢驗技術成熟後,才發現到 IAP 與紅血球上的 CD47 是同一種東西。另外,在卵巢癌細胞 ovarian carcinoma 上發現大量表現的 OA-3 antigen,後來也被發現它也是 CD47。 CD47 在不同細胞上,有不同的功能。包含了細胞的分化、apoptosis、phagocytosis 及白血球的趨性等等,它不單只有和 integrin 作用,也存在於卵巢癌細胞之外的其他癌細胞上,因此上面兩個名稱就越來越少用,比較常稱作 CD47。 紅血球上的 CD47 圖片來源 紅血球上也有表現大量的 CD47 (Dahl, Westhoff, & Discher, 2003),它跟 Rh 抗原的表現有關。從 CD47 的結構圖可以看到,CD47 在紅血球上,是跟 RhCE 的抗原在同一個位置上,因此紅血球上 CD47 的表現量跟 RhCE 的表現量有關。Rh ccdee 血型的紅血球表現量多的 CD47,而不含 RhCE 抗原的血型的紅血球上,CD47 的表現量少了 75%。Rh null 完全沒有 Rh 抗原的血球上,只存在少量的 CD47。 由於紅血球沒有細胞核,所以紅血球上的 CD47 沒有協助 integrin 的功能。在發現 IAP 跟 CD47 是相同物質之後,開始有不少研究在了解 CD47 在紅血球上的功能,想要了解 CD47 除了跟 integrin 有關的其他功能。 2000年的研究中 (...

ABO discrepancies

圖片
ABO 血型鑑定通常會測血球型及血清型,就是所謂的 forward typing 及 reverse typing。正常的情況下,有抗原就沒有抗體,沒抗原就有抗體,簡單的說就是有 A 抗原的人沒有 A 抗體。然後,有時候會發生病人病人同時有抗原且有抗體,或是沒抗原且沒抗體,這種情形就稱為 ABO discrepancies。 遇到 ABO discrepancies,對於輸血醫學不熟悉的人,通常會認為是 ABO 亞型。事實上,ABO 亞型確實會出現 ABO discrepancies 的現象,不過 ABO 亞型佔的人口比例非常非常的低,臨床上不常遇到 (遇到的話,可以去簽樂透了) 。 依照反應的結果,可以做以下的分類: 抗體多 anti-A anti-B A cell B cell Results 4+ neg weak 4+ 抗體少 anti-A anti-B A cell B cell Results 4+ neg neg neg 抗原多 anti-A anti-B A cell B cell Results 4+ weak neg 4+ 抗原少 anti-A anti-B A cell B cell Results neg neg 4+ neg 一般來說,可以先把反應較弱的部分視為陰性,看看 forward 和 reverse typing 是否能對得起來,或是取反應結果較明確的 forward 或 reverse typing,作為推測病人血型的依據,接下來再找出抗體或抗原消失或多出來的原因,即可確認該病人的血型。 大部分會發生 ABO discrepancies 的原因,可能是因為病人的疾病、治療、年齡、輸血經歷等有關,比較合理的做法是要先排除上述原因之後,才會考慮 ABO 亞型。 未來有機會再分享實際遇到的案例。 延申閱讀 BBguy ​

Terminal 預設換行

圖片
使用 linux 多少會用到 terminal,畢竟很多時候下指令比按滑鼠方便多了 (可能只有我覺得啦) 。但是,當位置在比較內層的資料夾時,顯示的位置就非常的長,使得指令打著打著不知不覺就換行了,而以還會換在奇怪的地方,很不好看。 當然,解決這個問題得方式非常簡單,就是在下指令前先打 “\”,就可以換新行: USER@HOST:YOUR_LOCATION$ \ > 但是有沒有方式讓 terminal 預設就是換行的呢?試著 Google 一下,答案是肯定的。開啟 ~/.bashrc 這個檔案,在最下面加上: # Add a new line at the end of the command prompt PS1=${PS1%?} PS1=${PS1%?}\n'$ ' 存檔之後重新開啟 terminal 就完成了。 BEFORE AFTER (好像沒什麼差啊) ​

利用 conda 管理 Virtual environment

圖片
Python 是一個相當容易學習的程式語言,網路上有不少教學資源,適合自己學習。我自己學習了一段時間,開始有越來越多的小程式,因此發現一些問題。Python 套件的開發速度滿快的,很多套件再更新之後,裡面 method 名稱跟用法可能會跟上一個版本不同,有時候在重新安裝 Python 環境的時候,因為套件版本不同,導致以前寫的程式無法順利執行。 解決這個問題的方法就是始用 virtual environment。Virtual environment 是 Python 的虛擬環境,可以獨立安裝套件。最簡單的例子就是你可以在一個虛擬環境使用 Python 2,另一個使用 Python 3。在不同的 project 各自始用不同的虛擬環境,可以避免套件不同版本的影響。 今天來介紹一下利用 conda 這個套件來管理虛擬環境。 開始新的環境 建立新的環境 $ conda create --name ENVNAME python=2.7 PYTHON-PACKAGE 啟動環境 $ activate ENVNAME 關閉環境 (ENVNAME)$ deactivate 匯出環境 將已存在的環境匯出成 yml 檔。 $ conda env export > environment.yml 從 yml 檔建立新環境 $ conda env create -f environment.yml 從 yml 檔更新環境 (ENVNAME)$ conda env update -f=environment.yml 移除環境 $ conda remove --name ENVNAME --all 查看可用的環境 $ conda env list # conda environments: # base * C:\Users\USER\Anaconda2 py3env C:\Users\USER\Anaconda2\envs\py3env statistic C:\Users\USER\Anaconda2\envs\statistic testpy2 C:\Users\USER\A...

Thomsen‐Friedenreich antigen (T 抗原) 活化病人之輸血策略

圖片
目的 Thomsen‐Friedenreich antigen (T 抗原) 是指紅血球上的 Sialic acid 被細菌所產生的 neuraminidase 破壞之後,所呈現出的抗原。由於大多數的成人血液中皆含有 Anti-T 的抗體,過去曾有案例指出此抗體可能造成曝露出 T 抗原之紅血球溶血,因此本院目前針對 T 抗原陽性的病人給予洗滌紅血球,並儘量避免血漿類的血品使用,如需輸用血小板,則給予減少血漿之血小板。然而,洗滌紅血球並無設庫存需特別向捐血中心訂製,減少血漿的製作也相當耗時繁鎖,而且在血品開封後,洗滌紅血球保存期限縮短為 24 小時,血小板為 4 小時,同時有增加細菌汙染的可能,更有文獻指出,血小板在移除血漿之後,血小板的活性會下降(Veeraputhiran et al. 2011)。本文將搜尋過去文獻,討論對於 T 抗原活化的病人是否必須輸用洗滌紅血球或是減少血漿之血小板。 T 抗原與 Anti-T 抗體 在 1925 年就發現到在測血型時,受到細菌汙染的檢體容易造成紅血球的多重凝集,而容易使血型檢驗錯誤。最先是由 Thomsen 現到這個現象,而 Friedenreich 進一步找出造成此現象的細菌酵素,它會使紅血球上的隱藏抗原顯露出來,後人稱此隱藏抗原為 Thomsen‐Friedenreich antigen 簡稱 T 抗原,而成人血漿中都含有可凝集露出 T 抗原紅血球的抗體 Anti-T(Crookston et al. 2000)。較常見會引起 T 抗原曝露的細菌包含 Streptococcus pneumoniae、Clostridium perfringens、Vibrio cholera,它們產生的 neuraminidase 能移除紅血球上的 Sialic acid,讓在下面的 beta-linkage 之 D-galactose 結構曝露出來,成為 T 抗原的位置,這個現像稱為 T 抗原活化。臨床上 T 抗原活化常見於受肺炎鏈球菌感染或患有壞死性小腸結腸炎之新生兒(Klein, Novak, and Novak 1986; Wang et al. 2011),以及重症菌血症之成年人(Lenz et al. 1987)。Anti-T 的形成方式與 ABO 血型的 Anti-A 及 Anti-B 類似,一般認為是人類在接觸到...