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


-- | Libary for parsing Clustal tools output
--   
--   Currently contains parsers and datatypes for: clustalw2, clustalo,
--   mlocarna, cmalign
--   
--   Clustal tools are multiple sequence alignment tools for biological
--   sequence like DNA, RNA and Protein. For more information on clustal
--   Tools refer to <a>http://www.clustal.org/</a>.
--   
--   Mlocarna is a multiple sequence alignment tool for RNA sequences with
--   secondary structure output. For more information on mlocarna refer to
--   <a>http://www.bioinf.uni-freiburg.de/Software/LocARNA/</a>.
--   
--   Cmalign is a multiple sequence alignment program based on RNA family
--   models and produces ,among others, clustal output. It is part of
--   infernal <a>http://infernal.janelia.org/</a>.
@package ClustalParser
@version 1.2.1


-- | Parse Clustal output For more information on Clustal tools consult:
--   <a>http://www.clustal.org/</a>
module Bio.ClustalParser

-- | Parse Clustal alignment (.aln) from String
parseClustalAlignment :: String -> Either ParseError ClustalAlignment

-- | Parse Clustal alignment (.aln) from filehandle
readClustalAlignment :: String -> IO (Either ParseError ClustalAlignment)

-- | Parse Clustal alignment (.aln) with secondary structure in dot-bracket
--   notation from String (as produced by mlocarna)
parseStructuralClustalAlignment :: String -> Either ParseError StructuralClustalAlignment

-- | Parse Clustal alignment (.aln) with secondary structure in dot-bracket
--   notation from filehandle (as produced by mlocarna)
readStructuralClustalAlignment :: String -> IO (Either ParseError StructuralClustalAlignment)

-- | Parse Clustal summary (printed to STDOUT) from String
parseClustalSummary :: String -> Either ParseError ClustalSummary

-- | Parse Clustal summary (printed to STDOUT) from file
readClustalSummary :: String -> IO (Either ParseError ClustalSummary)

-- | Data type for clustal summary, containing information about the
--   alignment process, usually printed to STDOUT
data ClustalSummary
ClustalSummary :: Text -> Text -> [SequenceParameters] -> [PairwiseAlignmentSummary] -> Text -> Int -> [GroupSummary] -> Int -> Text -> ClustalSummary
[clustalw2version] :: ClustalSummary -> Text
[sequenceFormat] :: ClustalSummary -> Text
[parametersOfInputSequences] :: ClustalSummary -> [SequenceParameters]
[pairwiseAlignmentSummaries] :: ClustalSummary -> [PairwiseAlignmentSummary]
[guideTreeFileName] :: ClustalSummary -> Text
[groupNumber] :: ClustalSummary -> Int
[groupSummaries] :: ClustalSummary -> [GroupSummary]
[alignmentScore] :: ClustalSummary -> Int
[alignmentFileName] :: ClustalSummary -> Text
data SequenceParameters
SequenceParameters :: Int -> Text -> Int -> SequenceParameters
[inputSequenceIndex] :: SequenceParameters -> Int
[inputSequenceIdentifier] :: SequenceParameters -> Text
[inputSequenceLength] :: SequenceParameters -> Int
data PairwiseAlignmentSummary
PairwiseAlignmentSummary :: Int -> Int -> Int -> PairwiseAlignmentSummary
[firstSequenceIndex] :: PairwiseAlignmentSummary -> Int
[secondSequenceIndex] :: PairwiseAlignmentSummary -> Int
[pairwiseAlignmentScore] :: PairwiseAlignmentSummary -> Int
data GroupSummary
GroupSummary :: Int -> Maybe Int -> Maybe Int -> GroupSummary
[alignmentGroupIndex] :: GroupSummary -> Int
[numberOfAlignedSequences] :: GroupSummary -> Maybe Int
[groupScore] :: GroupSummary -> Maybe Int

-- | Data structure for Clustal alignment format
data ClustalAlignment
ClustalAlignment :: [ClustalAlignmentEntry] -> Text -> ClustalAlignment
[alignmentEntries] :: ClustalAlignment -> [ClustalAlignmentEntry]
[conservationTrack] :: ClustalAlignment -> Text
showAlignment :: Int -> Int -> Int -> [ClustalAlignmentEntry] -> Text -> String
showAlignmentBlock :: Int -> Int -> [ClustalAlignmentEntry] -> Text -> String
showAlignmentLine :: Int -> Int -> ClustalAlignmentEntry -> String
data ClustalAlignmentEntry
ClustalAlignmentEntry :: Text -> Text -> ClustalAlignmentEntry
[entrySequenceIdentifier] :: ClustalAlignmentEntry -> Text
[entryAlignedSequence] :: ClustalAlignmentEntry -> Text
data ClustalAlignmentSlice
ClustalAlignmentSlice :: [ClustalAlignmentEntrySlice] -> String -> ClustalAlignmentSlice
[entrySlices] :: ClustalAlignmentSlice -> [ClustalAlignmentEntrySlice]
[conservationTrackSlice] :: ClustalAlignmentSlice -> String
data ClustalAlignmentEntrySlice
ClustalAlignmentEntrySlice :: String -> String -> Int -> ClustalAlignmentEntrySlice
[entrySequenceSliceIdentifier] :: ClustalAlignmentEntrySlice -> String
[entryAlignedSliceSequence] :: ClustalAlignmentEntrySlice -> String
[spacerLength] :: ClustalAlignmentEntrySlice -> Int

-- | Data structure for structural Clustal alignment format
data StructuralClustalAlignment
StructuralClustalAlignment :: [ClustalAlignmentEntry] -> Text -> Double -> StructuralClustalAlignment
[structuralAlignmentEntries] :: StructuralClustalAlignment -> [ClustalAlignmentEntry]
[secondaryStructureTrack] :: StructuralClustalAlignment -> Text
[energy] :: StructuralClustalAlignment -> Double
data StructuralClustalAlignmentEntrySlice
StructuralClustalAlignmentEntrySlice :: String -> String -> StructuralClustalAlignmentEntrySlice
[structuralEntrySequenceSliceIdentifier] :: StructuralClustalAlignmentEntrySlice -> String
[structuralEntryAlignedSliceSequence] :: StructuralClustalAlignmentEntrySlice -> String
