P450酶rosetta對接,設計時的HEM ligated CYM問題

P450酶rosetta對接,設計時的HEM ligated CYM問題

2021-04-23 15:40  丨o聽乄雨o丨  閱讀(3)  評論(0)  編輯  收藏docker

  P450酶是一類以HEM做爲輔酶,並是在催化過程當中嚴重依賴HEM氧化還原循環的一類酶。

  在自然環境下,HEM輔酶的Fe原子會與蛋白中一個處於垂直位置的脫氫CYS(CYM)的S造成一個共價鍵,此共價鍵基本垂直於HEM平面,其間的距離、角度、二面角都保持在一直相對穩定的狀態。ide

  在實際的計算模擬過程當中,尤爲是用rosetta作對接或者設計的過程當中,咱們不可避免的會遇到CYM與HEM進行共價鍵鏈接的問題,由於rosetta不能對CYM以及HEM這類非自然殘基進行識別,且在計算中還須要考慮CYM與HEM間的共價鍵,因此這是一個異常棘手的問題,今天我就來分享一種解決方案,此方案是我一個師弟偶然中想出來的。ui

  在我之前的方案中,我會設計一個全新的非自然殘基CYM,基本相似於CYS,區別在於少了一個HG,此CYM須要使用molfiletoparams命令生成相應的params,在計算中要考慮CYM與上下游氨基酸的肽鍵鏈接以及與HEM-Fe的共價鏈接,因此在matchCST裏面至少要有3個block,這大大的增長了計算的複雜度及操做難度,由於任何一個小小的錯誤都有可能形成CST的失誤並最終使對接和設計失敗。atom

  今天要提出的方案中乃是源於使用老方案對一個P450酶進行對接時,報的一個莫名的錯誤,且找不到出錯緣由,因此師弟在苦思冥想中提出了一個全新的方案,這個方案在設計matchCST時,僅須要一個block,不用額外考慮CYM與上下游氨基酸的肽鍵鏈接問題,下面對這個方案進行詳解。設計

  首先,準備一個CYM的params文件,將其添加到rosetta fa_standard的l-caa識別庫中(其餘talaris庫也能夠以此方式添加) (~/rosetta_src/main/database/chemical/residue_type_sets/fa_standard/residue_types/l-caa) ,且這個params應該繼承rosetta庫裏自然CYS的屬性,這樣咱們就無需額外構建CYS與上下游氨基酸的肽鍵,下面的CYM.params脫胎於rosetta標準庫裏的CYS.params文件,咱們刪除了HG原子及相關信息,修改了CYS的名稱,AA後改成UNK,刪除了ROTAMER_AA,刪除了PROTON_CHI項,保留了其餘的關鍵條目,保證rosetta能夠對其進行識別,並構建肽鍵:rest

CYM.params

#rosetta residue topology file
NAME CYM
IO_STRING CYM Z
TYPE POLYMER #residue type
AA UNK
ATOM  N   Nbb  NH1  -0.6046255 -0.350
ATOM  CA  CAbb CT1   0.0900506  0.100
ATOM  C   CObb C     0.6884871  0.550
ATOM  O   OCbb O    -0.6884871 -0.550
ATOM  CB  CH2  CT2  -0.1178426  0.000
ATOM  SG  SH1  S    -0.2463981 -0.290
ATOM  H   HNbb H     0.3987955  0.250
ATOM  HA  Hapo HB    0.1157793  0.000
ATOM 1HB  Hapo HA    0.0964167  0.000
ATOM 2HB  Hapo HA    0.0964167  0.000

LOWER_CONNECT N
UPPER_CONNECT C
BOND  N    CA 
BOND  N    H  
BOND  CA   C  
BOND  CA   CB 
BOND  CA   HA 
BOND_TYPE  C    O 2
BOND  CB   SG 
BOND  CB  1HB 
BOND  CB  2HB 
CHI 1  N    CA   CB   SG 
PROPERTIES PROTEIN ALPHA_AA L_AA SC_ORBITALS METALBINDING
METAL_BINDING_ATOMS O SG
DISULFIDE_ATOM_NAME SG
NBR_ATOM CB
# APL O to CB distance -- max O-CB observed in ubiquitin
NBR_RADIUS 3.4473
FIRST_SIDECHAIN_ATOM CB
RAMA_PREPRO_FILENAME all.ramaProb prepro.ramaProb
ACT_COORD_ATOMS SG END
ICOOR_INTERNAL    N      0.000000    0.000000    0.000000   N     CA    C  
ICOOR_INTERNAL    CA     0.000000  180.000000    1.458001   N     CA    C  
ICOOR_INTERNAL    C      0.000000   68.800003    1.523258   CA    N     C  
ICOOR_INTERNAL  UPPER  150.000000   63.800018    1.328685   C     CA    N  
ICOOR_INTERNAL    O    180.000000   59.200008    1.231015   C     CA  UPPER
ICOOR_INTERNAL    CB  -121.600000   69.400000    1.528861   CA    N     C  
ICOOR_INTERNAL    SG     0.000000   65.900000    1.808803   CB    CA    N  
ICOOR_INTERNAL   1HB   121.200000   70.500000    1.090249   CB    CA    SG 
ICOOR_INTERNAL   2HB   117.600000   70.500000    1.089821   CB    CA   1HB 
ICOOR_INTERNAL    HA  -119.000000   71.500000    1.090059   CA    N     CB 
ICOOR_INTERNAL  LOWER -150.000000   58.299995    1.328685   N     CA    C  
ICOOR_INTERNAL    H    180.000000   60.849998    1.010000   N     CA  LOWER

  其次,更改fa_standard文件夾下的residue_types.txt,在記錄CYS條目的行下添加CYM的記錄行:orm

