Genetic variation database that unifies polymorphisms and mutations. Captures information from populations, individuals and samples, and provides interfaces for queries with a variety of report formats. The system is species agnostic, using reference sequences (generally a specific genome build) to scaffold and segregate data.
This release also includes several useful utility Perl modules that are used by many of my other packages:
- Utilities.pm - Core module functions, like argument parsing and messaging
- ErrorInterceptor.pm - Advanced error management
via
%SIG
. All my web-served code was tied into this framework, which allowed errors (including fatal ones) to send me an email with stack trace (viaDebug.pm
) and user context. - ArgumentParser.pm - Generalizes argument parsing,
allowing the same code to function as a web CGI (pulling arguments
from POST or GET via
CGI
) or from the command line (pulling them from@ARGV
). The switch is made automatically based on inspection of the environment. Also handles setting mimetype and parsing of parameter files. - ExcelHelper.pm - Aids in generation of
xls
andxlsx
spreadsheets, including workbook/worksheet layout, column formating, and cell styling. Example usage. - ForkCritter.pm - Wrapper to abstract handling of forked jobs and collection / aggregation of results. Example
- FriendlyDBI.pm - A heavy-weight database helper
module based around
DBI
. Allows creation of database schemae based on hash structures, as well as easy definition of statement handles and results recovery. Examples:- Defining MapLoc DB schema, including views and
plpgsql
proceedures - Defining a cached statement handle, including (commented out) pretty-printing and database EXPLAIN
- Hand-building a statement (no placeholders) when the
query planner is unhappy (sometimes placeholders, particularly in
conjunction with
>
or '<', cause a SEQSCAN rather than use of an index)
- Defining MapLoc DB schema, including views and
- FriendlyGraph.pm - A lightweight graph/network database
- FriendlySAX.pm - Wrapper around
XML::Parser::PerlSAX
that manages callbacks and node selection. Here's an example that's consuming SAX nodes via callback fromForkCritter
- TableReader.pm - Abstracted table reader from TSV, CSV and Excel. Includes utilities to manage headers and columns. Example reading GWAS files
- Benchmark.pm - Uses
Time::HiRes
to provide high-resolution benchmarking utilities. Example timing a SQL query. - ColorUtilities.pm - Color management, including a function to hash a string to a color, used to colorize some output.
- Debug.pm - Used to serialize nested structures (Hash/Array) for debugging purposes. Code includes an example with output. Has options to prevent explosive recursion, or to exclude/focus on certain elements.
- FileUtilities.pm - Utilities to manage files and directories, including Perl module locations.
- SequenceUtilities.pm - A whole bunch of utility
functions. Leverages BioPerl's
Bio::
utilities, but also has code to manage frustrating API changes or inconsistencies - Escape.pm - Just escaping code for URLs, XML, JSON, etc. There's probably better packages available now.
- Serialize.pm - Used to generate JSON. There are definitely better options available now.
To install MapLoc, from this directory run the following script to determine any public modules that need to be installed on your system:
./BMS/SnpTracker/MapLoc/setupMapLoc.pl
If all dependencies are available, the script will also create an empty MapLoc schema in Postgres.
-
2014 Apr 5
Initial commit. This system is nicely functional within the sheltered corporate computing environment from whence it came. It will require additional work to make it fucnction on other systems. I will be installing it at home to identify presumptions that need to be changed, and committing fixes as I go.
© 2014 Charles Tilford