2017年1月25日 星期三

樹莓派看溫度

樹莓派Pi 3安裝raspbian,下面的指令可以看系統溫度:
  • cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
  • cpuTemp1=$(($cpuTemp0/1000))
  • cpuTemp2=$(($cpuTemp0/100))
  • cpuTempM=$(($cpuTemp2 % $cpuTemp1))
  • echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
  • echo GPU $(/opt/vc/bin/vcgencmd measure_temp)
參考《Raspberry Pi onboard temp sensors in Raspbian》的回應

_EOF_

2017年1月17日 星期二

統計PDB中蛋白質鍊的長度

只要依序執行下面五個指令就能夠拿到所有protein chains的長度與敘述:
  • wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt
  • grep "mol:protein" pdb_seqres.txt | sed -e's/  /!/' | cut -d'!' -f1 | sed -e's/^>//' | cut -d' ' -f1 > protein_seqres.id
  • grep "mol:protein" pdb_seqres.txt | sed -e's/  /!/' | cut -d'!' -f1 | sed -e's/^>//' | cut -d' ' -f3 | cut -d':' -f2 > protein_seqres.length
  • grep "mol:protein" pdb_seqres.txt | sed -e's/  /!/' | cut -d'!' -f2 > protein_seqres.des
  • paste -d'\t' protein_seqres.id protein_seqres.length protein_seqres.des > protein_seqres.csv

2017年1月16日 星期一

PDB裡面最長和最短的蛋白質序列

依序執行下述指令就知道PDB裡面最長與最短的序列:
  1. wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt
  2. grep -e "mol:protein" -A 1 pdb_seqres.txt | sed '/^--$/d' | grep "^>" | cut -d' ' -f3 | cut -d':' -f2 | sort -n | head -n 1
  3. grep -e "mol:protein" -A 1 pdb_seqres.txt | sed '/^--$/d' | grep "^>" | cut -d' ' -f3 | cut -d':' -f2 | sort -n | tail -n 1
上面的Bash指令意思分別是:
  1. 抓所有PDB的序列(fasta format)
  2. 最短的序列,長度是2
  3. 最長的序列,長度是5037

2017年1月13日 星期五

Vi顯示tab與跳行字元

使用 vi 或 vim 編輯程式碼的時候,空白、tab、跳行字元在螢幕上面都是顯示空白。為了要讓程式碼更容易閱讀,參考軟體工匠 R 的筆記中《讓 vim 顯示 tab 和行末的空白字元》一文,直接設定:
  • set listchars=eol:↵,tab:»·,trail:╳,extends:»,precedes:«
  • set list
若要關閉這個功能,則是輸入
  • set nolist
上述參考文獻裡面還有讓空白用顏色等等表現方式

_EOF_

2017年1月12日 星期四

使用R語言做抽樣

在R裡面用sample這個函式可以做抽樣,假設母群體是A, ..., Z 這26個大寫的英文字母:
  • sample(LETTERS, 1)
  • sample(LETTERS, 5)
  • sample(LETTERS)
依序是隨機一個字母、隨機抽5個字母。最後是隨機抽樣,將26個字母都抽出來,因此抽出來的排序每次都不一樣(random permutation)。

2017年1月11日 星期三

tee將STDOUT同時送給多個指令處理

同一個檔案的內容,同時有多個不同程式要來處理,可以直接用tee這個指令搭配process substitution來做:
  • cat file.txt | tee >(command1) >(command2) >(command3) | wc -l

2017年1月9日 星期一

關閉瀏覽器的硬碟快取

瀏覽器的硬碟快取(disk cache)一般來說可以讓瀏覽網頁更加順暢,但要是系統硬碟的讀寫速度很慢的特殊狀況(像是某人喜歡把系統灌在USB隨身碟上四處帶著走...),硬碟快取反而會讓瀏覽器速度整個卡在IO上。下面介紹怎樣關掉chrome與firefox的硬碟快取...

Google chrome實在找不到內部怎樣設定才能夠關閉disk cache,參考了FREEGROUP的這篇文章,安裝 Cache Killer 後,直接用這個擴充功能關掉硬碟快取

Mozilla firefox的解法比較簡單,網址列輸入 about:config 找到下面三項:
  • browser.cache.disk.enable:直接設定成false關閉
  • browser.cache.memory.enable:設定成true打開memory cache
  • browser.cache.memory.max_entry_size:單位是kB,4G的話設定4096000
