/// \mainpage PDB-Analyzer
///
/// PDB-Analyzer is a group of procedures, whose aim is to extract high-level
/// information from the detailed results of molecular simulations saved in PDB format.
///
/// Installation:
/// 1) put all source and include files into a directory
/// 2) run the compilation scripts make_hb-cluster.bat, make_hb-degree.bat,
///    make_hb-fs.bat, make_hb-time.bat, make_snaptree.bat (or simply compile
///    and link the code with GCC)
/// 3) prepare a configuration file named "configurazione.txt"
/// 4) run the desired executable
///
/// Each executable, launched with no parameter, describes the correct command line.
///
/// 1) HB-CLUSTER: determines the clusters of residuals linked by hydrogen bonds,
///    considering only the bonds between residuals in the first shell and residuals
///    in the first or second shell
///
///    It requires:
///    a) the name of a data file in PDB format
///    b) a parameter -pdb or -log
///    c) the name of an output file
///
///    The second parameter determines whether the output file will be
///    -pdb) a file in PDB format with the atoms sorted by increasing cluster index
///    -log) a verbose log file providing the list of all clusters, residuals, hydrogen bonds, atom, etc...
///
///    Example:
///    hb-cluster urea.1 -pdb urea.pdb
///    hb-cluster urea.1 -log urea.log
///
///
/// 2) HB-FS: provides the number of water residuals in first shell,
///    distinguishing those which are bonded to solutes and those which are bonded to other water residuals
///
///    It requires:
///    a) the prefix of a sequence of data files in PDB format (prefix.1, prefix.2, etc...)
///    b) the numerical values identifying the first and the last file in the sequence
///    c) the name of an output file
///
///    Example:
///    hb-cluster urea 1 20 prova.txt
///
///
/// 3) HB-TIME: provides the decay profile of the hydrogen bonds in first shell and between first and second shell.
///
///    It requires:
///    a) the prefix of a sequence of data files in PDB format (prefix.1, prefix.2, etc...)
///    b) the numerical values identifying the first and the last file in the sequence
///    c) the name of an output file
///
///    Example:
///    hb-time urea 1 20 prova.txt
///
///
/// 4) HB-DEGREE: provides the number of water residuals in first shell involved in a given number of hyrogen bonds.
///
///    It requires:
///    a) the prefix of a sequence of data files in PDB format (prefix.1, prefix.2, etc...)
///    b) the numerical values identifying the first and the last file in the sequence
///    c) the name of an output file
///
///    Example:
///    hb-degree urea 1 20 prova.txt
///
///
/// 5) SNAPTREE: this procedure is still under experiment. It provides a similarity matrix
///    between the snapshots in a given sequence and computes a minimum spanning tree on it,
///    in order to determine which snapshots resemble more each other and to characterize the
///    evolution of the solution over time (either clearly directional, or approximately at equilibrium).
///
///    It requires:
///    a) the prefix of a sequence of data files in PDB format (prefix.1, prefix.2, etc...)
///    b) the numerical values identifying the first and the last file in the sequence
///    c) the name of an output file
///
///    Example:
///    hb-degree urea 1 20 prova.txt
///
