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

📄 xmenu.c

📁 经典生物信息学多序列比对工具clustalw
💻 C
📖 第 1 页 / 共 5 页
字号:
		drawpimtext=DialogText(output_list, "", 35, NULL);		strcpy(name,path);        	strcat(name,"pim");		SetTitle(drawpimtext, name);		Break(output_list);	}	SelectFont(systemFont);	stdLineHeight=15;	Break(drawtreew);	drawgr=HiddenGroup(drawtreew, 2, 0, NULL);	shift(drawgr, 140, 20);	draw_ok=PushButton(drawgr, "  OK  ", DrawTree);	shift(drawgr, 20, 0);	draw_can=PushButton(drawgr, "CANCEL", CancelWin);	Show(drawtreew);}static void BootstrapTreeWin (IteM item){	GrouP bootgr;	ButtoN boot_ok, boot_can;	TexT seed,ntrials;	char name[FILENAMELEN];	char path[FILENAMELEN];	char str[FILENAMELEN];	GrouP output_list;	if (empty)	{		error("No file loaded");		return;	}        if (nseqs < 2)	{                error("Alignment has only %d sequences",nseqs);                return;        }	get_path(seqname,path);	SelectFont(systemFont);	stdCharWidth=CharWidth('A');	stdLineHeight=LineHeight();	boottreew=FixedWindow(-50, -33, -10, -10, "BOOTSTRAP TREE",RemoveWin);        make_prompt(boottreew, "Random number generator seed [1-1000] :");	Advance(boottreew);	sprintf(str,"%4d",boot_ran_seed);        seed=DialogText(boottreew, str, 4,set_ran_seed);	Break(boottreew);        make_prompt(boottreew, "Number of bootstrap trials [1-10000] :");	Advance(boottreew);	sprintf(str,"%5d",boot_ntrials);        ntrials=DialogText(boottreew, str, 5,set_ntrials);	Break(boottreew);	output_list=HiddenGroup(boottreew, 2, 0, NULL);	if (output_tree_clustal)	{		make_prompt(output_list, "SAVE CLUSTAL TREE AS :");		bootnjtreetext=DialogText(output_list, "", 35, NULL);		strcpy(name,path);        	strcat(name,"njb");		SetTitle(bootnjtreetext, name);		Break(output_list);	}	if (output_tree_phylip)	{		make_prompt(output_list, "SAVE PHYLIP TREE AS :");		bootphtreetext=DialogText(output_list, "", 35, NULL);		strcpy(name,path);        	strcat(name,"phb");		SetTitle(bootphtreetext, name);		Break(output_list);	}	if (output_tree_nexus)	{		make_prompt(output_list, "SAVE NEXUS TREE AS :");		bootnxstreetext=DialogText(output_list, "", 35, NULL);		strcpy(name,path);        	strcat(name,"treb");		SetTitle(bootnxstreetext, name);		Break(output_list);	}	SelectFont(systemFont);	stdLineHeight=15;	Break(boottreew);	bootgr=HiddenGroup(boottreew, 2, 0, NULL);	shift(bootgr, 140, 20);	boot_ok=PushButton(bootgr, "  OK  ", BootstrapTree);	shift(bootgr, 20, 0);	boot_can=PushButton(bootgr, "CANCEL", CancelWin);	Show(boottreew);}static void CreateAlignTree(ButtoN but){	char path[FILENAMELEN];	char phylip_name[FILENAMELEN];	GetTitle(savetreetext, filename, FILENAMELEN);	strcpy(phylip_name,filename);	stripspace(filename);	info("Doing pairwise alignments...");	if(save_log)	{        	get_path(seqname,path);        	strcpy(save_log_filename,path);        	strcat(save_log_filename,"log");		if ((save_log_fd=fopen(save_log_filename,"a"))==NULL)			error("Cannot open log file %s",save_log_filename);	}	WatchCursor();	if (Visible(savetreew))	{		Remove(savetreew);		savetreew=NULL;	}	make_tree(phylip_name);	if(save_log && save_log_fd!=NULL)	{		fclose(save_log_fd);		save_log_fd=NULL;	}	ArrowCursor();	info("Tree %s created",filename);}static void DrawTree(ButtoN but){	char path[FILENAMELEN];	char phylip_name[FILENAMELEN];	char clustal_name[FILENAMELEN];	char dist_name[FILENAMELEN];	char nexus_name[FILENAMELEN];	char pim_name[FILENAMELEN];	if(output_tree_clustal)	{		GetTitle(drawnjtreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(clustal_name,filename);	}	if(output_tree_phylip)	{		GetTitle(drawphtreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(phylip_name,filename);	}	if(output_tree_distances)	{		GetTitle(drawdsttreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(dist_name,filename);	}	if(output_tree_nexus)	{		GetTitle(drawnxstreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(nexus_name,filename);	}	if(output_pim)  /* if this is absent, no file gets created ??? */	{		GetTitle(drawpimtext, filename, FILENAMELEN);		stripspace(filename);		strcpy(pim_name,filename);	}	info("Calculating tree...");	WatchCursor();	if(save_log)	{        	get_path(seqname,path);        	strcpy(save_log_filename,path);        	strcat(save_log_filename,"log");		if ((save_log_fd=fopen(save_log_filename,"a"))==NULL)			error("Cannot open log file %s",save_log_filename);	}	if (Visible(drawtreew))	{		Remove(drawtreew);		drawtreew=NULL;	}	phylogenetic_tree(phylip_name,clustal_name,dist_name,nexus_name,pim_name);	if(save_log && save_log_fd!=NULL)	{		fclose(save_log_fd);		save_log_fd=NULL;	}	ArrowCursor();	info("Tree %s created",filename);}static void BootstrapTree(ButtoN but){	char phylip_name[FILENAMELEN];	char clustal_name[FILENAMELEN];	char nexus_name[FILENAMELEN];	char path[FILENAMELEN];	if(output_tree_clustal)	{		GetTitle(bootnjtreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(clustal_name,filename);	}	if(output_tree_phylip)	{		GetTitle(bootphtreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(phylip_name,filename);	}	if(output_tree_nexus)	{		GetTitle(bootnxstreetext, filename, FILENAMELEN);		stripspace(filename);		strcpy(nexus_name,filename);	}	info("Bootstrapping tree...");	WatchCursor();	if(save_log)	{        	get_path(seqname,path);        	strcpy(save_log_filename,path);        	strcat(save_log_filename,"log");		if ((save_log_fd=fopen(save_log_filename,"a"))==NULL)			warning("Cannot open log file %s",save_log_filename);	}	if (Visible(boottreew))	{		Remove(boottreew);		boottreew=NULL;	}	bootstrap_tree(phylip_name,clustal_name,nexus_name);	if(save_log && save_log_fd!=NULL)	{		fclose(save_log_fd);		save_log_fd=NULL;	}	info("Bootstrap tree %s created",filename);	ArrowCursor();}static void OpenSeqFile (IteM item){	int n;	panel_data data;	if (nseqs>0)	{		if (Message(MSG_YN,"Replace existing sequences ?")==ANS_NO)			return;	}	if (!GetInputFileName (filename,FILENAMELEN,"","")) return; 	strcpy(seqname,filename);	GetPanelExtra(seq_panel.names,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(seq_panel.names,&data);	GetPanelExtra(seq_panel.seqs,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(seq_panel.seqs,&data);		n=seq_input(FALSE);	if (n<=0)	{		info("File %s not loaded.",seqname);		return;	}	load_aln(seq_panel,0,nseqs-1,TRUE);	ncutseqs=0;	info("File %s loaded.",seqname);}static void AppendSeqFile (IteM item){	int n;	panel_data data;	if (!GetInputFileName (filename,FILENAMELEN,"","")) return; 	strcpy(seqname,filename);	GetPanelExtra(seq_panel.names,&data);	data.nseqs=0;	SetPanelExtra(seq_panel.names,&data);	n=seq_input(TRUE);	if (n<=0)	{		info("File %s not loaded.",seqname);		return;	}	load_aln(seq_panel,0,nseqs-1,FALSE);	info("File %s appended.",seqname);}static void OpenPrf1File (IteM item){	int i,j,n,tmpn=0,tmpfs;	sint *tmplen_array;	sint *tmpindex;	char **tmp_array;	char **tmpnames;	char **tmptitles;	panel_data data;	if (profile1_nseqs>0)	{		if (Message(MSG_YN,"Replace existing sequences ?")==ANS_NO)			return;	}	if (!GetInputFileName (filename,FILENAMELEN,"","")) return; 	if(!profile2_empty)	{		tmpn=nseqs-profile1_nseqs;		tmpfs=profile1_nseqs;		tmpnames=(char **)ckalloc((tmpn+1)*sizeof(char *));		tmptitles=(char **)ckalloc((tmpn+1)*sizeof(char *));		tmplen_array=(sint *)ckalloc((tmpn+1)*sizeof(sint));		tmpindex=(sint *)ckalloc((tmpn+1)*sizeof(sint));		tmp_array=(char **)ckalloc((tmpn+1)*sizeof(char *));		for(i=profile1_nseqs+1;i<=nseqs;i++)		{			tmpnames[i-profile1_nseqs-1]=(char *)ckalloc((MAXNAMES+2)*sizeof(char));			tmptitles[i-profile1_nseqs-1]=(char *)ckalloc((MAXTITLES+2)*sizeof(char));			strcpy(tmpnames[i-profile1_nseqs-1],names[i]);			strcpy(tmptitles[i-profile1_nseqs-1],titles[i]);			tmplen_array[i-profile1_nseqs-1]=seqlen_array[i];			tmpindex[i-profile1_nseqs-1]=output_index[i]-tmpfs+profile1_nseqs;			tmp_array[i-profile1_nseqs-1]=(char *)ckalloc((seqlen_array[i]+2)*sizeof(char));			for(j=1;j<=seqlen_array[i];j++)				tmp_array[i-profile1_nseqs-1][j]=seq_array[i][j];		}	}	strcpy(seqname,filename);	GetPanelExtra(prf_panel[0].names,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(prf_panel[0].names,&data);	GetPanelExtra(prf_panel[0].seqs,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(prf_panel[0].seqs,&data);        profile_no = 1;        n=profile_input();	if (n<=0)	{		info("File %s not loaded.",seqname);		return;	}	strcpy(profile1_name,seqname);	load_aln(prf_panel[0],0,profile1_nseqs-1,TRUE);	if(tmpn!=0)	{		nseqs=tmpn+profile1_nseqs;		realloc_aln(profile1_nseqs+1,nseqs);		for(i=profile1_nseqs+1;i<=nseqs;i++)		{			names[i]=(char *)ckalloc((MAXNAMES+2)*sizeof(char));			titles[i]=(char *)ckalloc((MAXTITLES+2)*sizeof(char));			strcpy(names[i],tmpnames[i-profile1_nseqs-1]);			ckfree(tmpnames[i-profile1_nseqs-1]);			strcpy(titles[i],tmptitles[i-profile1_nseqs-1]);			ckfree(tmptitles[i-profile1_nseqs-1]);			seqlen_array[i]=tmplen_array[i-profile1_nseqs-1];			output_index[i]=tmpindex[i-profile1_nseqs-1]-tmpfs+profile1_nseqs;			seq_array[i]=(char *)ckalloc((seqlen_array[i]+2)*sizeof(char));			for(j=1;j<=seqlen_array[i];j++)				seq_array[i][j]=tmp_array[i-profile1_nseqs-1][j];			ckfree(tmp_array[i-profile1_nseqs-1]);		}		ckfree(tmpnames);		ckfree(tmptitles);		ckfree(tmplen_array);		ckfree(tmpindex);		ckfree(tmp_array);		profile2_empty=FALSE;	}	load_aln(prf_panel[1],profile1_nseqs,nseqs-1,TRUE);	ncutseqs=0;	info("File %s loaded.",profile1_name);}static void OpenPrf2File (IteM item){	int n;	panel_data data;	if(profile1_empty)	{		error("You must load profile 1 first.");		return;	}	if (nseqs>profile1_nseqs)	{		if (Message(MSG_YN,"Replace existing sequences ?")==ANS_NO)			return;	}	if (!GetInputFileName (filename,FILENAMELEN,"","")) return; 	strcpy(seqname,filename);	GetPanelExtra(prf_panel[1].names,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(prf_panel[1].names,&data);	GetPanelExtra(prf_panel[1].seqs,&data);	data.nseqs=0;	data.vseqs=0;	SetPanelExtra(prf_panel[1].seqs,&data);        profile_no = 2;        n=profile_input();	if (n<=0)	{		info("File %s not loaded.",seqname);		return;	}	strcpy(profile2_name,seqname);	ncutseqs=0;	load_aln(prf_panel[1],profile1_nseqs,nseqs-1,TRUE);	info("File %s loaded.",profile2_name);}static void BlackandWhite(IteM item){	ncolors=1;		if (aln_mode == MULTIPLEM)		color_seqs();	else	{		color_prf1();		color_prf2();	}	usebw=TRUE;	usedefcolors=FALSE;	useusercolors=FALSE;        SetStatus(bw_item,usebw);        SetStatus(defcol_item,usedefcolors);        SetStatus(usercol_item,useusercolors);	info("Done.");}static void DefColorPar(IteM item){	if (explicit_par_file != NULL)		ckfree(explicit_par_file);	explicit_par_file=NULL;	if(dnaflag)		par_file=find_file(def_dnapar_file);	else		par_file=find_file(def_protpar_file);	init_color_parameters(par_file);	if (aln_mode == MULTIPLEM)		color_seqs();	else	{		color_prf1();		color_prf2();	}	usebw=FALSE;	usedefcolors=TRUE;	useusercolors=FALSE;        SetStatus(bw_item,usebw);        SetStatus(defcol_item,usedefcolors);        SetStatus(usercol_item,useusercolors);	info("Done.");}void set_reset_new_gaps(IteM i){        reset_alignments_new=GetStatus(i);	if(reset_alignments_new==TRUE)	{		reset_alignments_all=FALSE;        	SetStatus(all_gaps_item,reset_alignments_all);	}}void set_reset_all_gaps(IteM i){        reset_alignments_all=GetStatus(i);	if(reset_alignments_all==TRUE)	{		reset_alignments_new=FALSE;        	SetStatus(new_gaps_item,reset_alignments_new);	}} static void OpenColorParWin(IteM item){       read_file_window("Input Color File","COLOR PARAMETER FILE NAME:",explicit_par_file,OpenColorPar);}static void OpenColorPar(ButtoN but){  /*<ramu> this might do to open a file selection window */

⌨️ 快捷键说明

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