Standardizer Command-line Application

The Standardizer command-line tool reaches all the functionalities of Standardizer.

General usage schema

You can standardize molecules with Standardizer using the following command:

standardize [input file(s)/string(s)] -c <config file/string> [options]

Prepare the usage of the standardize script or batch file as described here.


Available options will be displayed by this command:

    standardize -h
The appearing general options: 
      -h, --help                          this help message
-ha, --help-actions list of available actions
-g, --ignore-error continue with next molecule on error
--empty-mol-on-error write an empty molecule, and continue
with next molecule on error
--unstandardized-mol-on-error write the original molecule, and continue
with next molecule on error

Input options:
-c, --config <filepath|string> configuration XML file
or action string,
actions separated by "..",
Output options:
-f, --format <format> output file format (default: smiles)
-o, --output <filepath> output file (default: standard output)
-e, --export-fields-to-smiles export property fields to SMILES
-v, --verbose verbose output with time results
--log <filepath> write log messages to file
default: write log to system error
--loglevel <level> sets the log level
levels: [severe|warning|info|off]
-rp, --report-property <prop-name> name of the property to wirte report

The command line parameter --config is mandatory. This specifies the path and filename of a configuration file or else it is the simple actionstring. We highly recommend creating the configuration file via Standardizer GUI or Standardizer Editor.

By default, the program exits in case of molecule import/export errors. If the command-line parameter -g or --ignore-error is specified, then errors will not stop the process. The error is written to the console, the molecule is discarded from the structure file (the resulting file will contain less molecules than the input file). With option --empty-mol-on-error the structure is changed for an empty molecule. The molecule is presented in the original form when using the option --unstandardized-mol-on-error. Both of these settings result in a file containing the same number of structures as the input file.

Standardizer Actions

The following command lists the available Standardizer actions:

    standardize -ha    

Valid actionstrings are:

  addexplicitH                   convert implicit hydrogens to explicit
