# Introduction

## What is MiGA?

MiGA is a data management and processing system for microbial genomes and metagenomes. Its main goal is to provide a uniform system for genome-based taxonomic classification and diversity studies, but its base can be used for other purposes.

* [How can MiGA help me?](https://manual.microbial-genomes.org/part1/pitch)
* [Who's using MiGA?](https://manual.microbial-genomes.org/part1/use-cases)
* [Definitions](https://manual.microbial-genomes.org/part1/glossary)

## Getting started with MiGA

MiGA itself doesn't require much but processing large data collections may require large infrastructures. With that in mind, MiGA is designed to support both single machines and cluster infrastructures.

* [Requirements](https://manual.microbial-genomes.org/part2/requirements)
* [Installation](https://manual.microbial-genomes.org/part2/installation)
* [MiGA types](https://manual.microbial-genomes.org/part2/types)
* [Input data](https://manual.microbial-genomes.org/part2/input)
* [Distances](https://manual.microbial-genomes.org/part2/distances)
* [Clustering](https://manual.microbial-genomes.org/part2/clustering)

## MiGA Interfaces

You can interact with MiGA through different interfaces. These interfaces have different purposes, but they also have some degree of overlap, because different users with different aims sometimes want to do the same thing. The API and the CLI are the most comprehensive and flexible interfaces, but the other two are friendlier to humans. MiGA is mostly written in Ruby, with an object-oriented approach, and all the interfaces are just thin layers atop the Ruby core. That means that you can write your own interfaces (or pieces) if you know how to talk to these Ruby objects. Sometimes I even use `irb`, which is an interactive shell for Ruby, but that's mostly for debugging.

* [MiGA API](https://github.com/bio-miga/miga/tree/7d5b5d8ca7b592d2dd8e085f33813de3ea42030a/manual/part3/api.md)
* [MiGA CLI](https://github.com/bio-miga/miga/tree/7d5b5d8ca7b592d2dd8e085f33813de3ea42030a/manual/part3/cli.md)
* [MiGA Web](https://github.com/bio-miga/miga/tree/7d5b5d8ca7b592d2dd8e085f33813de3ea42030a/manual/part3/web.md)
* See also: [Help for MiGA Online](https://help.microbial-genomes.org/)

## Deploying examples

Once you have installed MiGA, you might want to follow one (or several) of these tutorials to familiarize yourself with the MiGA environment.

* [RefSeq in MiGA](https://manual.microbial-genomes.org/part4/deploy-refseq)
* [Build a clade collection](https://manual.microbial-genomes.org/part4/deploy-clade)
* [Launching daemons](https://manual.microbial-genomes.org/part4/daemons)
* [Setting up MiGA in a cluster](https://manual.microbial-genomes.org/part4/cluster)

## MiGA in detail

Ready for more? Here are some technical details for advanced users.

* [Advanced configuration](https://manual.microbial-genomes.org/part5/advanced-configuration)
* [MiGA workflow](https://manual.microbial-genomes.org/part5/workflow)
* [Metadata](https://manual.microbial-genomes.org/part5/metadata)
* [External Software](https://manual.microbial-genomes.org/part5/external)

## Workflows

MiGA comes with ready-to-use pre-configured workflows for different analyses:

* [Quality](https://manual.microbial-genomes.org/part6/quality_wf)
* [Dereplicate](https://manual.microbial-genomes.org/part6/derep_wf)
* [Classify](https://manual.microbial-genomes.org/part6/classify_wf)
* [Preprocess](https://manual.microbial-genomes.org/part6/preproc_wf)
* [Index](https://manual.microbial-genomes.org/part6/index_wf)
* [Summaries](https://manual.microbial-genomes.org/part6/summaries)
