bio-0.5: examples/Flx.hs
{-| Flx is a simple tool to trim 454 "Titanium" reads down to "FLX" size,
i.e. from 800 flows to 400 flows. This is sometimes useful to investigate
the relatvie benefit of Titanium's longer read lengths, and will also
serve as a (rather crude) way to improve average sequence quality.
We're using 'trimFromTo', which clips a 'ReadBlock' down to specific
base positions, and we use 'flowToBasePos' to find the base corresponding
to flow number 400.
-}
module Main where
import Bio.Sequence.SFF
import System.Environment (getArgs)
import Data.ByteString as B (take)
-- usage: flx input.sff output.sff
main = do
[inp,out] <- getArgs
SFF h rs <- readSFF inp
writeSFF out (SFF (h { flow_length = 400, flow = B.take 400 (flow h)}) [trimFlows 400 r | r <- rs])