Installation

System Requirements

We recommend the following minimum specifications for running a Virtool server:

  • Linux operating system
  • 32 GB RAM
  • 1 TB fast storage
  • 1 Gbps network connection

Higher CPU clock speeds and core counts will allow more operations to be run in parallel.

Docker Compose

Docker Compose is the only supported method for installing Virtool 4.4.0.

  1. Install Docker on Linux.

    We do not support deployment on MacOS or Windows.

  2. Create a docker-compose.yml file to create a Virtool instance and MongoDB server.

    docker-compose.yml

    services:
      mongo:
        image: mongo:3.6
        volumes:
          - mongo:/data/db
      virtool:
        image: ghcr.io/virtool/virtool:v4.4.0-beta.1
        command: ["python", "run.py", "--no-setup"]
        environment:
          VT_DB_CONNECTION_STRING: "mongodb://mongo:27017"
          VT_DB_NAME: "virtool"         
          VT_DATA_PATH: "/data"
          VT_HOST: "0.0.0.0"
          VT_MEM: 120
          VT_PROC: 30
          VT_LG_MEM: 60
          VT_LG_PROC: 15
          VT_SM_MEM: 10
          VT_SM_PROC: 5
          VT_WATCH_PATH: "/watch"
        ports:
          - "9950:9950"
        volumes:
          - virtool:/data
          - type: bind
            source: /mnt/watch
            target: /watch
    volumes:
      mongo: null
      virtool: null
    • Replace VT_MEM and VT_PROC with values suitable for your system. Leave CPU and RAM for your operating system.

    • Set VT_LG_PROC, VT_LG_MEM, VT_SM_PROC, and VT_SM_MEM to be factors of the VT_PROC and VT_MEM. These are the resources that will be reserved for small and large workflows.

    • The watch_path is a location on your host system where you can drop FASTQ files and have them automatically loaded into Virtool. We show you how to setup a bind mount in this YML file.

      Replace source with a location on your host where you’d like to drop FASTQ files.

  3. Start the services with:

    docker compose -p virtool up -d

    Virtool should be available on your host machine at http://localhost:9950.

Explanation

Docker is a technology that allows software to be packaged into containers.

It has many advantages over traditional software installation methods:

  • Containers are portable and can be run on any system that supports Docker. This prevents issues that arise across different operating systems.
  • Containers include all the software and dependencies required to run the application. In Virtool’s case this simplifies installation by removing the need to install bioinformatics tools and other dependencies.
  • Upgrading the software is as simple as updating the image tag in the docker-compose.yml and running docker compose -p virtool up -d.

Volumes

External Software

The Dockerized version of Virtool no longer requires installation of required bioinformatics programs. They are included in the Virtool container image.

The included software is listed for interest only.

NameVersionPurpose
AODP2.5.0.1Motif detection
Bowtie22.3.2High-throughput read alignment
FastQCv0.11.5Calculating quality metrics for sample libraries
FLASH3.1b2Merge paired-end reads
HMMER3.1b2Motif detection
Skewer0.2.2Read trimming and quality control
SPAdesv3.8.1De novo assembly