_EOF_

2017年1月8日 星期日

R看data frame每個欄位的資料型態

R的資料框架(data frame)像是Excel的工作表,每個欄位可以存放不同資料型態的資料。裝好R以後,預設就會有一個叫做mtcars的資料框架,要看每個欄位的資料型態可以用:
  1. help(mtcars)
  2. sapply(mtcars, mode)
  3. sapply(mtcars, class)
  4. str(mtcars)
  5. show(mtcars)

2017年1月7日 星期六

在Python中使用PyMOL的指令 part II

前一篇《在Python中使用PyMOL的指令》用的PyMOL與Python是MacPorts安裝的,但如果希望使用的是OS X系統本身的Python與從PyMOL買來的版本,用下面的方法來做:
  • 安裝預先編譯好的PyMOL
    這邊的例子是安裝到 /pkg/pymol-v1.8.0.5-Darwin-x86_64
  • 開啟系統的Python(/usr/bin/python)

然後在系統的Python內依序執行:
  1. import sys
  2. sys.path.append('/pkg/pymol-v1.8.0.5-Darwin-x86_64/modules')
  3. from pymol import *
  4. pymol.finish_launching(['pymol', '-cqk'])

2017年1月6日 星期五

在Python中使用PyMOL的指令

PyMOL是個很方便的生物巨分子結構顯示軟體,很方便的就可以載入與使用各種生物巨分子結構。但如果希望能夠用依照某些規則來處理很多結構,那就必須要寫程式。這邊介紹如何在Mac下面使用Python載入PyMOL的指令來寫程式。安裝完MacPorts以後在終端機上輸入:
  • sudo port install pymol
  • /opt/local/bin/python2.7
進入python交談式環境(或是寫在python程式最前面)以後,輸入:
  • from pymol import *
  • pymol.finish_launching(['pymol', '-cqk'])

2017年1月5日 星期四

處理PDB裡面的alternate location

PDB上面的結構,某些殘基在空間上面會有兩種可能所在的位置,這種情況叫做alternate location,紀錄方式則是在ATOM行裡面的第17個位置出現A, B, ...。例如說3a34這個lysozyme的結構第125個residue,PDB格式的紀錄是:
ATOM    978  N  AARG A 125     -27.100  10.115  13.597  0.70 14.83           N  
ATOM    979  N  BARG A 125     -27.088  10.117  13.613  0.30 14.68           N  
ATOM    980  CA AARG A 125     -27.589  10.764  14.811  0.70 15.46           C  
ATOM    981  CA BARG A 125     -27.618  10.820  14.785  0.30 15.06           C  
ATOM    982  C  AARG A 125     -26.471  10.888  15.838  0.70 15.45           C  
ATOM    983  C  BARG A 125     -26.603  10.877  15.926  0.30 15.27           C  
ATOM    984  O  AARG A 125     -25.761   9.921  16.120  0.70 15.55           O  
ATOM    985  O  BARG A 125     -26.111   9.846  16.388  0.30 15.38           O

上面粗體的部分就是alternate location (altLoc),意思是說ARG這個residue可能會在A這個位置、也可能會在B這個位置。最簡單的解決方案是只留下A,用PyMOL處理只要兩行指令:
  • remove not alt ''+A
  • alter all, alt=''
第一行移除所有altLoc不是A也不是空白的原子
第二行將所有altLoc都變成空白

_EOF_

2017年1月4日 星期三

計算PDB結構裡面原子的數目

要計算一個PDB結構裡面有多少個原子,在PyMOL只要用count_atom這個指令:
  • fetch 1lyz
  • count_atoms 1lyz
  • count atoms 1lyz and not HETATM
  • count atoms 1lyz and n. ca

2017年1月3日 星期二

PyMOL儲存序列成fasta格式

PyMOL除了可以瀏覽結構以外,還可以將蛋白質序列存成fasta格式,甚至是載入fasta序列。在PyMOL的指令列依序輸入下面指令:
  1. fetch 1crn, async=0
  2. save 1crn.fasta, 1crn
  3. delete *
  4. load 1crn.fasta
上面的指令會將序列存成fasta格式
若PyMOL載入的是fasta序列,會自己做成一個結構~

_EOF_