2016年6月30日 星期四

PyMOL用CE來對齊結構

用PyMOL在比較兩個蛋白質分子結構的時候,可以使用CE (Combinatorial extension) alignment來對齊結構,指令就叫做cealign,用pymolwiki上面的例子:

PyMOL> fetch 1c0mB 1bco, async=0
PyMOL> as ribbon
PyMOL> cealign 1bco, 1c0mB, object=aln
RMSD 4.958121 over 152 residues

第一行抓取兩個蛋白質1c0m與1bco
第二行讓者兩個分子只顯示C-alpha原子連起來的樣子
第三行做CE alignment,注意這邊會是以前面的1bco為準移動後面的1c0m過去。最後顯示共對齊152個residues,其C-alpha原子在座標空間上的RMSD會是4.96 Å

若是在分子模擬的結果,同時載入幾百個隨時間而改變的結構,希望能夠通通對齊初始結構(假設叫做md_0ns),那可以用下面的指令一次排好:
  • for x in cmd.get_names():  cmd.cealign("md_0ns", x)
第一行是根據整個結構做對齊。由於cealign的RMSD只會計算他有對到的部分,所以如果要算整個結構的C-alpha RMSD,必須要用 rms_cur 這個指令。最後用下面的指令一次直接幫所有結構著色:
  • for x in cmd.get_names():  cmd.spectrum("count",selection=x,byres=1)
這樣就會顯示N端藍、C端紅,而且不用每個結構都重打一次指令

_EOF_

2016年6月29日 星期三

投稿科學期刊的狀態與時程

做科學研究有了成果以後,通常會把結果看要是寫成專利、或是發表在期刊上。要發表在期刊上,首先要先選相關的期刊,投稿後經過編輯與審議委員的決定後,才會知道是被接受發表還是被拒絕。在這投稿到最終知道結果中間,期刊通常會有追蹤系統,可以讓投稿者知道目前審理狀態。
這邊翻譯Kakoli Majuder寫的《Tracking your manuscript status in journal submission systems》,條列可能的審理狀態:
  1. Manuscript submitted:遞交草稿(雖說是草稿,但其實已經是作者的完稿了)
  2. Editor Invited:選編輯,通常不會看到這狀態
  3. With Editor:草稿在編輯手上,考慮是否合適這本期刊、送給哪些審議委員。如果草稿不適合此期刊的話,編輯有權利直接退回給作者,這時候就會直接顯示"Decision in Process",通常作者幾天內就會收到拒絕信。
  4. Reviewer Invited:編輯送邀請函給審議委員(peer reviewers),等待委員同意是否要審理。同意就往下走,不同意則回到With Editor。
  5. Under Review:草稿在審議委員手上。此工作算是榮譽職,因為需要花費許多心思在讀與判斷論文好壞上面,所以這段時間可能會很久(看不同領域,一到四個月都有可能)
  6. Required Reviews Complete:所有的委員都審議結束。有時候如果編輯覺得,還需要更多審議委員來判斷,那也有可能走會前一步Under Review,再走回這步。
  7. Decision in Process:編輯正在決定草稿的命運。通常作者幾天內就會得到作者的決定,但要是編輯非常忙碌的話,可能會多等一些時間。
  8. Revise:根據審議委員的意見,作者被要求大修(major revision)或是稍微修改(minor revisions)。通常作者會有幾週到幾個月的時間可以修改草稿,完成後作者再把修改過的草稿(revised manuscript)與答覆委員的回應寄回給期刊。
  9. Revised Manuscript Submitted:作者送交修改過的草稿回期刊,等著做格式確認。會有下面10, 11, 12, 13四種可能的狀況
  10. Author Declines to Revise:作者不爽不想要改,直接撤回原稿
  11. Complete Withdrawal:如果不想投這期刊了,要記得收到編輯的確認信,確認退稿成功後才能夠再投其他期刊,不然會被算是一稿多投
  12. Completed Reject:拒絕
  13. Complete Accept:接受
