38 #include <numeric/random/random.hh>
42 #include <utility/exit.hh>
43 #include <utility/file/FileName.hh>
44 #include <utility/io/izstream.hh>
45 #include <utility/string_util.hh>
53 #include <utility/vector1.hh>
58 static numeric::random::RandomGenerator
RG(86979347);
74 PositionDdGInfo::~PositionDdGInfo(){}
79 PositionDdGInfo::add_mutation_ddG(
84 std::map< core::chemical::AA, core::Real >::iterator map_it =
mutation_ddGs_.find( aa );
86 mutation_ddGs_.insert( std::pair< core::chemical::AA, core::Real >(aa, ddG) );
88 else map_it->second = ddG;
91 const std::map< core::Size, PositionDdGInfoOP >
95 utility::io::izstream data( filename.c_str() );
96 if ( !data ) utility_exit_with_message(
"File "+filename+
"could not be opened.");
97 std::map< core::Size, PositionDdGInfoOP > to_return;
99 while( !data.eof() ) {
105 if( tokens.size() < 2 )
continue;
107 core::Size mutaaloc( mutstring.length() - 1 );
109 std::string mut_res = mutstring.substr(mutaaloc, 1 );
110 std::string string_seqpos( mutstring.substr(1, mutaaloc - 1 ) );
111 core::Size mut_seqpos( atoi( string_seqpos.c_str() ));
119 std::map< core::Size, PositionDdGInfoOP >::iterator muts_it( to_return.find( mut_seqpos ));
120 if( muts_it == to_return.end() ){
122 to_return.insert( std::pair< core::Size, PositionDdGInfoOP >( mut_seqpos, pos_info ) );
123 muts_it = to_return.find( mut_seqpos );
125 muts_it->second->add_mutation_ddG( mut_aa, ddG );