"babel" vs. "obabel" Commands


What are the differences between "babel" and "obabel" commands?

✍: FYIcenter.com


"babel" and "obabel" commands are two commands of the same Open Babel chemical data conversion program with slightly different command line syntaxes.

You can see the syntax differences between "babel" and "obabel" commands by running the "man babel" command:

  babel, obabel -- a converter for chemistry and molecular modeling data files

  babel, [-H help-options]
  babel, [OPTIONS] [-i input-type] infile [-o output-type] outfile

  obabel [-H help-options]
  obabel [OPTIONS] [-i input-type | -:"SMILES-string"] infile [-o output-type] 
    -O outfile

  babel, is a cross-platform program designed to interconvert between many file 
  formats used in molecular modeling and computational chemistry and related areas.

  obabel and babel, are slightly different. The first is closer to the normal 
  Unix convention for commandline programs and more flexible when the user needs 
  to specify parameter values on options. With babel this only works when the 
  option is the last on the line; with obabel no such restriction applies. It 
  further has a shortcut for entering SMILES strings, which can be used in place
  of an input file.

  Open Babel is also a complete programmers toolkit for developing chemistry 
  software. For more information, se the Open Babel web pages 

  If only input and output files are given, Open Babel will guess the file type 
  from the filename extension.

  Enter SMILES string and use it in place of an input file. The SMILES string 
  should be enclosed in quotation marks. More than one can be used, and a 
  molecule title can be included if enclosed in quotes.

  -a options
    Format-specific input options. See -H format-ID for options allowed by 
    a particular format


As you can see, there are two primary differences on the "obabel" command comparing to the "babel" command:

  • "obabel ... -O output_file" - Output file name must be specified in the "-O" option.
  • "obabel -:SMILES ..." - SMILES string can be specified as the input data source in the command line in the "-:" option. Note that no space is allowed between the "-:" flag and the SMILES string.

Here is an example of "obabel" command with a SMILES string:

fyicenter$ obabel -:c1ccccc1 -O out.svg 

1 molecule converted

Note that you may need to put the "-:..." option inside double quotes to protect special characters used in the SMILES strings as shown in the following example:

fyicenter$ obabel "-:c1cc(C=O)ccc1C(=O)O" -O out.svg

1 molecule converted


"babel ... -o svg" - Generating SVG Pictures

"babel -x..." Command - Extra Output Writing Options

Understanding "babel" Command Line Syntax

⇑⇑ Open Babel Tutorials

2021-07-19, 801👍, 0💬