babel-1.6
|
Makefile,
README.1ST,
addh.c,
addh2.c,
aromatic.c,
assbnd.c,
asstypes.c,
babel.h,
bblmacs.h,
bblmast.h,
bbltyp.h,
block.c,
bndord.c,
bo.c,
buildct.c,
combine.c,
convert.c,
delatms.c,
delh2o.c,
element.lis,
filesrch.c,
fileutil.c,
gastchg.c,
gauss.hdr,
htoend.c,
int2cart.c,
intcart.c,
menus.c,
miniums.c,
molwt.c,
new.lis,
nodummy.c,
orient.c,
precip.c,
printbad.c,
progress.c,
psgvb.hdr,
quanta.lis,
rdalch.c,
rdampout.c,
rdbalst.c,
rdbgf.c,
rdboogie.c,
rdc3d.c,
rdcacao.c,
rdcadpac.c,
rdcharmm.c,
rdcsd.c,
rddock.c,
rddpdb.c,
rdelmnts.c,
rdfdat.c,
rdfeat.c,
rdfract.c,
rdg96.c,
rdgamout.c,
rdgauout.c,
rdgzmat.c,
rdhin.c,
rdinsite.c,
rdint.c,
rdirc.c,
rdisis.c,
rdm3d.c,
rdmacmod.c,
rdmacmol.c,
rdmdl.c,
rdmicro.c,
rdmm2.c,
rdmm2in.c,
rdmm3.c,
rdmolen.c,
rdmopac.c,
rdmopcrt.c,
rdpcmod.c,
rdpdb.c,
rdprep.c,
rdpsgout.c,
rdpsgvin.c,
rdquanta.c,
rdschak.c,
rdshelx.c,
rdsmiles.c,
rdspart.c,
rdspmm.c,
rdspsemi.c,
rdsybmol.c,
rdsybyl.c,
rdtypes.c,
rdunichm.c,
rdwiz.c,
rdxed.c,
rdxyz.c,
renum.c,
report.c,
rings.c,
ringutil.c,
sets.c,
smilesto.c,
spline.c,
strngutl.c,
tokenst.c,
tosmiles.c,
tree.c,
typbybo.c,
types.lis,
umslist.c,
utils.c,
vectors.c,
wralch.c,
wrbalst.c,
wrbgf.c,
wrbmin.c,
wrbox.c,
wrc3d.c,
wrcacao.c,
wrcache.c,
wrcacint.c,
wrchdrw.c,
wrcontmp.c,
wrcsr.c,
wrcssr.c,
wrdock.c,
wrdpdb.c,
wrfeat.c,
wrfh.c,
wrg96.c,
wrgamess.c,
wrgau.c,
wrgaucrt.c,
wrhin.c,
wricon.c,
wrint.c,
wrisis.c,
wrm3d.c,
wrmaccs.c,
wrmacmod.c,
wrmcmol.c,
wrmdl.c,
wrmicro.c,
wrmimic.c,
wrmiv.c,
wrmm2.c,
wrmm3.c,
wrmopac.c,
wrpcmod.c,
wrpdb.c,
wrpsgv.c,
wrpsgvz.c,
wrsmiles.c,
wrspart.c,
wrsybmol.c,
wrsybyl.c,
wrtinker.c,
wrtorlst.c,
wrunichm.c,
wrwiz.c,
wrxed.c,
wrxyz.c
|
|
|
/*****
This file is part of the Babel Program
Copyright (C) 1992-96 W. Patrick Walters and Matthew T. Stahl
All Rights Reserved
For more information please contact :
babel@mercury.aichem.arizona.edu
--------------------------------------------------------------------------------
FILE : bbl_types.h
AUTHOR(S) : Pat Walters
DATE : Constantly evolving
******/
#ifndef __BABEL_BBLTYP_H__
#define __BABEL_BBLTYP_H__
#include
#include
#include
#include
#include
#include
#include
#include "bblmacs.h"
enum file_type {
none, mopac_cartesian, mopac_internal, mopac_output, macromodel,
mm2_output, pdb, csd_gstat, xyz, chemdraw,
idatm, mm2_input, alchemy, csd_cssr, free_fract,
mac_molecule, report, amber_prep, molin, boogie,
caccrt, ball_and_stick, chem3d1, chem3d2, micro_world,
molfile, gamess_output, gamess_input, mmads, diagnostics,
shelx, csd_fdat, charmm, gaussian_output,
gaussian_input, gaussian_cart, hyperchem_hin, biosym_car, cadpac,
cache_out, mm3, sybyl_mol, sybyl_mol2, spartan, quanta, molgen, wizard,
feature, pcmodel, spart_semi, cacao_int, fenske_zmat,spart_mm,
gaussian_template,bmin_com, conjure_tmplt, icon8, maccs, maccs2d,
maccs3d, xed, unixyz, isis, dock, dock_pdb, bgf, m3d,
psgvb_input, psgvb_output, psgvb_cart, psgvb_zmat,
csr, smiles, gaussian_94, torlist, schakal, mol_inventor,
gr96A,gr96N, tinker,box
};
enum op_type {noaction, input, output};
enum type_err {zero, dummy, all_caps};
typedef struct
{
enum file_type type;
char *type_name;
char *code;
enum op_type operation;
#ifdef __cplusplus
int (*func)(FILE *fp,struct ums *mol);
#else
int (*func)();
#endif
} babel_rec;
typedef char char3[3];
typedef struct
{
int a,b,c,d;
} torsion_rec;
typedef struct
{
int a,b,c;
} angle_rec;
typedef struct
{
int setlen;
int *set;
} set_type;
typedef struct
{
int number;
char name[3];
double cov_rad;
double bond_ord_rad;
double vdw_rad;
double bs_rad;
int max_bonds;
int color;
double red;
double green;
double blue;
} element_type;
typedef struct
{
double x,y,z;
} coord_type;
typedef struct
{
coord_type point;
char type[5];
int max_bonds;
int valence;
int atomic_number;
int connected_atoms[MAX_CONNECTIONS];
int bond_order[MAX_CONNECTIONS];
double radius;
double bond_ord_rad;
double dble;
int organic;
int redo;
int pos[3];
double charge;
set_type *atm_set;
} atom_type;
typedef struct
{
int start;
int end;
int bond_order;
} connect_type;
typedef struct
{
double r;
double w;
double t;
/* int n; */
int na;
int nb;
int nc;
} int_type;
typedef struct
{
char default_extension[BUFF_SIZE];
char base_name[BUFF_SIZE];
char infile_name[BUFF_SIZE];
char outfile_name[BUFF_SIZE];
char input_keywords[BUFF_SIZE];
char output_keywords[BUFF_SIZE];
char del_str[BUFF_SIZE];
babel_rec input_info;
babel_rec output_info;
int verbose;
int use_menus;
int do_add_hydrogens;
int do_delete_atoms;
int the_size;
int multi;
int lower_limit;
int upper_limit;
int spline;
int increment;
int renum;
int new_base;
int center;
int align;
int precipitate;
int new_file;
int calc_charges;
int orient;
int no_dummy;
int push_hydrogens;
} bbl_control;
/*---------- structures for ring detection --- */
typedef struct
{
int level;
int ancestor;
} spanning_tree;
typedef struct
{
int length;
int bogus;
set_type *path_set;
int *path_atoms;
int closure;
int found;
} path;
typedef struct
{
int count;
path *ring_list;
} ring_struct;
typedef struct
{
int num;
set_type *ring_atms;
set_type *arom_atms;
set_type *arom_rings;
set_type **rings;
} ring_info;
/*--------------------------------------------*/
/*************
HUGEPTR as defined in the struct below is a maco
which defines HUGEPTR as the keyword huge when #define MSDOS
is present or as nothing when #define MSDOS is absent. This is
necessary because of the lovely method Intel uses to segment memory.
The macros are defined in bblmacs.h
PW - 072094
****************/
typedef struct
{
double A,B,C;
double Alpha,Beta,Gamma;
} fract_type;
typedef struct
{
int serial_num;
int chain_num;
int res_num;
char res_type[6];
char atm_type[6];
} res_list;
struct ums
{
bbl_control *control;
ring_struct *rings;
ring_info *ring_info;
char default_extension[20];
int num_atoms;
int num_bonds;
int num_connections_initialized;
int num_residues_initialized;
int num_internal_initialized;
char title[BUFF_SIZE];
double energy;
res_list HUGEPTR *residues;
atom_type HUGEPTR *atoms;
connect_type HUGEPTR *connections;
int_type HUGEPTR *internal;
fract_type HUGEPTR *fract;
struct ums *next;
};
typedef struct ums ums_type;
/* structs for miniums functions */
struct mini_ums_type
{
int num_atoms;
double energy;
coord_type *atoms;
struct mini_ums_type *next;
};
typedef struct mini_ums_type mini_ums;
typedef struct
{
int atom_number;
int heavy_atoms;
} heavy_rec;
typedef struct
{
char name[8];
int number;
} pdb_type_rec;
typedef struct
{
char *text;
enum file_type type;
int keywords_required;
} menu_type;
typedef struct
{
double x,y,z;
} vect_type;
typedef struct
{
double a1, b1, c1;
double a2, b2, c2;
double a3, b3, c3;
} matrix_3x3;
typedef struct
{
double x;
double y;
double z;
int num;
double dist;
} temp_atom_rec;
typedef char warning[80];
typedef struct
{
char sym[10];
double val;
} zsymbol;
typedef struct
{
int level;
int ancestor;
int kids;
int kid[MAX_CONNECTIONS];
} z_tree;
/* structure and macros for set operations */
#define SETWORD 32 /* platform dependant - should == sizeof(int) */
#define LowBit(set, bit)\
{register int m;\
if (set != 0)\
{\
bit = 31;\
if (set != 0x80000000) {\
if (m = (set & 0x0000ffff)) {set = m; bit -= 16;}\
if (m = (set & 0x00ff00ff)) {set = m; bit -= 8;}\
if (m = (set & 0x0f0f0f0f)) {set = m; bit -= 4;}\
if (m = (set & 0x33333333)) {set = m; bit -= 2;}\
if (m = (set & 0x55555555)) {set = m; bit -= 1;}}}\
else bit = -1;}
static int bitsoff[SETWORD] =
{
0xFFFFFFFF,0xFFFFFFFE,0xFFFFFFFC,0xFFFFFFF8,0xFFFFFFF0,0xFFFFFFE0,0xFFFFFFC0,
0xFFFFFF80,0xFFFFFF00,0xFFFFFE00,0xFFFFFC00,0xFFFFF800,0xFFFFF000,0xFFFFE000,
0xFFFFC000,0xFFFF8000,0xFFFF0000,0xFFFE0000,0xFFFC0000,0xFFF80000,0xFFF00000,
0xFFE00000,0xFFC00000,0xFF800000,0xFF000000,0xFE000000,0xFC000000,0xF8000000,
0xF0000000,0xE0000000,0xC0000000,0x80000000
};
#define biton(seta,member) seta->set[(member / SETWORD)] |= \
(1 << (member % SETWORD));
#define bitoff(seta,member) seta->set[(member / SETWORD)] &= \
(~(1 << (member % SETWORD)));
#define bit_is_on(seta,member) (seta->set[(member/SETWORD)]>>\
(member % SETWORD)&1)
enum coord_state {linear, trigonal, tetrahedral, octahedral};
typedef struct
{
int ptr;
int *bond;
int *choice;
} bnd_stack;
typedef struct
{
double is,id,it,wsd,wdt;
} bnd_info;
typedef struct
{
char atm_typ[3];
double a,b,c,d;
} gast_param;
/*----------------------------------------------------
Data structures for Simon Kilvington's SMILES routines
-----------------------------------------------------*/
typedef void *block_ptr;
/* smiles connection table data */
#define md_MAXBONDS 8 /* max atoms that an atom can be bonded to */
#define md_NOBOND -1 /* used in bondedto[] arrays */
typedef char smilesbond_t;
#define SMILESBOND_NoBond ((smilesbond_t) 0)
#define SMILESBOND_Single ((smilesbond_t) 1)
#define SMILESBOND_Double ((smilesbond_t) 2)
#define SMILESBOND_Triple ((smilesbond_t) 3)
#define SMILESBOND_Aromatic ((smilesbond_t) 5)
typedef struct
{
char symbol[2];
int bondedto[md_MAXBONDS]; /* indices of atoms this one is bonded to */
smilesbond_t bondtype[md_MAXBONDS];
} smilesatom_t;
typedef struct
{
int natoms;
smilesatom_t atom[1]; /* array extends to atom[natoms-1] */
} smilescontab_t;
#define smiles_CONTABHDRSIZE (sizeof(smilescontab_t) - sizeof(smilesatom_t))
/*-------------------------------------------------------------------------------------*/
#include "babel.h"
#endif /* !__BABEL_BBLTYP_H__ */
|