hs-samtools-0.8.0.0: src/Data/SAM/Version1_6/Header/SQ.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
-- |
-- Module : Data.SAM.Version1_6.Header.SQ
-- Copyright : (c) Matthew Mosior 2023
-- License : BSD-style
-- Maintainer : mattm.github@gmail.com
-- Portability : portable
--
-- = Description
--
-- This library enables the decoding/encoding of SAM, BAM and CRAM file formats.
module Data.SAM.Version1_6.Header.SQ ( -- * SAM version 1.6 Reference sequence dictionary data type
SAM_V1_6_Reference_Sequence_Dictionary(..),
-- * SAM version 1.6 Reference sequence dictionary data types
SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name(..),
SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length(..),
SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus(..),
SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names(..),
SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier(..),
SAM_V1_6_Reference_Sequence_Dictionary_Description(..),
SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum(..),
SAM_V1_6_Reference_Sequence_Dictionary_Species(..),
SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology(..),
SAM_V1_6_Reference_Sequence_Dictionary_URI(..)
) where
import Data.ByteString
import Data.Data
import Generics.Deriving.Base
-- | Custom SAM (version 1.6) @"SAM_V1_6_Reference_Sequence_Dictionary"@ 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_Reference_Sequence_Dictionary = SAM_V1_6_Reference_Sequence_Dictionary { sam_v1_6_reference_sequence_dictionary_reference_sequence_name :: SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name
, sam_v1_6_reference_sequence_dictionary_reference_sequence_length :: SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length
, sam_v1_6_reference_sequence_dictionary_alternative_locus :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus
, sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names
, sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier
, sam_v1_6_reference_sequence_dictionary_description :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Description
, sam_v1_6_reference_sequence_dictionary_md5_checksum :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum
, sam_v1_6_reference_sequence_dictionary_species :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Species
, sam_v1_6_reference_sequence_dictionary_molecule_topology :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology
, sam_v1_6_reference_sequence_dictionary_uri :: Maybe SAM_V1_6_Reference_Sequence_Dictionary_URI
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary where
SAM_V1_6_Reference_Sequence_Dictionary sam_v1_6_reference_sequence_dictionary_reference_sequence_name1
sam_v1_6_reference_sequence_dictionary_reference_sequence_length1
sam_v1_6_reference_sequence_dictionary_reference_alternative_locus1
sam_v1_6_reference_sequence_dictionary_reference_alternative_reference_sequence_names1
sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier1
sam_v1_6_reference_sequence_dictionary_description1
sam_v1_6_reference_sequence_dictionary_md5_checksum1
sam_v1_6_reference_sequence_dictionary_species1
sam_v1_6_reference_sequence_dictionary_molecule_topology1
sam_v1_6_reference_sequence_dictionary_uri1 == SAM_V1_6_Reference_Sequence_Dictionary sam_v1_6_reference_sequence_dictionary_reference_sequence_name2
sam_v1_6_reference_sequence_dictionary_reference_sequence_length2
sam_v1_6_reference_sequence_dictionary_reference_alternative_locus2
sam_v1_6_reference_sequence_dictionary_reference_alternative_reference_sequence_names2
sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier2
sam_v1_6_reference_sequence_dictionary_description2
sam_v1_6_reference_sequence_dictionary_md5_checksum2
sam_v1_6_reference_sequence_dictionary_species2
sam_v1_6_reference_sequence_dictionary_molecule_topology2
sam_v1_6_reference_sequence_dictionary_uri2 = sam_v1_6_reference_sequence_dictionary_reference_sequence_name1 == sam_v1_6_reference_sequence_dictionary_reference_sequence_name2 &&
sam_v1_6_reference_sequence_dictionary_reference_sequence_length1 == sam_v1_6_reference_sequence_dictionary_reference_sequence_length2 &&
sam_v1_6_reference_sequence_dictionary_reference_alternative_locus1 == sam_v1_6_reference_sequence_dictionary_reference_alternative_locus2 &&
sam_v1_6_reference_sequence_dictionary_reference_alternative_reference_sequence_names1 == sam_v1_6_reference_sequence_dictionary_reference_alternative_reference_sequence_names2 &&
sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier1 == sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier2 &&
sam_v1_6_reference_sequence_dictionary_description1 == sam_v1_6_reference_sequence_dictionary_description2 &&
sam_v1_6_reference_sequence_dictionary_md5_checksum1 == sam_v1_6_reference_sequence_dictionary_md5_checksum2 &&
sam_v1_6_reference_sequence_dictionary_species1 == sam_v1_6_reference_sequence_dictionary_species2 &&
sam_v1_6_reference_sequence_dictionary_molecule_topology1 == sam_v1_6_reference_sequence_dictionary_molecule_topology2 &&
sam_v1_6_reference_sequence_dictionary_uri1 == sam_v1_6_reference_sequence_dictionary_uri2
instance Show SAM_V1_6_Reference_Sequence_Dictionary where
show (SAM_V1_6_Reference_Sequence_Dictionary reference_sequence_name
reference_sequence_length
reference_alternative_locus
reference_alternative_sequence_names
genome_assembly_identifier
description
md5_checksum
species
molecule_topology
uri
) =
"SAM_V1_6_Reference_Sequence_Dictionary { " ++
"sam_v1_6_reference_sequence_dictionary_reference_sequence_name = " ++
(show reference_sequence_name) ++
" , sam_v1_6_reference_sequence_dictionary_reference_sequence_length = " ++
(show reference_sequence_length) ++
" , sam_v1_6_reference_sequence_dictionary_alternative_locus = " ++
(show reference_alternative_locus) ++
" , sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names = " ++
(show reference_alternative_sequence_names) ++
" , sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier = " ++
(show genome_assembly_identifier) ++
" , sam_v1_6_reference_sequence_dictionary_description = " ++
(show description) ++
" , sam_v1_6_reference_sequence_dictionary_md5_checksum = " ++
(show md5_checksum) ++
" , sam_v1_6_reference_sequence_dictionary_species = " ++
(show species) ++
" , sam_v1_6_reference_sequence_dictionary_molecule_topology = " ++
(show molecule_topology) ++
" , sam_v1_6_reference_sequence_dictionary_uri = " ++
(show uri) ++
" }"
-- | SN tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name = SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name { sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name where
SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value2 = sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value1 == sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name where
show (SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Name { " ++
"sam_v1_6_reference_sequence_dictionary_reference_sequence_name_value = " ++
(show value) ++
" }"
-- | LN tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length = SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length { sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length where
SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value2 = sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value1 == sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length where
show (SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Reference_Sequence_Length { " ++
"sam_v1_6_reference_sequence_dictionary_reference_sequence_length_value = " ++
(show value) ++
" }"
-- | AH tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus = SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus { sam_v1_6_reference_sequence_dictionary_alternative_locus_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus where
SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus sam_v1_6_reference_sequence_dictionary_alternative_locus_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus sam_v1_6_reference_sequence_dictionary_alternative_locus_value2 = sam_v1_6_reference_sequence_dictionary_alternative_locus_value1 == sam_v1_6_reference_sequence_dictionary_alternative_locus_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus where
show (SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Locus { " ++
"sam_v1_6_reference_sequence_dictionary_alternative_locus_value = " ++
(show value) ++
" }"
-- | AN tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names = SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names { sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names where
SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value2 = sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value1 == sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names where
show (SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Alternative_Reference_Sequence_Names { " ++
"sam_v1_6_reference_sequence_dictionary_alternative_reference_sequence_names_value = " ++
(show value) ++
" }"
-- | AS tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier = SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier { sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier where
SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value2 = sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value1 == sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier where
show (SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Genome_Assembly_Identifier { " ++
"sam_v1_6_reference_sequence_dictionary_genome_assembly_identifier_value = " ++
(show value) ++
" }"
-- | DS tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Description = SAM_V1_6_Reference_Sequence_Dictionary_Description { sam_v1_6_reference_sequence_dictionary_description_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Description where
SAM_V1_6_Reference_Sequence_Dictionary_Description sam_v1_6_reference_sequence_dictionary_description_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Description sam_v1_6_reference_sequence_dictionary_description_value2 = sam_v1_6_reference_sequence_dictionary_description_value1 == sam_v1_6_reference_sequence_dictionary_description_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Description where
show (SAM_V1_6_Reference_Sequence_Dictionary_Description value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Description { " ++
"sam_v1_6_reference_sequence_dictionary_description_value = " ++
(show value) ++
" }"
-- | M5 tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum = SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum { sam_v1_6_reference_sequence_dictionary_md5_checksum_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum where
SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum sam_v1_6_reference_sequence_dictionary_md5_checksum_value1 == SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum sam_v1_6_reference_sequence_dictionary_md5_checksum_value2 = sam_v1_6_reference_sequence_dictionary_md5_checksum_value1 == sam_v1_6_reference_sequence_dictionary_md5_checksum_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum where
show (SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum value) =
"SAM_V1_6_Reference_Sequence_Dictionary_MD5_Checksum { " ++
"sam_v1_6_reference_sequence_dictionary_md5_checksum_value = " ++
(show value) ++
" }"
-- | SP tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Species = SAM_V1_6_Reference_Sequence_Dictionary_Species { sam_v1_6_reference_sequence_dictionary_species_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Species where
SAM_V1_6_Reference_Sequence_Dictionary_Species sam_v1_6_reference_sequence_dictionary_species_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Species sam_v1_6_reference_sequence_dictionary_species_value2 = sam_v1_6_reference_sequence_dictionary_species_value1 == sam_v1_6_reference_sequence_dictionary_species_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Species where
show (SAM_V1_6_Reference_Sequence_Dictionary_Species value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Species { " ++
"sam_v1_6_reference_sequence_dictionary_species_value = " ++
(show value) ++
" }"
-- | TP tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology = SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology { sam_v1_6_reference_sequence_dictionary_molecule_topology_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology where
SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology sam_v1_6_reference_sequence_dictionary_molecule_topology_value1 == SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology sam_v1_6_reference_sequence_dictionary_molecule_topology_value2 = sam_v1_6_reference_sequence_dictionary_molecule_topology_value1 == sam_v1_6_reference_sequence_dictionary_molecule_topology_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology where
show (SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology value) =
"SAM_V1_6_Reference_Sequence_Dictionary_Molecule_Topology { " ++
"sam_v1_6_reference_sequence_dictionary_molecule_topology_value = " ++
(show value) ++
" }"
-- | UR tag for @"SAM_V1_6_Reference_Sequence_Dictionary"@.
newtype SAM_V1_6_Reference_Sequence_Dictionary_URI = SAM_V1_6_Reference_Sequence_Dictionary_URI { sam_v1_6_reference_sequence_dictionary_uri_value :: ByteString
}
deriving (Generic,Typeable)
instance Eq SAM_V1_6_Reference_Sequence_Dictionary_URI where
SAM_V1_6_Reference_Sequence_Dictionary_URI sam_v1_6_reference_sequence_dictionary_uri_value1 == SAM_V1_6_Reference_Sequence_Dictionary_URI sam_v1_6_reference_sequence_dictionary_uri_value2 = sam_v1_6_reference_sequence_dictionary_uri_value1 == sam_v1_6_reference_sequence_dictionary_uri_value2
instance Show SAM_V1_6_Reference_Sequence_Dictionary_URI where
show (SAM_V1_6_Reference_Sequence_Dictionary_URI value) =
"SAM_V1_6_Reference_Sequence_Dictionary_URI { " ++
"sam_v1_6_reference_sequence_dictionary_uri_value = " ++
(show value) ++
" }"