📄 amenu.c
字号:
fprintf(stdout,"= NO\n"); fprintf(stdout,"\n"); fprintf(stdout," 3. Output in alignment "); fprintf(stdout,"= %s\n",secstroutput_txt[output_struct_penalties]); fprintf(stdout,"\n"); fprintf(stdout," 4. Helix gap penalty :%d\n",(pint)helix_penalty); fprintf(stdout," 5. Strand gap penalty :%d\n",(pint)strand_penalty); fprintf(stdout," 6. Loop gap penalty :%d\n",(pint)loop_penalty); fprintf(stdout," 7. Secondary structure terminal penalty :%d\n",(pint)helix_end_penalty); fprintf(stdout," 8. Helix terminal positions within :%d outside :%d\n", (pint)helix_end_minus,(pint)helix_end_plus); fprintf(stdout," 9. Strand terminal positions within :%d outside :%d\n", (pint)strand_end_minus,(pint)strand_end_plus); fprintf(stdout,"\n\n"); fprintf(stdout," H. HELP\n\n\n"); getstr("Enter number (or [RETURN] to exit)",lin2); if( *lin2 == EOS) { return; } switch(toupper(*lin2)) { case '1': use_ss1 ^= TRUE; break; case '2': use_ss2 ^= TRUE; break; case '3': output_struct_penalties = secstroutput_options(); break; case '4': fprintf(stdout,"Helix Penalty Currently: %d\n",(pint)helix_penalty); helix_penalty=getint("Enter number",1,9,helix_penalty); break; case '5': fprintf(stdout,"Strand Gap Penalty Currently: %d\n",(pint)strand_penalty); strand_penalty=getint("Enter number",1,9,strand_penalty); break; case '6': fprintf(stdout,"Loop Gap Penalty Currently: %d\n",(pint)loop_penalty); loop_penalty=getint("Enter number",1,9,loop_penalty); break; case '7': fprintf(stdout,"Secondary Structure Terminal Penalty Currently: %d\n", (pint)helix_end_penalty); helix_end_penalty=getint("Enter number",1,9,helix_end_penalty); strand_end_penalty = helix_end_penalty; break; case '8': fprintf(stdout,"Helix Terminal Positions Currently: \n"); fprintf(stdout," within helix: %d outside helix: %d\n", (pint)helix_end_minus,(pint)helix_end_plus); helix_end_minus=getint("Enter number of residues within helix",0,3,helix_end_minus); helix_end_plus=getint("Enter number of residues outside helix",0,3,helix_end_plus); break; case '9': fprintf(stdout,"Strand Terminal Positions Currently: \n"); fprintf(stdout," within strand: %d outside strand: %d\n", (pint)strand_end_minus,(pint)strand_end_plus); strand_end_minus=getint("Enter number of residues within strand",0,3,strand_end_minus); strand_end_plus=getint("Enter number of residues outside strand",0,3,strand_end_plus); break; case '?': case 'H': get_help('B'); break; default: fprintf(stdout,"\n\nUnrecognised Command\n\n"); break; } }}static sint secstroutput_options(void){ while(TRUE) { fprintf(stdout,"\n\n\n"); fprintf(stdout," ********* Secondary Structure Output Menu *********\n"); fprintf(stdout,"\n\n"); fprintf(stdout," 1. %s\n",secstroutput_txt[0]); fprintf(stdout," 2. %s\n",secstroutput_txt[1]); fprintf(stdout," 3. %s\n",secstroutput_txt[2]); fprintf(stdout," 4. %s\n",secstroutput_txt[3]); fprintf(stdout," H. HELP\n\n"); fprintf(stdout," -- Current output is %s ",secstroutput_txt[output_struct_penalties]); fprintf(stdout,"--\n"); getstr("\n\nEnter number (or [RETURN] to exit)",lin2); if(*lin2 == EOS) return(output_struct_penalties); switch(toupper(*lin2)) { case '1': return(0); case '2': return(1); case '3': return(2); case '4': return(3); case '?': case 'H': get_help('C'); case 'Q': case 'X': return(0); default: fprintf(stdout,"\n\nUnrecognised Command\n\n"); break; } }}static void phylogenetic_tree_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 } while(TRUE) { fprintf(stdout,"\n\n\n"); fprintf(stdout,"****** PHYLOGENETIC TREE MENU ******\n"); fprintf(stdout,"\n\n"); fprintf(stdout," 1. Input an alignment\n"); fprintf(stdout," 2. Exclude positions with gaps? "); if(tossgaps) fprintf(stdout,"= ON\n"); else fprintf(stdout,"= OFF\n"); fprintf(stdout," 3. Correct for multiple substitutions? "); if(kimura) fprintf(stdout,"= ON\n"); else fprintf(stdout,"= OFF\n"); fprintf(stdout," 4. Draw tree now\n"); fprintf(stdout," 5. Bootstrap tree\n"); fprintf(stdout," 6. Output format options\n"); fprintf(stdout,"\n"); fprintf(stdout," S. Execute a system command\n"); fprintf(stdout," H. HELP\n"); fprintf(stdout," or press [RETURN] to go back to main menu\n\n\n"); getstr("Your choice",lin1); if(*lin1 == EOS) return; switch(toupper(*lin1)) { case '1': seq_input(FALSE); phylip_name[0]=EOS; clustal_name[0]=EOS; dist_name[0]=EOS; nexus_name[0]=EOS; break; case '2': tossgaps ^= TRUE; break; case '3': kimura ^= TRUE;; break; case '4': phylogenetic_tree(phylip_name,clustal_name,dist_name,nexus_name,"amenu.pim"); break; case '5': bootstrap_tree(phylip_name,clustal_name,nexus_name); break; case '6': tree_format_options_menu(); break; case 'S': do_system(); break; case '?': case 'H': get_help('7'); break; case 'Q': case 'X': return; default: fprintf(stdout,"\n\nUnrecognised Command\n\n"); break; } }}static void tree_format_options_menu(void) /* format of tree output */{ 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," ****** Format of Phylogenetic Tree Output ******\n"); fprintf(stdout,"\n\n"); fprintf(stdout," 1. Toggle CLUSTAL format tree output = %s\n", (!output_tree_clustal) ? "OFF" : "ON"); fprintf(stdout," 2. Toggle Phylip format tree output = %s\n", (!output_tree_phylip) ? "OFF" : "ON"); fprintf(stdout," 3. Toggle Phylip distance matrix output = %s\n", (!output_tree_distances)? "OFF" : "ON"); fprintf(stdout," 4. Toggle Nexus format tree output = %s\n\n", (!output_tree_nexus)? "OFF" : "ON"); fprintf(stdout," 5. Toggle Phylip bootstrap positions = %s\n\n",(bootstrap_format==BS_NODE_LABELS) ? "NODE LABELS" : "BRANCH LABELS"); fprintf(stdout,"\n"); fprintf(stdout," H. HELP\n\n\n"); getstr("Enter number (or [RETURN] to exit)",lin2); if(*lin2 == EOS) return; switch(toupper(*lin2)) { case '1': output_tree_clustal ^= TRUE; break; case '2': output_tree_phylip ^= TRUE; break; case '3': output_tree_distances ^= TRUE; break; case '4': output_tree_nexus ^= TRUE; break; case '5': if (bootstrap_format == BS_NODE_LABELS) bootstrap_format = BS_BRANCH_LABELS; else bootstrap_format = BS_NODE_LABELS; break; case '?': case 'H': get_help('0'); break; default: fprintf(stdout,"\n\nUnrecognised Command\n\n"); break; } }}static void format_options_menu(void) /* format of alignment output */{ sint i; sint length = 0; char path[FILENAMELEN+1]; 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," ********* Format of Alignment Output *********\n"); fprintf(stdout,"\n\n"); fprintf(stdout," F. Toggle FASTA format output = %s\n\n", (!output_fasta) ? "OFF" : "ON"); fprintf(stdout," 1. Toggle CLUSTAL format output = %s\n", (!output_clustal) ? "OFF" : "ON"); fprintf(stdout," 2. Toggle NBRF/PIR format output = %s\n", (!output_nbrf) ? "OFF" : "ON"); fprintf(stdout," 3. Toggle GCG/MSF format output = %s\n", (!output_gcg) ? "OFF" : "ON"); fprintf(stdout," 4. Toggle PHYLIP format output = %s\n", (!output_phylip) ? "OFF" : "ON"); fprintf(stdout," 5. Toggle NEXUS format output = %s\n", (!output_nexus) ? "OFF" : "ON"); fprintf(stdout," 6. Toggle GDE format output = %s\n\n", (!output_gde) ? "OFF" : "ON"); fprintf(stdout," 7. Toggle GDE output case = %s\n", (!lowercase) ? "UPPER" : "LOWER"); fprintf(stdout," 8. Toggle CLUSTALW sequence numbers = %s\n", (!cl_seq_numbers) ? "OFF" : "ON"); fprintf(stdout," 9. Toggle output order = %s\n\n", (output_order==0) ? "INPUT FILE" : "ALIGNED"); fprintf(stdout," 0. Create alignment output file(s) now?\n\n"); fprintf(stdout," T. Toggle parameter output = %s\n", (!save_parameters) ? "OFF" : "ON"); fprintf(stdout," R. Toggle sequence range numbers = %s\n", (!seqRange) ? "OFF" : "ON"); fprintf(stdout,"\n"); fprintf(stdout," H. HELP\n\n\n"); getstr("Enter number (or [RETURN] to exit)",lin2); if(*lin2 == EOS) return; switch(toupper(*lin2)) { case '1': output_clustal ^= TRUE; break; case '2': output_nbrf ^= TRUE; break; case '3': output_gcg ^= TRUE; break; case '4': output_phylip ^= TRUE; break; case '5': output_nexus ^= TRUE; break; case '6': output_gde ^= TRUE; break; case '7': lowercase ^= TRUE; break; case '8': cl_seq_numbers ^= TRUE; break; case '9': if (output_order == INPUT) output_order = ALIGNED; else output_order = INPUT; break; case 'F': output_fasta ^= TRUE; break; case 'R': seqRange ^= TRUE; break; case '0': /* DES */ if(empty) { error("No sequences loaded"); break; } get_path(seqname,path); if(!open_alignment_output(path)) break; create_alignment_output(1,nseqs); break; case 'T': save_parameters ^= TRUE; break; case '?': case 'H': get_help('5'); break; default: fprintf(stdout,"\n\nUnrecognised Command\n\n"); break; } }}static void pair_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) { pw_go_penalty = dna_pw_go_penalty; pw_ge_penalty = dna_pw_ge_penalty; ktup = dna_ktup; window = dna_window; signif = dna_signif; wind_gap = dna_wind_gap; } else { pw_go_penalty = prot_pw_go_penalty; pw_ge_penalty = prot_pw_ge_penalty; ktup = prot_ktup; window = prot_window; signif = prot_signif; wind_gap = prot_wind_gap; } while(TRUE) { fprintf(stdout,"\n\n\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -