Loading...
Searching...
No Matches
BALL::GenericMolFile Class Reference
Molecular Modeling » File Formats » Molecular structure file formats

`#include <BALL/FORMAT/genericMolFile.h>`

Inheritance diagram for BALL::GenericMolFile:

## Public Member Functions

Constructors and Destructors
| GenericMolFile ()
| GenericMolFile (const String &filename, File::OpenMode open_mode=std::ios::in)
virtual | ~GenericMolFile ()
virtual void | close ()
Assignment
const GenericMolFile & | operator= (const GenericMolFile &rhs)
void | defineInputAsTemporary (bool b=true)
void | enableOutputCompression (String zipped_filename)
bool | isCompressedFile ()
Reading and Writing of Kernel Datastructures
virtual bool | write (const System &system)
virtual bool | write (const Molecule &molecule)
virtual bool | read (System &system)
virtual Molecule * | read ()
Public Member Functions inherited from BALL::LineBasedFile
| LineBasedFile ()
| Default constructor.
| LineBasedFile (const String &filename, File::OpenMode open_mode=std::ios::in, bool trim_whitespaces=false)
void | clear ()
bool | operator== (const LineBasedFile &f)
bool | operator!= (const LineBasedFile &f)
const LineBasedFile & | operator= (const LineBasedFile &file)
Position | getLineNumber () const
| Get the last line number in the file.
const String & | getLine () const
| Return the current line.
String & | getLine ()
| Return the current line.
bool | readLine ()
bool | skipLines (Size number=1)
bool | search (const String &text, bool return_to_start=false)
bool | search (const String &text, const String &stop, bool return_to_start=false)
bool | gotoLine (Position line_number)
void | rewind ()
void | test (const char *file, int line, bool condition, const String &msg) const
String | getField (Index pos=0, const String &quotes="", const String &delimiters=String::CHARACTER_CLASS__WHITESPACE) const
bool | startsWith (const String &text) const
| Test if the current line starts with text.
bool | has (const String &text) const
| Return true if the current line contains text.
Index | switchString (const std::vector< String > &data) const
bool | parseColumnFormat (const char *format, Position index, Size length, void *arg)
void | enableTrimWhitespaces (bool state)
| Set wheter leading and trailing whitespaces in lines shall be removed.
bool | trimWhiteSpacesEnabled () const
Public Member Functions inherited from BALL::File
| File ()
| File (const String &name, OpenMode open_mode=std::ios::in)
virtual | ~File ()
bool | isValid () const
bool | open (const String &name, File::OpenMode open_mode=std::ios::in)
bool | reopen ()
bool | reopen (File::OpenMode open_mode)
void | close ()
const String & | getName () const
void | setName (const String &name)
const String & | getOriginalName () const
Size | getSize ()
File::OpenMode | getOpenMode () const
Type | getType (bool trace_link) const
bool | copyTo (const String &destination_name, Size buffer_size=4096)
bool | moveTo (const String &destination_name)
bool | remove ()
bool | renameTo (const String &new_path)
bool | truncate (Size size=0)
std::fstream & | getFileStream ()
TransformationManager & | getTransformationManager ()
const TransformationManager & | getTransformationManager () const
bool | operator== (const File &file) const
bool | operator!= (const File &file) const
bool | isOpen () const
bool | isClosed () const
bool | isAccessible () const
bool | isCanonized () const
bool | isReadable () const
bool | isWritable () const
bool | isExecutable () const

## Operators

bool | input_is_temporary_
bool | compress_output_
bool | gmf_is_closed_
String | zipped_filename_
virtual GenericMolFile & | operator>> (System &system)
virtual GenericMolFile & | operator<< (const System &system)
virtual GenericMolFile & | operator>> (Molecule &molecule)
virtual GenericMolFile & | operator<< (const Molecule &molecule)
virtual void | initRead_ ()
virtual void | initWrite_ ()

## Additional Inherited Members

