obgrep - Man Page

an advanced molecular search program using SMARTS


obgrep[Options] 'SMARTS-pattern' filename


The obgrep tool can be used to search for molecules inside multi-molecule database files (e.g., SMILES, SDF, etc.) or across multiple files.


If only a filename is given, obgrep will attempt to guess the file type from the filename extension.


Print the number of matches


Full match, print matching-molecules only when the number of heavy atoms is also equal to the number of atoms in the SMARTS pattern

-i format

Specifies input and output format, see obabel(1) for available formats


Only print the name of the molecules

-t #

Print a molecule only if the pattern occurs # times inside the molecule


Invert the matching, print non-matching molecules


Note that in all examples, the SMARTS pattern is enclosed in single quotes '...' to ensure it is not changed by the shell.

Print all the molecules with a methylamine group:

obgrep 'CN' database.smi

Print all the molecules without a methylamine group:

obgrep -v 'CN' database.smi

Print the number of molecules without a methylamine group:

obgrep -v -c 'CN' database.smi

Print methylamine (if it exists in the file):

obgrep -f 'CN' database.smi

Print methylamine and/or methanol (if they exist):

obgrep -f 'C[N,O]' database.smi

Print all molecules with aromatic carbon in all SMILES files in the directory (i.e., *.smi)

obgrep 'c' *.smi

See Also

obabel(1), obfit(1), obrotate(1).

The web pages for Open Babel can be found at: <http://openbabel.org/>

A guide for constructing SMARTS patterns can be found at: <http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html>


The obgrep program was contributed by Fabien Fontaine

Open Babel is developed by a cast of many, including currrent maintainers Geoff Hutchison, Chris Morley, Michael Banck, and innumerable others who have contributed fixes and additions. For more contributors to Open Babel, see <http://openbabel.org/wiki/THANKS>

Referenced By

obabel(1), obchiral(1), obconformer(1), obfit(1), obprop(1), obrotamer(1), obrotate(1).

October 10, 2019