/******************************************************************************/
/*Program: pdbconv-insight                                                            */
/*Author: Stefan Henrich                                                      */ 
/*Email:  stefan.henrich@eml-r.villa-bosch.de                                 */
/*Date: 12.01.2005  version 1.00                                              */
/*                                                                            */
/*original Program: whatiftopdb   from Ting Wang                              */ 
/*                                                                            */
/*Purpose: convert ligand pdb file created in insightII into AMBER format     */
/*                                                                            */
/*COMPILATION: cc -o pdbconv-insight pdbconv-insight.c                                        */
/*USAGE: >pdbconv-insight protein.pdb protein.modif.pdb protein.hetatm.pdb ligandname */
/*USAGE: >pdbconv-insight 1ejn.insight_addH.pdb 1ejn.insight_addH.new.pdb        */
/******************************************************************************/

#include <stdio.h>
#include <string.h>

int main (
	int argc,         /* Number of args */
	char ** argv)     /* Arg list       */
{
	FILE *finput,*foutput,*fhetatm,*flog;
    char line[120],newline[120],templine[120];
	char buffer[4],fill[]="    ";
	int hydrogen=1;
	
	if((finput = fopen(argv[1] , "r"))==NULL)
	  {printf("Input file can not be opened .\n");exit(0);}
	if((foutput = fopen(argv[2], "w"))==NULL)
	  {printf("OUT File  can not be written .\n");exit(0);}

////////////////////////////////////////////////////////
// STARTING WITH PDB
	while(fgets(line,100,finput)){/*printf("%s",line);*/
		strncpy (templine,line,99);

		if((strncmp(line+12,"H",1)==0 || strncmp(line+13,"H",1)==0) &&
		   (strncmp(line,"ATOM  ",6)==0 || strncmp(line,"HETATM",6)==0))	
		{
			strncpy(newline,line,12);newline[12]='\0';
			sprintf (buffer,"%d",hydrogen); //copy hydrogen into buffer
			strncat(buffer,fill,4); //add blank to buffer
			strncat(newline," H",2);
			strncat(newline,buffer,2);
			strncat(newline+16,line+16,51);
			strncpy(templine,newline,66); 
			hydrogen=hydrogen+1;	
		}
		fprintf(foutput,"%s",templine); //write file with heteroatoms
	} /* end of while */

	fclose(finput);
	fclose(foutput);
	return(1);
}
