2018年3月30日 星期五

計算變異數為何除以n-1而不是n

在計算樣本變異數(variance)或是的時候標準差(standard deviation),公式的是除以n-1而不是n,這是因為這樣計算出來的數值比較準。除以n-1而不是n這件事情在統計上稱為Bessel's correction(貝索校正),此種校正方法可以讓樣本變異數(sample variance)比較準確地估計母體變異數(population variance)。詳細的解釋請參考:
注意「除以n-1而不是n」這個校正,是當計算樣本變異數的目的在於估計母體變異數時才需要用貝索校正來讓估計比較準。

2018年3月29日 星期四

用iptables做port redirection

要讓內網的機器可以透過對外部的機器從外面直接連線,例如說SSH
  • 外部的機器IP位址:publicIP
  • 內部的機器IP位址:privateIP
這時候希望透過下面的指令,直接連線到內部機器
  • ssh -p 9487 username@publicIP

2018年3月28日 星期三

ls只顯示資料夾

在資料夾下面,只想要看有哪些子資料夾,而不要列出檔案的各種指令:
  • ls -d */
  • echo */
  • ls -l | grep ^d
  • find . -maxdepth 1 -type d
  • tree -d
此文參考《Listing only directories using ls in bash: An examination》。若是要顯示資料夾與檔案、但是不要顯示資料夾下面的子資料夾,那麼使用:
  • ls -d *
_EOF_

2018年3月27日 星期二

靜態函式庫.a 共享與動態函式庫.so

使用GCC編譯原始碼產生可執行檔(executable),連結部分要選擇做靜態函式庫(Static library或static-linked library)與動態連結函式庫(Dynamic library或dynamic-link library或Shared library)。通常這些函式庫的名稱如下:
  • 靜態函式庫:lib*.a
    • 鏈結的時候函式庫會整合到執行檔中,執行檔大
    • 執行的時候,不需要再去找函式庫
    • 升級函式庫之後,需要再次編譯一次執行檔
    • 可以使用arranlib指令將多個.o的檔案合併成為.a
  • 動態函式庫:lib*.so
    • 將多個.o的時候函式庫不會整合到執行檔中,執行檔小
    • 執行的時候,需要再去找函式庫檔案,而且所在目錄不能改變
    • 升級函式庫之後,不需要重新編譯執行檔
    • 在Windows裡面檔名叫*.dll 
要辨別某個執行檔PROGRAM是靜態連結還是動態連結,使用ldd這個指令:
  • ldd PROGRAM
  • ldd -v PROGRAM

2018年3月26日 星期一

sed直接編輯文件,做文字取代

sed可以直接編輯文件,取代或是修改特定pattern。例如說《各種恐懼》放到phobia.txt這個檔案中,內容如下:
homophobia
hydrophobia
phobia
xenophobia

這時候要把這個文件的phobia通通改成phobe
  1. sed -i -e 's/phobia/phobe/' phobia.txt
  2. sed -i -e 's/phobia/phobe/g' phobia.txt
  3. sed -i .bak -e 's/phobia/phobe/g' phobia.txt
注意-i代表Edit file in-place,也就是直接編輯檔案的意思

2018年3月25日 星期日

Christoph Rehage 2008在中國走4500公里

The Longest Way 1.0 - walk through China and grow a beard! 
從北京走到烏魯木齊,每天自拍一張照片的合輯

影片的音樂有兩首:
  • The Kingpins - "L'Aventurier" http://bit.ly/RXOMaz 
  • Zhu Fengbo - "Olive Tree" http://bit.ly/UDsHT7
現在還在路上,參考他的網站《The Longest Way》,目前進入了伊朗

_EOF_

2018年3月24日 星期六

2018年3月23日 星期五

在Linux上做RAM disk

在Linux上面做ramdisk的指令,參考《Create a RAM disk in Linux》
  • mkdir /tmp/ramdisk
  • sudo mount -t tmpfs -o size=512m tmpfs /tmp/ramdisk
這樣就會做出一個512MB的ram disk掛載在/tmp/ramdisk上,若是沒有指定大小,則會取記憶體的一半大拿來做ramdisk,指令如下:
  • sudo mount -t tmpfs tmpfs /tmp/ramdisk
