今回は、Pythonを使ったスクレイピングによってタンパク質の配列をPDBから取得します。
PDBのURL https://www.rcsb.org/
1つのタンパク質の情報を取得するだけなら直接PDBからダウンロードすれば問題ありません。各タンパク質のページのDisplay Filesをクリックして、FASTA Sequenceの部分のリンク先を保存することによってダウンロードできます。
ですが、一度に大量のタンパク質の配列を取得するのは手間も時間もかかりますね。
配列をダウンロードするためのページもあります。
このページでは、一度に大量のタンパク質の配列を取得することもできます。
しかし、Download Options: でSingle FASTA File を選択してしまうと配列が一つのテキストにまとめられてしまいます。
今回はタンパク質ごとにFASTAのファイルを取得することを目的としています。
Individual FASTA Files を選択すればできるみたいですが、「開発元が未確認のため開けません。」と怒られてしまいました。
設定で許可するのが億劫だったので、Pythonでスクレイピングしました。
こうしてできたコードがコチラです。
import urllib.request
import time
def fasta_get(PDB_ID):
PROTEIN = PDB_ID.upper() #大文字にする
url = 'https://www.rcsb.org/pdb/download/viewFastaFiles.do?structureIdList=' + PROTEIN +'&compressionType=uncompressed' #FASTA配列が掲載されているURLを取得
urllib.request.urlretrieve(url, '../fasta/' + PROTEIN + '.fasta') #得られた配列を.fasta拡張子で保存
time.sleep(0.5) #サーバーの負担を考慮して一回ごとに時間を開ける
これで1つ前のディレクトリにfastaというディレクトリを作って実行すればそこに保存されます。
PDB_ID にはPDB IDを入れて下さい。
大文字で入れてください
予めPDB IDを格納したリストを作成しておいて、for文を回せば自動的にFASTA配列を保存してくれます。
コードは下記
import urllib.request
import time
#list_PDB_ID はPDB_IDを格納したリスト
for ID in list_PDB_ID:
fasta_get(ID)
本日の内容は以上です。
初投稿でした。
これからがんばります。