shasta on Biowulf

The goal of the Shasta long read assembler is to rapidly produce accurate assembled sequence using DNA reads generated by Oxford Nanopore flow cells as input.

Computational methods used by the Shasta assembler include:

  •   Using a run-length representation of the read sequence. This makes the assembly process more resilient to errors in homopolymer repeat counts, which are the most common type of errors in Oxford Nanopore reads.
  •   Using in some phases of the computation a representation of the read sequence based on markers, a fixed subset of short k-mers (k ≈ 10).
  • References:

    Important Notes

    Interactive job
    Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

    Allocate an interactive session and run the program.
    Sample session (user input in bold):

    [user@biowulf]$ sinteractive --cpus-per-task=10 --mem=10G
    salloc.exe: Pending job allocation 46116226
    salloc.exe: job 46116226 queued and waiting for resources
    salloc.exe: job 46116226 has been allocated resources
    salloc.exe: Granted job allocation 46116226
    salloc.exe: Waiting for resource configuration
    salloc.exe: Nodes cn3144 are ready for job
    [user@cn3144 ~]$ module load shasta
    [user@cn3144 ~]$ cp $SHASTA_TEST_DATA/TinyTest.fasta.gz .
    [user@cn3144 ~]$ gunzip TinyTest.fasta.gz
    [user@cn3144 ~]$ shasta-Linux-0.9.0 \
    		--input TinyTest.fasta \
    		--config Nanopore-Oct2021 \
    		--threads=8 \
    		--assemblyDirectory shasta_test
    [user@cn3144 ~]$ exit
    salloc.exe: Relinquishing job allocation 46116226
    [user@biowulf ~]$

    Batch job
    Most jobs should be run as batch jobs.

    Create a batch input file (e.g. For example:

    #SBATCH --cpus-per-task=10
    #SBATCH --mem=10G
    #SBATCH --time=2:00:00
    #SBATCH --partition=norm
    set -e
    module load shasta
    shasta-Linux-0.9.0 \
                    --input TinyTest.fasta \
                    --config Nanopore-Oct2021 \
                    --threads=8 \
                    --assemblyDirectory shasta_test

    Submit the job:

    Swarm of Jobs
    A swarm of jobs is an easy way to submit a set of independent commands requiring identical resources.

    Create a swarmfile (e.g. job.swarm). For example:

    cd dir1; shasta-Linux-0.9.0 --input TinyTest1.fasta --config Nanopore-Oct2021 --threads=8 --assemblyDirectory test1
    cd dir2; shasta-Linux-0.9.0 --input TinyTest2.fasta --config Nanopore-Oct2021 --threads=8 --assemblyDirectory test2

    Submit this job using the swarm command.

    swarm -f job.swarm [-g #] --module shasta
    -g # Number of Gigabytes of memory required for each process (1 line in the swarm command file)
    --module Loads the module for each subjob in the swarm