SequenceTubeMap-Sapelo2

From Research Computing Center Wiki
Revision as of 13:38, 5 September 2023 by Isaiah (talk | contribs) (Initial creation of page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Category

Bioinformatics

Program On

GitHub

Version

N/A

Author / Distributor

vgteam

Description

"A JavaScript module for the visualization of genomic sequence graphs. It automatically generates a "tube map"-like visualization of sequence graphs which have been created with vg."

Running Program

Initial Setup

Before a user can run this program, it first needs to be setup in a directory of the user's choosing such as the home or scratch directory.

Enter Interactive Job

This program should be run from within an interactive job, which can be started by issuing the following from a login node:

interact
Load Dependent Modules

As of September 5th, 2023, the dependencies for this program are NodeJS, NPM, and vg. The NPM program is included in our NodeJS module, so the only modules necessary are NodeJS and vg, which can be loaded with the following:

NodeJS

module load nodejs/18.12.1-GCCcore-11.3.0

vg

module load vg/1.50.1
Clone Repository

From within the directory that will serve to contain this project, clone the sequenceTubeMap repository:

git clone https://github.com/vgteam/sequenceTubeMap.git
Install NPM dependencies

This program depends on a few other programs from NPM. To install them, first enter into the sequenceTubeMap directory that was created when the repository was cloned in the previous step:

cd sequenceTubeMap

Then, use NPM to install the additional programs into the project's directory:

npm install
Build the Frontend

Once the additional dependencies have been installed with NPM, sequenceTubeMap will need to be built:

npm run build

Starting the server

As long as the previous steps have been completed, the program can be started and used when needed. Starting the program is as simple as navigating to the directory in which it is located, and running the server.

Enter Interactive Job

Unless already in an interactive job, it is necessary to enter into one before loading the modules and starting the server:

interact
Load Dependent Modules

The same versions of the modules that were loaded when performing the initial setup for sequenceTubeMap should be loaded whenever attempting to run the software:

NodeJS

module load nodejs/18.12.1-GCCcore-11.3.0

vg

module load vg/1.50.1
Navigate to sequenceTubeMap

Unless already in the sequenceTubeMap directory, change to the location of that directory:

cd /path/to/sequenceTubeMap
Obtain IP Address

Obtain the IP address of the server that will host sequenceTubeMap for use in the next step:

hostname -i
Configure SSH Tunnel

It will be necessary to use SSH tunneling to connect to the web frontend from within a web browser. Please note that this step is to be performed on your local computer. It is recommended to setup the SSH tunnel from a new, separate terminal. Currently, the program is hard-coded to run on port 3000, but this can be changed by editing a few files as demonstrated later on this page.

SSH Tunneling from Mac or Linux

From your local terminal, issue the following command while making sure to replace HOST with the actual IP address obtained in the previous step and MyID with your actual MyID:

ssh -N -L 3000:HOST:3000 MyID@sapelo2.gacrc.uga.edu
SSH Tunneling from Windows

Download the plink program, open a command window--the current directory of this command window should contain the plink.exe file--and execute the following command, replacing HOST with the actual IP address obtained in the previous step and MyID with your actual MyID:

plink -ssh -N -L 3000:HOST:3000 MyID@sapelo2.gacrc.uga.edu
Launch the Program

To start the program, return to the terminal in which the interactive session is running, and execute the following command from within the sequenceTubeMap directory:

npm run serve

Connecting to the Server

To connect to the server, simply open a web browser on the computer connected to the SSH tunnel, and navigate to http://localhost:3000 in the URL bar.

Running Program on Different Port

As of September 5th, 2023 sequenceTubeMap is hard-coded to run on port 3000. As a result, using an alternative port number will require manually changing a few files.

The following commands, if issued from within the sequenceTubeMap directory, will change the necessary files to use port 8942 instead:

sed -i "s/3000/8942/g" server.mjs
sed -i "s/3000/8942/g" setupProxy.js
sed -i "s/3000/8942/g" util/demo-data.js

If a port is used other than port 3000, use the same number when setting up SSH tunneling:

ssh -N -L 8942:HOST:8942 MyID@sapelo2.gacrc.uga.edu

Make sure to connect to the correct corresponding port number, http://localhost:8942, when connecting from a web browser as well.

Documentation

Please reference the program's GitHub page at https://github.com/vgteam/sequenceTubeMap for further reading.

System

64-bit Linux