subroutine help(unit)
integer, intent(in) :: unit
write(unit, '(a, *(1x, a))') &
"Usage: "//prog_name//" [options] <file> <file>..."
write(unit, '(a)') &
"", &
"Requires at least two input files. Supported formats are:", &
"- xyz, mol, sdf, coord (0D), gen (C), pdb", &
"", &
"Configuration data is read from [rmsd] table in mctc.toml.", &
"Just place the configuration file mctc.toml (or .mctc.toml) in your home directory.", &
"Example:", &
"", &
" [rmsd]", &
" unit = ""AA""", &
" [rmsd.filter]", &
" heavy.exclude = [ ""H"", ""h"" ]", &
"", &
"Options", &
"-------", &
""
write(unit, '(3x, a, t25, a)') &
"--filter <name>", "Use <name> filter from configuration data to apply mask", &
"--rc", "check configuration data and print it to standard out", &
"--version", "Print program version and exit", &
"--help", "Show this help message"
write(unit, '(a)') &
"", &
"Filter", &
"------", &
"", &
"Filters can be defined in the [rmsd.filter] section, they take a list of", &
"atomic numbers and/or element symbols to define the allow-/deny-list.", &
"For example, to only check all carbon, nitrogen and oxygen atoms create", &
"a filter named organic with:", &
"", &
" organic.include = [6, 7, 8]", &
"", &
"Similarly, to create a filter for all heavy elements, effectively just", &
"excluding hydrogen with standard symbols, use:", &
"", &
" heavy.exclude = [""H"", ""h""]", &
"", &
"Note that this approach will still consider deuterium labeled as D,", &
"which would be excluded as well when using the atomic number instead.", &
"", &
"To create a PDB specific filter use the four character PDB identifier", &
"of the atoms and enable the PDB functionality.", &
"To match only the proteine backbone use", &
"", &
" c-alpha.include = ["" CA "", "" N "", "" C "", "" O ""]", &
" c-alpha.pdb = true", &
"", &
"Atomic numbers and element symbols can be included here as well.", &
""
end subroutine help