python:parmed

Python モジュール: parmed

  • Gromacs や AMBER の構造やトポロジーファイルを扱うモジュール
$ sudo pip3 install parmed
import parmed
structure = parmed.load_file("INPUT")
  • structure: 構造オブジェクトを格納する変数
  • INPUT: 構造ファイル (.pdb / .gro)
structure.save("OUTPUT", "FORMAT", overwrite = True)
  • structure: 構造オブジェクト
  • OUTPUT: 出力ファイル (.pdb / .gro)
  • FORMAT: 出力ファイルのフォーマット (pdb / gro)
  • overwrite = True: 上書き保存する
topology = parmed.gromacs.GromacsTopologyFile("INPUT", xyz = "COORD")
  • topology: トポロジーオブジェクトを格納する変数
  • INPUT: トポロジーファイル (.top)
  • xyz = “COORD”: .gro などの座標ファアイル (任意のオプション)
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
    • object: トポロジーや構造オブジェクト
    • 原子オブジェクトは配列で格納されているため、各原子オブジェクトにアクセスするには object.atoms[0] のようにアクセスする。
  • 原子名
    object.atoms[x].name
    • object: トポロジーや構造オブジェクト
    • x: アクセスする原子のインデックス (ファイルにある原子順序番号ではなく、0 から始まる配列のインデックス)
  • 原子順序番号
    object.atoms[x].number
    • object: トポロジーや構造オブジェクト
    • x: アクセスする原子のインデックス (ファイルにある原子順序番号ではなく、0 から始まる配列のインデックス)
    • 原子順序番号は構造オブジェクト、およびトポロジーオブジェクト読み込み時に構造ファイルを読み込ませた場合にのみ有効
  • 原子インデックス
    object.atoms[x].idx
    • object: トポロジーや構造オブジェクト
    • x: アクセスする原子のインデックス (ファイルにある原子順序番号ではなく、0 から始まる配列のインデックス)
    • 原子全てに与えられた 0 から始まるインデックスを返す (原子順序番号は、読み込んだファイル内の原子順序番号を返すため、ファイル内で重複や誤った番号が付けられていると、影響を受ける)
  • 残基オブジェクト
    object.residues
    • object: トポロジーや構造オブジェクト
    • 残基オブジェクトは配列で格納されているため、各残基オブジェクトにアクセスするには object.atoms[0] のようにアクセスする。
  • 残基名
    object.residues[x].number
    • object: トポロジーや構造オブジェクト
    • x: アクセスする残基のインデックス (ファイルにある残基順序番号ではなく、0 から始まる配列のインデックス)
  • 残基順序番号
    object.residues[x].number
    • object: トポロジーや構造オブジェクト
    • x: アクセスする残基のインデックス (ファイルにある残基順序番号ではなく、0 から始まる配列のインデックス)
    • 残基順序番号は構造オブジェクト、およびトポロジーオブジェクト読み込み時に構造ファイルを読み込ませた場合にのみ有効
  • 特定原子の残基名および特定残基の原子名
    object.atoms[x].residue.name
    object.residues[y].atoms[z].name
    • x: 特定原子のインデックス
    • y: 特定残基のインデックス
    • z: 特定残基 y に属する原子のインデックス
object.strip("AMBER_MASK")
  • AMBER_MASK: 削除する部位の Amber mask
  • example.pdb の場合:
    import parmed
    obj_mol = parmed.load_file("example.pdb")
    print(obj_mol.coordinates)
    • 座標は numpy.ndarray 形式で取得できる
  • 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 で指定された原子のインデックス (配列インデックス) を返す。
  • python/parmed.txt
  • 最終更新: 2023/02/15 14:03
  • by mumeiyamibito