127 {
"C", 0.76}, {
"O", 0.66}, {
"N", 0.71}, {
"S", 1.05}, {
"P", 1.11},
128 {
"H", 0.31}, {
"CL", 1.02}, {
"K", 2.03}, {
"NA", 1.66}, {
"MN", 1.61},
129 {
"CO", 1.50}, {
"NI", 1.24}, {
"CU", 1.32}, {
"ZN", 1.22}, {
"SE", 1.20},
130 {
"BR", 1.20}, {
"MG", 1.41}, {
"CA", 1.76}, {
"FE", 1.52}, {
"LI", 1.33},
131 {
"BE", 1.02}, {
"B", 0.85}, {
"F", 0.64}, {
"NE", 0.67}, {
"AL", 1.26},
132 {
"SI", 1.16}, {
"AR", 1.07}, {
"SC", 1.70}, {
"TI", 1.60}, {
"V", 1.53},
133 {
"CR", 1.39}, {
"GA", 1.24}, {
"GE", 1.21}, {
"AS", 1.21}, {
"KR", 1.21},
134 {
"RB", 2.20}, {
"SR", 1.95}, {
"Y", 1.90}, {
"ZR", 1.75}, {
"NB", 1.64},
135 {
"MO", 1.54}, {
"TC", 1.47}, {
"RU", 1.46}, {
"RH", 1.42}, {
"PD", 1.39},
136 {
"AG", 1.45}, {
"CD", 1.44}, {
"IN", 1.46}, {
"SN", 1.40}, {
"SB", 1.40},
137 {
"TE", 1.38}, {
"I", 1.39}, {
"XE", 1.40}, {
"CS", 2.44}, {
"BA", 2.15},
138 {
"LU", 1.75}, {
"HF", 1.70}, {
"TA", 1.62}, {
"W", 1.51}, {
"RE", 1.44},
139 {
"OS", 1.41}, {
"IR", 1.36}, {
"PT", 1.36}, {
"AU", 1.32}, {
"HG", 1.45},
140 {
"TL", 1.46}, {
"PB", 1.48}, {
"BI", 1.51}, {
"PO", 1.50}, {
"AT", 1.50},
141 {
"RN", 1.50}, {
"FR", 2.60}, {
"RA", 2.21}, {
"LR", 1.61}, {
"RF", 1.57},
142 {
"DB", 1.49}, {
"SG", 1.43}, {
"BH", 1.41}, {
"HS", 1.34}, {
"MT", 1.29},
143 {
"DS", 1.28}, {
"RG", 1.21}, {
"CN", 1.37}, {
"FL", 1.43}, {
"LV", 1.75},
144 {
"LA", 2.07}, {
"CE", 2.04}, {
"PR", 2.03}, {
"ND", 2.01}, {
"PM", 1.99},
145 {
"SM", 1.98}, {
"EU", 1.98}, {
"GD", 1.96}, {
"TB", 1.94}, {
"DY", 1.92},
146 {
"HO", 1.92}, {
"ER", 1.89}, {
"TM", 1.90}, {
"YB", 1.87}, {
"AC", 2.15},
147 {
"TH", 2.06}, {
"PA", 2.00}, {
"U", 1.96}, {
"NP", 1.90}, {
"PU", 1.87},
148 {
"AM", 1.80}, {
"CM", 1.69}, {
"BK", 1.68}, {
"CF", 1.68}, {
"ES", 1.65},
149 {
"FM", 1.67}, {
"MD", 1.73}, {
"NO", 1.76}, {
"HE", 0.46}, {
"\0", 0.00}
265 for(res=pdb; res!=
NULL; res=nextRes)
270 for(p=res; p!=nextRes;
NEXT(p))
289 for(p=res; p!=nextRes;
NEXT(p))
293 if(strncmp(p->
atnam,
"C ", 4) ||
294 strncmp(q->
atnam,
"N ", 4) ||
328 REAL r1, r2, bondDist;
329 r1 = findCovalentRadius(p->
element);
330 r2 = findCovalentRadius(q->
element);
331 bondDist = (r1+r2+tol);
333 if(
DISTSQ(p,q) <= bondDist*bondDist)
361 char *chain1,
int resnum1,
char *insert1,
362 char *chain2,
int resnum2,
char *insert2,
401 if((res1 !=
NULL) && (res2 !=
NULL))
410 for(p=res1; p!=res1next;
NEXT(p))
412 for(q=res2; q!=res2next;
NEXT(q))
435 for(i=0; covalentRadii[i].
element[0] !=
'\0'; i++)
437 if(!strcmp(element, covalentRadii[i].element))
439 return(covalentRadii[i].
radius);
463 for(cNum=0; cNum < p->
nConect; cNum++)
473 for(cNum=0; cNum < q->
nConect; cNum++)
509 for(i=cNum; i<pdb->
nConect; i++)
592 for(i=0; i<p->nConect; i++)
594 if(p->conect[i] !=
NULL)
600 atomNum = (p->conect[i])->atnum;
603 if(atomNum < indexSize)
604 newPtr = idxOut[atomNum];
651 int main(
int argc,
char **argv)
653 char *filename =
"test.pdb";
656 PDB *pdb1, *pdb2, *p;
659 if((fp=fopen(filename,
"r"))==
NULL)
661 fprintf(stderr,
"Can't open %s\n", filename);
667 fprintf(stderr,
"Can't read atoms from %s\n", filename);
675 fprintf(stderr,
"Stripping hydrogens failed\n");
681 fprintf(stderr,
"Failed to copy CONECT data\n");
685 printf(
">>> Original CONECT data\n");
695 printf(
">>> New CONECT data\n");
BOOL blAddConect(PDB *p, PDB *q)
BOOL blIsBonded(PDB *p, PDB *q, REAL tol)
int main(int argc, char **argv)
Include file for PDB routines.
BOOL blBuildConectData(PDB *pdb, REAL tol)
WHOLEPDB * blReadWholePDB(FILE *fpin)
void blWriteWholePDBTrailer(FILE *fp, WHOLEPDB *wpdb, int numTer)
BOOL blAddOneDirectionConect(PDB *p, PDB *q)
BOOL blIsConected(PDB *p, PDB *q)
BOOL blCopyConects(PDB *out, PDB *in)
void blDeleteAtomConects(PDB *pdb)
BOOL blDeleteAConectByNum(PDB *pdb, int cNum)
BOOL blAreResiduePointersBonded(PDB *res1, PDB *res2, REAL tol)
PDB * blFindResidue(PDB *pdb, char *chain, int resnum, char *insert)
PDB ** blIndexAtomNumbersPDB(PDB *pdb, int *indexSize)
PDB * blFindNextResidue(PDB *pdb)
PDB * blStripHPDBAsCopy(PDB *pdbin, int *natom)
struct pdb_entry * conect[MAXCONECT]
BOOL blAreResiduesBonded(PDB *pdb, char *chain1, int resnum1, char *insert1, char *chain2, int resnum2, char *insert2, REAL tol)
BOOL blDeleteAConect(PDB *p, PDB *q)