Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pymol不输出图像_Python_Protein Database_Pymol - Fatal编程技术网

Python Pymol不输出图像

Python Pymol不输出图像,python,protein-database,pymol,Python,Protein Database,Pymol,我正在尝试使用pymol从pdb文件中绘制一个蛋白质结构 然而,当我尝试运行下面的脚本时,会打开一个pymol窗口,但它只是一片漆黑。而且,奇怪的是,pdb文件被输出到shell 这是我的密码: bioservices_pdb_obj = PDB() pdb_file = bioservices_pdb_obj.getFile(results[str(Brick.part_attrib(self,'uniprot_id'))][detail-1],'pdb') pdb_name = str(Br

我正在尝试使用pymol从pdb文件中绘制一个蛋白质结构

然而,当我尝试运行下面的脚本时,会打开一个pymol窗口,但它只是一片漆黑。而且,奇怪的是,pdb文件被输出到shell

这是我的密码:

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”被转储到工作目录中,但该目录也是黑色的。

其他pdb文件也会出现这种情况吗?如果是,可以使用cmd.mpng()函数尝试解决方法。如果cmd.png()函数不起作用,您也可以在其他上下文中使用此函数,例如在命令行模式下使用PyMOL时

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()

请注意,生成的png文件名为“my_pdb001.png”,因为cmd.mpng()函数总是添加帧号。

它仍然提供一张空白图片。