18 #include <basic/Tracer.hh>
21 #include <utility/exit.hh>
27 namespace frag_picker {
31 static basic::Tracer
tracer(
"protocols.frag_picker.TorsionBinIO");
34 bin_names_.push_back(
'A' );
35 bin_names_.push_back(
'B' );
36 bin_names_.push_back(
'E' );
37 bin_names_.push_back(
'G' );
38 bin_names_.push_back(
'O' );
47 using std::istringstream;
50 getline( input, line );
51 tracer.Debug <<
"read header " << line << std::endl;
55 while( getline( input, line ) ) {
56 if ( line.substr(0,1) ==
"#" )
continue;
57 istringstream line_stream( line );
58 tracer.Debug <<
"line " << line << std::endl;
66 for (
Size ii = 1, n_bins = bin_names_.size(); ii <= n_bins; ++ii ) {
67 line_stream >> per_residue_probs[ii];
69 if ( line_stream.fail() ) {
70 utility_exit_with_message(
"Error reading in TorsionBinIO::read()!" );
72 runtime_assert( per_residue_probs.size() == bin_names_.size() );
73 probs_.push_back( per_residue_probs );
83 end = bin_names_.end(); it !=
end; ++it
86 if ( it + 1 !=
end ) output <<
' ';
92 row_end = probs_.end(); row_it != row_end; ++row_it
94 output << seq_idx <<
' ' << sequence_[seq_idx-1] <<
' ';
96 end = row_it->end(); it !=
end; ++it
99 if ( it + 1 !=
end ) output <<
' ';
108 runtime_assert( idx <= probs_.size() );
109 return probs_[ idx ];
117 return probs_.size();