特性 | 高分辨率(全原子)模式 | 低分辨率(质心)模式 |
---|---|---|
表示方法 | 明确表示蛋白质中的所有原子(主链原子 + 详细侧链原子 + 氢原子)。 | 每个残基仅由几个关键点表示:1. 主链原子(N, CA, C, O)。2. 侧链由一个位于其几何中心的“质心”伪原子代表。 |
残基类型 | fa_standard | centroid |
能量函数 | 复杂的评分函数,包含大量精确的物理项和统计项,如:- 范德华力(fa_atr, fa_rep)- 氢键(hbond_sc, hbond_bb)- 溶剂化效应(fa_sol)- 静电(fa_elec)- 扭转角偏好(rama)等。 | 简化的评分函数(如 score3 或 score4),包含:- 基于环境的原子对势能(模拟范德华力和溶剂化效应)。- 氢键(主要是主链-主链氢键)。- 扭转角偏好(rama)。 |
计算速度 | 慢。因为需要计算成千上万个原子对之间的相互作用。 | 极快。原子数量大幅减少,相互作用计算简化。 |
精度与细节 | 高。能够精确描述侧链的堆积、特异的氢键网络、原子级别的相互作用。是进行精细设计和预测所必需的。 | 低。无法描述侧链的细节和方向性,只能捕捉蛋白质折叠的全局特征,如二级结构的形成、蛋白质的大致拓扑结构。 |
一个残基的原子数 | 例如,亮氨酸(Leu)在全原子模式下有~19个原子。 | 在质心模式下,所有残基类型都只有~5-6个原子(主链原子 + 质心伪原子)。 |
!pip install pyrosettacolabsetup
import pyrosettacolabsetup; pyrosettacolabsetup.install_pyrosetta()
import pyrosetta; pyrosetta.init()
from pyrosetta import *
from pyrosetta.teaching import *
init()
### BEGIN SOLUTION
pose = pyrosetta.pose_from_pdb("inputs/6Q21_A.pdb")
sfxn = pyrosetta.get_score_function()
sfxn(pose)
### END SOLUTION
1215.729069796814
### BEGIN SOLUTION
print(pose.residue(5))
### END SOLUTION
Residue 5: LYS (LYS, K):
Base: LYS
Properties: POLYMER PROTEIN CANONICAL_AA POLAR CHARGED POSITIVE_CHARGE METALBINDING SIDECHAIN_AMINE ALPHA_AA L_AA
Variant types:
Main-chain atoms: N CA C
Backbone atoms: N CA C O H HA
Side-chain atoms: CB CG CD CE NZ 1HB 2HB 1HG 2HG 1HD 2HD 1HE 2HE 1HZ 2HZ 3HZ
Atom Coordinates:
N : 20.315, 43.835, 78.015
CA : 20.418, 42.863, 79.118
C : 19.697, 43.46, 80.329
O : 20.096, 44.486, 80.897
CB : 21.858, 42.487, 79.491
CG : 22.791, 42.176, 78.316
CD : 22.406, 40.943, 77.485
CE : 23.009, 40.932, 76.075
NZ : 22.748, 42.169, 75.307
H : 21.0493, 44.5172, 77.8902
HA : 19.9193, 41.9417, 78.815
1HB : 22.3125, 43.3019, 80.0551
2HB : 21.8492, 41.6078, 80.1356
1HG : 22.8124, 43.0262, 77.6332
2HG : 23.8008, 42.0064, 78.6884
1HD : 22.7418, 40.0399, 77.9965
2HD : 21.3219, 40.8985, 77.3807
1HE : 24.088, 40.801, 76.1421
2HE : 22.5982, 40.0953, 75.5101
1HZ : 23.1708, 42.0938, 74.3926
2HZ : 21.751, 42.2999, 75.2069
3HZ : 23.1434, 42.9592, 75.7961
Mirrored relative to coordinates in ResidueType: FALSE
switch = SwitchResidueTypeSetMover("centroid")
switch.apply(pose)
print(pose.residue(5))
core.chemical.GlobalResidueTypeSet: Finished initializing centroid residue type set. Created 62 residue types
core.chemical.GlobalResidueTypeSet: Total time to initialize 0.058948 seconds.
Residue 5: LYS (LYS, K):
Base: LYS
Properties: POLYMER PROTEIN CANONICAL_AA POLAR CHARGED POSITIVE_CHARGE SIDECHAIN_AMINE ALPHA_AA L_AA
Variant types:
Main-chain atoms: N CA C
Backbone atoms: N CA C O H
Side-chain atoms: CB CEN
Atom Coordinates:
N : 20.315, 43.835, 78.015
CA : 20.418, 42.863, 79.118
C : 19.697, 43.46, 80.329
O : 20.096, 44.486, 80.897
CB : 21.8754, 42.543, 79.454
CEN: 23.4957, 41.1851, 79.3707
H : 21.0493, 44.5172, 77.8902
Mirrored relative to coordinates in ResidueType: FALSE
### BEGIN SOLUTION
cen_sfxn = pyrosetta.create_score_function("score3")
cen_sfxn(pose)
### END SOLUTION
-4.509358254597608
### BEGIN SOLUTION
fa_switch = SwitchResidueTypeSetMover("fa_standard")
fa_switch.apply(pose)
print(pose.residue(5))
### END SOLUTION
Residue 5: LYS (LYS, K):
Base: LYS
Properties: POLYMER PROTEIN CANONICAL_AA POLAR CHARGED POSITIVE_CHARGE METALBINDING SIDECHAIN_AMINE ALPHA_AA L_AA
Variant types:
Main-chain atoms: N CA C
Backbone atoms: N CA C O H HA
Side-chain atoms: CB CG CD CE NZ 1HB 2HB 1HG 2HG 1HD 2HD 1HE 2HE 1HZ 2HZ 3HZ
Atom Coordinates:
N : 20.315, 43.835, 78.015
CA : 20.418, 42.863, 79.118
C : 19.697, 43.46, 80.329
O : 20.096, 44.486, 80.897
CB : 21.8754, 42.5429, 79.4539
CG : 22.8944, 43.244, 78.5655
CD : 22.2113, 44.1202, 77.5262
CE : 20.6967, 44.0574, 77.6573
NZ : 20.2706, 43.1587, 78.7642
H : 21.0493, 44.5172, 77.8902
HA : 19.9306, 41.9373, 78.8101
1HB : 22.0814, 42.8255, 80.4867
2HB : 22.0409, 41.4686, 79.3693
1HG : 23.5468, 43.8654, 79.1801
2HG : 23.5056, 42.4999, 78.0558
1HD : 22.5361, 45.154, 77.6512
2HD : 22.4937, 43.7874, 76.5274
1HE : 20.3065, 45.0564, 77.8461
2HE : 20.2655, 43.6934, 76.7248
1HZ : 19.2619, 43.1443, 78.8176
2HZ : 20.6116, 42.2236, 78.5898
3HZ : 20.6485, 43.497, 79.6375
Mirrored relative to coordinates in ResidueType: FALSE
polyA = pyrosetta.pose_from_sequence('A' * 10)
polyA.pdb_info().name("polyA")
# Apply the SwitchResidueTypeSetMover to the pose polyA
### BEGIN SOLUTION
switch = SwitchResidueTypeSetMover("centroid")
switch.apply(polyA)
### END SOLUTION
# Create new score function with only VDW and hbond_sr_bb energy score terms.
### BEGIN SOLUTION
cen_sfxn = ScoreFunction()
cen_sfxn.set_weight(fa_atr, 1.0)
cen_sfxn.set_weight(fa_rep, 1.0)
cen_sfxn.set_weight(hbond_sr_bb, 1.0)
### END SOLUTION
### BEGIN SOLUTION
from pyrosetta.rosetta.core.fragment import *
fragset = ConstantLengthFragSet(3)
fragset.read_fragment_file("inputs/3mer.frags")
### END SOLUTION
### BEGIN SOLUTION
from pyrosetta.rosetta.protocols.simple_moves import ClassicFragmentMover
movemap = MoveMap()
movemap.set_bb(True)
mover_3mer = ClassicFragmentMover(fragset, movemap)
### END SOLUTION
### BEGIN SOLUTION
test_pose = pyrosetta.pose_from_sequence("RFPMMSTFKVLLCGAVLSRIDAG")
pmm = PyMOLMover()
pmm.apply(test_pose)
pmm.send_movemap(test_pose, movemap)
### END SOLUTION
### BEGIN SOLUTION
mover_3mer.apply(test_pose)
pmm.apply(test_pose)
### END SOLUTION
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。