Rosetta Core  2014.35
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::io::silent::SilentFileData Class Reference

Abstract base class for classes that read and write different types of silent-files. Silent-files can contain SilentStruct objects which are expected, to be uniquely identified by some sort of string-based tag inside the file. More...

#include <SilentFileData.hh>

Classes

class  const_iterator
 const_iterator class for SilentFileData container. More...
 
class  iterator
 Iterator class for SilentFileData container. More...
 

Public Member Functions

 SilentFileData ()
 
 SilentFileData (std::string const &filename)
 
 SilentFileData (const std::string &filename, bool store_argv_in_file, bool strict_column_mode, const std::string &silent_struct_type)
 
bool read_file (std::string const &filename)
 Read in the SilentStruct objects contained in the given filename. this version will throw an exception if things go wrong (boolean return value is thus always true) More...
 
bool _read_file (std::string const &filename, bool throw_exception_on_bad_structs=false)
 Read in the SilentStruct objects contained in the given filename. this version returns with a boolean to tell you about success. More...
 
bool read_file (std::string const &filename, utility::vector1< std::string > const &tags)
 Read in the SilentStruct objects contained in the given filename. Ignore any SilentStruct with a tag not in the tags vector. throw an exception if things go wrong (returned boolean always true) More...
 
bool read_stream (std::istream &data, utility::vector1< std::string > const &tags, bool throw_exception_on_bad_structs, std::string filename="read_from_stream")
 
bool _read_file (std::string const &filename, utility::vector1< std::string > const &tags, bool throw_exception_on_bad_structs=false)
 Read in the SilentStruct objects contained in the given filename. Ignore any SilentStruct with a tag not in the tags vector. returns with a boolean to tell about success. More...
 
bool store_argv_in_file () const
 Returns true if this silent-file plans on storing option.get_argv() as a comment in the silent-file, false otherwise. More...
 
void store_argv_in_file (bool new_setting)
 Sets a boolean variable governing if this silent-file plans on storing option.get_argv() as a comment in the silent-file. More...
 
bool write_silent_struct (SilentStruct &s, std::string const &filename, bool bWriteScoreOnly=false) const
 Write the given silent-struct to the given outfile. More...
 
bool _write_silent_struct (SilentStruct &s, std::ostream &out, bool bWriteScoreOnly=false) const
 Write the given silent-struct, including the header, to the given ostream. More...
 
bool write_silent_struct (SilentStruct &s, std::ostream &out, bool bWriteScoreOnly=false) const
 Write the given silent-struct, minus the header, to the given ostream. More...
 
void write_comment (std::ostream &out, std::string const &line) const
 Write a comment to the given output stream. More...
 
Size size () const
 Returns the number of structures contained in this container. More...
 
int nres () const
 Returns the number of residues in the first structure in this object. Not guaranteed to be fixed for all structures in this container. More...
 
void set_filename (std::string filename)
 Sets the filename that this SilentFileData object will write to. More...
 
SilentStructOP operator[] (std::string tag)
 
std::string const & filename () const
 Gets the filename that this SilentFileData object will write to. More...
 
utility::vector1< std::string > tags () const
 Return all tags in this container. More...
 
utility::vector1< std::string > read_tags_fast (std::string const &filename) const
 quickly read a list of tags from a silent-input file. Only checks lines beginning with SCORE: strings. More...
 
bool setup_include_patches (std::string const &filename) const
 
utility::vector1< SilentStructOPstructure_list ()
 Function to access the vector of silent structure owning pointers ordered as they were in the input file. More...
 
void setup_extra_patches (utility::vector1< std::string > &all_patches) const
 
bool read_tags_fast (std::string const &filename, utility::vector1< std::string > &) const
 quickly read a list of tags from a silent-input file. Only checks lines beginning with SCORE: strings. More...
 
bool matched_tags (std::string const &expression, std::string const &mode, utility::vector1< std::string > &tags_in_file) const
 return mode=first,last,all matched tags – currently matching 'expression*' to tags in file, boost::regexp possible later More...
 
bool strict_column_mode () const
 Returns a boolean indicating whether or not the strict_column_mode is turned on when printing scores. More...
 
void strict_column_mode (bool new_mode)
 Sets value for strict column mode. See strict_column_mode() for more information. More...
 
void set_record_source (bool const &new_mode)
 
bool has_tag (std::string const &tag) const
 Returns true if we have a SilentStruct matching the given tag, false otherwise. More...
 
utility::vector1< std::string > comment_lines ()
 Returns a vector1 of the comment lines read in from a silent-file. Comment lines are any lines in the silent-file beginning with a # character. More...
 
