應用BioPython解析和可視化蛋白質的結構

2021-02-20 ChuanWorkstation
蛋白質是生物大分子,是構成生命體結構和實現生物學功能必需的化合物。蛋白質是由胺基酸首尾相接共價連接而成。胺基酸的序列為蛋白質的一級結構;多個胺基酸的局部結構為二級結構(如α螺旋、β摺疊、β轉角和無規則捲曲等);三級和四級結構為更為高級的空間結構。蛋白質的空間結構由一級結構為基礎,空間結構決定著蛋白質的生物活性。今日我們以Python語言為基礎,調用BioPython框架/模塊,以2003年SARS冠狀病毒刺突蛋白(spike protein)為例子來實現蛋白質的解析與可視化。BioPython計劃是一個使用Python語言開發計算生物學工具的國際社團,而BioPython是該社團開發的生命科學研究模塊。現在很多生物信息學家、基礎和臨床醫學研究者喜歡使用Python來編程,而調用BioPython模塊/框架可以節省很多時間和精力來實現想要的生物信息學算法。今天咱們就使用BioPython模塊來解析和可視化蛋白質分子。

BioPython模塊的安裝

首先,在終端下安裝BioPython模塊:

pip install biopython

經過一些提示BioPython即刻安裝完成。這裡多說一句,由於國內應用pip安裝模塊很慢,如果想要高速安裝,可以選用清華大學的鏡像,即清華大學的tuna鏡像。第一步升級pip,默認的版本為>=10.0.0,第二部用tuna來配置pip:

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

Jupyter Notebook可視化擴展插件為了能夠更好地在Jupyter Notebook中顯示蛋白質的結構,如放大、縮小和3D旋轉等,我們需要安裝nglview的擴展插件。使用conda工具進行安裝:

conda config --add channels conda-forge
conda install nglview -c bioconda

jupyter-nbextension enable nglview --py --sys-prefix

蛋白質數據的獲得
我們可以通過蛋白質資料庫(PDB)來下載蛋白質數據,網址:www.rcsb.org。我們尋找2003年SARS冠狀病毒的spike蛋白結構,其代碼為5wrg,在網址上輸入該代碼,就會出現該蛋白質的信息,點擊「下載」,在選項裡選擇PDB文件。冠狀病毒的spike蛋白通過結合人體多個宿主細胞膜上的血管緊張素轉化酶2(ACE2)作為受體,與宿主細胞融合而侵入感染程序部分程序編寫開始,首先讀入BioPython模塊的PDB對象:

import Bio.PDB

建立PDB的列表對象,並令該對象提取剛才下載的5wrg文件:

pdbl = Bio.PDB.PDBList()
pdbl.retrieve_pdb_file('5wrg')

這時會顯示提示的警告信息,即讀入的PDB文件會被轉換為cif文件:

Structure exists: 'C:\yourPath\5wrg.cif' 
WARNING: The default download format has changed from PDB to PDBx/mmCif
'C:\\yourPath\\5wrg.cif'

下一步,解析蛋白質文件開始,首先定義和賦值一個parser對象,再令這個parser讀取新生成的這個cif文件,並可將任務命名為SpikeProteinSARS。

parser = Bio.PDB.MMCIFParser()
structure = parser.get_structure('SpikeProteinSARS', 'wr/5wrg.cif')

如果你感興趣,可以試著輸出structure這個對象。其實這個對象是一個生成器(generator),需要iteration去讀取。這時,如果我們想要了解該蛋白質的肽鏈信息,可以用循環語句來輸出:

for i in structure.get_chains():
    print(i)

<Chain id=A>
<Chain id=B>
<Chain id=C>

import nglview as nv
view = nv.show_biopython(structure)
view.clear_representations()
view.add_cartoon()

在Jupyter Notebook的cell裡輸入view,即可視化蛋白質的結構,通過滑鼠左鍵可以將分子進行旋轉,滾輪是放大縮小,滑鼠右鍵是所處位置:

在轉動的過程中,可以任意選擇其中的胺基酸殘基:

view.center()

如果想要保存圖像,可以用download_image()函數,第一個參數的字符串為文件名,第二個參數factor為解析度,數值越大,解析度越高:

view.download_image('SpikeProteinSARS.png', factor = 10)

通過remove_cartoon()函數和add_ball_and_stick()可將蛋白質模型由卡通變為棍球型:下面,我們簡單解析一下蛋白質。定義一個model對象,賦值為structure的第一個index。再將A鏈賦值於變量chain_A。這時,可以顯示每一個胺基酸殘基的信息:第一項為胺基酸殘基縮寫,第二項為所處肽鏈的位置。

model = structure[0]
chain_A = model['A']
for residue in chain_A:
    print(residue.resname, residue.id[1])

