예제 #1
0
int main(int argc, char **argv)
{
   char     *filename = "test.pdb";
   WHOLEPDB *wpdb;
   FILE     *fp;
   PDB      *pdb1, *pdb2, *p;
   int      natoms;

   if((fp=fopen(filename, "r"))==NULL)
   {
      fprintf(stderr,"Can't open %s\n", filename);
      return(1);
   }
   
   if(((wpdb=blReadWholePDB(fp))==NULL)||(wpdb->pdb == NULL))
   {
      fprintf(stderr,"Can't read atoms from %s\n", filename);
      return(1);
   }
   fclose(fp);
   
   pdb1 = wpdb->pdb;
   if((pdb2 = blStripHPDBAsCopy(pdb1, &natoms))==NULL)
   {
      fprintf(stderr,"Stripping hydrogens failed\n");
      return(1);
   }
   
   if(!blCopyConects(pdb2, pdb1))
   {
      fprintf(stderr,"Failed to copy CONECT data\n");
      return(1);
   }

   printf(">>> Original CONECT data\n");
   wpdb->pdb = pdb1;
   blWriteWholePDBTrailer(stdout, wpdb, 1);

   /* Reset atom numbers in original list to prove we aren't picking up
      the old atoms
   */
   for(p=pdb1; p!=NULL; NEXT(p))
      p->atnum = 0;
   
   printf(">>> New CONECT data\n");
   wpdb->pdb = pdb2;
   blWriteWholePDBTrailer(stdout, wpdb, 1);
   
   return(0);
}
예제 #2
0
PDB *StripHPDB(PDB *pdbin, int *natom)
{
   DEPRECATED("StripHPDB()","blStripHPDBAsCopy()");
   return(blStripHPDBAsCopy(pdbin, natom));
}