void comment_line (std::string const &line)
 Adds a comment-line that will be printed in write_all method. Comment lines are simply lines in the silent-file that begin with the # character, and are printed in the write_all method. More...
 
void score_filter (Real const score_fraction)
 Removes the worst ( 1 - score_fraction ) percent of the decoys by score. The value of score_fraction should be between 0 and 1.0. More...
 
void reverse_score_filter (Real const score_fraction)
 
void order_by_energy ()
 Orders silent structs by energy. More...
 
void add_structure_replace_tag_if_necessary (SilentStructOP &new_struct)
 
void add_structure (SilentStructOP const &new_struct)
 Adds a SilentStructOP to the structure_map_. If the SilentStruct's tag already exists in the structure_map_, a new tag is assigned. Careful with this method, as it stores an owning pointer. If you change the SilentStruct later, it will change your already stored structures. More...
 
void push_back (SilentStructOP const &new_struct)
 push_back to provide compatibility with other std containers. More...
 
void add_structure (SilentStruct const &new_struct)
 Saves a copy of the silent struct. This method is: More...
 
SilentStruct const & get_structure (const std::string &tag) const
 Return a SilentStruct referred to by the given tag. Assumes that we have checked the tag!! More...
 
void clear_structure_map ()
 Remove all of the SilentStruct objects from this object. More...
 
void clear ()
 Clears all of the data associated with this object. More...
 
virtual ~SilentFileData ()
 Destructor. More...
 
void write_all (std::string const &filename, bool bWriteScoreOnly=false) const
 write all SilentStruct objects in the structure_map_ to the given filename. More...
 
void renumber_all_decoys ()
 renumber all of the decoys in this SilentFileData object. This obliterates decoy tag associated with every SilentStruct object, and tries to sensibly number the decoys with similar and increasingly numbered decoy tags. More...
 
SilentStructOP create_SilentStructOP ()
 creates a SilentStructOP using command-line options. Just a wrapper around SilentStructFactory::get_instance()->get_silent_struct_in(). More...
 
SharedSilentDataOP get_shared_silent_data (SharedSilentDataType ssdt) const
 SharedSilentData methods. More...
 
void set_shared_silent_data (SharedSilentDataType ssdt, SharedSilentDataOP ssd_op) const
 
bool has_shared_silent_data (SharedSilentDataType ssdt) const
 
iterator begin ()
 Returns an iterator to the start of the members of this container. More...
 
const_iterator begin () const
 Returns an iterator to the start of the members of this container. More...
 
iterator end ()
 Returns an iterator to the end of the members of this container. More...
 
const_iterator end () const
 Returns an iterator to the end of the members of this container. More...
 
iterator get_iterator_for_tag (const std::string &tag)
 
const_iterator get_iterator_for_tag (const std::string &tag) const
 

Private Member Functions

bool read_silent_struct_type_from_remark (std::string const &line, bool header=false)
 
bool check_if_rna_from_sequence_line (std::string const &sequence_line)
 This is somewhat redundant if the silent file has a "REMARK RNA" line, but some older silent files didn't do that. More...
 

Private Attributes

Structure_Map structure_map_
 mapping from tags to structure data pointers More...
 
utility::vector1< SilentStructOPstructure_list_
 mapping from index in a silent file to data pointers, for situations in which the ordering in the file matters. More...
 
utility::vector1< std::string > comment_lines_
 
std::map< SharedSilentDataType,
SharedSilentDataOP
shared_silent_data_
 
std::string filename_
 
bool store_argv_in_file_
 
bool strict_column_mode_
 
bool record_source_
 
std::string silent_struct_type_
 

Detailed Description

Abstract base class for classes that read and write different types of silent-files. Silent-files can contain SilentStruct objects which are expected, to be uniquely identified by some sort of string-based tag inside the file.

Constructor & Destructor Documentation

core::io::silent::SilentFileData::SilentFileData ( )
inline
core::io::silent::SilentFileData::SilentFileData ( std::string const &  filename)
inline
core::io::silent::SilentFileData::SilentFileData ( const std::string &  filename,
bool  store_argv_in_file,
bool  strict_column_mode,
const std::string &  silent_struct_type 
)
inline
core::io::silent::SilentFileData::~SilentFileData ( )
virtual

Destructor.

References clear_structure_map().

Member Function Documentation

bool core::io::silent::SilentFileData::_read_file ( std::string const &  filename,
bool  throw_exception_on_bad_structs = false 
)

Read in the SilentStruct objects contained in the given filename. this version returns with a boolean to tell you about success.

