如何从 pdb 文件中分别获取 X、Y 或 Z 坐标
How to separately get the X, Y or Z coordinates from a pdb file
我有一个 PDB 文件“1abz”(https://files.rcsb.org/view/1ABZ.pdb),其中包含蛋白质结构的坐标。请忽略 header 注释行,有趣的信息从第 276 行开始 'MODEL 1'。
我想从 pdb 文件中单独获取 X、Y 或 Z 坐标。
这 link 解释了 pdb 文件的列号:http://cupnet.net/pdb-format/
这是我的代码,但我收到一条错误消息。
from Bio import PDB
parser = PDB.PDBParser()
io = PDB.PDBIO()
struct = parser.get_structure('1abz','1abz.pdb')
for model in struct:
for chain in model:
for residue in chain:
for atom in residue:
XYZ = atom.get_coord()
for line in XYZ:
x_coord = float(line[30:38].strip())
y_coord = float(line[38:46].strip())
z_coord = float(line[46:54].strip())
print x_coord
print y_coord
print z_coord
>>> Bio.__version__
'1.69'
from Bio import PDB
parser = PDB.PDBParser()
io = PDB.PDBIO()
struct = parser.get_structure('1ABZ','1ABZ.pdb')
for model in struct:
for chain in model:
for residue in chain:
for atom in residue:
x,y,z = atom.get_coord()
print(x,y,z)
结果:
15.254 -0.607 3.211
16.429 -0.874 3.019
14.337 -1.034 2.53
14.908 0.287 4.404
13.772 1.237 4.018
12.591 1.037 4.971
11.729 0.213 4.737
15.778 0.862 4.685
14.596 -0.326 5.237
13.458 1.028 3.007
14.118 2.259 4.084
...
应该做和上面一样的事情。
import mdtraj as md
pdbfile='1ABZ.pdb'
traj=md.load_pdb(pdbfile)
print traj.xyz[0]
我有一个 PDB 文件“1abz”(https://files.rcsb.org/view/1ABZ.pdb),其中包含蛋白质结构的坐标。请忽略 header 注释行,有趣的信息从第 276 行开始 'MODEL 1'。
我想从 pdb 文件中单独获取 X、Y 或 Z 坐标。
这 link 解释了 pdb 文件的列号:http://cupnet.net/pdb-format/
这是我的代码,但我收到一条错误消息。
from Bio import PDB
parser = PDB.PDBParser()
io = PDB.PDBIO()
struct = parser.get_structure('1abz','1abz.pdb')
for model in struct:
for chain in model:
for residue in chain:
for atom in residue:
XYZ = atom.get_coord()
for line in XYZ:
x_coord = float(line[30:38].strip())
y_coord = float(line[38:46].strip())
z_coord = float(line[46:54].strip())
print x_coord
print y_coord
print z_coord
>>> Bio.__version__
'1.69'
from Bio import PDB
parser = PDB.PDBParser()
io = PDB.PDBIO()
struct = parser.get_structure('1ABZ','1ABZ.pdb')
for model in struct:
for chain in model:
for residue in chain:
for atom in residue:
x,y,z = atom.get_coord()
print(x,y,z)
结果:
15.254 -0.607 3.211
16.429 -0.874 3.019
14.337 -1.034 2.53
14.908 0.287 4.404
13.772 1.237 4.018
12.591 1.037 4.971
11.729 0.213 4.737
15.778 0.862 4.685
14.596 -0.326 5.237
13.458 1.028 3.007
14.118 2.259 4.084
...
应该做和上面一样的事情。
import mdtraj as md
pdbfile='1ABZ.pdb'
traj=md.load_pdb(pdbfile)
print traj.xyz[0]