THR 261
PHE 262
MET 263
LEU 264
LYS 265
TYR 266
ASP 267
GLU 268
ASN 269
GLY 270

...


VAL 1047
THR 1048
TYR 1049
VAL 1050
PRO 1051
SER 1052
GLN 1053
GLU 1054
ARG 1055
ASN 1056
PHE 1057
THR 1058

若想解析某一個胺基酸殘基(如蘇氨酸THR)的原子,可運行:

for atom in residue.get_atoms():
    print(atom)

<Atom N>
<Atom CA>
<Atom C>
<Atom O>
<Atom CB>

組成這個肽單元(胺基酸殘基)的原子分別為:氨基氮(N)、α碳(CA)、羧基碳(C)、羧基氧(O)和β碳(CB)。
若想知道特定位點的胺基酸殘基,可以應用chain_A去引用:

chain_A = model['A']
chain_A[336]

<Residue SER het=  resseq=336 icode= >

A肽鏈上第336個胺基酸殘基是絲氨酸(Serine)。
最後,所有上述源程序代碼都在我的GitHub代碼庫中,地址:https://github.com/YangChuan80/Bioinformatics/blob/master/Projects/CoronaParser/PDB_Biopython.ipynb除了上述的功能外,BioPython還可以實現生物序列注釋,並且能夠讀取和寫入各種文件格式(FASTA,FASTQ,GenBank和Clustal等), 支持以程序化方式訪問生物信息的在線資料庫(例如,NCBI)。其它衍生的獨立模塊還擴展了Biopython的序列比對、蛋白質結構、群體遺傳學、系統發育、序列基序和機器學習等功能。今後有機會再和各位探討。

最後,向在武漢和全國各地奮戰在防疫第一線的醫療同行們致以最誠摯的問候:你們辛苦了!祝你們早日平安歸來!


關注Chuan Workstation

獲得更多臨床醫學和

生物信息學新技術和新進展

