Pythonでmrcfileパッケージを使って、mrcファイルからoriginとpixelsizeを抽出し、PDBファイルの座標にangstrom単位で適用する方法

Pythonでmrcfileパッケージを使って、mrcファイルからoriginとpixelsizeを抽出し、PDBファイルの座標にangstrom単位で適用する方法について説明します。

  1. まず、必要なパッケージをインストールします。ターミナルで以下のコマンドを実行してください。
pip install mrcfile
pip install biopython
  1. 次に、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.mrcyour_structure_idyour_pdb_file.pdbを適切なファイル名や構造名に置き換えてください。shifted_pdb_file.pdbは、座標がシフトされた新しいPDBファイルの名前です。このPythonファイルを実行すると、指定されたMRCファイルのoriginとpixelsizeを使って、PDBファイルの座標がangstrom単位でシフトされます。

コメント