亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmenu.c

?? 經典生物信息學多序列比對工具clustalw
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if (par_file != NULL)    ckfree(par_file);  par_file=(char *)ckalloc(FILENAMELEN*sizeof(char));  if (!GetInputFileName (par_file,FILENAMELEN,"par","")) return;       /* GetTitle(readfiletext, filename, FILENAMELEN); */  /*  stripspace(filename); */   if (explicit_par_file != NULL)    ckfree(explicit_par_file);  explicit_par_file=(char *)ckalloc(FILENAMELEN*sizeof(char));  /*  if (par_file != NULL)    ckfree(par_file);    par_file=(char *)ckalloc(FILENAMELEN*sizeof(char));     strcpy(explicit_par_file,filename); */  strcpy(explicit_par_file,par_file);  /*strcpy(par_file,filename); */  info("Loading color file: %s\n",par_file);  init_color_parameters(par_file);  if (Visible(readfilew))    {      Remove(readfilew);      readfilew=NULL;    }  if (aln_mode == MULTIPLEM)    color_seqs();  else    {      color_prf1();      color_prf2();    }  usebw=FALSE;  usedefcolors=FALSE;  useusercolors=TRUE;  SetStatus(bw_item,usebw);  SetStatus(defcol_item,usedefcolors);  SetStatus(usercol_item,useusercolors);  info("Done.");}static void RemoveGapPos(IteM item){	int i,j,sl;	Boolean sel=FALSE;	if (nseqs==0)	{		Message(MSG_OK,"No file loaded.");		return;	}	/*  no need for a confirmation!  Ramu	if (Message(MSG_YN,"Remove positions that contain gaps in all sequences ?")==ANS_NO)		return;	*/	if(aln_mode==MULTIPLEM)	{		remove_gap_pos(1,nseqs,0);		load_aln(seq_panel,0,nseqs-1,FALSE);	}	else	{		remove_gap_pos(1,profile1_nseqs,1);		load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE);		remove_gap_pos(profile1_nseqs+1,nseqs,2);		load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);	}	/*	info("Gap positions removed.");*/	info("All the columns that contains only the gaps, are removed!");}static void RemoveGaps(IteM item){	int i,j,sl;	panel_data data;	Boolean sel=FALSE;	if (nseqs==0)	{		Message(MSG_OK,"No file loaded.");		return;	}	GetPanelExtra(active_panel.names,&data);	for (i=0;i<data.nseqs;i++)		if(data.selected[i]==TRUE)		{			sel=TRUE;			break;		}	if(sel==FALSE)	{		Message(MSG_OK,"Select sequences by clicking on the names.");		return;	}	if (Message(MSG_YN,"Remove gaps from selected sequences ?")==ANS_NO)		return;	for (i=data.firstseq+1;i<=data.firstseq+data.nseqs;i++)		if(data.selected[i-data.firstseq-1]==TRUE)		{                	sl=0;                	for(j=1;j<=seqlen_array[i];++j) {                        	if((seq_array[i][j] == gap_pos1) ||                        	   (seq_array[i][j] == gap_pos2)) continue;                        	++sl;                        	seq_array[i][sl]=seq_array[i][j];                	}                        seq_array[i][sl+1]=-3;                	seqlen_array[i]=sl;		}	load_aln(active_panel,data.firstseq,data.firstseq+data.nseqs-1,FALSE);	active_panel.modified=TRUE;	info("Gaps in selected sequences removed.");}static void CutSequences(IteM item){	int i,pos;	Boolean sel=FALSE;	panel_data data;	if (nseqs==0)	{		Message(MSG_OK,"No file loaded.");		return;	}	GetPanelExtra(active_panel.names,&data);	for (i=0;i<data.nseqs;i++)		if(data.selected[i]==TRUE)		{			sel=TRUE;			pos=i;			break;		}	if(sel==FALSE)	{		Message(MSG_OK,"Select sequences to be cut by clicking on the names.");		return;	}	/*	if(ncutseqs>0)	{		if (Message(MSG_YN,"The previously cut sequences will be lost.\nDo you want to continue?")==ANS_NO) return;	}	*/	if (saveseqlen_array!=NULL) ckfree(saveseqlen_array);	if (saveseq_array!=NULL)	{		for(i=0;i<ncutseqs;i++)		{			if (saveseq_array[i]!=NULL) ckfree(saveseq_array[i]);		}		ckfree(saveseq_array);	}	if (savetitles!=NULL)	{		for(i=0;i<ncutseqs;i++)		{			if (savetitles[i]!=NULL) ckfree(savetitles[i]);		}		ckfree(savetitles);	}	if (savenames!=NULL)	{		for(i=0;i<ncutseqs;i++)		{			if (savenames[i]!=NULL) ckfree(savenames[i]);		}		ckfree(savenames);	}	ncutseqs=0;	savenames=(char **)ckalloc((data.nseqs+1) * sizeof(char *));	savetitles=(char **)ckalloc((data.nseqs+1) * sizeof(char *));	saveseq_array=(char **)ckalloc((data.nseqs+1) * sizeof(char *));	saveseqlen_array=(sint *)ckalloc((data.nseqs+1) * sizeof(sint));	for(i=0;i<data.nseqs;i++)	{		savenames[i]=NULL;		savetitles[i]=NULL;		saveseq_array[i]=NULL;	}	if (data.prf_no == 0)		cut_multiplem();	else if (data.prf_no == 1)		cut_profile1();	else if (data.prf_no == 2)		cut_profile2();	GetPanelExtra(active_panel.names,&data);	if(pos>=data.nseqs) pos=data.nseqs-1;	if(data.nseqs>0)		data.selected[pos]=TRUE;	SetPanelExtra(active_panel.names,&data);	DrawPanel(active_panel.names);	active_panel.modified=TRUE;	info("Cut %d sequences.",ncutseqs);}static void cut_multiplem(void){	int i,j;	panel_data data;        GetPanelExtra(active_panel.names,&data);	for (i=data.nseqs;i>0;i--)	{		if(data.selected[i-1]==TRUE)		{			ssave(i);			for(j=i;j<data.nseqs;j++)				sscpy(j,j+1);		}	}        nseqs-=ncutseqs;        if (nseqs<=0) empty=TRUE;	if (ncutseqs>0)		if(nseqs<=data.vseqs)			load_aln(active_panel,0,nseqs-1,TRUE);		else			load_aln(active_panel,0,nseqs-1,FALSE);}static void cut_profile1(void){	int i,j;	panel_data data;        GetPanelExtra(active_panel.names,&data);	for (i=data.nseqs;i>0;i--)	{		if(data.selected[i-1]==TRUE)		{			ssave(i);			for(j=i;j<nseqs;j++)				sscpy(j,j+1);		}	}        profile1_nseqs-=ncutseqs;	nseqs-=ncutseqs;        if (profile1_nseqs<=0) profile1_empty=TRUE;        if (nseqs<=0) empty=TRUE;	if (ncutseqs>0)	{		if(profile1_nseqs<=data.vseqs)			load_aln(active_panel,0,profile1_nseqs-1,TRUE);		else			load_aln(active_panel,0,profile1_nseqs-1,FALSE);		if (!profile2_empty)			load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);	}}static void cut_profile2(void){	int i,j;	panel_data data;        GetPanelExtra(active_panel.names,&data);	for (i=data.nseqs;i>0;i--)	{		if(data.selected[i-1]==TRUE)		{			ssave(i+profile1_nseqs);			for(j=i+profile1_nseqs;j<nseqs;j++)				sscpy(j,j+1);		}	}        nseqs-=ncutseqs;        if (nseqs-profile1_nseqs<=0) profile2_empty=TRUE;        if (nseqs<=0) empty=TRUE;	if (ncutseqs>0)		if(nseqs-profile1_nseqs<=data.vseqs)			load_aln(active_panel,profile1_nseqs,nseqs-1,FALSE);		else			load_aln(active_panel,profile1_nseqs,nseqs-1,TRUE);}static void PasteSequences(IteM item){	int insert;	int i,n;	panel_data data;	if (ncutseqs<=0)	{		Message(MSG_OK,"No sequences available for pasting.\n"                  " Cut selected sequences first.");		 return;	}	GetPanelExtra(active_panel.names,&data);	n=ncutseqs;	insert=-1;        if (data.nseqs>0)        {                for(i=data.nseqs-1;i>=0;i--)                        if(data.selected[i]==TRUE)                        {                                insert=i;                                break;                        }                if (insert==-1)                {                        Message(MSG_OK,"Select a sequence by clicking on the name.\n"                        " Cut sequences will be pasted after this one.");			return;                }        }	if (data.prf_no == 2)	{		insert += profile1_nseqs;		for(i=profile1_nseqs+data.nseqs;i>insert+1;i--)			sscpy(i+ncutseqs,i);		for(i=1;ncutseqs>0;i++)			sload(insert+i+1);	}       	else	{		for(i=nseqs;i>insert+1;i--)			sscpy(i+ncutseqs,i);		for(i=1;ncutseqs>0;i++)			sload(insert+i+1);	}        if(data.prf_no==0)        {                nseqs=data.nseqs+n;                if (nseqs>0) empty=FALSE;		load_aln(seq_panel,0,nseqs-1,FALSE);        }        else if(data.prf_no==1)        {                profile1_nseqs=data.nseqs+n;                nseqs+=n;                if (profile1_nseqs>0) profile1_empty=FALSE;		load_aln(active_panel,0,profile1_nseqs-1,FALSE);		if (!profile2_empty)			load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);        }        else if(data.prf_no==2)        {                nseqs=profile1_nseqs+data.nseqs+n;                if (profile1_nseqs<nseqs)		{			profile2_empty=FALSE;			empty=FALSE;		}/*		load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE);*/		load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);        }	active_panel.modified=TRUE;	info("Pasted %d sequences.",n);}/* copies a sequence from clustal arrays position j to temp arrays */static void ssave(int j){	int k;	if (saveseq_array[ncutseqs] != NULL) ckfree(saveseq_array[ncutseqs]);	if (savenames[ncutseqs] != NULL) ckfree(savenames[ncutseqs]);	if (savetitles[ncutseqs] != NULL) ckfree(savetitles[ncutseqs]);	savenames[ncutseqs]=(char *)ckalloc((MAXNAMES+2)*sizeof(char));	savetitles[ncutseqs]=(char *)ckalloc((MAXTITLES+2)*sizeof(char));	strcpy(savenames[ncutseqs],names[j]);	strcpy(savetitles[ncutseqs],titles[j]);	saveseqlen_array[ncutseqs]=seqlen_array[j];	saveseq_array[ncutseqs]=(char *)ckalloc((seqlen_array[j]+2)*sizeof(char));	for(k=1;k<=seqlen_array[j];k++)		saveseq_array[ncutseqs][k]=seq_array[j][k];	saveseq_array[ncutseqs][k]= -3;	ncutseqs++;}/* copies a sequence from clustal arrays position i to position j */static void sscpy(int i,int j){	int k;	strcpy(names[i],names[j]);	strcpy(titles[i],titles[j]);	seqlen_array[i]=seqlen_array[j];	realloc_seq(i,seqlen_array[i]);	for(k=1;k<=seqlen_array[j];k++)		seq_array[i][k]=seq_array[j][k];	seq_array[i][k]= -3;}/* copies last sequence in temp arrays to clustal arrays after entry i */static void sload(int i){	int k;	if (ncutseqs<1) return;	ncutseqs--;	strcpy(names[i],savenames[ncutseqs]);	strcpy(titles[i],savetitles[ncutseqs]);	seqlen_array[i]=saveseqlen_array[ncutseqs];	realloc_seq(i,seqlen_array[i]);	for(k=1;k<=seqlen_array[i];k++)		seq_array[i][k]=saveseq_array[ncutseqs][k];	seq_array[i][k]= -3;}static void SelectSeqs(IteM item){	select_seqs(seq_panel,TRUE);}static void SelectPrf1(IteM item){	select_seqs(prf_panel[0],TRUE);}static void SelectPrf2(IteM item){	select_seqs(prf_panel[1],TRUE);}static void MergeProfiles(IteM item){        if (profile2_empty)        {                error("Profile 2 not loaded");                return;        }	profile_no=1;	profile1_nseqs=nseqs;	profile2_empty=TRUE;	load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE);	load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);	active_panel=prf_panel[0];	info("Added Profile 2 to Profile 1.");}static void ClearSeqRange(IteM item){	if(aln_mode==MULTIPLEM)		clear_seqrange(seq_panel);	else	{		clear_seqrange(prf_panel[1]);		clear_seqrange(prf_panel[0]);	}}static void ClearSeqs(IteM item){	if(aln_mode==MULTIPLEM)		select_seqs(seq_panel,FALSE);	else	{		select_seqs(prf_panel[1],FALSE);		select_seqs(prf_panel[0],FALSE);	}}static void clear_seqrange(spanel p){	int f,l;	panel_data data;	GetPanelExtra(p.seqs,&data);	f=data.firstsel;	l=data.lastsel;	data.firstsel=data.lastsel=-1;	SetPanelExtra(p.seqs,&data);	highlight_seqrange(p.seqs,f,l,NORMAL);}static void select_seqs(spanel p,Boolean flag){	int i;	panel_data data;	GetPanelExtra(p.names,&data);	if (data.nseqs == 0) return;	for (i=0;i<data.nseqs;i++)		data.selected[i]=flag;	SetPanelExtra(p.names,&data);	draw_names(p.names);	if(flag==TRUE) active_panel=p;}static void CAlignWin (IteM item){        if (empty)        {                error("No sequences loaded");                return;        }        if (nseqs <= 1)	{                error("Alignment has only %d sequences",nseqs);                return;        }	do_align_window(&calignw,&ctreetext,NEW,"Complete Alignment",CompleteAlign);}void CompleteAlign(ButtoN but){	char phylip_name[FILENAMELEN];    float et

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品免费看| 337p日本欧洲亚洲大胆色噜噜| 国产精品美女久久久久久久| 色综合久久66| 久久超级碰视频| 亚洲一区在线播放| 久久你懂得1024| 91精品综合久久久久久| 色呦呦一区二区三区| 亚洲欧洲性图库| 日韩精品一区二区三区四区视频| 国产一区二区三区精品视频| 爽爽淫人综合网网站| 亚洲精品一卡二卡| 国产精品你懂的在线| 欧美tickle裸体挠脚心vk| 欧美日韩国产一区| 99re这里都是精品| 国产一区二区在线观看视频| 日韩国产在线一| 亚洲免费高清视频在线| 国产精品久久久久久久久免费桃花 | 五月天网站亚洲| 一区二区三区精品久久久| 国产精品免费免费| 久久久美女毛片| 精品国产一区二区国模嫣然| 欧美精品久久99久久在免费线| 91日韩在线专区| 成人精品免费网站| 国产一区视频在线看| 亚洲国产另类av| 午夜视频一区在线观看| 亚洲一区二区成人在线观看| 在线区一区二视频| 国产一区二区女| 亚洲精品视频观看| 亚洲精品欧美在线| 亚洲视频一区在线观看| 亚洲另类春色校园小说| 亚洲黄色性网站| 中文字幕一区视频| 亚洲老妇xxxxxx| 一区二区国产视频| 亚洲电影你懂得| 琪琪久久久久日韩精品| 美女被吸乳得到大胸91| 国产宾馆实践打屁股91| 成人中文字幕合集| 欧美视频你懂的| 欧美日韩成人综合| 欧美成人官网二区| 亚洲国产精品精华液2区45| 国产女主播视频一区二区| 亚洲欧美在线观看| 日韩高清一级片| 久久欧美一区二区| 国产欧美日韩精品一区| 亚洲综合色丁香婷婷六月图片| 日本午夜精品一区二区三区电影| 国产一区二区三区免费| 久久不见久久见中文字幕免费| 国产在线精品一区在线观看麻豆| 高清在线观看日韩| www.欧美亚洲| 欧美高清激情brazzers| 国产精品美女久久久久aⅴ| 午夜久久久久久久久| 国产精品一级在线| 久久成人久久爱| 欧美三级午夜理伦三级中视频| 日韩色在线观看| 亚洲日本电影在线| 美女在线一区二区| 91在线观看地址| 精品噜噜噜噜久久久久久久久试看| 日本一区二区三区免费乱视频| 亚洲mv在线观看| 岛国一区二区三区| 日韩视频永久免费| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品欧美精品| 国产自产高清不卡| 欧美日韩三级视频| 欧美国产一区二区| 精品在线你懂的| 欧美日韩视频专区在线播放| 色综合久久99| 国产精品三级av在线播放| 国产精品乱人伦中文| 极品少妇一区二区| 在线免费观看视频一区| 国产精品网站在线播放| 另类中文字幕网| 日韩欧美一区在线| 亚洲电影激情视频网站| 91在线视频官网| 久久久久久久性| 久久99精品一区二区三区三区| 欧美视频一区二区三区| 亚洲高清免费观看高清完整版在线观看| 国产成人免费视频精品含羞草妖精| 在线观看视频91| 有坂深雪av一区二区精品| 91视频在线看| 亚洲柠檬福利资源导航| 一本色道**综合亚洲精品蜜桃冫| 久久午夜国产精品| 精品亚洲成a人| 2024国产精品| 国产精品夜夜嗨| 中文字幕欧美国产| 波多野结衣一区二区三区| 中文字幕的久久| 国产91精品露脸国语对白| 欧美国产精品劲爆| 97se狠狠狠综合亚洲狠狠| 91精品国产91久久久久久一区二区| 亚洲欧美一区二区三区国产精品 | 美女性感视频久久| 日韩一区二区中文字幕| 麻豆一区二区三| 久久精品无码一区二区三区| 成人免费看片app下载| 亚洲手机成人高清视频| 欧美视频精品在线| 美国十次综合导航| 久久久久久久久久久久电影| 福利一区福利二区| 一区二区三区不卡在线观看| 欧美日韩精品一区二区三区蜜桃| 丝袜亚洲另类丝袜在线| 日韩色视频在线观看| 国产成人自拍高清视频在线免费播放| 久久九九影视网| 成人黄色小视频在线观看| 日韩视频免费观看高清完整版 | 97久久精品人人爽人人爽蜜臀| 亚洲国产中文字幕在线视频综合| 制服丝袜av成人在线看| 国产美女在线精品| 一区二区三区在线视频观看| 日韩一区二区影院| 91成人在线精品| 久久精品99国产精品| 中文字幕在线观看不卡视频| 欧美亚洲国产怡红院影院| 黄页网站大全一区二区| 中文字幕一区二区三区蜜月| 欧美一区二区三区色| 99视频一区二区| 日本欧美肥老太交大片| 国产亚洲欧美一区在线观看| 成人av集中营| 免费的国产精品| 亚洲三级在线看| 久久精品视频免费| 粉嫩aⅴ一区二区三区四区五区| 亚洲欧洲中文日韩久久av乱码| 一本到不卡精品视频在线观看| 一区二区激情视频| 欧美一级高清片| 国产一区二区在线看| 国产网站一区二区| 欧美午夜不卡视频| 免费不卡在线观看| 国产欧美一区二区精品性色| 欧美私人免费视频| voyeur盗摄精品| 国产精品99久久久久久有的能看| 亚洲嫩草精品久久| 国产亚洲成av人在线观看导航| 欧美喷潮久久久xxxxx| 国产成人超碰人人澡人人澡| 日韩av一区二区三区四区| 亚洲男人的天堂网| 国产精品福利av| 国产精品青草综合久久久久99| 亚洲精品中文字幕在线观看| 日韩av在线发布| 91在线视频网址| 日韩一区二区视频| 日韩久久一区二区| 久久精品国产一区二区| 白白色亚洲国产精品| 欧美日韩中文精品| 日本一区二区三级电影在线观看| 中文字幕日韩一区| 麻豆精品一二三| 在线观看日韩国产| 久久亚洲欧美国产精品乐播| 一区二区日韩av| 国产成人精品午夜视频免费| 欧美日韩视频专区在线播放| 国产精品麻豆欧美日韩ww| 蜜臀av亚洲一区中文字幕| 91小视频在线| 国产日韩精品一区| 麻豆精品一区二区av白丝在线| 91官网在线观看|