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

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

?? bz_hit19.c

?? 一個類似于blast算法的基因數據快速搜索算法
?? C
字號:
// -- a single match of length 12 at chosen positions in a 19-mer,//  allowing one transition // -- a single match of length 11 at chosen positions in a 18-mer,//  allowing one transition static const char rcsid[] ="$Id: bz_hit19.c,v 1.11 2003/01/09 19:33:56 schwartz Exp $";#include "util.h"#include "seq.h"#include "dna.h"#include "bz_table.h"#include "bz_hit19.h"#include "astack.c"// #include "cache.c"//#define STATISTICS(code) code;#define STATISTICS(code)struct statistics {    long add_word;    long extend_hit;    long a, b, c, d, e;} STATS;void print_statistics() {    fprintf(stderr, "add_word=%ld\n", STATS.add_word);    fprintf(stderr, "extend_hit=%ld\n", STATS.extend_hit);    fprintf(stderr, "a=%ld\n", STATS.a);    fprintf(stderr, "b=%ld\n", STATS.b);    fprintf(stderr, "c=%ld\n", STATS.c);    fprintf(stderr, "d=%ld\n", STATS.d);    fprintf(stderr, "e=%ld\n", STATS.e);}static void print_ll(FILE *fp, unsigned long long x){    int i;    for (i = 36; i >= 0; i -= 2)	fprintf(fp, "%c", "ACGT"[(x>>i)&3]);}static void print_l(FILE *fp, unsigned long x){    int i;    for (i = 22; i >= 0; i -= 2)	fprintf(fp, "%c", "ACGT"[(x>>i)&3]);}//              8765432109876543210// template     1110100110010101111 (12 of 19)#define B(n) ((1ULL<<(n*2))-1)static unsigned int map_19to12(unsigned long long i){        unsigned int j =                ((i & (B(3) << (2*16))) >> (2*7)) |                ((i & (B(1) << (2*14))) >> (2*6)) |                ((i & (B(2) << (2*10))) >> (2*4)) |                ((i & (B(1) << (2* 7))) >> (2*2)) |                ((i & (B(1) << (2* 5))) >> (2*1)) |                ((i & (B(4) << (2* 0))) >> (2*0)) ;	    // DEBUG	    //fprintf(stdout, "%016llx %016x\n", i, j);	    //print_ll(stdout, i); 	    //fprintf(stdout, " ");	    //print_l(stdout, j); 	    //fprintf(stdout, "\n");        return j;}//              765432109876543210// template     111010010100110111  (11 of 18)static unsigned int map_18to11(unsigned long long i){        unsigned int j =                ((i & (B(3) << (2*15))) >> (2*7)) |                ((i & (B(1) << (2*13))) >> (2*6)) |                ((i & (B(1) << (2*10))) >> (2*4)) |                ((i & (B(1) << (2* 8))) >> (2*3)) |                ((i & (B(2) << (2* 4))) >> (2*1)) |                ((i & (B(3) << (2* 0))) >> (2*0)) ;        //fprintf(stdout, "%016lx %016llx\n", j, i);        return j;}#define N4E12 16777216	/* 4^12 *//* -------------   build table of W-tuples in the first sequence  ----------- */typedef struct hashpos {	int pos;		/* position where word starts in sequence 1 */	struct hashpos *next;} Hash;typedef struct blast_table_n bt_t;/* add_word - add to the table a position in sequence 1 of a given word */static void add_word(bt_t *bt, int ecode, int pos){	Hash *h;	if (bt->n_node >= bt->npool)		fatal("blast hashtab overflowed (can't happen)");	h = &(bt->pool[bt->n_node++]);	h->pos = pos;	h->next = bt->hashtab[ecode];	bt->hashtab[ecode] = h;	//STATISTICS(STATS.add_word++);}blast_table_t *blast_1219_new(SEQ *seq, int W){	unsigned long long ei;	unsigned int ecode;	int i;	const unsigned char *s;	const int len1 = SEQ_LEN(seq);	const unsigned char *const seq1 = SEQ_CHARS(seq);	const unsigned char *const seq_end = seq1 + len1;	blast_table_t *bt;	if (W != 12)		fatal("Cannot handle W != 12.");	if (len1 < 19)		fatal("Cannot handle seq1 len < 19.");	bt = ckalloc(sizeof(*bt));	bt->n.hashtab = (Hash **) ckallocz(N4E12*sizeof(Hash *));	W = 0; // because we don't add transitions to this table anymore.	if (len1 >= LONG_MAX/(W+1))		fatalf("sequence too long: %ld\n", len1);	bt->n.npool = (W+1)*(len1 - W + 1);	if ((unsigned int)bt->n.npool >= LONG_MAX/sizeof(Hash))		fatalf("too many nodes: %d\n", bt->n.npool);	bt->n.pool = (Hash *) ckalloc(bt->n.npool*sizeof(Hash));	bt->n.n_node = 0;		for (s = seq1; s < seq_end;  ) {	restart://STATISTICS(STATS.a++);		/* init -- load first 18bp, compute starts with 19th */		ei = 0;		for (i = 0; i < 18 && s < seq_end; ++i) {			const int e = fasta_encoding[*s++];			if (e < 0) goto restart; /* hit a run of 'X's */			ei = (ei << 2) | e;//printf("%c -> ", s[-1]); print_ll(stdout, ei); printf("\n");		}//STATISTICS(STATS.b++);		/* compute */		for ( ; s < seq_end; ++s) {			const int e = fasta_encoding[*s];			if (e < 0) goto restart; /* hit a run of 'X's */			ei = (ei << 2) | e;			ecode = map_19to12(ei);//STATISTICS(STATS.c++);			add_word(&bt->n, ecode, s-seq1+1);		} 	}	return bt;}void blast_1219_free(blast_table_t *bt){	free(bt->n.hashtab);	free(bt->n.pool);}/* -----------------------   search the second sequence   --------------------*/msp_table_t *blast_1219_search(SEQ *seq1, SEQ *seq2, blast_table_t *bt, msp_table_t *mt, ss_t ss, int X, int K, int P, int T){	unsigned long long ei;	unsigned int ecode;	int i;	Hash *h;	const unsigned char *s;	const unsigned char *const seq = SEQ_CHARS(seq2);	const unsigned char *const seq_end = seq + SEQ_LEN(seq2);	const int len1 = SEQ_LEN(seq1);	const int len2 = SEQ_LEN(seq2);	static comb_t *diag_lev = 0;        { unsigned int n = (len1+len2+1);          n = roundup(n, 64*1024);          diag_lev = comb_resize(diag_lev,n,len1);        }	for (s = seq; s < seq_end;  ) {	restart:		/* init -- load first 18bp, compute starts with 19th */		ei = 0;		for (i = 0; i < 18 && s < seq_end; ++i) {			const int e = fasta_encoding[*s++];			if (e < 0) goto restart; /* hit a run of 'X's */			ei = (ei << 2) | e;		}		/* compute */		for ( ; s < seq_end; ++s) {			const int e = fasta_encoding[*s];			if (e < 0) goto restart; /* hit a run of 'X's */			ei = (ei << 2) | e;			ecode = map_19to12(ei);			for (h = bt->n.hashtab[ecode]; h; h = h->next) {//STATISTICS(STATS.extend_hit++);				msp_extend_hit(mt, seq1, seq2,                                                ss, X, K, 19, P,                                                h->pos, s-seq+1, diag_lev);			}			// search transitions too			if (T) for (i = 0; i < 12; ++i) {			    unsigned int t;			    t = ecode ^ (2 << (2 * i)); /* A~G; C~T */			    for (h = bt->n.hashtab[t]; h; h = h->next) {//STATISTICS(STATS.extend_hit++);				msp_extend_hit(mt, seq1, seq2,                                                ss, X, K, 19, P,                                                h->pos, s-seq+1, diag_lev);			    }			}		} 	}	comb_clear(diag_lev);	return mt;}// ----------// Note: a more general version of the transformation function://  j = (ecode & (3<<(2*i))) >> (2*i);//  j = transition[j];//  t = (ecode &~ (3<<(2*i))) | (j << (2*i));// A simple version that just does transitions by flipping the right bit://  t = ecode ^ (2 << (2 * i)); /* A~G; C~T */// ----------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费视频| 一区二区免费在线播放| 日韩精品影音先锋| 欧美一二三四在线| 欧美一二三四区在线| 5月丁香婷婷综合| 欧美一区二区三级| 欧美不卡123| 欧美va亚洲va香蕉在线| 久久综合久久鬼色| 国产亚洲福利社区一区| 中文字幕欧美国产| 中文字幕在线播放不卡一区| 亚洲欧洲日韩在线| 亚洲国产wwwccc36天堂| 天天操天天色综合| 久久精品国产99久久6| 久久se精品一区精品二区| 另类小说综合欧美亚洲| 国产夫妻精品视频| 99re亚洲国产精品| 欧亚一区二区三区| 51久久夜色精品国产麻豆| 精品区一区二区| 国产精品乱人伦| 亚洲一区二区在线观看视频| 午夜精品爽啪视频| 久久国产视频网| 成人激情视频网站| 欧美亚洲自拍偷拍| 日韩欧美高清一区| 国产精品视频一区二区三区不卡| 亚洲另类色综合网站| 午夜精品视频在线观看| 国产一区二区三区美女| 91视频一区二区三区| 欧美日韩精品欧美日韩精品一| 日韩一区二区三区四区| 国产午夜亚洲精品午夜鲁丝片| 最新日韩av在线| 男人的天堂久久精品| 风间由美一区二区三区在线观看| 91亚洲国产成人精品一区二三 | 国产成人综合网| 不卡一区二区在线| 欧美一级专区免费大片| 中文字幕久久午夜不卡| 日韩在线观看一区二区| 成人激情文学综合网| 91精品国产色综合久久ai换脸 | 九九精品视频在线看| 99久久精品免费精品国产| 91精品国产一区二区三区香蕉| 欧美激情中文字幕| 青青草国产成人av片免费| 成人18视频在线播放| 欧美一级理论片| 亚洲女与黑人做爰| 狠狠色丁香久久婷婷综合_中| jiyouzz国产精品久久| 日韩欧美第一区| 亚洲精品成人少妇| 国产精品一区二区久激情瑜伽| 欧美理论片在线| 中文字幕一区二区三区在线不卡| 麻豆91在线观看| 色欧美日韩亚洲| 国产欧美精品一区二区色综合| 性久久久久久久久久久久| av激情综合网| 国产婷婷色一区二区三区四区 | 91老师片黄在线观看| 精品国产一区二区三区久久影院 | 色婷婷香蕉在线一区二区| 久久久精品免费观看| 日韩和的一区二区| 色婷婷激情一区二区三区| 国产欧美一区视频| 激情久久久久久久久久久久久久久久| 在线看不卡av| 亚洲精品高清视频在线观看| 粉嫩av一区二区三区粉嫩| 欧美成人激情免费网| 青青青伊人色综合久久| 欧美久久久影院| 亚洲午夜在线视频| 欧美亚洲禁片免费| 一区二区三区日本| 99精品视频在线播放观看| 亚洲国产激情av| 国产成人精品一区二| 久久久久久免费| 国产美女视频91| 久久久噜噜噜久久中文字幕色伊伊| 日韩成人免费电影| 欧美系列日韩一区| 亚洲国产精品一区二区www| 91久久国产综合久久| **网站欧美大片在线观看| aaa亚洲精品一二三区| 国产日韩欧美制服另类| 成人综合在线观看| 国产精品免费人成网站| 成人禁用看黄a在线| 国产精品国产三级国产专播品爱网| 国产精品1区2区3区在线观看| 久久蜜桃一区二区| 丁香婷婷综合网| 国产精品久久久久精k8| www.亚洲激情.com| 亚洲久本草在线中文字幕| 91福利精品第一导航| 调教+趴+乳夹+国产+精品| 6080亚洲精品一区二区| 久久精品国产亚洲a| 久久午夜国产精品| 成人毛片老司机大片| 亚洲欧洲日本在线| 色综合中文字幕国产| 亚洲综合在线观看视频| 在线亚洲一区观看| 日本不卡1234视频| www一区二区| 99久久综合色| 夜夜嗨av一区二区三区四季av| 欧美色偷偷大香| 蜜桃精品在线观看| 久久久久久久久久久99999| av午夜一区麻豆| 亚洲国产成人av| 日韩精品一区二区三区在线观看| 国产一区二区导航在线播放| 中文字幕第一区综合| 欧美亚洲精品一区| 精彩视频一区二区三区| 国产精品天干天干在观线| 91麻豆国产福利精品| 日本网站在线观看一区二区三区 | 亚洲人被黑人高潮完整版| 精品视频免费看| 狠狠色伊人亚洲综合成人| 国产精品高潮呻吟| 欧美一区二区在线不卡| 国产一区久久久| 亚洲最色的网站| 久久久99精品久久| 欧美在线观看视频一区二区 | 一本久道久久综合中文字幕| 午夜免费久久看| 欧美激情中文字幕一区二区| 欧美日韩一区二区三区视频 | 欧美成人精品福利| 91猫先生在线| 久久99日本精品| 夜夜夜精品看看| 国产精品美女久久久久久| 在线播放中文一区| av欧美精品.com| 国产一区二区三区香蕉| 亚洲第一久久影院| 国产精品水嫩水嫩| 精品国产伦理网| 欧美日韩久久久久久| 国产成a人亚洲| 欧美a级一区二区| 亚洲自拍偷拍麻豆| 国产精品你懂的| 久久一夜天堂av一区二区三区| 欧美日韩黄色影视| 99国产精品视频免费观看| 国产一区二区三区最好精华液| 亚洲成人777| 亚洲激情网站免费观看| 欧美国产综合一区二区| 精品久久一二三区| 欧美精品第一页| 欧美性生活久久| 色综合久久中文字幕| 成人激情免费网站| 国产精品一区二区无线| 老司机一区二区| 日精品一区二区| 亚洲图片欧美视频| 一区二区三区电影在线播| 欧美国产日韩精品免费观看| 久久影视一区二区| 日韩精品一区二区三区swag| 91麻豆精品国产自产在线| 欧美性xxxxxx少妇| 欧美午夜电影在线播放| 色狠狠av一区二区三区| 97se亚洲国产综合自在线不卡| 国产成人精品www牛牛影视| 国产综合一区二区| 久久国产乱子精品免费女| 日本女人一区二区三区| 香蕉久久一区二区不卡无毒影院| 一个色在线综合| 亚洲电影在线播放| 五月天丁香久久|