從上述可以看到,嚴謹的執行每一步驟,每篇期刊論文除了作者的辛勤工作以外,還有編輯、審議委員花費時間去讀、並給予建議與評論,讓刊登的期刊論文更加完整。整個過程就很漫長,之前有看過說從投稿到接受的時間中位數是一百多天... 這還不算作者之前的工作時間

_EOF_

2016年6月28日 星期二

Vim刪除一段內容

使用Vim編輯文字檔案時,若想要某個段落的內容,可以在一般模式下輸入:
  • 19dd
上述的指令會刪除從游標開始算共19行的內容

另外一種在一般模式下的方式則是依序執行:
  1. 移動游標到欲刪除區塊的第一行
  2. 依序按下 ma,意思是游標出現的那一行做個編號叫做"a"(mark "a")
  3. 移動游標到欲刪除區塊的最後一行
  4. 依序按下 d'a,意思是刪除從mark "a"到此行的內容
第三種方式則是使用Ex模式:
  • :24,39d
第一行是刪除24到39行的內容
以上內容參考《vim - How to delete a large block of text without counting the lines?》

_EOF_

2016年6月27日 星期一

GROMACS用GBSA不支援鋅離子

用GROMACS-5.1.2,想要用GBSA(Generalized Born model augmented with the hydrophobic solvent accessible surface area (SA) term)這種implicit water來跑含有zinc ion的系統,結果出現下面的錯誤訊息:
Can't do GB electrostatics; the implicit_genborn_params section of the forcefield is missing parameters for 18 atomtypes or they might be negative.
For more information and tips for troubleshooting, please check the GROMACS
website at http://www.gromacs.org/Documentation/Errors
應該是因為沒有鋅離子相關的參數

2016年6月24日 星期五

Vim貼上的時候不要自動縮排

用Vim寫程式有個很貼心的功能,就是在換行的時候Vim會根據code內容自動縮排。但當要用GUI畫面複製貼上程式碼的時候,這種貼心反而會造成排版麻煩。使用下面的ex命令(不清楚ex命令請參考《開始使用vi或vim》)可以一次性關閉自動縮排:
  1. :r! cat  然後按Enter
  2. 這個時候貼上程式碼 然後再按一次Enter
  3. CTRL+D
這樣在貼上程式碼的時候就不會自動縮排搞亂排版了~

2016年6月23日 星期四

讓QuickTime同時播放多部影片

想要一聲令下讓QuickTime同時開始播放多部影片很簡單,首先把所有影片用QuickTime打開,調整每一部要開始的地方後同時按下:
  • Command+Return
所有影片就會同時開始播放,再按一次就會同時停止。
上述方法對QuickTime 10.4 (855) 有效,此方法來自Jon Walker對《How can I play several files at the same time with QuickTime X?》的回應

_EOF_

2016年6月22日 星期三

儲存PyMOL的場景(Scene)

使用PyMOL將分子結構繪製完畢後,可以使用menu上面Scene的選單來儲存各種場景:
  • Scene > Store > F1:將場景儲存到F1
  • Scene > Recall > F1:顯示F1的場景,也可以直接按 F1 這顆按鈕來顯示
  • Scene > Clear > F1:將F1的場景刪除
若在看結構的時候嫌scene的按鈕太醜,可以用下面的指令關掉或打開
  • set scene_buttons, 0
  • set scene_buttons, 1
另外要重排某個場景的順序,可以用滑鼠右鍵拖放

由於Scene的選單只有 F1~F12 十二個選擇,且都會跟functional keys搭配;但直接用指令指派場景編號的話,可以用各種字串儲存而不被限定在 F1~F12 這12種編號裡面

2016年6月21日 星期二

碳酸酐酶(Carbonic anhydrase)

人體中的氧氣是由血紅素運送,但二氧化碳則不太一樣,少於10%直接溶於血漿中、約莫20%則是由血紅送運送、剩下的70%則被轉成碳酸,然後碳酸溶於血漿中運送。將在水中的二氧化碳轉換成碳酸,然後再轉回二氧化碳的酵素叫做碳酸酐酶(Carbonic anhydrase)。這種酵素有很高的turnover number(約莫是每秒 400,000 到 600,000),也就是每秒可以將上述的轉換的反應做個幾十萬次(這才是每秒幾十萬上下啊...)。這個酵素在1933年就被從牛的紅血球中辨識出來,然後發現在哺乳動物、植物、藻類與細菌中含量都很多。

