.. _dockerinstallation: Installation via Docker ======================= Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in. To obtain the ssHMM Docker image and run it, follow these steps: 1. Install Docker on your platform as described at ``https://docs.docker.com/engine/getstarted/`` 2. Run Docker and check whether everything is working: .. code-block:: bash docker version 3. Run the Docker image containing ssHMM. The following command will also download the image if it cannot be found locally: .. code-block:: bash docker run -it hellerd/sshmm A running image is called a container. Once the container has been started, you can access it via a command line interface. You can now run ssHMM, e.g. by typing ``train_seqstructhmm --help``. You can exit the container with ``exit``. .. hint:: By default a container’s file system persists even after the container exits. This makes debugging a lot easier and you retain all your data by default. If instead you’d like Docker to automatically clean up the container and remove the file system when the container exits, you can add the --rm flag: .. code-block:: bash docker run -it --rm hellerd/sshmm 4. To access data located on your machine (e.g. in ``/home/someuser/data``) from inside the container, use the ``-v`` option: .. code-block:: bash docker run -it -v /home/someuser/data:/data hellerd/sshmm This will make your data directory (``/home/someuser/data``) available inside the container in the ``/data`` directory. You can now run ssHMM on this data, e.g. ``train_seqstructhmm /data/sequences.fasta /data/shapes.txt``.