Back to TaskOperations page.
Jared Adolf-Bryfogle; jadolfbr@gmail.com; PI: Roland Dunbrack
Grafting class adapted from Steven Lewis' pose_into_pose algorithm.
1) Inserts the pose piece into the scaffold pose, deleting any overhang residues or residues in the region the insertion will occur between.
2) Connects the left side of the piece to the scaffold by inserting ideal geometry (aka superposition of terminal overhangs is not needed)
3) Cycles of:
a) SmallMover for sampling
b) CCD to close right (Nter) side of the graft. The insert is included as dihedral-inflexible residues in the CCD arm. Residues on either side of the scaffold are used by default to close the loop. A Moevemap can be given to include more residues for CCD to use, such as loops connecting secondary structural elements
c) MinMover to help close the graft through chain break terms
d) Closure check - will stop if closed (This can be overridden)
e) MonteCarlo Boltzmann criterion
5) Repack flexible residues, insert residues, connecting residues between scaffold and insert, and neighbors
Uses a single arm to close the loop by default.
****Nter_loop_start---->Piece----> | Cter_loop_end****
The default movemap keeps insert Frozen in dihedral angle space, But think of the insert as part of a CCD giant arm. Default flexibility on Nter and Cter is only two residues (--> part of diagram). Will delete any residues between start and end, and any overhang residues from the insert.
Algorithm originally from pose_into_pose:
<CCDEndsGraftMover name="(&string)" spm_reference_name="(&string)" start_pdb_num (&string) end_pdb_num="(&string)" nter_overhang="(&size, 0)" cter_overhang="(&size, 0)" stop_at_closure="(&bool, true)", copy_pdbinfo="(&bool, false)"/>
Combine with SavePoseMover for insertions
Connection: scaffold-insert-scaffold
You can optionally specify movemaps for both the insert and the scaffold to use during minimization, CCD, etc. Not recommended for general use, use the flexibility options instead for simplicity. See the FastRelaxMover for more details on MoveMap specification.
Will combine the movemaps for apply, and renumber everything. Flexible residues in multiple chains not recommended. This can be amazing as you can use loop regions in various parts of your protein to help the graft complete.
Note: Will disregard flexibility settings, as the movemaps will be used as primary way to define flexibility. May want to consider turning off the sampling step when passing crazy movemaps.
In this example, we graft 3 CDRs (loopy regions) from one antibody (graft_from.pdb) into another using the SavePoseMover. I know it is confusing - it is much easier to use this mover with PyRosetta.
We use the KeepRegionMover to iteratively cut out a CDR from the PDB, save its state in the save pose mover, graft it in, and then repeat. SavePoseMover is used to save the state of different structures so we can combine them, delete things in them, etc. We use the ParsedProtocolMover to combine movers as a sequence.
We are then left with a new antibody that has CDRs from a different antibody. No chain breaks should be present in this new antibody. Note that CCDEndsGraftMover does not always work to close regions. The AnchoredGraftMover is better at closing non-loopy regions; however, it can result in strange structures and itself may require additional optimization for the structure. The RAbD Antibody Design program uses a combination of both movers to close and optimize 100 percent of antibody CDR grafts.
<ROSETTASCRIPTS>
<MOVERS>
<SavePoseMover name="save_current" reference_name="current"/>
<SavePoseMover name="save_CDR" reference_name="CDR"/>
<SavePoseMover name="restore_current" restore_pose="1" reference_name="current"/>
<SavePoseMover name="restore_ab" restore_pose="1" reference_name="ab" pdb_file="graft_from.pdb"/>
<ParsedProtocol name="save_cdr_restore" >
<Add mover="save_CDR" />
<Add mover="restore_current" />
</ParsedProtocol>
<ParsedProtocol name="save_current_restore_ab" >
<Add mover="save_current" />
<Add mover="restore_ab" />
</ParsedProtocol>
<KeepRegionMover name="k_L1" start_pdb_num="24L" end_pdb_num="42L" nter_overhang="2" cter_overhang="2"/>
<KeepRegionMover name="k_L2" start_pdb_num="57L" end_pdb_num="72L" nter_overhang="2" cter_overhang="2"/>
<KeepRegionMover name="k_L3" start_pdb_num="107L" end_pdb_num="138L" nter_overhang="2" cter_overhang="2"/>
<CCDEndsGraftMover name="graft_L1" start_pdb_num="23L" end_pdb_num="43L" spm_reference_name="CDR" copy_pdbinfo="1"/>
<CCDEndsGraftMover name="graft_L2" start_pdb_num="56L" end_pdb_num="73L" spm_reference_name="CDR" copy_pdbinfo="1"/>
<CCDEndsGraftMover name="graft_L3" start_pdb_num="106L" end_pdb_num="139L" spm_reference_name="CDR" copy_pdbinfo="1"/>
</MOVERS>
<PROTOCOLS>
<Add mover_name="save_current" />
<Add mover_name="restore_ab"/>
<Add mover_name="k_L1" />
<Add mover_name="save_cdr_restore"/>
<Add mover_name="graft_L1"/>
<Add mover_name="save_current_restore_ab"/>
<Add mover_name="k_L2"/>
<Add mover_name="save_cdr_restore"/>
<Add mover_name="graft_L2"/>
<Add mover_name="save_current_restore_ab"/>
<Add mover_name="k_L3"/>
<Add mover_name="save_cdr_restore"/>
<Add mover_name="graft_L3"/>
<Add mover_name="save_current"/>
</PROTOCOLS>
</ROSETTASCRIPTS>