亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? autosphere.c

?? 最經典的分子對結軟件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************************    AutoSphere:  A program to form a docking set of spheres from the 0 cluster **                 spheres genenerated by SPHGEN.****    Created: 11-8-99**    Author: Scott Pegg (Kuntz Group, Dept. of Pharm. Chem., UCSF)**            Jim Arnold (Kuntz Group, Dept. of Pharm. Chem., UCSF)****   Synopsis:****     This program reads in an input file given as a command line argument.**     This file specifies a SPHGEN output file, starting coordinates, an**     enclosed space, and output filenames (see the README for more info about**     the parameters) The spheres in "cluster 0" of the SPHGEN output file are**     selected with the following procedure:****     1. Remove spheres not within a box, large sphere, or close to a protein residue.**     2. Remove spheres distant from the protein surface.**     3. Remove spheres too close to other spheres, as such:**           x = sphere closest to the center of the enclosed space**           loop (until all spheres visited or removed):**              remove all spheres closer than given filt_cut to x**              x = next closest remaining sphere****     The spheres are treated as points--ie. the distance between two spheres**     is calculated as the distance between their centers. (I treat them this**     way because they're treated as points in DOCK.)****     Additions by Jim Arnold, Nov, 22, 1999.**        - Remove spheres distant from a protein residue.**        - Remove spheres distant from the protein surface.**        - Read molecule files using Dock4.0.1 functions (archived Dock).**        - Write out sphere sets in both .pdb and .sph formats.**        - Added debug and guards to the program.****************************************************************************************/#include  "AutoSphere.h"#include  <stdio.h>#include  <malloc.h>#include  <stdlib.h>#include  <string.h>#include  <math.h>#include  "logical.h"#include  "debug.h"#include  "/idk1/people/arnold/fulcrum/Dock4.0.1/source/dock/define.h"#include  "/idk1/people/arnold/fulcrum/Dock4.0.1/source/dock/global.h"#include  "/idk1/people/arnold/fulcrum/Dock4.0.1/source/dock/utility.h"#include  "/idk1/people/arnold/fulcrum/Dock4.0.1/source/dock/mol.h"#include  "/idk1/people/arnold/fulcrum/Dock4.0.1/source/dock/label.h"/**************** mark defs.**************/#define    DEBUG_FILE      "as.dbf"                            /** file with debug flags. **/#define    PARAM_DIR       "/idk1/people/arnold/fulcrum/Tsp"   /** directory for debug file. **//****************** mark globals****************/GLOBAL global = {0};            /* See global.h for global variables *//********************* mark prototypes*******************/void         read_args(FILE *file, TS_INFO *info);int          TestParams(TS_INFO *info);SPHERE*      read_spheres(TS_INFO *info, SPHERE *spheres);SPHERE*      AddLigSpheres(MOLECULE *mol, SPHERE *spheres);int          ReadMol(FILE_NAME molS, MOLECULE *mol_ref, MOLECULE *mol_init);void         SetLabel(LABEL *label);void         write_spheres(TS_INFO *info, SPHERE *spheres);SPHERE*      find_enclosed_spheres(TS_INFO *info, SPHERE *spheres, MOLECULE *mol);SPHERE*      FilterByResidue(TS_INFO *info, SPHERE *spheres, MOLECULE *mol);SPHERE*      SurfDistThin(TS_INFO *info, SPHERE *spheres, MOLECULE *mol);SPHERE*      greedy_thin(TS_INFO *info, SPHERE *spheres);SPHERE*      add_sphere(SPHERE *sphere, SPHERE *head);SPHERE*      remove_sphere(SPHERE *sphere, SPHERE *head);int          SphereGuard(SPHERE *spheres, STRING200 errorS);int          SphLen(SPHERE *sph);int          IsHeavy(ATOM *at);float        dist(SPHERE *a, SPHERE *b);void         show_info(TS_INFO *info);void         show_spheres(SPHERE *spheres);/** mark main **//****************************************************************************  Author:   Scott Pegg, Jim Arnold.**  Purpose:  Main routine for TS.**  Notes:    **************************************************************************/main(int argc, char *argv[]) {  const char   c[101];  FILE         *param_file;  TS_INFO      *info;  SPHERE       *spheres = NULL;  /* head of the list of spheres */  SPHERE       *temp, *temp2;  MOLECULE     mol_ref = {0}, mol_init = {0}, lig_ref = {0}, lig_init = {0};  if (argc == 1) {    printf("Usage: TS <parameter file>\n");    exit(0);  }  DebugInitI(PARAM_DIR, DEBUG_FILE);     /** read debug flags from file. **/  if (MONITOR) {printf("\nRunning AutoSphere.\n");}  param_file = fopen(argv[1], "r");  if (param_file == NULL) {    printf("Error: Could not open input file: %s\n", argv[1]);    exit(0);  }  info = malloc(sizeof(struct ts_info));  read_args(param_file, info);  if (TestParams(info) equal true)  {     spheres = read_spheres(info, spheres);     if (SphereGuard(spheres, "reading spheres, check the sph_file value in the .in file"))     {        if (MONITOR) {printf("  Read |%d| spheres from cluster 0 of file %s.\n", SphLen(spheres),info->sph_input);}        if (info->lig_sph_file[0] != NULL)	{           allocate_molecule(&lig_ref);     lig_ref.info.name = NULL;                allocate_molecule(&lig_init);    lig_init.info.name = NULL;              ReadMol(info->lig_sph_file, &lig_ref, &lig_init);                  if (MONITOR) {printf("  Read lig |%s| with %d atoms.\n",info->lig_sph_file, lig_ref.total.atoms);}           spheres = AddLigSpheres(&lig_ref, spheres);	}        allocate_molecule(&mol_ref);     mol_ref.info.name = NULL;             allocate_molecule(&mol_init);    mol_init.info.name = NULL;           ReadMol(info->receptor_filename, &mol_ref, &mol_init);               if (MONITOR) {printf("  Read receptor |%s| with %d atoms.\n",info->receptor_filename,mol_ref.total.atoms);}        spheres = find_enclosed_spheres(info, spheres, &mol_ref);        if (SphereGuard(spheres,             "finding spheres in volume, check residue or res_cut values in .in file - or remove TERs from .pdb"))        {           if (MONITOR) {printf("  Removed spheres outside defined volume:  %d remain.\n", SphLen(spheres));}           spheres = SurfDistThin(info, spheres, &mol_ref);           if (SphereGuard(spheres,                "surf dist filter, check surface_cutoff value in the .in file, or mol/sph coords"))  	   {              if (MONITOR){printf("  Removed spheres distant from receptor atoms:  %d remain.\n", SphLen(spheres));}               spheres = greedy_thin(info, spheres);              if (SphereGuard(spheres, "greedy filter, check the filter_cutoff value in the .in file"))   	      {                 if (MONITOR) {printf("  Filtered spheres using greedy algorithm:  %d remain.\n", SphLen(spheres));}                 if (MONITOR)                     {printf("  Writing %d spheres to .pdb and .sph: |%s|.\n",SphLen(spheres),info->sph_output);}                 write_spheres(info, spheres);  	      }	   }        }     }  }  free(info);  temp = spheres;  while (temp != NULL)   {    temp2 = temp->next;    free(temp);    temp = temp2;  }  if (MONITOR) {printf("  Exiting AutoSphere.\n\n");}}/** mark AddLigSpheres **//****************************************************************************  Author:   Jim Arnold**  Purpose:  Adds spheres from the ligand to the 0 cluster spheres.**  Notes:    **************************************************************************/SPHERE* AddLigSpheres(MOLECULE *mol, SPHERE *spheres){   int      i, ctI;   SPHERE   *new_sphere;   if (DB_LIG)       {printf("**AddLigSpheres, mol: %s, num sph: %d.\n", mol->info.name,SphLen(spheres));}   for (i = 0; i < mol->total.atoms; i++)   {      if (IsHeavy(&(mol->atom[i])))      {         new_sphere = malloc(sizeof(struct sphere));         new_sphere->x = mol->coord[i][0];          new_sphere->y = mol->coord[i][1];          new_sphere->z =mol->coord[i][2];         new_sphere->radius = 1.0;         new_sphere->visited = 0;         if (DB_LIG) {printf("  add lig sphere %d to the list.\n", ctI);}         spheres = add_sphere(new_sphere, spheres);         ctI++;     }   }   if (DB_LIG) {printf("  ret: %d sph from AddLigSpheres, added: %d.\n", SphLen(spheres), ctI);}   return (spheres);}/** mark SphereGuard **//****************************************************************************  Author:   Jim Arnold**  Purpose:  Generates an error message if the number of spheres is 0.**  Notes:    **************************************************************************/int SphereGuard(SPHERE *spheres, STRING200 errorS){   int retI;   if (DB_SPH_G) {printf("**SphereGuard, num sph: %d, error: |%s|.\n", SphLen(spheres), errorS);}   retI = SphLen(spheres);   if (retI equal 0)   {      printf("\n\nERROR:  %s.\n\n\n", errorS);   }   if (DB_SPH_G) {printf("  returning %d from SphereGuard.\n", retI);}   return (retI);}/** mark find_enclosed_spheres **//****************************************************************************  Author:   Scott Pegg**  Purpose:  A function to remove all spheres not within the specified **            enclosed area (a sphere or box).**  Notes:    **************************************************************************/SPHERE* find_enclosed_spheres(TS_INFO *info, SPHERE *spheres, MOLECULE *mol) {  SPHERE *temp, *temp2;  SPHERE center;  float x_lim1, x_lim2, y_lim1, y_lim2, z_lim1, z_lim2;  if (DB_ENCLOSED) {printf("**find_enclosed_spheres, num sph: %d.\n", SphLen(spheres));}  if (info->residue)  {     if (DB_ENCLOSED) {printf("  filter by residue num: %d.\n", info->res_num);}     spheres = FilterByResidue(info, spheres, mol);  }  else if (info->sphere)   {    if (DB_ENCLOSED) {printf("  filter by sphere.\n");}    /* make a dummy sphere for the center of the enclosure */    center.x = info->sph_x;    center.y = info->sph_y;    center.z = info->sph_z;    /* for each sphere, check if it's inside the enclosure radius, and        remove it if it's not */     temp = spheres;    while (temp != NULL)     {      temp2 = temp->next;      if (dist(&center, temp) > info->radius)       {	spheres = remove_sphere(temp, spheres);      }      temp = temp2;    }  }  else if (info->box)   {    if (DB_ENCLOSED) {printf("  filter with box.\n");}    /* set the x,y,z limits on the coordinates (Yes, I know I don't really       need to cast them explicity, but I like really clean compiles...) */    x_lim1 = info->sph_x + (float)(info->size_x / 2.0);    x_lim2 = info->sph_x - (float)(info->size_x / 2.0);    y_lim1 = info->sph_y + (float)(info->size_y / 2.0);    y_lim2 = info->sph_y - (float)(info->size_y / 2.0);    z_lim1 = info->sph_z + (float)(info->size_z / 2.0);    z_lim2 = info->sph_z - (float)(info->size_z / 2.0);    /* remove any spheres with a coordinate outside the limits */    temp = spheres;    while (temp != NULL)     {      temp2 = temp->next;       if (temp->x > x_lim1 || temp->x < x_lim2 || temp->y > y_lim1 ||	  temp->y < y_lim2 || temp->z > z_lim1 || temp->z < z_lim2)	spheres = remove_sphere(temp, spheres);      temp = temp2;    }  }  else  {     printf("ERROR:  No match for type of enclosed volume filtering.\n");  }  return spheres;}/** mark FilterByResidue **//****************************************************************************  Author:   Jim Arnold**  Purpose:  Removes spheres not within a given distance of a specified**            protein residue.**  Notes:    **************************************************************************/SPHERE* FilterByResidue(TS_INFO *info, SPHERE *spheres, MOLECULE *mol){   int             i, keep;   float           d;   SPHERE          *temp, *temp2;   static SPHERE   dsp;   if (DB_RES)    {      printf("**FilterByRes, res: %d, sph: %d nat: %d.\n",info->res_num,SphLen(spheres),mol->total.atoms);   }   if (SphLen(spheres) <= 0)   {      if (DB_RES) {printf("  GUARD:  %d spheres passed to FilterByResidue.\n", SphLen(spheres));}   }   else   {      temp = spheres;      while (temp != NULL)      {         keep = false;         for (i = 0; i < mol->total.atoms; i++)         {            if (DB_RES) {printf("  atom: %d, res num: %d.\n", i, mol->atom[i].res_num);}            if (mol->atom[i].res_num equal info->res_num)	    {               if (IsHeavy(&(mol->atom[i])))      	       {                  dsp.x = mol->coord[i][0]; dsp.y = mol->coord[i][1]; dsp.z = mol->coord[i][2];                  d = dist(temp, &dsp);                  if (DB_RES_L) {printf("    dist is %4.1f.\n", d);}                  if (d < info->res_cut)     	          {                     if (DB_RES_L) {printf("      dist < %4.1f, keep sph.\n", d);}                     keep = true;      	          }	       }            }	 }         if (keep equal false)         {            if (DB_RES_L) {printf("    keep is false, remove sphere.\n");}            temp2 = temp->next; /* temp get's freed if removed */            spheres = remove_sphere(temp, spheres);            temp = temp2;         }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久色在线视频| 99精品久久99久久久久| 一区二区激情小说| 国产日韩欧美精品一区| 久久男人中文字幕资源站| 91麻豆精品国产91久久久久久 | 国产精品成人一区二区艾草| 日韩精品综合一本久道在线视频| 欧美日韩亚洲综合| 欧美日韩精品欧美日韩精品| 欧美日本精品一区二区三区| 欧美男女性生活在线直播观看| 欧美男女性生活在线直播观看| 欧美日本国产一区| 欧美一区二区精品在线| 日韩免费视频一区二区| 久久久久久99久久久精品网站| 国产色产综合产在线视频| 国产人伦精品一区二区| 自拍偷拍亚洲欧美日韩| 亚洲永久精品国产| 日韩电影在线观看网站| 精品一区二区三区免费播放| 懂色中文一区二区在线播放| 91美女在线看| 337p亚洲精品色噜噜狠狠| 91精品啪在线观看国产60岁| 精品少妇一区二区三区视频免付费| 久久久91精品国产一区二区精品| 国产精品嫩草影院av蜜臀| 一区二区日韩av| 日本视频一区二区| 成人免费黄色大片| 欧美性大战xxxxx久久久| 日韩一区二区三区四区| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品久久久久影院亚瑟 | 日本中文字幕一区二区视频| 久久av老司机精品网站导航| 成a人片国产精品| 欧美高清视频www夜色资源网| 26uuu亚洲| 亚洲国产日产av| 国产一区二区视频在线| 91免费视频网| 久久久久久久久久美女| 亚洲影视资源网| 国产精品亚洲第一区在线暖暖韩国| 色婷婷精品久久二区二区蜜臂av| 日韩欧美在线一区二区三区| 综合色中文字幕| 国产美女视频91| 欧美视频一区在线| 欧美经典一区二区| 男女男精品网站| 欧美在线免费播放| 国产亚洲欧美在线| 强制捆绑调教一区二区| 色网综合在线观看| 亚洲国产精品激情在线观看| 奇米精品一区二区三区在线观看一| 97久久超碰国产精品| 久久蜜桃一区二区| 免费国产亚洲视频| 欧美色综合网站| 亚洲欧美一区二区三区极速播放 | 国产在线国偷精品产拍免费yy| 欧美日韩在线综合| 一区二区三区四区在线免费观看| 成人自拍视频在线| 国产欧美日韩视频一区二区| 久久成人免费日本黄色| 欧美高清一级片在线| 午夜精品视频一区| 欧美色图激情小说| 亚洲成人自拍网| 久久久亚洲精华液精华液精华液| 舔着乳尖日韩一区| 欧美精品久久99| 午夜久久久久久久久久一区二区| 在线看日韩精品电影| 1024国产精品| 色久综合一二码| 亚洲女同女同女同女同女同69| av动漫一区二区| 综合激情网...| 91官网在线观看| 五月天一区二区| 日韩一二三四区| 精品一区二区在线观看| 精品乱码亚洲一区二区不卡| 久久91精品国产91久久小草 | 国产精品主播直播| 国产精品三级视频| 91日韩精品一区| 一区二区三区四区不卡视频| 欧美日韩一级大片网址| 日韩中文字幕麻豆| 精品国产免费人成在线观看| 国产aⅴ综合色| 亚洲精品网站在线观看| 欧美另类z0zxhd电影| 日韩综合小视频| 久久精品人人做人人爽人人| 高清beeg欧美| 亚洲成a人v欧美综合天堂| 日韩一区二区三区高清免费看看| 国产美女精品在线| 国产精品高潮呻吟| 91麻豆精品久久久久蜜臀| 国产精品一区二区在线播放| 亚洲精品免费在线观看| 3atv一区二区三区| 成人黄动漫网站免费app| 亚洲一区欧美一区| 久久久国际精品| 欧美在线制服丝袜| 国内不卡的二区三区中文字幕 | 男人操女人的视频在线观看欧美| 久久久久国产精品厨房| 91精品福利视频| 国产美女精品在线| 亚洲国产综合在线| 中文字幕va一区二区三区| 4438亚洲最大| 一本到三区不卡视频| 久久99精品国产.久久久久久| 一区二区三区国产豹纹内裤在线| 欧美v亚洲v综合ⅴ国产v| 色琪琪一区二区三区亚洲区| 国产尤物一区二区在线| 亚洲成在人线在线播放| 中文乱码免费一区二区| 欧美电影免费提供在线观看| 色综合中文综合网| 在线观看视频一区| 国产电影一区在线| 秋霞成人午夜伦在线观看| 亚洲欧美视频在线观看视频| 国产午夜亚洲精品羞羞网站| 欧美一区二区免费| 欧美性感一类影片在线播放| jlzzjlzz亚洲日本少妇| 国产成人在线视频网站| 久久精品国产久精国产| 亚洲成人免费看| 亚洲女厕所小便bbb| 中文字幕在线一区| 国产精品丝袜一区| 国产欧美一区二区精品性| 2欧美一区二区三区在线观看视频| 3d成人动漫网站| 欧美一区二区三区成人| 欧美高清精品3d| 欧美一区二区三区男人的天堂 | 日韩高清在线观看| 偷拍一区二区三区四区| 亚洲香肠在线观看| 一区二区免费在线播放| 一区二区三区精品在线| 亚洲永久免费av| 亚洲va中文字幕| 午夜精品久久久久久不卡8050| 亚洲123区在线观看| 五月开心婷婷久久| 免费成人在线网站| 韩国一区二区在线观看| 国产成人综合自拍| 99视频热这里只有精品免费| 91年精品国产| 欧美精品在线观看播放| 日韩一区二区在线看| 久久只精品国产| 亚洲国产高清aⅴ视频| 自拍偷拍国产亚洲| 亚洲电影第三页| 精品一区二区三区在线视频| 国产剧情在线观看一区二区| hitomi一区二区三区精品| 日本精品视频一区二区| 91精品国产综合久久蜜臀| 精品国产伦一区二区三区免费| 亚洲国产成人私人影院tom| 奇米精品一区二区三区在线观看一 | 麻豆成人免费电影| 国产成人精品亚洲午夜麻豆| 成人的网站免费观看| 欧美在线啊v一区| 精品国产一区二区三区不卡 | 男女视频一区二区| 国产成人a级片| 欧美日韩一区 二区 三区 久久精品| 日韩视频免费直播| 亚洲欧美怡红院| 美女一区二区三区在线观看| 国产东北露脸精品视频| 欧美日韩一卡二卡| 成人欧美一区二区三区白人| 欧美a一区二区| 91视频.com|