⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 structs.h

📁 c++编写的并行拉马克遗传算法的程序。实现分析对接程序
💻 H
字号:
/* structs.h */#ifndef _STRUCTS_H#define _STRUCTS_H#include "constants.h"/****************************************************************************** *      Name: structs.h                                                       * *  Function: Defines structures used in Molecular Applications.              * * Copyright: (C) Garrett Matthew Morris, TSRI                                * *----------------------------------------------------------------------------* *    Author: Garrett Matthew Morris, The Scripps Research Institute          * *      Date: SEP/07/1995                                                     * *----------------------------------------------------------------------------* *    Inputs: none                                                            * *   Returns: nothing                                                         * *   Globals: none                                                            * *----------------------------------------------------------------------------* * Modification Record                                                        * * Date     Inits   Comments                                                  * * 02/28/95 GMM     This header added                                         * ******************************************************************************//*____________________________________________________________________________*/#ifdef USE_INT_AS_LONG    typedef int  FourByteLong;    typedef unsigned int UnsignedFourByteLong;#else    typedef long FourByteLong;    typedef unsigned long UnsignedFourByteLong;#endif/*____________________________________________________________________________*/typedef struct coord {	double	x;		/* Cartesian x-coordinate */	double	y;		/* Cartesian y-coordinate */	double	z;		/* Cartesian z-coordinate */} Coord;/*____________________________________________________________________________*/typedef struct quat {	double	nx;		/* unit vector's x-component */	double	ny;		/* unit vector's y-component */	double	nz;		/* unit vector's z-component */	double	ang;		/* angle of rotation about unit-vector */	double	x;		/* quaternion's x-component */	double	y;		/* quaternion's y-component */	double	z;		/* quaternion's z-component */	double	w;		/* quaternion's w-component */	double	qmag;		/* quaternion's 4-D magnitude */} Quat;/*____________________________________________________________________________*/typedef struct state {	Coord	T;		/* coordinates of center of molecule */	Quat	Q;		/* rigid-body orientation */	double	tor[MAX_TORS];	/* torsion angles in radians */	int	ntor;		/* number of torsions in molecule */} State;/*____________________________________________________________________________*/typedef struct molecule {	float	crdpdb[MAX_ATOMS][SPACE];	/* original coordinates of atoms */	float	crd[MAX_ATOMS][SPACE];		/* current coordinates of atoms */	char    atomstr[MAX_ATOMS][MAX_CHARS];	/* strings describing atoms, from PDB file, cols,1-30.*/	int	natom;				/* number of atoms in molecule */	float	vt[MAX_TORS][SPACE];		/* vectors  of torsions */	int	tlist[MAX_TORS][MAX_ATOMS];	/* torsion list of movable atoms */	State	S;				/* state of molecule */} Molecule;/*____________________________________________________________________________*/typedef struct rotamer {	double	tor[MAX_TORS_IN_ROTAMER];	/* torsion angles in radians */	int	ntor;		/* number of torsions */} Rotamer;/*____________________________________________________________________________*/typedef struct atom {    Coord	pt;		/* transformed point */    Coord	pt0;		/* untransformed point, original PDB coords */    double	q;		/* partial atomic charge */    Boole	Bq;		/* TRUE if the atom has a charge */    int 	type;		/* atom type */    Boole	isH;		/* TRUE if atom is a hydrogen */    int 	id;		/* serial ID */    char	name[ 5 ];	/* PDB atom name; formerly "pdbaname" */    char	str[MAX_CHARS];	/* PDB atom string; formerly "atomstuff" */    int 	nnb;		/* number of non-bonds for this atom */} Atom;/*____________________________________________________________________________*/typedef struct bond {    Atom	*atom1;    Atom	*atom2;    double	bondLength;    Coord 	bondVector;} Bond;/*____________________________________________________________________________*/typedef struct pair_id {    Atom  	*atom1;		/* pointer to one atom in pair */    Atom  	*atom2;		/* pointer to other atom */} PairID;/*____________________________________________________________________________*/typedef struct dist_constraint {    PairID	bond;		/* two atoms defining distance constraint */    double	length;		/* current bond length */    double	lower;		/* lower bound on distance */    double	upper;		/* upper bound on distance */} DisCon;/*____________________________________________________________________________*/typedef struct torsion {    PairID	rotbnd;		/* atom serial-IDs of rotatable bond */    int 	nmoved;		/* number of atoms moved by this */    int 	IDmove[MAX_ATOMS];  /* atom serial-IDs of atoms moved by this */    Coord	vt;		/* bond-vector of rotatable bond */} Torsion;/*______________________________________________________________________________** Molecular fragments, side-chains, even entire ligands */typedef struct group {	int	natom;			/* Number of atoms in fragment */	Atom	atm[MAX_ATOMS];		/* Atom data */	int	ntor;			/* Number of torsions in fragment */	Torsion	tors[MAX_TORS];		/* Torsion data */	int	nnb;			/* Number of non-bonds in fragment */	PairID	nbs[MAX_NONBONDS];	/* Non-bond data */	Boole   B_constrain;		/* TRUE if any distance constraints */	DisCon  distcon;		/* Distance constraint data */	char    pdbqfilnam[MAX_CHARS];	/* PDBQ filename holding these data */} Group;#endif/* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -