Filtering-Analysis-Tool (FAT) is a software tool that takes tab-delimited files and transforms them into fully-featured XLSX files using FAT's own domain-specific language (DSL) to meet user-defined filtering parameters.
FAT assumes you have the GHC compiler and packages installed that it imports. The easiest way to do this is to download the Haskell Platform.
To install the peripheral packages FAT requires, you can call the following command assuming you have cabal, a package manager and build system for Haskell, installed on your system (it comes with the Haskell Platform).
$ cabal install [packagename]
Required packages
- Codec.Xlsx
- Control.Applicative
- Control.Arrow
- Control.Monad
- Control.Monad (mzero)
- Data.Aeson
- Data.ByteString.Char8
- Data.ByteString.Lazy
- Data.Char
- Data.Foldable
- Data.Hashmap.Lazy
- Data.Hashmap.Strict
- Data.Ix
- Data.List
- Data.List.Split
- Data.Map
- Data.Map.Strict
- Data.Maybe
- Data.Set
- Data.Text
- Data.Time.Clock.POSIX
- Data.Tree
- Data.Tuple
- Data.Yaml
- GHC.Generics
- System.Console.GetOpt
- System.Environment
- System.Exit
- System.IO
- System.IO.Temp
- System.Process
- Text.Read
- Text.Regex
- Text.Regex.TDFA
- YamlParse.Applicative
FAT requires two inputs:
-
Configuration YAML - The first positional argument to FAT is the configuration YAML. This YAML defines the filtering that will be applied to the user-defined tab-delimited file.
FAT uses a DSL to allow for filtering in an modular and extensible fashion.
Please see the wiki for a full guide on how to set up complex filtering schemes using the configuration YAML.
-
Tab-delimited (tsv) file - The second positional argument to FAT is the tab-delimited (tsv) file. The filtering scheme defined in the configuration YAML will be applied to this tab-delimited file to create the output XLSX file.
FAT is easy to use.
You can call it using the runghc command provided by the GHC compiler as such:
$ runghc fat.hs config.yaml input.tsv
For maximum performance, please compile and run the source code as follows:
$ ghc -O2 -o FAT fat.hs
$ ./FAT config.yaml input.tsv
FAT is a simple, easy to use program:
Filtering Analysis Tool, Copyright (c) 2020 Matthew Mosior.
Usage: FAT [-h] [Configuration YAML] [Tab-delimited (tsv) file]
Filtering Analysis Tool (FAT), Version 1.0.
Please see https://github.com/Matthew-Mosior/Filtering-Analysis-Tool/wiki for more information.
-h --help Print this help message.
A docker container exists that contains all the necessary software to run FAT: matthewmosior/filteringanalysistool:final
Documentation was added March 2021.
Author : Matthew Mosior