Public Types inherited from BALL::File
typedef std::ios::openmode | OpenMode
enum | Transformation { TRANSFORMATION__EXEC = 1 , TRANSFORMATION__FILTER = 2 , TRANSFORMATION__URL = 3 }
enum | Type { TYPE__UNKNOWN = 0 , TYPE__DIRECTORY = 1 , TYPE__CHAR_SPECIAL_FILE = 2 , TYPE__BLOCK_SPECIAL_FILE = 3 , TYPE__REGULAR_FILE = 4 , TYPE__SYMBOLIC_LINK = 5 , TYPE__SOCKET = 6 , TYPE__FIFO_SPECIAL_FILE = 7 }
static Size | getSize (String name)
static Type | getType (String name, bool trace_link)
static bool | copy (String source_name, String destination_name, Size buffer_size=4096)
static bool | move (const String &source_name, const String &destination_name)
static bool | remove (String name)
static bool | rename (String old_path, String new_path)
static bool | truncate (String path, Size size=0)
static bool | createTemporaryFilename (String &temporary, const String &suffix=".TMP")
static void | enableTransformation (Transformation transformation)
static void | disableTransformation (Transformation transformation)
static bool | isTransformationEnabled (Transformation transformation)
static void | registerTransformation (const String &pattern, const String &exec)
static void | unregisterTransformation (const String &pattern)
static bool | isAccessible (String name)
static bool | isReadable (String name)
static bool | isWritable (String name)
static bool | isExecutable (String name)
Static Public Attributes inherited from BALL::File
static const OpenMode | MODE_IN
| Open for input (default).
static const OpenMode | MODE_OUT
| Open for output.
static const OpenMode | MODE_APP
| Append. Seek to end before each write operation.
static const OpenMode | MODE_BINARY
| Binary mode.
static const OpenMode | MODE_ATE
| Seek to end directly after opening.
static const OpenMode | MODE_TRUNC
| Truncate an existing file.
static const String | TRANSFORMATION_EXEC_PREFIX
| Prefix for filenames that are created through the execution of commands "exec:".
static const String | TRANSFORMATION_FILE_PREFIX
| Prefix for files (to mimick URL-like behavior) "file:".
static const String | TRANSFORMATION_FTP_PREFIX
| Prefix for FTP-transfers "ftp://".
static const String | TRANSFORMATION_HTTP_PREFIX
| Prefix for HTTP-transfer "http://".
String | line_
| buffer for the line in use
Position | line_number_
| line number in the file
bool | trim_whitespaces_
vector< char > | col_buffer_
| buffer for column parsing
String | name_
String | original_name_
OpenMode | open_mode_
bool | is_open_
bool | is_temporary_
static HashSet< String > | created_temp_filenames_
static TransformationManager | transformation_manager_
static Size | transformation_methods_

## Detailed Description

Base class for all molecule file format classes. This class provides an interface for all molecular structure formats (except for PDB files, due to their complex and capricious structure and contents).

  GenericMolFile supports two type of operations: reading/writing single molecules and reading/writing systems (i.e. collections of molecules).

  When reading molecules, the structures are read one at a time from the file in the order they are stored. In contrast, reading systems retrieves all structures contained in the file. For file formats that do not support multiple structure in a file (e.g. the MDL MOLFile ), those two operations are basically equivalent. A fundamental difference however is the fact that reading a molecule create a new molecule, whereas reading a system adds the molecules read to an existing instance of System . This implies that the system has to be cleared prior to reading a system if that incremental behaviour is not desired.

  The user interface of the class is mainly provided through the stream operator. A typical example for reading a structure from a HyperChem file might look as follows:

  \begin{verbatim} HINFile hinfile(filename); System S; hinfile >> S; \end{verbatim} This interface applies to all derived classes as well, so that file formats can be exchanged conveniently.

  GenericMolFile is derived from LineBasedFile since most molecular structure formats are line-based tagged formats, often containing Fortran-style formatted sections. LineBasedFile provides a number of convenient methods to parse that kind of format.

Definition at line 56 of file genericMolFile.h.

## Constructor & Destructor Documentation

## GenericMolFile() [1/2]

BALL::GenericMolFile::GenericMolFile | ( |  | ) |

Default constructor

## GenericMolFile() [2/2]

BALL::GenericMolFile::GenericMolFile | ( | const String & | filename,
|  | File::OpenMode | open_mode = std::ios::in )

Detailed constructor

Exceptions

  Exception::FileNotFound | if the file could not be opened

## ~GenericMolFile()

virtual BALL::GenericMolFile::~GenericMolFile | ( |  | ) |

virtual

Destructor

## Member Function Documentation

## close()

virtual void BALL::GenericMolFile::close | ( |  | ) |

virtual

Reimplemented in BALL::DockResultFile.

## defineInputAsTemporary()

void BALL::GenericMolFile::defineInputAsTemporary | ( | bool | b = true | ) |

Define the input file to be a temporary file (e.g. an unzipped file). In this case, the input file will be deleted when this GenericMolFile is closed.

## enableOutputCompression()

void BALL::GenericMolFile::enableOutputCompression | ( | String | zipped_filename | ) |

Enable compression of the output file. If enabled, the output-file will be gzip'ed. Output will be stored under the specified filename and the original (uncompressed) output file will be deleted.

## initRead_()

virtual void BALL::GenericMolFile::initRead_ | ( |  | ) |

protected virtual

Initialize internals for read. This method is called by the default implementation of read(System& system) . Its purpose is the initialization of internal members holding, for example, header information from the file. The default implementation provided is empty.

Reimplemented in BALL::GAMESSDatFile, BALL::GAMESSLogFile, and BALL::HINFile.

## initWrite_()

virtual void BALL::GenericMolFile::initWrite_ | ( |  | ) |

protected virtual

Initialize internals for write. Same functionality as initRead , but is called prior to writing a system.

## isCompressedFile()

bool BALL::GenericMolFile::isCompressedFile | ( |  | ) |

## operator<<() [1/2]

