📄 ligand.c
字号:
# include "pocket.h"
Ligand::Ligand()
{
num_atom=0; atom=NULL;
}
Ligand::~Ligand()
{
delete [] atom;
}
void Ligand::Read_From_Mol2(char *filename)
{
FILE *fp;
int i;
char buf[160],head[40];
if((fp=fopen(filename,"r"))==NULL) Openning_File_Error(filename);
do
{
if(fgets(buf,160,fp)!=NULL) sscanf(buf,"%s",head);
else Mol2_Format_Error(filename);
}
while(strcmp(head,"@<TRIPOS>MOLECULE"));
fgets(buf,160,fp); fgets(buf,160,fp);
sscanf(buf,"%d",&num_atom);
if(num_atom<=0) Mol2_Format_Error(filename);
atom=new Latom[num_atom];
if(atom==NULL) Memory_Allocation_Error();
do
{
if(fgets(buf,160,fp)!=NULL) sscanf(buf,"%s",head);
else Mol2_Format_Error(filename);
}
while(strcmp(head,"@<TRIPOS>ATOM"));
for(i=0;i<num_atom;i++)
{
fgets(buf,160,fp);
sscanf(buf,"%d%s%f%f%f%s",
&atom[i].id,
atom[i].name,
&atom[i].coor[0],
&atom[i].coor[1],
&atom[i].coor[2],
atom[i].type);
atom[i].valid=1;
}
fclose(fp);
return;
}
void Ligand::Show_Content() const
{
int i;
printf("Number of atoms = %d\n", num_atom);
for(i=0;i<num_atom;i++)
{
printf("%3d %10s %7.3f %7.3f %7.3f %10s %1d\n",
atom[i].id,
atom[i].name,
atom[i].coor[0],
atom[i].coor[1],
atom[i].coor[2],
atom[i].type,
atom[i].valid);
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -