Sign inSign up

holehouselab/metapredict

By holehouselab

•Updated almost 2 years ago

Docker container for the disorder predictor metapredict

Image
Machine learning & AI
0

403

holehouselab/metapredict repository overview

⁠About

⁠Last updated 2024-11-07

Do you wish to deploy metapredict on remote architectures (e.g. Linux machines) without needing to create local environmemnts; then metapredict Docker might be for you!

Metapredict is a high-performance disorder predictor. This image should be used in "interactive" mode, using the command line.

Briefly, pulling this container and following the instructions below will create a Docker image (i.e., akin to a virtual machine), which will mount the directory you're in and give you access to metapredict (which is installed within that image) to run your analysis.

⁠Important preamble

Are you running on macOS vs Linux (or Windows, in principle)? We have a macOS-specific container (:latest_macos) which gives fast macOS performance. The other containers were built on Linux for Linux, and give very slow performance on macOS.

⁠Instructions

To run and use this container as a command-line tool to predict disorder on a FASTA file in your current working directory.

⁠1. pull the image

The first thing we have to do is download the metapredict image. This is done using the Docker command-line tools, so means you need to boot up a terminal session and ensure Docker is running.

The basic command for pulling the metapredict container is as follows:

docker pull holehouselab/metapredict

We have a few different "versions" of metapredict images, which are defined by tags. If you're not sure, we suggest just using the "latest" image, which is the default if you run.

However, you can specificy a specific tag using the :<tag-name> syntax, e.g.

docker pull holehouselab/metapredict:v3.0.0

At the time of writing we have not set up our cuda-latest container but this is coming soon.

⁠2. Launch the container mounting the current working directory as the mountpoint

When you run a Docker container it effectively creates a mini virtual machine on your computer. To work with files on your computer (instead of on the virtual machine), we have to define a mountpoint, which can be thought of as a portal between your computer and the virtual machine.

This is achieved as follows:

docker run -it --rm -v "$(pwd):/mount" metapredict

This means inside the virtual machine, the directory found at /mount will point to the current directory on your real machine, and the you'll be dropped into a terminal running inside the virtual machine in that /mount directory.

3. Run the relevant command on the datafile Finally, you can just run all the metapredict commands you may want from that container.

This includes:

# predict contiguous IDRS
metapredict-predict-idrs <INPUT FASTA FILE>

# see options for contiguous IDR prediction
metapredict-predict-idrs --help

# predict per-residue disorder
metapredict-predict-disorder <INPUT FASTA FILE>

# see options for per-residue disorder prediction
metapredict-predict-disorder --help

For a complete list of the command-line tools available, see the documentation here⁠.

⁠tag explanation

  • latest - Linux-compatible image using latest metapredict on PyPI
  • latest_macos - macOS-compatible image using latest metapredict on PyPI
  • dev - Linux-compatible image using the current version from master branch on GitHub⁠.
  • Other tags report on Linux-compatible specific versions released on PyPI and are provided for reproducibility only.

⁠Halp!

If you run into any problems, please raise an issue on the metapredict GitHub page⁠.

⁠Docker FAQs

⁠I ran on macOS and metapredict ran INCREDIBLY slowly?!

Yeah, sorry about that - the standard images are built on Linux for Linux; if you want a container with decent macOS performance please download the :latest_macos tag - e.g.

docker pull holehouselab/metapredict:latest_macos

and then run this:

docker run -it --rm -v "$(pwd):/mount" metapredict:latest_macos
⁠OK.... what is Docker?

Docker is a tool that allows people to "package" an application and all its parts (like libraries, settings, and system tools) into a single, self-contained unit called a container. Think of it as a "portable box" for software—once the app is packed into this container, it can run on any computer with Docker installed, regardless of the computer’s setup. This makes it easy to share, deploy, and manage applications across different systems without worrying about compatibility issues.

⁠What is a Docker image?

A Docker image is a lightweight, standalone, and executable package that includes everything needed to run a specific application or environment, including the application code, runtime, libraries, dependencies, and system tools/settings. It acts like a snapshot of the environment, making it easy to create consistent deployments across different systems by running the same image on any machine with Docker installed.

⁠So what's a Docker container then?

A container is the running instance of an image. When you start an image, it becomes a container — a live, isolated environment where the application actually runs. You can create, start, stop, and delete containers, but the image itself remains unchanged.

⁠What does it mean to "pull a Docker image"?

To pull a Docker image means to download a specific image from a remote repository, usually from Docker Hub (a public registry for Docker images), to your local machine. This process fetches the image file so you can use it to create and run containers on your system. Here, we provide instructions to pull a metapredict image so you can run metapredict locally on your machine.

⁠Once I've pulled my image, how do I use it?

This does require SOME degree of understanding of the command line/terminal, but we provide basic instructions here for macOS and Linux. We'd love similar instructions for Windows if anyone has experience using Windows to run Docker containers!

⁠Reference

metapredict was developed in the Holehouse lab⁠ and primarily developed by Ryan Emenecker. The original publication is Emenecker et al. 2021. As of November 5th 2024, metapredict V3 has been released (Lotthammer et al. 2024). See below for more information

Lotthammer, J. M., Hernández-García, J., Griffith, D., Weijers, D., Holehouse, A. S. & Emenecker, R. J. Metapredict enables accurate disorder prediction across the Tree of Life. bioRxiv 2024.11.05.622168 Preprint at https://doi.org/10.1101/2024.11.05.622168⁠ (2024)

Emenecker, R. J., Griffith, D. & Holehouse, A. S. Metapredict: a fast, accurate, and easy-to-use predictor of consensus disorder and structure. Biophys. J. 120, 4312–4319 (2021). link to paper⁠

⁠Changelog

  • Nov 7th 2024: Updated docs, added v3.0.0 tag, rebuilt containers on Linux machines.

Tag summary

Content type

Image

Digest

sha256:1a02a70b9…

Size

6.3 GB

Last updated

almost 2 years ago

docker pull holehouselab/metapredict