{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE TypeFamilies #-}
module Data.BAM.Version1_6.Write.Base (
writeBAM_V1_6
) where
import Data.BAM.Version1_6.Base
import Data.BAM.Version1_6.BAM
import Data.BAM.Version1_6.BAM.BAMAlignments
import Data.BAM.Version1_6.BAM.BAMHeader
import Data.BAM.Version1_6.BAM.Alignment.Base
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.Base
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.AOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.BigCOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.BigIOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.BigSOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.SmallCOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.SmallIOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.SmallSOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.FOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.ZOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.HOPT
import Data.BAM.Version1_6.BAM.Alignment.OptionalFields.BOPT
import Data.BAM.Version1_6.BAM.ReferenceInformation
import Data.BAM.Version1_6.BGZFBlock
import Data.BAM.Version1_6.GZipHeader
import Data.BAM.Version1_6.Internal
import Data.BAM.Version1_6.Write.Error
import Data.BAM.Version1_6.Write.Internal
import Codec.Compression.Zlib.Raw as CCZlibR (compress)
import Data.ByteString as DB (append,concat,empty,fromStrict,hPutStr,length,pack,singleton,toStrict)
import Data.ByteString.Base16 as DBB16
import Data.Base16.Types as DBB16T
import Data.Digest.CRC32 as DDCRC32 (crc32)
import Data.Foldable (forM_,toList)
import Data.List as DL (elem)
import Data.Maybe (fromJust)
import System.IO (hFlush,hClose,IOMode(..),openBinaryFile,Handle)
deconstructBAM_V1_6 :: Handle
-> BAM_V1_6
-> IO ()
deconstructBAM_V1_6 :: Handle -> BAM_V1_6 -> IO ()
deconstructBAM_V1_6 Handle
h
BAM_V1_6
bamv16 =
Seq BAM_V1_6_BGZFBlock -> (BAM_V1_6_BGZFBlock -> IO ()) -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
t a -> (a -> m b) -> m ()
forM_ (BAM_V1_6 -> Seq BAM_V1_6_BGZFBlock
bam_v1_6 BAM_V1_6
bamv16) ((BAM_V1_6_BGZFBlock -> IO ()) -> IO ())
-> (BAM_V1_6_BGZFBlock -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \BAM_V1_6_BGZFBlock
currentbgzfblock ->
case ( BAM_V1_6_BAM -> Bool
bam_v1_6_bam_endoffilemarker (BAM_V1_6_BAM -> Bool) -> BAM_V1_6_BAM -> Bool
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_BAM
bam_v1_6_bgzfblock_cdata BAM_V1_6_BGZFBlock
currentbgzfblock
) of
Bool
True -> do
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_1 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_2 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_compression_method (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_header_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word32
bam_v1_6_gzip_header_modification_time (BAM_V1_6_GZipHeader -> Word32) -> BAM_V1_6_GZipHeader -> Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_extra_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_operating_system (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word16
bam_v1_6_gzip_header_extra_length (BAM_V1_6_GZipHeader -> Word16) -> BAM_V1_6_GZipHeader -> Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_one BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_two BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word16
bam_v1_6_bgzfblock_subfield_length BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word16
bam_v1_6_bgzfblock_total_block_size_minus_one BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
[Word8] -> ByteString
DB.pack
[ Word8
0x03
, Word8
0x00
]
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word32
bam_v1_6_bgzfblock_crc32 BAM_V1_6_BGZFBlock
currentbgzfblock
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word32
bam_v1_6_bgzfblock_isize BAM_V1_6_BGZFBlock
currentbgzfblock
Bool
False ->
case ( BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader (BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMHeader)
-> BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMHeader
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_BAM
bam_v1_6_bgzfblock_cdata BAM_V1_6_BGZFBlock
currentbgzfblock
) of
Maybe BAM_V1_6_BAM_BAMHeader
Nothing ->
case ( BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMAlignments
bam_v1_6_bam_bamalignments (BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMAlignments)
-> BAM_V1_6_BAM -> Maybe BAM_V1_6_BAM_BAMAlignments
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_BAM
bam_v1_6_bgzfblock_cdata BAM_V1_6_BGZFBlock
currentbgzfblock
) of
Maybe BAM_V1_6_BAM_BAMAlignments
Nothing ->
[Char] -> IO ()
forall a. HasCallStack => [Char] -> a
error ([Char] -> IO ()) -> [Char] -> IO ()
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_Write_Error -> [Char]
forall a. Show a => a -> [Char]
show BAM_V1_6_Write_Error
BAM_V1_6_Write_Error_No_Data
Just BAM_V1_6_BAM_BAMAlignments
bam_v1_6_bam_bamalignments' -> do
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_1 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_2 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_compression_method (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_header_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word32
bam_v1_6_gzip_header_modification_time (BAM_V1_6_GZipHeader -> Word32) -> BAM_V1_6_GZipHeader -> Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_extra_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_operating_system (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word16
bam_v1_6_gzip_header_extra_length (BAM_V1_6_GZipHeader -> Word16) -> BAM_V1_6_GZipHeader -> Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_one BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_two BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word16
bam_v1_6_bgzfblock_subfield_length BAM_V1_6_BGZFBlock
currentbgzfblock
let bam_v1_6_bam_bamalignments'' :: Seq ByteString
bam_v1_6_bam_bamalignments'' = (BAM_V1_6_BAM_Alignment -> ByteString)
-> Seq BAM_V1_6_BAM_Alignment -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\BAM_V1_6_BAM_Alignment
currentbamalignmentrecord -> do
let preoptionalfields :: ByteString
preoptionalfields = ( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word32
bam_v1_6_bam_alignment_block_size BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Int32
bam_v1_6_bam_alignment_refID BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Int32
bam_v1_6_bam_alignment_pos BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word8
bam_v1_6_bam_alignment_l_read_name BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word8
bam_v1_6_bam_alignment_mapq BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word16
bam_v1_6_bam_alignment_bin BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word16
bam_v1_6_bam_alignment_n_cigar_op BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word16
bam_v1_6_bam_alignment_flag BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Word32
bam_v1_6_bam_alignment_l_seq BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Int32
bam_v1_6_bam_alignment_next_refID BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Int32
bam_v1_6_bam_alignment_next_pos BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Int32
bam_v1_6_bam_alignment_tlen BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
BAM_V1_6_BAM_Alignment -> ByteString
bam_v1_6_bam_alignment_read_name BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (Seq ByteString -> [ByteString]) -> Seq ByteString -> [ByteString]
forall a b. (a -> b) -> a -> b
$
(Word32 -> ByteString) -> Seq Word32 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Word32
currentcigar ->
Word32 -> ByteString
word32ToByteStringLE Word32
currentcigar
)
(BAM_V1_6_BAM_Alignment -> Seq Word32
bam_v1_6_bam_alignment_cigar BAM_V1_6_BAM_Alignment
currentbamalignmentrecord)
)
ByteString -> ByteString -> ByteString
`DB.append`
( [Word8] -> ByteString
encodeSeqField ([Word8] -> ByteString) -> [Word8] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq Word8 -> [Word8]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (Seq Word8 -> [Word8]) -> Seq Word8 -> [Word8]
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment -> Seq Word8
bam_v1_6_bam_alignment_seq BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment -> ByteString
bam_v1_6_bam_alignment_qual BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
let optionalfields :: ByteString
optionalfields = [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (Seq ByteString -> [ByteString]) -> Seq ByteString -> [ByteString]
forall a b. (a -> b) -> a -> b
$
(BAM_V1_6_BAM_Alignment_OptionalFields -> ByteString)
-> Seq BAM_V1_6_BAM_Alignment_OptionalFields -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield -> do
let optionalfieldsl :: [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl = [ case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
bam_v1_6_bam_alignment_optionalfields_aopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
AOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
bam_v1_6_bam_alignment_optionalfields_smallcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallCOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
bam_v1_6_bam_alignment_optionalfields_bigcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigCOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
bam_v1_6_bam_alignment_optionalfields_smalliopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallIOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
bam_v1_6_bam_alignment_optionalfields_bigiopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigIOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
bam_v1_6_bam_alignment_optionalfields_smallsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallSOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
bam_v1_6_bam_alignment_optionalfields_bigsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigSOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
bam_v1_6_bam_alignment_optionalfields_fopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
FOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
bam_v1_6_bam_alignment_optionalfields_zopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
ZOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
bam_v1_6_bam_alignment_optionalfields_hopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
HOPT
, case ( BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BOPT
] :: [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
if | BAM_V1_6_BAM_Alignment_OptionalFields_SumType
AOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_aopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
bam_v1_6_bam_alignment_optionalfields_aopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x41
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> Word8
bam_v1_6_bam_alignment_optionalfields_aopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT -> Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_AOPT
bam_v1_6_bam_alignment_optionalfields_aopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallCOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_smallcopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
bam_v1_6_bam_alignment_optionalfields_smallcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x63
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int8 -> ByteString
int8ToByteString (Int8 -> ByteString) -> Int8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> Int8
bam_v1_6_bam_alignment_optionalfields_smallcopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT -> Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallCOPT
bam_v1_6_bam_alignment_optionalfields_smallcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigCOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_bigcopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
bam_v1_6_bam_alignment_optionalfields_bigcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x43
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> Word8
bam_v1_6_bam_alignment_optionalfields_bigcopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT -> Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigCOPT
bam_v1_6_bam_alignment_optionalfields_bigcopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallIOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_smalliopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
bam_v1_6_bam_alignment_optionalfields_smalliopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x69
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int32 -> ByteString
int32ToByteStringLE (Int32 -> ByteString) -> Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> Int32
bam_v1_6_bam_alignment_optionalfields_smalliopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT -> Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallIOPT
bam_v1_6_bam_alignment_optionalfields_smalliopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigIOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_bigiopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
bam_v1_6_bam_alignment_optionalfields_bigiopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x49
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> Word32
bam_v1_6_bam_alignment_optionalfields_bigiopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigIOPT
bam_v1_6_bam_alignment_optionalfields_bigiopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
SmallSOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_smallsopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
bam_v1_6_bam_alignment_optionalfields_smallsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x73
)
ByteString -> ByteString -> ByteString
`DB.append`
( Int16 -> ByteString
int16ToByteStringLE (Int16 -> ByteString) -> Int16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> Int16
bam_v1_6_bam_alignment_optionalfields_smallsopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT -> Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_SmallSOPT
bam_v1_6_bam_alignment_optionalfields_smallsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BigSOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_bigsopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
bam_v1_6_bam_alignment_optionalfields_bigsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x53
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> Word16
bam_v1_6_bam_alignment_optionalfields_bigsopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT -> Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BigSOPT
bam_v1_6_bam_alignment_optionalfields_bigsopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
FOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_fopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
bam_v1_6_bam_alignment_optionalfields_fopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x66
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> Word32
bam_v1_6_bam_alignment_optionalfields_fopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_FOPT
bam_v1_6_bam_alignment_optionalfields_fopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
ZOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_zopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
bam_v1_6_bam_alignment_optionalfields_zopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x5A
)
ByteString -> ByteString -> ByteString
`DB.append`
( [Word8] -> ByteString
DB.pack ([Word8] -> ByteString) -> [Word8] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq Word8 -> [Word8]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (Seq Word8 -> [Word8]) -> Seq Word8 -> [Word8]
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> Seq Word8
bam_v1_6_bam_alignment_optionalfields_zopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> Seq Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT -> Seq Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_ZOPT
bam_v1_6_bam_alignment_optionalfields_zopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x00
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
HOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> ByteString
bam_v1_6_bam_alignment_optionalfields_hopt_tag (BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
bam_v1_6_bam_alignment_optionalfields_hopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x48
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (ByteString -> ByteString) -> Seq ByteString -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\ByteString
currenthexvalue ->
case ( ByteString -> Bool
DBB16.isBase16 ( Base16 ByteString -> ByteString
forall a. Base16 a -> a
DBB16T.extractBase16 (Base16 ByteString -> ByteString)
-> Base16 ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> Base16 ByteString
DBB16.encodeBase16' ByteString
currenthexvalue
)
) of
Bool
False ->
[Char] -> ByteString
forall a. HasCallStack => [Char] -> a
error ([Char] -> ByteString) -> [Char] -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_Write_Error -> [Char]
forall a. Show a => a -> [Char]
show BAM_V1_6_Write_Error
BAM_V1_6_Write_Error_HOPT_Incorrect_Format
Bool
True ->
Base16 ByteString -> ByteString
forall a. Base16 a -> a
DBB16T.extractBase16 (Base16 ByteString -> ByteString)
-> Base16 ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> Base16 ByteString
DBB16.encodeBase16' ByteString
currenthexvalue
)
( BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> Seq ByteString
bam_v1_6_bam_alignment_optionalfields_hopt_value (BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> Seq ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT -> Seq ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_HOPT
bam_v1_6_bam_alignment_optionalfields_hopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x00
)
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
BOPT BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> do
let optionalfieldsboptl :: [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl = [ case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt8
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord8
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt16
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord16
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt32
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord32
, case ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
bam_v1_6_bam_alignment_optionalfields_bopt_float (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
) of
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
Nothing ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty
Just BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
_ ->
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTFloat
] :: [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
if | BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt8 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int8_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int8_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_int8_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Int8 -> ByteString) -> Seq Int8 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Int8
currentint8value ->
Int8 -> ByteString
int8ToByteString Int8
currentint8value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Seq Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Seq Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8 -> Seq Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
bam_v1_6_bam_alignment_optionalfields_bopt_int8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord8 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word8_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word8_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word8_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Word8 -> ByteString) -> Seq Word8 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Word8
currentword8value ->
Word8 -> ByteString
DB.singleton Word8
currentword8value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Seq Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Seq Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8 -> Seq Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
bam_v1_6_bam_alignment_optionalfields_bopt_word8 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word8
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt16 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int16_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int16_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_int16_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Int16 -> ByteString) -> Seq Int16 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Int16
currentint16value ->
Int16 -> ByteString
int16ToByteStringLE Int16
currentint16value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Seq Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Seq Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16 -> Seq Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
bam_v1_6_bam_alignment_optionalfields_bopt_int16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord16 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word16_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word16_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word16_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Word16 -> ByteString) -> Seq Word16 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Word16
currentword16value ->
Word16 -> ByteString
word16ToByteStringLE Word16
currentword16value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Seq Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Seq Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16 -> Seq Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
bam_v1_6_bam_alignment_optionalfields_bopt_word16 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word16
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTInt32 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int32_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_int32_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_int32_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Int32 -> ByteString) -> Seq Int32 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Int32
currentint32value ->
Int32 -> ByteString
int32ToByteStringLE Int32
currentint32value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Seq Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Seq Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32 -> Seq Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
bam_v1_6_bam_alignment_optionalfields_bopt_int32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Int32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTWord32 BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word32_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_word32_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Word32 -> ByteString) -> Seq Word32 -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Word32
currentword32value ->
Word32 -> ByteString
word32ToByteStringLE Word32
currentword32value
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Seq Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Seq Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32 -> Seq Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
bam_v1_6_bam_alignment_optionalfields_bopt_word32 (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTFloat BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_float_tag (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
bam_v1_6_bam_alignment_optionalfields_bopt_float (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word8 -> ByteString
DB.singleton Word8
0x42
)
ByteString -> ByteString -> ByteString
`DB.append`
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString
bam_v1_6_bam_alignment_optionalfields_bopt_float_type (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> ByteString
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
bam_v1_6_bam_alignment_optionalfields_bopt_float (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Word32
bam_v1_6_bam_alignment_optionalfields_bopt_float_count (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Word32)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Word32
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
bam_v1_6_bam_alignment_optionalfields_bopt_float (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
ByteString -> ByteString -> ByteString
`DB.append`
( [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList
( (Float -> ByteString) -> Seq Float -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Float
currentfloatvalue ->
Float -> ByteString
floatToByteStringLE Float
currentfloatvalue
)
( BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Seq Float
bam_v1_6_bam_alignment_optionalfields_bopt_float_value (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Seq Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float -> Seq Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
bam_v1_6_bam_alignment_optionalfields_bopt_float (BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float)
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_Float
forall a b. (a -> b) -> a -> b
$
Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT)
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
-> BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Alignment_OptionalFields
-> Maybe BAM_V1_6_BAM_Alignment_OptionalFields_BOPT
bam_v1_6_bam_alignment_optionalfields_bopt
BAM_V1_6_BAM_Alignment_OptionalFields
currentbamalignmentoptionalfield
)
)
)
| BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
BOPTEmpty BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_BOPT_SumType]
optionalfieldsboptl
-> ByteString
DB.empty
| Bool
otherwise
-> ByteString
DB.empty
| BAM_V1_6_BAM_Alignment_OptionalFields_SumType
Empty BAM_V1_6_BAM_Alignment_OptionalFields_SumType
-> [BAM_V1_6_BAM_Alignment_OptionalFields_SumType] -> Bool
forall a. Eq a => a -> [a] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`DL.elem` [BAM_V1_6_BAM_Alignment_OptionalFields_SumType]
optionalfieldsl
-> ByteString
DB.empty
| Bool
otherwise
-> ByteString
DB.empty
)
( BAM_V1_6_BAM_Alignment -> Seq BAM_V1_6_BAM_Alignment_OptionalFields
bam_v1_6_bam_alignment_optionalfields BAM_V1_6_BAM_Alignment
currentbamalignmentrecord
)
ByteString
preoptionalfields ByteString -> ByteString -> ByteString
`DB.append` ByteString
optionalfields
)
( BAM_V1_6_BAM_BAMAlignments -> Seq BAM_V1_6_BAM_Alignment
bam_v1_6_bam_bamalignments_alignments BAM_V1_6_BAM_BAMAlignments
bam_v1_6_bam_bamalignments'
)
let bam_v1_6_bam_bamalignments''' :: ByteString
bam_v1_6_bam_bamalignments''' = ByteString -> ByteString
DB.toStrict (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> ByteString
CCZlibR.compress (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> ByteString
DB.fromStrict (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
[ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList Seq ByteString
bam_v1_6_bam_bamalignments''
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Int -> Word16
intToWord16LE ((ByteString -> Int
DB.length ByteString
bam_v1_6_bam_bamalignments''' Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
26) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1)
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h
ByteString
bam_v1_6_bam_bamalignments'''
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> Word32
forall a. CRC32 a => a -> Word32
DDCRC32.crc32 (ByteString -> Word32) -> ByteString -> Word32
forall a b. (a -> b) -> a -> b
$
[ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList Seq ByteString
bam_v1_6_bam_bamalignments''
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Int -> Word32
intToWord32LE (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$
ByteString -> Int
DB.length (ByteString -> Int) -> ByteString -> Int
forall a b. (a -> b) -> a -> b
$
[ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList Seq ByteString
bam_v1_6_bam_bamalignments''
Just BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader' -> do
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_1 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_gzip_identifier_2 (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_compression_method (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_header_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word32
bam_v1_6_gzip_header_modification_time (BAM_V1_6_GZipHeader -> Word32) -> BAM_V1_6_GZipHeader -> Word32
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_extra_flags (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word8
bam_v1_6_gzip_header_operating_system (BAM_V1_6_GZipHeader -> Word8) -> BAM_V1_6_GZipHeader -> Word8
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_GZipHeader -> Word16
bam_v1_6_gzip_header_extra_length (BAM_V1_6_GZipHeader -> Word16) -> BAM_V1_6_GZipHeader -> Word16
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> BAM_V1_6_GZipHeader
bam_v1_6_bgzfblock_gzip_header BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_one BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word8 -> ByteString
DB.singleton (Word8 -> ByteString) -> Word8 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word8
bam_v1_6_bgzfblock_subfield_identifier_two BAM_V1_6_BGZFBlock
currentbgzfblock
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BGZFBlock -> Word16
bam_v1_6_bgzfblock_subfield_length BAM_V1_6_BGZFBlock
currentbgzfblock
let bam_v1_6_bam_bamheader'' :: ByteString
bam_v1_6_bam_bamheader'' = BAM_V1_6_BAM_BAMHeader -> ByteString
bam_v1_6_bam_bamheader_magic BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader'
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_BAMHeader -> Word32
bam_v1_6_bam_bamheader_l_text BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader'
)
ByteString -> ByteString -> ByteString
`DB.append`
BAM_V1_6_BAM_BAMHeader -> ByteString
bam_v1_6_bam_bamheader_text BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader'
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_BAMHeader -> Word32
bam_v1_6_bam_bamheader_n_ref BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader'
)
let bam_v1_6_bam_bamheader_reference_information' :: ByteString
bam_v1_6_bam_bamheader_reference_information' = [ByteString] -> ByteString
DB.concat ([ByteString] -> ByteString) -> [ByteString] -> ByteString
forall a b. (a -> b) -> a -> b
$
Seq ByteString -> [ByteString]
forall a. Seq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (Seq ByteString -> [ByteString]) -> Seq ByteString -> [ByteString]
forall a b. (a -> b) -> a -> b
$
(BAM_V1_6_BAM_Reference_Information -> ByteString)
-> Seq BAM_V1_6_BAM_Reference_Information -> Seq ByteString
forall a b. (a -> b) -> Seq a -> Seq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\BAM_V1_6_BAM_Reference_Information
currentreferenceinformation ->
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Reference_Information -> Word32
bam_v1_6_bam_reference_information_l_name BAM_V1_6_BAM_Reference_Information
currentreferenceinformation
)
ByteString -> ByteString -> ByteString
`DB.append`
BAM_V1_6_BAM_Reference_Information -> ByteString
bam_v1_6_bam_reference_information_name BAM_V1_6_BAM_Reference_Information
currentreferenceinformation
ByteString -> ByteString -> ByteString
`DB.append`
( Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
BAM_V1_6_BAM_Reference_Information -> Word32
bam_v1_6_bam_reference_information_l_ref BAM_V1_6_BAM_Reference_Information
currentreferenceinformation
)
)
(BAM_V1_6_BAM_BAMHeader -> Seq BAM_V1_6_BAM_Reference_Information
bam_v1_6_bam_bamheader_reference_information BAM_V1_6_BAM_BAMHeader
bam_v1_6_bam_bamheader')
let bam_v1_6_bam_bamheader''' :: ByteString
bam_v1_6_bam_bamheader''' = ByteString -> ByteString
DB.toStrict (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> ByteString
CCZlibR.compress (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> ByteString
DB.fromStrict (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString
bam_v1_6_bam_bamheader''
ByteString -> ByteString -> ByteString
`DB.append`
ByteString
bam_v1_6_bam_bamheader_reference_information'
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word16 -> ByteString
word16ToByteStringLE (Word16 -> ByteString) -> Word16 -> ByteString
forall a b. (a -> b) -> a -> b
$
Int -> Word16
intToWord16LE ((ByteString -> Int
DB.length ByteString
bam_v1_6_bam_bamheader''' Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
26) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1)
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h
ByteString
bam_v1_6_bam_bamheader'''
()
_ <-
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
ByteString -> Word32
forall a. CRC32 a => a -> Word32
DDCRC32.crc32 (ByteString -> Word32) -> ByteString -> Word32
forall a b. (a -> b) -> a -> b
$
ByteString
bam_v1_6_bam_bamheader''
ByteString -> ByteString -> ByteString
`DB.append`
ByteString
bam_v1_6_bam_bamheader_reference_information'
Handle -> ByteString -> IO ()
DB.hPutStr Handle
h (ByteString -> IO ()) -> ByteString -> IO ()
forall a b. (a -> b) -> a -> b
$
Word32 -> ByteString
word32ToByteStringLE (Word32 -> ByteString) -> Word32 -> ByteString
forall a b. (a -> b) -> a -> b
$
Int -> Word32
intToWord32LE (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$
ByteString -> Int
DB.length (ByteString -> Int) -> ByteString -> Int
forall a b. (a -> b) -> a -> b
$
ByteString
bam_v1_6_bam_bamheader''
ByteString -> ByteString -> ByteString
`DB.append`
ByteString
bam_v1_6_bam_bamheader_reference_information'
writeBAM_V1_6 :: FilePath
-> BAM_V1_6
-> IO ()
writeBAM_V1_6 :: [Char] -> BAM_V1_6 -> IO ()
writeBAM_V1_6 [Char]
fp BAM_V1_6
bamv16 = do
Handle
h <- [Char] -> IOMode -> IO Handle
openBinaryFile [Char]
fp
IOMode
WriteMode
Handle -> BAM_V1_6 -> IO ()
deconstructBAM_V1_6 Handle
h
BAM_V1_6
bamv16
Handle -> IO ()
hFlush Handle
h
Handle -> IO ()
hClose Handle
h