bioinformatics-toolkit-0.10.0: A collection of bioinformatics tools
Safe HaskellNone
LanguageHaskell2010

Bio.Data.Bed

Contents

Synopsis

Documentation

class BEDLike b where Source #

A class representing BED-like data, e.g., BED3, BED6 and BED12. BED format uses 0-based index (see documentation).

Minimal complete definition

chrom, chromStart, chromEnd, name, score, strand

Methods

chrom :: Lens' b ByteString Source #

Field lens

chromStart :: Lens' b Int Source #

chromEnd :: Lens' b Int Source #

name :: Lens' b (Maybe ByteString) Source #

score :: Lens' b (Maybe Int) Source #

strand :: Lens' b (Maybe Bool) Source #

size :: b -> Int Source #

Return the size of a bed region.

Instances

Instances details
BEDLike BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BroadPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike bed => BEDLike (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

class BEDLike b => BEDConvert b where Source #

Minimal complete definition

asBed, fromLine, toLine

Methods

asBed :: ByteString -> Int -> Int -> b Source #

Construct bed record from chromsomoe, start location and end location

fromLine :: ByteString -> b Source #

Convert bytestring to bed format

toLine :: b -> ByteString Source #

Convert bed to bytestring

convert :: BEDLike b' => b' -> b Source #

Instances

Instances details
BEDConvert BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDConvert BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDConvert BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDConvert NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDConvert BroadPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

(Read a, Show a, BEDConvert bed) => BEDConvert (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

asBed :: ByteString -> Int -> Int -> BEDExt bed a Source #

fromLine :: ByteString -> BEDExt bed a Source #

toLine :: BEDExt bed a -> ByteString Source #

convert :: BEDLike b' => b' -> BEDExt bed a Source #

data BED Source #

Instances

Instances details
Eq BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

(==) :: BED -> BED -> Bool #

(/=) :: BED -> BED -> Bool #

Ord BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

compare :: BED -> BED -> Ordering #

(<) :: BED -> BED -> Bool #

(<=) :: BED -> BED -> Bool #

(>) :: BED -> BED -> Bool #

(>=) :: BED -> BED -> Bool #

max :: BED -> BED -> BED #

min :: BED -> BED -> BED #

Read BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Show BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

showsPrec :: Int -> BED -> ShowS #

show :: BED -> String #

showList :: [BED] -> ShowS #

Generic BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Associated Types

type Rep BED :: Type -> Type #

Methods

from :: BED -> Rep BED x #

to :: Rep BED x -> BED #

NFData BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

rnf :: BED -> () #

BEDConvert BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep BED Source # 
Instance details

Defined in Bio.Data.Bed.Types

data BED3 Source #

BED3 format

Instances

Instances details
Eq BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

(==) :: BED3 -> BED3 -> Bool #

(/=) :: BED3 -> BED3 -> Bool #

Ord BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

compare :: BED3 -> BED3 -> Ordering #

(<) :: BED3 -> BED3 -> Bool #

(<=) :: BED3 -> BED3 -> Bool #

(>) :: BED3 -> BED3 -> Bool #

(>=) :: BED3 -> BED3 -> Bool #

max :: BED3 -> BED3 -> BED3 #

min :: BED3 -> BED3 -> BED3 #

Read BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Show BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

showsPrec :: Int -> BED3 -> ShowS #

show :: BED3 -> String #

showList :: [BED3] -> ShowS #

Generic BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Associated Types

type Rep BED3 :: Type -> Type #

Methods

from :: BED3 -> Rep BED3 x #

to :: Rep BED3 x -> BED3 #

NFData BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

rnf :: BED3 -> () #

BEDConvert BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep BED3 Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep BED3 = D1 ('MetaData "BED3" "Bio.Data.Bed.Types" "bioinformatics-toolkit-0.10.0-A8Y5r7ZpZ9gGDfktm9e6ZK" 'False) (C1 ('MetaCons "BED3" 'PrefixI 'True) (S1 ('MetaSel ('Just "_bed3_chrom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString) :*: (S1 ('MetaSel ('Just "_bed3_chrom_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "_bed3_chrom_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int))))

data BEDGraph Source #

Bedgraph format.

Instances

Instances details
Eq BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Ord BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Read BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Show BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Generic BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Associated Types

type Rep BEDGraph :: Type -> Type #

Methods

from :: BEDGraph -> Rep BEDGraph x #

to :: Rep BEDGraph x -> BEDGraph #

NFData BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

rnf :: BEDGraph -> () #

BEDConvert BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep BEDGraph Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep BEDGraph = D1 ('MetaData "BEDGraph" "Bio.Data.Bed.Types" "bioinformatics-toolkit-0.10.0-A8Y5r7ZpZ9gGDfktm9e6ZK" 'False) (C1 ('MetaCons "BEDGraph" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_bdg_chrom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString) :*: S1 ('MetaSel ('Just "_bdg_chrom_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "_bdg_chrom_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "_bdg_value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Double))))

data NarrowPeak Source #

Instances

Instances details
Eq NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

Read NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

Show NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

Generic NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

Associated Types

type Rep NarrowPeak :: Type -> Type #

NFData NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

rnf :: NarrowPeak -> () #

BEDConvert NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

BEDLike NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep NarrowPeak Source # 
Instance details

Defined in Bio.Data.Bed.Types

data BEDExt bed a Source #

Constructors

BEDExt 

Fields

Instances

Instances details
(Eq bed, Eq a) => Eq (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

(==) :: BEDExt bed a -> BEDExt bed a -> Bool #

(/=) :: BEDExt bed a -> BEDExt bed a -> Bool #

(Read bed, Read a) => Read (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

readsPrec :: Int -> ReadS (BEDExt bed a) #

readList :: ReadS [BEDExt bed a] #

readPrec :: ReadPrec (BEDExt bed a) #

readListPrec :: ReadPrec [BEDExt bed a] #

(Show bed, Show a) => Show (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

showsPrec :: Int -> BEDExt bed a -> ShowS #

show :: BEDExt bed a -> String #

showList :: [BEDExt bed a] -> ShowS #

Generic (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Associated Types

type Rep (BEDExt bed a) :: Type -> Type #

Methods

from :: BEDExt bed a -> Rep (BEDExt bed a) x #

to :: Rep (BEDExt bed a) x -> BEDExt bed a #

(NFData bed, NFData a) => NFData (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

rnf :: BEDExt bed a -> () #

(Read a, Show a, BEDConvert bed) => BEDConvert (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

Methods

asBed :: ByteString -> Int -> Int -> BEDExt bed a Source #

fromLine :: ByteString -> BEDExt bed a Source #

toLine :: BEDExt bed a -> ByteString Source #

convert :: BEDLike b' => b' -> BEDExt bed a Source #

BEDLike bed => BEDLike (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep (BEDExt bed a) Source # 
Instance details

Defined in Bio.Data.Bed.Types

type Rep (BEDExt bed a) = D1 ('MetaData "BEDExt" "Bio.Data.Bed.Types" "bioinformatics-toolkit-0.10.0-A8Y5r7ZpZ9gGDfktm9e6ZK" 'False) (C1 ('MetaCons "BEDExt" 'PrefixI 'True) (S1 ('MetaSel ('Just "_ext_bed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 bed) :*: S1 ('MetaSel ('Just "_ext_data") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 a)))

_bed :: forall bed a bed. Lens (BEDExt bed a) (BEDExt bed a) bed bed Source #

_data :: forall bed a a. Lens (BEDExt bed a) (BEDExt bed a) a a Source #

bedToTree :: BEDLike b => (a -> a -> a) -> [(b, a)] -> BEDTree a Source #

sortedBedToTree :: (BEDLike b, Foldable f) => (a -> a -> a) -> Sorted (f (b, a)) -> BEDTree a Source #

Convert a set of sorted bed records to interval tree, with combining function for equal keys.

queryIntersect :: BEDLike b => b -> BEDTree a -> [(BED3, a)] Source #

sizeOverlapped :: (BEDLike b1, BEDLike b2) => b1 -> b2 -> Int Source #

splitBed :: BEDConvert b => Int -> b -> [b] Source #

split a bed region into k consecutive subregions, discarding leftovers

splitBedBySize :: BEDConvert b => Int -> b -> [b] Source #

split a bed region into consecutive fixed size subregions, discarding leftovers

splitBedBySizeLeft :: BEDConvert b => Int -> b -> [b] Source #

split a bed region into consecutive fixed size subregions, including leftovers

splitBedBySizeOverlap Source #

Arguments

:: BEDConvert b 
=> Int

bin size

-> Int

overlap size

-> b 
-> [b] 

sortBed :: BEDLike b => [b] -> Sorted (Vector b) Source #

sort BED, first by chromosome (alphabetical order), then by chromStart, last by chromEnd

intersectBed :: (BEDLike b1, BEDLike b2, Monad m) => [b2] -> ConduitT b1 b1 m () Source #

return records in A that are overlapped with records in B

intersectBedWith :: (BEDLike b1, BEDLike b2, Monad m) => (b1 -> [b2] -> a) -> [b2] -> ConduitT b1 a m () Source #

intersectSortedBed :: (BEDLike b1, BEDLike b2, Monad m) => Sorted (Vector b2) -> ConduitT b1 b1 m () Source #

return records in A that are overlapped with records in B

intersectSortedBedWith :: (BEDLike b1, BEDLike b2, Monad m) => (b1 -> [b2] -> a) -> Sorted (Vector b2) -> ConduitT b1 a m () Source #

isOverlapped :: (BEDLike b1, BEDLike b2) => b1 -> b2 -> Bool Source #

mergeBed :: (BEDConvert b, Monad m) => [b] -> ConduitT i b m () Source #

Merge overlapping regions.

mergeBedWith :: (BEDLike b, Monad m) => ([b] -> a) -> [b] -> ConduitT i a m () Source #

Merge overlapping regions according to a merging function.

mergeSortedBed :: (BEDConvert b, Monad m) => ConduitT b b m () Source #

Merge overlapping regions. The input stream must be sorted first.

mergeSortedBedWith :: (BEDLike b, Monad m) => ([b] -> a) -> ConduitT b a m () Source #

Merge overlapping regions according to a merging function. The input stream must be sorted first.

countOverlapped :: BEDLike b => [b] -> [(BED3, Int)] Source #

Split overlapped regions into non-overlapped regions. The input must be overlapped. This function is usually used with mergeBedWith.

IO

writeBed :: BEDConvert b => FilePath -> [b] -> IO () Source #

compareBed :: (BEDLike b1, BEDLike b2) => b1 -> b2 -> Ordering Source #

Compare bed records using only the chromosome, start and end positions. Unlike the `compare' from the Ord type class, this function can compare different types of BED data types.