ROSETTA使用技巧隨筆--RosettaLigand Docking


時間不充分,簡單記錄下自己實踐過程中的做法:

1. 首先,非標准殘基都需要轉換成.params文件,使用 <path-to-Rosetta>/main/source/scripts/python/public/molfile_to_params.py -n TPP TPP.mol2 --chain=F --clobber 轉換,此命令會產生TPP_0001.pdb和TPP.params兩個文件;

2. 其次,如果配體需要進行構象搜索,可以使用obabel,這個免費且簡單,見博客http://www.cnblogs.com/wq242424/p/8231600.html,需要做限制性構象搜索的話,就比較難了,我用的是schrodinger的conformational search里的高級搜索;

3. 如果經過上一步產生了ligand_conformers.sdf,就需要為 <path-to-Rosetta>/main/source/scripts/python/public/molfile_to_params.py -n GAD -p GAD --chain=X --center=-31,-35.5,8 --clobber --conformers-in-one-file GAD_confs.sdf 命令多加一個參數 --conformers-in-one-file GAD_confs.sdf ,這個參數會在產生的.params文件末尾加一句 PDB_ROTAMERS GAD_conformers.pdb 來表明你的多重構象的文件,此命令會產生GAD.pdb,GAD.params和GAD_conformers.pdb三個文件,其中GAD.pdb是以conformers中第一個構象為結構;

4. 多底物對接的問題,經過查閱手冊和論壇,得出的結論是通過控制需要dock的鏈("X/Y/F/。。。")來指定需要對接的小分子,比如我要對接TPP和GAD,就需要在single movers后面及前面LIGAND_AREAS和INTERFACE_BUILDERS那里指定分別對“F”和“X”鏈進行dock,並在MOVERS處指定兩底物分子分別對應的操作,options不必特意根據雙底物改變,下面給出了我做的兩個XML文件的示例;

5. StartFrom,Transform,Translate和Rotate的差別和比較。StartFrom是在底物不在蛋白口袋內部,需要程序先將底物以Coordinates為基准放到口袋中的程序;Transform是使用蒙特卡洛的方法,對對接過程的底物和蛋白小分子隨機取樣的過程;Translate和Rotate則是對處於口袋中的小分子進行平移旋轉的操作。底物在蛋白口袋中時,就可以不使用StartFrom;使用Transform時,則需要指定GRID。

6. 至於下面的high_resolution_dock XML文件,用途是在你已經知道你的底物的位置的情況下,對底物及周邊殘基進行高分辨率的對接,與其說對接,可能說packing和minimizing更恰當,因為它是對周圍的殘基優化的同時變換底物的構象,以求找到最優結果。

 

分享一下自己的兩個xml文件及對應的flags:

low_resolution_dock+high_resolution_dock

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.
<ROSETTASCRIPTS>
	<SCOREFXNS>
		<ligand_soft_rep weights="ligand_soft_rep">
		</ligand_soft_rep>
		<hard_rep weights="ligand">
		</hard_rep>
	</SCOREFXNS>
	<LIGAND_AREAS>
		<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
	</LIGAND_AREAS>
	<INTERFACE_BUILDERS>
		<side_chain_for_docking ligand_areas="docking_sidechain_X"/>
		<side_chain_for_final ligand_areas="final_sidechain_X"/>
		<backbone ligand_areas="final_backbone_X" extension_window="3"/>
	</INTERFACE_BUILDERS>
	<MOVEMAP_BUILDERS>
		<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
		<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
	</MOVEMAP_BUILDERS>
	<MOVERS>
	single movers		
		<StartFrom name="start_from_X" chain="X">
			<Coordinates x="-31" y="-35.5" z="8"/>        
		</StartFrom>
		<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
			<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
		</CompoundTranslate>
		<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
		<SlideTogether name="slide_together" chains="X"/>
		<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"/>
		<InterfaceScoreCalculator name="add_scores" chains="X" scorefxn="hard_rep"/>
	compound movers
		<ParsedProtocol name="low_res_dock">
			<Add mover_name="start_from_X"/>
			<Add mover_name="compound_translate"/>
			<Add mover_name="rotate_X"/>
			<Add mover_name="slide_together"/>
		</ParsedProtocol>
		<ParsedProtocol name="high_res_dock">
			<Add mover_name="high_res_docker"/>
			<Add mover_name="final"/>
		</ParsedProtocol>
	</MOVERS>
	<PROTOCOLS>
		<Add mover_name="low_res_dock"/>
		<Add mover_name="high_res_dock"/>
		<Add mover_name="add_scores"/>
	</PROTOCOLS>