aliastoatom convert pseudo and alias atoms to normal atoms
aliastogroup convert pseudo and alias atoms to groups
aromatize perform aromatization (default: general)
:general perform general aromatization
:basic perform basic aromatization
:loose perform loose aromatization
clean2d perform partial clean in 2D (alternative:
:full perform full clean in 2D
:removezcoordinate remove z coordinate of 3D structures
:<template file> perform template based clean in 2D
clean3d perform clean in 3D
clearisotopes convert isotope to the given chemical element
clearstereo clear stereo information
(default: chirality, doublebond)
:chirality clear tetrahedral stereo information
:doublebond clear double bond stereo information
:singleupordownbond clear "Single Up or Down" bonds (wiggly bonds)
connecting to chiral centers
contractsgroups contract S-groups
:exclude='<group>' specified group(s) remain expanded
convertdoublebonds convert unspecified double bond stereo
(default: crossed)
:crossed convert unspecified double bond stereo
to crossed representation
:wiggly convert unspecified double bond stereo
to wiggly representation
convertpimetalbonds convert metal-multicenter single bonds
to coordinate type
converttoenhancedstereo convert to enhanced stereo (default: and)
:abs convert to enhanced stereo; stereogenic
centers without enhanced stereo flag go into a
new "abs" groups
:and convert to enhanced stereo; stereogenic
centers without enhanced stereo flag go into a
new "and" groups
:or convert to enhanced stereo; stereogenic
centers without enhanced stereo flag go into a
new "or" groups
creategroup create group from abbreviated group definition
:group=<group> specify group, e.g. creategroup:Val,Ser,Boc
dearomatize convert aromatic bonds to Kekule form
disconnectmetalatoms remove covalent bonds between
metals and non-carbons
expand multiple fragments according to
stoichiometry data
expandsgroups expand S-groups
:exclude='<group>' specified group(s) remain contracted
map add atom maps
(default: complete, keepmapping)
:complete map all atoms
:matching map matching atoms of a reaction
:changing map changing atoms of a reaction
:keepmapping keep existing mapping
:markbonds mark changing bonds
mapreaction add atom maps to reaction
(default: complete, keepmapping)
:complete map all atoms
:matching map matching atoms of a reaction
:changing map changing atoms of a reaction
:keepmapping keep existing mapping
:markbonds mark changing bonds
mesomerize take canonical mesomer form
neutralize neutralize charged molecules
removeabsolutestereo remove absolute stereo flag (chiral flag)
removeatomvalues remove atom values (extra atom labels)
removeattacheddata remove attached data from molecules
removeexplicitH convert explicit hydrogens to implicit ones
by default, plain hydrogen atoms are removed
:bridgehead connecting to bridgehead atom
:charged charged explicit hydrogens
:hconnected hydrogen connected to hydrogen atom
:isotopic isotopic explicit hydrogens
:lonely hydrogens without any connections
:mapped mapped explicit hydrogens
:polymerendgroup hydrogen connected to a SRU S-group
:radical radical explicit hydrogens
:sgroup hydrogen which is the only atom in an S-group
:sgroupend hydrogen connected to a Superatom S-group
:valenceerror hydrogen connected to an atom which has
valence error
:wedged wedged explicit hydrogens
removefragment remove fragments from molecules
(default: method=keeplargest,
:method=keeplargest keep the largest fragment
:method=keepsmallest keep the smallest fragment
:method=removelargest remove the largest fragment
:method=removesmallest remove the smallest fragment
:measure=atomcount remove fragments according to atom count
:measure=molmass remove fragments according to molecular mass
:measure=heavyatomcount remove fragments according to
heavy atom count
removergroupdefinitions remove R-group definitions; keep root
removestereocarebox remove stereo search markers from double bonds
replaceatoms replace a chemical element with another
:queryatom='<atom symbol>' atom to be replaced
:replaceatom='<atom symbol>' new atom to be included instead
:allowValenceError tolerance of valence errors
setabsolutestereo set absolute stereo flag (chiral flag)
stripsalts remove salts listed in the salt dictionary
tautomerize take canonical tautomer form
ungroupsgroups ungroup S-groups
:exclude='<group>' specified group(s) remain grouped
unmap remove atom maps
wedgeclean rearranges stereo wedges according to
IUPAC recommendations
<reaction SMARTS> transform molecule according to reaction
SMARTS, e.g. nitro transformation

Visit Standardizer Actions to find out more about the functionality of each action!


Most molecular file formats are accepted.

The input is either specified in input file(s), or else in input string(s), usually in SMILES format.

If neither the input file name(s) nor the input string(s) are specified in the command line then the standard input is read.


Standardizer writes output molecules in the format specified by the --format option (the default format is "SMILES"). If the --output is omitted, results are written to the standard output.

If the command line parameter --export-fields-to-smiles is specified, then the property fields (SDF fields) of the molecules will be exported even if the output format is SMILES, SMARTS, ChemAxon Extended SMILES or ChemAxon Extended SMARTS. In case of other formats the property fields are always exported, this option has no effects.

Usage examples

  1. A UNIX command that reads molecular structures from the mols.sdf file and writes the standardized molecules to the standard output in smiles format:

                standardize -c Standardizer.xml mols.sdf
  2. A UNIX command that reads molecules given as SMILES strings from file nci10000.smiles located in the./test/pharmacophore directory and writes results in the file named nci10000.sdf to be created in the same directory:

                standardize -c Standardizer.xml nci10000.smiles -f sdf -o nci10000.sdf
  3. The same with transformation check and verbose output, then displaying the result in MarvinView:

                standardize -c Standardizer.xml -e -v nci100.smiles -f sdf -o nci100.sdf
    mview nci100.sdf
  4. Processing an SD file and displaying the standardized molecules using MarvinView:

                standardize -c Standardizer.xml med100.sdf | mview -

    Note that such piping does not work in Windows.

  5. Standardization with actionstring:

                standardize -c "aromatize..[O-:2][N+:1]=O>>[O:2]=[N:1]=O" med100.sdf -o med100.smiles
  6. Standardization with actionstring, taking input molecules as SMILES strings:

                standardize -c "aromatize..[O-:2][N+:1]=O>>[O:2]=[N:1]=O" \
    "[O-][N+](=O)C1=CC=CC=C1" "[H]C1=C(C=C(C=C1)[N+]([O-])=O)[N+]([O-])=O"
  7. Processing tasks belonging to no groups or to task group "target":

                standardize -c Standardizer.xml -u target targets.sdf -f sdf -o output.sdf