- split_states 1nmr
- for x in cmd.get_names(): cmd.cealign("1nmr_0001///30-70/", x+"///30-70/")
- join_states 1nmr2, 1nmr_*
2018年2月25日 星期日
PyMOL分開與合併不同的states
遇到一些用NMR解出來的蛋白質分子,PDB檔案會有很多個models,在PyMOL裡面叫作不同的states。要分開這些states成獨立的結構,或是把獨立的結構合併成一個:
2017年8月9日 星期三
讓sort用多核心跑
GNU sort(就是在Linux裡面預設的,作者是Mike Haertel與Paul Eggert),裡面有個平行化的選項,如果不選的話預設就會開多核心。這邊測試《PDB中最常出現的氨基酸片段》裡面排序進一億筆5-mer,得到的速度與用單核心來比較


Labels:
Bash與Shell命令稿,
Linux,
Parallel平行處理,
PDB,
sed與awk
2017年8月7日 星期一
氨基酸B、Z、X、J、O、U
蛋白質的氨基酸序列中,除了原本的20種氨基酸以外,有時候會出現:
- B:也稱Asx、此位置是Asparagine (N)或Aspartic acid (D)
- Z:也稱Glx、此位置是Glutamine (Q)或Glutamic acid (E)
- X:也稱Xaa代表此位置未知、或是在此位置可以是任何一種氨基酸
- J:也稱Xle,代表此位置是Leucine (L)或Isoleucine (I)
- O:也稱Pyl,全稱Pyrrolysine,第22種氨基酸
- U:也稱Sec,全稱Selenocysteine,第21種氨基酸
2017年8月6日 星期日
PDB中最常出現的氨基酸片段
想要知道五個連續氨基酸出現次數用下面兩個指令就可以得到:
第2個指令是計算個數的檔案,結果存在prot_sorted_5peptide.count裡面,計算的時間約莫是五分鐘,下面是分析的指令:
- wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt
- cat pdb_seqres.txt | grep -e "mol:protein" -A 1 \
| sed '/^--$/d' | grep -v "^>" \
| awk '{while(length($0)>=5){print substr($0,1,5);gsub(/^./,"")}}' \
| grep X -v | sort | uniq -c | sort -k 1 -n -r \
> prot_sorted_5peptide.count
第2個指令是計算個數的檔案,結果存在prot_sorted_5peptide.count裡面,計算的時間約莫是五分鐘,下面是分析的指令:
2017年7月18日 星期二
定期更新PDB資料庫
《將整個PDB下載回本機端》說明要怎樣將整個蛋白質資料庫(PDB)下載回自己的機器上。但PDB這個資料庫現在是每個星期三UTC 00:00會更新,台灣是UTC+8,所以就是每個星期三早上八點會更新。考量到每個資料庫一更新完一堆人會去抓、還有週間大家使用資料庫比較頻繁,所以建議週末再來做更新。
- VISUAL=vim crontab -e
- crontab -l | grep -v ^#
3 2 * * 6 /dw/rsyncPDB.sh
2017年6月14日 星期三
將整個PDB下載回本機端
目前整個PDB大小約436G,要下載前請先注意自己的硬碟大小
首先編寫 rsynPDB.sh 如下
上面這個腳本會把整個PDB都放在 /dw/rcsb 這個資料夾之下
每次執行rsynPDB.sh,只會用rsync做更新,而不會每次都要重新下載整個PDB
整個更新的紀錄會放在 /dw/rsyncPDB.log/rsyncPDB.更新日期 這個檔案裡面
首先編寫 rsynPDB.sh 如下
#!/bin/sh
MIRRORDIR=/dw/rcsb # your top level rsync directory
LOGFILE=/dw/rsyncPDB.log/rsyncPDB.`/bin/date +"%Y%m%d"` # file for storing logs
RSYNC=/usr/bin/rsync # location of local rsync
SERVER=rsync.wwpdb.org::ftp # RCSB PDB server name
PORT=33444 # port RCSB PDB server is using
${RSYNC} -rlpt -v -z --delete --port=$PORT ${SERVER}/ $MIRRORDIR > $LOGFILE 2>/dev/null
上面這個腳本會把整個PDB都放在 /dw/rcsb 這個資料夾之下
每次執行rsynPDB.sh,只會用rsync做更新,而不會每次都要重新下載整個PDB
整個更新的紀錄會放在 /dw/rsyncPDB.log/rsyncPDB.更新日期 這個檔案裡面
Labels:
Bash與Shell命令稿,
PDB
2017年5月31日 星期三
蛋白質資料庫(PDB)的資料簡介
前面的《蛋白質資料庫(PDB)簡介》介紹了有哪些網站存放了蛋白質立體結構,這篇則是要說明其中RCSB PDB這個資料庫的資料。下面列出《Introduction to PDB Data》提到的主題:
- Biological Assemblies:由於大部分的蛋白質立體結構都來自於X-ray crystallography,所以解出來的結構是根據蛋白質結晶所得。因此,存放的結構有可能最基礎的結晶單位Asymmetric Unit,或是由作者提供的Biological Assembly(代表在生物體內有作用的結構)
- Dealing with Coordinates:所謂紀錄的立體結構,代表著記錄蛋白質分子裡面每個組成原子的座標(coordinates)。這一段就是在介紹PDB檔案如何存放這些原子座標內容
- Methods for Determining Structure:要得到上述的原子座標(或者稱之為“解結構“),有幾種不同的實驗方法可以做到,包含了
- X-ray Crystallography:X光結晶法
- X-ray Free Electron Lasers (XFEL):這是種基於X-ray Crystallography的新方法,用飛秒雷射去打,然後組合許多繞射圖案來猜結構
- NMR Spectroscopy:核磁共振(Nuclear Magnetic Resonance)法
- Electron Microscopy:電子顯微鏡法。對於比較大的蛋白質是不錯的方式
- Missing Coordinates and Biological Assemblies:解結構並不一定總是可以得到所有的原子座標。這邊介紹有哪些情況下,會得到不完整的結構資訊
- Molecular Graphics Programs:解完結構後,有哪些軟體可以顯示立體結構。就像是地圖有許多表示法,結構也一樣有許多表現手法
- Resolution:解出來的結構的解析度
- R-value and R-free:解出來的結構的可信度。R越靠近0越好,一般來說會是0.2,隨機亂做的結果是0.63
- Structure Factors and Electron Density:結構的電子密度分佈
- Primary Sequences and the PDB Format:蛋白質序列與核酸序列存放在這邊
- Small Molecule Ligands:與整個蛋白質分子一起解出結構的小分子
2017年5月23日 星期二
蛋白質資料庫(PDB)簡介
蛋白質資料庫(Protein Data Bank, PDB),是存放蛋白質、或是生物巨分子立體結構的資料庫。其中Worldwide PDB (wwPDB) 這個組織存放所有結構資訊並確保這些資料可以被公眾自由存取,而來自世界各地的wwPDB members,會有自己的網站來提供大眾各自的服務
簡單說就是同份資料(由wwPDB統合),各自表述(由wwPDB members各自做網站):
_EOF_
簡單說就是同份資料(由wwPDB統合),各自表述(由wwPDB members各自做網站):
- PDBj (Protein Data Bank Japan): 日本版,有日文、中文與韓文版本
- BMRB (Biological Magnetic Resonance Data Bank):提供與NMR實驗相關結果,包含chemical shift, coupling constants, hydrogen exchange rates, pKa values, and relaxation parameters
- PDBe (Protein Data Bank in Europe):歐洲版,提供一些進階服務像是PDBePISA, PDBeFold, PDBeMotif等等
- RCSB PDB (Research Collaboratory for Structural Bioinformatics Protein Data Bank):美國版,有做行動版App、一些視覺化工具可用,還有不錯的教學資源
若對PDB這個資料庫不熟悉,或是不知道什麼叫做生物巨分子裡體結構,可以先從RCSB PDB的教學資源像是PDB-101、Molecular of the Month開始入門
_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
Labels:
計算生物學,
Bash與Shell命令稿,
PDB,
R語言
2017年1月16日 星期一
PDB裡面最長和最短的蛋白質序列
依序執行下述指令就知道PDB裡面最長與最短的序列:
- wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt
- grep -e "mol:protein" -A 1 pdb_seqres.txt | sed '/^--$/d' | grep "^>" | cut -d' ' -f3 | cut -d':' -f2 | sort -n | head -n 1
- grep -e "mol:protein" -A 1 pdb_seqres.txt | sed '/^--$/d' | grep "^>" | cut -d' ' -f3 | cut -d':' -f2 | sort -n | tail -n 1
- 抓所有PDB的序列(fasta format)
- 最短的序列,長度是2
- 最長的序列,長度是5037
Labels:
計算生物學,
Bash與Shell命令稿,
PDB
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處理只要兩行指令:
第二行將所有altLoc都變成空白
_EOF_
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都變成空白
_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
2016年11月11日 星期五
統計蛋白質資料庫
蛋白質資料庫(Protein Data Bank,簡稱PDB)上面存放著以蛋白質為主的生物巨分子立體結構資料。首頁顯示 "An Information Portal to 124286 Biological Macromolecular Structures",更多的統計資料可參考《PDB Statistics》。這邊用幾個簡單的指令來分析PDB這個資料庫
- wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_entry_type.txt
- TOTAL=`cat pdb_entry_type.txt | wc -l`; echo $TOTAL
- head -n 5 pdb_entry_type.txt
- for TYPE in `cat pdb_entry_type.txt | cut -f 2 -d$'\t' | sort | uniq`; do printf "$TYPE "; NUM=`cat pdb_entry_type.txt | cut -f 2 -d$'\t' | grep $TYPE | wc -l`; printf "$NUM "; FRAC=`echo "scale=4; $NUM/$TOTAL" | bc -l`; echo $FRAC; done
- for METHOD in `cat pdb_entry_type.txt | cut -f 3 -d$'\t' | sort | uniq`; do printf "$METHOD "; NUM=`cat pdb_entry_type.txt | cut -f 3 -d$'\t' | grep $METHOD | wc -l`; printf "$NUM "; FRAC=`echo "scale=4; $NUM/$TOTAL" | bc -l`; echo $FRAC; done
Labels:
計算生物學,
蛋白質,
Bash與Shell命令稿,
PDB
2016年8月25日 星期四
最早解出立體結構的蛋白質
多數蛋白質的外觀有著固定的形狀,也就是所謂的立體結構(3D structure)。研究這些結構的學門叫做結構生物學(Structural Biology)。這個學門從1950年代末期開始發展,到1970年代初有一打的蛋白質結構,簡單介紹如下:
- Myoglobin (1mbn):肌紅素、John Kendrew's structure,1958年得到
- Hemoglobin (2dhb):血紅素、Max Perutz's structure
- Hemoglobin from lamprey (2lhb):八目鰻的血紅素,結構介於肌紅素與血紅素之間
- Lysozyme (1lyz):溶菌酶、DC Philips' structure,1965年解得
- Carboxypeptidase (3cap):從蛋白質的C端切斷肽鍵(peptide bond)
- Subtilisin (1sbt):切斷絲氨酸(serine)的肽鍵
- Chymotrypsin (2cha):切斷含有芳香環的氨基酸,像是酪氨酸(tyrosine)、色氨酸(tryptophan)與苯丙氨酸(phenylalanine)的肽鍵
- Papain (9pap):木瓜蛋白酶
- Pancreatic trypsin inhibitor (4pti):胰蛋白酶抑制物,很短的蛋白質
- Oligomeric lactate dehydrogenase (6ldh):單體型態的乳酸脫氫酶(LDH),當時解出來最大的蛋白質結構。一個單體由334個氨基酸組成,整個LDH則是由四個單體組成的四聚體(tetramer)
- Rubredoxin (4rxn):含鐵離子的蛋白質,使用四個硫原子來抓住鐵離子
- Cytochrome b5 (1cyo):還鐵離子的蛋白質,但是用heme group來抓
訂閱:
文章 (Atom)