RAY(1)

✨ RAY(1) · User Commands ✨

πŸ¦‹ NAME

Ray - assemble genomes in parallel using the message-passing interface 🧬

πŸ’… SYNOPSIS

Okay, two ways to summon Ray, pick your fighter:

mpiexec -n NUMBER_OF_RANKS Ray -k KMERLENGTH -p l1_1.fastq l1_2.fastq -p l2_1.fastq l2_2.fastq -o test

mpiexec -n NUMBER_OF_RANKS Ray Ray.conf # with commands in a file

🌸 DESCRIPTION

So the Ray genome assembler is built on top of the RayPlatform, which is a generic, plugin-based, distributed and parallel compute engine that uses the message-passing interface for passing messages. It's giving infrastructure queen πŸ‘‘

Ray is here for a LOT of stuff, bestie:

  • de novo genome assembly (with Ray vanilla) 🧬
  • de novo meta-genome assembly (with Ray Meta) 🌍
  • de novo transcriptome assembly (works, but not tested a lot) πŸ§ͺ
  • quantification of contig abundances πŸ“Š
  • quantification of microbiome consortia members (with Ray Communities) 🦠
  • quantification of transcript expression ✨
  • taxonomy profiling of samples (with Ray Communities) 🌳
  • gene ontology profiling of samples (with Ray Ontologies) 🧚
  • -help β€” Displays this help page. πŸ’β€β™€οΈ
  • -version β€” Displays the Ray version and compilation options. 🏷️

πŸŽ€ Using a configuration file

You can launch Ray like this, no stress:

mpiexec -n 16 Ray Ray.conf

