Skip to content

NPLinker Web Application

DOI

👉 Webapp Live Demo

The NPLinker web application, built with Plotly Dash, provides an interactive interface for visualizing NPLinker predictions.

Online Demo

A live demo of the NPLinker webapp is automatically deployed to Render from main branch. You can try out the webapp directly in your browser here.

Getting Started with Demo Data

The webapp includes a convenient "Load Demo Data" button that automatically loads some sample data for you to try. Simply:

  1. Open the live demo link
  2. Click the "Load Demo Data" button below the file uploader
  3. The app will automatically download and process the sample dataset from tests/data/mock_obj_data.pkl
  4. Start exploring natural product linking features!

This demo web server is intended only for lightweight demo purposes. For full functionality, including large-scale data processing and persistent storage, please install the application locally or via Docker as described below.

⚠️ Demo Server Limitations

Please note the following limitations of the hosted demo:

  • Cold start delay: Free-tier apps on Render sleep after 15 minutes of inactivity and may take 20–30 seconds to wake up.
  • Performance: This is a minimal deployment on a free tier and is not optimized for large datasets or concurrent users.
  • File size limits: The demo data button loads a small sample dataset suitable for testing. Uploading large datasets via the file uploader may lead to errors or timeouts.
  • No persistent storage: Uploaded files are not saved between sessions.

Using the webapp

Input Data

The webapp accepts data generated by NPLinker and saved as described in the NPLinker quickstart section. For testing purposes, a small sample dataset is provided in tests/data/mock_obj_data.pkl that can be used to try out the webapp.

Please note that links between genomic and metabolomic data must currently be computed using the NPLinker API separately, as this functionality is not yet implemented in the webapp (see issue #19). If no links are present in your data, the scoring table will be disabled.

Filtering Table Data

The "Candidate Links" tables support data filtering to help you focus on relevant results. You can enter filter criteria directly into each column’s filter cell by hovering over the cell.

For numeric columns like "Average Score" or "# Links":

  • 34.6 or = 34.6 (exact match)
  • > 30 (greater than)
  • <= 50 (less than or equal to)

For text columns like "BGC Classes" or "MiBIG IDs":

  • Polyketide or contains Polyketide (contains text)
  • = Polyketide (exact match)

Multiple filters can be applied simultaneously across different columns to narrow down results.

For a full list of supported filter operators, see the official Plotly documentation.

Installation

Before installing NPLinker webapp, ensure you have:

You can install and run the NPLinker webapp in two ways: directly on your local machine or using Docker.

Option 1: Local Installation (using Conda)

Follow these steps to install the application directly on your system:

  1. Clone the repository

    git clone https://github.com/NPLinker/nplinker-webapp.git
    cd nplinker-webapp
    

  2. Set up a conda environment

     # Create a new conda environment with Python 3.10
     conda create -n nplinker-webapp python=3.10
    
     # Activate the environment
     conda activate nplinker-webapp
    

  3. Install dependencies

    pip install -e .
    

  4. Run the application

    python app/main.py
    

  5. Access the webapp

Open your web browser and navigate to http://0.0.0.0:8050/

Troubleshooting Local Installation

Common issues and solutions

  • Port already in use: If port 8050 is already in use, modify the port in app/main.py by changing app.run_server(debug=True, port=8050)
  • Package installation errors: Make sure you're using Python 3.10 and that your pip is up-to-date

If you encounter other problems, please check the Issues page or create a new issue.

Option 2: Docker Installation

Using Docker is the quickest way to get started with NPLinker webapp. Make sure you have Docker installed on your system before proceeding:

  1. Pull the Docker image

    docker pull ghcr.io/nplinker/nplinker-webapp:latest
    

  2. Run the container

    docker run -p 8050:8050 ghcr.io/nplinker/nplinker-webapp:latest
    

  3. Access the webapp

Open your web browser and navigate to http://0.0.0.0:8050/

Docker Image Information
  • Available Tags:
    • latest: The most recent build
    • Specific version tags based on GitHub releases
  • Performance Note: The application running in Docker might be slower than running it directly on your machine, depending on your Docker resource allocation settings. If you experience performance issues, consider increasing Docker's CPU and memory limits in your Docker Desktop settings, or use the local installation method.
  • More Details: For additional information about the Docker image, see its GitHub Container Registry page.