這個古老的酵素可以分成三群不論是在序列、還是在結構上都非常不像的集合:
  • Alpha carbonic anhydrase,例如哺乳動物的,都是單體(monomer)。參看1CA2(人類的carbonic anhydrase II)
  • Beta carbonic anhydrase,植物的在這一群,有可能是雙體(dimer)、四體(tetramer)或六體(hexamer)或八體(octamer)。參看1DDZ(藻類的)
  • Gamma carbonic anhydrase,產烷細菌的在這群,是個三體(trimer)。參看1THJ甲烷疊球菌的碳酸酐酶)
雖然這三群長得很不像,但是他們都一樣活性中心包含著Zinc ion(s),也都會轉換二氧化碳與碳酸。由於這三群長得很不像、但是卻又有相似的功能,因此這是一個趨同演化的例子

      上述的alpha carbonic anhydrase存在十多種不同的形式,序列上的差異導致活性的不同。例如說肌肉裡面的carbonic anhydrase的活性就比唾液中的活性要低。更多的資訊參照InterPro裡面的Jennifer McDowall寫的文章

      由於carbonic anhydrase與血液中碳酸的量很有關,不但會與血液的pH值相關,也會與體液平衡有關。最近carbonic anhydrase inhibitor可以用來治療青光眼(glaucoma),但是不斷使用這藥物會影響到其他組織,最終會傷害到肝臟與腎臟。

以上大部分內容翻譯自PDB-101由Shuchismita Dutta, David Goodsell寫的文章Carbonic Anhydrase,裡面有許多漂亮的蛋白質結構圖片與簡單介紹此蛋白質如何催化反應

_EOF_

2016年6月20日 星期一

用find找檔案

在類UNIX系統(像Linux, Mac, BSD...)下面找檔案的指令叫做find。使用find,可以根據下面幾個檔案的特徵來搜尋:
  • 名稱:不一定要全名,可以是某個pattern
  • 型態:例如「檔案」、「目錄」、「連結」等等
  • 大小:大於或小於多少MB的檔案
  • 時間:檔案建立的時間、修改的時間
  • 擁有者:檔案由哪些人擁有

2016年6月17日 星期五

GROMACS續跑

跑分子模擬會有兩種狀況必須要續跑:一是跑到一半系統因為其他緣故關機,另外一種則是已經跑完但想要延長模擬的時間。在此用GROMACS-5.1.2為例子,說明如何續跑。

首先是最初跑模擬的指令,結構與設定都存在 md.tpr 這個檔案中,假設跑10 ns
參數 -deffnm md 意思是說,所有產生的檔案都用md開頭,像是 md.cpt與md_prev.cpt(checkpoint file)、md.xtc與md.trr (trajectory files)、md.edr(energy file)、md.gro(最終的結構)。參數 -nt 8 意思是用八個核心去跑,參數 -v 是碎念模式


第一種狀況:電腦因為其他原因把模擬的程式給關掉,假設只跑到7.7 ns
  • gmx mdrun -deffnm md -cpi md.cpt -nt 8 -v -append
這時候要從7.7 ns開始續跑。檔案 md.cpt 是所謂的checkpoint file,一段時間系統會把狀態存在這個檔案裡面,有可能跳掉前存到7.5 ns。上面的指令就會去存取 checkpoint file,然後從存取的點開始繼續往後跑。參數 -append 指定續跑的資料要附加在原本的檔案後面。
¡¡ 注意:這邊一定要指定checkpoint file,不然就是直接從頭開始跑 !!


第二種狀況:已經跑完10 ns的模擬了,想要續跑到20 ns
  • gmx convert-tpr -s md.tpr -until 20000 -o md_10_20.tpr
  • gmx mdrun -deffnm md_10_20 -cpi md.cpt -nt 8 -v 
  • gmx trjcat -f md.xtc md_10_20.xtc -o md_20ns.xtc