References option, read_tags_fast(), core::io::silent::RG, runtime_assert, in::file::silent_select_random, in::file::silent_select_range_len, in::file::silent_select_range_mul, in::file::silent_select_range_start, core::io::silent::tr, and user.

Referenced by read_file().

bool core::io::silent::SilentFileData::_read_file ( std::string const &  filename,
utility::vector1< std::string > const &  tags,
bool  throw_exception_on_bad_structs = false 
)

Read in the SilentStruct objects contained in the given filename. Ignore any SilentStruct with a tag not in the tags vector. returns with a boolean to tell about success.

References read_stream(), setup_include_patches(), and utility_exit_with_message.

bool core::io::silent::SilentFileData::_write_silent_struct ( SilentStruct s,
std::ostream &  out,
bool  bWriteScoreOnly = false 
) const

Write the given silent-struct, including the header, to the given ostream.

Unlike write_silent_struct(), this method writes both the header and the body of the silent file to the given stream. Therefore this is probably the more appropriate method to use in high-level codes.

References core::io::silent::SilentStruct::print_header(), and write_silent_struct().

void core::io::silent::SilentFileData::add_structure ( SilentStructOP const &  new_struct)

Adds a SilentStructOP to the structure_map_. If the SilentStruct's tag already exists in the structure_map_, a new tag is assigned. Careful with this method, as it stores an owning pointer. If you change the SilentStruct later, it will change your already stored structures.

References add_structure_replace_tag_if_necessary(), has_tag(), structure_list_, structure_map_, and core::io::silent::tr.

Referenced by add_structure(), add_structure_replace_tag_if_necessary(), push_back(), and read_stream().

void core::io::silent::SilentFileData::add_structure ( SilentStruct const &  new_struct)

Saves a copy of the silent struct. This method is:

  • SAFE! in the sense that it actually copies the SilentStruct object, not just the pointer to the object.
  • SLOW! in the sense that copying the object takes a small amount of time.

References add_structure(), and core::io::silent::SilentStruct::clone().

void core::io::silent::SilentFileData::add_structure_replace_tag_if_necessary ( SilentStructOP new_struct)
iterator core::io::silent::SilentFileData::begin ( )
inline
const_iterator core::io::silent::SilentFileData::begin ( ) const
inline

Returns an iterator to the start of the members of this container.

References structure_map_.

bool core::io::silent::SilentFileData::check_if_rna_from_sequence_line ( std::string const &  sequence_line)
private

This is somewhat redundant if the silent file has a "REMARK RNA" line, but some older silent files didn't do that.

References l, sequence, and silent_struct_type_.

Referenced by read_stream().

void core::io::silent::SilentFileData::clear ( )
inline
void core::io::silent::SilentFileData::clear_structure_map ( )
inline

Remove all of the SilentStruct objects from this object.

References structure_list_, and structure_map_.

Referenced by clear(), renumber_all_decoys(), and ~SilentFileData().

void core::io::silent::SilentFileData::comment_line ( std::string const &  line)
inline

Adds a comment-line that will be printed in write_all method. Comment lines are simply lines in the silent-file that begin with the # character, and are printed in the write_all method.

References comment_lines_.

utility::vector1< std::string > core::io::silent::SilentFileData::comment_lines ( )
inline

Returns a vector1 of the comment lines read in from a silent-file. Comment lines are any lines in the silent-file beginning with a # character.

References comment_lines_.

SilentStructOP core::io::silent::SilentFileData::create_SilentStructOP ( )
iterator core::io::silent::SilentFileData::end ( )
inline
const_iterator core::io::silent::SilentFileData::end ( ) const
inline

Returns an iterator to the end of the members of this container.

References structure_map_.

std::string const& core::io::silent::SilentFileData::filename ( ) const
inline

Gets the filename that this SilentFileData object will write to.

References filename_.

Referenced by matched_tags(), read_stream(), and set_filename().

iterator core::io::silent::SilentFileData::get_iterator_for_tag ( const std::string &  tag)
inline

References structure_map_.

const_iterator core::io::silent::SilentFileData::get_iterator_for_tag ( const std::string &  tag) const
inline

References structure_map_.

SharedSilentDataOP core::io::silent::SilentFileData::get_shared_silent_data ( SharedSilentDataType  ssdt) const
SilentStruct const& core::io::silent::SilentFileData::get_structure ( const std::string &  tag) const
inline

Return a SilentStruct referred to by the given tag. Assumes that we have checked the tag!!

References structure_map_.

bool core::io::silent::SilentFileData::has_shared_silent_data ( SharedSilentDataType  ssdt) const

