Start Silva Server VM

Script: startSilvaServerVM.sh Source Directory: pipelines/server/ Author: Brian Bushnell

Server startup script for the Silva ribosomal RNA identification service. This script launches a taxonomic server instance on JGI infrastructure (jgi-web-4) that provides ribosomal RNA sequence identification services using Silva database sketches.

Overview

This script starts a taxonomic server for Silva ribosomal RNA identification using BBTools' taxserver.sh. The server provides a web-based interface for identifying ribosomal RNA sequences through k-mer sketching against the Silva database. It's specifically configured to run on JGI's jgi-web-4 server infrastructure.

Warning: This script is designed specifically for JGI infrastructure and contains hardcoded paths and server configurations. It should not be used outside the intended environment without modification.

Server Configuration

Service Settings

LOG
Log file: ribologVM_32.txt - Contains server output and error messages
PASS
Authentication password: xxxxx (placeholder - real password configured in production)
DOMAIN
Service domain: https://ribo-sketch.jgi.doe.gov - Public endpoint for the service
KILL
Kill URL: https://ribo-sketch.jgi.doe.gov/kill/ - Administrative endpoint for server termination
PORT
Service port: 3073 - Internal port for the taxonomic server
REF
Reference sketches: /global/projectb/sandbox/gaag/bbtools/silva/latest/both_seq#.sketch - Silva database sketches
DB
Database name: silva - Identifier for the Silva ribosomal RNA database

Server Parameters

Taxserver Configuration

-da
JVM assertion flag - Disables assertions for production performance
-Xmx10g
Java heap memory: 10GB - Maximum memory allocation for the server process
port=$PORT
Server port: Uses PORT variable (3073) for incoming connections
verbose
Verbose logging: Enables detailed output for debugging and monitoring
tree=auto
Taxonomic tree: Automatic tree loading and construction
sketchonly
Sketch-only mode: Uses only k-mer sketches for identification (faster)
index
Index loading: Loads reference sketches into memory for fast queries
whitelist
Access control: Enables IP whitelisting for security
domain=$DOMAIN
Web domain: Sets the public domain for web interface access
killcode=$PASS
Kill authentication: Password required for server termination
oldcode=$PASS
Legacy authentication: Backward compatibility authentication code
oldaddress=$KILL
Legacy kill URL: Backward compatibility termination endpoint
ref=$REF
Reference database: Path to Silva sketch files for sequence matching
dbname=Silva
Database display name: Human-readable name shown in web interface
blacklist=silva
Blacklist configuration: Silva-specific filtering rules
k=32,24
K-mer sizes: Uses both 32-mer and 24-mer sketches for identification accuracy

Prerequisites

System Requirements

Database Requirements

Network Requirements

Usage

Starting the Server

Run the script directly on the designated server:

./startSilvaServerVM.sh

The server will start in the background using nohup and log output to ribologVM_32.txt.

Testing Mode

For development and testing, the script includes a simplified command (commented out):

# Simple mode for testing
/global/projectb/sandbox/gaag/bbtools/jgi-bbtools/taxserver.sh -ea -Xmx10g \
    port=3073 verbose tree=auto sketchonly silva k=32,24 index=f \
    domain=https://ribo-sketch.jgi-psf.org

This testing mode uses:

Service Management

Monitoring

Stopping the Server

Troubleshooting

Security Considerations

Access Control

Data Protection

Service Architecture

Component Overview

The Silva server provides ribosomal RNA identification through the following components:

Performance Characteristics

Integration

API Access

The server provides programmatic access through HTTP/HTTPS requests to the configured domain. Queries can be submitted as FASTA sequences for taxonomic identification against the Silva database.

Related Tools

Database Updates

Silva database sketches should be updated periodically to reflect new Silva releases. The server should be restarted after sketch updates to load the latest data.

Notes