Как прочитать конкретные атомные координаты из файла PDB, используя C
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *pdb;
pdb=fopen("5an3.pdb", "r");
if(feof(pdb))
{
fprintf(stderr,"File reading error!!! Probably your PDB file doesn't contain anything or poorly formatted\n");
return 0;
}
char test[255];
while(!feof(pdb))
{
fgets(test, 255, (FILE*)pdb);
char check[10];
strncpy(check,test,4);
if(strcmp(check,"ATOM")==0)
{
char resname[3];
strncpy(resname,&test[17],3);
if((strstr(resname,"THR"))||(strstr(resname,"TYR"))||(strstr(resname,"PHE"))||(strstr(resname,"TRP")))
{
printf("%s\n",test);
}
else
{
printf("No Aromatic Residues Found!!! Better luck next time!!!\n");
return 0;
}
}
}
fclose(pdb);
return 0;
}
Я пытался извлечь записи, которые имеют THR, PHE, TYR, TRP и координаты их атомов для дальнейшей обработки. Но, похоже, в файле pdb есть много невидимых символов ascii, которые все портят. Как от этого избавиться?