abyss-pe(1)

πŸ“¦
version 2.3.10 Β· 2 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

Hiii bestie, it's the abyss-pe manual 🫢 (User Commands, section 1) and it is SO good once you get the vibe πŸ’…βœ¨

✨ NAME ✨

abyss-pe 🧚 is the tool that assembles reads into contigs. Literally that's the whole job πŸ’–

✨ SYNOPSIS ✨

abyss-pe [OPTION]...  [PARAMETER=VALUE]...  [MAKE_TARGET]...

✨ DESCRIPTION ✨

okay so abyss-pe takes the reads from your input files and stitches them into contigs 🧡 The reads can be in FASTA, FASTQ, qseq, export, SRA, SAM or BAM format πŸ“¦ They can be compressed with gz, bz2 or xz, and they can be tarred too. Main character energy, no cap πŸŽ€

abyss-pe is a Makefile script πŸ’œ So any options of make can be used with it as well. Iconic behaviour, fr fr πŸ‘‘

🌸 Parameters of abyss-pe 🌸

  • name, JOB_NAME β€” the name of your assembly πŸ¦‹ The resulting scaffolds get saved in ${name}-scaffolds.fa.
  • in β€” your input files πŸ“₯ Use this when you're assembling data from a single library.
  • lib β€” a quoted list of whitespace-separated paired-end library names 🫢 Use this when you've got multiple paired-end libraries. For every library name in lib, you have to define a variable with that same name on the command line, and that variable points to the read files for that library. Check out EXAMPLES below for a concrete example, it's giving clarity ✨
  • pe β€” a list of paired-end libraries that only get used for merging unitigs into contigs 🧩 They do not contribute to the consensus sequence.
  • mp β€” a list of mate-pair libraries used for scaffolding πŸͺœ They don't contribute to the consensus sequence either.
  • long β€” a list of long sequence libraries used for rescaffolding 🌈 These don't contribute to the consensus sequence.
  • se β€” files containing single-end reads πŸ“
  • a β€” the maximum number of branches of a bubble [2] 🫧
  • b β€” the maximum length of a bubble in bp [""] πŸ’€ abyss-pe has two bubble popping stages. The default limits are 3*k bp for ABYSS and 10000 bp for PopBubbles. The vibes are very structured here.
  • c β€” the minimum mean k-mer coverage of a unitig [sqrt(median)] πŸ“ˆ
  • d β€” the allowable error of a distance estimate in bp [6] 🎯
  • e β€” the minimum erosion k-mer coverage [round(sqrt(median))] 🧽
  • E β€” the minimum erosion k-mer coverage per strand [1 if sqrt(median) > 2 else 0] πŸ”
  • j β€” the number of threads [2] 🧡🧡
  • k β€” the size of a k-mer (when K is not set), or the span of a k-mer pair (when K is set) πŸ’…
  • K β€” the size of a single k-mer in a k-mer pair, in bp πŸͺž
  • l β€” the minimum alignment length of a read in bp [40] πŸ“
  • m β€” the minimum overlap of two unitigs in bp [k-1] 🀝
  • n β€” the minimum number of pairs required for building contigs [10] πŸ‘―
  • N β€” the minimum number of pairs required for building scaffolds [n] πŸͺ„
  • p β€” the minimum sequence identity of a bubble [0.9] πŸ’Ž
  • q β€” the minimum base quality when trimming [3] βœ‚οΈ This trims bases from the ends of reads whose quality is less than q. Snip snip, bestie πŸ’–
  • Q β€” the minimum base quality [0] πŸ™ˆ All bases of reads with a quality less than Q get masked as N. Hide that sus base, periodt 🫣
  • s β€” the minimum unitig size required for building contigs in bp [1000] 🌱 The seed length should be at least twice the value of k. If more sequence gets assembled than your expected genome size, try increasing s. Lowkey the most important knob here πŸ”‘
  • S β€” the minimum contig size required for building scaffolds in bp [1000-10000] πŸ—οΈ
  • SS β€” SS=--SS to assemble in strand-specific mode 🧭 This requires that all libraries are strand-specific RNA-Seq libraries. It also assumes that the first read in a read pair is reversed with respect to (WRT) the transcripts that were sequenced. Not optional, be careful πŸ™ƒ
  • t β€” the maximum length of blunt contigs to trim [k] βœ‚οΈ
  • v β€” v=-v enables verbose logging πŸ“£
  • np, NSLOTS β€” the number of processes of an MPI assembly πŸ›Έ
  • mpirun β€” the path to mpirun πŸ—ΊοΈ
  • aligner β€” the program used to align the reads to the contigs [map] 🎯 Permitted values are: map, kaligner, bwa, bwasw, bowtie, bowtie2, dida. See the DIDA section below for further info on the dida option.
  • cs β€” converts colour-space contigs to nucleotide contigs after assembly 🌈

