|
From: Fabien F. <ffo...@im...> - 2003-10-22 09:47:32
|
Dear all, I have commited two new utilities in the 'tools' directory of the openbabel module. The new tools have a usage very similar to obgrep, i.e. they all require a SMART pattern and at least one input files, they guess the input file format from the filename extention, and they print the results to the standard output. The first one is obfit, It uses the qtrfit function of the library to superimpose two molecules. Its most interesting feature is that the atoms to fit are defined by the SMART pattern given by the user. I found it pretty useful to align congeneric series of molecules on a common structural scaffold for 3D-QSAR studies. Probably, It can be useful for the overlay of outputs of conformational sampling. here is an example: obfit "N1(C)CCCCC1" fixed.sdf moving.sdf align all the molecules of 'moving.sdf' on a single molecule of 'fixed.sdf' by superimposing them on its N-methylpiperidyl moiety. If a molecule in 'moving.sdf' doesn't have the N-methylpiperidyl substructure, it is printed without any transformation. The second tool is called obrotate. It rotates the tortional angle of a molecules so that its angle value is equal to the one defined by the user. In other words, it does the same as what would do a user setting an angle in a mollecular modelling package, but much faster and in batch mode. Imagine you want to define the conformation of a lot of molecules with a pyridyl scaffold and substituted with an aliphatic chain at 3-position, for example for docking or 3D-QSAR puposes. To set the value of the first tortional to 90 degrees, the command line would be: obrotate "c1ccncc1CCC" pyridines.sdf 5 6 7 8 90 6 and 7 define the bond to rotate in the SMART pattern, i.e. c1C bond, 5 and 8 are the atoms of the SMART pattern used to set the angle value. The two atoms used to set the angle value do not have to be connected to the atoms of the bond to rotate, for example, the following line: obrotate "c1ccncc1CCC" pyridines.sdf 4 6 7 8 90 produces the same output, but uses the nitrogen atom as a reference for the angle value instead of the aromatic carbon. The order of the atom's definition matters, so the program knows which part of the molecule is moving and which part is kept fixed, i.e.: obrotate "c1ccncc1CCC" pyridines.sdf 5 6 7 8 90 keeps the pyridyl ring fixed and moves the aliphatic chain while obrotate "c1ccncc1CCC" pyridines.sdf 8 7 6 5 90 keeps the aliphatic chain fixed and moves the pyridyl ring That's all, Hope these utilities will be useful for people work Fabien -- Fabien Fontaine Engineer in Biotechnology Computer-Assisted Drug Design Laboratory Research Group on Biomedical Informatics (GRIB) - IMIM/UPF Passeig Maritim de la Barceloneta, 37-49 Tel: +34 93 224 08 94 E-08003 Barcelona (Spain) Fax: +34 93 224 08 75 e-mail: ffo...@im... http://www.imim.es/grib |