You are here

How to specify only design surface residues and loops by RosettaScripts?

5 posts / 0 new
Last post
How to specify only design surface residues and loops by RosettaScripts?
#1

Hi, I have used the following, residue_selectors, taskoperations and movers to only design surface residues and loops of a protein interface.

  <RESIDUE_SELECTORS>
        <Layer name="surface" select_core="0" select_boundary="0" select_surface="1"
         ball_radius="2.0" use_sidechain_neighbors="1"
         sc_neighbor_dist_exponent="1.0" sc_neighbor_dist_midpoint="9.0"
         sc_neighbor_denominator="1.0" sc_neighbor_angle_shift_factor="0.5"
         sc_neighbor_angle_exponent="2.0"
         core_cutoff="5.2" surface_cutoff="2.0"/>

        <SecondaryStructure name="loop" overlap="0" minH="1" minE="1" include_terminal_loops="true" use_dssp="true" ss="L"/>

  </RESIDUE_SELECTORS>

<TASKOPERATIONS>
                <ProteinInterfaceDesign name="d1" repack_chain1="1" repack_chain2="1" design_chain1="0" design_chain2="1" interface_distance_cutoff="10.0"/>

                <ReadResfile name="r1" filename="resfile-all20aa.txt" selector="surface,loop"/>
</TASKOPERATIONS>

<MOVERS>
                <PackRotamersMover name="p1" scorefxn="talaris2014" task_operations="d1,r1"/>
</MOVERS>

(I have removed some movers for simple illustration)

However, it didn't work, no structures were generated. 

I have tested by removing the highlighted argument, then the design ran smoothly.

However, I want to specify only loops to be designed.

May I know how could I specify only deign surface residues and loops correctly with Rosetta Scripts?

Thank you.

Category: 
Post Situation: 
Sun, 2019-04-07 21:47
johnnytam100
Mon, 2019-04-08 12:18
ajasja

ajasja, thank you very much! 

Wed, 2019-04-10 02:37
johnnytam100

Residue selectors aren't combined with comma-separated lists.  If you want to select residues that are on the surface AND in loops, use an AND residue selector.  Also, keep in mind that your task operations modify the default behaviour (designing and packing everywhere) on a residue-by-residue basis.  You therefore need to tell Rosetta NOT to design or repack at positions that are NOT surface and loop:

 

  <RESIDUE_SELECTORS>
        <Layer name="surface" select_core="0" select_boundary="0" select_surface="1"
         ball_radius="2.0" use_sidechain_neighbors="1"
         sc_neighbor_dist_exponent="1.0" sc_neighbor_dist_midpoint="9.0"
         sc_neighbor_denominator="1.0" sc_neighbor_angle_shift_factor="0.5"
         sc_neighbor_angle_exponent="2.0"
         core_cutoff="5.2" surface_cutoff="2.0"/>

        <SecondaryStructure name="loop" overlap="0" minH="1" minE="1" include_terminal_loops="true" use_dssp="true" ss="L"/>

        <And name="surface_and_loop" selectors="surface,loop" /> #Select residues that are BOTH surface AND loop.

        <Not name="not_surface_and_loop" selector="surface_and_loop" /> #Select residues that are NOT (surface AND loop).

  </RESIDUE_SELECTORS>

<TASKOPERATIONS>
                <ProteinInterfaceDesign name="d1" repack_chain1="1" repack_chain2="1" design_chain1="0" design_chain2="1" interface_distance_cutoff="10.0"/>

                <OperateOnResidueSubset name="no_design_not_surface_and_loop" selector="not_surface_and_loop">

                                #Prevent repacking at positions tha are NOT (surface AND loop).  Remaining positions

                                #(i.e. positions that are surface AND loop) retain default behaviour, which is design

                                #with the 20 canonical amino acids.

                                <PreventRepackingRLT />

                </OperateOnResidueSubset>
</TASKOPERATIONS>

<MOVERS>
                <PackRotamersMover name="p1" scorefxn="talaris2014" task_operations="d1,no_design_not_surface_and_loop"/>
</MOVERS>

 

One other note: "surface residues at an interface" doesn't really make sense, since interfaces are occluded by definition.  I wouldn't be surprised if the effect of the two task operations was to prevent design at all positions...  You might have to change your Layer selector so that it selects surface and boundary residues, if you want the least occluded residues at the interface.

Mon, 2019-04-08 12:29
vmulligan

vmulligan, it worked! Thank you very much!

I am interested in your comment that "interfaces are occluded", would you mind elaborate more? Or may I know your source so I could read myself?

Thanks again!

Wed, 2019-04-10 02:48
johnnytam100