/MapLoc

MapLoc variant database

Primary LanguagePerlMIT LicenseMIT

MapLoc Variant Database

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.

Graphical report

Utility modules

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 (via Debug.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 and xlsx 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:
  • 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 from ForkCritter
  • 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.

Installation

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.

Notes

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

Copyright

© 2014 Charles Tilford

http://mit-license.org/