MantisBT - Rosetta
View Issue Details
0000230Rosetta[All Projects] Crashpublic2013-03-25 09:052013-04-11 15:14
loop_model -perturb perturb_ccd
0000230: LoopMover_CCD (perturb_CCD) does not allow terminal loops; appears to be typo [^]

The line of code in question:
    runtime_assert( !loop.is_terminal( pose ) || pose.fold_tree().is_cutpoint( loop_cut ) );

I think this is a bug and is_terminal should not be negated...there are several other is_terminal checks in this code that all suggest the Mover works just fine with terminal loops; Tim agrees.
No tags attached.
related to 0000249new  -select_best_loops_from associated with ludicrous models (user report for 3.4) 
Issue History
2013-03-25 09:05smlewisNew Issue
2013-03-25 09:05smlewisStatusnew => assigned
2013-03-25 09:05smlewisAssigned To => smlewis
2013-03-25 09:56smlewisNote Added: 0000215
2013-03-25 10:38smlewisNote Added: 0000216
2013-03-25 10:38smlewisAssigned Tosmlewis =>
2013-03-25 10:39smlewisNote Added: 0000217
2013-03-25 10:39smlewisAssigned To => smlewis
2013-03-25 10:39smlewisStatusassigned => new
2013-04-11 15:14smlewisRelationship addedrelated to 0000249

2013-03-25 09:56   
It appears that with an invalid cutpoint, the cutpoint auto-setter picks the thing that is already a cutpoint (the terminus), which normally lets this assert pass - except that the downstream code never actually modifies the loop. (oops.)

With a valid (but unused) cutpoint, the assertion fails.
2013-03-25 10:38   
After repairing the assertion, the code appears to simply do nothing. I modified the 4fxn-based ccd-based loop_closure test (including changing to -loops:remodel perturb_ccd from quick_ccd) to use a terminal loop...but "for all fragments" loop

for ( std::vector< FragmentMoverOP >::const_iterator it = fragmover.begin(),it_end = fragmover.end(); it != it_end; it++ ) {

never gets entered for some reason.
2013-03-25 10:39