References shared_silent_data_.

Referenced by write_silent_struct().

bool core::io::silent::SilentFileData::has_tag ( std::string const &  tag) const
inline

Returns true if we have a SilentStruct matching the given tag, false otherwise.

References structure_map_.

Referenced by add_structure(), add_structure_replace_tag_if_necessary(), and operator[]().

bool core::io::silent::SilentFileData::matched_tags ( std::string const &  expression,
std::string const &  mode,
utility::vector1< std::string > &  tags_in_file 
) const

return mode=first,last,all matched tags – currently matching 'expression*' to tags in file, boost::regexp possible later

References filename(), getline(), utility::io::izstream::good(), l, core::io::silent::tr, and utility_exit_with_message.

int core::io::silent::SilentFileData::nres ( ) const

Returns the number of residues in the first structure in this object. Not guaranteed to be fixed for all structures in this container.

References begin().

SilentStructOP core::io::silent::SilentFileData::operator[] ( std::string  tag)
void core::io::silent::SilentFileData::order_by_energy ( )

Orders silent structs by energy.

References begin(), end(), structure_list_, and structure_map_.

void core::io::silent::SilentFileData::push_back ( SilentStructOP const &  new_struct)
inline

push_back to provide compatibility with other std containers.

References add_structure().

bool core::io::silent::SilentFileData::read_file ( std::string const &  filename)

Read in the SilentStruct objects contained in the given filename. this version will throw an exception if things go wrong (boolean return value is thus always true)

References _read_file(), and option.

Referenced by core::import_pose::pose_stream::LazySilentFilePoseInputStream::fill_pose(), and core::import_pose::pose_stream::LazySilentFilePoseInputStream::LazySilentFilePoseInputStream().

bool core::io::silent::SilentFileData::read_file ( std::string const &  filename,
utility::vector1< std::string > const &  tags 
)

Read in the SilentStruct objects contained in the given filename. Ignore any SilentStruct with a tag not in the tags vector. throw an exception if things go wrong (returned boolean always true)

References _read_file(), and option.

bool core::io::silent::SilentFileData::read_silent_struct_type_from_remark ( std::string const &  line,
bool  header = false 
)
private

The first remarks line in a silent file block described the type of silent file that is comming. For example,

References option, in::file::residue_type_set, silent_struct_type_, and core::io::silent::tr.

Referenced by read_stream().

bool core::io::silent::SilentFileData::read_stream ( std::istream &  data,
utility::vector1< std::string > const &  tags,
bool  throw_exception_on_bad_structs,
std::string  filename = "read_from_stream" 
)
utility::vector1< std::string > core::io::silent::SilentFileData::read_tags_fast ( std::string const &  filename) const

quickly read a list of tags from a silent-input file. Only checks lines beginning with SCORE: strings.

Referenced by _read_file(), and core::io::silent::initialize_tag_is_done().

bool core::io::silent::SilentFileData::read_tags_fast ( std::string const &  filename,
utility::vector1< std::string > &  tags_in_file 
) const

quickly read a list of tags from a silent-input file. Only checks lines beginning with SCORE: strings.

References getline(), l, tag, and utility_exit_with_message.

void core::io::silent::SilentFileData::renumber_all_decoys ( )

renumber all of the decoys in this SilentFileData object. This obliterates decoy tag associated with every SilentStruct object, and tries to sensibly number the decoys with similar and increasingly numbered decoy tags.

References clear_structure_map(), structure_list_, and structure_map_.

void core::io::silent::SilentFileData::reverse_score_filter ( Real const  score_fraction)
void core::io::silent::SilentFileData::score_filter ( Real const  score_fraction)

Removes the worst ( 1 - score_fraction ) percent of the decoys by score. The value of score_fraction should be between 0 and 1.0.

References begin(), end(), reverse_score_filter(), runtime_assert, structure_list_, structure_map_, core::io::silent::tr, and utility_exit_with_message.

void core::io::silent::SilentFileData::set_filename ( std::string  filename)
inline

Sets the filename that this SilentFileData object will write to.

References filename(), and filename_.

void core::io::silent::SilentFileData::set_record_source ( bool const &  new_mode)
inline

References record_source_.

void core::io::silent::SilentFileData::set_shared_silent_data ( SharedSilentDataType  ssdt,
SharedSilentDataOP  ssd_op 
) const
void core::io::silent::SilentFileData::setup_extra_patches ( utility::vector1< std::string > &  all_patches) const
bool core::io::silent::SilentFileData::setup_include_patches ( std::string const &  filename) const
Size core::io::silent::SilentFileData::size ( ) const
inline

