📄 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 + -