</ROSETTASCRIPTS>

對應的flag options文件:

-in:file:s inputs_GAD/GALS_TPP_GAD.pdb
-in:file:extra_res_fa inputs_GAD/TPP.params inputs_GAD/GAD.params

-packing
	-ex1
	-ex2aro
	-ex2 
	-no_optH false
	-flip_HNQ true
	-ignore_ligand_chi true
	
-parser
	-protocol inputs_GAD/ligand_dock.xml

-out
	-path:all outputs_GAD
	-nstruct 1000
	-overwrite

 

high_resolution_dock_only

This protocol will simply do high-resolution docking.
It will also report the binding energy (ddg) and buried-surface area (sasa) in the score file.
<ROSETTASCRIPTS>
	<SCOREFXNS>
		<ligand_soft_rep weights="ligand_soft_rep">
		</ligand_soft_rep>
		<hard_rep weights="ligand">
		</hard_rep>
	</SCOREFXNS>
	<LIGAND_AREAS>
		<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
	</LIGAND_AREAS>
	<INTERFACE_BUILDERS>
		<side_chain_for_docking ligand_areas="docking_sidechain_X"/>
		<side_chain_for_final ligand_areas="final_sidechain_X"/>
		<backbone ligand_areas="final_backbone_X" extension_window="3"/>
	</INTERFACE_BUILDERS>
	<MOVEMAP_BUILDERS>
		<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
		<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
	</MOVEMAP_BUILDERS>
	<SCORINGGRIDS ligand_chain="X" width="15">
		<classic grid_type="ClassicGrid" weight="1.0"/>
	</SCORINGGRIDS>
	<MOVERS>
		<Transform name="transform" chain="X"box_size="7.0" move_distance="0.2" angle="20" cycles="500" repeats="1" temperature="5"/>
		<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"/>
		<InterfaceScoreCalculator name="add_scores" chains="X" scorefxn="hard_rep"/>
	</MOVERS>
	<PROTOCOLS>
		<Add mover_name="transform"/>
		<Add mover_name="high_res_docker"/>
		<Add mover_name="final"/>
		<Add mover_name="add_scores"/>
	</PROTOCOLS>
</ROSETTASCRIPTS>

對應的flag_options文件:

-in:file:s inputs_IMA/GALS_IMA.pdb
-in:file:extra_res_fa inputs_IMA/IMA.params

-packing
	-ex1
	-ex2aro
	-ex2 
	-no_optH false
	-flip_HNQ true
	-ignore_ligand_chi true
	
-parser
	-protocol inputs_IMA/ligand_dock.xml

-out
	-path:all outputs_IMA
	-nstruct 1000
	-overwrite

多底物對接(兩個小分子的鏈分別對應“X”和“F”)

 1. 手動指定兩個小分子(“X”,“F”)的位置(使用StartFrom mover指定,對應的Coordinates)
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.
<ROSETTASCRIPTS>
	<SCOREFXNS>
		<ligand_soft_rep weights="ligand_soft_rep">
		</ligand_soft_rep>
		<hard_rep weights="ligand">
		</hard_rep>
	</SCOREFXNS>
	<LIGAND_AREAS>
		<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
		
		<docking_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_F chain="F" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
	</LIGAND_AREAS>
	<INTERFACE_BUILDERS>
		<side_chain_for_docking ligand_areas="docking_sidechain_X,docking_sidechain_F"/>
		<side_chain_for_final ligand_areas="final_sidechain_X,final_sidechain_F"/>
		<backbone ligand_areas="final_backbone_X,final_backbone_F" extension_window="3"/>
	</INTERFACE_BUILDERS>
	<MOVEMAP_BUILDERS>
		<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
		<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
	</MOVEMAP_BUILDERS>
	<MOVERS>
	single movers_X		
		<StartFrom name="start_from_X" chain="X">
			<Coordinates x="-31" y="-35.5" z="8"/>        
		</StartFrom>
		<StartFrom name="start_from_F" chain="F">
			<Coordinates x="-27.26" y="-34.56" z="4.87"/>        
		</StartFrom>
		<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
			<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
			<Translate chain="F" distribution="uniform" angstroms="2.0" cycles="50"/>
		</CompoundTranslate>
		<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
		<Rotate name="rotate_F" chain="F" distribution="uniform" degrees="360" cycles="500"/>
		
		<SlideTogether name="slide_together" chains="X,F"/>
		<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"/>
		<InterfaceScoreCalculator name="add_scores" chains="X,F" scorefxn="hard_rep"/>
		
	compound movers
		<ParsedProtocol name="low_res_dock">
			<Add mover_name="start_from_X"/>
			<Add mover_name="start_from_F"/>
			<Add mover_name="compound_translate"/>
			<Add mover_name="rotate_X"/>
			<Add mover_name="rotate_F"/>			
			<Add mover_name="slide_together"/>
		</ParsedProtocol>
		<ParsedProtocol name="high_res_dock">
			<Add mover_name="high_res_docker"/>
			<Add mover_name="final"/>
		</ParsedProtocol>
	</MOVERS>
	<PROTOCOLS>
		<Add mover_name="low_res_dock"/>
		<Add mover_name="high_res_dock"/>
		<Add mover_name="add_scores"/>		
	</PROTOCOLS>
