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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产亚洲| 国产精品色一区二区三区| 亚洲精品成人少妇| 91小视频免费观看| 亚洲欧洲国产专区| 亚洲永久精品国产| 一区二区在线观看视频在线观看| 一区二区三区成人| 欧美在线观看18| 夜夜爽夜夜爽精品视频| 久久久久久一级片| 亚洲综合精品久久| 精品久久五月天| 中文字幕乱码一区二区免费| 日本vs亚洲vs韩国一区三区| 国产福利精品一区| 欧美日韩亚洲另类| 欧美日韩一区不卡| 一区视频在线播放| 精品一区二区三区免费毛片爱| 欧美性猛交xxxxxx富婆| 日韩伦理免费电影| 色av成人天堂桃色av| 中文字幕一区av| 精品国产乱码久久| 不卡电影一区二区三区| 国产一区二区三区久久悠悠色av | 国产成人av电影在线播放| 久久综合狠狠综合| 欧美精品在线一区二区| 色婷婷综合五月| 成人免费毛片a| 国产剧情av麻豆香蕉精品| 亚洲一区中文在线| 久久精品亚洲乱码伦伦中文 | 久久精品国产亚洲一区二区三区| 欧美精品一区二区三区一线天视频| 日本网站在线观看一区二区三区 | 日韩欧美高清在线| 91麻豆国产在线观看| 亚洲国产成人在线| 日本精品裸体写真集在线观看| 国产欧美日韩不卡免费| 国产乱码精品一区二区三区av | 夜夜操天天操亚洲| 国产女人aaa级久久久级| 日韩午夜小视频| 欧美日韩国产在线播放网站| 欧美在线免费视屏| 91欧美一区二区| av成人免费在线观看| 国产高清久久久久| 成人开心网精品视频| 国产黑丝在线一区二区三区| 韩国三级在线一区| 精品影视av免费| 久久精品国产一区二区三 | 欧美一区日韩一区| 久久国产精品72免费观看| 日本美女视频一区二区| 免费在线一区观看| 国产精品亚洲第一区在线暖暖韩国| 国模大尺度一区二区三区| 黄一区二区三区| 国产一区二区三区四区五区入口| 欧美aaa在线| 久久成人久久鬼色| 久久99精品久久久久久| 精品一区二区三区av| 免费观看30秒视频久久| 国产成人av影院| 成人app下载| 91国偷自产一区二区三区成为亚洲经典| 国产sm精品调教视频网站| 91免费观看视频在线| 欧美视频中文字幕| 欧美一级淫片007| 2024国产精品| 亚洲欧洲综合另类在线| 午夜欧美在线一二页| 奇米色一区二区三区四区| 韩日av一区二区| www.色精品| 欧美日韩一二三区| 精品国产乱码久久久久久夜甘婷婷| 精品国产免费久久| 国产色综合久久| 日韩影视精彩在线| 国产精品99久久久久久似苏梦涵| 成人福利视频在线看| 在线观看视频一区二区欧美日韩| 欧美成人精品1314www| 中文字幕不卡在线观看| 一区二区成人在线观看| 久久精品国产99久久6| 一本到高清视频免费精品| 制服.丝袜.亚洲.中文.综合| 2020日本不卡一区二区视频| 亚洲欧美色图小说| 视频一区中文字幕| 99re热这里只有精品视频| 欧美区一区二区三区| 久久精品一区二区三区不卡牛牛| 亚洲视频免费观看| 狠狠色综合播放一区二区| 在线亚洲欧美专区二区| 2021国产精品久久精品| 久久九九国产精品| 国内精品不卡在线| 欧美成人精品福利| 成人免费看片app下载| 国产精品一区在线观看你懂的| 国产成人精品在线看| 欧美三级电影在线看| 国产欧美日韩综合| 免费不卡在线观看| 91色在线porny| 欧美精彩视频一区二区三区| 美国十次综合导航| 欧美精品日韩综合在线| 亚洲综合无码一区二区| 99精品欧美一区二区蜜桃免费| 久久久亚洲精品石原莉奈| 老司机免费视频一区二区三区| 欧美日精品一区视频| 一区二区三区四区在线播放| 99精品视频在线观看| 国产日韩av一区| 国产精品123区| 久久久精品黄色| 久久国产日韩欧美精品| 日韩一级大片在线观看| 日韩国产一二三区| 制服丝袜在线91| 美女任你摸久久| 欧美精品一区二区三区久久久| 精品一区二区三区免费观看| 国产综合久久久久久久久久久久| 欧美日韩国产综合一区二区三区| 亚洲激情图片小说视频| 色综合一个色综合亚洲| 日韩一区欧美一区| 91色视频在线| 亚洲第一成年网| 欧美一区二区三区视频免费播放| 免费精品视频最新在线| 日韩精品中午字幕| 国产黄色91视频| 最新日韩在线视频| 91成人在线观看喷潮| 丝袜诱惑亚洲看片 | 欧美肥妇free| 日韩精品欧美精品| 精品国产一区二区三区久久久蜜月| 经典三级视频一区| 欧美激情在线观看视频免费| eeuss影院一区二区三区| 亚洲黄色免费电影| 欧美一级高清片在线观看| 韩国成人精品a∨在线观看| 国产色91在线| 色丁香久综合在线久综合在线观看| 亚洲午夜免费电影| 精品国产3级a| 色综合天天视频在线观看| 亚洲超丰满肉感bbw| 欧美精品一区二区三| caoporn国产精品| 午夜精品一区二区三区免费视频 | 欧美一二三四在线| 国产成人av一区二区| 亚洲精品国产精华液| 欧美一区二区人人喊爽| 丁香激情综合五月| 亚洲一区二区三区免费视频| 欧美精品一区二区三区在线 | 久久亚洲一级片| 91免费版pro下载短视频| 日本不卡高清视频| 欧美国产激情二区三区| 欧美日本一区二区三区| 国产河南妇女毛片精品久久久| 亚洲综合一区在线| 国产日韩在线不卡| 欧美日韩色一区| 成人激情综合网站| 美腿丝袜亚洲三区| 亚洲人成小说网站色在线| 欧美tickling网站挠脚心| 色婷婷综合久久| 国产综合色视频| 五月天激情综合网| 国产精品黄色在线观看| 欧美大片免费久久精品三p| 色综合久久综合中文综合网| 国产在线播放一区三区四| 亚洲激情中文1区| 国产欧美一区二区精品忘忧草 | 国产美女主播视频一区| 午夜精品成人在线视频|