第一個指令是產生跑模擬的設定檔,設定要跑到20 ns(= 20000 ps);第二個指令則是要求從前面跑出來的檢查檔 md.cpt,也就是10 ns開始跑。兩個指令就是要求續跑 10 - 20 ns。最後一個指令則是將前面兩個trajectories給連結起來,成為一個完整的 0 - 20 ns的檔案。

2016年6月16日 星期四

用ntpdate校對時間

要校正系統的時間,直接用ntpdate(要自己另外安裝)就可以了:
  • ntpdate time.stdtime.gov.tw
  • ntpdate -s watch.stdtime.gov.tw
  • date
  • hwclock -w
上面兩個指令都是跟國家時間與頻率標準實驗室作同步,只是一台機器是time、另外一台機器是watch。下面指令的參數 -s 意思是校正時間後的相關訊息存到 /var/log/syslog 裡面。第三個指令是看系統時間;最後的指令則是把系統時間寫到 BIOS 裡(參考這篇)。

使用 date 看時間,出現像是 Fri Jun 17 10:55:05 CST 2016 這種格式
但 CST 其實可以代表下面五個時區(部分參考《24时区,GMT,UTC,DST,CST时间详解》):
  • 澳洲中部時間:Central Standard Time (Australia) UTC+9:30
  • 中原標準時間:Chungyuan Standard Time UTC+8:00
  • 中國標準時間:China Standard Time UTC+8:00
  • 古巴標準時間:Cuba Standard Time UTC-4:00
  • 美國中部時間:Central Standard Time (USA) UTC-6:00
中原標準時間(CST, Chungyuan Standard Time)也叫做國家標準時間(NST, National Standard Time)或是台灣時間(TST, Taiwan Standard Time)或台北時間(Taipei Time),UTC 則是世界協調時間。台灣時間的歷史請參考英文維基百科《Time in Taiwan》

2016年6月15日 星期三

MarkDown的註解或隱藏內容


使用MarkDdown編輯文件時,有些註解(comment)不希望被看見,可以這樣做

<!-- 這句看不見,一句話的註解 -->

<!-- 將一個段落隱藏看不見
這   
段落  
輸出時   
會看不見
-->

上面紅色箭頭包含的區域就是MarkDown註解的部分,在輸出格式化文件時候不會出現。
更多詳細的部分請看leafy7382翻譯的語法說明

_EOF_

A living quarters on a spaceship, with destroyed bunks and personal belongings scattered across the room. The scene should be filled with a sense of loss and tragedy as visitors imagine the lives that were lost in the battle with dark sci style
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2678983490, Size: 512x256, Model hash: a757fe8b3d, Model: chilloutmix_, Version: v1.6.0-2-g4afaaf8a
Time taken: 5.9 sec.

2016年6月14日 星期二

Bash的命令提示字串

在Linux或Mac中使用指令列的時候,良好的命令提示字串(Prompt)會讓工作更加方便。在此介紹我用的命令提示字元:
                                                                                  
username@hostname:~/Desktop                                  
2016-06-14 05:00:58 jobs:0 cmd:130                           
$                                                                               

為了分別前一個指令,第一行特地多留一個空白。
第二行顯示使用者與主機,後面接工作目錄。由於工作目錄可能很長,放在後面順便斷行。
第三行顯示日期與時間、背景工作的數目、最後顯示登入後下的指令序數
錢字號開頭這行開始輸入指令。

以上的顯示方式的設定內容,在Linux中存放在~/.bashrc裡面,在Mac裡面則存放在~/.profile
PS1="\n\e[0;32m\u\e[m@\e[0;34m\h\e[m:\e[0;31m\w\e[m\n"
PS1+="\e[0;30;47m\$(date +%F)\e[m \e[0;33m\T\e[m jobs:\e[0;35m\j\e[m cmd:\e[0;36
PS1+="\$ "

