Safe Haskell | None |
---|---|
Language | Haskell2010 |
Bioshake is a small framework for specifying bioinformatics pipelines. The
goal is to specify phases in a forward chaining manner (as is natural for the
domain) while guaranteeing as much robustness as possible to errors such as
mismatched file types or other attributes. Almost everything is handled in
the type system, and pipelines are compiled down to Development.Shake
Rules
for actual execution.
- data All a where
- class Referenced a where
- class Capture a where
- ignoringIOErrors :: IO () -> IO ()
- withTempDirectory :: FilePath -> String -> (FilePath -> Action b) -> Action b
- bioshake :: Int -> ShakeOptions -> (Implicit Resource => Rules ()) -> IO ()
- out :: [FilePath] -> Out
- withAll :: (Functor f, Foldable f) => f a -> All a
- withPair :: a -> a -> All a
Documentation
Datatype to represent fan-in combinations.
class Referenced a where Source #
Attaches a reference genome.
getRef :: a -> FilePath Source #
The path to the reference fasta file.
The short name, e.g., hg19.
dbnsfp :: a -> FilePath Source #
Path to dbNSFP for the genome
Referenced a => Referenced (All a) Source # | Fan-ins are |
Referenced a => Referenced ((:->) a b) Source # | References flows down the pipeline regardless of the phase |
ignoringIOErrors :: IO () -> IO () Source #
:: FilePath | Target directory under which the temporary directory is created |
-> String | Template for the temporary directory name |
-> (FilePath -> Action b) | Action to carry out |
-> Action b |
Creates a temporary directory under a target directory according to a
naming template. The directory is cleaned up after executing the action. This
differs from Development.Shake's withTempDir
in that it takes a target
directory and template whereas Development.Shake uses /tmp. This is
generally more useful, as ./tmp is used as the target directory by convention
in BioShake.
:: Int | Number of threads |
-> ShakeOptions | Options to pass to |
-> (Implicit Resource => Rules ()) | |
-> IO () |
Entry point to bioshake. Like shakeArgs
but also takes a number of
threads to use.
out :: [FilePath] -> Out Source #
Explicitly names an output product. Outputs are automatically named in the temporary directory except for this special case: this is how you obtain the artifacts you are specifically interested in.