43 #include <basic/Tracer.hh>
45 #include <utility/vector1.hh>
46 #include <utility/string_util.hh>
55 #include <basic/options/keys/OptionKeys.hh>
61 namespace comparative_modeling {
63 static basic::Tracer
tr(
"protocols.comparative_modeling.extra_threading");
70 protocols::moves::
Mover(
"ExtraThreadingMover" ),
73 template_pose_( template_pose ),
75 residue_selection_(residue_selection)
100 using namespace core::id;
101 using namespace core::sequence;
117 aligned_template->ungapped_sequence(),
118 aligned_template->id() +
"_align_seq",
119 aligned_template->start()
126 aligned_template->id() +
"_pdb_seq",
136 tr.Debug <<
"query sequence : " << query_pose.
sequence() << std::endl;
137 tr.Debug <<
"query sequence : " << (*query_sequence) << std::endl;
138 tr.Debug <<
"aligned_template : " << (*aligned_template) << std::endl;
139 tr.Debug <<
"template_sequence (aln): " << (*t_align_seq) << std::endl;
140 tr.Debug <<
"template_sequence (pdb): " << (*t_pdb_seq) << std::endl;
144 if ( intermediate.identities() != intermediate.length() ) {
145 tr.Warning <<
"Error: potential mismatch between sequence from alignment ";
146 tr.Warning <<
" and sequence from PDB!" << std::endl;
147 tr.Warning <<
"alignment: " << std::endl << intermediate
158 query_to_fullseq.show(
tr.Debug );
165 query_to_fullseq, intermed_map
167 tr.Debug <<
"Transitive Map" << std::endl;
168 query_to_pdbseq.show(
tr.Debug );
170 return query_to_pdbseq;
182 using namespace basic::options;
183 using namespace basic::options::OptionKeys;
188 mapping.show(
tr.Debug );
198 Size const templ_ii( mapping[ii] );
199 if ( templ_ii == 0 )
continue;
204 atom_map.set( id1, id2 );
214 std::map< Size, Size > template_to_query_res;
222 bool append_by_jump(
true);
225 typedef std::map< Size, Size >::const_iterator map_iter;
226 for ( map_iter m_iter = template_to_query_res.begin(), m_end = template_to_query_res.end(); m_iter != m_end; ++m_iter ) {
228 if ( template_res.is_bonded( partner_res ) ) {
231 append_by_jump =
false;
235 if ( append_by_jump ) {
248 return "ExtraThreadingMover";