29 #include <ObjexxFCL/format.hh>
32 #include <utility/vector1.fwd.hh>
34 #include <utility/vector1.hh>
41 using namespace kinematics;
51 using namespace chemical;
56 for (
Size seqpos = 1; seqpos <= sequence.length(); ++seqpos ) {
57 char aa = sequence[seqpos-1];
61 ResidueType const & rsd_type( *(rsd_type_list[ best_index ]) );
68 for (
Size i = 1; i<=n; i++ ) {
69 data_.push_back( SRFD->clone() );
76 for (
Size pos = 1; pos<=
size(); pos++ ) {
77 fd->data_[pos] =
data_[pos]->clone();
86 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it, ++pos ) {
88 if ( pos > end )
break;
90 if ( !(*it)->is_applicable( mm, pos ) )
continue;
91 if ( !(*it)->apply( mm, pose, pos ) )
continue;
101 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it, ++pos ) {
102 if ( pos > end )
break;
103 if ( !(*it)->apply( pose, pos ) )
continue;
117 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it, ++ipos ) {
119 if ( !(*it)->is_applicable( mm, ipos, frame ) )
continue;
120 if ( !(*it)->apply( mm, pose, ipos, frame ) )
continue;
131 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it, ++ipos ) {
133 if ( !(*it)->apply( pose, ipos, frame ) )
continue;
143 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it, ++ipos ) {
144 if ( !(*it)->is_applicable( mm, ipos, frame ) )
continue;
145 if ( !(*it)->apply_ss( ss, ipos, frame ) )
continue;
153 Size insert_size( 0 );
155 for (
Size pos=start; pos<=
end; pos++ ) {
168 Size insert_size( 0 );
177 bool success(
true );
178 for (
Size pos=start; pos<=
end; pos++) {
179 runtime_assert( start > 0 );
181 success = success &&
data_[ pos-start+1 ]->steal( pose, pos );
193 bool success(
true );
195 runtime_assert( frame.
seqpos( j ) > 0 );
197 success = success &&
data_[ j ]->steal( pose, j, frame );
204 runtime_assert( stop >= start );
205 runtime_assert( stop <=
size() );
207 for (
Size pos = start; pos<=
stop; pos++ ) {
208 new_frag->add_residue(
data_[ pos ] );
210 new_frag->set_valid();
215 if ( frag_data.
size() !=
size() )
return false;
216 for ( SRFD_List::const_iterator it1=
data_.begin(), it2=frag_data.
data_.begin(), eit1=
data_.end(); it1!=eit1; ++it1,++it2 ) {
218 if ( ! (*it1)->is_compatible( **it2 ) )
return false;
226 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it ) {
227 os << ObjexxFCL::fmt::RJ( 10, frame.
seqpos( i++ ) ) <<
" " << ObjexxFCL::fmt::RJ( 5,
pdbpos() ) <<
" " <<
pdbid() <<
" ";
234 os <<
"EMPTY TEMPLATE" << std::endl;
241 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it ) {
242 os << ObjexxFCL::fmt::RJ( 10, i++ ) <<
" " << ObjexxFCL::fmt::RJ( 5,
pdbpos() ) <<
" " <<
pdbid() <<
" " ;
247 os <<
"EMPTY_TEMPLATE" << std::endl;
252 for ( SRFD_List::const_iterator it=
data_.begin(), eit=
data_.end(); it!=eit; ++it ) {
253 os <<
" 1xxx X 111 ";