Python client

Installation

  1. LabxDB-tools depends on requests, urllib3 and pyfnutils Python modules. To install it and its dependencies:

    pip3 install labxdb-tools --user
    
  2. Make sure $HOME/.local/bin is in your PATH; the script import_seq for example should be executable. If not, configure your PATH in your ~/.bashrc:

    export PATH=$PATH:$HOME/.local/bin
    

Dependencies

  1. import_seq

    Install zstd, wget and squashfs-tools with your favourite package manager. For example:

    pacman -S zstd wget squashfs-tools
    
    Notesquashfs-tools is not mandatory. After download, remaining files can be (i) kept as-is or (ii) deleted using the option --delete_download.
  2. import_sra

    Install fastq-dump from the NCBI SRA (Sequence Read Archive) tools:

    wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
    tar xvfz sratoolkit.current-ubuntu64.tar.gz
    cp sratoolkit.*-ubuntu64/bin/fastq-dump-orig* $HOME/.local/bin/fastq-dump
    

Configuration

To access LabxDB databases, clients need URL, path, login and passwords. They can be provided as environment variables or in a configuration file.

By environment variables

In your '~/.bashrc:

export LABXDB_HTTP_URL="http://127.0.0.1:8081/"
export LABXDB_HTTP_PATH_SEQ="seq/"
export LABXDB_HTTP_LOGIN=""
export LABXDB_HTTP_PASSWORD=""

By configuration file

In any file within any of these folders:

  • $HTS_CONFIG_PATH. HTS_CONFIG_PATH can be defined by the user.
  • $XDG_CONFIG_HOME/hts. XDG_CONFIG_HOME is defined by your desktop environment.

Example configuration:

  1. Create a folder /etc/hts
  2. Open a file /etc/hts/labxdb.json and write (in JSON format):
    {
        "labxdb_http_url": "http://127.0.0.1:8081/",
        "labxdb_http_path_seq": "seq/",
        "labxdb_http_login": "",
        "labxdb_http_password": ""
    }
    
  3. Open a file /etc/hts/path.json and write (in JSON format):
    {
        "path_seq_raw": "/data/seq/raw",
        "path_seq_run": "/data/seq/by_run",
        "path_seq_prepared": "/data/seq/prepared"
    }
    
  4. Add in ~/.bashrc:
    export HTS_CONFIG_PATH="/etc/hts"
    
TipAlternatively, create the JSON config file in the folder of your choice and manually specify its location using the --path_config option. All scripts in LabxDB-python accept this option.
Last modification: April 12, 2023