Ubuntu Manpages

Bio::DB::HTS::Tabix

Object oriented access to the underlying tbx C methods

Bio::DB::HTS::Tabix - Object oriented access to the underlying tbx C methods

    use feature qw( say );
    use Bio::DB::HTS::Tabix;
    my $tabix = Bio::DB::HTS::Tabix->new( filename => "gerp_plus_plus_31July2014.gz" );
    say $tabix->header;
    my $iter = $tabix->query("1:4000005-4000009");
    while ( my $n = $iter->next ) {
        say $n;
    }
    $tabix->close;

A high level object oriented interface to the htslib tabix (tbx.h) api. Currently it only supports retrieving regions from a tabixed file, because that's all I needed it for.

"filename"
The gzipped file you want to query. Must have a filename.tbi (the index is not created automatically)

"header"
Returns all the header lines as a single scalar from the tabixed file
"query"
Takes a single region like: '1:4000005-4000009' or '12:5000000'. The coordinate format is 0 or 1-based for start and stop positions depending on how the Tabix index file was created - by default this is 1.

The index for remote files will be downloaded to the system temporary directory by default. Set use_tmp_dir to 0 to download to the current working directory instead.

Here are some examples showing Tabix.

    use Bio::DB::HTS::Tabix;
    my $tabix = Bio::DB::HTS::Tabix->new(filename => $file, use_tmp_dir => 1);
    # Calling region 1
    $iter = $tabix->query("1");
    printf("Calling region 1\n" );
    while(my $l = $iter->next) {
      print $l, "\n";
    }
Gives:
    1       4000000 4000000 -0.972
    1       4000001 4000001 -0.153
    1       4000002 4000002 -2.15
    1       4000003 4000003 -1.17
    1       4000003 4000006 -3.6
    1       4000006 4000007 -6.7
    1       4000007 4000009 -7.9
    #Calling a range
    $iter = $tabix->query("1:4000003-4000006");
gives
    1       4000003 4000003 -1.17
    1       4000003 4000006 -3.6
    1       4000006 4000007 -6.7
    #Calling region 1:4000003 to end of region 1
    $iter = $tabix->query("1:4000003");
gives
    1       4000003 4000003 -1.17
    1       4000003 4000006 -3.6
    1       4000006 4000007 -6.7
    1       4000007 4000009 -7.9
    #Calling single location 1:4000002
    $iter = $tabix->query("1:4000002-4000002");
gives
    1       4000002 4000002 -2.15
    

Returns a Bio::DB::HTS::Tabix::Iterator for the specified region

"seqnames"
Returns an array ref of chromosomes that are in the indexed file

Alex Hodgkins Rishi Nag <rishi@ebi.ac.uk>