You are here

membrane ab initio modeling application with constraints

3 posts / 0 new
Last post
membrane ab initio modeling application with constraints
#1

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

Post Situation: 
Thu, 2012-11-08 11:56
ytao

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/d... ) 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/d... ) is the only documentation I found.

Fri, 2012-11-09 11:02
rmoretti

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

Sat, 2012-12-01 09:16
ytao