{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PackageImports #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# Language QuasiQuotes #-} -- | -- Module : Data.SAM.Version1_6.Header.PG -- Copyright : (c) Matthew Mosior 2023 -- License : BSD-style -- Maintainer : mattm.github@gmail.com -- Portability : portable -- -- = WARNING -- -- This module is considered __internal__. -- -- The Package Versioning Policy __does not apply__. -- -- The contents of this module may change __in any way whatsoever__ -- and __without any warning__ between minor versions of this package. -- -- Authors importing this library are expected to track development -- closely. -- -- All credit goes to the author(s)/maintainer(s) of the -- [containers](https://hackage.haskell.org/package/containers) library -- for the above warning text. -- -- = Description -- -- This library enables the decoding/encoding of SAM, BAM and CRAM file formats. module Data.SAM.Version1_6.Header.PG ( -- * SAM version 1.6 program data type SAM_V1_6_Program(..), -- * SAM version 1.6 program data types SAM_V1_6_Program_Record_Identifier(..), SAM_V1_6_Program_Name(..), SAM_V1_6_Program_Command_Line(..), SAM_V1_6_Program_Previous_PG_ID(..), SAM_V1_6_Program_Description(..), SAM_V1_6_Program_Version(..) ) where import Data.ByteString import Data.Sequence import Data.Word -- | Custom SAM (version 1.6) @"SAM_V1_6_Program"@ data type. -- See section 1.3 of the [SAM v1.6](http://samtools.github.io/hts-specs/SAMv1.pdf) specification documentation. data SAM_V1_6_Program = SAM_V1_6_Program { sam_v1_6_program_record_identifier :: SAM_V1_6_Program_Record_Identifier , sam_v1_6_program_name :: Maybe SAM_V1_6_Program_Name , sam_v1_6_program_command_line :: Maybe SAM_V1_6_Program_Command_Line , sam_v1_6_program_previous_pg_id :: Maybe SAM_V1_6_Program_Previous_PG_ID , sam_v1_6_program_description :: Maybe SAM_V1_6_Program_Description , sam_v1_6_program_version :: Maybe SAM_V1_6_Program_Version } -- | ID tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Record_Identifier = SAM_V1_6_Program_Record_Identifier { sam_v1_6_program_record_identifier_tag :: Seq Word8 , sam_v1_6_program_record_identifier_value :: ByteString } -- | PN tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Name = SAM_V1_6_Program_Name { sam_v1_6_program_name_tag :: Seq Word8 , sam_v1_6_program_name_value :: ByteString } -- | CL tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Command_Line = SAM_V1_6_Program_Command_Line { sam_v1_6_program_command_line_tag :: Seq Word8 , sam_v1_6_program_command_line_value :: ByteString } -- | PP tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Previous_PG_ID = SAM_V1_6_Program_Previous_PG_ID { sam_v1_6_program_previous_pg_id_tag :: Seq Word8 , sam_v1_6_program_previous_pg_id_value :: ByteString } -- | DS tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Description = SAM_V1_6_Program_Description { sam_v1_6_program_description_tag :: Seq Word8 , sam_v1_6_program_description_value :: ByteString } -- | VN tag for @"SAM_V1_6_Program"@. data SAM_V1_6_Program_Version = SAM_V1_6_Program_Version { sam_v1_6_program_version_tag :: Seq Word8 , sam_v1_6_program_version_value :: ByteString }