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

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

?? xcolor.c

?? 經典生物信息學多序列比對工具clustalw
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>#include <stdarg.h>#include <string.h>#include <time.h>#include <ctype.h>#include <vibrant.h>#include "clustalw.h"#include "xmenu.h"#define SIMPLE 1#define COMPOUND 2#define LEFTMARGIN 20#define SEPARATION 2#define CHARHEIGHT 10#define CHARWIDTH 6#define A4X 564#define A4Y 800#define A3X 832#define A3Y 1159#define USLETTERX 564#define USLETTERY 750#define SCOREY 3#define HEADER 7#define NOHEADER 0#define MAXRESNO 6#define MAXPARLEN 10#define MAXPAR 100 static void print_ps_info(FILE *fd,int pagesize);static void print_page_header(FILE *fd,int ps_rotation,int maxx,int maxy,int page,int numpages,Boolean header,char *str_time,char *ps_file,int ps_xtrans,int ps_ytrans,float ps_scale);static void print_header_line(FILE *fd,panel_data name_data, panel_data seq_data,int ix,int fr,int lr);static void print_footer_line(FILE *fd,panel_data name_data, panel_data seq_data,int ix,int fr,int lr);static void print_quality_curve(FILE *fd,panel_data seq_data,int fr,int lr,int score_height);static void print_seq_line(FILE *fd,panel_data name_data, panel_data seq_data,int row,int seq,int fr,int lr,int res_number);typedef struct consensus_parameters{char consensus;int cutoff;int length;char cutoff_list[20];} consensus_para; typedef struct color_parameters{int type;char residue;int color;int length;char cons_list[20];} color_para;static void init_color_lut(FILE *fd);static int init_printer_lut(char *filename);static char *init_consensus(panel_data data);static int SaveColPara(char word[MAXPAR][MAXPARLEN],int num_words,int count);static int SaveConPara(char word[MAXPAR][MAXPARLEN],int num_words,int count);static int get_line(char *sinline,char word[MAXPAR][MAXPARLEN]);static int residue_color(char res,char consensus);static Boolean commentline(char *line);#define DEF_NCOLORS 4#define MAX_NCOLORS 8#define DEFAULT_COLOR 0typedef struct rgb_color {	char name[20];	float r,g,b;} rgb_color;rgb_color def_color_lut[MAX_NCOLORS]={	"RED"          ,0.9, 0.1, 0.1,	"BLUE"         ,0.1, 0.1, 0.7,	"GREEN"        ,0.1, 0.9, 0.1,	"ORANGE"       ,0.9, 0.6, 0.3,	"CYAN"         ,0.1, 0.9, 0.9,	"PINK"         ,0.9, 0.5, 0.5,	"MAGENTA"      ,0.9, 0.1, 0.9,	"YELLOW"       ,0.9, 0.9, 0.0,};char def_aacolor[MAX_NCOLORS][26]={"krh",				"fwy",				"ilmv",				"gpst"};char def_dnacolor[MAX_NCOLORS][26]={"a",				"c",				"tu",				"g"};extern char revision_level[];extern int max_names; extern int ncolors;extern int ncolor_pars;extern color color_lut[];extern int inverted;extern Boolean residue_exceptions;extern Boolean segment_exceptions;extern Boolean dnaflag;int NumColParas;int NumConParas;color_para Col_Par[100];consensus_para Con_Par[100];void make_colormask(panel_data data){	int i,j;	for(i=0;i<data.nseqs;i++)		for(j=0;j<data.ncols;j++)			data.colormask[i][j] = DEFAULT_COLOR;	if (ncolors > 1)	{        	data.consensus=init_consensus(data);		for(i=0;i<data.nseqs;i++)			for(j=0;j<data.ncols;j++)				data.colormask[i][j] = residue_color(data.lines[i][j],data.consensus[j]);	}}static void init_color_lut(FILE *fd){ 	char sinline[1025];	char *args[10];	int i,numargs;	Boolean found=FALSE;	if (inverted==FALSE)	{        	strcpy(color_lut[0].name,"BLACK");		color_lut[0].r=0.4;		color_lut[0].g=0.4;		color_lut[0].b=0.4;		SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255);		color_lut[0].val=GetColor();	}	else	{        	strcpy(color_lut[0].name,"WHITE");		color_lut[0].r=1.0;		color_lut[0].g=1.0;		color_lut[0].b=1.0;		SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255);		color_lut[0].val=GetColor();	}	ncolors=1;	if (fd != NULL)	{		for (;fgets(sinline,1024,fd)!=NULL;)		{			sinline[strlen(sinline)-1] = '\0';			if (strcmp(sinline,"@rgbindex")==0) 			{				found = TRUE;				break;			}		}	}	if (found == TRUE)	{		for (;fgets(sinline,1024,fd)!=NULL;)		{			if (commentline(sinline)) continue;			if (sinline[0]=='@') break;			numargs = getargs(sinline, args, 4);			if (numargs != 4)			{				error("Problem in color rgb index - line %d\n",ncolors+1);				break;			}			else			{				strcpy(color_lut[ncolors].name, args[0]);				color_lut[ncolors].r=atof(args[1]);				color_lut[ncolors].g=atof(args[2]);				color_lut[ncolors].b=atof(args[3]);				SelectColor(color_lut[ncolors].r*255, color_lut[ncolors].g*255, color_lut[ncolors].b*255);				color_lut[ncolors].val=GetColor();				ncolors++;				if (ncolors>=MAXCOLORS) 				{					warning("Only using first %d colors in rgb index.",MAXCOLORS);					break;				}			}		}	}/* if we can't find a table, use the hard-coded colors */        if (ncolors==1)        {		ncolors=MAX_NCOLORS+1;		for(i=1;i<ncolors;i++)		{			strcpy(color_lut[i].name,def_color_lut[i-1].name);			color_lut[i].r=def_color_lut[i-1].r;			color_lut[i].g=def_color_lut[i-1].g;			color_lut[i].b=def_color_lut[i-1].b;			SelectColor(color_lut[i].r*255, color_lut[i].g*255, color_lut[i].b*255);			color_lut[i].val=GetColor();		}	}}void init_color_parameters(char *par_file){	int i,j,err;	char sinline[1025];	int maxparas = 50;	char inword[MAXPAR][MAXPARLEN];	int num_words;	int in_consensus=FALSE,in_color=FALSE;	int consensus_found=FALSE,color_found=FALSE;	FILE *par_fd=NULL;	if(par_file!=NULL)		par_fd=fopen(par_file,"r");	if(par_fd==NULL)	{                info("No color file found - using defaults");		ncolor_pars=0;	}	init_color_lut(par_fd);	if (par_fd != NULL) rewind(par_fd);	if (ncolors==0) return;	NumColParas=0;	NumConParas=0;	if (par_fd != NULL)	{		for(;fgets(sinline,1024,par_fd) != NULL;)		{			sinline[strlen(sinline)-1] = '\0';			if (commentline(sinline)) continue;			switch(sinline[0])			{					case '\0':					break;				case '@':					if (strcmp((char*)(sinline+1),"consensus")==0) 					{						in_consensus = TRUE;						in_color = FALSE;						consensus_found = TRUE;					}					else if (strcmp((char*)(sinline+1),"color")==0)					{						in_consensus = FALSE;						in_color = TRUE;						color_found = TRUE;					}					break;				default:					num_words = get_line(sinline,inword);					if (in_consensus == TRUE) 					{						err = SaveConPara(inword,num_words,NumConParas);						if (err == 0) NumConParas++;					}					else if (in_color == TRUE)					{						err = SaveColPara(inword,num_words,NumColParas);						if (err == 0) NumColParas++;					}						if((NumColParas>maxparas) || (NumConParas>maxparas))				     	error("Too many parameters in color file");				}		}		if (color_found == FALSE)		{			error("@color not found in parameter file - using defaults\n");			ncolor_pars=0;		}		fclose(par_fd);	}	ncolor_pars=NumColParas;/* if no color parameters found, use the default aa groupings */	if(ncolor_pars==0)	{		if (dnaflag)		{			for(i=0;i<DEF_NCOLORS;i++)			{				for(j=0;j<strlen(def_dnacolor[i]);j++)				{					Col_Par[ncolor_pars].type=SIMPLE;					Col_Par[ncolor_pars].residue=def_dnacolor[i][j];					Col_Par[ncolor_pars].color=i+1;					ncolor_pars++;				}			}		}		else		{			for(i=0;i<DEF_NCOLORS;i++)			{				for(j=0;j<strlen(def_aacolor[i]);j++)				{					Col_Par[ncolor_pars].type=SIMPLE;					Col_Par[ncolor_pars].residue=def_aacolor[i][j];					Col_Par[ncolor_pars].color=i+1;					ncolor_pars++;				}			}		}	}	NumColParas=ncolor_pars;}char *find_file(char *def_file){	char filename[FILENAMELEN];	char *retname;	FILE *fd;	Boolean found=FALSE;#ifdef UNIX        char *path, *path1, *deb, *fin;        sint lf, ltot;        char *home;#endif        strcpy(filename,def_file);        fd = fopen(filename,"r");	if (fd != NULL)		found=TRUE;#ifdef UNIX        if (found == FALSE)        {                home = getenv("HOME");		if (home != NULL)		{                	sprintf(filename,"%s/%s",home,def_file);                	fd = fopen(filename,"r");			if (fd != NULL)				found=TRUE;		}                if (found == FALSE)                {			path=getenv("PATH");/* get the list of path directories,                        			separated by : */			/* added for File System Standards  - Francois */			path1=(char *)ckalloc((strlen(path)+64)*sizeof(char));			strcpy(path1,path);			strcat(path1,"/usr/share/clustalx:/usr/local/share/clustalx");         		lf=(sint)strlen(def_file);        		deb=path1;        		do                	{                		fin=strchr(deb,':');                		if(fin!=NULL)                        	{					strncpy(filename,deb,fin-deb);					ltot=fin-deb;				}                		else                        	{					strcpy(filename,deb);					ltot=(sint)strlen(filename);				}                		/* now one directory is in filename */                		if( ltot + lf + 1 <= FILENAMELEN)                        	{                        		filename[ltot]='/';                        		strcpy(filename+ltot+1,def_file); /* now dir is appended with filename */                        		if( (fd = fopen(filename,"r") ) != NULL)					{						found=TRUE;						break;                        		}                        	}                		else found = FALSE;                		deb=fin+1;                	}        		while (fin != NULL);                }        }#endif	if (found == TRUE)	{		fclose(fd);		retname=(char *)ckalloc((strlen(filename)+1)*sizeof(char));		strcpy(retname,filename);	}	else		retname=NULL;	return(retname);} static char *init_consensus(panel_data data){	char *cons_data;        int num_res,seq,res,par,cons_total,i;        char residue; 	cons_data=(char *)ckalloc((data.ncols+1)*sizeof(char));        for (res=0;res<data.ncols;res++)        {                cons_data[res] = '.';                for (par=0;par<NumConParas;par++)                {                        cons_total = num_res = 0;                        for (seq=0;seq<data.nseqs;seq++)                        {				residue=tolower(data.lines[seq][res]);				if (isalpha(residue))					num_res++;                                for (i=0;i<Con_Par[par].length;i++)                                        if (residue==tolower(Con_Par[par].cutoff_list[i]))                                                cons_total++;                        }                        if (num_res != 0)                                if (((cons_total*100)/num_res) >= Con_Par[par].cutoff)                                        cons_data[res] = Con_Par[par].consensus;                }        }	return(cons_data);}static int SaveColPara(char word[MAXPAR][MAXPARLEN],int num_words,int count){	int i;	if (num_words < 3)	{		error("Wrong format in color list");		return(1);	}	if (word[1][0] != '=')	{		error("Wrong format in color list");		return(2);	}	if (num_words == 3)	{		Col_Par[count].type = SIMPLE;		Col_Par[count].residue = word[0][0];		Col_Par[count].color = -1;		for (i=0;i<ncolors;i++)			if (strcmp(word[2],color_lut[i].name)==0) Col_Par[count].color = i;		if (Col_Par[count].color == -1)		{			error("%s not found in rgb index - using %s",word[2],color_lut[0].name);			Col_Par[count].color = 0;		}	}	else	{		if (strcmp(word[3],"if")==0)		{			Col_Par[count].type = COMPOUND;			Col_Par[count].residue = word[0][0];			Col_Par[count].color = -1;			for (i=0;i<ncolors;i++)				if (strcmp(word[2],color_lut[i].name)==0) Col_Par[count].color = i;			if (Col_Par[count].color == -1)			{				error("%s not found in rgb index - using %s",word[2],color_lut[0].name);				Col_Par[count].color = 0;			}			Col_Par[count].length = num_words - 4;			for (i=4;i<num_words;i++)				Col_Par[count].cons_list[i-4] = word[i][0];		}		else		{			error("Wrong format in color list");			return(3);		}	}	return(0);		}static int SaveConPara(char word[MAXPAR][MAXPARLEN],int num_words,int count){	int i;	if (num_words < 3)	{		error("Wrong format in consensus list");		return(1);	}	if (word[1][0] != '=')	{		error("Wrong format in consensus list");		return(2);	}	Con_Par[count].consensus = word[0][0];	for (i=0;i<MAXPARLEN-1;i++)	{		if(word[2][i]=='%') word[2][i] = '\0';	}	Con_Par[count].cutoff = atoi(word[2]);	Con_Par[count].length = num_words - 3;	for (i=3;i<num_words;i++)	{		Con_Par[count].cutoff_list[i-3] = word[i][0];	}	return(0);		}static int get_line(char *sinline,char word[MAXPAR][MAXPARLEN]){	int i=0, j, word_count=0, char_count=0;	int in_word=FALSE;	for(i=0;i<MAXPAR-1;i++)		for(j=0;j<MAXPARLEN-1;j++)			word[i][j]='\0';	for (i=0;i<=strlen(sinline);i++)	{		switch (sinline[i])		{			case ' ':			case '\t':			case '\0':			case ':':				if (in_word)				{					word[word_count][char_count] = '\0';					word_count++;					char_count = 0;					in_word = FALSE;				}				break;			default:				in_word = TRUE;				word[word_count][char_count] = sinline[i];				char_count++;				break;		}			}	return(word_count);}static int residue_color(char res,char consensus){	int i,j;        for (i=0;i<NumColParas;i++)        {                if (tolower(res) == tolower(Col_Par[i].residue))                {                        switch (Col_Par[i].type)                        {                        case SIMPLE:                                return(Col_Par[i].color);                        case COMPOUND:                                for (j=0;j<Col_Par[i].length;j++)                                {                                        if (consensus == Col_Par[i].cons_list[j])

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲乱码伦伦中文| 国产精品乱码一区二区三区软件 | 久久久激情视频| 欧美一级生活片| 欧美又粗又大又爽| 成人国产精品视频| 国产精品18久久久久久久久久久久 | 国产成人av电影在线观看| 亚洲国产精品久久人人爱| 亚洲欧美一区二区在线观看| 亚洲国产经典视频| 中文字幕中文字幕在线一区| 久久久精品中文字幕麻豆发布| 日韩一区二区在线播放| 日韩欧美三级在线| 91精品国产手机| 8v天堂国产在线一区二区| 美女性感视频久久| 成人永久aaa| 久久一二三国产| 欧美美女一区二区三区| 在线观看一区二区视频| 欧美最猛黑人xxxxx猛交| 91福利区一区二区三区| 色综合久久66| 欧美丝袜丝交足nylons| 91黄色免费观看| 久久影院午夜论| 日韩视频免费观看高清完整版| 欧美视频在线一区二区三区| 91美女片黄在线| 欧美福利一区二区| 精品捆绑美女sm三区| 久久亚洲捆绑美女| 亚洲欧美综合色| 一区二区三区产品免费精品久久75| 国产婷婷色一区二区三区四区| 亚洲综合色网站| 在线观看国产精品网站| 欧洲精品视频在线观看| 欧美在线观看一区| 日韩女优av电影| 亚洲日本va午夜在线电影| 一区二区三区在线播| 免费成人av在线| 成人av小说网| 欧美性大战久久| 久久久精品日韩欧美| 夜夜嗨av一区二区三区中文字幕| 精品亚洲aⅴ乱码一区二区三区| 91在线视频网址| 国产日产精品1区| 日韩av在线发布| 欧美中文字幕一区二区三区亚洲| 久久久精品人体av艺术| 日韩精品1区2区3区| 99久久精品费精品国产一区二区| 92国产精品观看| 欧美综合一区二区三区| 国产日韩欧美a| 精品影视av免费| 欧美二区三区的天堂| 亚洲欧美日韩人成在线播放| 国产一区二区三区最好精华液| 91精彩视频在线观看| 《视频一区视频二区| 国产精品白丝av| 国产日韩欧美麻豆| 日韩av网站在线观看| 成人综合在线观看| 日韩欧美一区电影| 午夜久久电影网| 欧美激情在线一区二区三区| 国产一区二区在线免费观看| 欧美一级高清大全免费观看| 夜夜揉揉日日人人青青一国产精品| 成人天堂资源www在线| 欧美国产一区二区在线观看| 国产精品99久久久久久久女警| 精品剧情在线观看| 成人免费视频国产在线观看| 国产精品全国免费观看高清 | 成人免费视频免费观看| 国产精品妹子av| 91亚洲精品久久久蜜桃| 亚洲国产精品久久久久婷婷884 | 美女视频黄免费的久久| 91精品国产麻豆| 麻豆精品一区二区综合av| 久久久精品免费网站| 日韩电影在线免费观看| 4438x亚洲最大成人网| 久久精品噜噜噜成人av农村| 久久久久久久久久久久久夜| 国产成人av网站| 国产精品网站在线播放| 国产成人精品1024| 亚洲一卡二卡三卡四卡| 欧美一区二区三区喷汁尤物| 日韩高清不卡一区| 欧美激情在线观看视频免费| 欧美在线观看视频一区二区| 日韩电影在线观看电影| 欧美成人一区二区三区| 成人在线一区二区三区| 亚洲少妇30p| 欧美一区二区视频在线观看| 一区二区三区中文字幕电影| 成人欧美一区二区三区在线播放| 精品亚洲国产成人av制服丝袜 | 国产无人区一区二区三区| 国产电影一区二区三区| 亚洲精品视频自拍| 欧美精品一区二区三区久久久| 高清beeg欧美| 午夜精品福利视频网站| 欧美成人一区二区三区片免费 | 久久你懂得1024| 国产一区日韩二区欧美三区| 一区二区三区加勒比av| 国产欧美日韩不卡| 欧美午夜精品久久久久久超碰| 韩国av一区二区三区| 亚洲在线免费播放| 中文一区在线播放| 欧美一卡二卡在线| 久久成人免费日本黄色| 欧美日韩精品欧美日韩精品| 蜜臀精品久久久久久蜜臀| 日本一区二区免费在线观看视频 | 91视频国产观看| 激情六月婷婷综合| 日韩二区在线观看| 日韩精品一区第一页| 亚洲综合在线电影| 欧美成人艳星乳罩| 99精品视频一区二区三区| 国产一二三精品| 国产电影精品久久禁18| 久久99精品国产麻豆不卡| 亚洲成人免费视频| 日日夜夜精品视频天天综合网| 偷拍日韩校园综合在线| 亚洲网友自拍偷拍| 亚洲美女视频一区| 亚洲色图都市小说| 亚洲色图制服诱惑| 视频一区二区三区入口| 免费精品视频最新在线| 蜜桃一区二区三区在线| 日本aⅴ免费视频一区二区三区| 免费在线观看视频一区| 韩国精品免费视频| 不卡av在线免费观看| 欧洲精品在线观看| 在线观看一区不卡| 欧美性猛交一区二区三区精品| 色综合久久中文字幕| 欧美精品九九99久久| 久久中文字幕电影| 久久久久久久免费视频了| 国产精品国产三级国产普通话99 | 色香色香欲天天天影视综合网| 99久久99久久免费精品蜜臀| 国产成人av资源| 成人深夜福利app| 色婷婷亚洲婷婷| 91老司机福利 在线| 91国偷自产一区二区三区成为亚洲经典 | 91蜜桃传媒精品久久久一区二区| 91欧美激情一区二区三区成人| 欧美在线观看视频一区二区三区| 欧美日韩精品一区二区三区 | jiyouzz国产精品久久| 在线看国产一区| 精品少妇一区二区三区日产乱码| 欧美视频一区二| 国产精品久久久久久久久免费桃花| 91精品国产综合久久香蕉的特点 | 久久国产精品一区二区| 成人成人成人在线视频| 91精品国产综合久久精品app | 成人高清视频在线观看| 91高清视频免费看| 久久精品水蜜桃av综合天堂| 又紧又大又爽精品一区二区| 国产一区二区久久| 51精品秘密在线观看| 亚洲少妇30p| 国产一区二区网址| 6080国产精品一区二区| 亚洲丝袜美腿综合| 韩国精品久久久| 欧美精品视频www在线观看| 一区二区三区欧美激情| 久久不见久久见免费视频1| 欧美在线free| 日韩亚洲国产中文字幕欧美| 国模一区二区三区白浆| 91小视频免费观看|