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

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

?? pairalign.c

?? 經典生物信息學多序列比對工具clustalw
?? C
字號:
/* Change int h to int gh everywhere  DES June 1994 */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include "clustalw.h"#define MIN(a,b) ((a)<(b)?(a):(b))#define MAX(a,b) ((a)>(b)?(a):(b))#define gap(k)  ((k) <= 0 ? 0 : g + gh * (k))#define tbgap(k)  ((k) <= 0 ? 0 : tb + gh * (k))#define tegap(k)  ((k) <= 0 ? 0 : te + gh * (k))/* *	Prototypes */static void add(sint v);static sint calc_score(sint iat, sint jat, sint v1, sint v2);static float tracepath(sint tsb1,sint tsb2);static void forward_pass(char *ia, char *ib, sint n, sint m);static void reverse_pass(char *ia, char *ib);static sint diff(sint A, sint B, sint M, sint N, sint tb, sint te);static void del(sint k);/* *   Global variables */#ifdef MAC#define pwint   short#else#define pwint   int#endifstatic sint		int_scale;extern double   **tmat;extern float    pw_go_penalty;extern float    pw_ge_penalty;extern float	transition_weight;extern sint 	nseqs;extern sint 	max_aa;extern sint 	gap_pos1,gap_pos2;extern sint  	max_aln_length;extern sint 	*seqlen_array;extern sint 	debug;extern sint  	mat_avscore;extern short 	blosum30mt[],pam350mt[],idmat[],pw_usermat[],pw_userdnamat[];extern short    clustalvdnamt[],swgapdnamt[];extern short    gon250mt[];extern short 	def_dna_xref[],def_aa_xref[],pw_dna_xref[],pw_aa_xref[];extern Boolean  dnaflag;extern char 	**seq_array;extern char 	*amino_acid_codes;extern char 	pw_mtrxname[];extern char 	pw_dnamtrxname[];static float 	mm_score;static sint 	print_ptr,last_print;static sint 	*displ;static pwint 	*HH, *DD, *RR, *SS;static sint 	g, gh;static sint   	seq1, seq2;static sint     matrix[NUMRES][NUMRES];static pwint    maxscore;static sint    	sb1, sb2, se1, se2;sint pairalign(sint istart, sint iend, sint jstart, sint jend){  short	 *mat_xref;  static sint    si, sj, i;  static sint    n,m,len1,len2;  static sint    maxres;  static short    *matptr;  static char   c;  static float gscale,ghscale;  displ = (sint *)ckalloc((2*max_aln_length+1) * sizeof(sint));  HH = (pwint *)ckalloc((max_aln_length) * sizeof(pwint));  DD = (pwint *)ckalloc((max_aln_length) * sizeof(pwint));  RR = (pwint *)ckalloc((max_aln_length) * sizeof(pwint));  SS = (pwint *)ckalloc((max_aln_length) * sizeof(pwint));		#ifdef MAC  int_scale = 10;#else  int_scale = 100;#endif  gscale=ghscale=1.0;  if (dnaflag)    {      if (debug>1) fprintf(stdout,"matrix %s\n",pw_dnamtrxname);      if (strcmp(pw_dnamtrxname, "iub") == 0)	{ 	  matptr = swgapdnamt;	  mat_xref = def_dna_xref;	}      else if (strcmp(pw_dnamtrxname, "clustalw") == 0)	{ 	  matptr = clustalvdnamt;	  mat_xref = def_dna_xref;	  gscale=0.6667;	  ghscale=0.751;	}      else	{	  matptr = pw_userdnamat;	  mat_xref = pw_dna_xref;	}      maxres = get_matrix(matptr, mat_xref, matrix, TRUE, 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];    }  else    {      if (debug>1) fprintf(stdout,"matrix %s\n",pw_mtrxname);      if (strcmp(pw_mtrxname, "blosum") == 0)	{	  matptr = blosum30mt;	  mat_xref = def_aa_xref;	}      else if (strcmp(pw_mtrxname, "pam") == 0)	{	  matptr = pam350mt;	  mat_xref = def_aa_xref;	}      else if (strcmp(pw_mtrxname, "gonnet") == 0)	{	  matptr = gon250mt;	  int_scale /= 10;	  mat_xref = def_aa_xref;	}      else if (strcmp(pw_mtrxname, "id") == 0)	{	  matptr = idmat;	  mat_xref = def_aa_xref;	}      else	{	  matptr = pw_usermat;	  mat_xref = pw_aa_xref;	}      maxres = get_matrix(matptr, mat_xref, matrix, TRUE, int_scale);      if (maxres == 0) return((sint)-1);    }  for (si=MAX(0,istart);si<nseqs && si<iend;si++)    {      n = seqlen_array[si+1];      len1 = 0;      for (i=1;i<=n;i++) {	c = seq_array[si+1][i];	if ((c!=gap_pos1) && (c != gap_pos2)) len1++;      }      for (sj=MAX(si+1,jstart+1);sj<nseqs && sj<jend;sj++)	{	  m = seqlen_array[sj+1];	  if(n==0 || m==0) {	    tmat[si+1][sj+1]=1.0;	    tmat[sj+1][si+1]=1.0;	    continue;	  }	  len2 = 0;	  for (i=1;i<=m;i++) {	    c = seq_array[sj+1][i];	    if ((c!=gap_pos1) && (c != gap_pos2)) len2++;	  }	  if (dnaflag) {	    g = 2 * (float)pw_go_penalty * int_scale*gscale;	    gh = pw_ge_penalty * int_scale*ghscale;	  }	  else {	    if (mat_avscore <= 0)              g = 2 * (float)(pw_go_penalty + log((double)(MIN(n,m))))*int_scale;	    else              g = 2 * mat_avscore * (float)(pw_go_penalty +					    log((double)(MIN(n,m))))*gscale;	    gh = pw_ge_penalty * int_scale;	  }	  if (debug>1) fprintf(stdout,"go %d ge %d\n",(pint)g,(pint)gh);	  /*	    align the sequences	  */	  seq1 = si+1;        seq2 = sj+1;        forward_pass(&seq_array[seq1][0], &seq_array[seq2][0],           n, m);        reverse_pass(&seq_array[seq1][0], &seq_array[seq2][0]);        last_print = 0;	print_ptr = 1;/*        sb1 = sb2 = 1;        se1 = n-1;        se2 = m-1;*//* use Myers and Miller to align two sequences */        maxscore = diff(sb1-1, sb2-1, se1-sb1+1, se2-sb2+1,         (sint)0, (sint)0); /* calculate percentage residue identity */        mm_score = tracepath(sb1,sb2);		if(len1==0 || len2==0) mm_score=0;		else			mm_score /= (float)MIN(len1,len2);        tmat[si+1][sj+1] = ((float)100.0 - mm_score)/(float)100.0;        tmat[sj+1][si+1] = ((float)100.0 - mm_score)/(float)100.0;if (debug>1){        fprintf(stdout,"Sequences (%d:%d) Aligned. Score: %d CompScore:  %d\n",                           (pint)si+1,(pint)sj+1,                            (pint)mm_score,                            (pint)maxscore/(MIN(len1,len2)*100));}else{        info("Sequences (%d:%d) Aligned. Score:  %d",                                      (pint)si+1,(pint)sj+1,                                       (pint)mm_score);}   }  }   displ=ckfree((void *)displ);   HH=ckfree((void *)HH);   DD=ckfree((void *)DD);   RR=ckfree((void *)RR);   SS=ckfree((void *)SS);  return((sint)1);}static void add(sint v){        if(last_print<0) {                displ[print_ptr-1] = v;                displ[print_ptr++] = last_print;        }        else                last_print = displ[print_ptr++] = v;}static sint calc_score(sint iat,sint jat,sint v1,sint v2){        sint ipos,jpos;		sint ret;        ipos = v1 + iat;        jpos = v2 + jat;        ret=matrix[(int)seq_array[seq1][ipos]][(int)seq_array[seq2][jpos]];	return(ret);}static float tracepath(sint tsb1,sint tsb2){	char c1,c2;    sint  i1,i2,r;    sint i,k,pos,to_do;	sint count;	float score;	char s1[600], s2[600];        to_do=print_ptr-1;        i1 = tsb1;        i2 = tsb2;	pos = 0;	count = 0;        for(i=1;i<=to_do;++i) {	  if (debug>1) fprintf(stdout,"%d ",(pint)displ[i]);	  if(displ[i]==0) {	    c1 = seq_array[seq1][i1];	    c2 = seq_array[seq2][i2];	    	    if (debug>0)	      {		if (c1>max_aa) s1[pos] = '-';		else s1[pos]=amino_acid_codes[c1];		if (c2>max_aa) s2[pos] = '-';		else s2[pos]=amino_acid_codes[c2];	      }	    	    if ((c1!=gap_pos1) && (c1 != gap_pos2) &&		(c1 == c2)) count++;	    ++i1;	    ++i2;	    ++pos;	  }	  else {	    if((k=displ[i])>0) {	      	      if (debug>0)		for (r=0;r<k;r++)		  {		    s1[pos+r]='-';		    if (seq_array[seq2][i2+r]>max_aa) s2[pos+r] = '-';		    else s2[pos+r]=amino_acid_codes[seq_array[seq2][i2+r]];		  }	      	      i2 += k;	      pos += k;	    }	    else {	      	      if (debug>0)		for (r=0;r<(-k);r++)		  {		    s2[pos+r]='-';		    if (seq_array[seq1][i1+r]>max_aa) s1[pos+r] = '-';		    else s1[pos+r]=amino_acid_codes[seq_array[seq1][i1+r]];		  }	      	      i1 -= k;	      pos -= k;	    }	  }        }	if (debug>0) fprintf(stdout,"\n");	if (debug>0) 	  {	    for (i=0;i<pos;i++) fprintf(stdout,"%c",s1[i]);	    fprintf(stdout,"\n");	    for (i=0;i<pos;i++) fprintf(stdout,"%c",s2[i]);	    fprintf(stdout,"\n");	  }	/*	  if (count <= 0) count = 1;	*/	score = 100.0 * (float)count;	return(score);}static void forward_pass(char *ia, char *ib, sint n, sint m){  sint i,j;  pwint f,hh,p,t;  maxscore = 0;  se1 = se2 = 0;  for (i=0;i<=m;i++)    {       HH[i] = 0;       DD[i] = -g;    }  for (i=1;i<=n;i++)     {        hh = p = 0;		f = -g;        for (j=1;j<=m;j++)           {              f -= gh;               t = hh - g - gh;              if (f<t) f = t;              DD[j] -= gh;              t = HH[j] - g - gh;              if (DD[j]<t) DD[j] = t;              hh = p + matrix[(int)ia[i]][(int)ib[j]];              if (hh<f) hh = f;              if (hh<DD[j]) hh = DD[j];              if (hh<0) hh = 0;              p = HH[j];              HH[j] = hh;              if (hh > maxscore)                {                   maxscore = hh;                   se1 = i;                   se2 = j;                }           }     }}static void reverse_pass(char *ia, char *ib){  sint i,j;  pwint f,hh,p,t;  pwint cost;  cost = 0;  sb1 = sb2 = 1;  for (i=se2;i>0;i--)    {       HH[i] = -1;       DD[i] = -1;    }  for (i=se1;i>0;i--)     {        hh = f = -1;        if (i == se1) p = 0;        else p = -1;        for (j=se2;j>0;j--)           {              f -= gh;               t = hh - g - gh;              if (f<t) f = t;              DD[j] -= gh;              t = HH[j] - g - gh;              if (DD[j]<t) DD[j] = t;              hh = p + matrix[(int)ia[i]][(int)ib[j]];              if (hh<f) hh = f;              if (hh<DD[j]) hh = DD[j];              p = HH[j];              HH[j] = hh;              if (hh > cost)                {                   cost = hh;                   sb1 = i;                   sb2 = j;                   if (cost >= maxscore) break;                }           }        if (cost >= maxscore) break;     }}static int diff(sint A,sint B,sint M,sint N,sint tb,sint te){  sint type;  sint midi,midj,i,j;  int midh;  static pwint f, hh, e, s, t;    if(N<=0)  {    if(M>0) {      del(M);    }        return(-(int)tbgap(M));  }    if(M<=1) {    if(M<=0) {      add(N);      return(-(int)tbgap(N));    }        midh = -(tb+gh) - tegap(N);    hh = -(te+gh) - tbgap(N);    if (hh>midh) midh = hh;    midj = 0;    for(j=1;j<=N;j++) {      hh = calc_score(1,j,A,B)	- tegap(N-j) - tbgap(j-1);      if(hh>midh) {	midh = hh;	midj = j;      }    }        if(midj==0) {      del(1);      add(N);    }    else {      if(midj>1)	add(midj-1);      displ[print_ptr++] = last_print = 0;      if(midj<N)	add(N-midj);    }    return midh;  }  /* Divide: Find optimum midpoint (midi,midj) of cost midh */    midi = M / 2;  HH[0] = 0.0;  t = -tb;  for(j=1;j<=N;j++) {    HH[j] = t = t-gh;    DD[j] = t-g;  }    t = -tb;  for(i=1;i<=midi;i++) {    s=HH[0];    HH[0] = hh = t = t-gh;    f = t-g;    for(j=1;j<=N;j++) {      if ((hh=hh-g-gh) > (f=f-gh)) f=hh;      if ((hh=HH[j]-g-gh) > (e=DD[j]-gh)) e=hh;      hh = s + calc_score(i,j,A,B);      if (f>hh) hh = f;      if (e>hh) hh = e;            s = HH[j];      HH[j] = hh;      DD[j] = e;    }  }    DD[0]=HH[0];    RR[N]=0;  t = -te;  for(j=N-1;j>=0;j--) {    RR[j] = t = t-gh;    SS[j] = t-g;  }    t = -te;  for(i=M-1;i>=midi;i--) {    s = RR[N];    RR[N] = hh = t = t-gh;    f = t-g;        for(j=N-1;j>=0;j--) {            if ((hh=hh-g-gh) > (f=f-gh)) f=hh;      if ((hh=RR[j]-g-gh) > (e=SS[j]-gh)) e=hh;      hh = s + calc_score(i+1,j+1,A,B);      if (f>hh) hh = f;      if (e>hh) hh = e;            s = RR[j];      RR[j] = hh;      SS[j] = e;          }  }    SS[N]=RR[N];    midh=HH[0]+RR[0];  midj=0;  type=1;  for(j=0;j<=N;j++) {    hh = HH[j] + RR[j];    if(hh>=midh)      if(hh>midh || (HH[j]!=DD[j] && RR[j]==SS[j])) {	midh=hh;	midj=j;      }  }    for(j=N;j>=0;j--) {    hh = DD[j] + SS[j] + g;    if(hh>midh) {      midh=hh;      midj=j;      type=2;    }  }    /* Conquer recursively around midpoint  */      if(type==1) {             /* Type 1 gaps  */    diff(A,B,midi,midj,tb,g);    diff(A+midi,B+midj,M-midi,N-midj,g,te);  }  else {    diff(A,B,midi-1,midj,tb,0.0);    del(2);    diff(A+midi+1,B+midj,M-midi-1,N-midj,0.0,te);  }    return midh;       /* Return the score of the best alignment */}static void del(sint k){  if(last_print<0)    last_print = displ[print_ptr-1] -= k;  else    last_print = displ[print_ptr++] = -(k);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一福利一区| 国产亚洲短视频| 一本一道综合狠狠老| 国产精品中文欧美| 国产一区 二区 三区一级| 久久精品国产秦先生| 青椒成人免费视频| 韩国欧美国产1区| 国产大陆a不卡| 不卡在线视频中文字幕| 成人午夜碰碰视频| 91捆绑美女网站| 欧洲亚洲精品在线| 91精品国产高清一区二区三区| 91麻豆精品国产91久久久资源速度| 欧美日韩aaa| 欧美精品一区视频| 国产女人18水真多18精品一级做| 国产精品丝袜在线| 亚洲欧洲日韩综合一区二区| 一区二区三区不卡视频在线观看 | 97成人超碰视| 在线观看亚洲精品视频| 69精品人人人人| 国产色产综合色产在线视频| 日韩毛片视频在线看| 视频精品一区二区| 国产福利一区二区三区视频在线 | 久久婷婷成人综合色| 国产蜜臀97一区二区三区| 亚洲三级免费观看| 天天综合色天天| 成人性视频免费网站| 欧美三级三级三级爽爽爽| 精品不卡在线视频| 亚洲免费在线看| 美美哒免费高清在线观看视频一区二区 | 性做久久久久久久久| 美女精品自拍一二三四| www.日韩av| 日韩一区二区在线看| 国产亚洲一区二区三区| 亚洲图片自拍偷拍| 成人手机在线视频| 欧美一区二区三区在线电影| 国产精品高潮久久久久无| 日韩综合一区二区| 成人精品国产免费网站| 日韩欧美亚洲另类制服综合在线| 亚洲人成影院在线观看| 国产一区二区免费在线| 91精品国产一区二区| 亚洲欧美在线观看| 韩国女主播成人在线| 欧美日韩精品三区| 一区二区三区四区不卡在线| 国产黄色精品网站| 精品国产三级a在线观看| 亚洲一二三四在线观看| 国产成人精品一区二| 精品久久99ma| 蜜桃视频一区二区| 9191久久久久久久久久久| 亚洲伦理在线免费看| 成人综合婷婷国产精品久久蜜臀 | 99这里都是精品| 精品成a人在线观看| 蜜桃一区二区三区在线| 欧美疯狂做受xxxx富婆| 午夜伊人狠狠久久| 欧美亚洲综合色| 亚洲国产综合色| 欧美色精品在线视频| 亚洲成av人片在线| 欧美日韩国产免费一区二区| 亚洲高清不卡在线| 在线播放亚洲一区| 日韩不卡手机在线v区| 91精品国产日韩91久久久久久| 亚洲第一福利视频在线| 欧美乱妇15p| 久久精品久久精品| 精品成a人在线观看| 国产成人在线免费观看| 中文字幕一区二区三区在线播放| 91原创在线视频| 亚洲女人小视频在线观看| 欧美日韩一区二区三区不卡 | 韩国女主播成人在线观看| www国产精品av| 高清不卡在线观看av| 国产精品看片你懂得| 欧美性视频一区二区三区| 丝袜诱惑亚洲看片| 欧美成人精精品一区二区频| 国产精品一品二品| 亚洲欧美激情小说另类| 欧美日韩国产a| 国产在线国偷精品产拍免费yy| 国产亚洲制服色| 欧美午夜视频网站| 久久国产夜色精品鲁鲁99| 国产亚洲美州欧州综合国| 91免费看片在线观看| 日韩vs国产vs欧美| 中文字幕在线观看不卡视频| 欧美视频一区在线| 国产精品18久久久久| 亚洲精品成人天堂一二三| 88在线观看91蜜桃国自产| 国产激情视频一区二区三区欧美| 亚洲伦理在线精品| 2023国产精华国产精品| 一本久久精品一区二区| 久久99精品久久久| 亚洲视频小说图片| 精品日产卡一卡二卡麻豆| 91丝袜呻吟高潮美腿白嫩在线观看| 日本在线播放一区二区三区| 国产精品人成在线观看免费| 欧美高清一级片在线| av电影在线观看不卡| 久久av资源站| 亚洲一区二区av电影| 国产精品久久久久久久久免费相片| 制服丝袜亚洲网站| eeuss影院一区二区三区| 激情欧美日韩一区二区| 一区二区激情视频| 国产精品欧美一区二区三区| 欧美成人激情免费网| 欧美日韩综合在线免费观看| 成人久久视频在线观看| 久久99精品久久久久婷婷| 日本亚洲欧美天堂免费| 一区二区不卡在线播放| 国产精品美女久久久久高潮| 久久久精品免费网站| 精品入口麻豆88视频| 91精品国产综合久久蜜臀| 欧洲一区二区三区在线| 91在线国产福利| 99re在线视频这里只有精品| 成人激情视频网站| 国产1区2区3区精品美女| 国产主播一区二区三区| 欧美a级理论片| 肉丝袜脚交视频一区二区| 亚洲中国最大av网站| 亚洲视频一二三区| 亚洲猫色日本管| 一区二区三区精品| 亚洲第一成年网| 亚洲成人久久影院| 日本不卡不码高清免费观看| 天天综合天天综合色| 日韩中文字幕一区二区三区| 午夜成人免费电影| 美女视频免费一区| 国产米奇在线777精品观看| 国产精品一区二区不卡| 国产.精品.日韩.另类.中文.在线.播放 | 污片在线观看一区二区| 日韩国产欧美视频| 久久国产精品区| 国产不卡视频一区二区三区| 成人免费va视频| 色综合天天性综合| 欧美日韩一区二区三区视频| 精品毛片乱码1区2区3区| 国产亚洲午夜高清国产拍精品| 久久久久久9999| 亚洲欧美日韩国产中文在线| 亚洲成人高清在线| 精品中文字幕一区二区小辣椒| 成人污视频在线观看| 日本福利一区二区| 日韩欧美在线一区二区三区| 精品国产第一区二区三区观看体验| 久久久久久久久97黄色工厂| 综合精品久久久| 免费国产亚洲视频| 国产麻豆成人精品| 欧美在线影院一区二区| 欧美一区二区三区小说| 国产精品欧美一区二区三区| 亚洲成a天堂v人片| 国产一区免费电影| 欧美性受xxxx黑人xyx性爽| 精品国产91久久久久久久妲己| 国产精品久久久久aaaa樱花| 视频一区国产视频| 懂色av噜噜一区二区三区av| 欧美日韩精品一区二区三区蜜桃| 国产欧美日本一区二区三区| 亚洲国产一区二区在线播放| 成人精品免费网站| 欧美高清精品3d| 一区二区三区精品久久久| 国产精品系列在线播放|