BIGSdb dependencies
Required packages
BIGSdb requires a number of software components to be installed:
Linux packages
Apache2 web server with mod_perl2
PostgreSQL database 9.5+
Perl 5.10+
BioPerl
BLAST+
EMBOSS
infoalign - use to extract alignment stats in Genome Comparator.
sixpack - used to translate sequences in multiple reading frames.
stretcher - used for sequence alignment in allele query.
Ipcress - part of exonerate package - used to simulate PCR reactions which can be used to filter the genome to predicted amplification products.
Xvfb - X virtual framebuffer - needed to support SplitsTree in command line mode as used in Genome Comparator.
Perl modules
These are included with most Linux distributions.
Archive::Zip - Used to upload to iTOL.
Bio::Biblio - This used to be part of BioPerl but will need to be installed separately if using BioPerl 1.6.920 or later.
CGI (version 4.04+) - Common Gateway Interface requests and responses (used to be a core module but recently removed).
Config::Tiny - Configuration file handling.
Crypt::Eksblowfish::Bcrypt - Used for password hashing.
Data::UUID - Globally unique identifer handling for preference storage.
DBD::Pg - PostgreSQL database driver for DBI.
DBI - Database independent interface - module used to interact with databases.
Email::MIME - Used to format E-mail messages.
Email::Sender - Used to send E-mail messages by submission system.
Email::Valid - Used to validate E-mails sent by job manager.
Excel::Writer::XLSX - Used to export data in Excel format.
Exception::Class - Exception handing.
File::Type - Used to determine what type of file has been uploaded.
JSON - Used to manipulate JSON data.
List::MoreUtils (version 0.28+).
Log::Dispatch::File - Object for logging to file.
Log::Log4perl - Configurable status and error logging.
LWP::UserAgent - Used to upload via API
Net::Oauth - Required for REST authentication (this needs to be installed even if you are not using REST).
Parallel::ForkManager - Required for multi-threading tools and plugins.
PDL - Required for LINcode calculations.
Template - Required for formatting analysis results.
Text::CSV - Used for parsing of TSV files.
Time::Duration - Used by Job Viewer to display elapsed time in rounded units.
TOML - Used to define dashboard layouts.
XML::Parser::PerlSAX - part of libxml-perl - Used to parse XML configuration files.
Optional packages
Installing these packages will enable extra functionality, but they are not required by the core BIGSdb package.
MAFFT 6.8+ - sequence alignment used by some plugins.
Muscle - sequence alignment used by some plugins.
Splitstree4 - used by GenomeComparator plugin.
PostGIS - needed for geographical mapping.
WeasyPrint - needed to generate PDF files in the Genome Reports plugin.