Returns the number of structures contained in this container.

References structure_map_.

bool core::io::silent::SilentFileData::store_argv_in_file ( ) const
inline

Returns true if this silent-file plans on storing option.get_argv() as a comment in the silent-file, false otherwise.

References store_argv_in_file_.

Referenced by write_silent_struct().

void core::io::silent::SilentFileData::store_argv_in_file ( bool  new_setting)
inline

Sets a boolean variable governing if this silent-file plans on storing option.get_argv() as a comment in the silent-file.

References store_argv_in_file_.

bool core::io::silent::SilentFileData::strict_column_mode ( ) const
inline

Returns a boolean indicating whether or not the strict_column_mode is turned on when printing scores.

Detailed: If strict_column_mode() is true, then the first SilentStruct
printed to this SilentFileData object sets the EnergyNames that will be printed for all other SilentStruct objects. Extra EnergyNames in subsequent SilentStruct objects are ignored. If new objects are missing energies that should be printed in strict_column_mode, missing energy values are set to zero. In !strict_column_mode(), when each SilentStruct is printed, a new SCORE: header is printed if energies differ from last printed SilentStruct.

References strict_column_mode_.

Referenced by write_silent_struct().

void core::io::silent::SilentFileData::strict_column_mode ( bool  new_mode)
inline

Sets value for strict column mode. See strict_column_mode() for more information.

References strict_column_mode_.

utility::vector1<SilentStructOP> core::io::silent::SilentFileData::structure_list ( )
inline

Function to access the vector of silent structure owning pointers ordered as they were in the input file.

References structure_list_.

utility::vector1< std::string > core::io::silent::SilentFileData::tags ( ) const

Return all tags in this container.

References structure_map_.

void core::io::silent::SilentFileData::write_all ( std::string const &  filename,
bool  bWriteScoreOnly = false 
) const

write all SilentStruct objects in the structure_map_ to the given filename.

References begin(), end(), utility::io::ozstream::open_append_if_existed(), output, and write_silent_struct().

void core::io::silent::SilentFileData::write_comment ( std::ostream &  out,
std::string const &  line 
) const

Write a comment to the given output stream.

Referenced by write_silent_struct().

bool core::io::silent::SilentFileData::write_silent_struct ( SilentStruct s,
std::string const &  filename,
bool  bWriteScoreOnly = false 
) const
bool core::io::silent::SilentFileData::write_silent_struct ( SilentStruct s,
std::ostream &  out,
bool  bWriteScoreOnly = false 
) const

Write the given silent-struct, minus the header, to the given ostream.

Note that this method does not write the header to the given stream. As such, I would guess that method is meant for internal use only, even though it isn't declared as private. If you want to write a complete silent file to a stream, use the _write_silent_struct() method instead.

References core::io::silent::EnergyNames::energy_names(), core::io::silent::SilentStruct::energy_names(), core::io::silent::energynames, get_shared_silent_data(), has_shared_silent_data(), option, core::io::silent::SilentStruct::print_conformation(), core::io::silent::SilentStruct::print_header(), core::io::silent::SilentStruct::print_residue_numbers(), core::io::silent::SilentStruct::print_scores(), set_shared_silent_data(), core::io::silent::SilentStruct::set_valid_energies(), out::file::silent_print_all_score_headers, and strict_column_mode().

Member Data Documentation

utility::vector1< std::string > core::io::silent::SilentFileData::comment_lines_
private
std::string core::io::silent::SilentFileData::filename_
private

Referenced by clear(), filename(), and set_filename().

bool core::io::silent::SilentFileData::record_source_
private

Referenced by read_stream(), and set_record_source().

std::map< SharedSilentDataType, SharedSilentDataOP > core::io::silent::SilentFileData::shared_silent_data_
mutableprivate
std::string core::io::silent::SilentFileData::silent_struct_type_
private
bool core::io::silent::SilentFileData::store_argv_in_file_
private

Referenced by clear(), and store_argv_in_file().

bool core::io::silent::SilentFileData::strict_column_mode_
private

Referenced by clear(), and strict_column_mode().

utility::vector1< SilentStructOP > core::io::silent::SilentFileData::structure_list_
private

mapping from index in a silent file to data pointers, for situations in which the ordering in the file matters.

Referenced by add_structure(), clear_structure_map(), order_by_energy(), renumber_all_decoys(), reverse_score_filter(), score_filter(), and structure_list().

Structure_Map core::io::silent::SilentFileData::structure_map_
private

The documentation for this class was generated from the following files: