Babel version 1.03 Copyright (C) 1992,1993,1994 by Pat Walters and Matt Stahl Dolata Research Group Department of Chemistry University of Arizona Tucson, AZ 85721 babel@mercury.aichem.arizona.edu This software is provided on an "as is" basis, and without warranty of any kind, including but not limited to any implied warranty of merchantability or fitness for a particular purpose. In no event shall the authors or the University of Arizona be liable for any direct, indirect, incidental, special, or consequential damages arising from use or distribution of this software. The University of Arizona also shall not be liable for any claim against any user of this program by any third party. PLEASE REGISTER We don't want any money for Babel (unless of course you insist), but we would like to know who has a copy so that we can notify people about updates and bug fixes. You can register by sending e-mail to babel@mercury.aichem.arizona.edu and letting us know the following: -who you are -where you are -what platform you're running Babel on -which file conversions you commonly use We are very open to suggestions. If there's anything you like or don't like about the program please let us know. Also if there are file formats you would like to see supported let us know. -------------------------------------------------------------------------- Thanks for downloading this copy of babel. With this program we hope to implement a general framework for converting between file formats used for molecular modeling. This is the first version of the manual, and we are sorry to say that it's rather meager. However, the program is very easy to use and we're sure that by scanning over these few pages you'll be babbling away before you know it. This manual is divided into 3 sections. I. Installation II. Using Babel III. Other Stuff I. INSTALLATION UNIX INSTALLATION Installation is very simple. 1. Special Instructions - Unless you have a Sun Workstaion with an old Sabre C compiler (or other non-ansi C compiler) or a Dec machine running Ultrix goto step 2. SUN WORKSTATIONS WITH THE OLD (NON-ANSI) SABRE C COMPILER If you have a Sun workstation with the old Sabre C compiler or another non-ANSI C-compiler you must use gcc to compile babel. If you are using gcc to compile babel, change line 10 in the makefile from CC = cc to CC = gcc DEC STATIONS RUNNING ULTRIX - If you have gcc follow the instructions above to use gcc as the compiler. Otherwise change line 1 in the Makefile from CFLAGS = -O to CFLAGS = -O -ULTRIX 2. Make the program by typing make. 3. Set the environment variable BABEL_DIR to point to the directory where the files types.lis and elements.lis are stored. i.e. If the files are in /usr/local/babel type the following setenv BABEL_DIR /usr/local/babel If you plan to use babel frequently then you will probably want to place the line above in your .cshrc file. II. USING BABEL The babel program may be invoked using command line options or menus. The menu interface can be accessed by typing: babel -m The command line input has the following format: babel [-v] -i [keywords] -o [keywords2] All arguments surrounded by [] are optional. The -v flag is optional and is used to produce verbose output. The -i flag is used to set the input type. The following input type codes are currently supported. ac -- Mopac Cartesian file ao -- Mopac Output file ai -- Mopac Internal file c -- CSD GSTAT file cf -- CSD CSSR file f -- Free Form Fractional file k -- Macromodel file micro -- Micro World file mo -- MM2 Ouput file p -- PDB file t -- Alchemy file x -- XYZ file prep -- AMBER PREP file molin -- MOLIN file boog -- Boogie file caccrt -- Cacao Cartesian file macmol -- Mac Molecule file c3d1 -- Chem 3D Cartesian 1 file c3d2 -- Chem 3D Cartesian 2 file bs -- Ball and Stick file g -- Gaussian Z-Matrix file gauout -- Gaussian Output file gamout -- GAMESS Output file mmads -- MMADS file shelx -- ShelX file mol2 -- Sybyl Mol2 file fdat -- CSD FDAT file charmm -- CHARMm file mdl -- MDL Molfile file The -o flag is used to set the output file type. The following output type codes are currently supported. diag -- DIAGNOTICS file ac -- Mopac Cartesian file ai -- Mopac Internal file g -- Gaussian Z-matrix file gcart -- Gaussian Cartesian file i -- IDATM file k -- Macromodel file macmol -- Mac Molecule file micro -- Micro World file mi -- MM2 Input file mo -- MM2 Ouput file p -- PDB file report -- Report file t -- Alchemy file caccrt -- Cacao Cartesian file x -- XYZ file bs -- Ball and Stick file c3d1 -- Chem 3D Cartesian 1 file c3d2 -- Chem 3D Cartesian 2 file d -- ChemDraw Connection Table file mdl -- MDL Molfile file gamin -- Gamess Input file mmads -- MMADS file mol2 -- Sybyl Mol2 file To convert an MM2 output file named mm2.grf to a MOPAC internal coordinate input file named mopac.dat the user would enter: babel -imo mm2.grf -oai mopac.dat To perform the above conversion with the keywords PM3 GEO-OK T=30000 in the file mopac.dat the user would enter: babel -imo mm2.grf -oai mopac.dat "PM3 GEO-OK T=30000" Note the use of the double quotes around the keywords. HYDROGEN ADDITION/DELETION Babel has the ability to add and delete hydrogens from any file format. Hydrogens can be added by supplying the -h flag, hydrogens may be deleted by supplying the -d flag. To add hydrogens a CSD fractional coordinate file called input.cssr and output the file as a MOPAC internal coordinate input file named output.add the user would type: babel -icf input.cssr -h -oai output.add To delete hydrogens from a Macromodel file named benzene.dat and output the file as an XYZ file name benzene.new the user would type babel -ik benzene.dat -d -ox benzene.new MULTI-STRUCTURE FILES Babel will currently read multi-structure files produced by Macromodel. With this type of file the user has two output options - produce one output file for each structure in the file - produce a multi-structure output file. When converting a multi structure file it is necessary to supply a keyword after the input file name. This keyword specifies the number of files to extract from the iput file. The keyword can be either a number or the word all. Hopefully the examples below will make this a little more clear. To extract all the structures from a multi-structure Macromodel file called mols.out and write the structures as pdb files the user would type: babel -ik mols.out all -op mols.pdb The output files would be written as mols1.pdb, mols2.pdb, etc. To extract only the first five structures from a multi-structure Macromodel file and write the structures as mopac internal coordinate file the user would type babel -ik mols.out 5 -oai mols.int The output files would be written as mols1.int, mols2.int. etc. It is sometimes necessary to convert a mulit-structure Macromodel file into a multi-structure file of another type. This can be a handy way of viewing Macromodel movies with the Xmol program. Babel accomplishes this by sending the output to the console using the output file name CON (note the use of uppercase letters). Once again this is better explained by an example. To convert all the structures in a multi-structure Macromodel file called mols.out to a multi-structure XYZ file called mols.xyz the user would type: babel -ik mols.out all -ox CON > mols.xyz MACMOLECULE FILES Since MacMolecule only uses single letter it is often necessary to use different names (i.e. X for Cl). The user can specify substituted atom names on the command line. To read a MacMolecule file named foo.bar where X is substituted for Cl and Y is substitued for Cobalt and write an MM2 output type file named bar.baz the user would type: babel -imacmol "X/Cl Y/Co" foo.bar -omo bar.baz CHEMDRAW FILES The user can supply a keyword to indicate the viewing axis for the ChemDraw projection by supplying a keyword. To convert an XYZ file named test.xyz to a ChemDraw file named test.cdy with the view down the y axis the user would type: babel -ix test.xyz -od test.cdx x The default view is down the z axis. Babel will also write MDL Molfile type files which can be read by ChemDraw, ChemIntosh, ChemWindow, and Chem3D. GAMESS FILES ---GAMESS Output Files--- The output files are the .log files created by redirecting screen output. Babel first looks for a set of geometry optimized coordinates. If the output file does not contain geometry optimized coordiantes Babel will use the input coordiantes. If Babel uses the input coordiantes it will convert from Bohr to Angstroms. To read a GAMESS output file named exam01.log and convert it to an XYZ file named exam01.xyz the user would type: babel -igamout exam01.log -ox exam01.xyz ---GAMESS Input Files--- Babel is capable of creating three types of GAMESS input files COORD=CART Cartesian Coordinates COORD=ZMAT Gaussian Style Z-matrix COORD=ZMTPC MOPAC Style Z-matrix Babel does not calculate the point group for you. You'll have to pull out your copy of Cotton and insert that manually. You'll also have to specify your own $SYSTEM, $BASIS, $SCF, $GUESS, etc. cards. The type of input file is controlled by specifying a keyword on the Babel command line. The keywords are cart - Cartesian zmt - Gaussian style Z-matrix zmtmpc - MOPAC style Z-matrix To read an xyz file named coords.xyz and convert it to a GAMESS input file in Cartesian coordiantes named coords.in the user would type: babel -ix coords.xzy -ogamin coords.in cart To do the same conversion by have the GAMESS input in Gaussian Z-matrix style the user would type babel -ix coords.xzy -ogamin coords.in zmt If no keyword is specified the input file will be in Cartesian Coordiantes. III. OTHER STUFF CURRENT LIMITATIONS Macromodel - bond orders are not always correctly assigned for conjugated pi systems. PDB files - When reading PDB files Babel assigns bonds are examining interatomic distances and assigning a bond where the interatomic distance is less than the sum of the atoms convalent radii. There is code in read_pdb.c to read connections specified in CONECT records, but this code is commented out. We did this because a number of files available from Brookhaven have CONECT records specified for only a few of the bonds in the molecule. We realize that we could determine connectivity in the PDB file by looking at atom ids and residue types, but we have put this in yet. This feature will probably be added soon. If you would like to use the explicit CONECT records in a PDB file see Appendix A. When writing PDB files all residue types are assigned as UNK. REPORTING BUGS Noone is perfect, and we're sure that there are still a few glitches in this program. If you happen to find such a glitch please send a mail message to babel@mercury.aichem.arizona.edu describing the nature of the problem. If possible please include the input file so we can use it to determine the cause of the problem. CREDIT WHERE CREDIT IS DUE Bable began it's life a program called convert written by Ajay Shah. Babel in its current form was written by Pat Walters with some help from Matt Stahl. COMING ATTRACTIONS We consider Babel to be a constantly evolving program. Hopefully modules to handle new file formats will be contributed and the program will become useful to an even wider range of chemists. We currently have a number of additions to Babel underway at the U of A. Among these are: 1. A real users manual 2. A developers guide which will assist programmers in creating new modules (Actually I have finished a draft of the Babel Developers Guide. If you'd like a copy send me some mail - pat@mercury.aichem.arizona.edu). PLEASE WRITE We would really appreciate any and all input from babel users. Please send comments, praise, flames, and job offers :-) to babel@mercury.aichem.arizona.edu Have fun, Pat Walters Chief Cook and Bottle-Washer