Robert Buels
and 1 contributors




  my $is = Bio::JBrowse::Store::NCList::IntervalStore->new({
               urlTemplate => "lf-{Chunk}.jsonz",
  my $chunkBytes = 80_000;
  $is->startLoad( $measure, $chunkBytes );
  $is->addSorted([10, 100, -1])
  $is->addSorted([50, 80, 1])
  $is->addSorted([90, 150, -1])
  $is->overlap(60, 85)

  => ([10, 100, -1], [50, 80, 1])


Bio::JBrowse::Store::NCList::IntervalStore - stores a set of intervals (genomic features) in an on-disk lazy nested-containment list



 Title   : new
 Usage   : Bio:JBrowse::Store::NCList::IntervalStore->new(
               arrayRepr => {attributes => ["start", "end", "strand"]},
 Function: create a new store
 Returns : an Bio::JBrowse::Store::NCList::IntervalStore object
 Args    : The Bio::JBrowse::Store::NCList::IntervalStore constuctor accepts the named parameters:
           store: optional object with put(path, data) method, will be used to output
                  feature data
           compress: if true, attempt to compress the data on disk
           arrayRepr: Bio::JBrowse::Store::NCList::ArrayRepr object used to represent the feature data
           urlTemplate (optional): template for URLs where chunks of feature
                                   data will be stored.  This is relative to
                                   the directory with the "trackData.json" file
           nclist (optional): the root of the nclist
           count (optional): the number of intervals in this Bio::JBrowse::Store::NCList::IntervalStore
           minStart (optional): the earliest interval start point
           maxEnd (optional): the latest interval end point

           If this Bio::JBrowse::Store::NCList::IntervalStore hasn't been loaded yet, the optional
           parameters aren't necessary.  But to access a previously-loaded
           Bio::JBrowse::Store::NCList::IntervalStore, the optional parameters *are* needed.

startLoad( $measure, $chunkBytes )

addSorted( \@feature )


overlapCallback( $from, $to, \&func )

Calls the given function once for each of the intervals that overlap the given interval if <$from <= $to>, iterates left-to-right, otherwise iterates right-to-left.


 Title   : descriptor
 Usage   : $list->descriptor
 Returns : a hash containing the data needed to re-construct this
           Bio::JBrowse::Store::NCList::IntervalStore, including the
           root of the NCList plus some metadata and configuration.
           The return value can be passed to the constructor later.


Mitchell Skinner <>

Copyright (c) 2007-2011 The Evolutionary Software Foundation

This package and its accompanying libraries are free software; you can redistribute it and/or modify it under the terms of the LGPL (either version 2.1, or at your option, any later version) or the Artistic License 2.0. Refer to LICENSE for the full license text.


Robert Buels <>


This software is copyright (c) 2013 by Robert Buels.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.