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

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

?? trees.c

?? 生物序列比對程序clustw的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
		j = lpj->n;		/* calculate sum_rows[j] */		for (lpi=tvalid[0].next ; lpi->n < j ; lpi = lpi->next) {			i = lpi->n;			tmp_sum += tmat[i][j];			/* tmat[j][i] = tmat[i][j]; */		}		sum_rows[j] = tmp_sum;		tmp_sum = 0.0;		/* Set lpi to that lpi->n is greater than j */		if ((lpi != NULL) && (lpi->n == j)) {			lpi = lpi->next;		}		/* calculate sum_cols[j] */		for( ; lpi!=NULL ; lpi = lpi->next) {			i = lpi->n;			tmp_sum += tmat[j][i];			/* tmat[i][j] = tmat[j][i]; */		}		sum_cols[j] = tmp_sum;	}/*********************** Enter The Main Cycle ***************************/	for(nc=1, loop_limit = (last_seq-first_seq+1-3); nc<=loop_limit; ++nc) {		sumd = 0.0;		/* IMPROVEMENT 1, STEP 4 : use sum value */		for(lpj=tvalid[0].next ; lpj!=NULL ; lpj = lpj->next) {			sumd += sum_cols[lpj->n];		}		/* IMPROVEMENT 3, STEP 0 : multiply tmin and 2*fnseqs2 */		fnseqs2 = fnseqs - 2.0;		/* Set fnseqs2 at this point. */		tmin = 99999.0 * 2.0 * fnseqs2;/*.................compute SMATij values and find the smallest one ........*/		mini = minj = 0;		/* jj must starts at least 2 */		if ((tvalid[0].next != NULL) && (tvalid[0].next->n == 1)) {			lpjj = tvalid[0].next->next;		} else {			lpjj = tvalid[0].next;		}		for( ; lpjj != NULL; lpjj = lpjj->next) {			jj = lpjj->n;			for(lpii=tvalid[0].next ; lpii->n < jj ; lpii = lpii->next) {				ii = lpii->n;				diq = djq = 0.0;				/* IMPROVEMENT 1, STEP 4 : use sum value */				diq = sum_cols[ii] + sum_rows[ii];				djq = sum_cols[jj] + sum_rows[jj];				/*				 * always ii < jj in this point. Use upper				 * triangle of score matrix.				 */				dij = tmat[ii][jj];				/*				 * IMPROVEMENT 3, STEP 1 : fnseqs2 is				 * already calculated.				 */				/* fnseqs2 = fnseqs - 2.0 */				/* IMPROVEMENT 4 : transform the equation */  /*-------------------------------------------------------------------*   * OPTIMIZE of expression 'total = d2r + fnseqs2*dij + dr*2.0'       *   * total = d2r + fnseq2*dij + 2.0*dr                                 *   *       = d2r + fnseq2*dij + 2(sumd - dij - d2r)                    *   *       = d2r + fnseq2*dij + 2*sumd - 2*dij - 2*d2r                 *   *       =       fnseq2*dij + 2*sumd - 2*dij - 2*d2r + d2r           *   *       = fnseq2*dij + 2*sumd - 2*dij - d2r                         *   *       = fnseq2*dij + 2*sumd - 2*dij - (diq + djq - 2*dij)         *   *       = fnseq2*dij + 2*sumd - 2*dij - diq - djq + 2*dij           *   *       = fnseq2*dij + 2*sumd - 2*dij + 2*dij - diq - djq           *   *       = fnseq2*dij + 2*sumd  - diq - djq                          *   *-------------------------------------------------------------------*/				total = fnseqs2*dij + 2.0*sumd  - diq - djq;				/* 				 * IMPROVEMENT 3, STEP 2 : abbrevlate				 * the division on comparison between 				 * total and tmin.				 */				/* total = total / (2.0*fnseqs2); */				if(total < tmin) {					tmin = total;					mini = ii;					minj = jj;				}			}		}		/* MEMO: always ii < jj in avobe loop, so mini < minj *//*.................compute branch lengths and print the results ........*/		dio = djo = 0.0;		/* IMPROVEMENT 1, STEP 4 : use sum value */		dio = sum_cols[mini] + sum_rows[mini];		djo = sum_cols[minj] + sum_rows[minj];		dmin = tmat[mini][minj];		dio = (dio - dmin) / fnseqs2;		djo = (djo - dmin) / fnseqs2;		bi = (dmin + dio - djo) * 0.5;		bj = dmin - bi;		bi = bi - av[mini];		bj = bj - av[minj];		if( av[mini] > 0.0 )			typei = 0;		else			typei = 1;		if( av[minj] > 0.0 )			typej = 0;		else			typej = 1;		if(verbose) 	 	    fprintf(tree,"\n Cycle%4d     = ",(pint)nc);/*    set negative branch lengths to zero.  Also set any tiny positive   branch lengths to zero.*/		if( fabs(bi) < 0.0001) bi = 0.0;		if( fabs(bj) < 0.0001) bj = 0.0;	    	if(verbose) {		    if(typei == 0) 			fprintf(tree,"Node:%4d (%9.5f) joins ",(pint)mini,bi);		    else 			fprintf(tree," SEQ:%4d (%9.5f) joins ",(pint)mini,bi);		    if(typej == 0) 			fprintf(tree,"Node:%4d (%9.5f)",(pint)minj,bj);		    else 			fprintf(tree," SEQ:%4d (%9.5f)",(pint)minj,bj);		    fprintf(tree,"\n");	    	}		    	left_branch[nc] = bi;	    	right_branch[nc] = bj;		for(i=1; i<=last_seq-first_seq+1; i++)			tree_description[nc][i] = 0;	     	if(typei == 0) { 			for(i=nc-1; i>=1; i--)				if(tree_description[i][mini] == 1) {					for(j=1; j<=last_seq-first_seq+1; j++)  					     if(tree_description[i][j] == 1)						    tree_description[nc][j] = 1;					break;				}		}		else			tree_description[nc][mini] = 1;		if(typej == 0) {			for(i=nc-1; i>=1; i--) 				if(tree_description[i][minj] == 1) {					for(j=1; j<=last_seq-first_seq+1; j++)  					     if(tree_description[i][j] == 1)						    tree_description[nc][j] = 1;					break;				}		}		else			tree_description[nc][minj] = 1;			/*    Here is where the -0.00005 branch lengths come from for 3 or more   identical seqs.*//*		if(dmin <= 0.0) dmin = 0.0001; */                if(dmin <= 0.0) dmin = 0.000001;		av[mini] = dmin * 0.5;/*........................Re-initialisation................................*/		fnseqs = fnseqs - 1.0;		tkill[minj] = 1;		/* IMPROVEMENT 2, STEP 3 : Remove tvalid[minj] from chain list. */		/* [ Before ]		 *  +---------+        +---------+        +---------+       		 *  |prev     |<-------|prev     |<-------|prev     |<---		 *  |    n    |        | n(=minj)|        |    n    |		 *  |     next|------->|     next|------->|     next|----		 *  +---------+        +---------+        +---------+ 		 *		 * [ After ]		 *  +---------+                           +---------+       		 *  |prev     |<--------------------------|prev     |<---		 *  |    n    |                           |    n    |		 *  |     next|-------------------------->|     next|----		 *  +---------+                           +---------+ 		 *                     +---------+		 *              NULL---|prev     |		 *                     | n(=minj)|		 *                     |     next|---NULL		 *                     +---------+ 		 */		(tvalid[minj].prev)->next = tvalid[minj].next;		if (tvalid[minj].next != NULL) {			(tvalid[minj].next)->prev = tvalid[minj].prev;		}		tvalid[minj].prev = tvalid[minj].next = NULL;		/* IMPROVEMENT 1, STEP 5 : re-calculate sum values. */		for(lpj=tvalid[0].next ; lpj != NULL ; lpj = lpj->next) {			double tmp_di = 0.0;			double tmp_dj = 0.0;			j = lpj->n;			/* 			 * subtrace a score value related with 'minj' from			 * sum arrays .			 */			if (j < minj) {				tmp_dj = tmat[j][minj];				sum_cols[j] -= tmp_dj;			} else if (j > minj) {				tmp_dj = tmat[minj][j];				sum_rows[j] -= tmp_dj;			} /* nothing to do when j is equal to minj. */						/* 			 * subtrace a score value related with 'mini' from			 * sum arrays .			 */			if (j < mini) {				tmp_di = tmat[j][mini];				sum_cols[j] -= tmp_di;			} else if (j > mini) {				tmp_di = tmat[mini][j];				sum_rows[j] -= tmp_di;			} /* nothing to do when j is equal to mini. */			/* 			 * calculate a score value of the new inner node.			 * then, store it temporary to join[] array.			 */			join[j] = (tmp_dj + tmp_di) * 0.5;		}		/* 		 * 1)		 * Set the score values (stored in join[]) into the matrix,		 * row/column position is 'mini'.		 * 2)		 * Add a score value of the new inner node to sum arrays.		 */		for(lpj=tvalid[0].next ; lpj != NULL; lpj = lpj->next) {			j = lpj->n;			if (j < mini) {				tmat[j][mini] = join[j];				sum_cols[j] += join[j];			} else if (j > mini) {				tmat[mini][j] = join[j];				sum_rows[j] += join[j];			} /* nothing to do when j is equal to mini. */		}		/* Re-calculate sum_rows[mini],sum_cols[mini]. */		sum_cols[mini] = sum_rows[mini] = 0.0;		/* calculate sum_rows[mini] */		da = 0.0;		for(lpj=tvalid[0].next ; lpj->n < mini ; lpj = lpj->next) {                      da += join[lpj->n];		}		sum_rows[mini] = da;		/* skip if 'lpj->n' is equal to 'mini' */		if ((lpj != NULL) && (lpj->n == mini)) {			lpj = lpj->next;		}		/* calculate sum_cols[mini] */		da = 0.0;		for( ; lpj != NULL; lpj = lpj->next) {                      da += join[lpj->n];		}		sum_cols[mini] = da;		/*		 * Clean up sum_rows[minj], sum_cols[minj] and score matrix		 * related with 'minj'.		 */		sum_cols[minj] = sum_rows[minj] = 0.0;		for(j=1; j<=last_seq-first_seq+1; ++j)			tmat[minj][j] = tmat[j][minj] = join[j] = 0.0;/****/	}						/**end main cycle**//******************************Last Cycle (3 Seqs. left)********************/	nude = 1;	for(lpi=tvalid[0].next; lpi != NULL; lpi = lpi->next) {		l[nude] = lpi->n;		++nude;	}	b1 = (tmat[l[1]][l[2]] + tmat[l[1]][l[3]] - tmat[l[2]][l[3]]) * 0.5;	b2 =  tmat[l[1]][l[2]] - b1;	b3 =  tmat[l[1]][l[3]] - b1; 	branch[1] = b1 - av[l[1]];	branch[2] = b2 - av[l[2]];	branch[3] = b3 - av[l[3]];/* Reset tiny negative and positive branch lengths to zero */	if( fabs(branch[1]) < 0.0001) branch[1] = 0.0;	if( fabs(branch[2]) < 0.0001) branch[2] = 0.0;	if( fabs(branch[3]) < 0.0001) branch[3] = 0.0;	left_branch[last_seq-first_seq+1-2] = branch[1];	left_branch[last_seq-first_seq+1-1] = branch[2];	left_branch[last_seq-first_seq+1]   = branch[3];	for(i=1; i<=last_seq-first_seq+1; i++)		tree_description[last_seq-first_seq+1-2][i] = 0;	if(verbose)		fprintf(tree,"\n Cycle%4d (Last cycle, trichotomy):\n",(pint)nc);	for(i=1; i<=3; ++i) {	   if( av[l[i]] > 0.0) {	      	if(verbose)	      	    fprintf(tree,"\n\t\t Node:%4d (%9.5f) ",(pint)l[i],branch[i]);		for(k=last_seq-first_seq+1-3; k>=1; k--)			if(tree_description[k][l[i]] == 1) {				for(j=1; j<=last_seq-first_seq+1; j++)				 	if(tree_description[k][j] == 1)					    tree_description[last_seq-first_seq+1-2][j] = i;				break;			}	   }	   else  {	      	if(verbose)	   	    fprintf(tree,"\n\t\t  SEQ:%4d (%9.5f) ",(pint)l[i],branch[i]);		tree_description[last_seq-first_seq+1-2][l[i]] = i;	   }	   if(i < 3) {	      	if(verbose)	            fprintf(tree,"joins");	   }	}	if(verbose)		fprintf(tree,"\n");		/* IMPROVEMENT 1, STEP 6 : release memory area */	ckfree(sum_cols);	ckfree(sum_rows);	ckfree(join);	/* IMPROVEMENT 2, STEP 4 : release memory area */	ckfree(tvalid);}#endif /* ORIGINAL_NJ_TREE */void bootstrap_tree(char *phylip_name,char *clustal_name, char *nexus_name){	sint i,j;	int ranno;	char path[MAXLINE+1];    char dummy[10];	char err_mess[1024];	static char **sample_tree;	static char **standard_tree;	static char **save_tree;	sint total_dists, overspill = 0, total_overspill = 0;	sint nfails = 0;	if(empty) {		error("You must load an alignment first");		return;	}        if(nseqs<4) {                error("Alignment has only %d sequences",nseqs);                return;        }	if(!output_tree_clustal && !output_tree_phylip && !output_tree_nexus) {		error("You must select either clustal or phylip or nexus tree output format");		return;	}	get_path(seqname, path);		if (output_tree_clustal) {        if (clustal_name[0]!=EOS) {                if((clustal_phy_tree_file = open_explicit_file(                clustal_name))==NULL) return;        }        else {		if((clustal_phy_tree_file = open_output_file(		"\nEnter name for bootstrap output file  ",path,		clustal_name,"njb")) == NULL) return;        }	}	first_seq=1;	last_seq=nseqs;	if (output_tree_phylip) {        if (phylip_name[0]!=EOS) {                if((phylip_phy_tree_file = open_explicit_file(                phylip_name))==NULL) return;        }	else {		if((phylip_phy_tree_file = open_output_file(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91富婆露脸刺激对白| 一区二区三区日韩欧美精品| jlzzjlzz亚洲日本少妇| 亚洲一区国产视频| 欧美国产综合色视频| 欧美色窝79yyyycom| 国产亚洲一二三区| 成人黄色小视频| 777亚洲妇女| 亚洲三级在线观看| 99久久精品情趣| 在线影院国内精品| 成人国产精品免费网站| 日韩区在线观看| 日韩精品亚洲一区二区三区免费| 欧美中文字幕一区| 亚洲一区二区三区四区在线| 欧美激情一二三区| 精品黑人一区二区三区久久 | 久久黄色级2电影| 中文字幕一区二区不卡| 精品国产青草久久久久福利| 色视频欧美一区二区三区| 国产精品99久| 亚洲午夜私人影院| 亚洲色图制服丝袜| 中文字幕精品一区二区精品绿巨人| 日韩一区二区三区视频| 欧美性受xxxx| 91久久奴性调教| 欧美三区在线视频| 国内国产精品久久| 国产欧美精品日韩区二区麻豆天美| 福利一区在线观看| 亚洲不卡av一区二区三区| 日韩精品中文字幕一区| 91麻豆蜜桃一区二区三区| 人人精品人人爱| 国产性天天综合网| 欧日韩精品视频| 成人精品国产一区二区4080| 亚洲一区二区精品久久av| 91精品国产综合久久福利| 成人三级在线视频| 精品一区二区三区免费毛片爱| 亚洲免费成人av| 亚洲va欧美va人人爽| 欧美日韩在线直播| 一本一道综合狠狠老| 懂色一区二区三区免费观看| 亚洲精品成人天堂一二三| 亚洲精品一区二区三区影院| 亚洲三级小视频| 毛片不卡一区二区| 久久久久国产成人精品亚洲午夜 | 日本女人一区二区三区| 日韩精品三区四区| 六月婷婷色综合| 丁香网亚洲国际| 99re这里只有精品首页| 欧美伊人久久大香线蕉综合69| 精品日韩欧美在线| 欧美精品一二三区| 在线视频你懂得一区| 91在线免费视频观看| 成人免费福利片| 色综合天天在线| 色94色欧美sute亚洲13| 波多野结衣中文字幕一区| 丰满岳乱妇一区二区三区| 久久aⅴ国产欧美74aaa| 国产一区二区三区| 99精品在线免费| 91视频一区二区三区| 欧美伊人精品成人久久综合97| 色噜噜久久综合| 91精品国产色综合久久ai换脸| 7777精品伊人久久久大香线蕉经典版下载 | 欧美三电影在线| 色综合视频一区二区三区高清| 91麻豆成人久久精品二区三区| 91久久国产最好的精华液| 91国产视频在线观看| 日韩欧美国产不卡| 欧美va在线播放| 日日夜夜精品视频天天综合网| 亚洲va中文字幕| **欧美大码日韩| 国产福利一区二区| 亚洲精品少妇30p| 国产ts人妖一区二区| 三级亚洲高清视频| 成人一级黄色片| 正在播放一区二区| 中文字幕一区二区三区在线观看 | 奇米888四色在线精品| 国产91在线|亚洲| 亚洲美女在线一区| 精品亚洲成a人| 69av一区二区三区| 亚洲欧洲精品一区二区三区| 精品亚洲成a人| 欧美日韩精品欧美日韩精品| 中文字幕精品三区| 美腿丝袜亚洲三区| 欧美日韩国产经典色站一区二区三区| 国产婷婷一区二区| 美女网站一区二区| 欧美一级久久久久久久大片| 亚洲日本一区二区三区| 国产精品自拍毛片| 久久免费的精品国产v∧| 日本美女一区二区三区视频| 一本色道亚洲精品aⅴ| 国产日本欧美一区二区| 激情综合网天天干| www亚洲一区| 国产乱码精品一品二品| 欧美sm极限捆绑bd| 国产精品自产自拍| 亚洲一区自拍偷拍| 欧美另类一区二区三区| 日韩高清不卡一区二区三区| 欧美一级黄色片| 成人动漫av在线| 一区二区三区欧美日韩| 欧美mv日韩mv国产| 五月综合激情网| 国产校园另类小说区| 国产一区二区伦理| 日韩欧美在线网站| 91色乱码一区二区三区| 欧美日韩精品电影| 2021中文字幕一区亚洲| 欧美色手机在线观看| 日韩美女视频一区二区| 成人一级黄色片| 中文一区在线播放| 成人黄色大片在线观看| 国产精品久久久久影院色老大 | 3d成人h动漫网站入口| 亚洲第一久久影院| 欧美美女一区二区| 奇米精品一区二区三区四区 | 激情综合色综合久久| 日韩一区二区三区观看| 蜜臀av一级做a爰片久久| 欧美xxxxx牲另类人与| 激情综合网最新| 亚洲精品一区二区三区四区高清| 久久se这里有精品| 国产亚洲短视频| 成人18视频日本| 亚洲欧美日韩国产手机在线| 欧美亚洲综合久久| 蜜臀av一区二区| 日本一区二区综合亚洲| www.欧美精品一二区| 亚洲欧洲综合另类| 91麻豆精品国产自产在线| 蜜臀av性久久久久蜜臀aⅴ| 精品国产99国产精品| 成人免费看片app下载| 亚洲精品乱码久久久久久久久| 欧美三级电影在线观看| 久久99久久99精品免视看婷婷| 久久久亚洲欧洲日产国码αv| jlzzjlzz亚洲日本少妇| 亚洲午夜久久久| 日韩免费高清av| 99视频一区二区| 日本午夜精品一区二区三区电影| 久久色.com| 一本到不卡免费一区二区| 日韩综合在线视频| 国产农村妇女毛片精品久久麻豆| 色欧美片视频在线观看| 蜜臀久久99精品久久久画质超高清| 国产亚洲制服色| 日本高清无吗v一区| 麻豆国产欧美日韩综合精品二区| 国产人成亚洲第一网站在线播放| 一本一道波多野结衣一区二区| 蜜臀va亚洲va欧美va天堂| 国产精品美女www爽爽爽| 欧美日韩在线播放三区四区| 国产精品性做久久久久久| 亚洲妇熟xx妇色黄| 久久久久久久综合| 欧美视频一区二区三区在线观看| 国产一区二区影院| 午夜精品福利视频网站 | 一个色在线综合| 精品久久久久久久久久久久久久久久久 | 成人激情视频网站| 奇米色一区二区三区四区| 成人欧美一区二区三区在线播放| 日韩一区二区在线看| 91视频一区二区三区| 国产精品自拍网站|