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

📄 amenu.c

📁 经典生物信息学多序列比对工具clustalw
💻 C
📖 第 1 页 / 共 3 页
字号:
		fprintf(stdout," ********* PAIRWISE ALIGNMENT PARAMETERS *********\n");		fprintf(stdout,"\n\n");		fprintf(stdout,"     Slow/Accurate alignments:\n\n");		fprintf(stdout,"     1. Gap Open Penalty       :%4.2f\n",pw_go_penalty);		fprintf(stdout,"     2. Gap Extension Penalty  :%4.2f\n",pw_ge_penalty);		fprintf(stdout,"     3. Protein weight matrix  :%s\n" ,                                        matrix_menu.opt[pw_matnum-1].title);		fprintf(stdout,"     4. DNA weight matrix      :%s\n" ,                                        dnamatrix_menu.opt[pw_dnamatnum-1].title);		fprintf(stdout,"\n");		fprintf(stdout,"     Fast/Approximate alignments:\n\n");		fprintf(stdout,"     5. Gap penalty            :%d\n",(pint)wind_gap);		fprintf(stdout,"     6. K-tuple (word) size    :%d\n",(pint)ktup);		fprintf(stdout,"     7. No. of top diagonals   :%d\n",(pint)signif);		fprintf(stdout,"     8. Window size            :%d\n\n",(pint)window);                fprintf(stdout,"     9. Toggle Slow/Fast pairwise alignments ");                if(quick_pairalign)                      fprintf(stdout,"= FAST\n\n");                else                      fprintf(stdout,"= SLOW\n\n");		fprintf(stdout,"     H. HELP\n\n\n");				getstr("Enter number (or [RETURN] to exit)",lin2);		if( *lin2 == EOS) {                        if(dnaflag) {                                dna_pw_go_penalty     = pw_go_penalty;                                dna_pw_ge_penalty     = pw_ge_penalty;                		dna_ktup       = ktup;                		dna_window     = window;                		dna_signif     = signif;                		dna_wind_gap   = wind_gap;                        }                        else {                                prot_pw_go_penalty     = pw_go_penalty;                                prot_pw_ge_penalty     = pw_ge_penalty;                		prot_ktup       = ktup;                		prot_window     = window;                		prot_signif     = signif;                		prot_wind_gap   = wind_gap;                        } 			return;		}				switch(toupper(*lin2)) {			case '1':				fprintf(stdout,"Gap Open Penalty Currently: %4.2f\n",pw_go_penalty);				pw_go_penalty=(float)getreal("Enter number",(double)0.0,(double)100.0,(double)pw_go_penalty);				break;			case '2':				fprintf(stdout,"Gap Extension Penalty Currently: %4.2f\n",pw_ge_penalty);				pw_ge_penalty=(float)getreal("Enter number",(double)0.0,(double)10.0,(double)pw_ge_penalty);				break;                        case '3':                                pw_matnum = read_matrix("PROTEIN",pw_matrix_menu,pw_mtrxname,pw_matnum,pw_usermat,pw_aa_xref);                                break;                        case '4':                                pw_dnamatnum = read_matrix("DNA",dnamatrix_menu,pw_dnamtrxname,pw_dnamatnum,pw_userdnamat,pw_dna_xref);                                break;			case '5':                                fprintf(stdout,"Gap Penalty Currently: %d\n",(pint)wind_gap);                                wind_gap=getint("Enter number",1,500,wind_gap);				break;			case '6':                                fprintf(stdout,"K-tuple Currently: %d\n",(pint)ktup);                                if(dnaflag)                                     ktup=getint("Enter number",1,4,ktup);                                else                                     ktup=getint("Enter number",1,2,ktup);                                     				break;			case '7':                                fprintf(stdout,"Top diagonals Currently: %d\n",(pint)signif);                                signif=getint("Enter number",1,50,signif);				break;			case '8':                                fprintf(stdout,"Window size Currently: %d\n",(pint)window);                                window=getint("Enter number",1,50,window);				break;                        case '9': quick_pairalign ^= TRUE;                                break;			case '?':			case 'H':				get_help('3');				break;			default:				fprintf(stdout,"\n\nUnrecognised Command\n\n");				break;		}	}}static void multi_menu(void){        int catchint;        catchint = signal(SIGINT, SIG_IGN) != SIG_IGN;        if (catchint) {                if (setjmp(jmpbuf) != 0)                        fprintf(stdout,"\n.. Interrupt\n");#ifdef UNIX                if (signal(SIGINT,jumper) == BADSIG)                        fprintf(stdout,"Error: signal\n");#else                if (signal(SIGINT,SIG_DFL) == BADSIG)                        fprintf(stdout,"Error: signal\n");#endif        }	if(dnaflag) {		gap_open   = dna_gap_open;		gap_extend = dna_gap_extend;	}	else {		gap_open   = prot_gap_open;		gap_extend = prot_gap_extend;	}	while(TRUE) {		fprintf(stdout,"\n\n\n");		fprintf(stdout," ********* MULTIPLE ALIGNMENT PARAMETERS *********\n");		fprintf(stdout,"\n\n");				fprintf(stdout,"     1. Gap Opening Penalty              :%4.2f\n",gap_open);		fprintf(stdout,"     2. Gap Extension Penalty            :%4.2f\n",gap_extend);		fprintf(stdout,"     3. Delay divergent sequences        :%d %%\n\n",(pint)divergence_cutoff);                fprintf(stdout,"     4. DNA Transitions Weight           :%1.2f\n\n",transition_weight);                fprintf(stdout,"     5. Protein weight matrix            :%s\n"                                        	,matrix_menu.opt[matnum-1].title);                fprintf(stdout,"     6. DNA weight matrix                :%s\n"                                        	,dnamatrix_menu.opt[dnamatnum-1].title);		fprintf(stdout,"     7. Use negative matrix              :%s\n\n",(!neg_matrix) ? "OFF" : "ON");                fprintf(stdout,"     8. Protein Gap Parameters\n\n");		fprintf(stdout,"     H. HELP\n\n\n");				getstr("Enter number (or [RETURN] to exit)",lin2);		if(*lin2 == EOS) {			if(dnaflag) {				dna_gap_open    = gap_open;				dna_gap_extend  = gap_extend;			}			else {				prot_gap_open   = gap_open;				prot_gap_extend = gap_extend;			}			return;		}				switch(toupper(*lin2)) {			case '1':			fprintf(stdout,"Gap Opening Penalty Currently: %4.2f\n",gap_open);				gap_open=(float)getreal("Enter number",(double)0.0,(double)100.0,(double)gap_open);				break;			case '2':				fprintf(stdout,"Gap Extension Penalty Currently: %4.2f\n",gap_extend);				gap_extend=(float)getreal("Enter number",(double)0.0,(double)10.0,(double)gap_extend);				break;			case '3':				fprintf(stdout,"Min Identity Currently: %d\n",(pint)divergence_cutoff);				divergence_cutoff=getint("Enter number",0,100,divergence_cutoff);				break;			case '4':				fprintf(stdout,"Transition Weight Currently: %1.2f\n",(pint)transition_weight);				transition_weight=(float)getreal("Enter number",(double)0.0,(double)1.0,(double)transition_weight);				break;			case '5':                                matnum = read_matrix("PROTEIN",matrix_menu,mtrxname,matnum,usermat,aa_xref);				break;			case '6':                                dnamatnum = read_matrix("DNA",dnamatrix_menu,dnamtrxname,dnamatnum,userdnamat,dna_xref);				break;			case '7':				neg_matrix ^= TRUE;				break;			case '8':                                gap_penalties_menu();				break;			case '?':			case 'H':				get_help('4');				break;			default:				fprintf(stdout,"\n\nUnrecognised Command\n\n");				break;		}	}}static void gap_penalties_menu(void){	char c;	sint i;        int catchint;        catchint = signal(SIGINT, SIG_IGN) != SIG_IGN;        if (catchint) {                if (setjmp(jmpbuf) != 0)                        fprintf(stdout,"\n.. Interrupt\n");#ifdef UNIX                if (signal(SIGINT,jumper) == BADSIG)                        fprintf(stdout,"Error: signal\n");#else                if (signal(SIGINT,SIG_DFL) == BADSIG)                        fprintf(stdout,"Error: signal\n");#endif        }	while(TRUE) {		fprintf(stdout,"\n\n\n");		fprintf(stdout," ********* PROTEIN GAP PARAMETERS *********\n");		fprintf(stdout,"\n\n\n");		fprintf(stdout,"     1. Toggle Residue-Specific Penalties :%s\n\n",(no_pref_penalties) ? "OFF" : "ON");		fprintf(stdout,"     2. Toggle Hydrophilic Penalties      :%s\n",(no_hyd_penalties) ? "OFF" : "ON");		fprintf(stdout,"     3. Hydrophilic Residues              :%s\n\n"					,hyd_residues);		fprintf(stdout,"     4. Gap Separation Distance           :%d\n",(pint)gap_dist);		fprintf(stdout,"     5. Toggle End Gap Separation         :%s\n\n",(!use_endgaps) ? "OFF" : "ON");		fprintf(stdout,"     H. HELP\n\n\n");				getstr("Enter number (or [RETURN] to exit)",lin2);		if(*lin2 == EOS) return;				switch(toupper(*lin2)) {			case '1':				no_pref_penalties ^= TRUE;				break;			case '2':				no_hyd_penalties ^= TRUE;				break;			case '3':				fprintf(stdout,"Hydrophilic Residues Currently: %s\n",hyd_residues);				getstr("Enter residues (or [RETURN] to quit)",lin1);                                if (*lin1 != EOS) {                                        for (i=0;i<strlen(hyd_residues) && i<26;i++) {                                        c = lin1[i];                                        if (isalpha(c))                                                hyd_residues[i] = (char)toupper(c);                                        else                                                break;                                        }                                        hyd_residues[i] = EOS;                                }                                break;			case '4':				fprintf(stdout,"Gap Separation Distance Currently: %d\n",(pint)gap_dist);				gap_dist=getint("Enter number",0,100,gap_dist);				break;			case '5':				use_endgaps ^= TRUE;				break;			case '?':			case 'H':				get_help('A');				break;			default:				fprintf(stdout,"\n\nUnrecognised Command\n\n");				break;		}	}}static sint read_matrix(char *title,MatMenu menu, char *matnam, sint matn, short *mat, short *xref){       static char userfile[FILENAMELEN+1];	int i;        while(TRUE)        {                fprintf(stdout,"\n\n\n");                fprintf(stdout," ********* %s WEIGHT MATRIX MENU *********\n",title);                fprintf(stdout,"\n\n");		for(i=0;i<menu.noptions;i++)                	fprintf(stdout,"     %d. %s\n",i+1,menu.opt[i].title);                fprintf(stdout,"     H. HELP\n\n");                fprintf(stdout,"     -- Current matrix is the %s ",menu.opt[matn-1].title);                if(matn == menu.noptions) fprintf(stdout,"(file = %s)",userfile);                fprintf(stdout,"--\n");                getstr("\n\nEnter number (or [RETURN] to exit)",lin2);                if(*lin2 == EOS) return(matn);                i=toupper(*lin2)-'0';		if(i>0 && i<menu.noptions) {                        strcpy(matnam,menu.opt[i-1].string);                        matn=i;		} else if (i==menu.noptions) {                        if(user_mat(userfile, mat, xref)) {                              strcpy(matnam,userfile);                              matn=i;                        }		}		else                switch(toupper(*lin2))  {                        case '?':                        case 'H':                                get_help('8');                                break;                        default:                                fprintf(stdout,"\n\nUnrecognised Command\n\n");                                break;                }        }}char prompt_for_yes_no(char *title,char *prompt){	char line[80];	char lin2[80];	fprintf(stdout,"\n%s\n",title);	strcpy(line,prompt);	strcat(line, "(y/n) ? [y]");	getstr(line,lin2);	if ((*lin2 != 'n') && (*lin2 != 'N'))		return('y');	else		return('n');}/**	fatal()**	Prints error msg to stdout and exits.*	Variadic parameter list can be passed.**	Return values:*		none*/void fatal( char *msg,...){	va_list ap;		va_start(ap,msg);	fprintf(stdout,"\n\nFATAL ERROR: ");	vfprintf(stdout,msg,ap);	fprintf(stdout,"\n\n");	va_end(ap);	exit(1);}/**	error()**	Prints error msg to stdout.*	Variadic parameter list can be passed.**	Return values:*		none*/void error( char *msg,...){	va_list ap;		va_start(ap,msg);	fprintf(stdout,"\n\nERROR: ");	vfprintf(stdout,msg,ap);	fprintf(stdout,"\n\n");	va_end(ap);}/**	warning()**	Prints warning msg to stdout.*	Variadic parameter list can be passed.**	Return values:*		none*/void warning( char *msg,...){	va_list ap;		va_start(ap,msg);	fprintf(stdout,"\n\nWARNING: ");	vfprintf(stdout,msg,ap);	fprintf(stdout,"\n\n");	va_end(ap);}/**	info()**	Prints info msg to stdout.*	Variadic parameter list can be passed.**	Return values:*		none*/void info( char *msg,...){	va_list ap;		va_start(ap,msg);	fprintf(stdout,"\n");	vfprintf(stdout,msg,ap);	va_end(ap);}

⌨️ 快捷键说明

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