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

📄 dna1.cc

📁 unix或linux下的DNA分析软件源码 其功能如下 1. Edit up to 256 peptide or DNA sequences simultaneously. 2. Transla
💻 CC
📖 第 1 页 / 共 2 页
字号:
}//-------------------------------------------------------------------//// basefilename                                                      //// strip path from filename & returns file name w/o path             ////-------------------------------------------------------------------//char* basefilename(char* pathname){  int k;   int slashpos=0;   char temp[FILENAMELENGTH];   strcpy(temp,pathname);   for(k=0;k<(int)strlen(temp);k++)          // find last slash or colon       if((temp[k]=='/')||(temp[k]=='\\')||(temp[k]==':')) slashpos=k+1;      return(temp+slashpos);}//-------------------------------------------------------------------//// printstatus                                                       ////-------------------------------------------------------------------//void printstatus(int state){    state=state;}//--------------------------------------------------------------------------//// make_2d_alias                                                            //// usage: uint** array;                                                     ////        uint* array_1d;                                                   ////        array_1d = (uint*)malloc(x*y*sizeof(uint));                       ////        array = make_2d_alias(array_1d,x,y);   // Dont mult.by sizeof uint////         ...                                   // compiler knows its size ////        free(array);                                                      ////        free(array_1d);                                                   //// Address array using  array[y][x]  or array_1d[index]                     //// Last parameter is first index = slowest changing index                   //// Create a 2d alias from an array so the same data can be accessed using   //// either [][] or [] notation. This permits interfacing with libraries      //// requiring either type.                                                   ////--------------------------------------------------------------------------//int **make_2d_alias(int *b, int x, int y){  int k;   int **result;   result = (int**)malloc(y*sizeof(int *));   for(k=0;k<y;k++) result[k] = b + k*x;   return result;}uint **make_2d_alias(uint *b, int x, int y){  int k;   uint **result;   result = (uint**)malloc(y*sizeof(uint *));   for(k=0;k<y;k++) result[k] = b + k*x;   return result;} uchar **make_2d_alias(uchar *b, int x, int y){  int k;   uchar **result;   result = (uchar**)malloc(y*sizeof(uchar *));   for(k=0;k<y;k++) result[k] = b + k*x;   return result;} double **make_2d_alias(double *b, int x, int y){  int k;   double **result;   result = (double**)malloc(y*sizeof(double *));   for(k=0;k<y;k++) result[k] = b + k*x;   return result;} //--------------------------------------------------------------------------//// strupr                                                                   ////--------------------------------------------------------------------------//char *strupr(char *s){   int k;   for(k=0;k<(int)strlen(s);k++) s[k]=toupper(s[k]);   return s;}//--------------------------------------------------------------------------//// strlwr                                                                   ////--------------------------------------------------------------------------//char *strlwr(char *s){   int k;   for(k=0;k<(int)strlen(s);k++) s[k]=tolower(s[k]);   return s;}  //--------------------------------------------------------------------------////  filesize                                                                ////--------------------------------------------------------------------------//int filesize(char *filename){     struct stat dstatus;     stat(filename, &dstatus);     return dstatus.st_size;}        //-------------------------------------------------------------------//// savesettings                                                      ////-------------------------------------------------------------------//void savesettings(void){  FILE* fp;  int k;  char tempstring[FILENAMELENGTH]="";  sprintf(tempstring,"%s/dna.ini",g.homedir);  if((fp=fopen(tempstring, "wt"))!=NULL )  {        fprintf(fp,"version %s\n",g.version);       fprintf(fp,"rows %d\n",g.rows);       fprintf(fp,"cols %d\n",g.cols);       fprintf(fp,"xsize %d\n",g.main_xsize);       fprintf(fp,"ysize %d\n",g.main_ysize);       fprintf(fp,"print_command %s\n",g.printer_command);       fprintf(fp,"print_name %s\n",g.printer_name);       fprintf(fp,"print_file %s\n",g.printer_file);       fprintf(fp,"signif_digits %d\n",g.signif);       fprintf(fp,"save_format %d\n",g.save_format);       fprintf(fp,"sequence_mode %d\n",g.sequence_mode);       fprintf(fp,"nbuttons %d\n",g.nbuttons);       for(k=0;k<g.nbuttons;k++)          fprintf(fp,"button %s %s:%s\n",                  g.button[k]->label, g.button[k]->activate_cmd,                  g.button[k]->deactivate_cmd);  }else fprintf(stderr,"Can't save settings\n");  fclose(fp);}        //-------------------------------------------------------------------//// readsettings                                                      ////-------------------------------------------------------------------//void readsettings(void){   FILE* fp;  int gotconfig=1;  int space=0, ret=0, but=0,k;  char name[FILENAMELENGTH]="";  char value[FILENAMELENGTH]="";  char initversion[80]="";  char tempstring[1024];  int colon=0;  sprintf(tempstring, "%s/dna.ini", g.homedir);  if((fp=fopen(tempstring,"rb"))==NULL ) gotconfig=0;  else fclose(fp);  initversion[0]=0;  if(gotconfig)  {  fp=fopen(tempstring,"rt");     while(!feof(fp))     {        fgets(name, 80, fp);       if(feof(fp))break;       space = strcspn(name," ");                // Position of 1st space       ret = (int)index(name, '\n') - (int)name; // Position of final \n       name[space]=0;       name[ret]=0;       strcpy(value, 1+name+space);       if(strcmp(name,"version")==SAME) strcpy(initversion,value);        if(strcmp(name,"button")==SAME)        {   if(but>=g.nbuttons)               fprintf(stderr,"tnimage.ini: Error: button count mismatch, ignoring user button\n");           else           {                  space = strcspn(value," ");           // Position of 1st space               colon = strcspn(value,":");           // Position of 1st colon               strncpy(g.button[but]->label, value, space);               g.button[but]->label[space]=0;               strncpy(g.button[but]->activate_cmd, value+space+1, colon-space-1);               g.button[but]->activate_cmd[colon-space-1]=0;               if(colon<(int)strlen(value))                  strncpy(g.button[but]->deactivate_cmd, value+colon+1, COMMAND_LENGTH);               else                  strcpy(g.button[but]->deactivate_cmd, "null");               but++;           }       }       if(strcmp(name,"nbuttons")==SAME)        {   g.nbuttons = max(0,atoi(value));           g.button = new ButtonStruct*[g.nbuttons];           for(k=0;k<g.nbuttons;k++)           {   g.button[k] = new ButtonStruct;               g.button[k]->button = 0;               g.button[k]->state  = OFF;               g.button[k]->widget = 0;               g.button[k]->label  = new char[LABEL_LENGTH];               g.button[k]->activate_cmd = new char[COMMAND_LENGTH];               g.button[k]->deactivate_cmd = new char[COMMAND_LENGTH];           }       }       if(strcmp(name,"rows")==SAME) g.rows=atoi(value);       if(strcmp(name,"cols")==SAME) g.cols=atoi(value);       if(strcmp(name,"xsize")==SAME) g.main_xsize=atoi(value);       if(strcmp(name,"ysize")==SAME) g.main_ysize=atoi(value);       g.xsize = g.main_xsize - 154 - 16;       g.ysize = g.main_ysize - 24 - 16;       if(strcmp(name,"print_command")==SAME) strcpy(g.printer_command,value);       if(strcmp(name,"print_name")==SAME) strcpy(g.printer_name,value);       if(strcmp(name,"print_file")==SAME) strcpy(g.printer_file,value);       if(strcmp(name,"signif_digits")==SAME) g.signif=atoi(value);       if(strcmp(name,"save_format")==SAME) g.save_format=atoi(value);       if(strcmp(name,"sequence_mode")==SAME) g.sequence_mode=atoi(value);     }     fclose(fp);  }  if(!gotconfig)  {       const int NBUTTONS=24;       g.nbuttons=NBUTTONS;       char buttonname[NBUTTONS][20]= {                                         "Open",       "Save",                                          "Config",     "Close",                                        "Compare",    "Align",                                        "Reverse",    "Translate",                                        "Edit",       "Statistics",                                        "Print",      "Comments",                                        "Offset#1",   "Offset#2",                                        "Prev.frame", "Next攆rame",                                        "Up",         "Down",                                        "Left",       "Right",                                        "Undo",       "Select",                                        "DNA",        "Quit",                                      };       //// Non-null commands here will be activated when button is pushed.       char activatecmd[NBUTTONS][20] = {                                         "read",       "save",                                          "config",     "close",                                          "compare",    "align",                                        "reverse",    "translate",                                        "edit",       "statistics",                                        "print",      "comments",                                        "offset1",    "offset2",                                        "prevframe",  "nextframe",                                        "up",         "down",                                        "left",       "right",                                        "undo",       "select",                                        "dna",        "quit",                                      };       //// Non-null commands here will cause button to stay pushed, and       //// the command activated when button is un-pushed.       char deactivatecmd[NBUTTONS][20] = {                                         "null",       "null",                                          "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                        "null",       "null",                                      };       g.button = new ButtonStruct*[NBUTTONS];       for(k=0;k<NBUTTONS;k++)        {   g.button[k] = new ButtonStruct;           g.button[k]->button = 0;           g.button[k]->state  = OFF;           g.button[k]->widget = 0;           g.button[k]->label = new char[LABEL_LENGTH];           g.button[k]->activate_cmd = new char[COMMAND_LENGTH];           g.button[k]->deactivate_cmd = new char[COMMAND_LENGTH];           strcpy(g.button[k]->label, buttonname[k]);           strcpy(g.button[k]->activate_cmd, activatecmd[k]);           strcpy(g.button[k]->deactivate_cmd, deactivatecmd[k]);       }  }}        //-------------------------------------------------------------------//// abouttheprogram                                                   ////-------------------------------------------------------------------//void abouttheprogram(void){   char *tempstring = new char[1024];   sprintf(tempstring, "dna version %s\nCompiled on %s %s\nCopyright (C) 1999 by T. Nelson",      g.version, __DATE__, __TIME__);   message(tempstring);   delete[] tempstring;}//-------------------------------------------------------------------//// help                                                              ////-------------------------------------------------------------------//void help(int helptopic){   char *tempstring = new char[1024];   message("The programmer forgot to add \na help system!!!",ERROR);   delete[] tempstring;}

⌨️ 快捷键说明

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