Как прочитать конкретные атомные координаты из файла 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, которые все портят. Как от этого избавиться?

0 ответов

Другие вопросы по тегам