@Author: 吴炜坤
@email:weikun.wu@xtalpi.com/weikunwu@163.com
注意:
Residue Level TaskOperations(RLT)一般需要配合Selector来指定操作的范围。用户可以直观地将RLT理解为一个自定义版本的Specialized Operations。特别注意的是:RLT是无法直接被TaskFactory所读取,其必须通过OperateOnResidueSubset函数来生成一个标准的TaskOperations。
Rosetta中目前支持的所有RTL的列表:
# 初始化PyRosetta并读取一段螺旋结构的PDB。
from pyrosetta import *
init()
pose = pose_from_pdb('./data/helix.pdb')
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org
(C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team.
core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags
core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12
core.init: {0} command: PyRosetta -ex1 -ex2aro -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database
basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-10988823 seed_offset=0 real_seed=-10988823 thread_index=0
basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-10988823 RG_type=mt19937
core.chemical.GlobalResidueTypeSet: {0} Finished initializing fa_standard residue type set. Created 983 residue types
core.chemical.GlobalResidueTypeSet: {0} Total time to initialize 0.696495 seconds.
core.import_pose.import_pose: {0} File './data/helix.pdb' automatically determined to be of type PDB
core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue GLY:CtermProteinFull 14
RestrictToRepackingRLT在上一章节中已经介绍,此处不再赘述。
# 预先定义好 氨基酸的作用范围。
from pyrosetta.rosetta.core.pack.task.operation import *
from pyrosetta.rosetta.core.pack.task.operation import OperateOnResidueSubset
from pyrosetta.rosetta.core.select.residue_selector import ResidueIndexSelector
from pyrosetta.rosetta.core.pack.task import TaskFactory
# 选择氨基酸范围
select_pos = ResidueIndexSelector('2,3,4,5,6,7,8,9,10,11,12,13')
将选择区域的氨基酸Rotamer自由度完全关闭,其侧链构象维持不变。
# 使用OperateOnResidueSubset生成TaskOperations
packing_taskop = OperateOnResidueSubset(PreventRepackingRLT(), select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 FALSE FALSE 3 FALSE FALSE 4 FALSE FALSE 5 FALSE FALSE 6 FALSE FALSE 7 FALSE FALSE 8 FALSE FALSE 9 FALSE FALSE 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 FALSE FALSE 14 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
将Rotamer自由度限定在给定的氨基酸类型列表,并允许保留当前位点氨基酸类型的Rotamer。
# 定义自由度
design_with_wt = RestrictAbsentCanonicalAASExceptNativeRLT()
design_with_wt.aas_to_keep('QKI')
# 使用OperateOnResidueSubset生成TaskOperations
packing_taskop = OperateOnResidueSubset(design_with_wt, select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE GLU,ILE,LYS,GLN 3 TRUE TRUE ILE,LYS,LEU,GLN 4 TRUE TRUE ILE,LYS,GLN 5 TRUE TRUE ILE,LYS,GLN 6 TRUE TRUE ILE,LYS,GLN,TRP 7 TRUE TRUE ILE,LYS,GLN,VAL 8 TRUE TRUE GLU,ILE,LYS,GLN 9 TRUE TRUE ILE,LYS,GLN 10 TRUE TRUE ALA,ILE,LYS,GLN 11 TRUE TRUE GLU,ILE,LYS,GLN 12 TRUE TRUE ILE,LYS,GLN,ARG 13 TRUE TRUE ILE,LYS,ASN,GLN 14 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
功能与RestrictAbsentCanonicalAASExceptNativeRLT类似,将Rotamer自由度限定在给定的氨基酸类型列表。唯一的差别在于RestrictAbsentCanonicalAASRLT会忘记当前的氨基酸类型。
# 定义自由度
design_to = RestrictAbsentCanonicalAASRLT()
design_to.aas_to_keep('QKI')
# 使用OperateOnResidueSubset生成TaskOperations
packing_taskop = OperateOnResidueSubset(design_to, select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ILE,LYS,GLN 3 TRUE TRUE ILE,LYS,GLN 4 TRUE TRUE ILE,LYS,GLN 5 TRUE TRUE ILE,LYS,GLN 6 TRUE TRUE ILE,LYS,GLN 7 TRUE TRUE ILE,LYS,GLN 8 TRUE TRUE ILE,LYS,GLN 9 TRUE TRUE ILE,LYS,GLN 10 TRUE TRUE ILE,LYS,GLN 11 TRUE TRUE ILE,LYS,GLN 12 TRUE TRUE ILE,LYS,GLN 13 TRUE TRUE ILE,LYS,GLN 14 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
不允许突变为列表中指定氨基酸类型,但允许保留当前位点氨基酸类型的Rotamer。
# 定义自由度
not_design_to = DisallowIfNonnativeRLT()
not_design_to.disallow_aas('HLQKILRA')
# 使用OperateOnResidueSubset生成TaskOperations
packing_taskop = OperateOnResidueSubset(not_design_to, select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 3 TRUE TRUE CYS,ASP,GLU,PHE,GLY,LEU,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 4 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,GLN,SER,THR,VAL,TRP,TYR 5 TRUE TRUE CYS,ASP,GLU,PHE,GLY,LYS,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 6 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 7 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 8 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 9 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,GLN,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 11 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 12 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE CYS,ASP,GLU,PHE,GLY,MET,ASN,PRO,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
设定Packer在执行期间,考虑Pose输入时的Rotamer状态。
# 使用OperateOnResidueSubset生成TaskOperations
packing_taskop = OperateOnResidueSubset(IncludeCurrentRLT(), select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
# 检查是否Pack中是否包含input的rotamer构象:
packer_task.include_current(2)
True
# 检查是否Pack中是否包含input的rotamer构象:
packer_task.include_current(1)
False
Rosetta Pack采样Rotamer时是离散的,默认只会采纳每个格点的中心富集的构象,我们可以通过Extra Rotamer相关控制手段来增加Rotamer的采样,默认扩充采样时,采集Rotamer时会额外考虑平均χ的+/-1个标准差的构象。
ExtraRotamersGenericRLT有3个定义的参数:
ex?: “?”可选值为1-4,指定对侧链中第几个χ角进行扩大采样。
ex?_sample_level: 指定允许的χ角标准差范围。
extrachi_cutoff: Rosetta默认不会对处于蛋白表面的氨基酸进行额外Rotamer采集,除非用户显式地设置(EX_CUTOFF >=1-3等)。默认每个氨基酸计算10埃范围内残基数量,当数量大于阈值时,认为是"包埋"的氨基酸,进行额外的Rotamer采样。因此通常EX_CUTOFF显式地设置为0,考虑所有的氨基酸位点都做Rotamer。
# 设定额外rotamer采样:
from pyrosetta.rosetta.core.select.residue_selector import ChainSelector
from pyrosetta.rosetta.core.pack.task.operation import RestrictToRepacking
from pyrosetta.rosetta.core.pack.task.operation import ExtraRotamers
from pyrosetta.rosetta.core.pack.task import ExtraRotSample
extract_chi = ExtraRotamersGenericRLT()
extract_chi.ex1(True)
extract_chi.ex2aro(True)
# extract_chi.ex1_sample_level(ExtraRotSample.EX_ONE_STDDEV) #【1~7 定义 chi标准误范围】
# extract_chi.ex2aro_sample_level(ExtraRotSample.EX_ONE_STDDEV) #【1~7 定义 chi标准误范围】
extract_chi.extrachi_cutoff(0) #定义一个残基必须有几个邻近采集方可增强chi采样。 0 = 默认不考虑邻近阈值。默认为18
# 使用OperateOnResidueSubset生成TaskOperations
select_pos = ChainSelector('1')
packing_taskop = OperateOnResidueSubset(extract_chi, select_pos, False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(RestrictToRepacking()) # 全局设置为只能repacking
pack_tf.push_back(packing_taskop)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
# 查看每个残基的Rotamer采样级别:
print(packer_task.task_string(pose))
start 1 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 2 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 3 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 4 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 5 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 6 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 7 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 8 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 9 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 10 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 11 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 12 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 13 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0 14 A NATAA EX ARO 1 EX ARO 2 EX_CUTOFF 0
from pyrosetta.rosetta.protocols.minimization_packing import PackRotamersMover
pack_mover = PackRotamersMover()
pack_mover.task_factory(pack_tf)
pack_mover.apply(pose)
protocols.minimization_packing.PackRotamersMover: {0} [ WARNING ] undefined ScoreFunction -- creating a default one core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015 core.scoring.etable: {0} Starting energy table calculation core.scoring.etable: {0} smooth_etable: changing atr/rep split to bottom of energy well core.scoring.etable: {0} smooth_etable: spline smoothing lj etables (maxdis = 6) core.scoring.etable: {0} smooth_etable: spline smoothing solvation etables (max_dis = 6) core.scoring.etable: {0} Finished calculating energy tables. basic.io.database: {0} Database file opened: scoring/score_functions/hbonds/ref2015_params/HBPoly1D.csv basic.io.database: {0} Database file opened: scoring/score_functions/hbonds/ref2015_params/HBFadeIntervals.csv basic.io.database: {0} Database file opened: scoring/score_functions/hbonds/ref2015_params/HBEval.csv basic.io.database: {0} Database file opened: scoring/score_functions/hbonds/ref2015_params/DonStrength.csv basic.io.database: {0} Database file opened: scoring/score_functions/hbonds/ref2015_params/AccStrength.csv basic.io.database: {0} Database file opened: scoring/score_functions/rama/fd/all.ramaProb basic.io.database: {0} Database file opened: scoring/score_functions/rama/fd/prepro.ramaProb basic.io.database: {0} Database file opened: scoring/score_functions/omega/omega_ppdep.all.txt basic.io.database: {0} Database file opened: scoring/score_functions/omega/omega_ppdep.gly.txt basic.io.database: {0} Database file opened: scoring/score_functions/omega/omega_ppdep.pro.txt basic.io.database: {0} Database file opened: scoring/score_functions/omega/omega_ppdep.valile.txt basic.io.database: {0} Database file opened: scoring/score_functions/P_AA_pp/P_AA basic.io.database: {0} Database file opened: scoring/score_functions/P_AA_pp/P_AA_n core.scoring.P_AA: {0} shapovalov_lib::shap_p_aa_pp_smooth_level of 1( aka low_smooth ) got activated. basic.io.database: {0} Database file opened: scoring/score_functions/P_AA_pp/shapovalov/10deg/kappa131/a20.prop basic.io.database: {0} Database file opened: scoring/score_functions/elec_cp_reps.dat core.scoring.elec.util: {0} Read 40 countpair representative atoms core.pack.dunbrack.RotamerLibrary: {0} shapovalov_lib_fixes_enable option is true. core.pack.dunbrack.RotamerLibrary: {0} shapovalov_lib::shap_dun10_smooth_level of 1( aka lowest_smooth ) got activated. core.pack.dunbrack.RotamerLibrary: {0} Binary rotamer library selected: /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database/rotamer/shapovalov/StpDwn_0-0-0/Dunbrack10.lib.bin core.pack.dunbrack.RotamerLibrary: {0} Using Dunbrack library binary file '/opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database/rotamer/shapovalov/StpDwn_0-0-0/Dunbrack10.lib.bin'. core.pack.dunbrack.RotamerLibrary: {0} Dunbrack 2010 library took 0.190938 seconds to load from binary core.pack.pack_rotamers: {0} built 717 rotamers at 14 positions. core.pack.pack_rotamers: {0} Requesting all available threads for interaction graph computation. core.pack.interaction_graph.interaction_graph_factory: {0} Instantiating DensePDInteractionGraph basic.thread_manager.RosettaThreadManager: {?} Creating a thread pool of 1 threads. basic.thread_manager.RosettaThreadPool: {?} Launched 0 new threads. core.pack.rotamer_set.RotamerSets: {0} Completed interaction graph pre-calculation in 1 available threads (1 had been requested).
查看运行日志: “built 717 rotamers at 14 positions.” 此时在计算InteractionGraph的时候使用了717个rotamer。
尝试改变“ex?”的参数,看看InteractionGraph的rotamer数量的变化情况?
这部分的TaskOperations分类主要根据残基的位置和类型信息进行自动化的定义。主要分为:
这一部分包含了绝大数与实际工作相关的TaskOperations。
对于BaseResidueTypes的操作是在生成PackerTask之前,对PackerPalettes做调整。 PackerPalettes用于定义“默认”的氨基酸列表,默认允许20种天然氨基酸的Rotamer被采样。当氨基酸类型没有在预设列表中时,在后续过程中,这类氨基酸将不会出现。
from pyrosetta.rosetta.core.pack.task.operation import RestrictToSpecifiedBaseResidueTypes
from pyrosetta.rosetta.core.pack.task.operation import RestrictToRepacking
from pyrosetta.rosetta.utility import vector1_std_string
# allow basetype
mut_table = "TYR,VAL,TRP,CYS,"
mut_table_list = vector1_std_string()
for aa in mut_table.split(','):
mut_table_list.append(aa)
# restrict to baestype list
restric_to_basetype = RestrictToSpecifiedBaseResidueTypes()
restric_to_basetype.set_base_types(mut_table_list)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restric_to_basetype)
pack_tf.push_back(RestrictToRepacking())
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 FALSE FALSE 3 FALSE FALSE 4 FALSE FALSE 5 FALSE FALSE 6 TRUE FALSE TRP 7 TRUE FALSE VAL 8 FALSE FALSE 9 FALSE FALSE 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 FALSE FALSE 14 FALSE FALSE
可见,尽管将所有的Rotamer状态设置为repacking,当氨基酸类型在PackerPalettes预设列表中删除后,一些位点Rotamer自由度变“空”!
同理于RestrictToSpecifiedBaseResidueTypes的逻辑,ProhibitSpecifiedBaseResidueTypes设定了哪些氨基酸类型应当被“禁止”。
from pyrosetta.rosetta.core.pack.task.operation import ProhibitSpecifiedBaseResidueTypes
from pyrosetta.rosetta.utility import vector1_std_string
# allow basetype
not_mut_table = "ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR"
not_mut_table_list = vector1_std_string()
for aa in not_mut_table.split(','):
not_mut_table_list.append(aa)
# restrict to baestype list
restric_to_basetype = ProhibitSpecifiedBaseResidueTypes()
restric_to_basetype.set_base_types(not_mut_table_list)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restric_to_basetype)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE CYS:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE CYS,VAL,TRP,TYR 3 TRUE TRUE CYS,VAL,TRP,TYR 4 TRUE TRUE CYS,VAL,TRP,TYR 5 TRUE TRUE CYS,VAL,TRP,TYR 6 TRUE TRUE CYS,VAL,TRP,TYR 7 TRUE TRUE CYS,VAL,TRP,TYR 8 TRUE TRUE CYS,VAL,TRP,TYR 9 TRUE TRUE CYS,VAL,TRP,TYR 10 TRUE TRUE CYS,VAL,TRP,TYR 11 TRUE TRUE CYS,VAL,TRP,TYR 12 TRUE TRUE CYS,VAL,TRP,TYR 13 TRUE TRUE CYS,VAL,TRP,TYR 14 TRUE TRUE CYS:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
之前我们讲了Resfile的编写规则,此处我们将resfile写成如下格式:
NATAA
EX 1 EX 2
START
1 A PIKAA A
2 A PIKAA AKR
3 A PIKAA APM
4 A PIKAA APT
这个Resfile定义的自由度为: NATAA至当前未指定的氨基酸都只能进行Repacking。此外,A链1号位点只能突变成ALA,A链2号位点只能突变成ALA,LYS和ARG如此类推。
from pyrosetta.rosetta.core.pack.task.operation import ReadResfile
# restrict to baestype list
resfile_type = ReadResfile('./data/mutation.resfile')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(resfile_type)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull 2 TRUE TRUE ALA,LYS,ARG 3 TRUE TRUE ALA,MET,PRO 4 TRUE TRUE ALA,PRO,THR 5 TRUE FALSE LYS 6 TRUE FALSE TRP 7 TRUE FALSE VAL 8 TRUE FALSE GLU 9 TRUE FALSE GLN 10 TRUE FALSE ALA 11 TRUE FALSE GLU 12 TRUE FALSE ARG 13 TRUE FALSE ASN 14 TRUE FALSE GLY:CtermProteinFull
“铁锁连环”,当设定一个氨基酸与另外一些氨基酸必须同时突变为一样类型的Rotamer。但这部分的代码在pyrosetta中一直会造成内核错误。暂无法使用(2017-2021)
根据给定的氨基酸性质来对PackerPalettes预设列表中的氨基酸类型进行指定和修改。
氨基酸的性质可选列表都记录在pyrosetta.rosetta.core.chemical.ResidueProperty中。 一般常用可选:
from pyrosetta.rosetta.core.pack.task.operation import RestrictToResidueProperties
from pyrosetta.rosetta.core.chemical import ResidueProperty
from pyrosetta.rosetta.utility import vector1_core_chemical_ResidueProperty
# allow basetype
properties = vector1_core_chemical_ResidueProperty()
properties.append(ResidueProperty.NEGATIVE_CHARGE) # 只允许带负电氨基酸。
restrict_to_properties = RestrictToResidueProperties()
restrict_to_properties.set_properties(properties)
# 可以指定选择的范围:
# restrict_to_properties.set_selector()
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restrict_to_properties)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ASP:NtermProteinFull,GLU:NtermProteinFull 2 TRUE TRUE ASP,GLU 3 TRUE TRUE ASP,GLU 4 TRUE TRUE ASP,GLU 5 TRUE TRUE ASP,GLU 6 TRUE TRUE ASP,GLU 7 TRUE TRUE ASP,GLU 8 TRUE TRUE ASP,GLU 9 TRUE TRUE ASP,GLU 10 TRUE TRUE ASP,GLU 11 TRUE TRUE ASP,GLU 12 TRUE TRUE ASP,GLU 13 TRUE TRUE ASP,GLU 14 TRUE TRUE ASP:CtermProteinFull,GLU:CtermProteinFull
同理于RestrictToResidueProperties的逻辑,ProhibitResidueProperties设定了满足哪些性质的氨基酸类型应当被“删除”。
from pyrosetta.rosetta.core.pack.task.operation import ProhibitResidueProperties
from pyrosetta.rosetta.core.chemical import ResidueProperty
from pyrosetta.rosetta.utility import vector1_core_chemical_ResidueProperty
# allow basetype
not_properties = vector1_core_chemical_ResidueProperty()
not_properties.append(ResidueProperty.POLAR) # 添加氨基酸的属性为极性氨基酸。
restrict_to_properties = ProhibitResidueProperties()
restrict_to_properties.set_properties(not_properties)
# 可以指定选择的范围:
# restrict_to_properties.set_selector()
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restrict_to_properties)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,ILE:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,PRO:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 4 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 5 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 8 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 9 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 11 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 12 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,PHE,GLY,ILE,LEU,MET,PRO,VAL,TRP,TYR 14 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,ILE:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,PRO:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
此时允许被设计的氨基酸类型被设定为非极性氨基酸。
根据氨基酸替换频率的思想来设计蛋白质,ConservativeDesignOperation根据给定的氨基酸替换矩阵来决定每个位置上氨基酸的类型,如Blosum62等。当得分大于0时。所有允许出现的氨基酸类型即此位点的自由度范围。
from pyrosetta.rosetta.protocols.task_operations import ConservativeDesignOperation
Conserve_design = ConservativeDesignOperation()
Conserve_design.set_data_source('blosum62') # chothia_76, Blosum62(30-100) 选择使用哪种比对矩阵。
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(Conserve_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.task_operations.ConservativeDesignOperation: {0} Loading conservative mutational data #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ASP:NtermProteinFull,GLU:NtermProteinFull,ASN:NtermProteinFull,GLN:NtermProteinFull,SER:NtermProteinFull 2 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,ASN,GLN,ARG,SER 3 TRUE TRUE PHE,ILE,LEU,MET,VAL 4 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,MET,ASN,GLN,ARG,SER 5 TRUE TRUE GLU,LYS,ASN,GLN,ARG,SER 6 TRUE TRUE PHE,TRP,TYR 7 TRUE TRUE ALA,ILE,LEU,MET,THR,VAL 8 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,ASN,GLN,ARG,SER 9 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,MET,ASN,GLN,ARG,SER 10 TRUE TRUE ALA,CYS,GLY,SER,THR,VAL 11 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,ASN,GLN,ARG,SER 12 TRUE TRUE GLU,HIS,HIS_D,LYS,ASN,GLN,ARG 13 TRUE TRUE ASP,GLU,GLY,HIS,HIS_D,LYS,ASN,GLN,ARG,SER,THR 14 TRUE TRUE ALA:CtermProteinFull,GLY:CtermProteinFull,ASN:CtermProteinFull,SER:CtermProteinFull
ConsensuLoopDesign首先定义的二级结构寻找Loop区域, 基于Pose的二面角定义Loop的组成类型(ABEGO字符串)。 如 一段4个氨基酸长度的loop区二面角类型为GGBB,通过搜索数据库,将相同类型的Loop的序列获取,并统计每个位点上的氨基酸频率,通过富集计算,筛选出那些在该二面角空间出现频率较高的氨基酸来定义自由度。因此对于一些存在正则结构的loop设计十分有用!
# denovo_pose
denovo_pose = pose_from_pdb('./data/EHEE_rd4_0976.pdb')
# 获取pose的二级结构:
from pyrosetta.rosetta.protocols.membrane import get_secstruct
secstruct = ''.join(get_secstruct(denovo_pose))
# ConsensusLoopDesign
from pyrosetta.rosetta.protocols.denovo_design.task_operations import ConsensusLoopDesignOperation
consensu_loop_design = ConsensusLoopDesignOperation()
# 或如'EHHHL'设置序列的二级结构
consensu_loop_design.set_secstruct(secstruct)
# 考虑loop邻近+1/-1氨基酸, 使得该区域也采取保守性设计,比如有一些loop的周围更加倾向于天然存在PRO.(默认为False)
consensu_loop_design.set_include_adjacent_residues(False)
# 如果富集度低于阈值,那么该位点将不被设计,0.5比0.0更加严格,要求更高的富集度。
consensu_loop_design.set_enrichment_threshold(0.3)
core.import_pose.import_pose: {0} File './data/EHEE_rd4_0976.pdb' automatically determined to be of type PDB protocols.DsspMover: {0} LEEEEELLHHHHHHHHHHHHHLLLLEEEEEELLEEEEEEL
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(consensu_loop_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
print(packer_task)
core.select.residue_selector.SecondaryStructureSelector: {0} Using given pose secondary structure: LEEEEELLHHHHHHHHHHHHHLLLLEEEEEELLEEEEEEL protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Restricting AAs in loop: Start: 7 Abego: BBEA Before: E After: H basic.io.database: {0} Database file opened: protocol_data/denovo_design/aa_abego_frequencies.gz protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 7; forbidden aas: DEFGHIKLNPQRVY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 8; forbidden aas: ACDEFHIKLMNPQRSTVY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Restricting AAs in loop: Start: 22 Abego: AAGBBB Before: H After: E protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 22; forbidden aas: CDFGIPSTVW protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 23; forbidden aas: ACDEFHILMPQRSTVWY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 24; forbidden aas: ACDEFGHNPQRSTW protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 25; forbidden aas: ACDFGHILMNQSTVWY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Restricting AAs in loop: Start: 32 Abego: BGGB Before: E After: E protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 32; forbidden aas: ACEFGHIKLMPQRSTVWY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Residue: 33; forbidden aas: ACDEFHIKLMNPQRSTVWY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} #Packer_Task protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} Threads to request: ALL AVAILABLE protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} resid pack? design? allowed_aas protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 7 TRUE TRUE ALA,CYS,MET,SER,THR,TRP protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 8 TRUE TRUE GLY,TRP protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 21 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 22 TRUE TRUE ALA,GLU,HIS,HIS_D,LYS,LEU,MET,ASN,GLN,ARG,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 23 TRUE TRUE GLY,LYS,ASN protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 24 TRUE TRUE ILE,LYS,LEU,MET,VAL,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 25 TRUE TRUE GLU,LYS,PRO,ARG protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 28 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 31 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 32 TRUE TRUE ASP,ASN protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 33 TRUE FALSE GLY protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR protocols.denovo_design.task_operations.ConsensusLoopDesignOperation: {0} 40 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,MET,SER,THR,TRP 8 TRUE TRUE GLY,TRP 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 21 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 22 TRUE TRUE ALA,GLU,HIS,HIS_D,LYS,LEU,MET,ASN,GLN,ARG,TYR 23 TRUE TRUE GLY,LYS,ASN 24 TRUE TRUE ILE,LYS,LEU,MET,VAL,TYR 25 TRUE TRUE GLU,LYS,PRO,ARG 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 32 TRUE TRUE ASP,ASN 33 TRUE FALSE GLY 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 40 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
可见,Loop区域7,8,22,23,24,32,33都被设置为常出现在当前Loop构型中的氨基酸类型。尝试调整enrichment_threshold的参数,看看自由度的变化?
根据设定的二级结构的类型指定氨基酸的Rotamer范围,二级结构氨基酸突变的范围定义如下:
from pyrosetta.rosetta.protocols.task_operations import DsspDesignOperation
dssp_design = DsspDesignOperation()
# 如果需要调整二级结构氨基酸类型,可以加载更多设定的语句:
# dssp_design.set_restrictions_aa('Helix','ADEF') #二级结构、范围、(重新设定二级结构氨基酸突变范围)
# dssp_design.set_restrictions_append('Helix','ADEF') #二级结构、范围、(添加二级结构氨基酸突变范围)
# dssp_design.set_restrictions_exclude('Helix','ADEF') #二级结构、范围、(删除二级结构氨基酸突变范围)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(dssp_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
print(packer_task)
protocols.TaskOperations.DsspDesignOperation: {0} Initializing DSSP regions with default residues protocols.TaskOperations.DsspDesignOperation: {0} Secondary structure: LEEEEELLHHHHHHHHHHHHHLLLLEEEEEELLEEEEEEL #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 8 TRUE TRUE ASP,ASN,SER,THR 9 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 11 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 15 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 16 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 18 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 19 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 21 TRUE TRUE ALA,ASP,GLU,PHE,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 22 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 23 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 25 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 26 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 28 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 29 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 31 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 32 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 35 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 36 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 38 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 39 TRUE TRUE ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 40 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
2021年新增的TaskOperations,其主要作用是识别蛋白内部的空腔,并根据这些空腔的近似大小来选择可用的氨基酸自由度。 一些参数说明:
# from pyrosetta.rosetta.protocols import rosetta_scripts
# xml = rosetta_scripts.XmlObjects.create_from_string('''
# <TASKOPERATIONS>
# <DesignByCavityProximity name="des_cavity" region_shell="8.0" regions_to_design="1" repack_non_selected="0" />
# </TASKOPERATIONS>
# ''')
# des_cavity = xml.get_task_operation('des_cavity')
# # 将TaskOperations加载至TaskFactory中
# pack_tf = TaskFactory()
# pack_tf.push_back(des_cavity)
# # 生成PackerTask
# packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
# print(packer_task)
2021年新增的TaskOperations,其根据蛋白质内部的氨基酸相互作用网络来决定哪些氨基酸位点可以被设计。 具体的做法是: 先计算整个Pose的intra-protein interaction network,然后根据氨基酸的Centrality来决定位点被选择的概率。Centrality越高说明有越多的其他氨基酸在他的周围。因此推测,每次的PackerTask的自由度组成都是不同的,算法会偏向于选择那些对结构或功能有重要作用的氨基酸进行设计。而那些对稳定性贡献较小的区域被设计的概率就会降低。
# from pyrosetta.rosetta.protocols import rosetta_scripts
# xml = rosetta_scripts.XmlObjects.create_from_string('''
# <TASKOPERATIONS>
# <DesignByResidueCentrality name="des_by_centrality" region_shell="8.0" regions_to_design="1" repack_non_selected="0" />
# </TASKOPERATIONS>
# ''')
# des_by_centrality = xml.get_task_operation('des_by_centrality')
# # 将TaskOperations加载至TaskFactory中
# pack_tf = TaskFactory()
# pack_tf.push_back(des_by_centrality)
# # 生成PackerTask
# packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
# print(packer_task)
2021年新增的TaskOperations,简单地随机选择一些Pose中的氨基酸来进行设计。设计的逻辑依然是region_shell的方法。
# from pyrosetta.rosetta.protocols import rosetta_scripts
# xml = rosetta_scripts.XmlObjects.create_from_string('''
# <TASKOPERATIONS>
# <DesignRandomRegion name="des_random" region_shell="8.0" regions_to_design="1" repack_non_selected="0" />
# </TASKOPERATIONS>
# ''')
# des_random = xml.get_task_operation('des_random')
# # 将TaskOperations加载至TaskFactory中
# pack_tf = TaskFactory()
# pack_tf.push_back(des_random)
# # 生成PackerTask
# packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
# print(packer_task)
将Pose的二硫键位点设置为no_repack。
from pyrosetta.rosetta.core.pack.task.operation import NoRepackDisulfides
norepack_ss = NoRepackDisulfides()
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(norepack_ss)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 21 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 22 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 23 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 25 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 32 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 40 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
由于体系中没有二硫键,因此TaskOperations没有起到相应的作用。
LayerDesign即将Pose分为core, surface, boundary三个区域,并根据所在的layer决定氨基酸Rotamer的自由度。目前已经有点过时了,最新的方式是使用Layer ResidueSelector进行以及RTL的方案进行替代(自由度极高),以下介绍如何正确设置LayerDesign的范例:
from pyrosetta import init, pose_from_pdb
from pyrosetta.rosetta.core.select.residue_selector import LayerSelector
from pyrosetta.rosetta.core.select.residue_selector import SecondaryStructureSelector
from pyrosetta.rosetta.core.select.residue_selector import AndResidueSelector, NotResidueSelector
from pyrosetta.rosetta.core.select.residue_selector import PrimarySequenceNeighborhoodSelector, ChainSelector
from pyrosetta.rosetta.core.pack.task.operation import DesignRestrictions
from pyrosetta.rosetta.core.pack.task.operation import RestrictToRepacking
from pyrosetta.rosetta.core.pack.task.operation import RestrictAbsentCanonicalAASRLT
def layer_selection(pick_core, pick_boundary, pick_surface):
# layer选择器
layer = LayerSelector()
layer.set_use_sc_neighbors(True)
layer.set_layers(pick_core, pick_boundary, pick_surface)
layer.set_ball_radius(2.0)
layer.set_cutoffs(3.5, 1.5) # >= 4 neighbor defined as core residuie. for miniprotein.
return layer
def ss_selection(ss, min_E, min_H, is_overlap, is_include_ter_loop):
# 设置二级结构选择
ss_selector = SecondaryStructureSelector(ss)
ss_selector.set_minE(min_E)
ss_selector.set_minH(min_H)
ss_selector.set_overlap(is_overlap)
ss_selector.set_use_dssp(True)
ss_selector.set_include_terminal_loops(is_include_ter_loop)
return ss_selector
def restrict_to_design(residue_list):
design_to = RestrictAbsentCanonicalAASRLT()
design_to.aas_to_keep(residue_list)
return design_to
# define selector
core_layer = layer_selection(1, 0, 0)
boundary_layer = layer_selection(0, 1, 0)
surface_layer = layer_selection(0, 0, 1)
sheet_selector = ss_selection('E', 2, 3, False, False)
entire_loop_selector = ss_selection('L', 2, 3, False, True)
entire_helix_selector = ss_selection('H', 2, 3, False, False)
# cap
helix_cap_selector = AndResidueSelector(entire_loop_selector, PrimarySequenceNeighborhoodSelector(1, 0, entire_helix_selector))
helix_start_selector = AndResidueSelector(entire_helix_selector, PrimarySequenceNeighborhoodSelector(0, 1, helix_cap_selector))
helix_selector = AndResidueSelector(entire_helix_selector, NotResidueSelector(helix_start_selector))
loop_selector = AndResidueSelector(entire_loop_selector, NotResidueSelector(helix_cap_selector))
# TASKOPERATIONS
layer_design_restrict = DesignRestrictions()
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(surface_layer, helix_start_selector), restrict_to_design('DEHKPQR'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(surface_layer, helix_selector), restrict_to_design('EHKQR'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(surface_layer, sheet_selector), restrict_to_design('EHKNQRST'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(surface_layer, loop_selector), restrict_to_design('DEGHKNPQRST'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(boundary_layer, helix_start_selector), restrict_to_design('ADEHIKLMNPQRSTVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(boundary_layer, helix_selector), restrict_to_design('ADEHIKLMNQRSTVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(boundary_layer, sheet_selector), restrict_to_design('DEFHIKLMNQRSTVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(boundary_layer, loop_selector), restrict_to_design('ADEFGHIKLMNPQRSTVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(core_layer, helix_start_selector), restrict_to_design('AFILMPVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(core_layer, helix_selector), restrict_to_design('AFILMVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(core_layer, sheet_selector), restrict_to_design('FILMVWY'))
layer_design_restrict.add_selector_rlto_pair(AndResidueSelector(core_layer, loop_selector), restrict_to_design('AFGILMPVWY'))
layer_design_restrict.add_selector_rlto_pair(helix_cap_selector, restrict_to_design('DNST'))
core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 5.2 and 2, respectively, in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Setting core=true boundary=false surface=false in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting radius for rolling ball algorithm to 2 in LayerSelector. (Note that this will have no effect if the sidechain neighbors method is used.) core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 3.5 and 1.5, respectively, in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 5.2 and 2, respectively, in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Setting core=false boundary=true surface=false in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting radius for rolling ball algorithm to 2 in LayerSelector. (Note that this will have no effect if the sidechain neighbors method is used.) core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 3.5 and 1.5, respectively, in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 5.2 and 2, respectively, in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting LayerSelector to use sidechain neighbors to determine burial. core.select.residue_selector.LayerSelector: {0} Setting core=false boundary=false surface=true in LayerSelector. core.select.residue_selector.LayerSelector: {0} Setting radius for rolling ball algorithm to 2 in LayerSelector. (Note that this will have no effect if the sidechain neighbors method is used.) core.select.residue_selector.LayerSelector: {0} Set cutoffs for core and surface to 3.5 and 1.5, respectively, in LayerSelector.
from pyrosetta.rosetta.core.pack.task import TaskFactory
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(layer_design_restrict)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.SecondaryStructureSelector: {0} Using dssp for secondary structure: LHHHHHHHHHHHLL core.select.residue_selector.PrimarySequenceNeighborhoodSelector: {0} ] #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ASP:NtermProteinFull,ASN:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull 2 TRUE TRUE ASP,GLU,HIS,HIS_D,LYS,PRO,GLN,ARG 3 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 4 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 5 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 6 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 7 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 8 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 9 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 10 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 11 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 12 TRUE TRUE GLU,HIS,HIS_D,LYS,GLN,ARG 13 TRUE TRUE ASP,GLU,GLY,HIS,HIS_D,LYS,ASN,PRO,GLN,ARG,SER,THR 14 TRUE TRUE ASP:CtermProteinFull,GLU:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,LYS:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull
根据内部链编号,选择链中的氨基酸Rotamer自由度,如果modify unselected residues参数设置为true,则所有其他residues都设置为norepack。
# 定义氨基酸范围:
from pyrosetta.rosetta.protocols.task_operations import SelectResiduesWithinChainOperation
repacking_define = SelectResiduesWithinChainOperation()
repacking_define.chain(1) # 1,2,3 按照pose的顺序
for i in [1,2,3,7,8,9]:
repacking_define.add_res(i) # which residues within the chain
# 定义Pack状态:
repacking_define.allow_design(False)
repacking_define.allow_repacking(True)
repacking_define.modify_unselected_residues(True) # 是否对未选择区域设置为no_repack?(快速操作)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(repacking_define)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.TaskOperations.SelectResiduesWithinChainOperation: {0} Residues set to repacking (all others are prevented from repacking): 1,2,3,7,8,9, #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE ASP:NtermProteinFull 2 TRUE FALSE GLU 3 TRUE FALSE LEU 4 FALSE FALSE 5 FALSE FALSE 6 FALSE FALSE 7 TRUE FALSE VAL 8 TRUE FALSE GLU 9 TRUE FALSE GLN 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 FALSE FALSE 14 FALSE FALSE
根据SASA值来选择蛋白质的Layer区域(core, surface, boundary),并根据所在的layer决定氨基酸Rotamer的自由度。 参数的解释:
# 定义参数:
from pyrosetta.rosetta.protocols.task_operations import SelectBySASAOperation
mode="mc"
state="bound"
probe_radius=2.0
core_asa=20
surface_asa=40
jump = '1'
sym_dof_names = '' # 对称化自由度的代号
core = True
boundary = False
surface = False
select_sasa = SelectBySASAOperation(mode, state, probe_radius, core_asa, surface_asa, jump, sym_dof_names, core, boundary, surface)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(select_sasa)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(denovo_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 FALSE FALSE 3 FALSE FALSE 4 FALSE FALSE 5 FALSE FALSE 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 FALSE FALSE 8 FALSE FALSE 9 FALSE FALSE 10 FALSE FALSE 11 FALSE FALSE 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 FALSE FALSE 14 FALSE FALSE 15 FALSE FALSE 16 FALSE FALSE 17 FALSE FALSE 18 FALSE FALSE 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 FALSE FALSE 21 FALSE FALSE 22 FALSE FALSE 23 FALSE FALSE 24 FALSE FALSE 25 FALSE FALSE 26 FALSE FALSE 27 FALSE FALSE 28 FALSE FALSE 29 FALSE FALSE 30 FALSE FALSE 31 FALSE FALSE 32 FALSE FALSE 33 FALSE FALSE 34 FALSE FALSE 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 36 FALSE FALSE 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 FALSE FALSE 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 40 FALSE FALSE
此处,蛋白质的core部分是被允许进行设计的。
在指定的Pose链中,只允许N端第一个残基或C端最后一个残基进行repack。
from pyrosetta.rosetta.protocols.task_operations import RestrictToTerminiOperation
nc_repack = RestrictToTerminiOperation(chain=1, restrict_n_terminus=True, restrict_c_terminus=True)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(nc_repack)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE ASP:NtermProteinFull 2 FALSE FALSE 3 FALSE FALSE 4 FALSE FALSE 5 FALSE FALSE 6 FALSE FALSE 7 FALSE FALSE 8 FALSE FALSE 9 FALSE FALSE 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 FALSE FALSE 14 TRUE FALSE GLY:CtermProteinFull
最早的region_shell机制的TaskOperations,根据指定的氨基酸位点来确定Design shell和repack shell半径。处于相应shell中的氨基酸Rotamer状态设置为Design或Repacking。其余剩下部分均设置为no_repack。
from pyrosetta.rosetta.protocols.task_operations import DesignAroundOperation
# 设定指定热点残基
around = DesignAroundOperation ()
for i in [7]:
around.include_residue(i)
around.design_shell(7.0) # design层半径(不包括指定的残基)
around.repack_shell(10.0) # repack层半径, 大于等于epack_shell(不包括指定的残基)
around.resnums_allow_design(1) # 只允许指定的resnum list中氨基酸进行设计;
around.allow_design(1) # 允许Desgin层进行设计;
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(around)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE ASP:NtermProteinFull 2 FALSE FALSE 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE FALSE LYS 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 9 TRUE FALSE GLN 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE FALSE ARG 13 FALSE FALSE 14 FALSE FALSE
该Operation只关注底物-蛋白PPI界面上的残基设置,根据cut1,cut2参数确定design shell,根据cut3和cut4确定repack shell。 特别注意,init的时候需要把-ignore_unrecognized_res进行设置,否则底物会被忽略导致识别失败。
from pyrosetta.rosetta.protocols import rosetta_scripts
# ligand pose;
init('-ignore_unrecognized_res false')
ligand_complex_pose = pose_from_pdb('./data/1ckn.pdb')
# pick selection;
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<DetectProteinLigandInterface name="ligand_interface" cut1="6.0" cut2="8.0" cut3="10.0" cut4="12.0"
design="true"/>
</TASKOPERATIONS>
''')
ligand_design = xml.get_task_operation('ligand_interface')
# 将TaskOperations加载至TaskFactory中
tf = TaskFactory()
tf.push_back(ligand_design)
# 生成PackerTask
packer_task = tf.create_task_and_apply_taskoperations(ligand_complex_pose)
print(packer_task)
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org (C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team. core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12 core.init: {0} command: PyRosetta -ignore_unrecognized_res false -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-706432799 seed_offset=0 real_seed=-706432799 thread_index=0 basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-706432799 RG_type=mt19937 core.import_pose.import_pose: {0} File './data/1ckn.pdb' automatically determined to be of type PDB core.io.pose_from_sfr.chirality_resolution: {0} Flipping atom xyz for OP1 and OP2 for residue GTP core.io.pose_from_sfr.chirality_resolution: {0} Flipping atom xyz for H21 and H22 for residue GTP core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue PHE:CtermProteinFull 317 protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts... protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator... protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script... protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script: <ROSETTASCRIPTS> <TASKOPERATIONS> <DetectProteinLigandInterface cut1="6.0" cut2="8.0" cut3="10.0" cut4="12.0" design="true" name="ligand_interface"/> </TASKOPERATIONS> <PROTOCOLS/> </ROSETTASCRIPTS> core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015 core.scoring.etable: {0} Starting energy table calculation core.scoring.etable: {0} smooth_etable: changing atr/rep split to bottom of energy well core.scoring.etable: {0} smooth_etable: spline smoothing lj etables (maxdis = 6) core.scoring.etable: {0} smooth_etable: spline smoothing solvation etables (max_dis = 6) core.scoring.etable: {0} Finished calculating energy tables. basic.io.database: {0} Database file opened: scoring/score_functions/PairEPotential/pdb_pair_stats_fine basic.io.database: {0} Database file opened: scoring/score_functions/InterchainPotential/interchain_env_log.txt basic.io.database: {0} Database file opened: scoring/score_functions/InterchainPotential/interchain_pair_log.txt basic.io.database: {0} Database file opened: scoring/score_functions/EnvPairPotential/env_log.txt basic.io.database: {0} Database file opened: scoring/score_functions/EnvPairPotential/cbeta_den.txt basic.io.database: {0} Database file opened: scoring/score_functions/EnvPairPotential/pair_log.txt basic.io.database: {0} Database file opened: scoring/score_functions/EnvPairPotential/cenpack_log.txt core.scoring.ramachandran: {0} shapovalov_lib::shap_rama_smooth_level of 4( aka highest_smooth ) got activated. basic.io.database: {0} Database file opened: scoring/score_functions/rama/shapovalov/kappa25/all.ramaProb basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/avg_L_rama.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/avg_L_rama.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_all_rama.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_all_rama.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_G_rama.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_G_rama.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_P_rama.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_P_rama.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/avg_L_rama_str.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/avg_L_rama_str.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_all_rama_str.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_all_rama_str.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_G_rama_str.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_G_rama_str.dat. basic.io.database: {0} Database file opened: scoring/score_functions/rama/flat/sym_P_rama_str.dat core.scoring.ramachandran: {0} Reading custom Ramachandran table from scoring/score_functions/rama/flat/sym_P_rama_str.dat. protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "ligand_interface" of type DetectProteinLigandInterface protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings protocols.enzdes.EnzdesTaskOperations: {0} Choosing the following residues as targets for detecting interface: 318+ protocols.enzdes.EnzdesTaskOperations: {0} Design Interface: detected 21 design-shell residues and 46 repack-shell residues, shell sizes cut1-4 used were 6 8 10 12 protocols.enzdes.EnzdesTaskOperations: {0} Design-shell Residues(pose-numbering): 48+49+50+51+70+72+73+75+76+77+96+119+121+136+137+178+203+206+208+222+224+ protocols.enzdes.EnzdesTaskOperations: {0} Repack-shell Residues(pose-numbering): 46+52+53+68+69+71+74+78+79+95+120+122+123+134+135+151+177+179+180+196+200+201+202+204+205+207+215+216+217+218+219+223+225+226+231+232+233+234+271+292+295+296+299+300+303+318+ protocols.enzdes.EnzdesTaskOperations: {0} Final Design Shell Residues: 48, 49, 50, 51, 70, 72, 73, 75, 76, 77, 96, 119, 121, 136, 137, 178, 203, 206, 208, 222, 224, protocols.enzdes.EnzdesTaskOperations: {0} Final Repack Shell Residues: 46, 48, 49, 50, 51, 52, 53, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 95, 96, 119, 120, 121, 122, 123, 134, 135, 136, 137, 151, 177, 178, 179, 180, 196, 200, 201, 202, 203, 204, 205, 206, 207, 208, 215, 216, 217, 218, 219, 222, 223, 224, 225, 226, 231, 232, 233, 234, 271, 292, 295, 296, 299, 300, 303, 318, #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 FALSE FALSE 3 FALSE FALSE 4 FALSE FALSE 5 FALSE FALSE 6 FALSE FALSE 7 FALSE FALSE 8 FALSE FALSE 9 FALSE FALSE 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 FALSE FALSE 14 FALSE FALSE 15 FALSE FALSE 16 FALSE FALSE 17 FALSE FALSE 18 FALSE FALSE 19 FALSE FALSE 20 FALSE FALSE 21 FALSE FALSE 22 FALSE FALSE 23 FALSE FALSE 24 FALSE FALSE 25 FALSE FALSE 26 FALSE FALSE 27 FALSE FALSE 28 FALSE FALSE 29 FALSE FALSE 30 FALSE FALSE 31 FALSE FALSE 32 FALSE FALSE 33 FALSE FALSE 34 FALSE FALSE 35 FALSE FALSE 36 FALSE FALSE 37 FALSE FALSE 38 FALSE FALSE 39 FALSE FALSE 40 FALSE FALSE 41 FALSE FALSE 42 FALSE FALSE 43 FALSE FALSE 44 FALSE FALSE 45 FALSE FALSE 46 TRUE FALSE LEU 47 FALSE FALSE 48 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 49 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 50 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 51 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 52 TRUE FALSE VAL 53 TRUE FALSE SER 54 FALSE FALSE 55 FALSE FALSE 56 FALSE FALSE 57 FALSE FALSE 58 FALSE FALSE 59 FALSE FALSE 60 FALSE FALSE 61 FALSE FALSE 62 FALSE FALSE 63 FALSE FALSE 64 FALSE FALSE 65 FALSE FALSE 66 FALSE FALSE 67 FALSE FALSE 68 TRUE FALSE VAL 69 TRUE FALSE VAL 70 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 71 TRUE FALSE GLU 72 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 73 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 74 TRUE FALSE ASP 75 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 76 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 77 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 78 TRUE FALSE PHE 79 TRUE FALSE MET 80 FALSE FALSE 81 FALSE FALSE 82 FALSE FALSE 83 FALSE FALSE 84 FALSE FALSE 85 FALSE FALSE 86 FALSE FALSE 87 FALSE FALSE 88 FALSE FALSE 89 FALSE FALSE 90 FALSE FALSE 91 FALSE FALSE 92 FALSE FALSE 93 FALSE FALSE 94 FALSE FALSE 95 TRUE FALSE ASP 96 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 97 FALSE FALSE 98 FALSE FALSE 99 FALSE FALSE 100 FALSE FALSE 101 FALSE FALSE 102 FALSE FALSE 103 FALSE FALSE 104 FALSE FALSE 105 FALSE FALSE 106 FALSE FALSE 107 FALSE FALSE 108 FALSE FALSE 109 FALSE FALSE 110 FALSE FALSE 111 FALSE FALSE 112 FALSE FALSE 113 FALSE FALSE 114 FALSE FALSE 115 FALSE FALSE 116 FALSE FALSE 117 FALSE FALSE 118 FALSE FALSE 119 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 120 TRUE FALSE GLY 121 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 122 TRUE FALSE LEU 123 TRUE FALSE CYS 124 FALSE FALSE 125 FALSE FALSE 126 FALSE FALSE 127 FALSE FALSE 128 FALSE FALSE 129 FALSE FALSE 130 FALSE FALSE 131 FALSE FALSE 132 FALSE FALSE 133 FALSE FALSE 134 TRUE FALSE VAL 135 TRUE FALSE LEU 136 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 137 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 138 FALSE FALSE 139 FALSE FALSE 140 FALSE FALSE 141 FALSE FALSE 142 FALSE FALSE 143 FALSE FALSE 144 FALSE FALSE 145 FALSE FALSE 146 FALSE FALSE 147 FALSE FALSE 148 FALSE FALSE 149 FALSE FALSE 150 FALSE FALSE 151 TRUE FALSE LEU 152 FALSE FALSE 153 FALSE FALSE 154 FALSE FALSE 155 FALSE FALSE 156 FALSE FALSE 157 FALSE FALSE 158 FALSE FALSE 159 FALSE FALSE 160 FALSE FALSE 161 FALSE FALSE 162 FALSE FALSE 163 FALSE FALSE 164 FALSE FALSE 165 FALSE FALSE 166 FALSE FALSE 167 FALSE FALSE 168 FALSE FALSE 169 FALSE FALSE 170 FALSE FALSE 171 FALSE FALSE 172 FALSE FALSE 173 FALSE FALSE 174 FALSE FALSE 175 FALSE FALSE 176 FALSE FALSE 177 TRUE FALSE TYR 178 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 179 TRUE FALSE GLU 180 TRUE FALSE TRP 181 FALSE FALSE 182 FALSE FALSE 183 FALSE FALSE 184 FALSE FALSE 185 FALSE FALSE 186 FALSE FALSE 187 FALSE FALSE 188 FALSE FALSE 189 FALSE FALSE 190 FALSE FALSE 191 FALSE FALSE 192 FALSE FALSE 193 FALSE FALSE 194 FALSE FALSE 195 FALSE FALSE 196 TRUE FALSE ALA 197 FALSE FALSE 198 FALSE FALSE 199 FALSE FALSE 200 TRUE FALSE TYR 201 TRUE FALSE HIS,HIS_D 202 TRUE FALSE THR 203 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 204 TRUE FALSE GLY 205 TRUE FALSE LEU 206 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 207 TRUE FALSE ILE 208 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 209 FALSE FALSE 210 FALSE FALSE 211 FALSE FALSE 212 FALSE FALSE 213 FALSE FALSE 214 FALSE FALSE 215 TRUE FALSE ILE 216 TRUE FALSE TYR 217 TRUE FALSE GLY 218 TRUE FALSE ARG 219 TRUE FALSE ASN 220 FALSE FALSE 221 FALSE FALSE 222 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 223 TRUE FALSE PHE 224 TRUE TRUE ALA,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 225 TRUE FALSE LEU 226 TRUE FALSE LYS 227 FALSE FALSE 228 FALSE FALSE 229 FALSE FALSE 230 FALSE FALSE 231 TRUE FALSE HIS,HIS_D 232 TRUE FALSE THR 233 TRUE FALSE ILE 234 TRUE FALSE ASP 235 FALSE FALSE 236 FALSE FALSE 237 FALSE FALSE 238 FALSE FALSE 239 FALSE FALSE 240 FALSE FALSE 241 FALSE FALSE 242 FALSE FALSE 243 FALSE FALSE 244 FALSE FALSE 245 FALSE FALSE 246 FALSE FALSE 247 FALSE FALSE 248 FALSE FALSE 249 FALSE FALSE 250 FALSE FALSE 251 FALSE FALSE 252 FALSE FALSE 253 FALSE FALSE 254 FALSE FALSE 255 FALSE FALSE 256 FALSE FALSE 257 FALSE FALSE 258 FALSE FALSE 259 FALSE FALSE 260 FALSE FALSE 261 FALSE FALSE 262 FALSE FALSE 263 FALSE FALSE 264 FALSE FALSE 265 FALSE FALSE 266 FALSE FALSE 267 FALSE FALSE 268 FALSE FALSE 269 FALSE FALSE 270 FALSE FALSE 271 TRUE FALSE GLU 272 FALSE FALSE 273 FALSE FALSE 274 FALSE FALSE 275 FALSE FALSE 276 FALSE FALSE 277 FALSE FALSE 278 FALSE FALSE 279 FALSE FALSE 280 FALSE FALSE 281 FALSE FALSE 282 FALSE FALSE 283 FALSE FALSE 284 FALSE FALSE 285 FALSE FALSE 286 FALSE FALSE 287 FALSE FALSE 288 FALSE FALSE 289 FALSE FALSE 290 FALSE FALSE 291 FALSE FALSE 292 TRUE FALSE ASN 293 FALSE FALSE 294 FALSE FALSE 295 TRUE FALSE LEU 296 TRUE FALSE THR 297 FALSE FALSE 298 FALSE FALSE 299 TRUE FALSE LYS 300 TRUE FALSE THR 301 FALSE FALSE 302 FALSE FALSE 303 TRUE FALSE ASN 304 FALSE FALSE 305 FALSE FALSE 306 FALSE FALSE 307 FALSE FALSE 308 FALSE FALSE 309 FALSE FALSE 310 FALSE FALSE 311 FALSE FALSE 312 FALSE FALSE 313 FALSE FALSE 314 FALSE FALSE 315 FALSE FALSE 316 FALSE FALSE 317 FALSE FALSE 318 TRUE FALSE RGU:UpperRNA:5PrimePackTriPhos
该Operation只关注蛋白-蛋白PPI界面上的残基设置(默认8A),非界面处的残基将会被设置为no_repack。并且默认会排除氨基酸设计为C, G, P三种不利的氨基酸。
from pyrosetta.rosetta.protocols.task_operations import ProteinInterfaceDesignOperation
# 加载一个dimmer的coil coil结构:
interface_pose = pose_from_pdb('./data/6yek.pdb')
print(interface_pose.pdb_info()) # 查看链信息
core.import_pose.import_pose: {0} File './data/6yek.pdb' automatically determined to be of type PDB core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue ALA:CtermProteinFull 24 core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue ALA:CtermProteinFull 48 PDB file name: ./data/6yek.pdb Pose Range Chain PDB Range | #Residues #Atoms 0001 -- 0024 A 0300 -- 0323 | 0024 residues; 00396 atoms 0025 -- 0048 B 0300 -- 0323 | 0024 residues; 00396 atoms TOTAL | 0048 residues; 00792 atoms
# 此案例以chain1可以被设计,chain2只能repacking作为逻辑。
interface_design = ProteinInterfaceDesignOperation()
interface_design.jump(1) # jump点设置.之前的认定为chain1,之后的为chain2。2条链以上需要设置!
interface_design.interface_distance_cutoff(8.0)
interface_design.repack_chain1(True) # 是否允许chain1 repack
interface_design.repack_chain2(True) # 是否允许chain2 repack
interface_design.design_chain1(True) # 是否允许chain1 design
interface_design.design_chain2(False) # 是否允许chain design
interface_design.allow_all_aas(False) # allow all amino acids to be designed at all positions, do not exclude C, G, P
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(interface_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(interface_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 4 FALSE FALSE 5 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 8 FALSE FALSE 9 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 11 FALSE FALSE 12 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 14 FALSE FALSE 15 FALSE FALSE 16 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 18 FALSE FALSE 19 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 21 FALSE FALSE 22 FALSE FALSE 23 TRUE TRUE ALA,ASP,GLU,PHE,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull 25 FALSE FALSE 26 TRUE FALSE LEU 27 TRUE FALSE LYS 28 FALSE FALSE 29 TRUE FALSE GLN 30 TRUE FALSE ALA 31 FALSE FALSE 32 FALSE FALSE 33 TRUE FALSE TYR 34 TRUE FALSE LYS 35 FALSE FALSE 36 TRUE FALSE ASP 37 TRUE FALSE PHE 38 FALSE FALSE 39 FALSE FALSE 40 TRUE FALSE GLU 41 TRUE FALSE ARG 42 FALSE FALSE 43 TRUE FALSE ALA 44 TRUE FALSE ARG 45 FALSE FALSE 46 FALSE FALSE 47 TRUE FALSE LEU 48 TRUE FALSE ALA:CtermProteinFull
根据jump点和截断半径的设置,将蛋白-蛋白界面进行design,非界面区全部设置为no_repack。如果需要控制其中的自由度,还需要引入其他的TaskOperations,没有ProteinInterfaceDesign自定义程度高。
from pyrosetta.rosetta.protocols.simple_task_operations import RestrictToInterface
Design_interface = RestrictToInterface(rb_jump_in=1, distance_in=8)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(Design_interface)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(interface_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 FALSE FALSE 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 8 FALSE FALSE 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 FALSE FALSE 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 FALSE FALSE 15 FALSE FALSE 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 FALSE FALSE 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 21 FALSE FALSE 22 FALSE FALSE 23 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull 25 FALSE FALSE 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 FALSE FALSE 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 FALSE FALSE 32 FALSE FALSE 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 FALSE FALSE 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 FALSE FALSE 39 FALSE FALSE 40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 42 FALSE FALSE 43 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 44 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 45 FALSE FALSE 46 FALSE FALSE 47 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 48 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
使用向量法计算界面。首先根据CB_dist_cutoff的距离判断出一个大致的shell区域,然后根据遍历每个残基侧链原子与其他氨基酸的原子距离,确认是否都小于nearby_atom_cutoff,如果满足条件,那么这些都是interface的残基。如果剩余的残基没有通过第一个标准,将使用第二个标准进行判断,计算残基的CA-CB原子向量以及CB原子与Interface上其他原子CB的向量(CB-CB),这两个向量的夹角如何小于vector_angle_cutoff。那么这些残基也是Interface上的残基,并且这些两个向量的距离不得大于vector_dist_cutoff。
from pyrosetta.rosetta.protocols.task_operations import RestrictToInterfaceVectorOperation
# 定义参数:
lower_chain_id = 1
upper_chain_id = 2
CB_dist_cutoff = 8.0
nearby_atom_cutoff = 5.0
vector_angle_cutoff = 75
vector_dist_cutoff = 9.0
include_all_water = False
restrict_to_interface = RestrictToInterfaceVectorOperation(lower_chain_id, upper_chain_id, CB_dist_cutoff, nearby_atom_cutoff,
vector_angle_cutoff, vector_dist_cutoff, include_all_water)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restrict_to_interface)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(interface_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 FALSE FALSE 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 FALSE FALSE 8 FALSE FALSE 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 FALSE FALSE 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 FALSE FALSE 15 FALSE FALSE 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 FALSE FALSE 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 21 FALSE FALSE 22 FALSE FALSE 23 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull 25 FALSE FALSE 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 FALSE FALSE 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 FALSE FALSE 32 FALSE FALSE 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 FALSE FALSE 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 FALSE FALSE 39 FALSE FALSE 40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 42 FALSE FALSE 43 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 44 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 45 FALSE FALSE 46 FALSE FALSE 47 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 48 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
输入依赖的TaskOperations大多和序列比对有关。
使用经过比对的序列作为输入,与同源家族中的序列进行比对,gap区域、保守的区域设置为no_repack,并将比对上的区域的序列替换为同源序列的氨基酸。
# 目前pose的序列
pose.sequence()
'DELQKWVEQAERNG'
制作一个假的aligned.fatsa:
> pose
DELQKWVEQAERNG
> fake_homology
DELQKLKKQAEQNG
from pyrosetta.rosetta.protocols.task_operations import AlignedThreadOperation
Aligned = AlignedThreadOperation()
Aligned.alignment_file('./data/align.fasta') # 仅支持fasta文件
Aligned.query_name('fake_homology') # 比对文件中的query序列的代号,指同源序列的名字
Aligned.template_name('pose') # 比对文件中的template序列的代号,应该要和输入的pose一致
Aligned.start_res(1) # 确定从哪个氨基酸开始比对
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(Aligned)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.TaskOperations.AlignedThreadOperation: {0} template seq: DELQKWVEQAERNG query seq: DELQKLKKQAEQNGDELQKMKKQAEQNGDELQKMKKQAEQNG protocols.TaskOperations.AlignedThreadOperation: {0} sequence for threading: DELQKLKKQAEQNG #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE ASP:NtermProteinFull 2 TRUE FALSE GLU 3 TRUE FALSE LEU 4 TRUE FALSE GLN 5 TRUE FALSE LYS 6 TRUE TRUE LEU 7 TRUE TRUE LYS 8 TRUE TRUE LYS 9 TRUE FALSE GLN 10 TRUE FALSE ALA 11 TRUE FALSE GLU 12 TRUE TRUE GLN 13 TRUE FALSE ASN 14 TRUE FALSE GLY:CtermProteinFull
将现有的pose与ref_pose(对照)进行比对(并且两个pose的长度必须一致!),根据序列一致性,将ref和native pose中保守的氨基酸位点,设置为repack或Design.
# 读取ref_pose
ref_pose = pose_from_pdb('./data/helix_ref.pdb')
core.import_pose.import_pose: {0} File './data/helix_ref.pdb' automatically determined to be of type PDB core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] discarding 2 atoms at position 3 in file ./data/helix_ref.pdb. Best match rsd_type: MET core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] discarding 1 atoms at position 6 in file ./data/helix_ref.pdb. Best match rsd_type: ASN core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] discarding 4 atoms at position 9 in file ./data/helix_ref.pdb. Best match rsd_type: HIS core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] discarding 1 atoms at position 13 in file ./data/helix_ref.pdb. Best match rsd_type: LEU core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue GLY:CtermProteinFull 14 core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 3 atom 3HB (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 3 atom 3HG (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 6 atom 3HB (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 9 atom 1HE (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 9 atom 2HD (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 9 atom 2HE (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 9 atom 3HB (trying to store temperature in PDBInfo) core.io.pose_from_sfr.PoseFromSFRBuilder: {0} [ WARNING ] can't find pose atom for file-residue 13 atom 3HB (trying to store temperature in PDBInfo)
# 发现3,5,8,12位点序列有差异。
print(ref_pose.sequence())
print(pose.sequence())
DEMQKNVEHAERLG DELQKWVEQAERNG
from pyrosetta.rosetta.protocols.task_operations import RestrictNativeResiduesOperation
no_pack_to_native = RestrictNativeResiduesOperation()
no_pack_to_native.reference_pose(ref_pose)
no_pack_to_native.prevent_repacking(1) # 1 = 仅设计非保守区段,其余设为no_repack. 0 = 设计非保守区段,其余设置为repack.
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(no_pack_to_native)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.task_operations.RestrictNativeResiduesOperation: {0} 4 non-native, designable residues found in pose #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 FALSE FALSE 2 FALSE FALSE 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 FALSE FALSE 5 FALSE FALSE 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 FALSE FALSE 8 FALSE FALSE 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 FALSE FALSE 11 FALSE FALSE 12 FALSE FALSE 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 FALSE FALSE
from pyrosetta.rosetta.protocols.task_operations import RestrictNativeResiduesOperation
no_pack_to_native = RestrictNativeResiduesOperation()
no_pack_to_native.reference_pose(ref_pose)
no_pack_to_native.prevent_repacking(0) # 1 = 仅设计非保守区段,其余设为no_repack. 0 = 设计非保守区段,其余设置为repack.
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(no_pack_to_native)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.task_operations.RestrictNativeResiduesOperation: {0} 4 non-native, designable residues found in pose #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE ASP:NtermProteinFull 2 TRUE FALSE GLU 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE FALSE GLN 5 TRUE FALSE LYS 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE FALSE VAL 8 TRUE FALSE GLU 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE FALSE ALA 11 TRUE FALSE GLU 12 TRUE FALSE ARG 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE FALSE GLY:CtermProteinFull
与输入的PDB结构序列进行比对,只有比对得上的位点得到保留,其他的位置可以进行Design,不要求PDB结构之间长度完全相同,但需要指定design aligment的区域不能大于pose的本身长度。
pose1 = pose_from_pdb('./data/three_helix_pose.pdb')
pose2 = pose_from_pdb('./data/homo1.pdb') # ref pose;
core.import_pose.import_pose: {0} File './data/three_helix_pose.pdb' automatically determined to be of type PDB core.import_pose.import_pose: {0} File './data/homo1.pdb' automatically determined to be of type PDB
from pyrosetta.rosetta.protocols.task_operations import RestrictIdentitiesAtAlignedPositionsOperation
aligned_position_design = RestrictIdentitiesAtAlignedPositionsOperation()
aligned_position_design.source_pose('./data/homo1.pdb') # pose1=ref_pose
aligned_position_design.chain(1) # 设定pose_ref中第几条链被用于比对
aligned_position_design.design_only_target_residues(False) # 允许reapckshell中氨基酸进行repack. 默认False
aligned_position_design.prevent_repacking(False) # 是否不允许repack?
# 当ref_pose和pose中不等长时,需要指定在哪个范围内进行alignment。
vector1 = pyrosetta.rosetta.utility.vector1_unsigned_long()
for i in range(1, pose1.total_residue()):
vector1.append(i)
aligned_position_design.res_ids(vector1)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(aligned_position_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose1)
print(packer_task)
core.import_pose.import_pose: {0} File './data/homo1.pdb' automatically determined to be of type PDB protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 1 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: ASP1 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 2 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLU2 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 3 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: LEU3 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 3 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLN4 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 5 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: LYS5 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 6 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: TRP6 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 23 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: VAL7 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 7 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLU8 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 10 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLN9 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 10 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 20 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLU11 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 12 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 16 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: ASN13 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 16 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: GLY14 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 15 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 16 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 17 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 18 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 19 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 20 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 21 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 22 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 23 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 24 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 25 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 26 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 27 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 28 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 29 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 30 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 31 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 32 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 33 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 34 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 28 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: ARG35 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: 25 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} Residue nearest is: PHE36 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 37 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 38 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 39 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 40 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 41 protocols.TaskOperations.RestrictIdentitiesAtAlignedPositionsOperation: {0} [ WARNING ] could not find a residue near to 42 #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ASP:NtermProteinFull 2 TRUE FALSE GLU 3 FALSE FALSE 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE TRUE LYS 6 TRUE TRUE TRP 7 TRUE TRUE GLU 8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE GLN 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 16 FALSE FALSE 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE GLU 21 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 22 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 23 TRUE TRUE VAL 24 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 25 TRUE TRUE PHE 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 TRUE TRUE ARG 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 32 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 42 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 43 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
根据PSSM文件来定义序列设计的自由度。PSSM文件可以使用PSIBLAST工具和MSA比对文件来生成。 此处依然使用伪造的MSA做示例:
msa.fasta内容如下:
>pose
DELQKWVEQAERNG
>fake_homology1
DELQKLKKQAEQNG
>fake_homology2
DELQKMKKQAEQNG
>fake_homology3
DELQKMKKQAEQNV
>fake_homology4
DELQKMMDQAEQNV
>fake_homology5
DELKDMMDQAEQNV
生成PSSM的命令:(结果文件可在data文件夹下找到)
psiblast -subject sequence.fasta -in_msa msa.fasta -out_ascii_pssm output.pssm
SeqprofConsensus自由度控制相关的关键参数:
# load pssm
from pyrosetta.rosetta.protocols import rosetta_scripts
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<SeqprofConsensus name="pssm_design"
filename="./data/output.pssm"
min_aa_probability="0.0"
probability_larger_than_current="1"
convert_scores_to_probabilities="false"
keep_native="true"/>
</TASKOPERATIONS>
''')
pssm_design = xml.get_task_operation('pssm_design')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(pssm_design)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose)
print(packer_task)
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<SeqprofConsensus convert_scores_to_probabilities="false" filename="./data/output.pssm" keep_native="true" min_aa_probability="0.0" name="pssm_design" probability_larger_than_current="1"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.task_operations.SeqprofConsensusOperation: {0} Loading seqprof from a file named: ./data/output.pssm
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "pssm_design" of type SeqprofConsensus
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
protocols.task_operations.SeqprofConsensusOperation: {0} Pose is NOT--SYMMETRIC!!!
protocols.task_operations.SeqprofConsensusOperation: {0} the size of sequence profile is: 14
protocols.task_operations.SeqprofConsensusOperation: {0} Adding native identities to allowed identities
protocols.task_operations.SeqprofConsensusOperation: {0} Allowing the following identities:
#Packer_Task
Threads to request: ALL AVAILABLE
resid pack? design? allowed_aas
1 TRUE FALSE ASP:NtermProteinFull
2 TRUE FALSE GLU
3 TRUE FALSE LEU
4 TRUE FALSE GLN
5 TRUE FALSE LYS
6 TRUE TRUE PHE,ILE,LEU,MET,VAL,TRP
7 TRUE TRUE GLU,ILE,LYS,LEU,MET,GLN,ARG,VAL
8 TRUE TRUE ASP,GLU,LYS,ASN,GLN,ARG
9 TRUE FALSE GLN
10 TRUE FALSE ALA
11 TRUE FALSE GLU
12 TRUE TRUE GLU,LYS,GLN,ARG
13 TRUE FALSE ASN
14 TRUE FALSE GLY:CtermProteinFull
用于将一个序列“穿针”到一个Pose的所有位点上。
from pyrosetta.rosetta.protocols.task_operations import ThreadSequenceOperation
thread = ThreadSequenceOperation()
thread.target_sequence(pose2.sequence())
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(thread)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose1)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ASP:NtermProteinFull 2 TRUE FALSE GLU 3 TRUE FALSE LEU 4 TRUE TRUE GLN 5 TRUE TRUE LYS 6 TRUE TRUE TRP 7 TRUE TRUE VAL 8 TRUE TRUE GLU 9 TRUE TRUE GLN 10 TRUE TRUE ALA 11 TRUE TRUE GLU 12 TRUE TRUE ARG 13 TRUE TRUE ASN 14 TRUE TRUE GLY 15 TRUE TRUE VAL 16 TRUE TRUE SER 17 TRUE TRUE LEU 18 TRUE FALSE GLU 19 TRUE FALSE GLU 20 TRUE TRUE ILE 21 TRUE TRUE GLU 22 TRUE FALSE LYS 23 TRUE TRUE TRP 24 TRUE TRUE ILE 25 TRUE FALSE LYS 26 TRUE FALSE LYS 27 TRUE TRUE ALA 28 TRUE TRUE GLY 29 TRUE TRUE ASP 30 TRUE TRUE GLU 31 TRUE FALSE GLU 32 TRUE TRUE LEU 33 TRUE TRUE LEU 34 TRUE FALSE LYS 35 TRUE TRUE ARG 36 TRUE TRUE PHE 37 TRUE TRUE GLN 38 TRUE TRUE LYS 39 TRUE TRUE LYS 40 TRUE TRUE VAL 41 TRUE FALSE LYS 42 TRUE TRUE GLU 43 TRUE FALSE ARG:CtermProteinFull
增强某一位点的Rotamer采样,如希望在设计所有氨基酸位点时,增强采样那些与第8号残基相互作用能量(two-body)大于-0.5个REU单位的Rotamer
from pyrosetta.rosetta.protocols import rosetta_scripts
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<InteractingRotamerExplosion name="rotexpl"
ex_level="2" score_cutoff="0.5" target_seqpos="10A" debug="0" />
</TASKOPERATIONS>
''')
rotexpl = xml.get_task_operation('rotexpl')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(rotexpl)
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<InteractingRotamerExplosion debug="0" ex_level="2" name="rotexpl" score_cutoff="0.5" target_seqpos="10A"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "rotexpl" of type InteractingRotamerExplosion
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
可以用于增强采样输入的Ref PDB结构上的Rotamer。
from pyrosetta.rosetta.protocols.task_operations import ImportUnboundRotamersOperation
favor_native_rotamer_ex = ImportUnboundRotamersOperation()
init('-packing::unboundrot ./data/three_helix_pose.pdb')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(favor_native_rotamer_ex)
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org (C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team. core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12 core.init: {0} command: PyRosetta -packing::unboundrot ./data/three_helix_pose.pdb -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-732456573 seed_offset=0 real_seed=-732456573 thread_index=0 basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-732456573 RG_type=mt19937
防止在Packer运行中使用PHE、TYR和HIS的那些χ2角远离90度的Rotamer,因为这些Rotamer是罕见的。因此直接排除
from pyrosetta.rosetta.protocols import rosetta_scripts
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<LimitAromaChi2 name="limit_chi2" chi2max="110.0"
chi2min="70.0" include_trp="false" />
</TASKOPERATIONS>
''')
limit_chi2 = xml.get_task_operation('limit_chi2')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(limit_chi2)
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<LimitAromaChi2 chi2max="110.0" chi2min="70.0" include_trp="false" name="limit_chi2"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "limit_chi2" of type LimitAromaChi2
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
用于约束当前Rotamer采样范围与ref PDB结构中的Rotamer高度相似(如rotamer差异在+/-5度)。
from pyrosetta.rosetta.protocols import rosetta_scripts
from pyrosetta.rosetta.protocols.minimization_packing import PackRotamersMover
# load native rotamers;
init('-packing::unboundrot ./data/three_helix_pose.pdb')
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<SampleRotamersFromPDB name="restric_native_ex" add_rotamer="1" debug="0" ccd="0"/>
</TASKOPERATIONS>
''')
restric_native_ex = xml.get_task_operation('restric_native_ex')
pose1 = pose_from_pdb('./data/three_helix_pose.pdb')
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restric_native_ex)
pack_tf.push_back(RestrictToRepacking())
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(pose1)
print(packer_task)
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org
(C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team.
core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags
core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12
core.init: {0} command: PyRosetta -packing::unboundrot ./data/three_helix_pose.pdb -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database
basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-631442782 seed_offset=0 real_seed=-631442782 thread_index=0
basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-631442782 RG_type=mt19937
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<SampleRotamersFromPDB add_rotamer="1" ccd="0" debug="0" name="restric_native_ex"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.evaluation.ChiWellRmsdEvaluatorCreator: {0} Evaluation Creator active ...
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "restric_native_ex" of type SampleRotamersFromPDB
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
core.import_pose.import_pose: {0} File './data/three_helix_pose.pdb' automatically determined to be of type PDB
core.pack.rotamer_set.SampleRotamersFromPDB_RotamerSetOperation: {0} Adding rotamers from ./data/three_helix_pose.pdb
core.import_pose.import_pose: {0} File './data/three_helix_pose.pdb' automatically determined to be of type PDB
#Packer_Task
Threads to request: ALL AVAILABLE
resid pack? design? allowed_aas
1 TRUE FALSE SER:NtermProteinFull
2 TRUE FALSE GLU
3 TRUE FALSE LEU
4 TRUE FALSE GLU
5 TRUE FALSE GLU
6 TRUE FALSE THR
7 TRUE FALSE LEU
8 TRUE FALSE ARG
9 TRUE FALSE ARG
10 TRUE FALSE LEU
11 TRUE FALSE ALA
12 TRUE FALSE GLN
13 TRUE FALSE THR
14 TRUE FALSE PRO
15 TRUE FALSE GLY
16 TRUE FALSE ALA
17 TRUE FALSE SER
18 TRUE FALSE GLU
19 TRUE FALSE GLU
20 TRUE FALSE LEU
21 TRUE FALSE LYS
22 TRUE FALSE LYS
23 TRUE FALSE LEU
24 TRUE FALSE VAL
25 TRUE FALSE LYS
26 TRUE FALSE LYS
27 TRUE FALSE ILE
28 TRUE FALSE ASN
29 TRUE FALSE ASN
30 TRUE FALSE PRO
31 TRUE FALSE GLU
32 TRUE FALSE ALA
33 TRUE FALSE GLU
34 TRUE FALSE LYS
35 TRUE FALSE TRP
36 TRUE FALSE LEU
37 TRUE FALSE ARG
38 TRUE FALSE GLU
39 TRUE FALSE TYR
40 TRUE FALSE GLN
41 TRUE FALSE LYS
42 TRUE FALSE LYS
43 TRUE FALSE ARG:CtermProteinFull
消除那些在会导致在结构中引入不饱和极性原子(无法配对产生氢键)的Rotamer。 参数:
from pyrosetta.rosetta.protocols.task_operations import PruneBuriedUnsatsOperation
prune_unsat = PruneBuriedUnsatsOperation()
prune_unsat.atomic_depth_cutoff(4.5)
prune_unsat.atomic_depth_probe_radius(2.3)
prune_unsat.atomic_depth_resolution(0.5)
prune_unsat.minimum_hbond_energy(-0.2)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(prune_unsat)
该部分的TaskOperations主要作用于Packer,可以设置一些改变Packer的采样或运行方式。
改变Packer模拟退火中的设置,包括:
from pyrosetta.rosetta.protocols import rosetta_scripts
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<ModifyAnnealer name="modify_annealer" high_temp="100" low_temp="0.3" disallow_quench="0"/>
</TASKOPERATIONS>
''')
modify_annealer = xml.get_task_operation('modify_annealer')
# # 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(modify_annealer)
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<ModifyAnnealer disallow_quench="0" high_temp="100" low_temp="0.3" name="modify_annealer"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "modify_annealer" of type ModifyAnnealer
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
此TaskOperations可以控制Packer使用的线程数量。默认conda安装的pyrosetta都是单线程编译的,如果需要支持多线程进行Packer的,需要从Rosetta的源代码处从头编译multi-threaded版本的PyRosetta并安装(比较麻烦),当兼容多线程时,合理使用可以加速开发和测试时的速度。
from pyrosetta.rosetta.core.pack.task.operation import RestrictInteractionGraphThreadsOperation
init('-multithreading:total_threads 16 -multithreading:interaction_graph_threads 16')
# litmit thread setting;
litmit_thread = RestrictInteractionGraphThreadsOperation()
litmit_thread.set_thread_limit(8)
# # 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(litmit_thread)
pack_tf.push_back(RestrictToRepacking())
# run packer
from pyrosetta.rosetta.protocols.minimization_packing import PackRotamersMover
from pyrosetta import create_score_function
pack_mover = PackRotamersMover()
ref2015 = create_score_function('ref2015')
single_helix_pose = pose_from_pdb('./data/helix.pdb')
# 不需要导入PackTask,只需要输入TaskFactory即可。
pack_mover.task_factory(pack_tf)
pack_mover.score_function(ref2015)
# 执行repacking
pack_mover.apply(single_helix_pose)
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org (C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team. core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12 core.init: {0} command: PyRosetta -multithreading:total_threads 16 -multithreading:interaction_graph_threads 16 -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-2083723108 seed_offset=0 real_seed=-2083723108 thread_index=0 basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-2083723108 RG_type=mt19937 core.pack.task.operation.RestrictInteractionGraphThreadsOperation: {0} Configuring RestrictInteractionGraphThreadsOperation to allow 8 threads for interaction graph computation. core.import_pose.import_pose: {0} File './data/helix.pdb' automatically determined to be of type PDB core.conformation.Conformation: {0} [ WARNING ] missing heavyatom: OXT on residue GLY:CtermProteinFull 14 core.pack.pack_rotamers: {0} built 182 rotamers at 14 positions. core.pack.pack_rotamers: {0} Requesting 8 threads for interaction graph computation. core.pack.interaction_graph.interaction_graph_factory: {0} Instantiating DensePDInteractionGraph basic.thread_manager.RosettaThreadPool: {0} [ WARNING ] Warning: 8 threads were requested, but only 1 exist in the RosettaThreadPool. core.pack.rotamer_set.RotamerSets: {0} Completed interaction graph pre-calculation in 1 available threads (8 had been requested).
此处TaskOperations可影响InteractionGraph的计算方法,默认有4种方式:
from pyrosetta.rosetta.protocols import rosetta_scripts
xml = rosetta_scripts.XmlObjects.create_from_string('''
<TASKOPERATIONS>
<SetIGType name="set_ig" lin_mem_ig="1" lazy_ig="0" double_lazy_ig="0" precompute_ig="0"/>
</TASKOPERATIONS>
''')
set_ig = xml.get_task_operation('set_ig')
# # 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(set_ig)
protocols.rosetta_scripts.RosettaScriptsParser: {0} Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: {0} ...done
protocols.rosetta_scripts.RosettaScriptsParser: {0} Parsed script:
<ROSETTASCRIPTS>
<TASKOPERATIONS>
<SetIGType double_lazy_ig="0" lazy_ig="0" lin_mem_ig="1" name="set_ig" precompute_ig="0"/>
</TASKOPERATIONS>
<PROTOCOLS/>
</ROSETTASCRIPTS>
core.scoring.ScoreFunctionFactory: {0} SCOREFUNCTION: ref2015
protocols.jd2.parser.TaskOperationLoader: {0} Defined TaskOperation named "set_ig" of type SetIGType
protocols.rosetta_scripts.ParsedProtocol: {0} ParsedProtocol mover with the following settings
这一部分的TaskOperations是为抗体结构设计定制的,在抗体设计时引用会带来极大的便利性。核心两个部分: 控制CDR如何Design、控制region的Design和repack状态。
抗体Pose的Region定义分为CDR区、Framework区、抗原区(如果Pose中是抗体抗原复合物的话)。DisableAntibodyRegionOperation可直接把特定区域的Rotamer自由度闭关或减少。
参数:
from pyrosetta.rosetta.protocols.antibody import AntibodyInfo
from pyrosetta.rosetta.protocols.antibody.task_operations import DisableAntibodyRegionOperation
from pyrosetta.rosetta.protocols.antibody import AntibodyRegionEnum
# 读入抗体结构
init('-ex1 -ex2 -input_ab_scheme Chothia_Scheme -use_input_sc')
antibody_pose = pose_from_pdb('./data/7OBF_B.pdb') # nanobody
# 设置region自由度;
ab_info = AntibodyInfo(antibody_pose)
disable_region = DisableAntibodyRegionOperation(ab_info, AntibodyRegionEnum.framework_region,
disable_packing_and_design=False)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(disable_region)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(antibody_pose)
print(packer_task)
PyRosetta-4 2021 [Rosetta PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release 2021.31+release.c7009b3115c22daa9efe2805d9d1ebba08426a54 2021-08-07T10:04:12] retrieved from: http://www.pyrosetta.org (C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team. core.init: {0} Checking for fconfig files in pwd and ./rosetta/flags core.init: {0} Rosetta version: PyRosetta4.conda.mac.cxx11thread.serialization.python37.Release r292 2021.31+release.c7009b3115c c7009b3115c22daa9efe2805d9d1ebba08426a54 http://www.pyrosetta.org 2021-08-07T10:04:12 core.init: {0} command: PyRosetta -ex1 -ex2 -input_ab_scheme Chothia_Scheme -use_input_sc -database /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database basic.random.init_random_generator: {0} 'RNG device' seed mode, using '/dev/urandom', seed=-475246036 seed_offset=0 real_seed=-475246036 thread_index=0 basic.random.init_random_generator: {0} RandomGenerator:init: Normal mode, seed=-475246036 RG_type=mt19937 core.import_pose.import_pose: {0} File './data/7OBF_B.pdb' automatically determined to be of type PDB core.conformation.Conformation: {0} Found disulfide between residues 21 95 core.conformation.Conformation: {0} current variant for 21 CYS core.conformation.Conformation: {0} current variant for 95 CYS core.conformation.Conformation: {0} current variant for 21 CYD core.conformation.Conformation: {0} current variant for 95 CYD basic.io.database: {0} Database file opened: sampling/antibodies/cluster_center_dihedrals.txt protocols.antibody.AntibodyNumberingParser: {0} Antibody numbering scheme definitions read successfully protocols.antibody.AntibodyNumberingParser: {0} Antibody CDR definition read successfully antibody.AntibodyInfo: {0} Successfully finished the CDR definition antibody.AntibodyInfo: {0} Could not setup Vl Vh Packing angle for camelid antibody antibody.AntibodyInfo: {0} AC Detecting Camelid CDR H3 Stem Type antibody.AntibodyInfo: {0} AC Finished Detecting Camelid CDR H3 Stem Type: NEUTRAL antibody.AntibodyInfo: {0} Setting up CDR Cluster for H1 protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT antibody.AntibodyInfo: {0} Setting up CDR Cluster for H2 protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 10 Omega: TTTTTTTTTT antibody.AntibodyInfo: {0} Setting up CDR Cluster for H3 protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT #Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE FALSE VAL:NtermProteinFull 2 TRUE FALSE GLN 3 TRUE FALSE LEU 4 TRUE FALSE LEU 5 TRUE FALSE GLU 6 TRUE FALSE SER 7 TRUE FALSE GLY 8 TRUE FALSE GLY 9 TRUE FALSE GLY 10 TRUE FALSE LEU 11 TRUE FALSE VAL 12 TRUE FALSE GLN 13 TRUE FALSE PRO 14 TRUE FALSE GLY 15 TRUE FALSE GLY 16 TRUE FALSE SER 17 TRUE FALSE LEU 18 TRUE FALSE ARG 19 TRUE FALSE LEU 20 TRUE FALSE SER 21 TRUE FALSE CYS:disulfide 22 TRUE FALSE ALA 23 TRUE FALSE ALA 24 TRUE FALSE SER 25 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 26 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 27 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 28 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 29 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 30 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 31 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 32 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 33 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 34 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 35 TRUE FALSE TRP 36 TRUE FALSE VAL 37 TRUE FALSE ARG 38 TRUE FALSE GLN 39 TRUE FALSE ALA 40 TRUE FALSE PRO 41 TRUE FALSE GLY 42 TRUE FALSE LYS 43 TRUE FALSE GLY 44 TRUE FALSE LEU 45 TRUE FALSE GLU 46 TRUE FALSE TRP 47 TRUE FALSE VAL 48 TRUE FALSE SER 49 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 50 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 51 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 52 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 53 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 54 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 55 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 56 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 57 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 58 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 59 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 60 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 61 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 62 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 63 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 64 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 65 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 66 TRUE FALSE ARG 67 TRUE FALSE PHE 68 TRUE FALSE THR 69 TRUE FALSE ILE 70 TRUE FALSE SER 71 TRUE FALSE ARG 72 TRUE FALSE ASP 73 TRUE FALSE ASN 74 TRUE FALSE SER 75 TRUE FALSE LYS 76 TRUE FALSE ASN 77 TRUE FALSE THR 78 TRUE FALSE LEU 79 TRUE FALSE TYR 80 TRUE FALSE LEU 81 TRUE FALSE GLN 82 TRUE FALSE MET 83 TRUE FALSE ASN 84 TRUE FALSE SER 85 TRUE FALSE LEU 86 TRUE FALSE ARG 87 TRUE FALSE ALA 88 TRUE FALSE GLU 89 TRUE FALSE ASP 90 TRUE FALSE THR 91 TRUE FALSE ALA 92 TRUE FALSE VAL 93 TRUE FALSE TYR 94 TRUE FALSE TYR 95 TRUE FALSE CYS:disulfide 96 TRUE FALSE ALA 97 TRUE FALSE SER 98 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 99 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 100 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 101 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 102 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 103 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 104 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 105 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 106 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 107 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 108 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 109 TRUE FALSE TRP 110 TRUE FALSE GLY 111 TRUE FALSE GLN 112 TRUE FALSE GLY 113 TRUE FALSE THR 114 TRUE FALSE LEU 115 TRUE FALSE VAL 116 TRUE FALSE THR 117 TRUE FALSE VAL 118 TRUE FALSE SER:CtermProteinFull
尝试不同的region,看看他们在抗体上的结构分布都是在哪些区域?
DisableCDRsOperation相比于单纯的DisableAntibodyRegionOperation,可以更加精细地去定义6个CDR区的单独状态!
from pyrosetta.rosetta.protocols.antibody.task_operations import DisableCDRsOperation
# 定义CDR区范围,目前1代表自定义CDR-H1。其他区不做定义。
cdr_allow = [1,1,0,0,0,0,0,0] # H1 H2 H3 H4 L1 L2 L3 L4
cdr_allow_vector1 = pyrosetta.rosetta.utility.vector1_bool()
for i in cdr_allow:
cdr_allow_vector1.append(i)
# 将CDR-H1和CDR-H2的所有Rotamer自由度关闭:
disable_cdr = DisableCDRsOperation(ab_info, cdr_allow_vector1, disable_packing_and_design=True)
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(disable_cdr)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(antibody_pose)
print(packer_task)
#Packer_Task Threads to request: ALL AVAILABLE resid pack? design? allowed_aas 1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull 2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 21 TRUE FALSE CYS:disulfide 22 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 23 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 24 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 25 FALSE FALSE 26 FALSE FALSE 27 FALSE FALSE 28 FALSE FALSE 29 FALSE FALSE 30 FALSE FALSE 31 FALSE FALSE 32 FALSE FALSE 33 FALSE FALSE 34 FALSE FALSE 35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 42 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 43 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 44 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 45 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 46 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 47 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 48 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 49 FALSE FALSE 50 FALSE FALSE 51 FALSE FALSE 52 FALSE FALSE 53 FALSE FALSE 54 FALSE FALSE 55 FALSE FALSE 56 FALSE FALSE 57 FALSE FALSE 58 FALSE FALSE 59 FALSE FALSE 60 FALSE FALSE 61 FALSE FALSE 62 FALSE FALSE 63 FALSE FALSE 64 FALSE FALSE 65 FALSE FALSE 66 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 67 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 68 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 69 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 70 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 71 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 72 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 73 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 74 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 75 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 76 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 77 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 78 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 79 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 80 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 81 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 82 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 83 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 84 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 85 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 86 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 87 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 88 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 89 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 90 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 91 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 92 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 93 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 94 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 95 TRUE FALSE CYS:disulfide 96 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 97 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 98 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 99 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 100 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 101 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 102 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 103 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 104 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 105 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 106 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 107 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 108 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 109 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 110 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 111 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 112 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 113 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 114 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 115 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 116 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 117 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR 118 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
抗体的CDR-H1、H2、L1、L2、L3都是由正则结构的,因此可以被聚类成若干个簇。这些簇内部的序列有保守性也有多样性(Profiles)。 Profiles中记录了每种氨基酸在每种CDR簇中的频率分布,通过AddCDRProfilesOperation可以从Profiles中根据频率分布依次地、随机地挑选一个氨基酸类型添加到可被设计的列表中,因此每次Packer执行时,PackerTask都是不同的。set_picking_rounds设置在每个位点中挑选几次氨基酸,设置值越大,此位点Rotamer的自由度可能会增加。
注意: 当一些CDR结构多样性太少时,就会从保守性出发进行生成Rotamer的自由度。
因此此处有两种基本的生成策略:
PRIMARY STRATEGIES: 初始设计方案。【肯定的是,采样丰度更高了,但是有些位点反变得不可以控制】
FALLBACK STRATEGIES: 如果找不到CDR图谱或则聚类中CDR序列过少,那么将自动调用备用策略。
Cons_design_data_source: 使用的打分矩阵 'chothia_1976', 'BLOSUM30', 'blosum30', 'BLOSUM35', 'blosum35', 'BLOSUM40', 'blosum40', 'BLOSUM45', 'blosum45', 'BLOSUM50', 'blosum50', 'BLOSUM55', 'blosum55', 'BLOSUM60', 'blosum60', 'BLOSUM62', 'blosum62', 'BLOSUM65', 'blosum65', 'BLOSUM70', 'blosum70', 'BLOSUM75', 'blosum75', 'BLOSUM80', 'blosum80', 'BLOSUM85', 'blosum85', 'BLOSUM90', 'blosum90', 'BLOSUM100', 'blosum100'
特别注意: 轻链类型,cmd -light_chain 使用set模式时需要指定轻链的类型![lambda, kappa]
from pyrosetta.rosetta.protocols.antibody import *
from pyrosetta.rosetta.protocols.antibody.task_operations import *
from pyrosetta.rosetta.protocols.antibody.design import *
add_cdr_profile = AddCDRProfilesOperation()
add_cdr_profile.set_include_native_type(True) # allowed wild type AA
add_cdr_profile.set_picking_rounds(2) # 控制sequence sampling丰度
#选择某一个CDR计算.
add_cdr_profile.set_cdr_only(h1) # 选择cdr1
#控制采样方法
add_cdr_profile.set_primary_strategy(seq_design_profiles) # 如果设置为含set模式时,初始化需加入-light_chain选项
add_cdr_profile.set_fallback_strategy(seq_design_conservative)
#增加变异度(选1)
add_cdr_profile.set_no_probability(False) #在profile中,忽略氨基酸出现的频率,采集所有出现过的氨基酸类型.
add_cdr_profile.set_sample_zero_probs_at(False) #在profile中, 增加频率为0的氨基酸的频率,使得可能被采样。
add_cdr_profile.set_stats_cutoff(10) # profile截断,如果簇内少于10个成员,那么使用FALLBACK STRATEGIES
add_cdr_profile.set_use_outliers(False) #是否采样聚类中偏离较远的序列。
add_cdr_profile.set_cons_design_data_source('BLOSUM62') #改变保守设计使用的打分矩阵
protocols.task_operations.ConservativeDesignOperation: {0} Loading conservative mutational data
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(add_cdr_profile)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(antibody_pose)
print(packer_task)
basic.io.database: {0} Database file opened: sampling/antibodies/cluster_center_dihedrals.txt
protocols.antibody.AntibodyNumberingParser: {0} Antibody numbering scheme definitions read successfully
protocols.antibody.AntibodyNumberingParser: {0} Antibody CDR definition read successfully
antibody.AntibodyInfo: {0} Successfully finished the CDR definition
antibody.AntibodyInfo: {0} Could not setup Vl Vh Packing angle for camelid antibody
antibody.AntibodyInfo: {0} AC Detecting Camelid CDR H3 Stem Type
antibody.AntibodyInfo: {0} AC Finished Detecting Camelid CDR H3 Stem Type: NEUTRAL
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H1
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H2
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 10 Omega: TTTTTTTTTT
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H3
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT
basic.io.database: {0} [ WARNING ] Unable to locate database file /sampling/antibodies/antibody_database_rosetta_design.db
antibody.database.AntibodyDatabaseManager: {0} The antibody design database is not specified by the user.
antibody.database.AntibodyDatabaseManager: {0} Reading from: /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database//sampling/antibodies/antibody_database_rosetta_design_north_paper.db
antibody.database.AntibodyDatabaseManager: {0} Loaded H1-13-1 with 210 datapoints.
protocols.antibody.task_operations.AddCDRProfilesOperation: {0} applying prob task op
#Packer_Task
Threads to request: ALL AVAILABLE
resid pack? design? allowed_aas
1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull
2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
21 TRUE FALSE CYS:disulfide
22 TRUE TRUE ALA,SER
23 TRUE TRUE ALA,VAL
24 TRUE FALSE SER
25 TRUE FALSE GLY
26 TRUE TRUE PHE,TYR
27 TRUE TRUE ARG,SER,THR
28 TRUE TRUE PHE,ILE
29 TRUE TRUE ASN,SER,THR
30 TRUE TRUE ASP,THR
31 TRUE TRUE GLU,PHE,TYR
32 TRUE TRUE ASP,TRP,TYR
33 TRUE FALSE MET
34 TRUE TRUE GLU,GLY,SER
35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
42 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
43 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
44 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
45 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
46 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
47 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
48 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
49 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
50 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
51 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
52 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
53 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
54 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
55 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
56 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
57 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
58 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
59 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
60 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
61 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
62 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
63 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
64 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
65 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
66 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
67 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
68 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
69 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
70 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
71 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
72 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
73 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
74 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
75 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
76 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
77 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
78 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
79 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
80 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
81 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
82 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
83 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
84 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
85 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
86 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
87 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
88 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
89 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
90 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
91 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
92 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
93 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
94 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
95 TRUE FALSE CYS:disulfide
96 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
97 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
98 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
99 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
100 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
101 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
102 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
103 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
104 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
105 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
106 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
107 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
108 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
109 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
110 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
111 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
112 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
113 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
114 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
115 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
116 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
117 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
118 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
可见CDR-H1处的氨基酸自由度减少了。尝试重复运行上述代码,以及增大set_picking_rounds参数,你发现了什么现象?
这个模块依然处于实验阶段。该TaskOperation每次生成PackTask时,它随机地选择一个CDR cluster(如H1-13-1 或 H1-13-2 或 H1-13-3)来统计氨基酸频率。因此不再受限于Pose中原有的CDR结构所在的那个簇。如果结构中本身的CDR没有对应的簇,那么将跳过该CDR的设计。
from pyrosetta.rosetta.protocols.antibody.task_operations import AddCDRProfileSetsOperation
add_cdr_profile_set = AddCDRProfileSetsOperation()
add_cdr_profile_set.set_include_native_type(True) # allowed wild type AA
add_cdr_profile_set.set_picking_rounds(1) # 控制sequence sampling次数
# 设置多个CDR.
cdr_allow = [1,0,0,0,0,0,0,0] # H1 H2 H3 H4 L1 L2 L3 L4
vector1 = pyrosetta.rosetta.utility.vector1_bool()
for i in cdr_allow:
vector1.append(i)
add_cdr_profile_set.set_cdrs(vector1)
#基于CDR长度的sampling设置:
#add_cdr_profile_set.set_limit_only_to_length(True) # 默认为 不限制链长.
# 设置策略2:
add_cdr_profile_set.set_cutoff(10) # profile截断,如果簇内少于10个成员,那么使用FALLBACK STRATEGIES
add_cdr_profile_set.set_use_outliers(False) #是否采样聚类中偏离较远的序列。
# 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(add_cdr_profile)
# 生成PackerTask
packer_task = pack_tf.create_task_and_apply_taskoperations(antibody_pose)
print(packer_task)
basic.io.database: {0} Database file opened: sampling/antibodies/cluster_center_dihedrals.txt
protocols.antibody.AntibodyNumberingParser: {0} Antibody numbering scheme definitions read successfully
protocols.antibody.AntibodyNumberingParser: {0} Antibody CDR definition read successfully
antibody.AntibodyInfo: {0} Successfully finished the CDR definition
antibody.AntibodyInfo: {0} Could not setup Vl Vh Packing angle for camelid antibody
antibody.AntibodyInfo: {0} AC Detecting Camelid CDR H3 Stem Type
antibody.AntibodyInfo: {0} AC Finished Detecting Camelid CDR H3 Stem Type: NEUTRAL
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H1
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H2
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 10 Omega: TTTTTTTTTT
antibody.AntibodyInfo: {0} Setting up CDR Cluster for H3
protocols.antibody.cluster.CDRClusterMatcher: {0} Length: 13 Omega: TTTTTTTTTTTTT
basic.io.database: {0} [ WARNING ] Unable to locate database file /sampling/antibodies/antibody_database_rosetta_design.db
antibody.database.AntibodyDatabaseManager: {0} The antibody design database is not specified by the user.
antibody.database.AntibodyDatabaseManager: {0} Reading from: /opt/miniconda3/lib/python3.7/site-packages/pyrosetta/database//sampling/antibodies/antibody_database_rosetta_design_north_paper.db
antibody.database.AntibodyDatabaseManager: {0} Loaded H1-13-1 with 210 datapoints.
protocols.antibody.task_operations.AddCDRProfilesOperation: {0} applying prob task op
#Packer_Task
Threads to request: ALL AVAILABLE
resid pack? design? allowed_aas
1 TRUE TRUE ALA:NtermProteinFull,CYS:NtermProteinFull,ASP:NtermProteinFull,GLU:NtermProteinFull,PHE:NtermProteinFull,GLY:NtermProteinFull,HIS:NtermProteinFull,HIS_D:NtermProteinFull,ILE:NtermProteinFull,LYS:NtermProteinFull,LEU:NtermProteinFull,MET:NtermProteinFull,ASN:NtermProteinFull,PRO:NtermProteinFull,GLN:NtermProteinFull,ARG:NtermProteinFull,SER:NtermProteinFull,THR:NtermProteinFull,VAL:NtermProteinFull,TRP:NtermProteinFull,TYR:NtermProteinFull
2 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
3 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
4 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
5 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
6 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
7 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
8 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
9 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
10 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
11 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
12 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
13 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
14 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
15 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
16 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
17 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
18 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
19 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
20 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
21 TRUE FALSE CYS:disulfide
22 TRUE TRUE ALA,LYS
23 TRUE FALSE ALA
24 TRUE FALSE SER
25 TRUE FALSE GLY
26 TRUE TRUE PHE,LEU
27 TRUE TRUE ILE,ASN,ARG
28 TRUE TRUE PHE,ILE
29 TRUE TRUE LYS,SER,THR
30 TRUE TRUE ASP,ARG
31 TRUE TRUE GLU,PHE,THR
32 TRUE TRUE ASP,TYR
33 TRUE FALSE MET
34 TRUE TRUE GLU,GLY,HIS,HIS_D
35 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
36 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
37 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
38 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
39 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
40 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
41 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
42 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
43 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
44 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
45 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
46 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
47 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
48 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
49 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
50 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
51 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
52 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
53 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
54 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
55 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
56 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
57 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
58 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
59 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
60 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
61 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
62 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
63 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
64 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
65 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
66 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
67 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
68 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
69 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
70 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
71 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
72 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
73 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
74 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
75 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
76 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
77 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
78 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
79 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
80 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
81 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
82 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
83 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
84 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
85 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
86 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
87 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
88 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
89 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
90 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
91 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
92 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
93 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
94 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
95 TRUE FALSE CYS:disulfide
96 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
97 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
98 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
99 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
100 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
101 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
102 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
103 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
104 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
105 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
106 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
107 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
108 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
109 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
110 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
111 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
112 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
113 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
114 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
115 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
116 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
117 TRUE TRUE ALA,CYS,ASP,GLU,PHE,GLY,HIS,HIS_D,ILE,LYS,LEU,MET,ASN,PRO,GLN,ARG,SER,THR,VAL,TRP,TYR
118 TRUE TRUE ALA:CtermProteinFull,CYS:CtermProteinFull,ASP:CtermProteinFull,GLU:CtermProteinFull,PHE:CtermProteinFull,GLY:CtermProteinFull,HIS:CtermProteinFull,HIS_D:CtermProteinFull,ILE:CtermProteinFull,LYS:CtermProteinFull,LEU:CtermProteinFull,MET:CtermProteinFull,ASN:CtermProteinFull,PRO:CtermProteinFull,GLN:CtermProteinFull,ARG:CtermProteinFull,SER:CtermProteinFull,THR:CtermProteinFull,VAL:CtermProteinFull,TRP:CtermProteinFull,TYR:CtermProteinFull
将某些CDRs及它的邻近氨基酸的pack状态设置为repack, 其余残基一律设置为no_repack。
from pyrosetta.rosetta.protocols.antibody.task_operations import RestrictToCDRsAndNeighbors
from pyrosetta.rosetta.protocols.antibody import CDRNameEnum
from pyrosetta.rosetta.utility import vector1_bool
# 设置CDR的选择范围:
cdr_allow = [1, 1, 0, 0, 0, 0, 0, 0] # H1 H2 H3 H4 L1 L2 L3 L4
vector1 = vector1_bool()
for i in cdr_allow:
vector1.append(i)
print(vector1)
# # 约束CDR周围的氨基酸为Repack,非临近区域为no_repack;
restrict_cdr_nbr = RestrictToCDRsAndNeighbors()
restrict_cdr_nbr.set_cdrs(vector1)
restrict_cdr_nbr.set_allow_design_cdr(0) # pack状态设置为Design/repack
restrict_cdr_nbr.set_allow_design_neighbor_framework(0) # pack状态设置为Design/repack
restrict_cdr_nbr.set_allow_design_neighbor_antigen(0) # pack状态设置为Design/repack
restrict_cdr_nbr.set_neighbor_distance(8.0)
restrict_cdr_nbr.set_stem_size(0) # 在计算邻近氨基酸时,将CDR两端延长N个氨基酸来计算。(延长的氨基酸依然属于FR区)
# # 将TaskOperations加载至TaskFactory中
pack_tf = TaskFactory()
pack_tf.push_back(restrict_cdr_nbr)
# # 生成PackerTask(目前有bug.运行会报错)
# packer_task = pack_tf.create_task_and_apply_taskoperations(antibody_pose)
# print(packer_task)
vector1_bool[1, 1, 0, 0, 0, 0, 0, 0]