CSB Home | Search | Table of Contents | General Information |
Babel was written by Pat Walters and Matt Stahl Dolata Research Group Department of Chemistry University of Arizona Tucson, AZ 85721 (babel@mercury.aichem.arizona.edu). It will interconvert many coordinate file types.
Alchemy AMBER PREP Ball and Stick Biosym .CAR Boogie Cacao Cartesian Cambridge CADPAC CHARMm Chem3D Cartesian 1 Chem3D Cartesian 2 CSD CSSR CSD FDAT CSD GSTAT Feature Free Form Fractional GAMESS Output Gaussian Z-Matrix Gaussian Output Hyperchem HIN MDL Isis Mac Molecule Macromodel Micro World MM2 Input MM2 Ouput MM3 MMADS MDL MOLfile MOLIN Mopac Cartesian Mopac Internal Mopac Output PC Model PDB Quanta ShelX Spartan Spartan Semi-Empirical Spartan Mol. Mechanics Sybyl Mol Sybyl Mol2 Conjure Maccs 2d Maccs 3d UniChem XYZ XYZ XED
Alchemy Ball and Stick Batchmin Command Cacao Cartesian Cacao Internal CAChe MolStruct Chem3D Cartesian 1 Chem3D Cartesian 2 ChemDraw Conn. Table Conjure Conjure Template CSD CSSR Feature Fenske-Hall ZMatrix Gamess Input Gaussian Cartesian Gaussian Z-matrix Gaussian Z-matrix tmplt Hyperchem HIN Icon 8 IDATM Mac Molecule Macromodel Micro World MM2 Input MM2 Ouput MM3 MMADS MDL Molfile Mopac Cartesian Mopac Internal PC Model PDB Report Spartan Sybyl Mol Sybyl Mol2 MDL Maccs file XED UniChem XYZ XYZ
The babel program may be invoked using command line options or menus. First, set the path to the file formats:
setup babel (or source /sgi/local/setup/babel.set)
The menu interface can be accessed by typing:
babel -m
The command line input has the following format:
babel [-v] -i (in type) (infile) [keywords] -o (out type) (outfile ) [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.
t -- Alchemy file prep -- AMBER PREP file bs -- Ball and Stick file car -- Biosym .CAR file boog -- Boogie file caccrt -- Cacao Cartesian file cadpac -- Cambridge CADPAC file charmm -- CHARMm file c3d1 -- Chem3D Cartesian 1 file c3d2 -- Chem3D Cartesian 2 file cssr -- CSD CSSR file fdat -- CSD FDAT file c -- CSD GSTAT file feat -- Feature file f -- Free Form Fractional file gamout -- GAMESS Output file g -- Gaussian Z-Matrix file gauout -- Gaussian Output file hin -- Hyperchem HIN file isis -- MDL Isis file macmol -- Mac Molecule file k -- Macromodel file micro -- Micro World file mi -- MM2 Input file mo -- MM2 Ouput file mm3 -- MM3 file mmads -- MMADS file mdl -- MDL MOLfile file molen -- MOLIN file ac -- Mopac Cartesian file ai -- Mopac Internal file ao -- Mopac Output file pc -- PC Model file p -- PDB file quanta -- Quanta file shelx -- ShelX file spar -- Spartan file semi -- Spartan Semi-Empirical file spmm -- Spartan Mol. Mechanics file mol -- Sybyl Mol file mol2 -- Sybyl Mol2 file con -- Conjure file maccs2 -- Maccs 2d file maccs3 -- Maccs 3d file unixyz -- UniChem XYZ file x -- XYZ file xed -- XED file
The -o flag is used to set the output file type. The following output type codes are currently supported.
diag -- DIAGNOTICS file t -- Alchemy file bs -- Ball and Stick file bmin -- Batchmin Command file caccrt -- Cacao Cartesian file cacint -- Cacao Internal file cache -- CAChe MolStruct file c3d1 -- Chem3D Cartesian 1 file c3d2 -- Chem3D Cartesian 2 file d -- ChemDraw Conn. Table file con -- Conjure file contmp -- Conjure Template file cssr -- CSD CSSR file feat -- Feature file fhz -- Fenske-Hall ZMatrix file gamin -- Gamess Input file gcart -- Gaussian Cartesian file g -- Gaussian Z-matrix file gotmp -- Gaussian Z-matrix tmplt file hin -- Hyperchem HIN file icon -- Icon 8 file i -- IDATM file macmol -- Mac Molecule file k -- Macromodel file micro -- Micro World file mi -- MM2 Input file mo -- MM2 Ouput file mm3 -- MM3 file mmads -- MMADS file mdl -- MDL Molfile file ac -- Mopac Cartesian file ai -- Mopac Internal file pc -- PC Model file p -- PDB file report -- Report file spar -- Spartan file mol -- Sybyl Mol file mol2 -- Sybyl Mol2 file maccs -- MDL Maccs file file xed -- XED file unixyz -- UniChem XYZ file x -- XYZ file
For example: 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.
I have received mail from a number of people who have complained that the Z-matrix created by Babel contains very long "bonds" (often 5 to 10 angstroms). This is not a bug in the Cartesian to internal algorithm. It is actually brought about by a poorly numbered structure.
The Cartesian to internal algorithm goes kind of like this :
put atom 1 at the origin for i = 2 to num_atoms { find the closest atom with atom number 60 i call that atom NA(i) }
If atoms are not numbered properly you end up with very long bonds. Having these "bonds" in your Z-matrix tends to create all sorts of problems during geometry optimization.
I've added a new flag, "-renum" to Babel 1.1. If this flag is used, Babel will attempt to renumber the structure so that the Z-matrix is contiguous.
Renumbering in Babel 1.1 is accomplished using the -renum flag. There are two ways to this. If you use -renum by itself, Babel will use atom 1 in the input structure as atom 1 in the Z-matrix. If you use -renum X where X is an integer, Babel will use atom X as atom 1 in the Z-matrix.
Examples:
babel -ix myfile.xyz -renum -oai myfile.dat "AM1 MMOK T=30000"
will create a MOPAC input file with atom 1 from myfile.xyz as atom 1 in myfile.dat.
babel -ix myfile.xyz -renum 9 -oai myfile.dat "AM1 MMOK T=30000"
will create a MOPAC input file with atom 9 from myfile.xyz as atom 1 in myfile.dat.
There is currently one limitiation to the -renum flag. The file must be contiguous. The method won't currently work for bimolecular complexes or anything like that. I'll try and fix this up in the near future.
If you run into any problems with this, please don't hesitate to contact me.
Most file formats are now supported as multi-structure. 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 "1-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
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
Now that Professor Gasteiger's group has made the NCI database available as 3D structures, I'm sure that alot of people will be interested in converting the database to other formats. Many people people also want to add the hydrogens which are missing in the NCI 3D database.
Babel is capable of reading the NCI database using the -imaccs3 (not the -imaccs2) flag. Here are a couple of examples of how to convert NCI 3D.
If you want to convert the entire database to one huge Sybyl mol2 file, you would type the following:
babel -imaccs3 nci3d.mol all -omol2 CON > nci3d.mol2
If you want to convert the entire database to one huge Sybyl mol2 file and add hydrogens, you would do the following:
babel -h -imaccs3 nci3d.mol all -omol2 CON > nci3d.mol2
Let's say you're slightly less ambitious and you only want to look at the first 500 structures. Then you would do this:
babel -h -imaccs3 nci3d.mol "1-500" -omol2 CON > nci3d.mol2
If you wanted to look at the next 500 structures you would do this:
babel -h -imaccs3 nci3d.mol "501-1000" -omol2 CON > nci3d.mol2
To read the first 100 structures and output them to individual MacroModel files named nci0001.dat, nci0002.dat, nci0003.dat, etc., you would type:
babel -h -imaccs3 nci3d.mol "1-100" -ok nci.dat
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
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 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.
Babel 1.1 features a number of improvements aimed at the Gaussian user.
1. A (hopefully) bulletproof Gaussian reader.
2. A new reader for gaussian output files which reads all the steps from a minimization. These steps can then be written to a multistructure file which can be animated with X-mol or whatever.
To extract all the steps from a Gaussian output file into a single multi-structure XYZ file you would do this:
babel -igauout file.out all -ox CON > file.xyz
To extract all the steps from a Gaussian output file into a series of files called file0001.xyz, file0002.xyz, etc. You would do this:
babel -igauout file.out all -ox file.xyz
To extract only the last step from a Gaussian output file you would do
this:
babel -igauout file.out last -ox file.xyz
3. We added the facility to define the header information for your Gaussian files. To do this you need to have a file with the header info in either the current directory (checked first) or the directory pointed to by the BABEL_DIR environment variable (checked second). If the header file isn't present Babel just puts in its default header information. This can be handy if you constantly use the same basis sets and run the same sorts of jobs. There is a sample gauss.hdr (/sgi/local//babel-1.1g/gauss.hdr) in the archive.
Quanta files are binary and different systems use different binary representations (big endian vs. little endian). So, if you are going to use Babel on a Quanta file you should run Babel on the same type of machine which created the Quanta file.
I made a few concessions with this file format. First, I just translated the Quanta atom types to element types and let Babel assign hybridizations. Quanta has alot of strange atom types (i.e. Carbon with 2 Flourines attached) which don't translate easily to the hybidizized types we use. Second, I found that the bonding information found in the Quanta files was not alway reliable so I had Babel assign connectivities.
There is a file called quanta.lis which should be kept in the directory pointed to by BABEL_DIR. This file contains the numeric quanta type and corresponding element type. If anything is missing or incorrect you can just edit this file and fix it.
CURRENT LIMITATIONS
Macromodel - bond orders are not always correctly assigned for conjugated pi systems.
PDB files - When reading PDB files Babel assigns bonds by 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.
Babel 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.
CSB Home | Search | Table of Contents | General Information |
Center for Structural Biology (www.csb.yale.edu),
Yale University (www.yale.edu)
Contact: webadmin(at)mail^csb^yale^edu Last Modified: Friday, 26-Mar-1999 16:54:38 EST by P. Fleming |