寫在前面的
一直在反覆思考,是否要把同源建模放在第二次推文裡面寫。因為從知識邏輯順序及結構體系來說,這部分放在後面講是最合適的。但是考慮到受眾面及需求,或許教會大家如何進行簡單同源建模效益更大。所以這一節就先講利用本地軟體進行同源建模分析。
預測未知蛋白的結構有三種計算方法:1.同源建模;2.摺疊模式識別和從頭預測結構。這之中,同源建模基於一級結構決定高級結構,相似的一級結構較大可能具有相同或相似的高級結構這一基本假設或原理是目前蛋白質結構分析中準確率最高的方法。相對的,基於同源建模的理論,對一個未知蛋白質結構的預測建模需要一條已經具有已解析空間結構且在一級序列水平具有一定程度相似性(通常大於60%)的模板蛋白。上一次推文提到的PDB資料庫儲存了大量具有已知空間結構的蛋白質數據。
同源建模步驟選擇模板和比對序列:選擇已知晶體結構的模板蛋白質並進行序列比對,根據比對結果確定該已知晶體結構蛋白是否可以作為模板蛋白(一般來說一級結構相似度大於30%即可,通常認為相似度大於60%建模後的預測結構已經非常接近真實結構);
構建主鏈結構:將模板蛋白的原子坐標應用於目標中,生成基本的預測蛋白的主鏈骨架再適當(以符合立體化學原則為基準)調整主鏈原子位置;
構建環區:根據模板蛋白已知的環區結構,或者根據量子化學原理從頭構建預測蛋白的環區;
側鏈的建模和優化:根據能量最小化原則,搜索相關旋光異構體資料庫或優化蛋白質空間取向尋找能量最低點,即穩定構象;
優化整體結構:經上述過程得到的三維模型內原子間通常會有不合理接觸,需要使用模擬退火和分子動力學等方法消除;
結構評估:最普遍的評價標準是RMSD,它代表著目標蛋白與模板蛋白間對應原子的均方根偏差。也可以提交到SAVES伺服器進行檢驗。(本人一般做的比較少,因為我並不是專門做結構生物學的,通常在上一步我選擇模擬退火算法解析出最穩定的粗糙結構即可)
以SARS的S蛋白為模板使用modeller進行同源建模上面的建模步驟看起來似乎很多超過了常規生命科學的知識範疇。說實話,我自學這些理論的時候也看的雲裡霧裡。不過好在已經有專業科學家團隊造好了本地分析的輪子。使得我們可以更靈活地進行分析。modeller就是其中較好的軟體之一。該軟體建議在Unix系統上運行,通過幾個python腳本運行軟體。下面我們以SARS病毒的S蛋白為模板,建立SARS-CoV-2的S蛋白模型(雖然SARS-CoV-2的S蛋白已經有了空間結構)。
在PDB資料庫中搜索SARS病毒的S蛋白晶體結構(序列號2AJF)文件並下載。
比對模板鏈和目標鏈
from modeller import *
env = environ()
aln = alignment(env)
#模板序列文件名稱,比對的模板序列鏈,可以從PDB資料庫中獲取信息,本次比對A鏈
mdl = model(env, file='6ajf', model_segment=('FIRST:A','LAST:A'))
aln.append_model(mdl, align_codes='6ajfA', atom_files='6ajf.pdb')
#輸出要進行比對的序列文件名及序列名,COV2是本人存放新冠S蛋白FASTA序列的文件名
aln.append(file='COV2.ali', align_codes='COV2')
aln.align2d()
aln.write(file='COV2-6ajf.ali', alignment_format='PIR')
aln.write(file='COV2-6ajf.pap', alignment_format='PAP')
建立模型
from modeller import *
from modeller.automodel import *
#from modeller import soap_protein_od
env = environ()
#比對好的序列文件就是上一個腳本輸出的.ali文件
#選擇自動建模的方式,這是適合初學者的傻瓜式操作。效果也較好
a = automodel(env, alnfile='比對好的序列文件.ali',
##6ajf是指模板蛋白名,A是指A鏈
knowns='6ajfA', sequence='目標序列名',
assess_methods=(assess.DOPE,
#soap_protein_od.Scorer(),
assess.GA341))
#ending_model是輸出多少次建模結果,一般是5次,本人設置10次
a.starting_model = 1
a.ending_model = 10
a.make()
一般情況下以上兩步進行完成後會輸出一個叫model-single.log的文件和多個建模好的pdb文件,選擇DOPE score值最小的pdb文件作為同源建模結果文件即可,這個模型就是對應的能量最小化的模型。當然也可以繼續使用腳本進行模型評價。也可以直接跳過模型評價進行loop優化。如果這裡不需要特別預測精細的結構,選擇當前的結構作為粗糙結構即可。
寫在後面
因為考慮到太多相關知識點還沒有鋪展好,所以此次推文並沒有打算把同源建模講深入。使用當前的方法可以得到一個較好的粗糙模型。如果想要更精細的模型可以等待後面持續更新的如何進行環結構優化。如果使用個人筆記本電腦運行上面程序,大概需要12小時。