membrane ab initio modeling application with constraints

Member Site Forums Rosetta 3 Rosetta 3 – Applications membrane ab initio modeling application with constraints

  • This topic has 2 replies, 2 voices, and was last updated 12 years ago by Anonymous.
Viewing 2 reply threads
  • Author
    Posts
    • #1457
      Anonymous

        Hi,

        I’m trying to use the membrane ab initio modeling application (membrane_abinitio2). I have followed the instructions in the “membrane_abinitio” demo directory and it did work.

        My question is: can I add constraints (such as disulphide bonds) and NMR restraints (such as RDC measurements) in the process?

        I tried to add -fix_disulf and -score:patch flags in the command but it didn’t seem to affect the outputs. The score file did not have “rdc” terms in it and the structures did not satisfy the disulphide bonds.

        Thanks,

        Yisong

      • #8072
        Anonymous

          I talked with someone who has done membrane abinitio modeling with NMR data, and regular constraints should work, as will RDC data (the RDC data is implemented as just a score term, so if you have the appropriate term turned on in your weights file giving the data on the commandline should work with any protocol). The trick is to make sure that the score function being used is the one you’re adding the constraint weight to, which will depend on the protocol and the flags you’re using.

          Regarding disulphides, it’s a little more complicated. In addition to the disulphide score terms being on, the protocol you’re using needs to know to initialize the covalent bond between the two sulfurs. I’m pretty sure that (membrane) abinitio will do that, but it’s not always the case for other protocols.

          Finally, it sounds like membrane ab initio is even harder than regular ab initio (which is pretty hard to start with). You have to do pretty extensive sampling (e.g. large number of output structures) to get something reasonable. The person I talked to said that he actually used the minirosetta application ( http://www.rosettacommons.org/manuals/archive/rosetta3.4_user_guide/de/daa/boinc_minirosetta_usage.html ) with the broker protocol, rather than just the regular membrane abinitio application, in order to do appropriate sampling. Unfortunately, the broker isn’t well documented – using it for Fold and Dock ( http://www.rosettacommons.org/manuals/archive/rosetta3.4_user_guide/d0/dfa/fold_and_dock.html ) is the only documentation I found.

        • #8145
          Anonymous

            Update:

            I think the membrane abinitio protocol was written in a different way from the usual “classic” abinitio protocol. It didn’t allow patch for scoring function in the protocol.
            I was able to incorporate RDC patch after modifying the code in rosetta_source/src/protocols/abinitio/MembraneAbinitio.cc:
            around line 612
            Original:
            void MembraneAbinitio::set_default_scores() {
            using namespace scoring;
            tr.Debug << "creating membrane scoring functions" << std::endl;
            score_stage1_ = ScoreFunctionFactory::create_score_function( “score0_membrane” );
            score_stage2_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            //score_stage2_ = ScoreFunctionFactory::create_score_function( “score2” );
            score_stage3a_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            score_stage3b_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            score_stage4_ = ScoreFunctionFactory::create_score_function( “score_membrane” );

            }

            Change to:
            void MembraneAbinitio::set_default_scores() {
            using namespace scoring;
            using namespace basic::options;
            using namespace basic::options::OptionKeys;
            tr.Debug << "creating membrane scoring functions" << std::endl;
            if ( option[ OptionKeys::abinitio::stage1_patch ].user() ) {
            score_stage1_ = ScoreFunctionFactory::create_score_function( “score0_membrane”, option[ OptionKeys::abinitio::stage1_patch ]() );
            } else {
            score_stage1_ = ScoreFunctionFactory::create_score_function( “score0_membrane” );
            }

            if ( option[ OptionKeys::abinitio::stage2_patch ].user() ) {
            score_stage2_ = ScoreFunctionFactory::create_score_function( “score_membrane”, option[ OptionKeys::abinitio::stage2_patch ]() );
            } else {
            score_stage2_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            }

            if ( option[ OptionKeys::abinitio::stage3a_patch ].user() ) {
            score_stage3a_ = ScoreFunctionFactory::create_score_function( “score_membrane”, option[ OptionKeys::abinitio::stage3a_patch ]() );
            } else {
            score_stage3a_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            }

            if ( option[ OptionKeys::abinitio::stage3b_patch ].user() ) {
            score_stage3b_ = ScoreFunctionFactory::create_score_function( “score_membrane”, option[ OptionKeys::abinitio::stage3b_patch ]() );
            } else {
            score_stage3b_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            }

            if ( option[ OptionKeys::abinitio::stage4_patch ].user() ) {
            score_stage4_ = ScoreFunctionFactory::create_score_function( “score_membrane”, option[ OptionKeys::abinitio::stage4_patch ]() );
            } else {
            score_stage4_ = ScoreFunctionFactory::create_score_function( “score_membrane” );
            }
            }

            After recompile and test run, I found the rdc patch is used during the protocol. You’ll see texts like this in the log:
            ===================================================================
            Stage 3
            Folding all inserted regions with score_membrane for 2000
            TMH : 000111111111111111111111000000000000000000000000002222222222222222222220
            SCORING : 111111111111111111111111111111111111111111111111111111111111111111111111
            MOVEMAP : 111111111111111111111111111111111111111111111111111111111111111111111111
            protocols.moves.MonteCarlo: (3) MonteCarlo:: last_accepted_score,lowest_score: -27.2431 -27.2431


            Scores Weight Raw Score Wghtd.Score


            vdw 3.000 0.237 0.710
            Mpair 1.000 -2.454 -2.454
            atom_pair_constraint 0.010 0.000 0.000
            rama 0.150 -9.265 -1.390
            Menv 2.019 -5.447 -10.997
            Mcbeta 2.500 -0.103 -0.258
            Menv_non_helix 2.019 0.000 0.000
            Menv_termini 2.019 0.000 0.000
            Menv_tm_proj 2.019 0.000 0.000
            Mlipo 1.000 -9.503 -9.503
            hs_pair 1.000 0.000 0.000
            ss_pair 1.000 0.000 0.000
            rsigma 1.000 0.000 0.000
            sheet 1.000 0.000 0.000
            rdc 0.010 3.299 0.033


            Total weighted score: -23.858

            However, the final score information in the scorefile and decoys files are scored without the rdc patch. I had to rescore with rdc patch using the score-jd2 application to get the correct scoring information.

            Yisong

        Viewing 2 reply threads
        • You must be logged in to reply to this topic.