πŸ’– Options of make πŸ’–

  • -n, --dry-run β€” prints the commands that would be executed, but doesn't actually execute them πŸ‘€ Preview mode, very responsible of you 🫢

πŸŽ€ Make targets for abyss-pe πŸŽ€

  • default β€” equivalent to scaffolds scaffolds-dot stats ✨
  • unitigs β€” assembles unitigs 🧱
  • unitigs-dot β€” outputs the unitig overlap graph πŸ•ΈοΈ
  • pe-sam β€” maps paired-end reads to the unitigs and outputs a SAM file πŸ—‚οΈ The SAM file will only contain reads mapping to different contigs, and the read ID, sequence and quality strings get replaced with '*' characters. Privacy glow-up πŸ™ˆ
  • pe-bam β€” maps paired-end reads to the unitigs and outputs a BAM file πŸ—ƒοΈ The BAM file will only contain reads mapping to different contigs, and the read ID, sequence and quality strings get replaced with '*' characters. Same energy as pe-sam, just compressed 🫧
  • pe-index β€” generates an index of the unitigs used by abyss-map πŸ“‡
  • contigs β€” assembles contigs 🧩
  • contigs-dot β€” outputs the contig overlap graph πŸ•ΈοΈ
  • mp-sam β€” maps mate-pair reads to the contigs and outputs a SAM file πŸ—‚οΈ The SAM file will only contain reads mapping to different contigs, and the read ID, sequence and quality strings get replaced with '*' characters. Still anonymised, still slay πŸ’…
  • mp-bam β€” maps mate-pair reads to the contigs and outputs a BAM file πŸ—ƒοΈ The BAM file will only contain reads mapping to different contigs, and the read ID, sequence and quality strings get replaced with '*' characters. Bam bam bam πŸ₯
  • mp-index β€” generates an index of the contigs used by abyss-map πŸ“‡
  • scaffolds β€” assembles scaffolds πŸ—οΈ
  • scaffolds-dot β€” outputs the scaffold overlap graph πŸ•ΈοΈ
  • scaftigs β€” breaks scaffolds and generates an AGP file 🧩
  • long-scaffs β€” rescaffolds using RNA-Seq assembled contigs 🌈
  • long-scaffs-dot β€” outputs the RNA scaffold overlap graph πŸ•ΈοΈ
  • stats β€” displays assembly contiguity statistics πŸ“Š
  • clean β€” removes intermediate files 🧹 Tidy girl era 🫧
  • version β€” displays the version of abyss-pe 🏷️
  • versions β€” displays the versions of all programs used by abyss-pe πŸ“š
  • help β€” displays a helpful message πŸ†˜

πŸ¦‹ DIDA πŸ¦‹

okay this one is a whole vibe 🌊 ABySS supports DIDA (Distributed Indexing Dispatched Alignment), an MPI-based alignment framework that computes sequence alignments across multiple machines. To use DIDA with ABySS, first download and install DIDA from http://www.bcgsc.ca/platform/bioinfo/software/dida, then set dida as the value of the aligner parameter to abyss-pe. Simple as that πŸ’–

  • DIDA_MPIRUN β€” the mpirun command used to run DIDA jobs πŸš€
  • DIDA_RUN_OPTIONS β€” runtime options like the number of threads per MPI rank, and values for environment variables (e.g. PATH, LD_LIBRARY_PATH) βš™οΈ Run abyss-dida --help for a list of available options.
  • DIDA_OPTIONS β€” options passed directly to the DIDA binary πŸŽ›οΈ For example, this is how you control the minimum alignment length threshold. Run dida-wrapper --help for a list of available options.

