想要使用pymol将cif转换为pdb,又不想每次都打开pymol的图形界面,于是想通过命令行操作pymol来实现:
首先,执行命令行中的python,发现python的环境中没有pymol模块,因此需要将 PyMOL 的模块路径添加到 PYTHONPATH:
在环境变量中添加并source:
export PYTHONPATH=$PYTHONPATH:/home/username/software/pymol3.1.3/pymol/lib/python3.10/site-packages
#最好是在命令行中运行而不是一直放在环境变量中,不然可能造成系统中不同软件之间python环境不兼容
执行转换的python脚本:
# cif_to_pdb.py
# python cif_to_pdb.py input.cif output.pdb
import sys
import pymol
def cif_to_pdb(cif_file, pdb_file):
    pymol.finish_launching(['pymol', '-qc'])
    pymol.cmd.load(cif_file)
    pymol.cmd.save(pdb_file)
    pymol.cmd.quit()
if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python cif_to_pdb.py <input.cif> <output.pdb>")
        sys.exit(1)
    input_cif = sys.argv[1]
    output_pdb = sys.argv[2]
    cif_to_pdb(input_cif, output_pdb)
    print(f"Conversion complete: {output_pdb}")
本文来自博客园,作者:计算之道,转载请注明原文链接:https://www.cnblogs.com/jszd/p/18882244
                    
                
                
            
        
浙公网安备 33010602011771号