2016年4月29日 星期五

用mdadm加入hot spare的硬碟

熱備援(Hot spare)硬碟就像是備胎一樣,當某個磁碟陣列壞掉後,可以直接補上去重建磁碟陣列。指令也很簡單,例如對於/dev/md2這個RAID6的磁碟陣列,想要另外加入另外一個熱備援硬碟/dev/sdk1,下面第一個指令是加入,第二個則是驗證
# mdadm --add /dev/md2 /dev/sdk1
# grep sdk1 /proc/mdstat

2016年4月28日 星期四

安裝GRUB到硬碟上再驗證

GNU GRUB是讓電腦啟動的程式(這種程式叫做boot loader)。通常GRUB會安裝在硬碟的MBR(Master Boot Record)區域,也可以裝在某個硬碟分割區的PBR(Partition Boot Record)上面。一般來說系統裝好以後,會自動安裝到硬碟上面,但對於系統放在RAID1上面的情況,就必須要另外安裝到其他硬碟上面。重新安裝參考這篇文章

例如說想要安裝到第二個硬碟的MBR上面
# grub-install /dev/sdb
或是想要安裝到第二個硬碟第一個分割區上面
# grub-install /dev/sdb1

2016年4月27日 星期三

子程序使用的系統資源

前面提到程式可以產生很多子程序,這邊則是說明如何監控這些子程序,進而看要不要刪除這些死掉的程序。

