You are here

ReplicaDock 2.0 Native vs Input Structure Flags Confusion

3 posts / 0 new
Last post
ReplicaDock 2.0 Native vs Input Structure Flags Confusion

Hi all, thanks for any advice you can give. I'm working on setting up Replica Dock 2.0 runs, and have initially docked models of some structures for input. I'm pretty sure these should be provided to the in:file:s flag, but I'm unsure from the examples in the supplemental / documentation what the 'in:file:native' flag is, and if I even need it. In some example commands, the same file name is passed to both 'in:file:s' and 'in:file:native', and in other examples, there's no in:file:native passed at all. My main question is - do I need this flag, and if so, what is it used for?

Additionally, there are some mentions of having the partners separated by 10~15 angstroms, but I'm not sure if that's done automatically, or if I need to do it myself as a separate step. Is this recommended, or is providing the models in their initial docked state correct?

Hopefully I have everything else set up correctly; my current command looks like this:

/dartfs/rc/lab/G/Grigoryanlab/home/coy/Rosetta_MPI/srv/release-prep/temp_src/rosetta.source.release-296/main/source/bin/rosetta_scripts.mpi.linuxgccrelease -np 24 @/dartfs/rc/lab/G/Grigoryanlab/home/coy/Rosetta_MPI/replicaDockFlags.txt

with my flags (replicaDockFlags.txt) like this (some flags aren't filled out because I have lots of structures to run in batch, they'll be filled in by my submission script replacing terms like '$PDBFILE' for individual submissions):

-in:file:s $PDBFILE # PDB file with chains in order
-parser:protocol /dartfs/rc/lab/G/Grigoryanlab/home/coy/Rosetta_MPI/replicadock.xml
-evaluation:DockMetrics true
-score:weights muds_2021
-run:n_replica 3
-out:nstruct 8
-out:path:all $OUTPATH
-out:file:silent $SILENTFILENAME
-out:file:scorefile $SCOREFILENAME
-out:mpi_tracer_to_file tracer.out
-multiple_processes_writing_to_one_directory true

and hamiltonians_cen.txt like this (no changes from the paper):

GLOBAL_PATCH atom_pair_constraint = 5
1 1.5 muds_2021 NOPATCH fa_rep *= 1.0
2 3.0 muds_2021 NOPATCH fa_rep *= 0.75
3 5.0 muds_2021 NOPATCH fa_rep *= 0.5

and replicadock.xml like this (the only changes made from the paper are putting the full path to hamiltonians_cen.txt in, and changing the chains selected for one partner):

    <ScoreFunction name="score_dock_low" weights="muds_2021"/>
    <ScoreFunction name="score_analyze" weights="motif_dock_score"/>
    <Chain name="chA" chains="A" />
    <Chain name="chB" chains="H,L" />
    <Neighborhood name="chA_neighbours" selector="chA" distance="8.0"/>
    <Neighborhood name="chB_neighbours" selector="chB" distance="8.0"/>
    <And name="interfaceA" selectors="chB_neighbours,chA"/>
    <And name="interfaceB" selectors="chA_neighbours,chB"/>
    <Or name="interfaceAB" selectors="interfaceA,interfaceB"/>
    <MoveMapFactory name="Interface">
        <Backbone residue_selector="interfaceAB"/>
        <Chi residue_selector="interfaceAB"/>
    <!-- setup jumps and constraints-->
    <DockSetupMover name="setup_jump"/>
    <AddEncounterConstraintMover name="encounter_cst" gap="8" />
    <RigidBodyPerturbNoCenter name="rb_mover" rot_mag="1" trans_mag="1"/>
    <HamiltonianExchange name="h_exchange" temp_file="/dartfs/rc/lab/G/Grigoryanlab/home/coy/Rosetta_MPI/hamiltonians_cen.txt" temp_stride="1000" stats_file="
    <DockingInitialPerturbation name="init_pert" slide="1" />
    <--DockingInitialPerturbation name="init_pert" randomize1="1" randomize2="1" /--> <!-- Uncomment this
    for global docking-->
    <TrialCounterObserver name="count" file="trial.stats"/>
    <SilentTrajectoryRecorder name="traj" score_stride="1" stride="1000" cumulate_replicas="1" />
    <Backrub name="bbmover" movemap_factory="Interface" require_mm_bend="0"/>
    <--Backrub name="bbmover" pivot_residues="" max_angle_disp_4="3.1" max_angle_disp_7="3.0"
    max_angle_disp_slope="-0.5" require_mm_bend="0"/--> <!-- Additional tags to perform aggressive BB
    sampling or to input specific pivot residues while docking-->
    <MetropolisHastings name="sampler" trials="250000" scorefxn="score_dock_low" > <!--trial number
    normally use 10^6-10^8 for productive global docking simulation-->
        <Add mover_name="h_exchange"/>
        <Add mover_name="traj"/>
        <Add mover_name="count"/>
        <Add mover_name="rb_mover"/>
        <Add mover_name="bbmover" sampling_weight="2"/>
    <Add mover_name="setup_jump"/>
    <Add mover_name="encounter_cst"/>
    <Add mover_name="init_pert"/>
    <Add mover_name="sampler"/>

Post Situation: 
Tue, 2022-12-27 06:42


The flags look good to me. About the -in:file:native flag, it is used to provide a reference against which Docking metrics such as interface RMSD, RMSDs, fnats, etc are calculated. If the flag is not provided, then you would need to remove the -evaluation:DockMetrics true flag as well else it will crash. 
For blind targts i.e. where no native is available (I am assuming this is your case), have the metrics such as Irms, fnat is still nice because it enables us to visualize the doking landscape. So, you can provide any structure where the complex is in a bound-like state as a native and then you can compare the energies and the net motion from the starting point by plotting say Isc (Interface score) versus Irms (interface RMSD). 

For local docking scenarios, since we were benchmarking our protocol on existing targets, we did the perturbation step. If you already have a docked complex, you can start from that itself (and also provide the same structure as native for reference!) and run a small ReplicaDock simulation to refine and perturb the backbone slightly. 
If you want to do a global docking i.e. find alternate binding patches, I would recommend starting from the same structure still, but turning backbone motion off (to reduce the degrees of freedom) and just perform rigid docking for longer steps i.e. increase the trials in your XML file MetropolisHastings Mover.

Also since I see chains A_HL in your XML, I am thinking that it might an antigen-antibody complex. So if you just want to move the CDR regions, you can even provide those residue numbers in the Backrub mover option (check out the Directed Induced Fit[DIF] demos).

Hope this helps!

Tue, 2022-12-27 11:21

Thanks so much! I got wrapped up in a different project and am now coming back to this one - your reply was exceptionally helpful and thorough :)

Tue, 2023-02-28 18:19