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

📄 xutils.c

📁 经典生物信息学多序列比对工具clustalw
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include <stdarg.h>#include <string.h> #include <vibrant.h> #include "clustalw.h"#include "xmenu.h"char fontbuf[80];FonT tmpFont=NULL;static void VSeqMgrFontProc ();static int get_series_matrixname(char *usermtrxname, short *usermat,short *aa_xref,int usermatnum,int *matnum,PrompT mattext);extern Boolean x_menus;extern WindoW mainw;extern GrouP matrix_list,pw_matrix_list;extern GrouP dnamatrix_list,pw_dnamatrix_list;extern GrouP seg_matrix_list,seg_dnamatrix_list;extern GrouP score_matrix_list,score_dnamatrix_list;extern Boolean  interactive;extern Boolean  dnaflag;extern char     hyd_residues[];extern sint     gap_dist;extern Boolean  no_var_penalties, no_hyd_penalties, no_pref_penalties;extern Boolean  use_endgaps;extern Boolean  realign_endgappenalties;extern Boolean  align_endgappenalties;extern sint     divergence_cutoff;extern Boolean  lowercase; /* Flag for GDE output - set on comm. line*/extern Boolean  cl_seq_numbers;extern Boolean  seqRange;extern sint     output_order;extern Boolean  save_log;extern Boolean  quick_pairalign;extern Boolean  neg_matrix;extern Boolean  output_clustal, output_nbrf, output_phylip, output_gcg, output_gde, output_nexus;extern Boolean output_fasta;extern Boolean  save_parameters;extern Boolean  output_tree_clustal, output_tree_phylip, output_tree_distances, output_tree_nexus, output_pim;extern char	seqname[];extern float	transition_weight;extern float    gap_open,      gap_extend;extern float    dna_gap_open,  dna_gap_extend;extern float    prot_gap_open, prot_gap_extend;extern float    pw_go_penalty,      pw_ge_penalty;extern float    dna_pw_go_penalty,  dna_pw_ge_penalty;extern float    prot_pw_go_penalty, prot_pw_ge_penalty;extern sint    wind_gap,ktup,window,signif;extern sint    dna_wind_gap, dna_ktup, dna_window, dna_signif;extern sint    prot_wind_gap,prot_ktup,prot_window,prot_signif;extern Boolean tossgaps;  /* Ignore places in align. where ANY seq. has a gap*/extern Boolean kimura;    /* Use correction for multiple substitutions */extern sint boot_ntrials;               /* number of bootstrap trials */extern unsigned sint boot_ran_seed;     /* random number generator seed */extern sint    bootstrap_format;extern sint struct_penalties,struct_penalties1,struct_penalties2;extern sint output_struct_penalties;extern sint    profile1_nseqs;extern sint     nseqs;extern Boolean use_ss1, use_ss2;extern int inverted;extern char     mtrxname[], pw_mtrxname[];extern char     usermtrxname[], pw_usermtrxname[];extern sint        matnum,pw_matnum;extern short    usermat[], pw_usermat[];extern short    aa_xref[], pw_aa_xref[];extern char     dnamtrxname[], pw_dnamtrxname[];extern char     dnausermtrxname[], pw_dnausermtrxname[];extern sint        dnamatnum,pw_dnamatnum;extern short    userdnamat[], pw_userdnamat[];extern short    dna_xref[], pw_dna_xref[];extern Boolean  use_ambiguities;extern MatMenu matrix_menu;extern MatMenu dnamatrix_menu;extern MatMenu pw_matrix_menu;extern sint        helix_penalty;extern sint        strand_penalty;extern sint        loop_penalty;extern sint        helix_end_minus;extern sint        helix_end_plus;extern sint        strand_end_minus;extern sint        strand_end_plus;extern sint        helix_end_penalty;extern sint        strand_end_penalty;extern TexT savealntext;extern GrouP slow_para,fast_para;extern PrompT   message;           /* used in temporary message window */extern Boolean mess_output;extern FILE *save_log_fd;extern color color_lut[];extern spanel  seq_panel;        /* data for multiple alignment area */extern spanel  prf_panel[];       /* data for profile alignment areas */extern Boolean aln_mode;extern Boolean fixed_prf_scroll;extern Boolean output_ss;extern Boolean output_gp;extern PrompT mattext,pwmattext;extern PrompT dnamattext,pwdnamattext;extern int    save_format;extern Boolean residue_exceptions;extern Boolean segment_exceptions;extern int font_size;extern FonT datafont;extern int av_font[];extern TexT blocklentext;extern IteM segment_item;extern int      pagesize;extern int      orientation;extern Boolean  ps_ruler,ps_header,resize,ps_curve,ps_resno;extern int      first_printres,last_printres,blocklen;extern int      firstres,lastres;void set_go_penalty(TexT t){	char str[10];	float temp;	GetTitle(t,str,10);	temp = atof(str);	if (temp < 0 || temp > 100)		return;	gap_open=temp;        if(dnaflag)         	dna_gap_open     = gap_open;	else         	prot_gap_open     = gap_open;}void set_ge_penalty(TexT t){	char str[10];	float temp;	GetTitle(t,str,10);	temp = atof(str);	if (temp < 0 || temp > 100)		return;	gap_extend=temp;        if(dnaflag)         	dna_gap_extend     = gap_extend;	else         	prot_gap_extend     = gap_extend;}void set_gap_dist(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 100)		return;	gap_dist = temp;}void set_ntrials(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 10000)                return;        boot_ntrials = temp;}void set_ran_seed(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);        temp = atoi(str);        if (temp < 0 || temp > 1000)                return;        boot_ran_seed = temp;}void set_div_seq(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 100)		return;	divergence_cutoff = temp;}void set_pw_go_penalty(TexT t){        char str[10];        float temp;         GetTitle(t,str,10);        temp = atof(str);        if (temp < 0 || temp > 100)                return;	pw_go_penalty = temp;        if(dnaflag)         	dna_pw_go_penalty     = pw_go_penalty;	else         	prot_pw_go_penalty     = pw_go_penalty;}void set_pw_ge_penalty(TexT t){        char str[10];        float temp;         GetTitle(t,str,10);        temp = atof(str);        if (temp < 0 || temp > 100)                return;	pw_ge_penalty = temp;        if(dnaflag)         	dna_pw_ge_penalty     = pw_ge_penalty;	else         	prot_pw_ge_penalty     = pw_ge_penalty;}void set_gp(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);        temp = atoi(str);        if (temp < 0 || temp > 100)                return;	wind_gap = temp;        if(dnaflag)         	dna_wind_gap       = wind_gap;	else         	prot_wind_gap       = wind_gap;}void set_ktuple(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);        temp = atoi(str);        if (temp < 0 || temp > 100)                return;	ktup = temp;        if(dnaflag)         	dna_ktup       = ktup;	else         	prot_ktup       = ktup;}void set_topdiags(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);        temp = atoi(str);        if (temp < 0 || temp > 100)                return;	signif = temp;        if(dnaflag)         	dna_signif     = signif;	else         	prot_signif     = signif;}void set_window(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);        temp = atoi(str);        if (temp < 0 || temp > 100)                return;	window = temp;        if(dnaflag)         	dna_window     = window;	else         	prot_window     = window;}void set_hyd_res(TexT t){	int i,j;	char tstr[27];	GetTitle(t,tstr,27);	for (i=0,j=0;i<strlen(hyd_residues) && i<27;i++)	{		if (isalpha(tstr[i]))			hyd_residues[j++] = tstr[i];	}	hyd_residues[j]='\0';}void set_button(ButtoN l,Boolean *value){	int tmp;	tmp = GetStatus(l);	if (tmp == TRUE)		*value = TRUE;	else		*value = FALSE;}void set_toggle(PopuP l,Boolean *value){	int tmp;	tmp = GetValue(l);	if (tmp == 1)		*value = TRUE;	else		*value = FALSE;}void set_pref_penalties(PopuP l){	set_toggle(l,&no_pref_penalties);}void set_hyd_penalties(PopuP l){	set_toggle(l,&no_hyd_penalties);}void set_var_penalties(PopuP l){	set_toggle(l,&no_var_penalties);}void set_endgaps(PopuP l){	set_toggle(l,&use_endgaps);}void set_align_endgappenalties(PopuP l){	set_toggle(l,&align_endgappenalties);}void set_realign_endgappenalties(PopuP l){	set_toggle(l,&realign_endgappenalties);}void set_case(PopuP l){	set_toggle(l,&lowercase);}void set_snos(PopuP l){	set_toggle(l,&cl_seq_numbers);}void setRange(PopuP l){	set_toggle(l, &seqRange);}void set_save_paras(PopuP l){	set_toggle(l,&save_parameters);}void set_transitions(TexT t){        char str[10];        float temp;         GetTitle(t,str,10);        temp = atof(str);        if (temp < 0 || temp > 100)                return;         transition_weight = temp;}void set_ambiguities(PopuP l){	set_toggle(l,&use_ambiguities);}void set_neg_matrix(PopuP l){	set_toggle(l,&neg_matrix);}void set_output_nbrf(ButtoN l){	set_button(l,&output_nbrf);}void set_output_phylip(ButtoN l){	set_button(l,&output_phylip);}void set_output_gcg(ButtoN l){	set_button(l,&output_gcg);}void set_output_order(PopuP g){	int tmp;	tmp = GetValue(g);	if (tmp == 1)		output_order=INPUT;	else		output_order=ALIGNED;}void set_pagesize(PopuP g){	int tmp;	char tstr[10];	tmp = GetValue(g);	if (tmp == 1)		pagesize=A4;	else if (tmp == 2)		pagesize=A3;	else		pagesize=USLETTER;	if(orientation==LANDSCAPE)	{		if(pagesize==A4) blocklen=150;		else if (pagesize==A3) blocklen=250;		else blocklen=150;	}	else	{		if(pagesize==A4) blocklen=80;		else if (pagesize==A3) blocklen=150;		else blocklen=150;	}	sprintf(tstr,"%d",blocklen);	SetTitle(blocklentext,tstr);}void set_orientation(PopuP g){	int tmp;	char tstr[10];	tmp = GetValue(g);	if (tmp == 1)		orientation=LANDSCAPE;	else		orientation=PORTRAIT;	if(orientation==LANDSCAPE)	{		if(pagesize==A4) blocklen=150;		else if (pagesize==A3) blocklen=250;		else blocklen=150;	}	else	{		if(pagesize==A4) blocklen=80;		else if (pagesize==A3) blocklen=150;		else blocklen=150;	}	sprintf(tstr,"%d",blocklen);	SetTitle(blocklentext,tstr);}void set_resno(PopuP l){	set_toggle(l,&ps_resno);}void set_curve(PopuP l){	set_toggle(l,&ps_curve);}void set_ruler(PopuP l){	set_toggle(l,&ps_ruler);}void set_header(PopuP l){	set_toggle(l,&ps_header);}void set_resize(PopuP l){	set_toggle(l,&resize);}void set_fres(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 100000)                return;        firstres = temp;}void set_lres(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 100000)                return;        lastres = temp;}void set_fpres(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 10000)                return;        first_printres = temp;}void set_lpres(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 10000)                return;        last_printres = temp;}void set_blocklen(TexT t){        char str[10];        int temp;         GetTitle(t,str,10);	if (str == NULL) return;	temp = atoi(str);        if (temp < 0 || temp > 10000)                return;        blocklen = temp;}void set_output_tree_nexus(ButtoN l){	set_button(l,&output_tree_nexus);}void set_output_pim(ButtoN l){	set_button(l,&output_pim);}void set_output_tree_clustal(ButtoN l){	set_button(l,&output_tree_clustal);}void set_output_tree_phylip(ButtoN l){	set_button(l,&output_tree_phylip);}void set_output_tree_distances(ButtoN l){	set_button(l,&output_tree_distances);}void set_tossgaps(IteM i){	tossgaps=GetStatus(i);}void set_kimura(IteM i){	kimura=GetStatus(i);}void set_boot_format(PopuP g){	int tmp;	tmp = GetValue(g);	if (tmp == 1)		bootstrap_format=BS_NODE_LABELS;	else		bootstrap_format=BS_BRANCH_LABELS;}char prompt_for_yes_no(char *title,char *prompt){        char lin2[MESSLENGTH*MESSLINES]; 	if(!x_menus) return;	strcpy(lin2,title);	strcat(lin2,".\n");	strcat(lin2,prompt);	strcat(lin2,"?");	if (Message(MSG_YN,lin2)==ANS_NO)                return('n');        else                return('y'); } /**	fatal()**	Prints error msg and exits.*	Variadic parameter list can be passed.**	Return values:*		none*/void fatal( char *msg,...){	va_list ap;	char istr[MESSLENGTH*MESSLINES] = "FATAL ERROR: ";	char vstr[1000];		va_start(ap,msg);	vsprintf(vstr,msg,ap);	va_end(ap);	strncat(istr,vstr,MESSLENGTH*MESSLINES-20);	Message(MSG_FATAL,istr);}/**	error()**	Prints error msg.*	Variadic parameter list can be passed.**	Return values:*		none*/void error( char *msg,...){	va_list ap;	char istr[MESSLENGTH*MESSLINES] = "ERROR: ";	char vstr[1000];		va_start(ap,msg);	vsprintf(vstr,msg,ap);	va_end(ap);	strncat(istr,vstr,MESSLENGTH*MESSLINES-10);

⌨️ 快捷键说明

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