/** \file pdbformat.c * Output in protein data bank (pdb) format \author Marcel Arndt $Id: pdbformat.c,v 1.9 2006/03/30 22:19:52 foo Exp $ */ #include #include #if 0 /** Output lines in PDB format. * The PDB line includes: * \param id atom serial number * \param atomname atom nam * \param residuename residue name * \param residuenr residue sequence number * \param x position X in Angstroem * \param y position X in Angstroem * \param z position X in Angstroem, * \param occupancy occupancy * \param tempfact temperature factor * \param segid segment identifier * \param elementsymbol element symbol * \param charge charge */ static int WritePDBLine(FILE *f, unsigned id, const char* atomname, const char* residuename, unsigned residuenr, double x, double y, double z, double occupancy, double tempfact, const char* segid, const char* elementsymbol, const char* charge) { char atomname2[5]; char residuename2[4]; char segid2[5]; char elementsymbol2[3]; char charge2[3]; if (id > 99999) id = 99999; if (strlen(atomname)>0 && ( ( atomname[0]=='0' ) || ( atomname[0]>='1' && atomname[0]<='9' ) ) ) strncpy(atomname2, atomname, 4); else { atomname2[0] = ' '; strncpy(atomname2+1, atomname, 3); } atomname2[4] = '\0'; strncpy(residuename2, residuename, 3); residuename2[3] = '\0'; if (residuenr > 9999) residuenr = 9999; if (x < -999.999) x = -999.999; if (x > 9999.999) x = 9999.999; if (y < -999.999) y = -999.999; if (y > 9999.999) y = 9999.999; if (z < -999.999) z = -999.999; if (z > 9999.999) z = 9999.999; if (occupancy < -99.99) occupancy = -99.99; if (occupancy > 999.99) occupancy = 999.99; if (tempfact < -99.99) tempfact = -99.99; if (tempfact > 999.99) tempfact = 999.99; strncpy(segid2, segid, 4); segid2[4] = '\0'; strncpy(elementsymbol2, elementsymbol, 2); elementsymbol2[2] = '\0'; strncpy(charge2, charge, 2); charge2[2] = '\0'; return fprintf(f, "ATOM %5u %-4s %3s %4u %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s%2s\n", id, /*