bioshake-0.1.0.0: Bioinformatics pipelines with shake

Safe HaskellNone
LanguageHaskell2010

Bioshake

Description

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.

Synopsis

Documentation

data All a where Source #

Datatype to represent fan-in combinations.

Constructors

All :: (Functor f, Foldable f) => f a -> All a 

Instances

Show a => Show (All a) Source # 

Methods

showsPrec :: Int -> All a -> ShowS #

show :: All a -> String #

showList :: [All a] -> ShowS #

Pathable a => Pathable (All a) Source # 

Methods

paths :: All a -> [FilePath] Source #

Compilable a => Compilable (All a) Source # 

Methods

compile :: All a -> Compiler () Source #

IsCov a0 => IsCov (All a0) Source # 
IsTGZ a0 => IsTGZ (All a0) Source # 
IsVCF a0 => IsVCF (All a0) Source # 
IsTSV a0 => IsTSV (All a0) Source # 
IsSeqzGZ a0 => IsSeqzGZ (All a0) Source # 
IsSam a0 => IsSam (All a0) Source # 
IsMPileup a0 => IsMPileup (All a0) Source # 
IsGff a0 => IsGff (All a0) Source # 
IsFastQ a0 => IsFastQ (All a0) Source # 
IsCSV a0 => IsCSV (All a0) Source # 
IsBed a0 => IsBed (All a0) Source # 
IsBcf a0 => IsBcf (All a0) Source # 
IsBam a0 => IsBam (All a0) Source # 
Sorted a0 => Sorted (All a0) Source # 
PairedEnd a0 => PairedEnd (All a0) Source # 
HasRG a0 => HasRG (All a0) Source # 
DeDuped a0 => DeDuped (All a0) Source # 
Capture a => Capture (All a) Source #

Fan-ins are a Capture iff all items are consistent.

Methods

getBED :: All a -> FilePath Source #

Referenced a => Referenced (All a) Source #

Fan-ins are Referenced iff all items are consistently Referenced. Problems are caught at runtime unfortunately.

GC a => GC (All a) Source # 

Methods

getGC :: All a -> FilePath Source #

class Referenced a where Source #

Attaches a reference genome.

Minimal complete definition

getRef, name

Methods

getRef :: a -> FilePath Source #

The path to the reference fasta file.

name :: a -> String Source #

The short name, e.g., hg19.

dbnsfp :: a -> FilePath Source #

Path to dbNSFP for the genome

Instances

Referenced a => Referenced (All a) Source #

Fan-ins are Referenced iff all items are consistently Referenced. Problems are caught at runtime unfortunately.

Referenced a => Referenced ((:->) a b) Source #

References flows down the pipeline regardless of the phase

Methods

getRef :: (a :-> b) -> FilePath Source #

name :: (a :-> b) -> String Source #

dbnsfp :: (a :-> b) -> FilePath Source #

class Capture a where Source #

Asserts a capture region.

Minimal complete definition

getBED

Methods

getBED :: a -> FilePath Source #

Instances

Capture a => Capture (All a) Source #

Fan-ins are a Capture iff all items are consistent.

Methods

getBED :: All a -> FilePath Source #

Capture a => Capture ((:->) a b) Source # 

Methods

getBED :: (a :-> b) -> FilePath Source #

withTempDirectory Source #

Arguments

:: 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.

bioshake Source #

Arguments

:: Int

Number of threads

-> ShakeOptions

Options to pass to shakeArgs.

-> (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.

withAll :: (Functor f, Foldable f) => f a -> All a Source #

Fan-in style combinator. Takes a collection of combines their output paths as input paths for the subsequent phase.

withPair :: a -> a -> All a Source #

Explicitly construct a fan-in of exactly two items