2

pymol を使用して pdb ファイルからタンパク質構造を描画しようとしています。

ただし、以下のスクリプトを実行しようとすると、pymol ウィンドウが開きますが、真っ暗です。また、奇妙なことに、pdb ファイルがシェルに出力されます。

これが私のコードです:

bioservices_pdb_obj = PDB()
pdb_file = bioservices_pdb_obj.getFile(results[str(Brick.part_attrib(self,'uniprot_id'))][detail-1],'pdb')
pdb_name = str(Brick.part_attrib(self,'uniprot_id'))
pymol.finish_launching()                
pymol.cmd.load(pdb_file, pdb_name)
pymol.cmd.disable("all")
pymol.cmd.enable(pdb_name)
pymol.cmd.png("my_pdb.png")
pymol.cmd.quit()

ここで何が起こっているか知っている人はいますか?

.png ファイル 'my_pdb' が作業ディレクトリにダンプされますが、これも黒です。

4

1 に答える 1

0

これは他の PDB ファイルでも発生しますか? はいの場合は、cmd.mpng() 関数を使用して回避策を試すことができます。コマンドライン モードで PyMOL を使用する場合など、cmd.png() 関数が機能しない場合は、この関数を他のコンテキストでも使用できます。

import pymol
from pymol import cmd
import os
pymol.finish_launching()                
cmd.set('ray_trace_frames', 1)  # Frames are raytraced before saving an image.

def pnghack(filepath, width=1024, height=768):
"""Workaround if cmd.png() doesn't work"""
    cmd.viewport(width, height)  # Set resolution
    cmd.mpng(filepath, 1, 1)  # Use batch png mode with 1 frame only
    cmd.mplay()  # cmd.mpng needs the animation to 'run'

cmd.load(pdb_file, pdb_name)
cmd.disable("all")
cmd.enable(pdb_name)
pnghack("my_pdb.png")
cmd.quit()

cmd.mpng() 関数は常にフレーム番号を追加するため、結果の png ファイルの名前は「my_pdb0001.png」になることに注意してください。

于 2014-09-26T07:54:54.607 に答える