首先執行《Bash的影分身術:Fork》裡面的fork.sh,下面第一個指令是看fork.sh與其產生的子程序的process IDs,第二個指令則是用top看前面20個子程序吃掉的系統資源
$ pgrep fork.sh
top -p `pgrep fork.sh | head -n 20 | tr "\\n" "," | sed 's/,$//'`
  • top -p:透過process IDs來監控使用資源
  • pgrep fork.sh:抓出fork.sh的PID與其子程式的PID
  • head -n 20:只取前面20行的PIDs,也可以用 tail -n 20 取後面20行
  • tr "\\n" "," :把很多行變成一行,中間用逗點區隔
  • sed 's/,$//'`:把一行中結尾的逗點去除

若想要刪除子程序,可以用下面兩個方式:
  • kill `pgrep fork.sh`
  • kill `pgrep -P fork.sh的PID`
第一種會刪除所有名字有fork.sh的程序(母程序與子程序都會刪除,名字一樣也會刪除);第二種則只有刪除子程序,但第二種必須要在母程序還沒有被終止前才有用

_EOF_

2016年4月26日 星期二

Word 2016搭配EndNote X7

微軟的Word 2016 for Mac現在終於可以使用Endnote X7了!! 參考台大圖書館參考服務部Chih-Lo Chen寫的文件《Word 2016 如何看到Endnote X7的CWYW工具列呢?》,依序做下面三件事情:

都裝好以後開啟Word就會看到選單上面多了"EndNote X7"。詳細的要求參考Endnote原廠的建議《Macintosh compatibility and system requirements》

_EOF_

2016年4月25日 星期一

Bash的影分身術:Fork

一個人工作時,即使工作很多也只能夠一個人處理。但對一個在跑的程式來說,可以開許多分身(叫做子程式),每個分身都可以各自去處理不同的事情。這個開分身的方式叫做fork。這邊提供一個簡單的例子,測試在Bash下面使用Fork

2016年4月22日 星期五

使用Netspeak來選英文上下文

英文作文時常會遇一些詞慣用的排列組合方式,如果可以知道大部分是怎樣使用,將有助於寫出不讓英語系國家人感到奇怪的文章。Netspeak這個網頁提供了種服務。總共有五種用法
  • ? 找一個單字,也可以用??找恰好兩個單字、???恰好三個單字
  • ... 找很多個單字,沒有指定剛好要幾個
  • [ ] 比較哪個單字比較常用
  • # 尋找相似的字
  • { } 檢查一組單字使用的順序

2016年4月21日 星期四

分子模擬的再現性

用電腦跑分子模擬的時候,如果輸入的檔案與跑程式的參數都一樣,那麼得到的結果會一模一樣(在這邊所謂的一模一樣指的是數據中每個數字都相同,沒有任何的差異)。

但是常發生明明輸入的檔案(初始結構與設定檔)與程式參數都一樣,但得到的結果沒有一模一樣!這是因為對於操作分子模擬軟體不夠熟稔,所以當以為做的事情都一樣時,其實還有一些很細的細節沒有弄到一模一樣。

2016年4月20日 星期三

單鏈構形多態性(SSCP)

單鏈構形多態性:Single-Strand Conformation Polymorphism或是Single-Strand Chain Polymorphism,簡寫成SSCP,在1989年由Orita等人提出用以分離核酸的方法。原理是長度一樣單鏈核酸因為序列不同而使得結構不同,因此可以被電泳給分別出來。圖解參考Lessa & Applebaum的示意圖;後來改良成為PCR-SSCP,實驗步驟與原理可參考這個網頁

這種方法有時候甚至兩條核酸只有一個核苷酸的差異也可以偵測出來。不過SSCP沒有定序給的資訊那麼多,因此現在已經多被定序給取代了。但由於此方法比較便宜,容易用在檢測上面。例如說會用在檢測病毒株之間的差異等等。PCR-SSCP也應用在畜產動物功能性基因的多型性分析上,像是牛、綿羊、豬還有雞等等,詳細請參考畜產試驗所鍾秀枝與林德育寫的《雞基因現況與利用》

_EOF_

2016年4月19日 星期二

電子簽章

以前如果文件必須要簽名,必須要印出紙本來、當下簽名後再把紙本傳送回去。如果是在同一間辦公室那只是走動一下而已,但如果是兩者相隔很遠,就必須要用讓文件往返於兩人之間(例如說飛鴿傳書)

現在文件通常都有電子檔,很多時候會變成印出來再簽名,然後再回傳。這樣可以只要寄送一次即可。甚至是說文件印出簽名再掃描後回傳,也一樣具有效力(參見此文《合約可以用傳真或掃瞄為PDF檔來完成簽署嗎?》)。

由與許多文件都是PDF格式,在此介紹電子簽章,此方法不需要把文件印出來,直接可以把簽名貼到對文件上面後回傳檔案即可

2016年4月18日 星期一

縮減PDF檔案的大小

蘋果電腦預設的預覽程式preview可以開啟與修改PDF檔案,而且還可以把容量太大的PDF檔案壓縮,變成比較小的檔案。根據《Reduce the File Size of PDF Documents with Preview in Mac OS X》,只要下面幾個步驟即可
  1. 用Preview開啟PDF檔案
  2. 選單 > File > Export...
  3. 在Quartz Filter裡面選 Reduce File Size
  4. 在Export As裡面輸入新的檔名
  5. 點選Save
注意Quartz Filters基本上是處理圖片,所以可以壓縮到多少與PDF檔案的圖片有關。

_EOF_

2016年4月15日 星期五

PyMOL直接抓PDB檔案

    PyMOL可以直接用指令fetch抓取蛋白質資料庫PDB裡面的結構。例如說下載PDB identity是1egf,使用下面的指令
PyMOL> fetch 1egf
PyMOL> fetch 1egf, async=0
第二行的指令動作同第一行,只是在PyMOL script裡面會等到檔案下載完成後才會繼續執行後續的指令

    新版(version ≥ 1.8)的PyMOL抓取的檔案會是mmCIF格式,若要下載個格式為pdb則用
PyMOL> fetch 1egf, type=pdb

    若希望下載的結構是biological assembly,那要修改type的選項,比較下面兩個結果:
PyMOL> fetch 5e6e
PyMOL> fetch 5e6e, type=pdb1
再使用split_states把不同的states的結構變成不同的物件,功能等同於下面指令
PyMOL> fetch 5e6e, type=pdb1, multiplex=1

    下面這是杯狀病毒的蛋白質外殼,下載完檔案會有59MB這麼大
PyMOL> fetch 2gh8, type=pdb1, multiplex=1
PyMOL> cmd.show("mesh","all")
常見的諾羅病毒(Norovirus)就是杯狀病毒科(Caliciviridae)的其中一種
Calicivirus, PDB code: 2gh8


_EOF_

2016年4月14日 星期四

Crambin

Crambin是種儲存用蛋白質,儲存在Abyssinian cabbage的種子裡面。Crambin很小,只有46個殘基。由於crambin的結晶很特別,使用X射線晶體學可以得到很非常高解析度(resolution)的立體結構。

下面的結構來自於蛋白質結構資料庫PDB,分別是
  • 1crn,長度是46個殘基,解析度是1.5 Å,1981年就上傳到PDB
  • 3u7t,長度是48個殘基,解析度則是0.85 Å,2012年上傳到PDB 
Two crambin molecules
兩者用PyMOL的CE alignment後,相似度用RMSD計算是0.83 Å,非常的像

_EOF_

2016年4月13日 星期三

程式風格 Programming Style

如同寫文章會有寫作指引一樣,不同的程式語言與團體也會有各自的程式風格(Programming Style)。根據程式語言的不同,會有不同的風格指南Style Guides,作用是讓後來維護程式的人可以更快的進入狀況。一般來說風格指南會提到的會關於縮排方式(Indent style)、垂直對齊方式、spaces與tabs、變數命名方式(Naming convention)等等。

2016年4月12日 星期二

寫作指引 Style Guide

在寫文章要發表期刊、報章雜誌等等,除了內容以外,對於文章的格式會有一些要求。這些要求叫做Style guide,在這邊翻譯成寫作指引。寫作指南除了像是文字字型格式、圖表格式以外,有些還會對於用字遣詞,或是內容的取得等有另外的規範

內容比較短的寫作指引可以稱為style sheet;內容比較長、規範比較詳細的可稱為style manual, manual of style, style book等等。有些寫作指引是一般性的說明,像是由William Strunk, Jr.寫的《The Element of Style》就是一本很精簡的英文寫作指引。另外一些則是為了特別科目而設計。例如說:科學期刊,在寫論文的時候就必須要根據欲投稿期刊本身的寫作指引,依照規範格式將結果書寫出來,才不會投出去馬上被編輯打槍退稿。


2016年4月11日 星期一

微軟 R Tools for Visual Studio 的安裝

R語言主要用於統計分析、資料繪圖與資料探勘。過往要使用R語言,通常在UNIX-like的環境下比較方便。後來有一些整合式開發環境IDE,像是RStudiovimR等等。現在除了這些IDE以外,微軟自己開發軟體的Visual Studio,現在加入了R Tools的套件(在安裝的時候也發現有Python Tools)。

在Windows裡面使用R語言,可以使用微軟開發目前是免費的整合式開發環境Visual Studio

安裝的方式參考 R Tools for Visual Studio,依照下面三個步驟安裝:
  1. 下載與安裝 Visual Studio
  2. 下載與安裝 R Tools for Visual Studio
  3. 下載與安裝 R,或是Microsoft R Open


2016年4月8日 星期五

讓YouTube填滿整個視窗

看youtube影片會希望不要被旁邊其它資訊干擾,並且讓整個視窗都顯示影片卻又不想要用全螢幕。這個時候,只要把網址列裡面的watch改成watch_popup即可。

例如說下面影片網址是
https://www.youtube.com/watch?v=QgNDao7m41M
更改成
https://www.youtube.com/watch_popup?v=QgNDao7m41M

使用這個技巧的好處是可以藉由調整視窗大小決定影片的大小、還可以同時看多部影片、或是比較影片的差異等等。若是想要循環播放某部影片,可以雙點右鍵,選擇loop即可
_EOF_

2016年4月7日 星期四

用cpio轉移資料

要完整將系統存到另外一個硬碟/dev/sda1上面,使用
# mount /dev/sda1 /mnt && cd / 
# find . -xdev | cpio -pmv /mnt

如果是要將整個家目錄/home保留所有的權限等等複製到/dev/sda2上面,使用
# mount /dev/sda2 && cd /home
# find . -xdev | cpio -pmv /mnt

2016年4月6日 星期三

相關係數

相關係數(Correlation Coefficient, C.C.)是用來看兩個變項之間關聯性的量化數值。使用不同的方法計算通常會用不同的符號表示。像是Pearson的相關係數會叫做r、Spearman的相關係數會叫做ρ、Kendall的相關係數會叫做τ、Goddman and Kruskal的相關係數會叫做r、Pearson的相關係數會叫做γ。以下介紹相關係數的特性,內容參考GraphPad上的文章

不論是哪一個方法,算出來的相關係數會在-1到1之間
  • 1,完全正相關 (Perfect correlation)
  • 0到1,正相關
  • 0,無相關
  • -1到0,負相關
  • -1,完全負相關 (Perfect negative or inverse correlation)


2016年4月5日 星期二

磁碟陣列上硬碟損壞的可能性

上一篇介紹《磁碟陣列上資料消失的可能性》,所估計的是磁碟陣列(RAID)上資料消失的可能性。當一個RAID組成硬碟越多的時候,遇到硬碟損壞更換的機會會增加許多,此篇則是說明每年遇到更換硬碟的可能性。

不過,還是要再次提醒,磁碟陣列不是備份,磁碟陣列只是增加資料的
  • 可靠度(Reliability):將低儲存資料出錯的機會
  • 可存取度(Availability):增加資料每年可以存取的時間
  • 存取效能(Performance):增加資料存取的效能
  • 容量(Capacity):增加儲存容量
不要因為資料放在磁碟陣列上面而忽視了資料備份

2016年4月1日 星期五

磁碟陣列失效的可能性

前面一篇文章提到,如果不想要因為磁碟陣列損壞而出現“啊,我死定了”的感覺,那這樣計算磁碟陣列因為硬碟故障造成磁碟陣列失效的可能性就很重要。先說結論:
  • 單一硬碟又不備份是找死的行為
  • RAID1很安全,三顆幾乎是永保安康,但空間容易不足
  • RAID5組建磁碟陣列,建議量是4到6顆,不要超過10顆,請備份重要資料
  • RAID6組建磁碟陣列,建議量是8到16顆,不要超過20顆,請備份重要資料
下面這件事情很重要所以要說三次
磁碟陣列不是備份!!
    磁碟陣列不是備份!!
        磁碟陣列不是備份!!
備份請另外找備份用的機器,最好能夠做到異地備援