# Architecture 📐

![Architecture Overview](https://user-images.githubusercontent.com/1334004/63124264-ddd1b680-bf78-11e9-9122-514330e8fcd8.png)

## Backend

Genome Nexus aggregates variant annotation from various sources. There are two types:

1. Small sized annotations are stored as static data in the mongo database directly, see the [genome-nexus-importer repo](https://github.com/genome-nexus/genome-nexus-importer) if you want to update/change this data.
2. Larger annotation sources are pulled on the fly from other APIs and cached in the mongo database.

For a list of all supported variant annotation sources see this Google Sheet:

<https://docs.google.com/spreadsheets/d/1xML949NWzJGcvltjlquwSRIv79o13C\\_sfrVPAU5ci9Q/edit#gid=258442188>

The code for the backend can be found here: <https://github.com/genome-nexus/genome-nexus>.

## REST API

Genome Nexus provides a [REST API](https://www.genomenexus.org/swagger-ui.html) for variant annotation. See [API](/api.md)

## API Clients

Clients in various languages can be generated to access it. See [API](/api.md)

## Genome Nexus Website

The frontend of the website is here: <https://github.com/genome-nexus/genome-nexus-frontend>.

## Other Websites

The main consumer of the Genome Nexus REST API is [cBioPortal](https://cbioportal.org). cBioPortal provides visualization, analysis, and download of large-scale cancer genomics data sets. Variants in cBioPortal are annotated using Genome Nexus. The other examples in the figure are potential other consumers. See also: [Tools](/tools.md)

## Command Line Interface

There is a command line tool to annotate MAF and VCF files, see [API](/api.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.genomenexus.org/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
