From: Petr Danecek Date: Thu, 21 Jun 2012 07:56:39 +0000 (+0100) Subject: Merge branch 'master' of github.com:samtools/samtools X-Git-Url: https://git.donarmstrong.com/?p=samtools.git;a=commitdiff_plain;h=0b184e9ada57345b3de076c688a18a913fb96551;hp=-c Merge branch 'master' of github.com:samtools/samtools --- 0b184e9ada57345b3de076c688a18a913fb96551 diff --combined bam_tview.c index bba732d,20e6f46..1967b7c --- a/bam_tview.c +++ b/bam_tview.c @@@ -20,6 -20,7 +20,7 @@@ #include #include #include + #include #include "bam.h" #include "faidx.h" #include "bam2bcf.h" @@@ -440,8 -441,7 +441,8 @@@ void error(const char *format, ... fprintf(stderr, "\n"); fprintf(stderr, "Usage: bamtk tview [options] [ref.fasta]\n"); fprintf(stderr, "Options:\n"); - fprintf(stderr, " -s STR display only reads from this sample\n"); + fprintf(stderr, " -p chr:pos go directly to this position\n"); + fprintf(stderr, " -s STR display only reads from this sample\n"); fprintf(stderr, "\n\n"); } else @@@ -458,24 -458,17 +459,24 @@@ int bam_tview_main(int argc, char *argv[]) { tview_t *tv; - char *samples=NULL; + char *samples=NULL, *position=NULL; int c; - while ((c = getopt(argc, argv, "s:")) >= 0) { + while ((c = getopt(argc, argv, "s:p:")) >= 0) { switch (c) { case 's': samples=optarg; break; + case 'p': position=optarg; break; default: error(NULL); } } if (argc==optind) error(NULL); tv = tv_init(argv[optind], (optind+1>=argc)? 0 : argv[optind+1], samples); - tv_draw_aln(tv, 0, 0); + if ( position ) + { + int _tid = -1, _beg, _end; + bam_parse_region(tv->header, position, &_tid, &_beg, &_end); + if (_tid >= 0) { tv->curr_tid = _tid; tv->left_pos = _beg; } + } + tv_draw_aln(tv, tv->curr_tid, tv->left_pos); tv_loop(tv); tv_destroy(tv); return 0;