-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Library and executables for working with PSL files
--   
--   The library contains the functionality for reading and writing PSL
--   files (alignment data, e.g. from BLAT output). It duplicates code from
--   (and is incompatible with) the "bio" library.
@package biopsl
@version 0.4


-- | This models the PSL format used by e.g. the alignment tool BLAT. It is
--   a simple, textual representation of (spliced) alignments, with
--   tab-separated fields.
--   
--   See <a>http://genome.ucsc.edu/FAQ/FAQformat#format2</a> for details.
module Bio.Alignment.PSL

-- | This encodes a PSL record, corresponding to one line of the PSL file.
data PSL
PSL :: Int -> ByteString -> ByteString -> Int -> ByteString -> Int -> Int -> [Int] -> PSL
[match, mismatch, repmatch, ncount, qgapcount, qgaplength, tgapcount, tgaplength] :: PSL -> Int
[strand] :: PSL -> ByteString
[qname] :: PSL -> ByteString
[qsize, qstart, qend] :: PSL -> Int
[tname] :: PSL -> ByteString
[tsize, tstart, tend] :: PSL -> Int
[blockcount] :: PSL -> Int
[blocksizes, qstarts, tstarts] :: PSL -> [Int]

-- | Read and parse a PSL file.
readPSL :: FilePath -> IO [PSL]

-- | Create a PSL file from a list of alignments.
writePSL :: FilePath -> [PSL] -> IO ()
printPSL :: [PSL] -> IO ()

-- | Parse a <a>ByteString</a> as a PSL file (note that it must contain the
--   PSL header).
parsePSL :: ByteString -> [PSL]

-- | Unparse a list of <a>PSL</a> alignments encoding them into a
--   <a>ByteString</a> (not including PSL header).
unparsePSL :: [PSL] -> ByteString

-- | The PSL header (version 3), as a <a>ByteString</a>.
pslHeader :: ByteString
instance GHC.Classes.Eq Bio.Alignment.PSL.PSL
instance GHC.Show.Show Bio.Alignment.PSL.PSL
