Python モジュール: parmed
概要
インストール
$ sudo pip3 install parmed
使い方
よく使う機能
構造の読み込み
structure = parmed.load_file("INPUT")
構造の出力
structure.save("OUTPUT", "FORMAT", overwrite = True)
structure
: 構造オブジェクト
OUTPUT
: 出力ファイル (.pdb / .gro)
FORMAT
: 出力ファイルのフォーマット (pdb / gro)
overwrite = True
: 上書き保存する
Gromacs トポロジーファイルの読み込み
topology = parmed.gromacs.GromacsTopologyFile("INPUT", xyz = "COORD")
Amber トポロジーファイルの読み込み
topology = parmed.amber.AmberParm("INPUT", xyz = "COORD")
topology
: トポロジーオブジェクトを格納する変数
INPUT
: トポロジーファイル (.prmtop)
xyz = “COORD”
: .inpcrd などの座標ファアイル (任意のオプション)
トポロジーファイルの出力
topology.save("OUTPUT", "FORMAT", overwrite = True)
topology
: トポロジーオブジェクト
OUTPUT
: 出力ファイル (.top / .prmtop)
FORMAT
: 出力ファイルのフォーマット (gromacs
(gromacs トポロジー) / amber
(Amber トポロジー))
overwrite = True
: 上書き保存する
情報取得
-
-
原子順序番号
object.atoms[x].number
原子インデックス
object.atoms[x].idx
-
残基名
object.residues[x].number
残基順序番号
object.residues[x].number
特定原子の残基名および特定残基の原子名
object.atoms[x].residue.name
object.residues[y].atoms[z].name
x
: 特定原子のインデックス
y
: 特定残基のインデックス
z
: 特定残基 y に属する原子のインデックス
特定部位の削除
object.strip("AMBER_MASK")
使用例
PDB から座標を抽出する
example.pdb の場合:
import parmed
obj_mol = parmed.load_file("example.pdb")
print(obj_mol.coordinates)
PDB からリガンドの座標を抽出する
5r7y.pdb (リガンド残基名
JFM
) の場合
import parmed
obj_mol = parmed.load_file("5r7y.pdb")
obj_ambermask = parmed.amber.AmberMask(obj_mol, ":JFM")
print(obj_mol.coordinates[list(obj_ambermask.Selected())])
parmed.amber.AmberMask(MOLECULE_OBJECT, AMBERMASK)
で Amber mask による指定ができる。
AmberMask オブジェクトの .Selected()
はジェネレータで、Amber mask で指定された原子のインデックス (配列インデックス) を返す。
参考サイト