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

📄 xutils.c

📁 经典生物信息学多序列比对工具clustalw
💻 C
📖 第 1 页 / 共 2 页
字号:
	if (!interactive)		fprintf(stdout,"%s",istr);	else		Message(MSG_ERROR,istr);}/**	warning()**	Prints warning msg.*	Variadic parameter list can be passed.**	Return values:*		none*/void warning( char *msg,...){	va_list ap;	char istr[MESSLENGTH*MESSLINES] = "WARNING: ";	char vstr[1000];	va_start(ap,msg);	vsprintf(vstr,msg,ap);	va_end(ap);	strncat(istr,vstr,MESSLENGTH*MESSLINES-10);	if (!interactive)		fprintf(stdout,"%s",istr);	else		Message(MSG_ERROR,istr);}/**	info()**	Prints info msg.*	Variadic parameter list can be passed.**	Return values:*		none*/void info( char *msg,...){	va_list ap;	char istr[MESSLENGTH+10] = "";	char vstr[1000];    	if (!mess_output) return;	va_start(ap,msg);	vsprintf(vstr,msg,ap);	va_end(ap);	strncat(istr,vstr,MESSLENGTH);	if (!interactive)		fprintf(stdout,"%s\n",istr);	else	{		UseWindow(mainw);		SelectFont(systemFont);			SetTitle(message,istr);		if(save_log && save_log_fd!=NULL)			fprintf(save_log_fd,"%s\n",istr);		Update();	}}void set_helix_gp(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	helix_penalty = temp;}void set_strand_gp(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	strand_penalty = temp;}void set_loop_gp(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	loop_penalty = temp;}void set_terminal_gp(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	helix_end_penalty = temp;}void set_helix_minus(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	helix_end_minus = temp;}void set_helix_plus(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	helix_end_plus = temp;}void set_strand_plus(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	strand_end_plus = temp;}void set_strand_minus(TexT t){	char str[10];	int temp;	GetTitle(t,str,10);	temp = atoi(str);	if (temp < 0 || temp > 9)		return;	strand_end_minus = temp;} void set_inverted(IteM i){        inverted=GetStatus(i);        if (inverted==FALSE)        {                strcpy(color_lut[0].name,"BLACK");                color_lut[0].r=0.4;                color_lut[0].g=0.4;                color_lut[0].b=0.4;                SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255);                color_lut[0].val=GetColor();        }        else        {                strcpy(color_lut[0].name,"WHITE");                color_lut[0].r=1.0;                color_lut[0].g=1.0;                color_lut[0].b=1.0;                SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255);                color_lut[0].val=GetColor();        }         if(aln_mode==MULTIPLEM)                DrawPanel(seq_panel.seqs);        else        {                DrawPanel(prf_panel[0].seqs);                DrawPanel(prf_panel[1].seqs);        } }void set_ss_output(ButtoN b){        int tmp;         tmp = GetStatus(b);        if (tmp) output_ss = TRUE;	else output_ss = FALSE;	if (output_ss && output_gp)		output_struct_penalties=2;	else if (output_ss)		output_struct_penalties=0;	else if (output_gp)		output_struct_penalties=1;	else		output_struct_penalties=3;}void set_gp_output(ButtoN b){        int tmp;         tmp = GetStatus(b);        if (tmp) output_gp = TRUE;	else output_gp = FALSE;	if (output_ss && output_gp)		output_struct_penalties=2;	else if (output_ss)		output_struct_penalties=0;	else if (output_gp)		output_struct_penalties=1;	else		output_struct_penalties=3;}void set_user_matrix(ButtoN but){	if(get_series_matrixname(usermtrxname,usermat,aa_xref,5,&matnum,mattext))		strcpy(mtrxname,usermtrxname);	SetValue(matrix_list,matnum);}void set_pw_user_matrix(ButtoN but){	if(get_user_matrixname(pw_usermtrxname,pw_usermat,pw_aa_xref,5,&pw_matnum,pwmattext))		strcpy(pw_mtrxname,pw_usermtrxname);	SetValue(pw_matrix_list,pw_matnum);}void set_pw_matrix(GrouP g){        int tmp;         tmp = GetValue(g);        if (tmp>0 && tmp<pw_matrix_menu.noptions)         {                pw_matnum = tmp;		strcpy(pw_mtrxname,pw_matrix_menu.opt[tmp-1].string);        }        else if(pw_usermtrxname[0]=='\0')	{		if(get_user_matrixname(pw_usermtrxname,pw_usermat,pw_aa_xref,pw_matrix_menu.noptions,&pw_matnum,pwmattext))			strcpy(pw_mtrxname,pw_usermtrxname);	}	else		pw_matnum=pw_matrix_menu.noptions;	SetValue(pw_matrix_list,pw_matnum);}void set_matrix(GrouP g){	int tmp;	int status;         tmp = GetValue(g);        if (tmp>0 && tmp<matrix_menu.noptions)         {        	matnum = tmp;		strcpy(mtrxname,matrix_menu.opt[tmp-1].string);        }        else if(usermtrxname[0]=='\0')	{		if(get_series_matrixname(usermtrxname,usermat,aa_xref,matrix_menu.noptions,&matnum,mattext))			strcpy(mtrxname,usermtrxname);	}	else matnum=matrix_menu.noptions;	SetValue(matrix_list,matnum);}static int get_series_matrixname(char *usermtrxname, short *usermat,short *aa_xref,int usermatnum,int *matnum,PrompT mattext){	int ret=0;	static Char filename[FILENAMELEN];        if (GetInputFileName(filename,FILENAMELEN,"","")) 	{        	if(user_mat_series(filename, usermat, aa_xref))        	{                	strcpy(usermtrxname,filename);                	*matnum=usermatnum;			SetTitle(mattext,usermtrxname);			ret=1;        	}	} 	return ret;}int get_user_matrixname(char *usermtrxname, short *usermat,short *aa_xref,int usermatnum,int *matnum,PrompT mattext){	int ret=0;	static Char filename[FILENAMELEN];        if (GetInputFileName(filename,FILENAMELEN,"","")) 	{        	if(user_mat(filename, usermat, aa_xref))        	{                	strcpy(usermtrxname,filename);                	*matnum=usermatnum;			SetTitle(mattext,usermtrxname);			ret=1;        	}	} 	return ret;}void set_user_dnamatrix(ButtoN but){	if(get_user_matrixname(dnausermtrxname,userdnamat,dna_xref,3,&dnamatnum,dnamattext))		strcpy(dnamtrxname,dnausermtrxname);	SetValue(dnamatrix_list,dnamatnum);}void set_pw_user_dnamatrix(ButtoN but){	if(get_user_matrixname(pw_dnausermtrxname,pw_userdnamat,pw_dna_xref,3,&pw_dnamatnum,pwdnamattext))		strcpy(pw_dnamtrxname,pw_dnausermtrxname);	SetValue(pw_dnamatrix_list,pw_dnamatnum);}void set_pw_dnamatrix(GrouP g){        int tmp;         tmp = GetValue(g);        if (tmp>0 && tmp<dnamatrix_menu.noptions)         {                pw_dnamatnum = tmp;		strcpy(pw_dnamtrxname,dnamatrix_menu.opt[tmp-1].string);        }        else if(pw_dnausermtrxname[0]=='\0')	{		if(get_user_matrixname(pw_dnausermtrxname,pw_userdnamat,pw_dna_xref,dnamatrix_menu.noptions,&pw_dnamatnum,pwdnamattext))			strcpy(pw_dnamtrxname,pw_dnausermtrxname);	}	else pw_dnamatnum=dnamatrix_menu.noptions;	SetValue(pw_dnamatrix_list,pw_dnamatnum);}void set_dnamatrix(GrouP g){	int tmp;         tmp = GetValue(g);        if (tmp>0 && tmp<dnamatrix_menu.noptions)         {        	dnamatnum = tmp;		strcpy(dnamtrxname,dnamatrix_menu.opt[tmp-1].string);        }        else if(dnausermtrxname[0]=='\0')	{		if(get_user_matrixname(dnausermtrxname,userdnamat,dna_xref,dnamatrix_menu.noptions,&dnamatnum,dnamattext))			strcpy(dnamtrxname,dnausermtrxname);	}	else dnamatnum=dnamatrix_menu.noptions;	SetValue(dnamatrix_list,dnamatnum);}FILE *  open_input_file(char *file_name){        FILE * file_handle;         if (*file_name == EOS) {                error("Bad input file [%s]",file_name);                return NULL;        }#ifdef VMS        if((file_handle=fopen(file_name,"r","rat=cr","rfm=var"))==NULL) {#else        if((file_handle=fopen(file_name,"r"))==NULL) {#endif                error("Cannot open input file [%s]",file_name);                return NULL;        }        return file_handle;} void set_use_ss1(PopuP l){        set_toggle(l,&use_ss1);	load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE);	load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);}void set_use_ss2(PopuP l){        set_toggle(l,&use_ss2);	load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE);	load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);}void set_output_clustal(ButtoN l){        set_button(l,&output_clustal);}void set_output_gde(ButtoN l){        set_button(l,&output_gde);}void set_output_nexus(ButtoN l){        set_button(l,&output_nexus);}void set_output_fasta(ButtoN l){        set_button(l,&output_fasta);}void set_format(GrouP g){        int i;	char path[FILENAMELEN];	get_path(seqname,path);	GetTitle(savealntext, path,FILENAMELEN);/* remove the current extension */	for(i=strlen(path)-1;i>=0;i--)		if(path[i]=='.')		{			path[i]='\0';			break;		}			        i = GetValue(g);        if (i==1)	{                save_format=CLUSTAL;		strcat(path,".aln");	}        else if (i==2)	{                save_format=PIR;		strcat(path,".pir");	}        else if (i==3)	{                save_format=MSF;		strcat(path,".msf");	}        else if (i==4)	{                save_format=PHYLIP;		strcat(path,".phy");	}        else if (i==5)	{                save_format=GDE;		strcat(path,".gde");	}        else if (i==6)	{                save_format=NEXUS;		strcat(path,".nxs");	}        else if (i==7)	{                save_format=FASTA;		strcat(path,".fasta");	}	SetTitle(savealntext, path);}void set_residue_exceptions(IteM i){	if (residue_exceptions==FALSE)		residue_exceptions=TRUE;	else		residue_exceptions=FALSE;	if (aln_mode==MULTIPLEM)		DrawPanel(seq_panel.seqs);	else	{		DrawPanel(prf_panel[0].seqs);		DrawPanel(prf_panel[1].seqs);	}}  void set_fs_toggle(PopuP l){        set_toggle(l,&quick_pairalign);        if (quick_pairalign)        {                Hide(slow_para);                Show(fast_para);        }        else        {                Hide(fast_para);                Show(slow_para);        }}void set_font_size(PopuP g){        int tmp;	char font[30];	tmp = GetValue(g);	/*	if ( tmp == 6 ) {	  printf("\n choosing differnt fonts %d\n ",tmp);	  VSeqMgrFontProc();	  printf("\n choosing differnt fonts ( %s ) ",fontbuf);	  datafont=ParseFont(fontbuf);	}	else {	  printf("\n NOT......... choosing differnt fonts   %d\n ",tmp);	*/	  font_size=tmp-1;	  sprintf(font, "%s,%d,%c", "courier", av_font[font_size], 'm');	  datafont=ParseFont(font);	  /*	} */	if (aln_mode==MULTIPLEM)	{		DrawPanel(seq_panel.names);		DrawPanel(seq_panel.seqs);	}	else	{		DrawPanel(prf_panel[0].names);		DrawPanel(prf_panel[0].seqs);		DrawPanel(prf_panel[1].names);		DrawPanel(prf_panel[1].seqs);	}	correct_name_bars(FALSE);	correct_seq_bars(FALSE);} void set_pscroll_mode(ButtoN l){	panel_data data;        set_button(l,&fixed_prf_scroll);	GetPanelExtra(prf_panel[0].seqs,&data);	if(fixed_prf_scroll)		data.lockoffset=data.firstvcol;	else		data.lockoffset=0;	SetPanelExtra(prf_panel[0].seqs,&data);	GetPanelExtra(prf_panel[1].seqs,&data);	if(fixed_prf_scroll)		data.lockoffset=data.firstvcol;	else		data.lockoffset=0;	SetPanelExtra(prf_panel[1].seqs,&data);	correct_seq_bars(FALSE);} void set_aln_mode(PopuP g){        int tmp;        tmp = GetValue(g);        if (tmp == 1)                aln_mode = MULTIPLEM;        else                aln_mode = PROFILEM;        switch_mode();} void set_show_segments(IteM l){        if (segment_exceptions==FALSE)                segment_exceptions=TRUE;        else                segment_exceptions=FALSE;	calc_seg_exceptions();	SetStatus(segment_item,segment_exceptions);        show_segment_exceptions();} void shift(Handle a, int dx, int dy){	PoinT pt; 	GetNextPosition (a, &pt);	pt.x+=dx;	pt.y+=dy;	SetNextPosition(a, pt);}void stripspace(char *str){	register int i,j,p;	char *tstr; #ifndef UNIX	return;#endif        p = strlen(str) - 1;         while ( isspace(str[p]) )                p--;         str[p + 1] = EOS;	tstr=(char *)ckalloc((p+2)*sizeof(char)); 	for(i=0,j=0;i<=p;i++)		if(!isspace(str[i]))			tstr[j++]=str[i];	tstr[j] = EOS;	strcpy(str,tstr);	ckfree(tstr);}/*   extra code  */static void VSeqMgrFontProc (){        Nlm_FontSpec font;        FonT f;        /* GetFontSpec(vsmp->font, &font); */	printf(" before getfontspec \n");        GetFontSpec(tmpFont, &font);	printf(" done getfontspec \n");        if (ChooseFont(&font, CFF_READ_FSP, NULL))        {                /***                f = GetPermanentFont(&font);                ***/                f = CreateFont(&font);                tmpFont = f;                SelectFont(f);                /* vsmp->lineheight = LineHeight();                vsmp->leading = Leading();                vsmp->charw = MaxCharWidth();                vsmp->update_all = TRUE; */                /* VSeqMgrShow(); */		FontSpecToStr(&font, fontbuf, 80);		datafont = ParseFont(fontbuf);		printf(" font info \n   ( %s )   \n", fontbuf);        }        return ;}

⌨️ 快捷键说明

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