Pythonでmrcfileパッケージを使って、mrcファイルからoriginとpixelsizeを抽出し、PDBファイルの座標にangstrom単位で適用する方法について説明します。
- まず、必要なパッケージをインストールします。ターミナルで以下のコマンドを実行してください。
pip install mrcfile
pip install biopython
- 次に、Pythonコードを作成してMRCファイルとPDBファイルを読み込み、座標をシフトします。
import mrcfile
from Bio.PDB import PDBParser, PDBIO
# MRCファイルを読み込む
with mrcfile.open('your_mrc_file.mrc', mode='r') as mrc:
origin_x, origin_y, origin_z = mrc.header['origin']['x'], mrc.header['origin']['y'], mrc.header['origin']['z']
pixel_size = mrc.voxel_size.x
# Angstrom単位でシフト量を計算する
shift_x = origin_x * pixel_size
shift_y = origin_y * pixel_size
shift_z = origin_z * pixel_size
# PDBファイルを読み込む
pdb_parser = PDBParser()
structure = pdb_parser.get_structure('your_structure_id', 'your_pdb_file.pdb')
# 座標をシフトする
for atom in structure.get_atoms():
atom.set_coord(atom.get_coord() + [shift_x, shift_y, shift_z])
# シフトされたPDBファイルを保存する
pdb_io = PDBIO()
pdb_io.set_structure(structure)
pdb_io.save('shifted_pdb_file.pdb')
このコードをPythonファイル(例:shift_pdb.py
)に保存し、your_mrc_file.mrc
、your_structure_id
、your_pdb_file.pdb
を適切なファイル名や構造名に置き換えてください。shifted_pdb_file.pdb
は、座標がシフトされた新しいPDBファイルの名前です。このPythonファイルを実行すると、指定されたMRCファイルのoriginとpixelsizeを使って、PDBファイルの座標がangstrom単位でシフトされます。
コメント