⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 药物开发中的基于结构的从头设计代码
💻 C
字号:
# include "pocket.h"

Parameter *parm;
Protein *prot;
Ligand *lig;

int main(int argc,char *argv[])
{
	extern Parameter *parm;
	extern Protein *prot;
	extern Ligand *lig;

        if(argc!=2)
                {
                 puts("Error: No index file is given for POCKET.");
                 puts("The correct usage is: pocket index_file");
                 exit(1);
                }

	printf("\nLigBuilder/Pocket starts to run ... ");
	printf("%s\n",Get_Time());

	Parameter parameter; parm=&parameter;
	Protein protein; prot=&protein;
	Ligand ligand; lig=&ligand;

	printf("Now reading parameters from '%s' ... \n", argv[1]);
	parameter.Read_Index(argv[1]);
	// parameter.Show_Content();

	protein.Read_RESIDUE(parm->parameter_dir);
	// protein.Show_RESIDUE();

	printf("Now reading the protein from '%s' ... \n", parm->pdb_file); 
	protein.Read_PDB(parm->pdb_file);
	// protein.Show_PDB();

	printf("Now analyzing the protein ... \n");
	protein.Value_Atom();
	protein.Check_Water();
	protein.Check_Metal();
	protein.Cal_HB_Root();
	// protein.Show_Atom();

	printf("Now reading the ligand from '%s' ... \n", parm->lig_file);
	ligand.Read_From_Mol2(parm->lig_file);
	// ligand.Show_Content();

	printf("Now seeking pocket atoms ... \n");
	protein.Find_Pocket_Atom();
	// protein.Show_Pocket_Residue();

	printf("Now outputing pocket atoms to '%s' ... \n", parm->pocket_file);
	protein.Output_Pocket_Atom(parm->pocket_file);

	Pocket pocket;

	printf("Now defining the binding pocket ...\n");
        pocket.Define_Box();

	printf("Now making grids inside the binding pocket ...\n");
        pocket.Make_Grid();

	printf("Now deducing the key interaction sites ...\n");
	pocket.Filter_Grid();
        pocket.Refine_Grid();

	printf("Now outputing the grids to '%s' ...\n", parm->grid_file);
	pocket.Output_Grid(parm->grid_file);

	printf("Now outputing the key sites to '%s' ...\n", parm->interact_file);
	pocket.Output_Key_Site(parm->interact_file);

	printf("Now deducing the pharmacophore features ...\n");
	pocket.Deduce_Pharmacophore(parm->min_feature_distance,parm->max_feature_number);

	printf("Now outputing the features to '%s'\n", parm->pharmacophore_pdb);
	pocket.Output_Pharmacophore_PDB(parm->pharmacophore_pdb);

	printf("Now outputing the features to '%s'\n", parm->pharmacophore_txt);
	pocket.Output_Pharmacophore_TXT(parm->pharmacophore_txt);

	printf("\nLigBuilder/Pocket has done the job successfully ... ");
	printf("%s\n",Get_Time());

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -