Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 711818
Collapse All | Expand All

(-)a/bntseq.c (-8 / +15 lines)
Lines 69-75 void bns_dump(const bntseq_t *bns, const char *prefix) Link Here
69
	FILE *fp;
69
	FILE *fp;
70
	int i;
70
	int i;
71
	{ // dump .ann
71
	{ // dump .ann
72
		strcpy(str, prefix); strcat(str, ".ann");
72
		snprintf(str, sizeof(str), "%s.ann", prefix);
73
		fp = xopen(str, "w");
73
		fp = xopen(str, "w");
74
		err_fprintf(fp, "%lld %d %u\n", (long long)bns->l_pac, bns->n_seqs, bns->seed);
74
		err_fprintf(fp, "%lld %d %u\n", (long long)bns->l_pac, bns->n_seqs, bns->seed);
75
		for (i = 0; i != bns->n_seqs; ++i) {
75
		for (i = 0; i != bns->n_seqs; ++i) {
Lines 83-89 void bns_dump(const bntseq_t *bns, const char *prefix) Link Here
83
		err_fclose(fp);
83
		err_fclose(fp);
84
	}
84
	}
85
	{ // dump .amb
85
	{ // dump .amb
86
		strcpy(str, prefix); strcat(str, ".amb");
86
		snprintf(str, sizeof(str), "%s.amb", prefix);
87
		fp = xopen(str, "w");
87
		fp = xopen(str, "w");
88
		err_fprintf(fp, "%lld %d %u\n", (long long)bns->l_pac, bns->n_seqs, bns->n_holes);
88
		err_fprintf(fp, "%lld %d %u\n", (long long)bns->l_pac, bns->n_seqs, bns->n_holes);
89
		for (i = 0; i != bns->n_holes; ++i) {
89
		for (i = 0; i != bns->n_holes; ++i) {
Lines 171-182 bntseq_t *bns_restore(const char *prefix) Link Here
171
	char ann_filename[1024], amb_filename[1024], pac_filename[1024], alt_filename[1024];
171
	char ann_filename[1024], amb_filename[1024], pac_filename[1024], alt_filename[1024];
172
	FILE *fp;
172
	FILE *fp;
173
	bntseq_t *bns;
173
	bntseq_t *bns;
174
	strcat(strcpy(ann_filename, prefix), ".ann");
174
	snprintf(ann_filename, sizeof(ann_filename), "%s.ann", prefix);
175
	strcat(strcpy(amb_filename, prefix), ".amb");
175
	snprintf(amb_filename, sizeof(amb_filename), "%s.amb", prefix);
176
	strcat(strcpy(pac_filename, prefix), ".pac");
176
	snprintf(pac_filename, sizeof(pac_filename), "%s.pac", prefix);
177
	bns = bns_restore_core(ann_filename, amb_filename, pac_filename);
177
	bns = bns_restore_core(ann_filename, amb_filename, pac_filename);
178
	if (bns == 0) return 0;
178
	if (bns == 0) return 0;
179
	if ((fp = fopen(strcat(strcpy(alt_filename, prefix), ".alt"), "r")) != 0) { // read .alt file if present
179
	snprintf(alt_filename, sizeof(alt_filename), "%s.alt", prefix);
180
	if ((fp = fopen(alt_filename, "r")) != 0) { // read .alt file if present
180
		char str[1024];
181
		char str[1024];
181
		khash_t(str) *h;
182
		khash_t(str) *h;
182
		int c, i, absent;
183
		int c, i, absent;
Lines 197-203 bntseq_t *bns_restore(const char *prefix) Link Here
197
				}
198
				}
198
				while (c != '\n' && c != EOF) c = fgetc(fp);
199
				while (c != '\n' && c != EOF) c = fgetc(fp);
199
				i = 0;
200
				i = 0;
200
			} else str[i++] = c; // FIXME: potential segfault here
201
			} else {
202
				if (i >= 1022) {
203
					fprintf(stderr, "[E::%s] sequence name longer than 1023 characters. Abort!\n", __func__);
204
					exit(1);
205
				}
206
				str[i++] = c;
207
			}
201
		}
208
		}
202
		kh_destroy(str, h);
209
		kh_destroy(str, h);
203
		fclose(fp);
210
		fclose(fp);
Lines 294-300 int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix, int for_only) Link Here
294
	bns->ambs = (bntamb1_t*)calloc(m_holes, sizeof(bntamb1_t));
301
	bns->ambs = (bntamb1_t*)calloc(m_holes, sizeof(bntamb1_t));
295
	pac = calloc(m_pac/4, 1);
302
	pac = calloc(m_pac/4, 1);
296
	q = bns->ambs;
303
	q = bns->ambs;
297
	strcpy(name, prefix); strcat(name, ".pac");
304
	snprintf(name, sizeof(name), "%s.pac", prefix);
298
	fp = xopen(name, "wb");
305
	fp = xopen(name, "wb");
299
	// read sequences
306
	// read sequences
300
	while (kseq_read(seq) >= 0) pac = add1(seq, bns, pac, &m_pac, &m_seqs, &m_holes, &q);
307
	while (kseq_read(seq) >= 0) pac = add1(seq, bns, pac, &m_pac, &m_seqs, &m_holes, &q);

Return to bug 711818