相關焦點

  • 使用biopython可視化染色體和基因元件
    在biopython中,通過BiolGraphics子模塊可以對基因組結構進行可視化,支持線性和圈圖兩種可視化方式。其中,基因組結構信息存儲在genebank格式的文件中,首先通過Bio.SeqIO讀取結構信息,然後通過Bio.Graphics模塊進行可視化。
  • biopython簡介
    biopython和bioperl, biojava項目類似,都是Open Bioinformatics Foundation組織的項目之一,旨在提供一個編程接口,方便生物信息數據的處理。
  • 序列比對在biopython中的處理
    序列比對是生物信息學分析中的常見任務,包含局部比對和全局比對兩大算法,局部比對最經典的代表是blast, 全局比對則用於多序列比對。在biopython中,支持對序列比對的結果進行讀寫,解析,以及運行序列比對的程序。
  • 蛋白質結構解析六十年
    隨著這個理論被證偽,真正的遺傳物質DNA的結構被給予了很大關注。然而,蛋白質作為生命體的重要大分子,其重要性也從未被忽視,而且在1950年代開始,科學家一直在探尋DNA序列和蛋白質序列的相關性。與此同時,蛋白質測序和結構解析蛋白質結構的努力開始慢慢獲得回報。更多的生化研究揭示了蛋白質的功能重要性,因此蛋白質的三維結構的解析對於深入理解蛋白質功能和生理現象起著決定性作用。
  • Biopython —— 你不知道的 NCBI 訪問方式
    介紹Biopython 是由 Python 編寫的一組免費可用的計算生物學工具,解決一些生物信息學需求。Biopython 致力於通過創造高質量和可重複利用的 Python 模塊及類,使 Python 在生物信息學中的應用變得更加容易。
  • 蛋白質結構解析六十年_資訊中心_儀器信息網
    然而,蛋白質作為生命體的重要大分子,其重要性也從未被忽視,而且在1950年代開始,科學家一直在探尋DNA序列和蛋白質序列的相關性。與此同時,蛋白質測序和結構解析蛋白質結構的努力開始慢慢獲得回報。更多的生化研究揭示了蛋白質的功能重要性,因此蛋白質的三維結構的解析對於深入理解蛋白質功能和生理現象起著決定性作用。
  • 為什麼 Biopython 的在線 BLAST 這麼慢?
    Biopython 中的 BLAST 提供了 over the Internet 和 locally 兩種選擇:Bio.Blast.NCBIWWW 主要是基於 NCBI BLAST API 用於在線比對Bio.Blast.Applications
  • 使用機器學習和Python揭開DNA測序神秘面紗
    該圖顯示了DNA雙螺旋結構的一小部分。DNA的雙螺旋結構雙螺旋是DNA的化學表示。但是DNA很特別。它是由四種類型的鹼基組成的核苷酸:腺嘌呤(A),胸腺嘧啶(T),鳥嘌呤(G)和胞嘧啶(C)。我們總是稱它們為A,C,G和T。
  • Python可視化工具推薦:圖片交互性行極佳的Plotly
    1、 簡單介紹一般大家在學習python機器學習的時候,用的最多的可視化的包就是matplot和seaborn, 這2個可視化的優點在於門檻低,代碼容易理解,並且容易上手。但是對於plotly來說的話,我們直接可以用python來寫,並且代碼量比java的少很多,我們可以直接將我們熟悉的python list, numpy, pandas放進去就可以畫圖,並且給出的效果和echart的圖一摸一樣。另外要提一點的是python plotly也是可以用來做動圖的,我們後面會給大家介紹一種用plolty做出來的用於展示Kmeans算法過程的動圖。
  • 科學網—蛋白質結構解析:生物學的「聖杯」
    Anfinsen)提出「蛋白質的高級空間結構由蛋白質的胺基酸序列決定」後(他也因此獲得1972年諾貝爾化學獎),人們開始尋找一種能夠預測蛋白質結構的算法,可以精確地從蛋白質的胺基酸序列,利用計算機預測出其複雜的空間結構,甚至其由結構決定的功能。
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • 日本研發新技術可解析蛋白質二級結構
    ,他們成功開發出一種核磁共鳴法(NMR法),能夠在不使用同位素標記的情況下解析蛋白質的二級結構。蛋白質二級結構(secondary structure of protein)指它的多肽鏈中有規則重複的構象,是蛋白質整體形狀的基礎。蛋白質中的代表性二級結構為β-摺疊(β-sheet),是由伸展的多肽鏈組成的,可分為平行式和反平行式兩種類型。
  • 布魯克在ASMS 2016推出蛋白質結構分析解決方案—HDX Solution
    Bruker HDX解決方案通過H/D比值獲得單一同位素精確定量分析結果,為深入了解生物分子結構提供可靠依據。  這些年來,生物製藥表徵分析需要對生物蛋白的空間構象有更加深入的了解,還要了解多種因素如pH值、溫度和壓力等對蛋白的影響。對於這一挑戰,HDX-MS已經成為了一種有價值的分析技術。生物製藥分析方法需要運用強大的分析統計工具,自動化的提供高質量數據。
  • 冷凍電鏡實現蛋白結構的原子水平解析
    冷凍電鏡實現蛋白結構的原子水平解析 作者:小柯機器人 發布時間:2020/10/25 22:25:16 近日,德國馬普研究所Holger Stark及其課題利用冷凍電鏡實現蛋白結構的原子水平解析
  • 蛋白質3D結構可用AI解析
    人體內有成千上萬種不同的蛋白質,每種蛋白質包括數十上百個胺基酸,這些胺基酸的順序決定著蛋白質的形狀和功能。「結構即功能」是分子生物學的定理,若能根據根據蛋白質的胺基酸序列推出其結構,有助於人們加速了解細胞的組成和運作規律,一些新藥物的研發也能更快推進。
  • 編寫Python代碼解析病毒基因組
    此時病毒被呼吸細胞所分泌的粘液所包繞,並且周圍還有分泌的抗體、小免疫系統的多種蛋白質。病毒由包膜包裝,包膜上含有S蛋白、M蛋白、E蛋白。病毒內部為病毒RNA。言歸正傳,今天就讓我們來編寫Python程序解析病毒基因組。首先,下載病毒基因組信息。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    三、課程特點 課程重視代碼實踐,使用金融、氣象、農業、交通、安防等工業界實際數據(數據已脫敏)進行機器學習模型的落地應用。雖然課程堅持推導公式,但更重視機器學習和深度學習的原理與實操;將實際工作中遇到的行業應用和痛點做最直觀切實的展示;重視算法模型的同時,更強調實際問題中應該如何模型選擇、特徵選擇和調參。
  • Python開發簡單爬蟲【學習資料總結】
    URL管理器返回是/否; 2、如果是,調度器會從URL管理器中取出一個待爬URL; 3、調度器將URL傳給下載器,下載網頁內容後返回給調度器; 4、調度器再將返回的網頁內容發送到解析器,解析URL內容,解析完成後返回有價值的數據和新的URL; 5、一方面,調度器將數據傳遞給應用進行數據的收集
  • python應用之基於tensorflow的數據擬合:深度學習之預測入門篇
    實驗目的:1、了解python在深度學習領域的應用2、學習安裝python第三方依賴庫實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib預測過程展示:1、應用領域python是一種高級面向對象的動態類型語言,具有開發高效,學習簡單的特點,主要應用於大數據、深度學習、
  • 蛋白質三維結構解析固體核磁共振方法獲進展
    中國科學院武漢物理與數學研究所波譜與原子分子物理國家重點實驗室的楊俊研究組,在發展蛋白質高分辨三維結構的固體核磁共振測定新技術和新方法方面取得重要進展,相關研究結果於近日在