residue_types/l-caa/CYM.params

  而後,修改prepro.ramaProb文件(/rosetta/main/database/scoring/score_functions/rama/fd/prepro.ramaProb),在這裏直接複製的該文件裏關於CYS的記錄條目,改爲相應的CYM,文件太大,這裏就不上傳了。這樣就實現了自定義拓展rosetta的params庫,rosetta就能夠識別咱們模擬分子裏的CYM殘基了。xml

  最後,準備CYM與HEM的matchCST文件,準備方法能夠參考rosetta geometric constraint file(用於match和design) - 丨o聽乄雨o丨 - 博客園 (cnblogs.com)enzyme design 總體流程及感想 - 丨o聽乄雨o丨 - 博客園 (cnblogs.com)這兩篇博客,下面也附上咱們所用的CST文件內容及options和XML文件。blog

LIG.CST

#block 1 for covalent bond for CYM and CPD1

CST::BEGIN  
  TEMPLATE::   ATOM_MAP: 1 atom_name: FE1 N2 N1
  TEMPLATE::   ATOM_MAP: 1 residue3: HEM

  TEMPLATE::   ATOM_MAP: 2 atom_name: SG CB CA
  TEMPLATE::   ATOM_MAP: 2 residue3: CYM 
 
  CONSTRAINT:: distanceAB:    2.00   0.20 180.00  1
  CONSTRAINT::    angle_A:   98.00   3.00 100.00  360.00
  CONSTRAINT::    angle_B:  120.00  10.00  50.00  360.00
  CONSTRAINT::  torsion_A:  -98.00   5.00  50.00  360.00
  CONSTRAINT::  torsion_B:  103.00   5.00  25.00  360.00
  CONSTRAINT:: torsion_AB: -176.60   5.00   5.00  360.00
CST::END

ligand_dock_p450.flags

-in:file:s Sbai.pdb
-in:file:extra_res_fa HEM.params AGI.params
-run::preserve_header
-packing
    -ex1
    -ex2aro
    -ex2 
    -no_optH false
    -flip_HNQ true
    -ignore_ligand_chi true
-enzdes
    -cstfile LIG.cst
-parser
    -protocol ligand_dock_2018.xml

-out
#    -level 100
    -nstruct 100
    #-overwrite

ligand_dock_2018.xml

<ROSETTASCRIPTS>This protocol will simply do low-resolution followed by high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
    <SCOREFXNS>
        <ScoreFunction name="ligand_soft_rep" weights="ligand_soft_rep">
        </ScoreFunction>
        <ScoreFunction name="hard_rep" weights="ligand">
        </ScoreFunction>
    </SCOREFXNS>

    <LIGAND_AREAS>
        <LigandArea name="docking_sidechain_X" chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
        <LigandArea name="final_sidechain_X" chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
        <LigandArea name="final_backbone_X" chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
        
        <LigandArea name="docking_sidechain_F" chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
        <LigandArea name="final_sidechain_F" chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
        <LigandArea name="final_backbone_F" chain="F" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
    </LIGAND_AREAS>
    <INTERFACE_BUILDERS>
        <InterfaceBuilder name="side_chain_for_docking" ligand_areas="docking_sidechain_X,docking_sidechain_F"/>
        <InterfaceBuilder name="side_chain_for_final" ligand_areas="final_sidechain_X,final_sidechain_F"/>
        <InterfaceBuilder name="backbone" ligand_areas="final_backbone_X,final_backbone_F" extension_window="3"/>
    </INTERFACE_BUILDERS>
    <MOVEMAP_BUILDERS>
        <MoveMapBuilder name="docking" sc_interface="side_chain_for_docking" minimize_water="true"/>
        <MoveMapBuilder name="final" sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
    </MOVEMAP_BUILDERS>
    <SCORINGGRIDS ligand_chain="X" width="20">
        <ClassicGrid grid_name="classic" weight="1.0"/>
    </SCORINGGRIDS>
    <MOVERS>
    single movers_X
        <AddOrRemoveMatchCsts name="cstadd" cst_instruction="add_new"/> add catalytic constraints
        <Transform name="transform_F" chain="F" box_size="7.0" move_distance="0.2" angle="20" cycles="700" repeats="1" temperature="5"/>
        <Transform name="transform_X" chain="X" box_size="8.0" move_distance="0.2" angle="20" cycles="700" repeats="1" temperature="5"/>
        <AddOrRemoveMatchCsts name="cstrem" cst_instruction="remove" keep_covalent="1"/> remove constraints
        <HighResDocker name="high_res_docker" cycles="6" repack_every_Nth="3" scorefxn="ligand_soft_rep" movemap_builder="docking"/>
        <FinalMinimizer name="final" scorefxn="hard_rep" movemap_builder="final"/>
        <AddOrRemoveMatchCsts name="cstfinadd" cst_instruction="add_pregenerated"/>
        <InterfaceScoreCalculator name="add_scores" chains="X,F" scorefxn="hard_rep"/>
        
    compound movers
        <ParsedProtocol name="low_res_dock">
            <Add mover_name="cstadd"/>
            <Add mover_name="transform_F"/>
            <Add mover_name="transform_X"/>
            <Add mover_name="cstrem"/>
        </ParsedProtocol>
        <ParsedProtocol name="high_res_dock">
            <Add mover_name="high_res_docker"/>
            <Add mover_name="final"/>
            <Add mover_name="cstfinadd"/>
        </ParsedProtocol>
    </MOVERS>
    <PROTOCOLS>
        <Add mover_name="low_res_dock"/>
        <Add mover_name="high_res_dock"/>
        <Add mover_name="add_scores"/>        
    </PROTOCOLS>
</ROSETTASCRIPTS>

 

 
 
 
 
 
 
 
 
 
相關文章
相關標籤/搜索