卸載ramdisk則是用下面的指令
  • sudo umount /tmp/ramdisk
_EOF_

2018年3月22日 星期四

Debian 7.11上編譯GCC 5.5.0

Debian 7.11 (wheezy)預設的GCC是4.7.2,這邊想要編譯GCC 5.5.0。參考《Installing GCC》一文建議的函式庫版本:
  • GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
  • MPFR Library version 2.4.2 (or later)
  • MPC Library version 0.8.1 (or later)
然後還要先安裝一些軟體:
  • sudo apt-get install gcc-multilib
  • sudo apt-get install autogen
接著依照下面的順序執行:

2018年3月21日 星期三

Mac上備份USB隨身碟成映像檔

在Mac上要備份整支USB隨身碟,首先插入USB,用下面的指令看device name:
  • diskutil list
  • diskutil list disk8
  • sudo diskutil unmountDisk /dev/disk8
上面的指令確認這支USB隨身碟是/dev/disk8後,將USB給卸載。都準備好後,用dd這個指令將檔案備份成檔名為usb.dd的映像檔:
  • sudo dd if=/dev/disk8 of=usb.dd bs=4096
要將這個映像檔還原(restore)到另外一個USB隨身碟/dev/disk9,用下面的指令:
  • sudo dd if=usb.dd of=/dev/rdisk9 bs=4096
這邊要注意的是,這邊是/dev/rdisk9而不是/dev/disk9。
這個方法可備份的可開機的USB隨身碟

2018年3月20日 星期二

Jared Lander

Jared Lander的個人網站,介紹R語言與其套件的使用。主要的頁面有:
_EOF_

2018年3月19日 星期一

讓xmgrace搭配設定檔自動出圖

《讓xmgrace預設出圖是PNG檔》介紹如何讓xmgrace直接轉圖檔,但此方法如果是在遠端機器,因為沒有X window,會出現DISPLAY error的狀況。解法則是使用gracebat
  • gracebat -nxy in.xvg -param xmgrace.param -hardcopy -printfile output.png

2018年3月18日 星期日

《Cream On Chrome》

下面的影片L'escapade Landaise - 2015不是原始MV,3m35s
只是覺得這個影片配RATATAT的《Cream On Chrome》很搭


2018年3月17日 星期六

2018年3月16日 星期五

重新安裝Mac Office 2016

Mac上面的Office前天更新之後爛掉了,至於是安裝更新失敗還是系統本身問題不得而知。出現錯誤的過程如下:
  1. 打開Office任一程式(Word/Excel/Power point)
  2. 程式五秒鐘內閃退
  3. 跳出Office錯誤回報視窗
嘗試過用原安裝ISO檔直接重新安裝,問題還是沒解決

2018年3月15日 星期四

GROMACS計算特定一點到多點的距離

跑完分子模擬,想要看一群對很多群的最小距離,可以用pairdist這個指令。指令使用看這篇GROMACS計算所有C-alpha的距離。這指令麻煩的地方在於需要進入指令一行一行輸入要計算不同群,下面的指令則是直接執行版:
  • gmx pairdist -s md.tpr -f md.xtc -type min -ref "group Met1" -sel "group Ile50; group Leu28; group Asp122; group Glu17" -o pairdist.xvg
上面這個指令可以計算Met1Ile50、Leu28、Asp122、Glu17這四個殘基隨時間改變的最小距離,存在pairdist.xvg這個檔案裡面。

2018年3月14日 星期三

根據資料型態決定要使用的統計方法

根據變數型態與變數角色,用下表決定使用的統計方法


應變數的資料型態
數值型類別型
自變數的
資料型態
數值型Regression
GLM
Logistic
GLM
類別型Regression
ANOVA
GLM
Logistic
Chi2
GLM

上表的統計方法簡稱分別為:


簡單的判斷方式如下:
  • 應變數為數值,可用regression analysis
    若自變數是類別,則還可選用ANOVA
  • 應變數為類別,可用logistic regression analysis
    若自變數也為類別,還可用Chi-squared test
  • 不管哪一種應變數自變數組合都可以用GLM
_EOF_

2018年3月13日 星期二

統計裡的變數型態與變數角色

