Set::IntSpan::Island - adds island, hole and cover functionality to Set::IntSpan PREAMBLE This document is a brief introduction to Set::IntSpan::Island. This is not the full documentation - see the module's POD for a complete manual. BACKGROUND Set::IntSpan (by Steven McDougall) models spans of integers. The simplest span is a contiguous run of one or more integers, such as 1 1-5 1-10 10-15 A Set::IntSpan span can be composed of one or more such simple spans, thereby modeling ranges such as 1 1-5 1-5,10-15 1,3-5,10-15 PURPOSE Set::IntSpan::Island adds utility functions to Set::IntSpan that manipulate islands (contiguous spans within a span object), holes (integers between contiguous spans) and covers (overlapping spans). The relationship between a span, its islands and holes is shown below. span 012-4--789 islands 012 4 789 holes 3 56 Functions are implemented to manage and manipulate islands and holes, such as removing short islands or filling in small holes. Covers are helpful when needing to overlap multiple spans, while keeping track of which spans provide coverage for a given region. span1 012-4--789 span2 --234--789 span3 ------67-- span4 01-------- covers 01 span1, span4 2 span1, span2 3 span2 4 span1, span2 6 span3 7 span1, span2, span3 89 span1, span2 MOTIVATION This module comes into its own when the data represented by your sets correspond to coordinates of coverage elements for which overlap (i.e. overlapping spans - this is not a union since individuality of spans is preserved) is an important behaviour. Modelling coverage elements in genomics (the field I work in) inevitably means storing, retrieving and manipulating coordinates of elements such as sequence contigs or alignments. For alignments, for example, it is useful to be able to fill in holes or remove small islands. When multiple alignments are considered (e.g. sequence reads) it is common to ask how these elements overlap (e.g. exhaustively enumerate all intersections and determine the number of coverage elements in each intersection). Generating such a report of covers, given a list of sets, is one of the most useful features in Set::IntSpan::Island. For example, given the following spans as identified a 10-15,21-22 b 12,25 c 14-20 d 25 this module will provide you with all set covers and their members. 10-11 a 12 a b 13 a 14-15 a c 16-20 c 21-22 a 23-24 - 25 b d HOW TO BUILD AND INSTALL perl Makefile.PL make make test make install AUTHOR Martin Krzywinski Genome Sciences Center http://mkweb.bcgsc.ca martink@bcgsc.ca COPYRIGHT Copyright (c) 2007-2010 by Martin Krzywinski. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.