X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=tabix.git;a=blobdiff_plain;f=main.c;h=a2a456566fb9f9a68e3692827cc8fd99943f3f2c;hp=a05939dd96f306843d877859148246c30a44f90b;hb=36e5c2e93cc97d22f8b33768602d511697fa1adf;hpb=d1fcb739b58e050328dcfc47c3af235bc0e41455 diff --git a/main.c b/main.c index a05939d..a2a4565 100644 --- a/main.c +++ b/main.c @@ -84,9 +84,8 @@ int main(int argc, char *argv[]) return ti_index_build(argv[optind], &conf); } { // retrieve - BGZF *fp; - fp = bgzf_open(argv[optind], "r"); - if (fp == 0) { + tabix_t *t; + if ((t = ti_open(argv[optind], 0)) == 0) { fprintf(stderr, "[main] fail to open the data file.\n"); return 1; } @@ -94,36 +93,29 @@ int main(int argc, char *argv[]) ti_iter_t iter; const char *s; int len; - iter = ti_first(fp); - while ((s = ti_iter_read(iter, &len)) != 0) { + iter = ti_query(t, 0, 0, 0); + while ((s = ti_read(t, iter, &len)) != 0) { fputs(s, stdout); fputc('\n', stdout); } ti_iter_destroy(iter); } else { // retrieve from specified regions - ti_index_t *idx; int i; - idx = ti_index_load(argv[optind]); - if (idx == 0) { - bgzf_close(fp); - fprintf(stderr, "[main] fail to load the index.\n"); - return 1; - } + ti_lazy_index_load(t); for (i = optind + 1; i < argc; ++i) { int tid, beg, end; - if (ti_parse_region(idx, argv[i], &tid, &beg, &end) == 0) { + if (ti_parse_region(t->idx, argv[i], &tid, &beg, &end) == 0) { ti_iter_t iter; const char *s; int len; - iter = ti_query(fp, idx, tid, beg, end); - while ((s = ti_iter_read(iter, &len)) != 0) { + iter = ti_queryi(t, tid, beg, end); + while ((s = ti_read(t, iter, &len)) != 0) { fputs(s, stdout); fputc('\n', stdout); } ti_iter_destroy(iter); } else fprintf(stderr, "[main] invalid region: unknown target name or minus interval.\n"); } - ti_index_destroy(idx); } - bgzf_close(fp); + ti_close(t); } return 0; }