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

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

?? prfalign.c

?? 生物序列比對程序clustw的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include "clustalw.h"#define ENDALN 127#define MAX(a,b) ((a)>(b)?(a):(b))#define MIN(a,b) ((a)<(b)?(a):(b))/* *   Prototypes */static lint 	pdiff(sint A,sint B,sint i,sint j,sint go1,sint go2);static lint 	prfscore(sint n, sint m);static sint 	gap_penalty1(sint i, sint j,sint k);static sint 	open_penalty1(sint i, sint j);static sint 	ext_penalty1(sint i, sint j);static sint 	gap_penalty2(sint i, sint j,sint k);static sint 	open_penalty2(sint i, sint j);static sint 	ext_penalty2(sint i, sint j);static void 	padd(sint k);static void 	pdel(sint k);static void 	palign(void);static void 	ptracepath(sint *alen);static void 	add_ggaps(void);static char *     add_ggaps_mask(char *mask, int len, char *path1, char *path2);/* *   Global variables */extern double 	**tmat;extern float 	gap_open, gap_extend;extern float    transition_weight;extern sint 	gap_pos1, gap_pos2;extern sint 	max_aa;extern sint 	nseqs;extern sint 	*seqlen_array;extern sint 	*seq_weight;extern sint    	debug;extern Boolean 	neg_matrix;extern sint 	mat_avscore;extern short  	blosum30mt[], blosum40mt[], blosum45mt[];extern short  	blosum62mt2[], blosum80mt[];extern short  	pam20mt[], pam60mt[];extern short  	pam120mt[], pam160mt[], pam350mt[];extern short  	gon40mt[], gon80mt[];extern short    gon120mt[], gon160mt[], gon250mt[], gon350mt[];extern short  	clustalvdnamt[],swgapdnamt[];extern short  	idmat[];extern short    usermat[];extern short    userdnamat[];extern Boolean user_series;extern UserMatSeries matseries;extern short	def_dna_xref[],def_aa_xref[],dna_xref[],aa_xref[];extern sint		max_aln_length;extern Boolean	distance_tree;extern Boolean	dnaflag;extern char 	mtrxname[];extern char 	dnamtrxname[];extern char 	**seq_array;extern char 	*amino_acid_codes;extern char     *gap_penalty_mask1,*gap_penalty_mask2;extern char     *sec_struct_mask1,*sec_struct_mask2;extern sint     struct_penalties1, struct_penalties2;extern Boolean  use_ss1, use_ss2;extern Boolean endgappenalties;static sint 	print_ptr,last_print;static sint 		*displ;static char   	**alignment;static sint    	*aln_len;static sint    *aln_weight;static char   	*aln_path1, *aln_path2;static sint    	alignment_len;static sint    	**profile1, **profile2;static lint 	    *HH, *DD, *RR, *SS;static lint 	    *gS;static sint    matrix[NUMRES][NUMRES];static sint    nseqs1, nseqs2;static sint    	prf_length1, prf_length2;static sint    *gaps;static sint    gapcoef1,gapcoef2;static sint    lencoef1,lencoef2;static Boolean switch_profiles;lint prfalign(sint *group, sint *aligned){  static Boolean found;  static Boolean negative;  static Boolean error_given=FALSE;  static sint    i, j, count = 0;  static sint  NumSeq;  static sint    len, len1, len2, is, minlen;  static sint   se1, se2, sb1, sb2;  static sint  maxres;  static sint int_scale;  static short  *matptr;  static short	*mat_xref;  static char   c;  static lint    score;  static float  scale;  static double logmin,logdiff;  static double pcid;  alignment = (char **) ckalloc( nseqs * sizeof (char *) );  aln_len = (sint *) ckalloc( nseqs * sizeof (sint) );  aln_weight = (sint *) ckalloc( nseqs * sizeof (sint) );  for (i=0;i<nseqs;i++)     if (aligned[i+1] == 0) group[i+1] = 0;  nseqs1 = nseqs2 = 0;  for (i=0;i<nseqs;i++)    {        if (group[i+1] == 1) nseqs1++;        else if (group[i+1] == 2) nseqs2++;    }  if ((nseqs1 == 0) || (nseqs2 == 0)) return(0.0);  if (nseqs2 > nseqs1)    {     switch_profiles = TRUE;     for (i=0;i<nseqs;i++)       {          if (group[i+1] == 1) group[i+1] = 2;          else if (group[i+1] == 2) group[i+1] = 1;       }    }  else  	switch_profiles = FALSE;  int_scale = 100;/*   calculate the mean of the sequence pc identities between the two groups*/        count = 0;        pcid = 0.0;	negative=neg_matrix;        for (i=0;i<nseqs;i++)          {             if (group[i+1] == 1)             for (j=0;j<nseqs;j++)               if (group[j+1] == 2)                    {                       count++;                       pcid += tmat[i+1][j+1];                    }          }  pcid = pcid/(float)count;if (debug > 0) fprintf(stdout,"mean tmat %3.1f\n", pcid);/*  Make the first profile.*/  prf_length1 = 0;  for (i=0;i<nseqs;i++)       if (group[i+1] == 1)		if(seqlen_array[i+1]>prf_length1) prf_length1=seqlen_array[i+1];  nseqs1 = 0;if (debug>0) fprintf(stdout,"sequences profile 1:\n");  for (i=0;i<nseqs;i++)    {       if (group[i+1] == 1)          {if (debug>0) {extern char **names;fprintf(stdout,"%s\n",names[i+1]);}             len = seqlen_array[i+1];             alignment[nseqs1] = (char *) ckalloc( (prf_length1+2) * sizeof (char) );             for (j=0;j<len;j++)               alignment[nseqs1][j] = seq_array[i+1][j+1];		for(j=len;j<prf_length1;j++)			alignment[nseqs1][j]=gap_pos1;             alignment[nseqs1][j] = ENDALN;             aln_len[nseqs1] = prf_length1;             aln_weight[nseqs1] = seq_weight[i];             nseqs1++;          }    }/*  Make the second profile.*/  prf_length2 = 0;  for (i=0;i<nseqs;i++)       if (group[i+1] == 2)		if(seqlen_array[i+1]>prf_length2) prf_length2=seqlen_array[i+1];  nseqs2 = 0;if (debug>0) fprintf(stdout,"sequences profile 2:\n");  for (i=0;i<nseqs;i++)    {       if (group[i+1] == 2)          {if (debug>0) {extern char **names;fprintf(stdout,"%s\n",names[i+1]);}             len = seqlen_array[i+1];             alignment[nseqs1+nseqs2] =                   (char *) ckalloc( (prf_length2+2) * sizeof (char) );             for (j=0;j<len;j++)               alignment[nseqs1+nseqs2][j] = seq_array[i+1][j+1];		for(j=len;j<prf_length2;j++)			alignment[nseqs1+nseqs2][j]=gap_pos1;             alignment[nseqs1+nseqs2][j] = ENDALN;             aln_len[nseqs1+nseqs2] = prf_length2;             aln_weight[nseqs1+nseqs2] = seq_weight[i];             nseqs2++;          }    }  max_aln_length = prf_length1 + prf_length2+2;  /*   calculate real length of profiles - removing gaps!*/  len1=0;  for (i=0;i<nseqs1;i++)    {       is=0;       for (j=0; j<MIN(aln_len[i],prf_length1); j++)	  {            c = alignment[i][j];      	    if ((c !=gap_pos1) && (c != gap_pos2)) is++;          }       len1+=is;    }  len1/=(float)nseqs1;     len2=0;  for (i=nseqs1;i<nseqs2+nseqs1;i++)    {       is=0;       for (j=0; j<MIN(aln_len[i],prf_length2); j++)	  {            c = alignment[i][j];      	    if ((c !=gap_pos1) && (c != gap_pos2)) is++;          }       len2+=is;    }  len2/=(float)nseqs2;  if (dnaflag)     {       scale=1.0;       if (strcmp(dnamtrxname, "iub") == 0)	{            matptr = swgapdnamt;            mat_xref = def_dna_xref;	}       else if (strcmp(dnamtrxname, "clustalw") == 0)	{            matptr = clustalvdnamt;            mat_xref = def_dna_xref;            scale=0.66;	}       else         {           matptr = userdnamat;           mat_xref = dna_xref;        }            maxres = get_matrix(matptr, mat_xref, matrix, neg_matrix, int_scale);            if (maxres == 0) return((sint)-1);/*            matrix[0][4]=transition_weight*matrix[0][0];            matrix[4][0]=transition_weight*matrix[0][0];            matrix[2][11]=transition_weight*matrix[0][0];            matrix[11][2]=transition_weight*matrix[0][0];            matrix[2][12]=transition_weight*matrix[0][0];            matrix[12][2]=transition_weight*matrix[0][0];*//* fix suggested by Chanan Rubin at Compugen */           matrix[mat_xref[0]][mat_xref[4]]=transition_weight*matrix[0][0];            matrix[mat_xref[4]][mat_xref[0]]=transition_weight*matrix[0][0];            matrix[mat_xref[2]][mat_xref[11]]=transition_weight*matrix[0][0];            matrix[mat_xref[11]][mat_xref[2]]=transition_weight*matrix[0][0];            matrix[mat_xref[2]][mat_xref[12]]=transition_weight*matrix[0][0];            matrix[mat_xref[12]][mat_xref[2]]=transition_weight*matrix[0][0];           gapcoef1 = gapcoef2 = 100.0 * gap_open *scale;          lencoef1 = lencoef2 = 100.0 * gap_extend *scale;    }  else    {  	if(len1==0 || len2==0) {  		logmin=1.0;  		logdiff=1.0;  	}    	else {  		minlen = MIN(len1,len2); 		logmin = 1.0/log10((double)minlen); 		if (len2<len1)    	 		logdiff = 1.0+0.5*log10((double)((float)len2/(float)len1));  		else if (len1<len2)  	   		logdiff = 1.0+0.5*log10((double)((float)len1/(float)len2));  		else logdiff=1.0;		if(logdiff<0.9) logdiff=0.9;  	}if(debug>0) fprintf(stdout,"%d %d logmin %f   logdiff %f\n",(pint)len1,(pint)len2, logmin,logdiff);       scale=0.75;       if (strcmp(mtrxname, "blosum") == 0)        {           scale=0.75;           if (negative || distance_tree == FALSE) matptr = blosum40mt;           else if (pcid > 80.0)             {                matptr = blosum80mt;             }           else if (pcid > 60.0)             {                matptr = blosum62mt2;             }           else if (pcid > 40.0)             {                matptr = blosum45mt;             }           else if (pcid > 30.0)             {                scale=0.5;                matptr = blosum45mt;             }           else if (pcid > 20.0)             {                scale=0.6;                matptr = blosum45mt;             }           else              {                scale=0.6;                matptr = blosum30mt;             }           mat_xref = def_aa_xref;        }       else if (strcmp(mtrxname, "pam") == 0)        {           scale=0.75;           if (negative || distance_tree == FALSE) matptr = pam120mt;           else if (pcid > 80.0) matptr = pam20mt;           else if (pcid > 60.0) matptr = pam60mt;           else if (pcid > 40.0) matptr = pam120mt;           else matptr = pam350mt;           mat_xref = def_aa_xref;        }       else if (strcmp(mtrxname, "gonnet") == 0)        {	   scale/=2.0;           if (negative || distance_tree == FALSE) matptr = gon250mt;           else if (pcid > 35.0)             {                matptr = gon80mt;		scale/=2.0;             }           else if (pcid > 25.0)             {                if(minlen<100) matptr = gon250mt;                else matptr = gon120mt;             }           else             {                if(minlen<100) matptr = gon350mt;		else matptr = gon160mt;             }           mat_xref = def_aa_xref;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色悠悠久久综合| 激情文学综合插| 久久99九九99精品| 欧美日韩极品在线观看一区| 亚洲日本成人在线观看| 国产传媒欧美日韩成人| 亚洲欧洲国产日本综合| 波多野结衣欧美| 久久久国产一区二区三区四区小说 | 日韩精品在线网站| 久久精品免费观看| 久久久综合网站| 91精品国产综合久久婷婷香蕉| 亚洲女爱视频在线| 欧美性猛交xxxx乱大交退制版| 婷婷中文字幕综合| 91精品国产福利| 国产在线不卡一区| 亚洲视频一区二区免费在线观看 | 日韩免费观看2025年上映的电影| 91豆麻精品91久久久久久| 免费三级欧美电影| 日韩精品中文字幕在线一区| 欧美视频精品在线观看| av中文一区二区三区| 国产成人在线影院| 国产一区二区三区精品视频| 七七婷婷婷婷精品国产| 香蕉成人伊视频在线观看| 久久精品这里都是精品| 91免费小视频| 日本va欧美va精品发布| 丝袜美腿高跟呻吟高潮一区| 精品久久久久久久一区二区蜜臀| 成人丝袜18视频在线观看| 午夜影视日本亚洲欧洲精品| 亚洲午夜一区二区| 久久青草欧美一区二区三区| 精品国产一区二区三区四区四 | 4438亚洲最大| 在线不卡的av| caoporen国产精品视频| 成人中文字幕合集| 成人免费高清视频| 91在线看国产| 激情久久久久久久久久久久久久久久| 日韩av一区二区在线影视| 日韩毛片精品高清免费| 日本女人一区二区三区| 日本中文一区二区三区| 美女网站视频久久| 亚洲一级二级三级在线免费观看| 精品精品国产高清一毛片一天堂| 26uuu国产日韩综合| 7777精品伊人久久久大香线蕉经典版下载 | 国产一区二区三区免费看| 国产美女精品人人做人人爽| 不卡的电影网站| 精品在线一区二区三区| 国产激情精品久久久第一区二区| 岛国av在线一区| 色综合网站在线| 国产毛片精品视频| 成人高清免费观看| 欧美最猛性xxxxx直播| 99久久综合精品| 欧美色图在线观看| 日韩欧美三级在线| 中文字幕亚洲成人| 日韩国产欧美在线播放| 国产成人福利片| 欧美亚洲禁片免费| 久久婷婷国产综合精品青草| 中文字幕制服丝袜一区二区三区| wwwwxxxxx欧美| 亚洲欧美二区三区| 麻豆国产精品一区二区三区 | 久久超碰97中文字幕| 成人午夜又粗又硬又大| 欧美三级日韩在线| 91视频观看视频| 欧美一区二区在线不卡| 国产精品你懂的在线欣赏| 久久综合精品国产一区二区三区| 亚洲欧洲精品一区二区三区不卡| 天天色 色综合| 成人在线综合网站| 678五月天丁香亚洲综合网| 国产精品无人区| 亚洲福中文字幕伊人影院| 国产精品 日产精品 欧美精品| 色综合天天综合色综合av| 精品国产乱码久久久久久影片| 一区二区三区在线视频免费观看| 亚洲免费av网站| 国产综合色在线| 欧美二区三区91| 亚洲精品一卡二卡| 精品在线亚洲视频| 一本久道中文字幕精品亚洲嫩| 久久亚洲精华国产精华液 | 日韩欧美一级二级| 亚洲精品免费看| 成人99免费视频| 久久综合色播五月| 午夜精品免费在线| 99精品视频一区二区三区| 国产校园另类小说区| 久久精品国产**网站演员| 欧美四级电影在线观看| 亚洲欧美日韩一区| av在线不卡观看免费观看| 久久伊人中文字幕| 日本亚洲欧美天堂免费| 欧美日韩在线播| 亚洲一区二区视频| 在线视频欧美精品| 亚洲女子a中天字幕| 国产v综合v亚洲欧| 色欧美日韩亚洲| 国产精品久久久久久久久久免费看| 国产一区二区三区蝌蚪| 欧美成人vr18sexvr| 奇米一区二区三区| 91精品国产色综合久久| 午夜亚洲国产au精品一区二区| 色综合天天综合在线视频| 中文字幕一区二区三区av| 懂色一区二区三区免费观看| 久久综合久久久久88| 韩国中文字幕2020精品| 欧美白人最猛性xxxxx69交| 偷拍日韩校园综合在线| 欧美性猛交xxxx乱大交退制版| 亚洲综合激情小说| 欧美日韩极品在线观看一区| 午夜a成v人精品| 91精品午夜视频| 久久国产精品72免费观看| 精品国产免费一区二区三区四区 | 精品制服美女久久| 精品国产一区二区亚洲人成毛片| 精品一二三四区| 精品久久久久久亚洲综合网| 国产一区 二区 三区一级| 国产亚洲精品7777| av资源网一区| 亚洲综合在线观看视频| 欧美日韩在线电影| 蜜臀精品一区二区三区在线观看| 日韩欧美国产一区在线观看| 激情综合网天天干| 中文字幕不卡在线播放| 亚洲制服丝袜在线| 欧美一区二区性放荡片| 激情综合色播五月| 中文字幕精品一区二区三区精品| av在线一区二区三区| 亚洲v精品v日韩v欧美v专区| 欧美一区二区三区思思人 | 欧美日韩一卡二卡三卡 | 欧美综合在线视频| 国产一区二区三区精品视频| 国产欧美久久久精品影院| 麻豆精品在线观看| 国产欧美一区二区精品秋霞影院| 色综合久久久久综合| 婷婷丁香久久五月婷婷| 久久午夜老司机| 在线一区二区三区| 蜜桃精品在线观看| 国产精品乱码一区二区三区软件| 欧美午夜一区二区三区免费大片| 久久草av在线| 一区二区三区四区视频精品免费 | 欧美国产综合一区二区| 色屁屁一区二区| 久色婷婷小香蕉久久| 中文字幕综合网| 欧美性高清videossexo| 国产一区二区视频在线| 一级女性全黄久久生活片免费| 久久亚洲精华国产精华液| 91久久精品午夜一区二区| 精品一区二区免费看| 自拍偷自拍亚洲精品播放| 欧美电影免费观看高清完整版在| 97精品久久久午夜一区二区三区| 久久国产精品99久久久久久老狼 | 国产伦精品一区二区三区免费 | 日韩一级免费观看| 日韩va欧美va亚洲va久久| 国产三级一区二区三区| 欧美日韩精品欧美日韩精品一 | 日韩一级成人av| 欧美亚洲国产一区在线观看网站| 国产精品主播直播| 精品国产亚洲在线| 欧美福利视频一区| 91福利精品视频|