</ROSETTASCRIPTS> 
 2. 其中一個小分子(“F”)位置已知,另一個小分子(“X”)的位置需要指定(首先需使用SCORINGGRIDS為已知位置的小分子指定盒子,然后使用Transform指定其動作模式)
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.
<ROSETTASCRIPTS>
	<SCOREFXNS>
		<ligand_soft_rep weights="ligand_soft_rep">
		</ligand_soft_rep>
		<hard_rep weights="ligand">
		</hard_rep>
	</SCOREFXNS>
	<LIGAND_AREAS>
		<docking_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_X chain="X" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_X chain="X" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
		
		<docking_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true" minimize_ligand="10"/>
		<final_sidechain_F chain="F" cutoff="6.0" add_nbr_radius="true" all_atom_mode="true"/>
		<final_backbone_F chain="F" cutoff="7.0" add_nbr_radius="false" all_atom_mode="true" Calpha_restraints="0.3"/>
	</LIGAND_AREAS>
	<INTERFACE_BUILDERS>
		<side_chain_for_docking ligand_areas="docking_sidechain_X,docking_sidechain_F"/>
		<side_chain_for_final ligand_areas="final_sidechain_X,final_sidechain_F"/>
		<backbone ligand_areas="final_backbone_X,final_backbone_F" extension_window="3"/>
	</INTERFACE_BUILDERS>
	<MOVEMAP_BUILDERS>
		<docking sc_interface="side_chain_for_docking" minimize_water="true"/>
		<final sc_interface="side_chain_for_final" bb_interface="backbone" minimize_water="true"/>
	</MOVEMAP_BUILDERS>
	<SCORINGGRIDS ligand_chain="F" width="15">
		<classic grid_type="ClassicGrid" weight="1.0"/>
	</SCORINGGRIDS>
	<MOVERS>
	single movers_X		
		<StartFrom name="start_from_X" chain="X">
			<Coordinates x="-31" y="-35.5" z="8"/>        
		</StartFrom>
		<Transform name="transform_F" chain="F" box_size="7.0" move_distance="0.2" angle="20" cycles="500" repeats="1" temperature="5"/>
		<CompoundTranslate name="compound_translate" randomize_order="false" allow_overlap="false">
			<Translate chain="X" distribution="uniform" angstroms="2.0" cycles="50"/>
			<Translate chain="F" distribution="uniform" angstroms="2.0" cycles="50"/>
		</CompoundTranslate>
		<Rotate name="rotate_X" chain="X" distribution="uniform" degrees="360" cycles="500"/>
		<Rotate name="rotate_F" chain="F" distribution="uniform" degrees="360" cycles="500"/>
		
		<SlideTogether name="slide_together" chains="X,F"/>
		<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"/>
		<InterfaceScoreCalculator name="add_scores" chains="X,F" scorefxn="hard_rep"/>
		
	compound movers
		<ParsedProtocol name="low_res_dock">
			<Add mover_name="start_from_X"/>
			<Add mover_name="transform_F"/>
			<Add mover_name="compound_translate"/>
			<Add mover_name="rotate_X"/>
			<Add mover_name="rotate_F"/>			
			<Add mover_name="slide_together"/>
		</ParsedProtocol>
		<ParsedProtocol name="high_res_dock">
			<Add mover_name="high_res_docker"/>
			<Add mover_name="final"/>
		</ParsedProtocol>
	</MOVERS>
	<PROTOCOLS>
		<Add mover_name="low_res_dock"/>
		<Add mover_name="high_res_dock"/>
		<Add mover_name="add_scores"/>		
	</PROTOCOLS>
</ROSETTASCRIPTS>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM