2016年9月30日 星期五

Python的匿名函式lambda

在Python中,一般的函式在使用前必須要先用def定義這個函式的內容,參考《簡單的Python函式》。但平常在用的時候,有時只是在程式碼內臨時需要一個函式而已,並不想要另外在外面多定義一個函式,這個時候就可以使用匿名函式,在Python裡面用lambda expression來完成此功能。

這邊用計算single strand DNA (ssDNA)序列 atgcatgcatgcatgcatgcatgcatgc 的分子量為例子,粗體是輸入的指令、Courier字型則是電腦給的回應

Step 1:啟動Python
$ python3.4
Python 3.4.4 (default, Mar  2 2016, 03:31:27) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Step 2:輸入序列,這邊輸入小寫,讓python用字串功能upper轉成大寫(使用方法參考《Python內建的字串處理功能》
>>> str='atgcatgcatgcatgcatgcatgcatgc'
>>> str=str.upper()
>>> str
'ATGCATGCATGCATGCATGCATGCATGC'

Step 3:用lambda expression來給一個函式,計算ssDNA的分子量,計算公式參考ThermoFisher的《DNA and RNA Molecular Weights and Conversions》
>>> mw = lambda An, Tn, Cn, Gn: (An * 313.2) + (Tn * 304.2) + (Cn * 289.2) + (Gn * 329.2) + 79.0
>>> mw(str.count('A'), str.count('T'), str.count('C'), str.count('G'))
8729.6

上面的str.count... 是計算字串裡面某個字元出現的個數,這邊可以知道這條ssDNA atgcatgcatgcatgcatgcatgcatgc 的分子量約莫是 8729 g/mol、約莫是8.7 kDa

_EOF_

2016年9月22日 星期四

用Ginger檢查文法

英文寫作對於母語並非英美語的人來說,要找出文法錯誤有時候很困難。Ginger這個網頁可以輸入一句英文,線上檢查是否有文法錯誤,並且能錯誤修正。可以挑出來的錯誤有
  • 主詞動詞一致性
  • 單複數
  • 名詞連名詞
  • 錯字修正
  • 語境拼字修正
  • 不規則動詞變化也能修正
除了網頁以外,還有Windows軟體瀏覽器extensionAndroid appiOS app。但似乎是要收費,而且Mac沒有專用軟體只能夠用瀏覽器extension

剛剛才知道原來文法(grammar)指的是關於語言要如何書寫與口說,至於文字符號形體的規範與使用叫做正寫法orthography)。所以說,寫錯別字拼錯字應該不能算是文法錯誤,而是後面那種不知道應該要如何稱呼的錯誤~

_EOF_

2016年9月12日 星期一

SPEC CPU® 2006簡介

SPEC CPU® 2006是個用來測試CPU效能的標準,裡面包含了兩種基準:

2016年9月9日 星期五

檢查磁碟陣列卡上硬碟的狀態

當硬碟是直接接到主機板的SATA插槽時,可以用 hdparm 與 smartctl 直接檢查其狀態,參考《檢查硬碟的狀態》。但若是硬碟是接在磁碟陣列卡(RAID card)上面的時候,就沒辦法直接這樣檢查。下面介紹以3ware 9650SE 這張RAID card為例子來介紹如何使用smartctl來檢查每個硬碟的狀態
  • smartctl -i -d 3ware,10 /dev/twa0
  • smartctl -H -d 3ware,10 /dev/twa0
  • smartctl -a -d 3ware,10 /dev/twa0
在這邊 twa0 代表的是3ware這張卡的controller number,若有兩張卡,那就會是twa0twa1 而前面的10代表的是這張卡上面的port number。