The configuration file can include comments (anything starting with #) πŸ“

πŸ”’ K-mer length

  • -k kmerLength β€” Picks the length of your k-mers. The default value is 21.
🚨 It must be odd, because reverse-complement vertices are stored together. The maximum length is defined at compilation by MAXKMERLENGTH.

Bigger k-mers gobble up more memory, so keep that in mind 🍽️

πŸ“₯ Inputs

  • -p leftSequenceFile rightSequenceFile [averageOuterDistance standardDeviation] β€” Gives Ray two files full of paired-end reads. averageOuterDistance and standardDeviation get auto-computed if you don't provide them 🫢
  • -i interleavedSequenceFile [averageOuterDistance standardDeviation] β€” Gives Ray one file of interleaved paired-end reads. Same deal: averageOuterDistance and standardDeviation are auto-computed if you skip them 🧡
  • -s sequenceFile β€” Gives Ray a file of single-end reads 🎯

πŸ“€ Outputs

  • -o outputDirectory β€” Picks the directory where your output files land. Default is RayOutput πŸ“

πŸ› οΈ Assembly options (defaults work well)

  • -disable-recycling β€” Turns off read recycling during the assembly. Reads get set free in 3 cases:
    1. the distance did not match for a pair
    2. the read has not met its mate
    3. the library population indicates a wrong placement

See Constrained traversal of repeats with paired sequences. Sebastien Boisvert, Elenie Godzaridis, Francois Laviolette & Jacques Corbeil. First Annual RECOMB Satellite Workshop on Massively Parallel Sequencing, March 26-27 2011, Vancouver, BC, Canada. πŸ“š

  • -disable-scaffolder β€” Turns off the scaffolder. 🚫
  • -minimum-contig-length minimumContigLength β€” Changes the minimum contig length. Default is 100 nucleotides πŸ“
  • -color-space β€” Runs in color-space. This needs csfasta files, and it gets switched on automatically if you provide csfasta files 🌈
  • -use-maximum-seed-coverage maximumSeedCoverageDepth β€” Ignores any seed with a coverage depth above this threshold. The default is 4294967295 πŸ™ˆ
  • -use-minimum-seed-coverage minimumSeedCoverageDepth β€” Sets the minimum seed coverage depth. Any path with a coverage depth lower than this gets discarded. The default is 0 πŸ—‘οΈ

πŸ—„οΈ Distributed storage engine (all these values are for each MPI rank)

  • -bloom-filter-bits bits β€” Sets the number of bits for the Bloom filter. Default is 268435456 bits. 0 bits disables the Bloom filter 🌸
  • -hash-table-buckets buckets β€” Sets the initial number of buckets.
🚨 Must be a power of 2 !

Default value: 268435456 πŸͺ£

  • -hash-table-buckets-per-group buckets β€” Sets the number of buckets per group for sparse storage. Default value: 64, and it must be between >=1 and <= 64 🧩
  • -hash-table-load-factor-threshold threshold β€” Sets the load factor threshold for real-time resizing. Default value: 0.75, and it must be >= 0.5 and < 1 βš–οΈ
  • -hash-table-verbosity β€” Turns on verbosity for the distributed storage engine πŸ”Š

🧬 Biological abundances

  • -search searchDirectory β€” Points Ray at a directory containing fasta files to be searched in the de Bruijn graph. Biological abundances get written to RayOutput/BiologicalAbundances. See Documentation/BiologicalAbundances.txt πŸ”
  • -one-color-per-file β€” Sets one color per file instead of one per sequence. By default, each sequence in each file gets its own color. For files with large numbers of sequences, one single color per file may be more efficient 🎨

πŸ“‚ Outputted files

okay so this is the part where Ray tells you everything it spits out πŸ’… Here's the full list, bestie 🫢

Scaffolds

  • RayOutput/Scaffolds.fasta: the scaffold sequences in FASTA format 🧚
  • RayOutput/ScaffoldComponents.txt: the components of each scaffold
  • RayOutput/ScaffoldLengths.txt: the length of each scaffold
  • RayOutput/ScaffoldLinks.txt: scaffold links πŸ”—

Contigs

  • RayOutput/Contigs.fasta: contiguous sequences in FASTA format 🌸
  • RayOutput/ContigLengths.txt: the lengths of those contiguous sequences

Summary

  • RayOutput/OutputNumbers.txt: overall numbers for the assembly πŸ“Š

de Bruijn graph

  • RayOutput/CoverageDistribution.txt: the distribution of coverage values
  • RayOutput/CoverageDistributionAnalysis.txt: analysis of the coverage distribution
  • RayOutput/degreeDistribution.txt: distribution of ingoing and outgoing degrees
  • RayOutput/kmers.txt: the k-mer graph, which needs the -write-kmers option πŸ™ˆ
⚠️ bestie, heads up: Ray doesn't use RayOutput/kmers.txt itself, and the file is very large 😭

Assembly steps

  • RayOutput/SeedLengthDistribution.txt: distribution of seed length 🌱
  • RayOutput/Rank<rank>.OptimalReadMarkers.txt: read markers
  • RayOutput/Rank<rank>.RaySeeds.fasta: seed DNA sequences, which need the -write-seeds option
  • RayOutput/Rank<rank>.RayExtensions.fasta: extension DNA sequences, which need the -write-extensions option
  • RayOutput/Rank<rank>.RayContigPaths.txt: contig paths with coverage values, which need the -write-contig-paths option ✨

Paired reads

  • RayOutput/LibraryStatistics.txt: estimation of outer distances for paired reads πŸ’œ
  • RayOutput/Library<LibraryNumber>.txt: frequencies for observed outer distances (insert size + read lengths)

Partition

  • RayOutput/NumberOfSequences.txt: number of reads in each file
  • RayOutput/SequencePartition.txt: sequence partition

Ray software

  • RayOutput/RayVersion.txt: the version of Ray
  • RayOutput/RayCommand.txt: the exact same command you gave πŸŽ€

AMOS

  • RayOutput/AMOS.afg: assembly representation in AMOS format, which needs the -amos option

Communication

  • RayOutput/MessagePassingInterface.txt: number of messages sent
  • RayOutput/NetworkTest.txt: latencies in microseconds
  • RayOutput/Rank<rank>NetworkTestData.txt: network test raw data

✨ DOCUMENTATION ✨

okay where to look for help πŸ¦‹


✨ AUTHOR ✨

Written by Sebastien Boisvert πŸ‘‘


✨ REPORTING BUGS ✨

bestie, if something's bugging, report it to denovoassembler-users@lists.sourceforge.net πŸ›

Home page: <http://denovoassembler.sourceforge.net/> 🏑


this program is free software, so you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License 🌈

this program is distributed in the hope that it'll be useful, but it comes WITHOUT ANY WARRANTY. that means no implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. check the GNU General Public License for more details πŸ™ˆ

you should have received a copy of the GNU General Public License along with this program (see LICENSE) πŸ“œ


🧾 Version and build info

here's the tea on what this build is running πŸ“

  • Ray version: 2.1.0
  • License for Ray: GNU General Public License version 3
  • RayPlatform version: 1.1.0
  • License for RayPlatform: GNU Lesser General Public License version 3
  • MAXKMERLENGTH: 32
  • KMER_U64_ARRAY_SIZE: 1
  • Maximum coverage depth stored by CoverageDepth: 4294967295
  • MAXIMUM_MESSAGE_SIZE_IN_BYTES: 4000 bytes
  • FORCE_PACKING = n
  • ASSERT = n
  • HAVE_LIBZ = y
  • HAVE_LIBBZ2 = y
  • CONFIG_PROFILER_COLLECT = n
  • CONFIG_CLOCK_GETTIME = n
  • __linux__ = y
  • _MSC_VER = n
  • __GNUC__ = y
  • RAY_32_BITS = n
  • RAY_64_BITS = y
  • MPI standard version: MPI 2.1
  • MPI library: Open-MPI 1.4.2
  • Compiler: GNU gcc/g++ 4.4.5

That's the whole tea, bestie 🫢 Ray 2.1.0 from November 2012, and RAY(1) is still giving main character energy πŸ’–πŸ§š