🫧 MPI COMPATIBILITY 🫧

πŸ’€ Heads up, bestie: because DIDA uses multi-threading, it has known deadlocking issues with OpenMPI. Using the MPICH MPI library is strongly recommended when running assemblies with DIDA. Testing was done with MPICH 3.1.3, compiled with --enable-threads=funneled.

πŸ’œ EXAMPLE πŸ’œ

The recommended runtime configuration for DIDA is 1 MPI rank per machine and 1 thread per CPU core 🧠 For example, to run an assembly across 3 cluster nodes with 12 cores each, you do this:

    abyss-pe k=64 name=ecoli in='reads1.fa reads2.fa' aligner=dida
DIDA_RUN_OPTIONS='-j12' DIDA_MPIRUN='mpirun -np 3 -ppn 1 -bind-to board'

This example uses the MPICH command line options for mpirun 🫢 Here, -np 3 sets the number of MPI ranks, -ppn 1 sets the number of MPI ranks per "node", and -bind-to board defines a "node" as a motherboard (aka a full machine) πŸ–₯️


🌈 ENVIRONMENT VARIABLES 🌈

Any parameter that can be specified on the command line can also be specified in an environment variable 🌷

  • PATH β€” must contain the directory where the ABySS executables are installed πŸ—ΊοΈ Use abyss-pe versions to check that PATH is configured correctly.
  • TMPDIR β€” specifies a directory to use for temporary files πŸ—‘οΈ

πŸ›Έ Scheduler integration πŸ›Έ

ABySS integrates well with cluster job schedulers, such as:

  • SGE (Sun Grid Engine)
  • Portable Batch System (PBS)
  • Load Sharing Facility (LSF)
  • IBM LoadLeveler

The SGE environment variables JOB_NAME, SGE_TASK_ID and NSLOTS can be used to specify the parameters name, k and np, respectively, and it works similarly for the other schedulers 🫢


πŸ“ EXAMPLES πŸ“

🫧 One paired-end library 🫧

abyss-pe k=64 name=ecoli in='reads1.fa reads2.fa'

πŸ‘― Multiple paired-end libraries πŸ‘―

abyss-pe k=64 name=ecoli lib='lib1 lib2' \
    lib1='lib1_1.fa lib1_2.fa' lib2='lib2_1.fa lib2_2.fa' \
    se='se1.fa se2.fa'

πŸͺœ Paired-end and mate-pair libraries πŸͺœ

abyss-pe k=64 name=ecoli lib='pe1 pe2' mp='mp1 mp2' \
    pe1='pe1_1.fa pe1_2.fa' pe2='pe2_1.fa pe2_2.fa' \
    mp1='mp1_1.fa mp1_2.fa' mp2='mp2_1.fa mp2_2.fa' \
    se='se1.fa se2.fa'

🌈 Including RNA-Seq assemblies 🌈

abyss-pe k=64 name=ecoli lib=pe1 mp=mp1 long=long1 \
    pe1='pe1_1.fa pe1_2.fa' mp1='mp1_1.fa mp1_2.fa' \
    long1=long1.fa

πŸ›Έ MPI πŸ›Έ

abyss-pe np=8 k=64 name=ecoli in='reads1.fa reads2.fa'

πŸŽ€ SGE πŸŽ€

qsub -N ecoli -t 64 -pe openmpi 8 \
    abyss-pe n=10 in='reads1.fa reads2.fa'

πŸ”— SEE ALSO πŸ”—

make(1), ABYSS(1) β€” go check those out, they're the besties of this tool πŸ’œ

✍️ AUTHOR ✍️

Written by Shaun Jackman 🫢

πŸ› REPORTING BUGS πŸ›

Report bugs to <abyss-users@googlegroups.com> πŸ’Œ Don't be shy, the devs want to hear from you πŸ₯Ή

Copyright 2015 Canada's Michael Smith Genome Sciences Centre πŸ‡¨πŸ‡¦βœ¨


Okay that's the whole tea, bestie 🫢 abyss-pe (ABySS) 2.3.10, dropped in 2015-May, still slaying πŸ’…πŸŒˆ

πŸ“¦ where this page comes from