統計分析方法需要依據變數型態與變數角色來設計。變數型態分成:
  • 數值型(Numerical variable, quantitative variable):可以做+, -, *, ÷, log, exp等數值運算的數字,例如:
    • 0.1, 0.3, 0.5, 0.7
    • 2, 4, 6, 8, 10
  • 類別型(Categorical variable):如果是兩類特別稱為binary,但也可以是多類別,類別之間沒有決定排序的因子:
    • 性別:男、女。此為binary variable
    • 學校:台、清、交、成
  • Ordinal variable:特殊的類別型變數,有數值型的可以排序的性質,如:
    • 很不喜歡、不喜歡、普通、有點喜歡、很喜歡
    • 貧窮、小康、富有
變數角色則可以分:
  • 自變數(independent variable):或稱解釋變數(explanatory variable)
  • 應變數(dependent variable):或稱反應變數(response)、outcome variable、covariate等
_EOF_

2018年3月12日 星期一

卸載screen產生的終端機後再連線

GNU Screen是一套生成多個命令列終端機的程式。使用上參考《用screen操控終端機》,若發生不正常斷線,有時候screen並不會正常的卸載(detach),這時候需要用下面指令來卸載任務程序(session),然後再連線
  • screen -d 
  • screen -d -r 
  • screen -D -RR
  • screen -D
注意上面指令是用在機器上只有一隻screen在跑,如果有多隻任務程序在跑,那麼就要加上[pid.tty.host]來指定是要停止哪一隻。上述三個指令意思分別是:

2018年3月7日 星期三

使用ifconfig設定網路

設定網路大概是現在電腦系統裝完以後第一件也是最重要的一件事情。在UNIX-like的系統上面,最底層觀察與設定網路的指令為ifconfig,ifconfig usage用法如下:
  1. ifconfig
  2. ifconfig -a
  3. ifconfig eth0
  4. sudo ifconfig eth0 up
  5. sudo ifconfig eth0 down
  6. sudo ifconfig eth0 192.168.55.66
  7. sudo ifconfig eth0 netmask 255.255.255.0
  8. sudo ifconfig eth0 broadcast 192.168.55.255
  9. sudo ifconfig eth0 192.168.55.66 netmask 255.255.255.0 broadcast 192.168.55.255
  10. sudo route add default gw 192.168.55.254 eth0
  11. sudo ifconfig eth0:0 192.168.55.77
  12. sudo ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
  13. sudo ifconfig eth0 mtu 1000
  14. sudo ifconfig eth0 promisc
  15. sudo ifconfig eth0 -promisc

2018年3月6日 星期二

2018年3月5日 星期一

GROMACS mdrun平行處理與GPU加速

GROMACS執行分子模擬的程式叫做mdrun,要加速模擬速度除了平行處理(parallelization)還可以用GPU加速,官方的參考資料如下:

2018年3月4日 星期日

Mac將多個png檔轉成gif動畫檔

下載並安裝自由軟體ImageMagick,如果有安裝MacPorts的話,直接在終端機裡面下這個指令就可以安裝ImageMagick了:
  • sudo port install ImageMagick
使用ImageMagick裡面的指令convert,把一堆figure*.png檔案轉成一個figures.gif檔案:
  1. convert mov*.png mov.gif
  2. convert -delay 10 mov*.png mov.gif

2018年3月3日 星期六

Mac看gif動畫檔

用Mac開gif動畫檔案,預設是預覽程式(Preview),但並不會看到動畫而是看到許多的圖片。要看的話,有三個方法:
  1. 開啟Safari,把gif動畫檔案拖到Safari裡面
  2. 點一下檔案,用Command-y組合鍵。此組合鍵是Finder預覽檔案的功能,用在這邊可以直接看gif動畫
  3. 點一下檔案,按一下Space。此方法跟上面的方式一樣
方法2, 3來自於《Preview an animated GIF image?》

_EOF_

2018年3月2日 星期五

2018年3月1日 星期四

安裝CMake 3.10.2在Debian 8.8

從原始碼開始編譯軟體時,需要產生建構檔,例如說在UNIX-like系統上為Makefile。而CMake則是一套專門產生建構檔的程式。在Debian 8.8上,cmake的版本為3.0.2,但有些新的程式需要更高版本的cmake,例如說GROMACS-2018就要求cmake version ≥ 3.4.3。以下介紹如何安裝CMake: