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


-- | Libary for parsing ViennaRNA package output
--   
--   Currently contains parsers and datatypes for: RNAalifold, RNAcode,
--   RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz.
--   
--   For more information on the ViennaRNA package refer to
--   <a>http://www.tbi.univie.ac.at/RNA/</a>.
--   
--   The libary is tested with Version 2.3.2 of the ViennaRNA package.
@package ViennaRNAParser
@version 1.3.2


-- | Library with auxiliary functions needed in multiple other modules.
module Bio.ViennaRNAParserLibrary

-- | Parse nucleotide sequence. Allowed letters according to IUPAC
parseNucleotideSequence :: GenParser Char st String

-- | Parse nucleotide alignment entry. Allowed letters according to IUPAC
--   and commonly used gap characters
parseNucleotideAlignmentEntry :: GenParser Char st String

-- | Parse protein amino acid code sequence. Allowed letters according to
--   IUPAC
parseProteinSequence :: GenParser Char st String

-- | Parse protein amino acid code alignment entry. Allowed letters
--   according to IUPAC and commonly used gap characters
parseProteinAlignmentEntry :: GenParser Char st String
readInt :: String -> Int
readDouble :: String -> Double


-- | This module contains a hierarchical data structure for RNAz output For
--   more information on RNAz consult:
--   <a>http://www.tbi.univie.ac.at/~wash/RNAz/</a>
module Bio.RNAzData

-- | All elements of RNAz output are contained in this datatype
data RNAz
RNAz :: String -> Int -> Int -> String -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> String -> String -> Double -> Double -> String -> [RNAzResult] -> RNAzConsensus -> RNAz
[version] :: RNAz -> String
[sequenceNumber] :: RNAz -> Int
[columnNumber] :: RNAz -> Int
[readingDirection] :: RNAz -> String
[meanPairwiseIdentity] :: RNAz -> Double
[shannonEntropy] :: RNAz -> Double
[gcContent] :: RNAz -> Double
[meanSingleSequenceMinimumFreeEnergy] :: RNAz -> Double
[consensusMinimumFreeEnergy] :: RNAz -> Double
[energyContribution] :: RNAz -> Double
[covarianceContribution] :: RNAz -> Double
[combinationsPair] :: RNAz -> Double
[meanZScore] :: RNAz -> Double
[structureConservationIndex] :: RNAz -> Double
[backgroundModel] :: RNAz -> String
[decisionModel] :: RNAz -> String
[svmDecisionValue] :: RNAz -> Double
[svmRNAClassProbability] :: RNAz -> Double
[prediction] :: RNAz -> String
[rnazResults] :: RNAz -> [RNAzResult]
[rnazConsensus] :: RNAz -> RNAzConsensus

-- | Datatype contains all result elements for each member of the input
--   alignment
data RNAzResult
RNAzResult :: String -> String -> String -> Double -> Double -> Char -> RNAzResult
[header] :: RNAzResult -> String
[resultSequence] :: RNAzResult -> String
[dotBracket] :: RNAzResult -> String
[minimumFreeEnergy] :: RNAzResult -> Double
[zScore] :: RNAzResult -> Double
[zscoreCalculationApproach] :: RNAzResult -> Char

-- | Datatype contains all elements for the consenus result of input
--   alignment
data RNAzConsensus
RNAzConsensus :: String -> String -> RNAzConsensus
[consensusSequence] :: RNAzConsensus -> String
[consensusDotBracket] :: RNAzConsensus -> String
instance GHC.Classes.Eq Bio.RNAzData.RNAz
instance GHC.Show.Show Bio.RNAzData.RNAz
instance GHC.Classes.Eq Bio.RNAzData.RNAzConsensus
instance GHC.Show.Show Bio.RNAzData.RNAzConsensus
instance GHC.Classes.Eq Bio.RNAzData.RNAzResult
instance GHC.Show.Show Bio.RNAzData.RNAzResult


-- | Parse RNAz output For more information on RNAz consult:
--   &lt;<a>http://www.tbi.univie.ac.at/~wash/RNAz</a>
module Bio.RNAzParser

-- | Run external RNAz command and read the output into the corresponding
--   datatype
systemRNAz :: String -> String -> String -> IO ExitCode

-- | parse RNAz from input string
parseRNAz :: [Char] -> Either ParseError RNAz

-- | parse from input filePath
readRNAz :: String -> IO (Either ParseError RNAz)


-- | This module contains a data structure for RNAup output For more
--   information on RNAup consult:
--   <a>http://www.tbi.univie.ac.at/RNA/RNAup.html</a>
module Bio.RNAupData

-- | Data structure for individual interaction between a target and query
--   nucleic acid seqence, contains all (sub)-optimal interactions
data RNAupInteraction
RNAupInteraction :: String -> String -> [RNAupInteractionRegion] -> RNAupInteraction
[upQueryIdentifier] :: RNAupInteraction -> String
[upTargetIdentifier] :: RNAupInteraction -> String
[upInteractions] :: RNAupInteraction -> [RNAupInteractionRegion]

-- | Data structure for (sub-) optimal interaction region
data RNAupInteractionRegion
RNAupInteractionRegion :: String -> Int -> Int -> Int -> Int -> Double -> Maybe Double -> Maybe Double -> Maybe Double -> String -> String -> Maybe String -> RNAupInteractionRegion
[upSecondaryStructure] :: RNAupInteractionRegion -> String
[upQueryDuplexBegin] :: RNAupInteractionRegion -> Int
[upQueryDuplexEnd] :: RNAupInteractionRegion -> Int
[upTargetDuplexBegin] :: RNAupInteractionRegion -> Int
[upTargetDuplexEnd] :: RNAupInteractionRegion -> Int
[upDuplexEnergy] :: RNAupInteractionRegion -> Double
[upDuplexEnergyWithoutAccessiblity] :: RNAupInteractionRegion -> Maybe Double
[upQueryAccessiblity] :: RNAupInteractionRegion -> Maybe Double
[upTargetAccessibility] :: RNAupInteractionRegion -> Maybe Double
[upQuerySequence] :: RNAupInteractionRegion -> String
[upTargetSequence] :: RNAupInteractionRegion -> String
[upOutputFileName] :: RNAupInteractionRegion -> Maybe String
instance GHC.Classes.Eq Bio.RNAupData.RNAupInteraction
instance GHC.Show.Show Bio.RNAupData.RNAupInteraction
instance GHC.Classes.Eq Bio.RNAupData.RNAupInteractionRegion
instance GHC.Show.Show Bio.RNAupData.RNAupInteractionRegion


-- | Parse RNAup interaction_first output For more information on RNAup
--   consult: <a>http://www.tbi.univie.ac.at/RNA/RNAup.html</a>
module Bio.RNAupParser

-- | parse RNAupOutput from input string
parseRNAup :: [Char] -> Either ParseError [RNAupInteraction]

-- | parse from input filePath
readRNAup :: String -> IO (Either ParseError [RNAupInteraction])


-- | This module contains a hierarchical data structure for RNAplex output
--   For more information on RNAplex consult:
--   <a>http://www.bioinf.uni-leipzig.de/Software/RNAplex/</a>
module Bio.RNAplexData

-- | Data structure for individual interaction between a target and query
--   nucleic acid seqence
data RNAplexInteraction
RNAplexInteraction :: String -> String -> String -> Int -> Int -> Int -> Int -> Double -> Maybe Double -> Maybe Double -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Double -> RNAplexInteraction
[targetIdentifier] :: RNAplexInteraction -> String
[queryIdentifier] :: RNAplexInteraction -> String
[plexSecondaryStructure] :: RNAplexInteraction -> String
[targetDuplexBegin] :: RNAplexInteraction -> Int
[targetDuplexEnd] :: RNAplexInteraction -> Int
[queryDuplexBegin] :: RNAplexInteraction -> Int
[queryDuplexEnd] :: RNAplexInteraction -> Int
[duplexEnergy] :: RNAplexInteraction -> Double
[duplexEnergyWithoutAccessiblity] :: RNAplexInteraction -> Maybe Double
[queryAccessiblity] :: RNAplexInteraction -> Maybe Double
[targetAccessibility] :: RNAplexInteraction -> Maybe Double
[prefilterStart] :: RNAplexInteraction -> Maybe Int
[prefilterStop] :: RNAplexInteraction -> Maybe Int
[prefilterEnergy] :: RNAplexInteraction -> Maybe Double
instance GHC.Classes.Eq Bio.RNAplexData.RNAplexInteraction
instance GHC.Show.Show Bio.RNAplexData.RNAplexInteraction


-- | Parse RNAplex output For more information on RNAplex consult:
--   <a>http://www.bioinf.uni-leipzig.de/Software/RNAplex/</a>
module Bio.RNAplexParser

-- | parse RNAplexOutput from input string
parseRNAplex :: [Char] -> Either ParseError [RNAplexInteraction]

-- | parse from input filePath
readRNAplex :: String -> IO (Either ParseError [RNAplexInteraction])


-- | This module contains a data structure for RNAfold output For more
--   information on RNAplex consult:
--   <a>http://www.tbi.univie.ac.at/RNA/RNAfold.html</a>
module Bio.RNAfoldData

-- | Data structure for RNAfold
data RNAfold
RNAfold :: String -> String -> String -> Double -> RNAfold
[sequenceIdentifier] :: RNAfold -> String
[foldSequence] :: RNAfold -> String
[foldSecondaryStructure] :: RNAfold -> String
[foldingEnergy] :: RNAfold -> Double
instance GHC.Classes.Eq Bio.RNAfoldData.RNAfold
instance GHC.Show.Show Bio.RNAfoldData.RNAfold


-- | Parse RNAfold output For more information on RNAfold consult:
--   <a>http://www.tbi.univie.ac.at/RNA/RNAfold</a>
module Bio.RNAfoldParser

-- | Run external RNAfold command and read the output into the
--   corresponding datatype
systemRNAfold :: String -> String -> IO ExitCode

-- | parse RNAfold output from input string
parseRNAfold :: [Char] -> Either ParseError RNAfold

-- | parse RNAfold output from input filePath
readRNAfold :: String -> IO (Either ParseError RNAfold)


-- | This module contains a data structure for RNAdistance output For more
--   information on RNAdistance consult: &lt;&gt;
module Bio.RNAdistanceData

-- | Data structure
data RNAdistance
RNAdistance :: Int -> RNAdistance
[secondaryStructureDistance] :: RNAdistance -> Int
instance GHC.Classes.Eq Bio.RNAdistanceData.RNAdistance
instance GHC.Show.Show Bio.RNAdistanceData.RNAdistance


-- | Parse RNAdistance output For more information on RNAdistance consult:
--   <a>&lt;http://www.tbi.univie.ac.at/RNA/RNAdistance.html</a>
module Bio.RNAdistanceParser

-- | parse RNAdistance output from input string
parseRNAdistance :: [Char] -> Either ParseError RNAdistance

-- | parse RNAdistance output from input filePath
readRNAdistance :: String -> IO (Either ParseError RNAdistance)


-- | This module contains a data structure for RNAcofold output For more
--   information on RNAcofold consult:
--   <a>http://www.tbi.univie.ac.at/RNA/RNAcofold.html</a>
module Bio.RNAcofoldData

-- | Data structure for cofolding of 2 nucleic acid sequences
data RNAcofold
RNAcofold :: String -> String -> String -> String -> Double -> RNAcofold
[coFoldSequence1] :: RNAcofold -> String
[coFoldSequence2] :: RNAcofold -> String
[coFoldSecondaryStructure1] :: RNAcofold -> String
[coFoldSecondaryStructure2] :: RNAcofold -> String
[coFoldingEnergy] :: RNAcofold -> Double
instance GHC.Classes.Eq Bio.RNAcofoldData.RNAcofold
instance GHC.Show.Show Bio.RNAcofoldData.RNAcofold


-- | Parse RNAfold output For more information on RNAcofold consult:
--   <a>http://www.tbi.univie.ac.at/RNA/RNAcofold.html</a>
module Bio.RNAcofoldParser

-- | Run external RNAcofold command
systemRNAcofold :: String -> String -> IO ExitCode

-- | parse RNAcofold output from input string
parseRNAcofold :: [Char] -> Either ParseError RNAcofold

-- | parse RNAcofold output from input filePath
readRNAcofold :: String -> IO (Either ParseError RNAcofold)


-- | This module contains a hierarchical data structure for RNAcode output
--   For more information on RNAcode consult:
--   <a>http://wash.github.io/rnacode/</a>
module Bio.RNAcodeData

-- | All elements of RNAcode output are contained in this datatype
data RNAcode
RNAcode :: [RNAcodeHit] -> Maybe Int -> Maybe Double -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> RNAcode
[rnacodeHits] :: RNAcode -> [RNAcodeHit]
[rcAlignmentNumber] :: RNAcode -> Maybe Int
[rcTime] :: RNAcode -> Maybe Double
[rcSampleNumber] :: RNAcode -> Maybe Int
[rcDelta] :: RNAcode -> Maybe Double
[rcBigOmega] :: RNAcode -> Maybe Double
[rcSmallOmega] :: RNAcode -> Maybe Double
[rcStopPenalty] :: RNAcode -> Maybe Double

-- | RNAcode Hit
data RNAcodeHit
RNAcodeHit :: Int -> Char -> Int -> Int -> Int -> Int -> String -> Int -> Int -> Double -> Double -> RNAcodeHit
[hss] :: RNAcodeHit -> Int
[strand] :: RNAcodeHit -> Char
[frame] :: RNAcodeHit -> Int
[hitLength] :: RNAcodeHit -> Int
[from] :: RNAcodeHit -> Int
[to] :: RNAcodeHit -> Int
[name] :: RNAcodeHit -> String
[start] :: RNAcodeHit -> Int
[end] :: RNAcodeHit -> Int
[score] :: RNAcodeHit -> Double
[pvalue] :: RNAcodeHit -> Double
instance GHC.Classes.Eq Bio.RNAcodeData.RNAcode
instance GHC.Show.Show Bio.RNAcodeData.RNAcode
instance GHC.Classes.Eq Bio.RNAcodeData.RNAcodeHit
instance GHC.Show.Show Bio.RNAcodeData.RNAcodeHit


-- | Parse RNAcode output For more information on RNAcode consult:
--   <a>http://wash.github.io/rnacode/</a>
module Bio.RNAcodeParser

-- | Run external RNAcode command and read the output into the
--   corresponding datatype
systemRNAcode :: String -> String -> String -> IO ExitCode

-- | parse RNAcode from input string
parseRNAcode :: String -> Either ParseError RNAcode

-- | parse RNAcode from input filePath
readRNAcode :: String -> IO (Either ParseError RNAcode)

-- | parse RNAcode from input string
parseRNAcodeTabular :: String -> Either ParseError RNAcode

-- | parse RNAcode from input filePath
readRNAcodeTabular :: String -> IO (Either ParseError RNAcode)


-- | This module contains a data structure for RNAalifold output For more
--   information on RNAalifold consult: &lt;&gt;
module Bio.RNAalifoldData

-- | Data structure corrsponds with alifoldoutput redirected to file.
--   Output written directly to commandline also contains number of
--   sequences and length of consensus sequence
data RNAalifold
RNAalifold :: String -> String -> Double -> Double -> Double -> RNAalifold
[alignmentConsensusSequence] :: RNAalifold -> String
[alignmentConsensusDotBracket] :: RNAalifold -> String
[alignmentConsensusMinimumFreeEnergy] :: RNAalifold -> Double
[alignmentConsensusInitialMinimumFreeEnergy] :: RNAalifold -> Double
[alignmentConsensusEnergyCovarianceContributions] :: RNAalifold -> Double
instance GHC.Classes.Eq Bio.RNAalifoldData.RNAalifold
instance GHC.Show.Show Bio.RNAalifoldData.RNAalifold


-- | Parse RNAalifold output For more information on RNAalifold consult:
--   <a>&lt;http://www.tbi.univie.ac.at/RNA/RNAalifold.html</a>
module Bio.RNAalifoldParser
systemRNAalifold :: String -> String -> String -> IO ExitCode

-- | parse RNAalifold output from input string
parseRNAalifold :: [Char] -> Either ParseError RNAalifold

-- | parse RNAalifold output from input filePath
readRNAalifold :: String -> IO (Either ParseError RNAalifold)


-- | Parsers for Programs from the Vienna RNA Package this libary is
--   focused on Version &gt; 2.0 For more information on the Vienna
--   RNAPackage consult: <a>http://www.tbi.univie.ac.at/~ivo/RNA/</a> or
--   the homepage of the current maintainer:
--   <a>http://www.tbi.univie.ac.at/~ronny/RNA/index.html</a>
module Bio.ViennaRNAParser