virtual GenericMolFile & BALL::GenericMolFile::operator<< | ( | const Molecule & | molecule | ) |

virtual

Stream operator for writing a system of molecules. Calls write()

Exceptions

  File::CannotWrite | if writing to the file failed

Reimplemented in BALL::PDBFile.

## operator<<() [2/2]

virtual GenericMolFile & BALL::GenericMolFile::operator<< | ( | const System & | system | ) |

virtual

Stream operator for writing a system of molecules. Calls write(const System& system) const .

Exceptions

  File::CannotWrite | if writing to the file failed

Reimplemented in BALL::PDBFile.

## operator=()

const GenericMolFile & BALL::GenericMolFile::operator= | ( | const GenericMolFile & | rhs | ) |

Assignment operator. Create a new object pointing to the same filename.

Exceptions

  Exception::FileNotFound | if the file could not be opened

## operator>>() [1/2]

virtual GenericMolFile & BALL::GenericMolFile::operator>> | ( | Molecule & | molecule | ) |

virtual

Stream operator for reading a molecule. Calls read()

Exceptions

  Exception::ParseError | if a syntax error was encountered

Reimplemented in BALL::PDBFile.

## operator>>() [2/2]

virtual GenericMolFile & BALL::GenericMolFile::operator>> | ( | System & | system | ) |

virtual

Stream operator for reading a system. Calls read(System&) .

Exceptions

  Exception::ParseError | if a syntax error was encountered

Reimplemented in BALL::PDBFile.

## read() [1/2]

virtual Molecule * BALL::GenericMolFile::read | ( |  | ) |

virtual

Read a molecule. This method will load the first (or the next, on subsequent invocation) molecule from the file. If the file format does not support multiple molecules, only the first call to read will be successful. This method will create an instance of molecule and its the user's responsibility to destroy that molecule.

Returns
  a pointer to a molecule, 0 if the file was not open, empty, or at its end

Exceptions

  Exception::ParseError | if the contents of the file could not be parsed

Reimplemented in BALL::AntechamberFile, BALL::DockResultFile, BALL::GAMESSDatFile, BALL::GAMESSLogFile, BALL::HINFile, BALL::KCFFile, BALL::MOL2File, BALL::MOLFile, BALL::MOPACOutputFile, BALL::PDBFile, BALL::SDFile, and BALL::XYZFile.

## read() [2/2]

virtual bool BALL::GenericMolFile::read | ( | System & | system | ) |

virtual

Read a system. This method will read all molecules contained in the file and add them to the system.

  The default implementation calls read() until false is returned and adds the molecules read to the system.

Returns
  true if anything could be read

Exceptions

  Exception::ParseError | if the file could not be parsed while reading a molecule

Reimplemented in BALL::AntechamberFile, BALL::GAMESSDatFile, BALL::GAMESSLogFile, BALL::HINFile, BALL::KCFFile, BALL::MOL2File, BALL::MOLFile, BALL::MOPACOutputFile, BALL::PDBFile, BALL::SDFile, and BALL::XYZFile.

## write() [1/2]

virtual bool BALL::GenericMolFile::write | ( | const Molecule & | molecule | ) |

virtual

Write a molecule. Repeated invocations of this method append molecules to the same file.

  The default implementation does nothing.

Exceptions

  File::CannotWrite | if writing to the file failed

Reimplemented in BALL::AntechamberFile, BALL::DockResultFile, BALL::GAMESSDatFile, BALL::GAMESSLogFile, BALL::HINFile, BALL::KCFFile, BALL::MOL2File, BALL::MOLFile, BALL::MOPACInputFile, BALL::PDBFile, BALL::SDFile, and BALL::XYZFile.

## write() [2/2]

virtual bool BALL::GenericMolFile::write | ( | const System & | system | ) |

virtual

Write the molecules of a system. If the file format does not support multiple molecules in a single file, a warning should be printed and only the first molecule should be stored.

  The default implementation iterates over the system and calls write(const Molecule& molecule)
  for each molecule.

Exceptions

  File::CannotWrite | if writing to the file failed

Reimplemented in BALL::AntechamberFile, BALL::GAMESSDatFile, BALL::GAMESSLogFile, BALL::HINFile, BALL::KCFFile, BALL::MOL2File, BALL::MOLFile, BALL::MOPACInputFile, BALL::PDBFile, BALL::SDFile, and BALL::XYZFile.

## Member Data Documentation

## compress_output_

bool BALL::GenericMolFile::compress_output_

protected

Definition at line 195 of file genericMolFile.h.

## gmf_is_closed_

bool BALL::GenericMolFile::gmf_is_closed_

protected

Definition at line 196 of file genericMolFile.h.

## input_is_temporary_

bool BALL::GenericMolFile::input_is_temporary_

protected

Definition at line 194 of file genericMolFile.h.

## zipped_filename_

String BALL::GenericMolFile::zipped_filename_

protected

Definition at line 197 of file genericMolFile.h.