Canu is one of the best de novo assemblers available for long reads - it’s a fork and updated version of the Celera assembler that was used to assemble the human genome.
It is quite a complex beast that has HPC integration built in - though you can turn this off. However, large assembly jobs are best run in parallel, making HPC integration essential. This can get tough if your cluster has a non-standard configuration.
Run canu without any options to get help:
canu
This produces:
usage: canu [-version] \
[-correct | -trim | -assemble | -trim-assemble] \
[-s <assembly-specifications-file>] \
-p <assembly-prefix> \
-d <assembly-directory> \
genomeSize=<number>[g|m|k] \
[other-options] \
[-pacbio-raw | -pacbio-corrected | -nanopore-raw | -nanopore-corrected] *fastq
By default, all three stages (correct, trim, assemble) are computed.
To compute only a single stage, use:
-correct - generate corrected reads
-trim - generate trimmed reads
-assemble - generate an assembly
-trim-assemble - generate trimmed reads and then assemble them
The assembly is computed in the (created) -d <assembly-directory>, with most
files named using the -p <assembly-prefix>.
The genome size is your best guess of the genome size of what is being assembled.
It is used mostly to compute coverage in reads. Fractional values are allowed: '4.7m'
is the same as '4700k' and '4700000'
A full list of options can be printed with '-options'. All options
can be supplied in an optional sepc file.
Reads can be either FASTA or FASTQ format, uncompressed, or compressed
with gz, bz2 or xz. Reads are specified by the technology they were
generated with:
-pacbio-raw <files>
-pacbio-corrected <files>
-nanopore-raw <files>
-nanopore-corrected <files>
Complete documentation at http://canu.readthedocs.org/en/latest/
Canu has three stages which it runs in order:
By default canu runs these one after the other, but they can be run individually.
An example “full pipeline” command would be:
canu -p meta \
-d meta \
genomeSize=40m \
useGrid=false \
-nanopore-raw /vol_b/public_data/minion_brown_metagenome/brown_metagenome.2D.10.fasta
This puts output in directory meta with prefix “meta”. We estimate the genome size, tell canu NOT to use HPC (as we don’t have one for porecamp) and give it some ONT data as fasta.
This runs pretty quickly but doesn’t assemble anything. It’s a low coverage synthetic metagenome, so no surprise. It does produce corrected reads though! These could be used in the metagenomics practical (hint!)
Now try the E coli subset:
canu -p ecoli
-d ecoli
genomeSize=4.8m
useGrid=false
-nanopore-raw /vol_b/public_data/minion_ecoli_sample/ecoli_sample.template.fasta
This one will take a bit longer ;)
➜ bin git:(master) ✗ ./canu
usage: canu [-version] [-citation] \
[-correct | -trim | -assemble | -trim-assemble] \
[-s <assembly-specifications-file>] \
-p <assembly-prefix> \
-d <assembly-directory> \
genomeSize=<number>[g|m|k] \
[other-options] \
[-pacbio-raw |
-pacbio-corrected |
-nanopore-raw |
-nanopore-corrected] file1 file2 ...
example: canu -d run1 -p godzilla genomeSize=1g -nanopore-raw reads/*.fasta.gz
To restrict canu to only a specific stage, use:
-correct - generate corrected reads
-trim - generate trimmed reads
-assemble - generate an assembly
-trim-assemble - generate trimmed reads and then assemble them
The assembly is computed in the -d <assembly-directory>, with output files named
using the -p <assembly-prefix>. This directory is created if needed. It is not
possible to run multiple assemblies in the same directory.
The genome size should be your best guess of the haploid genome size of what is being
assembled. It is used primarily to estimate coverage in reads, NOT as the desired
assembly size. Fractional values are allowed: '4.7m' equals '4700k' equals '4700000'
Some common options:
useGrid=string
- Run under grid control (true), locally (false), or set up for grid control
but don't submit any jobs (remote)
rawErrorRate=fraction-error
- The allowed difference in an overlap between two raw uncorrected reads. For lower
quality reads, use a higher number. The defaults are 0.300 for PacBio reads and
0.500 for Nanopore reads.
correctedErrorRate=fraction-error
- The allowed difference in an overlap between two corrected reads. Assemblies of
low coverage or data with biological differences will benefit from a slight increase
in this. Defaults are 0.045 for PacBio reads and 0.144 for Nanopore reads.
gridOptions=string
- Pass string to the command used to submit jobs to the grid. Can be used to set
maximum run time limits. Should NOT be used to set memory limits; Canu will do
that for you.
minReadLength=number
- Ignore reads shorter than 'number' bases long. Default: 1000.
minOverlapLength=number
- Ignore read-to-read overlaps shorter than 'number' bases long. Default: 500.
A full list of options can be printed with '-options'. All options can be supplied in
an optional sepc file with the -s option.
Reads can be either FASTA or FASTQ format, uncompressed, or compressed with gz, bz2 or xz.
Reads are specified by the technology they were generated with, and any processing performed:
-pacbio-raw <files> Reads are straight off the machine.
-pacbio-corrected <files> Reads have been corrected.
-nanopore-raw <files>
-nanopore-corrected <files>
Complete documentation at http://canu.readthedocs.org/en/latest/