Member Site Forums Rosetta 3 Rosetta 3 – General modeling loops between domains Reply To: modeling loops between domains

#4055
Anonymous

    The shortest path to getting the modeling you want should be in relax mode. What you want to do is relax the protein, without changing anything inside your domains. So, we’ll tweak relax mode to ignore your domains and only relax your linker.

    The executeable we’ll be working with is src/apps/public/relaxation/relax.cc. Inside it offers two modes, Classic and FastRelax. I’ll describe how to hack up Classic but the process would hold for FastRelax (just different lines to change). Your linker is presumably short so you won’t need speed (classic scales poorly with number of residues).

    ClassicRelax is a Mover, it lives in src/protocols/relax_protocols.* We need to modify the mover’s private function set_default_move_map, which is implemented at src/protocols/relax_protocols.cc:139

    The MoveMap is the data structure that controls what parts of the protein can move. So, we’ll just tell it not to move your domains, but leave the middle intact.

    set_default_move_map create the default map (which has all freedoms turned off by default), then activates freedoms according to some options in the option system. We want to control freedoms based on linker position instead, so remove the three lines in the function that set things in the movemap (these three):

    (I can’t get this to post code correctly so this will be ugly, sorry).
    ~pp~
    movemap_->set_jump( core::options::option[ core::options::OptionKeys::relax::jump_move ]() );
    movemap_->set_bb( core::options::option[ core::options::OptionKeys::relax::bb_move ]() );
    movemap_->set_chi( core::options::option[ core::options::OptionKeys::relax::chi_move ]() );

    Replace it with these lines:

    for (int i = start_of_linker; i set_bb(i, true);){

    movemap_->set_chi(i, true);

    }
    ~/pp~
    Where start_of_linker and end_of_linker are the resids of your protein. If you have one case, just hard-code the numbers and don’t worry about it; if you want this to work on multiple starting structures without recompiling you can get them passed in as options. Note you need rosetta resids (indexed from 1 from the start of the protein, no gaps) not the PDB residue number.

    Disclaimers: A) This is off the top of my head, I haven’t tested it. B) This is probably not the protocol from the paper you mention, but it should provide linker modeling. C) I’m not sure there isn’t a commandline way to do it – I just don’t know of one.