上面看起像亂碼是因為ASCII上色的緣故:只要看到被\e[0;3Xm\e[m,中間的字元都會顯色,更多的內容請參考G. T. Wang寫的《自訂 Linux 的 Bash Shell 命令提示字串 Prompt》《Prompt進階格式》

_EOF_

2016年6月13日 星期一

Mac其Shell的設定與啟動順序

在Mac下面開啟終端機(Terminal)的時候,使用的Shell應該是/usr/bin/login(應該是Bash),會依序去讀取下面幾的設定檔案:
  1. /etc/profiles:這隻會去叫/etc/bashrc
  2. /etc/bashrc:提示符號(prompt,PS1)在這邊設定。這隻會去叫/etc/bashrc_Apple_Terminal
  3. /etc/bashrc_Apple_Terminal:大部分終端機的設定都會放在這邊。裡面會看到當終端機執行的時後,所有的session的資料會放在~/.bash_sessions/裡面
  4.  分成登入與非登入(non-login shell)與非交談式(non-interactive)三種狀況
    1. 登入依照先後次序讀 ~/.bash_profile~/.bash_login~/.profile,似乎是只要讀過其中一個就不會再讀後面的。登出的時候會去讀取~/.bash_logout
    2. 非登入:這種情況會發生在已經登入主機了,只是要更換Shell。這時只會讀取 ~/.bashrc
    3. 非交談:通通都不會讀取,因為如果用script自動處理的話不需要起始許多東西
BashBrian Fox在1988年在Free Software Foundation開始發展的shell,是Linux與Mac OS X預設的Shell。現在大多數UNIX-like系統的登入Shell都是用Bash

參考資料

_EOF_

2016年6月10日 星期五

看GROMACS的binary files的內容

用GROMACS跑分子模擬時,許多檔案都會存成binary files(簡單說就是給機器讀的檔案、人沒辦法讀)。這些檔案包含了:
  • Portable xdr run input file:以 .tpr 結尾
  • Trajectory files:以 .xtc, .trr 結尾
  • Energy file:以 .edr 結尾
  • Checkpoint file:以 .cpt 結尾
  • Hessian matrix:以 .mtx 結尾

在GROMACS-5.1.2裡面,使用 gmx dump 這個指令,可以把binary files變成text files,這樣才能夠讀的懂內容。例如說下面的指令把 md.tpr 轉成 md.tpr.ascii:
  • gmx dump -s md.tpr > md.tpr.ascii
去讀 md.tpr.ascii 就可以看到裡面包含了分子模擬的設定,分子的結構等等資訊。
目前遇到的問題是可以把 md.tpr 這個binary file轉成ascii file,但是卻沒有辦法把這個檔案轉回去。這個檔案的結構是Portable XDR format,也許要去參考grompp這個指令的原始碼,看是如何轉檔案的...

_EOF_

2016年6月9日 星期四

開始使用vi與vim

使用UNIX-like系統,一定會用指令列;使用指令列,一定會需要編輯文字。vi(visual editor)就是最常被使用的一種文字編輯器,vim(vi improved)則是vi的改良版。下面的指令意思是使用vim編輯一個叫做parody的文件:
  • vim parody

2016年6月8日 星期三

分子模擬選擇的水分子模型

跑分子動態模擬的時候,當挑選了一種force field,通常都會有建議搭配的水分子模型(water model)。以下就是GROMACS-5.1.2推薦的force field + water model配對:
  1. AMBER03+TIP3P    
  2. AMBER94+TIP3P
  3. AMBER96+TIP3P
  4. AMBER99+TIP3P
  5. AMBER99SB+TIP3P 或 TIP4P-Ew
  6. AMBER99SB-ILDN+TIP3P
  7. AMBERGS+TIP3P
  8. CHARMM27+TIP3P
  9. GROMOS96 43a1 + SPC
  10. GROMOS96 43a2 + SPC
  11. GROMOS96 45a3 + SPC
  12. GROMOS96 53a5 + SPC
  13. GROMOS96 53a6 + SPC
  14. GROMOS96 54a7 + SPC
  15. OPLS-AA/L + TIP4P
簡單說就是GROMOS +SPC、OPLS +TIP4P,剩下的都用TIP3P

2016年6月7日 星期二

Mac無法調整音量

硬碟更換到另外一台Mac筆記型電腦上面後,系統重開機就變成無法調整音量大小。用了下述的指令(在coldnew's blog裡面找到相關解法),音量調整按鈕就又可以用了。
  • sudo killall coreaudiod
搜尋了一下,coreaudiod (system core audio daemon)似乎有許多相關的討論,似乎有時候會吃掉許多CPU資源。
另外,換硬碟後系統開機出現了"no bootable device"這個訊息。解決方案是開機後按住option,等出現開機硬碟後就能夠開機了

_EOF_

2016年6月6日 星期一

如何選電腦

自行選購零件、動手組裝一台電腦主機可以是一件有趣的事情,只要依照下面的幾個步驟依序執行,就能夠學到相關的知識又可以組出符合需求的主機:
  1. 選一台最喜歡的套裝電腦
  2. 分析內部的零件,功能不足的部分再升級
  3. 找尋這個升級方案的價格,與此升級方案是否相容於原來的主機
  4. 判斷是否功能足夠且總價沒有超出預算,如果不是回到步驟2,循環做到前面的條件滿足為止。通常而言,多來回幾次就會慢慢逼近最終的方案;而且多做幾次會更加了解自己的需求與各種可能的解決方案
  5. 把需要的零件買齊,開始組裝

以上最重要的就是第1步,一定要選自己最喜歡的當作模板。因為喜歡,才會有動力去分析了解相關的零件與功能;因為喜歡,才會知道自己願意花到多少錢來把它買回來。不過人生通常會是這樣,一開始最喜歡的不會是最後選的。如果根據上述的步驟來做,最終選擇的方案可能會有殘念的感覺,但是不會後悔、因為在步驟2, 3, 4之間的循環會幫助思考自己的需求與可能的解決方案。類似的概念不只可以用在組裝主機上,對於選購筆電或是其他產品也可以依樣畫葫蘆。

不過如果一開始最喜歡的非常不適合自己,那還是會導致找不到可行的解決方案。如果花了很多精力發現根本是無解,那就必須要砍掉重練,跳回第1步重選一個喜歡且適合自己的方案重新再來~

_EOF_

2016年6月3日 星期五

讓xmgrace預設出圖是PNG檔

xmgrace是套在X window上運行的grace,專門用來畫圖的古老軟體。分子模擬軟體GROMACS輸出的資料檔.xvg,可以直接用xmgrace開啟。此套軟體預設出圖會是印表機,但一般狀況下通常會想要輸出圖檔就好,這時候只要修改 ~/.grace/gracerc.user 這個檔案,加入:

HARDCOPY DEVICE "PNG"
DEVICE "PNG" DPI 300

這樣之後打開xmgrace點Print指令就會直接輸出解析度達300 dpi的PNG檔案。以上方法參考了Louic's weblog的文章《Some xmgrace tips》,更多的操作參考Grace Users's Guide (for Grace-5.1.22)。如果想要直接出圖,那就輸入下面的指令:
  • xmgrace -nosafe -hardcopy your.xvg

直接根據 your.xvg 的資料生成一個叫做 your.png 的PNG圖檔。更多關於xmgrace batch file參考這個網頁

_EOF_

2016年6月2日 星期四

在PyMOL中更改序列的編號

用PyMOL開啟分子後,序列的編號會根據PDB檔案內儲存的號碼。有時候N端第一個位置的編號是負數、像是-5 等狀況。以下以crambin為例子,把序列的一個位置的編號改成7:
  1. run renumber.py
  2. fetch 1crn
  3. renumber 1crn, 7
以上的renumber.pyThomas Holder提供。

_EOF_

2016年6月1日 星期三

血清白蛋白(Serum Albumin)

人類血清中的蛋白質,含量最多的就是白蛋白(Albumin),約莫在 3.5 - 5.5 gm/dL (公克/100mL)、50 - 60% 的血清蛋白都是Albumin。立體結構如下:
Superimposition of five albumins, including 4L8U, 2XVV, 1HK3, 1HK5, and 1E7I
Albumin擁有許多功能,像是平衡血液的滲透壓、幫助攜帶不易溶於水的分子例如說脂肪酸、止痛藥ibuprofin等。相關的結構與功能可參考PDB 101上面的文章《Serum Albumin》、更多的詳細的說明可參考Albumin.org,中文的看林怡萱寫的《血清白蛋白》