From: Teemu Murtola Date: Tue, 10 Feb 2015 18:48:15 +0000 (+0200) Subject: Replace more [BR] with rst bullet lists X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=e4217b9706b47748090a300589ae23c71a857938;p=alexxy%2Fgromacs.git Replace more [BR] with rst bullet lists Make the console output format rst-style bullet lists nicely, and use these instead of [BR] tags to create proper bullet lists in program help texts. The produced output looks much nicer in all the output formats (including the console) compared to what it was before any rst changes. Now the number of [BR] tags remaining is relatively low, and can fixed at some later time. Change-Id: I8d74f1a8f3a338202ab901d28f608a8c25794f19 --- diff --git a/src/gromacs/gmxana/gmx_bar.c b/src/gromacs/gmxana/gmx_bar.c index b285678247..84cc7caf32 100644 --- a/src/gromacs/gmxana/gmx_bar.c +++ b/src/gromacs/gmxana/gmx_bar.c @@ -3508,22 +3508,23 @@ int gmx_bar(int argc, char *argv[]) "the [REF].mdp[ref] option [TT]foreign_lambda[tt].[PAR]", "Input option [TT]-f[tt] expects multiple [TT]dhdl.xvg[tt] files. ", - "Two types of input files are supported:[BR]", - "[TT]*[tt] Files with more than one [IT]y[it]-value. ", - "The files should have columns ", - "with dH/d[GRK]lambda[grk] and [GRK]Delta[grk][GRK]lambda[grk]. ", - "The [GRK]lambda[grk] values are inferred ", - "from the legends: [GRK]lambda[grk] of the simulation from the legend of ", - "dH/d[GRK]lambda[grk] and the foreign [GRK]lambda[grk] values from the ", - "legends of Delta H", - "[BR]", - "[TT]*[tt] Files with only one [IT]y[it]-value. Using the", - "[TT]-extp[tt] option for these files, it is assumed", - "that the [IT]y[it]-value is dH/d[GRK]lambda[grk] and that the ", - "Hamiltonian depends linearly on [GRK]lambda[grk]. ", - "The [GRK]lambda[grk] value of the simulation is inferred from the ", - "subtitle (if present), otherwise from a number in the subdirectory ", - "in the file name.[PAR]", + "Two types of input files are supported:", + "", + " * Files with more than one [IT]y[it]-value. ", + " The files should have columns ", + " with dH/d[GRK]lambda[grk] and [GRK]Delta[grk][GRK]lambda[grk]. ", + " The [GRK]lambda[grk] values are inferred ", + " from the legends: [GRK]lambda[grk] of the simulation from the legend of ", + " dH/d[GRK]lambda[grk] and the foreign [GRK]lambda[grk] values from the ", + " legends of Delta H", + " * Files with only one [IT]y[it]-value. Using the", + " [TT]-extp[tt] option for these files, it is assumed", + " that the [IT]y[it]-value is dH/d[GRK]lambda[grk] and that the ", + " Hamiltonian depends linearly on [GRK]lambda[grk]. ", + " The [GRK]lambda[grk] value of the simulation is inferred from the ", + " subtitle (if present), otherwise from a number in the subdirectory ", + " in the file name.", + "", "The [GRK]lambda[grk] of the simulation is parsed from ", "[TT]dhdl.xvg[tt] file's legend containing the string 'dH', the ", @@ -3567,13 +3568,15 @@ int gmx_bar(int argc, char *argv[]) "and the total. The first part contains detailed free energy ", "difference estimates and phase space overlap measures in units of ", "kT (together with their computed error estimate). The printed ", - "values are:[BR]", - "[TT]*[tt] lam_A: the [GRK]lambda[grk] values for point A.[BR]", - "[TT]*[tt] lam_B: the [GRK]lambda[grk] values for point B.[BR]", - "[TT]*[tt] DG: the free energy estimate.[BR]", - "[TT]*[tt] s_A: an estimate of the relative entropy of B in A.[BR]", - "[TT]*[tt] s_B: an estimate of the relative entropy of A in B.[BR]", - "[TT]*[tt] stdev: an estimate expected per-sample standard deviation.[PAR]", + "values are:", + "", + " * lam_A: the [GRK]lambda[grk] values for point A.", + " * lam_B: the [GRK]lambda[grk] values for point B.", + " * DG: the free energy estimate.", + " * s_A: an estimate of the relative entropy of B in A.", + " * s_B: an estimate of the relative entropy of A in B.", + " * stdev: an estimate expected per-sample standard deviation.", + "", "The relative entropy of both states in each other's ensemble can be ", "interpreted as a measure of phase space overlap: ", diff --git a/src/gromacs/gmxana/gmx_chi.c b/src/gromacs/gmxana/gmx_chi.c index 4683fed816..f4156186fa 100644 --- a/src/gromacs/gmxana/gmx_chi.c +++ b/src/gromacs/gmxana/gmx_chi.c @@ -1251,12 +1251,14 @@ int gmx_chi(int argc, char *argv[]) "With option [TT]-all[tt], the angles themselves as a function of time for", "each residue are printed to separate files [TT](dihedral)(RESIDUE)(nresnr).xvg[tt].", "These can be in radians or degrees.[PAR]", - "A log file (argument [TT]-g[tt]) is also written. This contains [BR]", - "(a) information about the number of residues of each type.[BR]", - "(b) The NMR ^3J coupling constants from the Karplus equation.[BR]", - "(c) a table for each residue of the number of transitions between ", - "rotamers per nanosecond, and the order parameter S^2 of each dihedral.[BR]", - "(d) a table for each residue of the rotamer occupancy.[PAR]", + "A log file (argument [TT]-g[tt]) is also written. This contains", + "", + " * information about the number of residues of each type.", + " * The NMR ^3J coupling constants from the Karplus equation.", + " * a table for each residue of the number of transitions between ", + " rotamers per nanosecond, and the order parameter S^2 of each dihedral.", + " * a table for each residue of the rotamer occupancy.", + "", "All rotamers are taken as 3-fold, except for [GRK]omega[grk] and [GRK]chi[grk] dihedrals", "to planar groups (i.e. [GRK]chi[grk][SUB]2[sub] of aromatics, Asp and Asn; [GRK]chi[grk][SUB]3[sub] of Glu", "and Gln; and [GRK]chi[grk][SUB]4[sub] of Arg), which are 2-fold. \"rotamer 0\" means ", diff --git a/src/gromacs/gmxana/gmx_cluster.c b/src/gromacs/gmxana/gmx_cluster.c index e265d2ca43..f6da5c1243 100644 --- a/src/gromacs/gmxana/gmx_cluster.c +++ b/src/gromacs/gmxana/gmx_cluster.c @@ -1382,32 +1382,35 @@ int gmx_cluster(int argc, char *argv[]) "file. When writing all structures, separate numbered files are made", "for each cluster.[PAR]", - "Two output files are always written:[BR]", - "[TT]-o[tt] writes the RMSD values in the upper left half of the matrix", - "and a graphical depiction of the clusters in the lower right half", - "When [TT]-minstruct[tt] = 1 the graphical depiction is black", - "when two structures are in the same cluster.", - "When [TT]-minstruct[tt] > 1 different colors will be used for each", - "cluster.[BR]", - "[TT]-g[tt] writes information on the options used and a detailed list", - "of all clusters and their members.[PAR]", - - "Additionally, a number of optional output files can be written:[BR]", - "[TT]-dist[tt] writes the RMSD distribution.[BR]", - "[TT]-ev[tt] writes the eigenvectors of the RMSD matrix", - "diagonalization.[BR]", - "[TT]-sz[tt] writes the cluster sizes.[BR]", - "[TT]-tr[tt] writes a matrix of the number transitions between", - "cluster pairs.[BR]", - "[TT]-ntr[tt] writes the total number of transitions to or from", - "each cluster.[BR]", - "[TT]-clid[tt] writes the cluster number as a function of time.[BR]", - "[TT]-cl[tt] writes average (with option [TT]-av[tt]) or central", - "structure of each cluster or writes numbered files with cluster members", - "for a selected set of clusters (with option [TT]-wcl[tt], depends on", - "[TT]-nst[tt] and [TT]-rmsmin[tt]). The center of a cluster is the", - "structure with the smallest average RMSD from all other structures", - "of the cluster.", + "Two output files are always written:", + "", + " * [TT]-o[tt] writes the RMSD values in the upper left half of the matrix", + " and a graphical depiction of the clusters in the lower right half", + " When [TT]-minstruct[tt] = 1 the graphical depiction is black", + " when two structures are in the same cluster.", + " When [TT]-minstruct[tt] > 1 different colors will be used for each", + " cluster.", + " * [TT]-g[tt] writes information on the options used and a detailed list", + " of all clusters and their members.", + "", + + "Additionally, a number of optional output files can be written:", + "", + " * [TT]-dist[tt] writes the RMSD distribution.", + " * [TT]-ev[tt] writes the eigenvectors of the RMSD matrix", + " diagonalization.", + " * [TT]-sz[tt] writes the cluster sizes.", + " * [TT]-tr[tt] writes a matrix of the number transitions between", + " cluster pairs.", + " * [TT]-ntr[tt] writes the total number of transitions to or from", + " each cluster.", + " * [TT]-clid[tt] writes the cluster number as a function of time.", + " * [TT]-cl[tt] writes average (with option [TT]-av[tt]) or central", + " structure of each cluster or writes numbered files with cluster members", + " for a selected set of clusters (with option [TT]-wcl[tt], depends on", + " [TT]-nst[tt] and [TT]-rmsmin[tt]). The center of a cluster is the", + " structure with the smallest average RMSD from all other structures", + " of the cluster.", }; FILE *fp, *log; diff --git a/src/gromacs/gmxana/gmx_dielectric.c b/src/gromacs/gmxana/gmx_dielectric.c index 7561aece02..7bc7febc79 100644 --- a/src/gromacs/gmxana/gmx_dielectric.c +++ b/src/gromacs/gmxana/gmx_dielectric.c @@ -250,10 +250,12 @@ int gmx_dielectric(int argc, char *argv[]) "[THISMODULE] calculates frequency dependent dielectric constants", "from the autocorrelation function of the total dipole moment in", "your simulation. This ACF can be generated by [gmx-dipoles].", - "The functional forms of the available functions are:[PAR]", - "One parameter: y = [EXP]-a[SUB]1[sub] x[exp],[BR]", - "Two parameters: y = a[SUB]2[sub] [EXP]-a[SUB]1[sub] x[exp],[BR]", - "Three parameters: y = a[SUB]2[sub] [EXP]-a[SUB]1[sub] x[exp] + (1 - a[SUB]2[sub]) [EXP]-a[SUB]3[sub] x[exp].[BR]", + "The functional forms of the available functions are:", + "", + " * One parameter: y = [EXP]-a[SUB]1[sub] x[exp],", + " * Two parameters: y = a[SUB]2[sub] [EXP]-a[SUB]1[sub] x[exp],", + " * Three parameters: y = a[SUB]2[sub] [EXP]-a[SUB]1[sub] x[exp] + (1 - a[SUB]2[sub]) [EXP]-a[SUB]3[sub] x[exp].", + "", "Start values for the fit procedure can be given on the command line.", "It is also possible to fix parameters at their start value, use [TT]-fix[tt]", "with the number of the parameter you want to fix.", diff --git a/src/gromacs/gmxana/gmx_eneconv.c b/src/gromacs/gmxana/gmx_eneconv.c index 9a1e775ef6..87cf30d294 100644 --- a/src/gromacs/gmxana/gmx_eneconv.c +++ b/src/gromacs/gmxana/gmx_eneconv.c @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2013,2014, by the GROMACS development team, led by + * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -492,7 +492,7 @@ static void update_ee_sum(int nre, int gmx_eneconv(int argc, char *argv[]) { const char *desc[] = { - "With [IT]multiple files[it] specified for the [TT]-f[tt] option:[BR]", + "With [IT]multiple files[it] specified for the [TT]-f[tt] option:[PAR]", "Concatenates several energy files in sorted order.", "In the case of double time frames, the one", "in the later file is used. By specifying [TT]-settime[tt] you will be", @@ -500,7 +500,7 @@ int gmx_eneconv(int argc, char *argv[]) "from the command line,", "such that the command [TT]gmx eneconv -f *.edr -o fixed.edr[tt] should do", "the trick. [PAR]", - "With [IT]one file[it] specified for [TT]-f[tt]:[BR]", + "With [IT]one file[it] specified for [TT]-f[tt]:[PAR]", "Reads one energy file and writes another, applying the [TT]-dt[tt],", "[TT]-offset[tt], [TT]-t0[tt] and [TT]-settime[tt] options and", "converting to a different format if necessary (indicated by file", diff --git a/src/gromacs/gmxana/gmx_hbond.c b/src/gromacs/gmxana/gmx_hbond.c index 28c138b47a..f9e8fb89c6 100644 --- a/src/gromacs/gmxana/gmx_hbond.c +++ b/src/gromacs/gmxana/gmx_hbond.c @@ -3568,28 +3568,29 @@ int gmx_hbond(int argc, char *argv[]) "note also that no check is made for the types of atoms.[PAR]", */ - "[BB]Output:[bb][BR]", - "[TT]-num[tt]: number of hydrogen bonds as a function of time.[BR]", - "[TT]-ac[tt]: average over all autocorrelations of the existence", - "functions (either 0 or 1) of all hydrogen bonds.[BR]", - "[TT]-dist[tt]: distance distribution of all hydrogen bonds.[BR]", - "[TT]-ang[tt]: angle distribution of all hydrogen bonds.[BR]", - "[TT]-hx[tt]: the number of n-n+i hydrogen bonds as a function of time", - "where n and n+i stand for residue numbers and i ranges from 0 to 6.", - "This includes the n-n+3, n-n+4 and n-n+5 hydrogen bonds associated", - "with helices in proteins.[BR]", - "[TT]-hbn[tt]: all selected groups, donors, hydrogens and acceptors", - "for selected groups, all hydrogen bonded atoms from all groups and", - "all solvent atoms involved in insertion.[BR]", - "[TT]-hbm[tt]: existence matrix for all hydrogen bonds over all", - "frames, this also contains information on solvent insertion", - "into hydrogen bonds. Ordering is identical to that in [TT]-hbn[tt]", - "index file.[BR]", - "[TT]-dan[tt]: write out the number of donors and acceptors analyzed for", - "each timeframe. This is especially useful when using [TT]-shell[tt].[BR]", - "[TT]-nhbdist[tt]: compute the number of HBonds per hydrogen in order to", - "compare results to Raman Spectroscopy.", - "[PAR]", + "[BB]Output:[bb]", + "", + " * [TT]-num[tt]: number of hydrogen bonds as a function of time.", + " * [TT]-ac[tt]: average over all autocorrelations of the existence", + " functions (either 0 or 1) of all hydrogen bonds.", + " * [TT]-dist[tt]: distance distribution of all hydrogen bonds.", + " * [TT]-ang[tt]: angle distribution of all hydrogen bonds.", + " * [TT]-hx[tt]: the number of n-n+i hydrogen bonds as a function of time", + " where n and n+i stand for residue numbers and i ranges from 0 to 6.", + " This includes the n-n+3, n-n+4 and n-n+5 hydrogen bonds associated", + " with helices in proteins.", + " * [TT]-hbn[tt]: all selected groups, donors, hydrogens and acceptors", + " for selected groups, all hydrogen bonded atoms from all groups and", + " all solvent atoms involved in insertion.", + " * [TT]-hbm[tt]: existence matrix for all hydrogen bonds over all", + " frames, this also contains information on solvent insertion", + " into hydrogen bonds. Ordering is identical to that in [TT]-hbn[tt]", + " index file.", + " * [TT]-dan[tt]: write out the number of donors and acceptors analyzed for", + " each timeframe. This is especially useful when using [TT]-shell[tt].", + " * [TT]-nhbdist[tt]: compute the number of HBonds per hydrogen in order to", + " compare results to Raman Spectroscopy.", + "", "Note: options [TT]-ac[tt], [TT]-life[tt], [TT]-hbn[tt] and [TT]-hbm[tt]", "require an amount of memory proportional to the total numbers of donors", "times the total number of acceptors in the selected group(s)." diff --git a/src/gromacs/gmxana/gmx_helix.c b/src/gromacs/gmxana/gmx_helix.c index 29bab90a07..17c4f392f4 100644 --- a/src/gromacs/gmxana/gmx_helix.c +++ b/src/gromacs/gmxana/gmx_helix.c @@ -67,29 +67,29 @@ int gmx_helix(int argc, char *argv[]) "hydrogen bonds and [GRK]phi[grk]/[GRK]psi[grk] angles.", "That bit is fitted", "to an ideal helix around the [IT]z[it]-axis and centered around the origin.", - "Then the following properties are computed:[PAR]", - "[BB]1.[bb] Helix radius (file [TT]radius.xvg[tt]). This is merely the", - "RMS deviation in two dimensions for all C[GRK]alpha[grk] atoms.", - "it is calculated as [SQRT]([SUM][sum][SUB]i[sub] (x^2(i)+y^2(i)))/N[sqrt] where N is the number", - "of backbone atoms. For an ideal helix the radius is 0.23 nm[BR]", - "[BB]2.[bb] Twist (file [TT]twist.xvg[tt]). The average helical angle per", - "residue is calculated. For an [GRK]alpha[grk]-helix it is 100 degrees,", - "for 3-10 helices it will be smaller, and ", - "for 5-helices it will be larger.[BR]", - "[BB]3.[bb] Rise per residue (file [TT]rise.xvg[tt]). The helical rise per", - "residue is plotted as the difference in [IT]z[it]-coordinate between C[GRK]alpha[grk]", - "atoms. For an ideal helix, this is 0.15 nm[BR]", - "[BB]4.[bb] Total helix length (file [TT]len-ahx.xvg[tt]). The total length", - "of the", - "helix in nm. This is simply the average rise (see above) times the", - "number of helical residues (see below).[BR]", - "[BB]5.[bb] Helix dipole, backbone only (file [TT]dip-ahx.xvg[tt]).[BR]", - "[BB]6.[bb] RMS deviation from ideal helix, calculated for the C[GRK]alpha[grk]", - "atoms only (file [TT]rms-ahx.xvg[tt]).[BR]", - "[BB]7.[bb] Average C[GRK]alpha[grk] - C[GRK]alpha[grk] dihedral angle (file [TT]phi-ahx.xvg[tt]).[BR]", - "[BB]8.[bb] Average [GRK]phi[grk] and [GRK]psi[grk] angles (file [TT]phipsi.xvg[tt]).[BR]", - "[BB]9.[bb] Ellipticity at 222 nm according to Hirst and Brooks.", - "[PAR]" + "Then the following properties are computed:", + "", + " * Helix radius (file [TT]radius.xvg[tt]). This is merely the", + " RMS deviation in two dimensions for all C[GRK]alpha[grk] atoms.", + " it is calculated as [SQRT]([SUM][sum][SUB]i[sub] (x^2(i)+y^2(i)))/N[sqrt] where N is the number", + " of backbone atoms. For an ideal helix the radius is 0.23 nm.", + " * Twist (file [TT]twist.xvg[tt]). The average helical angle per", + " residue is calculated. For an [GRK]alpha[grk]-helix it is 100 degrees,", + " for 3-10 helices it will be smaller, and ", + " for 5-helices it will be larger.", + " * Rise per residue (file [TT]rise.xvg[tt]). The helical rise per", + " residue is plotted as the difference in [IT]z[it]-coordinate between C[GRK]alpha[grk]", + " atoms. For an ideal helix, this is 0.15 nm.", + " * Total helix length (file [TT]len-ahx.xvg[tt]). The total length", + " of the", + " helix in nm. This is simply the average rise (see above) times the", + " number of helical residues (see below).", + " * Helix dipole, backbone only (file [TT]dip-ahx.xvg[tt]).", + " * RMS deviation from ideal helix, calculated for the C[GRK]alpha[grk]", + " atoms only (file [TT]rms-ahx.xvg[tt]).", + " * Average C[GRK]alpha[grk] - C[GRK]alpha[grk] dihedral angle (file [TT]phi-ahx.xvg[tt]).", + " * Average [GRK]phi[grk] and [GRK]psi[grk] angles (file [TT]phipsi.xvg[tt]).", + " * Ellipticity at 222 nm according to Hirst and Brooks." }; static gmx_bool bCheck = FALSE, bFit = TRUE, bDBG = FALSE, bEV = FALSE; static int rStart = 0, rEnd = 0, r0 = 1; diff --git a/src/gromacs/gmxana/gmx_make_edi.c b/src/gromacs/gmxana/gmx_make_edi.c index 2564b156dc..aa95ade3ea 100644 --- a/src/gromacs/gmxana/gmx_make_edi.c +++ b/src/gromacs/gmxana/gmx_make_edi.c @@ -628,10 +628,11 @@ int gmx_make_edi(int argc, char *argv[]) "[BB]Note[bb] that you can impose multiple ED constraints and flooding potentials in", "a single simulation (on different molecules) if several [REF].edi[ref] files were concatenated", "first. The constraints are applied in the order they appear in the [REF].edi[ref] file. ", - "Depending on what was specified in the [REF].edi[ref] input file, the output file contains for each ED dataset[PAR]", - "[TT]*[tt] the RMSD of the fitted molecule to the reference structure (for atoms involved in fitting prior to calculating the ED constraints)[BR]", - "[TT]*[tt] projections of the positions onto selected eigenvectors[BR]", - "[PAR][PAR]", + "Depending on what was specified in the [REF].edi[ref] input file, the output file contains for each ED dataset", + "", + " * the RMSD of the fitted molecule to the reference structure (for atoms involved in fitting prior to calculating the ED constraints)", + " * projections of the positions onto selected eigenvectors", + "", "FLOODING:[PAR]", "with [TT]-flood[tt], you can specify which eigenvectors are used to compute a flooding potential,", "which will lead to extra forces expelling the structure out of the region described", diff --git a/src/gromacs/gmxana/gmx_sorient.c b/src/gromacs/gmxana/gmx_sorient.c index 7de848e5eb..9b0f9e20a5 100644 --- a/src/gromacs/gmxana/gmx_sorient.c +++ b/src/gromacs/gmxana/gmx_sorient.c @@ -145,12 +145,14 @@ int gmx_sorient(int argc, char *argv[]) const char *desc[] = { "[THISMODULE] analyzes solvent orientation around solutes.", "It calculates two angles between the vector from one or more", - "reference positions to the first atom of each solvent molecule:[PAR]", - "[GRK]theta[grk][SUB]1[sub]: the angle with the vector from the first atom of the solvent", - "molecule to the midpoint between atoms 2 and 3.[BR]", - "[GRK]theta[grk][SUB]2[sub]: the angle with the normal of the solvent plane, defined by the", - "same three atoms, or, when the option [TT]-v23[tt] is set, ", - "the angle with the vector between atoms 2 and 3.[PAR]", + "reference positions to the first atom of each solvent molecule:", + "", + " * [GRK]theta[grk][SUB]1[sub]: the angle with the vector from the first atom of the solvent", + " molecule to the midpoint between atoms 2 and 3.", + " * [GRK]theta[grk][SUB]2[sub]: the angle with the normal of the solvent plane, defined by the", + " same three atoms, or, when the option [TT]-v23[tt] is set, ", + " the angle with the vector between atoms 2 and 3.", + "", "The reference can be a set of atoms or", "the center of mass of a set of atoms. The group of solvent atoms should", "consist of 3 atoms per solvent molecule.", diff --git a/src/gromacs/gmxana/gmx_trjconv.c b/src/gromacs/gmxana/gmx_trjconv.c index 4fa6fd76b6..b1c7a5ed51 100644 --- a/src/gromacs/gmxana/gmx_trjconv.c +++ b/src/gromacs/gmxana/gmx_trjconv.c @@ -584,24 +584,25 @@ static gmx_mtop_t *read_mtop_for_tng(const char *tps_file, int gmx_trjconv(int argc, char *argv[]) { const char *desc[] = { - "[THISMODULE] can convert trajectory files in many ways:[BR]", - "* from one format to another[BR]", - "* select a subset of atoms[BR]", - "* change the periodicity representation[BR]", - "* keep multimeric molecules together[BR]", - "* center atoms in the box[BR]", - "* fit atoms to reference structure[BR]", - "* reduce the number of frames[BR]", - "* change the timestamps of the frames ([TT]-t0[tt] and [TT]-timestep[tt])[BR]", - "[TT]*[tt] cut the trajectory in small subtrajectories according", - "to information in an index file. This allows subsequent analysis of", - "the subtrajectories that could, for example, be the result of a", - "cluster analysis. Use option [TT]-sub[tt].", - "This assumes that the entries in the index file are frame numbers and", - "dumps each group in the index file to a separate trajectory file.[BR]", - "[TT]*[tt] select frames within a certain range of a quantity given", - "in an [REF].xvg[ref] file.[PAR]", - + "[THISMODULE] can convert trajectory files in many ways:", + "", + "* from one format to another", + "* select a subset of atoms", + "* change the periodicity representation", + "* keep multimeric molecules together", + "* center atoms in the box", + "* fit atoms to reference structure", + "* reduce the number of frames", + "* change the timestamps of the frames ([TT]-t0[tt] and [TT]-timestep[tt])", + "* cut the trajectory in small subtrajectories according", + " to information in an index file. This allows subsequent analysis of", + " the subtrajectories that could, for example, be the result of a", + " cluster analysis. Use option [TT]-sub[tt].", + " This assumes that the entries in the index file are frame numbers and", + " dumps each group in the index file to a separate trajectory file.", + "* select frames within a certain range of a quantity given", + " in an [REF].xvg[ref] file.", + "", "[gmx-trjcat] is better suited for concatenating multiple trajectory files.", "[PAR]", @@ -643,28 +644,31 @@ int gmx_trjconv(int argc, char *argv[]) "conformational transitions.[PAR]", "Option [TT]-pbc[tt] sets the type of periodic boundary condition", - "treatment:[BR]", - "[TT]* mol[tt] puts the center of mass of molecules in the box,", - "and requires a run input file to be supplied with [TT]-s[tt].[BR]", - "[TT]* res[tt] puts the center of mass of residues in the box.[BR]", - "[TT]* atom[tt] puts all the atoms in the box.[BR]", - "[TT]* nojump[tt] checks if atoms jump across the box and then puts", - "them back. This has the effect that all molecules", - "will remain whole (provided they were whole in the initial", - "conformation). [BB]Note[bb] that this ensures a continuous trajectory but", - "molecules may diffuse out of the box. The starting configuration", - "for this procedure is taken from the structure file, if one is", - "supplied, otherwise it is the first frame.[BR]", - "[TT]* cluster[tt] clusters all the atoms in the selected index", - "such that they are all closest to the center of mass of the cluster,", - "which is iteratively updated. [BB]Note[bb] that this will only give meaningful", - "results if you in fact have a cluster. Luckily that can be checked", - "afterwards using a trajectory viewer. Note also that if your molecules", - "are broken this will not work either.[BR]", - "The separate option [TT]-clustercenter[tt] can be used to specify an", - "approximate center for the cluster. This is useful e.g. if you have", - "two big vesicles, and you want to maintain their relative positions.[BR]", - "[TT]* whole[tt] only makes broken molecules whole.[PAR]", + "treatment:", + "", + " * [TT]mol[tt] puts the center of mass of molecules in the box,", + " and requires a run input file to be supplied with [TT]-s[tt].", + " * [TT]res[tt] puts the center of mass of residues in the box.", + " * [TT]atom[tt] puts all the atoms in the box.", + " * [TT]nojump[tt] checks if atoms jump across the box and then puts", + " them back. This has the effect that all molecules", + " will remain whole (provided they were whole in the initial", + " conformation). [BB]Note[bb] that this ensures a continuous trajectory but", + " molecules may diffuse out of the box. The starting configuration", + " for this procedure is taken from the structure file, if one is", + " supplied, otherwise it is the first frame.", + " * [TT]cluster[tt] clusters all the atoms in the selected index", + " such that they are all closest to the center of mass of the cluster,", + " which is iteratively updated. [BB]Note[bb] that this will only give meaningful", + " results if you in fact have a cluster. Luckily that can be checked", + " afterwards using a trajectory viewer. Note also that if your molecules", + " are broken this will not work either.", + "", + " The separate option [TT]-clustercenter[tt] can be used to specify an", + " approximate center for the cluster. This is useful e.g. if you have", + " two big vesicles, and you want to maintain their relative positions.", + " * [TT]whole[tt] only makes broken molecules whole.", + "", "Option [TT]-ur[tt] sets the unit cell representation for options", "[TT]mol[tt], [TT]res[tt] and [TT]atom[tt] of [TT]-pbc[tt].", diff --git a/src/gromacs/gmxana/gmx_wham.cpp b/src/gromacs/gmxana/gmx_wham.cpp index 6110cf64cb..b3ef53bcfd 100644 --- a/src/gromacs/gmxana/gmx_wham.cpp +++ b/src/gromacs/gmxana/gmx_wham.cpp @@ -3129,38 +3129,41 @@ int gmx_wham(int argc, char *argv[]) "[THISMODULE] is an analysis program that implements the Weighted", "Histogram Analysis Method (WHAM). It is intended to analyze", "output files generated by umbrella sampling simulations to ", - "compute a potential of mean force (PMF). [PAR] ", - "At present, three input modes are supported.[BR]", - "[TT]*[tt] With option [TT]-it[tt], the user provides a file which contains the", - " file names of the umbrella simulation run-input files ([REF].tpr[ref] files),", - " AND, with option [TT]-ix[tt], a file which contains file names of", - " the pullx [TT]mdrun[tt] output files. The [REF].tpr[ref] and pullx files must", - " be in corresponding order, i.e. the first [REF].tpr[ref] created the", - " first pullx, etc.[BR]", - "[TT]*[tt] Same as the previous input mode, except that the the user", - " provides the pull force output file names ([TT]pullf.xvg[tt]) with option [TT]-if[tt].", - " From the pull force the position in the umbrella potential is", - " computed. This does not work with tabulated umbrella potentials.[BR]" - "[TT]*[tt] With option [TT]-ip[tt], the user provides file names of (gzipped) [REF].pdo[ref] files, i.e.", - " the GROMACS 3.3 umbrella output files. If you have some unusual" - " reaction coordinate you may also generate your own [REF].pdo[ref] files and", - " feed them with the [TT]-ip[tt] option into to [THISMODULE]. The [REF].pdo[ref] file header", - " must be similar to the following::", + "compute a potential of mean force (PMF).", "", - " # UMBRELLA 3.0", - " # Component selection: 0 0 1", - " # nSkip 1", - " # Ref. Group 'TestAtom'", - " # Nr. of pull groups 2", - " # Group 1 'GR1' Umb. Pos. 5.0 Umb. Cons. 1000.0", - " # Group 2 'GR2' Umb. Pos. 2.0 Umb. Cons. 500.0", - " #####", + "At present, three input modes are supported.", + "", + " * With option [TT]-it[tt], the user provides a file which contains the", + " file names of the umbrella simulation run-input files ([REF].tpr[ref] files),", + " AND, with option [TT]-ix[tt], a file which contains file names of", + " the pullx [TT]mdrun[tt] output files. The [REF].tpr[ref] and pullx files must", + " be in corresponding order, i.e. the first [REF].tpr[ref] created the", + " first pullx, etc.", + " * Same as the previous input mode, except that the the user", + " provides the pull force output file names ([TT]pullf.xvg[tt]) with option [TT]-if[tt].", + " From the pull force the position in the umbrella potential is", + " computed. This does not work with tabulated umbrella potentials.", + " * With option [TT]-ip[tt], the user provides file names of (gzipped) [REF].pdo[ref] files, i.e.", + " the GROMACS 3.3 umbrella output files. If you have some unusual" + " reaction coordinate you may also generate your own [REF].pdo[ref] files and", + " feed them with the [TT]-ip[tt] option into to [THISMODULE]. The [REF].pdo[ref] file header", + " must be similar to the following::", + "", + " # UMBRELLA 3.0", + " # Component selection: 0 0 1", + " # nSkip 1", + " # Ref. Group 'TestAtom'", + " # Nr. of pull groups 2", + " # Group 1 'GR1' Umb. Pos. 5.0 Umb. Cons. 1000.0", + " # Group 2 'GR2' Umb. Pos. 2.0 Umb. Cons. 500.0", + " #####", + "", + " The number of pull groups, umbrella positions, force constants, and names ", + " may (of course) differ. Following the header, a time column and ", + " a data column for each pull group follows (i.e. the displacement", + " with respect to the umbrella center). Up to four pull groups are possible ", + " per [REF].pdo[ref] file at present.", "", - "The number of pull groups, umbrella positions, force constants, and names ", - "may (of course) differ. Following the header, a time column and ", - "a data column for each pull group follows (i.e. the displacement", - "with respect to the umbrella center). Up to four pull groups are possible ", - "per [REF].pdo[ref] file at present.[PAR]", "By default, all pull groups found in all pullx/pullf files are used in WHAM. If only ", "some of the pull groups should be used, a pull group selection file (option [TT]-is[tt]) can ", "be provided. The selection file must contain one line for each tpr file in tpr-files.dat.", @@ -3173,19 +3176,23 @@ int gmx_wham(int argc, char *argv[]) " 1 1 0 0", " 1 1 0 0", "", - "By default, the output files are[BR]", - " [TT]-o[tt] PMF output file[BR]", - " [TT]-hist[tt] Histograms output file[BR]", + "By default, the output files are", + "", + " * [TT]-o[tt] PMF output file", + " * [TT]-hist[tt] Histograms output file", + "", "Always check whether the histograms sufficiently overlap.[PAR]", "The umbrella potential is assumed to be harmonic and the force constants are ", "read from the [REF].tpr[ref] or [REF].pdo[ref] files. If a non-harmonic umbrella force was applied ", "a tabulated potential can be provided with [TT]-tab[tt].[PAR]", "WHAM OPTIONS[BR]------------[BR]", - " [TT]-bins[tt] Number of bins used in analysis[BR]", - " [TT]-temp[tt] Temperature in the simulations[BR]", - " [TT]-tol[tt] Stop iteration if profile (probability) changed less than tolerance[BR]", - " [TT]-auto[tt] Automatic determination of boundaries[BR]", - " [TT]-min,-max[tt] Boundaries of the profile [BR]", + "", + " * [TT]-bins[tt] Number of bins used in analysis", + " * [TT]-temp[tt] Temperature in the simulations", + " * [TT]-tol[tt] Stop iteration if profile (probability) changed less than tolerance", + " * [TT]-auto[tt] Automatic determination of boundaries", + " * [TT]-min,-max[tt] Boundaries of the profile", + "", "The data points that are used to compute the profile", "can be restricted with options [TT]-b[tt], [TT]-e[tt], and [TT]-dt[tt]. ", "Adjust [TT]-b[tt] to ensure sufficient equilibration in each ", @@ -3222,38 +3229,42 @@ int gmx_wham(int argc, char *argv[]) "Statistical errors may be estimated with bootstrap analysis. Use it with care, ", "otherwise the statistical error may be substantially underestimated. ", "More background and examples for the bootstrap technique can be found in ", - "Hub, de Groot and Van der Spoel, JCTC (2010) 6: 3713-3720.[BR]", + "Hub, de Groot and Van der Spoel, JCTC (2010) 6: 3713-3720.", "[TT]-nBootstrap[tt] defines the number of bootstraps (use, e.g., 100). ", "Four bootstrapping methods are supported and ", - "selected with [TT]-bs-method[tt].[BR]", - "(1) [TT]b-hist[tt] Default: complete histograms are considered as independent ", - "data points, and the bootstrap is carried out by assigning random weights to the ", - "histograms (\"Bayesian bootstrap\"). Note that each point along the reaction coordinate", - "must be covered by multiple independent histograms (e.g. 10 histograms), otherwise the ", - "statistical error is underestimated.[BR]", - "(2) [TT]hist[tt] Complete histograms are considered as independent data points. ", - "For each bootstrap, N histograms are randomly chosen from the N given histograms ", - "(allowing duplication, i.e. sampling with replacement).", - "To avoid gaps without data along the reaction coordinate blocks of histograms ", - "([TT]-histbs-block[tt]) may be defined. In that case, the given histograms are ", - "divided into blocks and only histograms within each block are mixed. Note that ", - "the histograms within each block must be representative for all possible histograms, ", - "otherwise the statistical error is underestimated.[BR]", - "(3) [TT]traj[tt] The given histograms are used to generate new random trajectories,", - "such that the generated data points are distributed according the given histograms ", - "and properly autocorrelated. The autocorrelation time (ACT) for each window must be ", - "known, so use [TT]-ac[tt] or provide the ACT with [TT]-iiact[tt]. If the ACT of all ", - "windows are identical (and known), you can also provide them with [TT]-bs-tau[tt]. ", - "Note that this method may severely underestimate the error in case of limited sampling, ", - "that is if individual histograms do not represent the complete phase space at ", - "the respective positions.[BR]", - "(4) [TT]traj-gauss[tt] The same as method [TT]traj[tt], but the trajectories are ", - "not bootstrapped from the umbrella histograms but from Gaussians with the average ", - "and width of the umbrella histograms. That method yields similar error estimates ", - "like method [TT]traj[tt].[PAR]" - "Bootstrapping output:[BR]", - " [TT]-bsres[tt] Average profile and standard deviations[BR]", - " [TT]-bsprof[tt] All bootstrapping profiles[BR]", + "selected with [TT]-bs-method[tt].", + "", + " * [TT]b-hist[tt] Default: complete histograms are considered as independent ", + " data points, and the bootstrap is carried out by assigning random weights to the ", + " histograms (\"Bayesian bootstrap\"). Note that each point along the reaction coordinate", + " must be covered by multiple independent histograms (e.g. 10 histograms), otherwise the ", + " statistical error is underestimated.", + " * [TT]hist[tt] Complete histograms are considered as independent data points. ", + " For each bootstrap, N histograms are randomly chosen from the N given histograms ", + " (allowing duplication, i.e. sampling with replacement).", + " To avoid gaps without data along the reaction coordinate blocks of histograms ", + " ([TT]-histbs-block[tt]) may be defined. In that case, the given histograms are ", + " divided into blocks and only histograms within each block are mixed. Note that ", + " the histograms within each block must be representative for all possible histograms, ", + " otherwise the statistical error is underestimated.", + " * [TT]traj[tt] The given histograms are used to generate new random trajectories,", + " such that the generated data points are distributed according the given histograms ", + " and properly autocorrelated. The autocorrelation time (ACT) for each window must be ", + " known, so use [TT]-ac[tt] or provide the ACT with [TT]-iiact[tt]. If the ACT of all ", + " windows are identical (and known), you can also provide them with [TT]-bs-tau[tt]. ", + " Note that this method may severely underestimate the error in case of limited sampling, ", + " that is if individual histograms do not represent the complete phase space at ", + " the respective positions.", + " * [TT]traj-gauss[tt] The same as method [TT]traj[tt], but the trajectories are ", + " not bootstrapped from the umbrella histograms but from Gaussians with the average ", + " and width of the umbrella histograms. That method yields similar error estimates ", + " like method [TT]traj[tt].", + "", + "Bootstrapping output:", + "", + " * [TT]-bsres[tt] Average profile and standard deviations", + " * [TT]-bsprof[tt] All bootstrapping profiles", + "", "With [TT]-vbs[tt] (verbose bootstrapping), the histograms of each bootstrap are written, ", "and, with bootstrap method [TT]traj[tt], the cumulative distribution functions of ", "the histograms." diff --git a/src/gromacs/onlinehelp/helpwritercontext.cpp b/src/gromacs/onlinehelp/helpwritercontext.cpp index 19eae3db91..b7bc9c2308 100644 --- a/src/gromacs/onlinehelp/helpwritercontext.cpp +++ b/src/gromacs/onlinehelp/helpwritercontext.cpp @@ -539,13 +539,15 @@ void HelpWriterContext::Impl::processMarkup(const std::string &text, { case eHelpOutputFormat_Console: { + const int baseFirstLineIndent = wrapper->settings().firstLineIndent(); + const int baseIndent = wrapper->settings().indent(); result = repall(result, sandrTty); result = replaceLinks(result); std::string paragraph; paragraph.reserve(result.length()); - size_t i = 0; - bool bFirst = true; - bool bLiteral = false; + size_t i = 0; + int nextBreakSize = 0; + bool bLiteral = false; while (i < result.length()) { while (i < result.length() && result[i] == '\n') @@ -556,13 +558,31 @@ void HelpWriterContext::Impl::processMarkup(const std::string &text, { break; } + const int breakSize = nextBreakSize; + int currentLine = 0; + bool bLineStart = true; + int currentIndent = 0; + int firstIndent = 0; + int indent = 0; paragraph.clear(); - for (; i < result.length(); ++i) + for (;; ++i) { - if (result[i] == '\n') + if (result[i] == '\n' || i == result.length()) { - if (i + 1 == result.length() || result[i + 1] == '\n') + if (currentLine == 0) { + firstIndent = currentIndent; + } + else if (currentLine == 1) + { + indent = currentIndent; + } + ++currentLine; + bLineStart = true; + currentIndent = 0; + if (i + 1 >= result.length() || result[i + 1] == '\n') + { + nextBreakSize = 2; break; } if (!bLiteral) @@ -574,6 +594,30 @@ void HelpWriterContext::Impl::processMarkup(const std::string &text, continue; } } + else if (bLineStart) + { + if (std::isspace(result[i])) + { + ++currentIndent; + continue; + } + else if (i + 1 < result.length() + && result[i] == '*' && result[i + 1] == ' ') + { + if (currentLine > 0) + { + while (i > 0 && result[i - 1] != '\n') + { + --i; + } + paragraph = stripString(paragraph); + nextBreakSize = 1; + break; + } + indent = currentIndent + 2; + } + bLineStart = false; + } paragraph.push_back(result[i]); } if (endsWith(paragraph, "::")) @@ -596,12 +640,15 @@ void HelpWriterContext::Impl::processMarkup(const std::string &text, { bLiteral = false; } - if (!bFirst) + if (breakSize > 0) { - wrapper->wrap("\n\n"); + wrapper->wrap(std::string(breakSize, '\n')); } + wrapper->settings().setFirstLineIndent(baseFirstLineIndent + firstIndent); + wrapper->settings().setIndent(baseIndent + indent); wrapper->wrap(paragraph); - bFirst = false; + wrapper->settings().setFirstLineIndent(baseFirstLineIndent); + wrapper->settings().setIndent(baseIndent); } break; } diff --git a/src/gromacs/onlinehelp/tests/helpwritercontext.cpp b/src/gromacs/onlinehelp/tests/helpwritercontext.cpp index 184e6e76e2..ed08fb84b0 100644 --- a/src/gromacs/onlinehelp/tests/helpwritercontext.cpp +++ b/src/gromacs/onlinehelp/tests/helpwritercontext.cpp @@ -155,4 +155,22 @@ TEST_F(HelpWriterContextTest, FormatsLiteralText) testFormatting(text); } +TEST_F(HelpWriterContextTest, FormatsBulletList) +{ + const char *const text[] = { + "Sample list:", + "", + " * first item", + " * second item that", + " spans multiple lines", + " * third item that has a single long line", + "", + "Normal paragraph" + }; + // Wrapping to rst with a fixed line length does not currently work + // correctly, but it is not used, either. + settings_.setLineLength(15); + testFormatting(text); +} + } // namespace diff --git a/src/gromacs/onlinehelp/tests/refdata/HelpWriterContextTest_FormatsBulletList.xml b/src/gromacs/onlinehelp/tests/refdata/HelpWriterContextTest_FormatsBulletList.xml new file mode 100644 index 0000000000..2bceed2aaf --- /dev/null +++ b/src/gromacs/onlinehelp/tests/refdata/HelpWriterContextTest_FormatsBulletList.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/src/gromacs/selection/selhelp.cpp b/src/gromacs/selection/selhelp.cpp index 4171382bbe..b966232680 100644 --- a/src/gromacs/selection/selhelp.cpp +++ b/src/gromacs/selection/selhelp.cpp @@ -155,11 +155,13 @@ const char *const CmdLineHelpText::text[] = { "directory, it is used instead of the one provided by default.[PAR]", "Depending on the tool, two additional command-line arguments may be", - "available to control the behavior:[BR]", - "1. [TT]-seltype[tt] can be used to specify the default type of", - "positions to calculate for each selection.[BR]", - "2. [TT]-selrpos[tt] can be used to specify the default type of", - "positions used in selecting atoms by coordinates.[BR]", + "available to control the behavior:", + "", + " * [TT]-seltype[tt] can be used to specify the default type of", + " positions to calculate for each selection.", + " * [TT]-selrpos[tt] can be used to specify the default type of", + " positions used in selecting atoms by coordinates.", + "", "See the \"positions\" subtopic for more information on these options.", }; @@ -399,20 +401,22 @@ const char *const SyntaxHelpText::text[] = { "([TT]POS_EXPR[tt]s), and those that evaluate to numeric values", "([TT]NUM_EXPR[tt]s). Each selection should be a [TT]POS_EXPR[tt]", "or a [TT]ATOM_EXPR[tt] (the latter is automatically converted to", - "positions). The basic rules are as follows:[BR]", - "1. An expression like [TT]NUM_EXPR1 < NUM_EXPR2[tt] evaluates to an", - "[TT]ATOM_EXPR[tt] that selects all the atoms for which the comparison", - "is true.[BR]", - "2. Atom expressions can be combined with boolean operations such as", - "[TT]not ATOM_EXPR[tt], [TT]ATOM_EXPR and ATOM_EXPR[tt], or", - "[TT]ATOM_EXPR or ATOM_EXPR[tt]. Parentheses can be used to alter the", - "evaluation order.[BR]", - "3. [TT]ATOM_EXPR[tt] expressions can be converted into [TT]POS_EXPR[tt]", - "expressions in various ways, see the \"positions\" subtopic for more", - "details.[BR]", - "4. [TT]POS_EXPR[tt] can be converted into [TT]NUM_EXPR[tt] using syntax", - "like \"x of POS_EXPR\". Currently, this is only supported for single", - "positions like in expression \"x of cog of ATOM_EXPR\".[PAR]", + "positions). The basic rules are as follows:", + "", + " * An expression like [TT]NUM_EXPR1 < NUM_EXPR2[tt] evaluates to an", + " [TT]ATOM_EXPR[tt] that selects all the atoms for which the comparison", + " is true.", + " * Atom expressions can be combined with boolean operations such as", + " [TT]not ATOM_EXPR[tt], [TT]ATOM_EXPR and ATOM_EXPR[tt], or", + " [TT]ATOM_EXPR or ATOM_EXPR[tt]. Parentheses can be used to alter the", + " evaluation order.", + " * [TT]ATOM_EXPR[tt] expressions can be converted into [TT]POS_EXPR[tt]", + " expressions in various ways, see the \"positions\" subtopic for more", + " details.", + " * [TT]POS_EXPR[tt] can be converted into [TT]NUM_EXPR[tt] using syntax", + " like \"x of POS_EXPR\". Currently, this is only supported for single", + " positions like in expression \"x of cog of ATOM_EXPR\".", + "", "Some keywords select atoms based on string values such as the atom name.", "For these keywords, it is possible to use wildcards ([TT]name \"C*\"[tt])",