pdb = io.StringIO(""" ATOM 414 N GLY A 402 -51.919 9.578 -14.287 1.00 68.46 N ATOM 415 CA GLY A 402 -52.405 10.954 -14.168 1.00 68.41 C ATOM 416 C GLY A 402 -51.821 11.946 -15.164 1.00 69.71 C ATOM 417 O GLY A 402 -51.958 13.159 -14.968 1.00 69.61 O ATOM 418 H GLY A 402 -52.551 8.935 -14.743 1.00 0.00 H ATOM 419 HA3 GLY A 402 -52.225 11.313 -13.155 1.00 0.00 H ATOM 420 HA2 GLY A 402 -53.492 10.960 -14.249 1.00 0.00 H TER HETATM 1929 N1 XYZ A 900 -40.275 19.399 -28.239 1.00 0.00 N1+ TER ATOM 1029 N ALA B 122 -25.408 19.612 -13.814 1.00 37.52 N ATOM 1030 CA ALA B 122 -26.529 20.537 -14.038 1.00 37.70 C ATOM 1031 C ALA B 122 -26.386 21.914 -13.374 1.00 45.35 C ATOM 1032 O ALA B 122 -26.885 22.904 -13.918 1.00 48.34 O ATOM 1033 CB ALA B 122 -27.835 19.889 -13.613 1.00 37.94 C ATOM 1034 H ALA B 122 -25.636 18.727 -13.385 1.00 0.00 H ATOM 1035 HA ALA B 122 -26.592 20.707 -15.113 1.00 0.00 H ATOM 1036 HB1 ALA B 122 -28.658 20.583 -13.783 1.00 0.00 H ATOM 1037 HB2 ALA B 122 -27.998 18.983 -14.196 1.00 0.00 H ATOM 1038 HB3 ALA B 122 -27.788 19.635 -12.554 1.00 0.00 H ATOM 1039 N GLY B 123 -25.713 21.969 -12.223 1.00 41.18 N ATOM 1040 CA GLY B 123 -25.550 23.204 -11.460 1.00 41.40 C ATOM 1041 C GLY B 123 -24.309 24.018 -11.745 1.00 45.74 C ATOM 1042 O GLY B 123 -24.349 25.234 -11.601 1.00 46.81 O ATOM 1043 H GLY B 123 -25.290 21.133 -11.845 1.00 0.00 H ATOM 1044 HA3 GLY B 123 -25.593 22.976 -10.395 1.00 0.00 H ATOM 1045 HA2 GLY B 123 -26.430 23.831 -11.600 1.00 0.00 H TER """)
u = mda.Universe(pdb, format="PDB")
用例:按片段划分的残基序列
为了只选择ATOM记录类型,以及通过片段获取残基列表,需执行以下操作:
1 2 3 4 5
residues_by_seg = list()
for seg in u.segments: p_seg = seg.atoms.select_atoms("record_type ATOM") residues_by_seg.append(p_seg.residues)
for seg in u.segments: p_seg = seg.atoms.select_atoms("record_type ATOM and not name H*") for p_res in p_seg.residues: atoms_in_residues.append(p_seg.select_atoms(f"resid {p_res.resid} and resname {p_res.resname}"))